UUCPLOCK

Section: C Library Functions (3)
索引 jman

BSD mandoc
 

索引

名称

uu_lock uu_unlock uu_lockerr - シリアルデバイスの制御権の取得および放棄  

索引

ライブラリ

Lb libutil  

索引

書式

In sys/types.h In libutil.h Ft int Fn uu_lock const char *ttyname Ft int Fn uu_lock_txfr const char *ttyname pid_t pid Ft int Fn uu_unlock const char *ttyname Ft const char * Fn uu_lockerr int uu_lockresult  

索引

解説

Fn uu_lock 関数は、渡された Fa ttyname により与えられる接尾辞を持つ /var/spool/lock/LCK.. という名前のロックファイルを作成しようと試みます。 そのファイルがすでに存在する場合は、ロックするプログラムのプロセス ID が そのファイルに入っているものと見なします。

そのファイルがまだ存在していないか、またはロックファイルの中にあった プロセス ID により与えられる所有側プロセスがもはや動いていない場合は、 Fn uu_lock 関数はファイルに自身のプロセス ID を書込んで成功を返します。

Fn uu_lock_txfr 関数は、ロック所有権をもう一つのプロセスに移転します。 Fn uu_lock 関数がその前に成功している必要があります。

Fn uu_unlock 関数は、与えられた Fa ttyname について Fn uu_lock によって作成されたロックファイルを削除します。 Fn uu_unlock を呼び出す前には、 Fn uu_lock が成功していなければならないことに注意してください。

Fn uu_lockerr 関数は、 Fn uu_lock から返されるものと同様に、エラー Fa uu_lockresult を表現するエラーストリングを返します。  

索引

戻り値

Fn uu_unlock 関数は、成功すると 0、失敗すると -1 を返します。

Fn uu_lock 関数は、次のいずれかの値を返します:

UU_LOCK_INUSE ロックは別のプロセスによって使われています。

UU_LOCK_OK ロックの作成に成功しました。

UU_LOCK_OPEN_ERR open(2) はロックファイルを開くことができません。

UU_LOCK_READ_ERR read(2) は、ロックファイルを読み取ることができません。

UU_LOCK_CREAT_ERR creat(2) は、一時ロックファイルを 作成することができません。

UU_LOCK_WRITE_ERR write(2) の呼び出しによって、現在のプロセス ID を ロックファイルに書込むことができません。

UU_LOCK_LINK_ERR link(2) は、一時ロックファイルをリンクすることができません。

UU_LOCK_TRY_ERR ロックする試みは、5 回の試行の後に失敗しました。

UU_LOCK_OK の値が Fn uu_lockerr に渡された場合は、空のストリングが 返されます。それ以外の場合は、失敗した理由を示すストリングが返されます。 Fn uu_lockerr は、現在の errno の値を使って正確なエラーを判断します。 Fn uu_lock を呼び出してから Fn uu_lockerr を呼び出すまでの間に errno が変化してしまわないように注意してください。

Fn uu_lock_txfr 関数は、次のいずれかの値を返します:

UU_LOCK_OK 転送は成功しました。指定したプロセスが現在デバイスロックを 持っています。

UU_LOCK_OWNER_ERR 現在のプロセスは、指定されたデバイスについての ロックをすでに持ってはいません。

write(2) の呼び出しによっては、新しいプロセス ID を ロックファイルに書込むことができません。  

索引

エラー

Fn uu_lock 関数が上のエラー値のいずれかを返した場合は、グローバル値 errno を使ってその理由を判断することができます。詳しくは、該当する マニュアルページを参照してください。

Fn uu_unlock 関数は、ロックファイルが削除できなかった理由を示す グローバル変数 errno を設定します。詳しくは、 unlink(2) についての解説を参照してください。  

索引

関連項目

lseek(2), open(2), read(2), write(2)  

索引

バグ

失効ロックを残したプログラムと同じプロセス ID が新しいプロセスに割り 当てられた場合は、失効したロックが失効を認識されない可能性があります。

呼び出しプロセスは、 /var/spool/lock ディレクトリに対する書込み許可を 持っていなければなりません。このディレクトリの許可がロックされる シリアルデバイスの許可と同じであることを保証する仕組みは備えていません。


 

索引

Index

名称
ライブラリ
書式
解説
戻り値
エラー
関連項目
バグ

jman



Time: 07:07:15 GMT, January 12, 2009