12.07.2015 Views

RedHawk Linux User's Guide version 6.3 日本語版

RedHawk Linux User's Guide version 6.3 日本語版

RedHawk Linux User's Guide version 6.3 日本語版

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>RedHawk</strong> <strong>Linux</strong> User’s <strong>Guide</strong>The sem_openルーチンルーチン5sem_open(3)ライブラリ・ルーチンは、 呼 び 出 し 元 プロセスが 名 前 付 きカウンティング・セマフォの 作 成 、 初 期 化 、 接 続 を 確 立 することが 可 能 です。プロセスが 名 前 付 きカウンティング・セマフォを 作 成 する 時 、ユニークな 名 前 をセマフォへ 関 連連 付 けます。これもやはりセマフォに 保 護 されている 利 用 可 能 なリソースの 数 にセマフォの 値 を 設 定 します。 相 互 排 他 のために 名 前 付 きカウンティング・セマフォを 使 用 するには、プロセスは 値 を1に 設 定 します。名 前 付 きセマフォを 作 成 した 後 、 他 のプロセスはsem_openの 呼 び 出 しおよび 同 じ 名 前 の 指 定 によりそのセマフォへの 接 続 を 確 立 することが 可 能 となります。 正 常 に 完 了 するとsem_openルーチンは 名 前 付 きカウンティング・セマフォのアドレスを 返 します。プロセスはその 後 、sem_wait,sem_trywaitとsem_postの 呼 び 出 しでセマフォを 参 照 するためにそのアドレスを 使 用 します。プロセスはsem_closeルーチンもしくはexec(2), _exit(2)システムコールを 呼 び 出 すまで 名 前 付 きセマフォを 操 作 し 続 ける 可 能 性 があります。execもしくはexitの 呼 び 出 しで 名 前 付 きセマフォはsem_closeの 呼 び 出 しであるかのように 終 了 します。fork(2)システムコールにより 作 成 される 子プロセスは 親 プロセスが 確 立 した 名 前 付 きセマフォへのアクセスを 継 承 します。もしシングル・プロセスがsem_openを 同 じ 名 前 を 指 定 して 複 数 呼 び 出 しを 行 う 場 合 、(1)プロセス 自 身 がsem_closeの 呼 び 出 しを 通 してセマフォを 閉 じていない、もしくは、(2)いくつかのプロセスがsem_unlinkの 呼 び 出 しを 通 して 名 前 を 削 除 していない 限 り 同 じアドレスが 各 々の 呼 び 出し 元 に 返 されます。もし 複 数 のプロセスがsem_openを 同 じ 名 前 を 指 定 して 複 数 呼 び 出 しを 行 う 場 合 、いくつかのプロセスがsem_unlinkの 呼 び 出 しを 通 して 名 前 を 削 除 していない 限 り、 同 じセマフォ・オブジェクトのアドレスが 各 々の 呼 び 出 し 元 に 返 されます( 各 呼 び 出 しにおいて 必 ずしも 同 じアドレスが返 さるわけではないことに 注 意 してください)。もしプロセスがsem_unlinkの 呼 び 出 しを 通 して名 前 を 削 除 した 場 合 、セマフォ・オブジェクトの 新 しいインスタンスのアドレスが 返 されます。概 要#include sem_t *sem_open(const char *name, int oflag[, mode_t mode, unsigned int value ]);引 数 は 以 下 のように 定 義 されます:nameoflagセマフォの 名 前 を 指 定 するNULLで 終 了 する 文 字 列 。 接 頭 語 “sem” はname の 前に 付 加 され、セマフォは/dev/shmにデータファイルとして 作 成 されます。 先 頭のスラッシュ(/) 文 字 は 可 能 ( 移 植 性 のあるアプリケーションのために 推 奨 )ですがスラッシュを 途 中 に 埋 め 込 めません。 先 頭 のスラッシュ 文 字 も 現 在 の 作 業 ディレクトリも 名 前 の 解 釈 に 影 響 を 与 えません。 例 えば、/mysemとmysemは 両方 とも/dev/shm/sem.mysemとして 解 釈 されます。 接 頭 語 4 文 字 を 含 むこの 文字 列 は/usr/include/limits.hで 定 義 されるNAME_MAX 未 満 で 構 成 されている 事に 注 意 が 必 要 です。呼 び 出 し 元 プロセスが 名 前 付 きカウンティング・セマフォもしくは 既 存 の 名 前付 きカウンティング・セマフォへの 接 続 の 確 率 かどうかを 示 す 整 数 値 。 以 下 のビットが 設 定 することが 可 能 です:5-16

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!