內容

名稱

IPC::Semaphore - SysV Semaphore IPC 物件類別

語法

use IPC::SysV qw(IPC_PRIVATE S_IRUSR S_IWUSR IPC_CREAT);
use IPC::Semaphore;

$sem = IPC::Semaphore->new(IPC_PRIVATE, 10, S_IRUSR | S_IWUSR | IPC_CREAT);

$sem->setall( (0) x 10);

@sem = $sem->getall;

$ncnt = $sem->getncnt;

$zcnt = $sem->getzcnt;

$ds = $sem->stat;

$sem->remove;

說明

提供一個以物件為基礎的介面,來存取 SysV IPC 資源鎖。

方法

new ( KEY , NSEMS , FLAGS )

建立一個新的資源鎖組,與 KEY 相關聯。NSEMS 是組中資源鎖的數量。如果符合下列條件,就會建立一個新的組:

  • KEY 等於 IPC_PRIVATE

  • KEY 尚未有相關聯的資源鎖識別碼,而且 FLAGS & IPC_CREAT 為 true。

在建立新的資源鎖組時,FLAGS 會用來設定權限。請小心不要設定 Sys V IPC 實作不允許的任何旗標:在某些系統中,設定執行位元會導致操作失敗。

getall

以陣列的形式傳回資源鎖組的值。

getncnt ( SEM )

傳回等待 semaphore SEM 大於目前值的程序數量

getpid ( SEM )

傳回對 semaphore SEM 執行操作的最後一個程序的程序識別碼。

getval ( SEM )

傳回 semaphore SEM 的目前值。

getzcnt ( SEM )

傳回等待 semaphore SEM 變成零的程序數量。

id

傳回 semaphore 組的系統識別碼。

op ( OPLIST )

OPLIST 是傳遞給 semop 的操作清單。OPLIST 是較小清單的串接,每個清單有三個值。第一個是 semaphore 號碼,第二個是操作,最後一個是旗標值。請參閱 semop(2) 以取得更多詳細資料。例如

    $sem->op(
	0, -1, IPC_NOWAIT,
	1,  1, IPC_NOWAIT
    );
remove

從系統中移除並銷毀 semaphore 組。

set ( STAT )
set ( NAME => VALUE [, NAME => VALUE ...] )

set 會設定與 semaphore 組相關聯的 stat 結構的下列值。

uid
gid
mode (only the permission bits)

set 接受 stat 方法傳回的 stat 物件,或 名稱- 配對清單。

setall ( VALUES )

將 semaphore 組中的所有值設定為 VALUES 清單上指定的那些值。VALUES 必須包含正確數量的值。

setval ( N , VALUE )

將 semaphore 組中的第 N 個值設定為 VALUE

stat

傳回類型為 IPC::Semaphore::stat 的物件,它是 Class::Struct 的子類別。它提供下列欄位。有關這些欄位的說明,請參閱系統文件。

uid
gid
cuid
cgid
mode
ctime
otime
nsems

另請參閱

IPC::SysVClass::Structsemget(2)semctl(2)semop(2)

作者

Graham Barr <gbarr@pobox.com>、Marcus Holland-Moritz <mhx@cpan.org>

版權

版本 2.x,版權所有 (C) 2007-2013,Marcus Holland-Moritz。

版本 1.x,版權所有 (c) 1997,Graham Barr。

這個程式是自由軟體;您可以在與 Perl 本身相同的條款下重新散布或修改它。