FTOK(3) — NEWS-OS Programmer’s Manual
名称
ftok − 標準プロセス間通信パッケージ
形式
#include <sys/types.h>
#include <sys/ipc.h>
key_t ftok(path, id)
char ∗path;
char id;
解説
System V のプロセス間通信では、 プロセス間通信識別子を得るために、 msgget(2), semget(2), および shmget(2) システムコールで用いられる key を用意しなければなりません。 Key を作るための方法のひとつとして、以下に示す ftok サブルーチンを用いる方法があります。 もうひとつ key を作る方法としては、 プロジェクト ID を最上位バイトに使って、 残りのバイトをシーケンス番号として使う方法があります。 key を作るにはその他にいろいろな方法がありますが、 システムごとに key を作る標準の方法を定めておくことが必要です。 標準の方法が守られないと、 関連のないプロセスがお互いにそれぞれの実行に 予期しない妨害を与えることがあります。 そのため、 key の最上位バイトの値は、 システム全体で衝突が起きないように、 そのプロジェクトになんらかの関係があるものにすべきです。
Ftok は、 path と id を基にして、 msgget, semget, および、 shmget システムコールで使うための key を返します。 Path はそのプロセスがアクセスできる、 存在するファイルのパス名でなければなりません。 Id はプロジェクトを一意に識別できる1文字です。 Ftok はリンクされたファイルに対して同じ id で呼び出されると、 同じ key を返します。 また、同じファイルでも異なる id では、異なる key を返します。
関連事項
intro(2), msgget(2), semget(2), shmget(2).
診断
Ftok は path が存在しないかそのプロセスがアクセスできない場合は、 (key_t) −1 を返します。
注意事項
ftok に渡された path が消去された場合は、 そのファイルを参照している key がある場合でも、 それ以降の同じ path 、同じ id で呼び出された ftok はエラーを返します。 もしも、再度同じ名前のファイルが作られたとしても、 ほとんどの場合、 ftok は最初呼び出されたときとは異なる key を返します。
NEWS-OSRelease 4.1C