|
HOME > Linux Tips ( 目次 ) > Linux コマンド 一覧表 > f > ftok - ライブラリコールの説明 ftok - ライブラリコールの説明 - Linux コマンド集 一覧表名前ftok - パス名とプロジェクト識別子を System V IPC キーに変換する 書式
# include <sys/types.h> # include <sys/ipc.h> key_t ftok(const char * pathname , int proj_id ); 説明ftok ()関数は pathname で与えられたファイル (存在し、アクセス可能でなければならない) のファイル名の識別情報 (identity) と、 proj_id (0 であってはならない) の低位 8 ビットとを用いて、 key_t 型の System V IPC キーを生成する。 このキーは msgget (2), semget (2), shmget (2) などでの利用に適している。 同じファイルを示すあらゆるパス名と、同じ proj_id に対しては、結果の値は等しくなる。 ファイルが違ったり (この場合両者は同時に存在しているはず)、 proj_id が異なると、返り値も異なる。 返り値成功した場合は生成された key_t の値が返される。 失敗すると -1 が返され、エラーの内容が errno に書き込まれる。この内容はシステムコール stat (2) のものと同じである。 準拠POSIX.1-2001. 注意
libc4 と libc5 (および SunOS 4.x) では、
プロトタイプは
もちろん key_t が他と重ならないものであるかどうかは保証されない。 最善の場合の組み合わせを考えても、 proj_id の 1 バイト、i ノード番号の低位 16 ビット、および デバイス番号の低位 8 ビットなので、結果は 32 ビットに過ぎない。 例えば /dev/hda1 と /dev/sda1 それぞれにあるファイルに対して、衝突は容易に起こりうる。 関連項目
|
|