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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>RedHawk</strong> <strong>Linux</strong> User’s <strong>Guide</strong>semctl(2)サービスコールで 使 用 されるsemid_ds 構 造造 体 を 図 5-2に 示 します。図 5-2 semid_ds 構 造造 体 の 定 義struct semid_ds {struct ipc_perm sem_perm; /* operation permission struct */__time_t sem_otime; /* last semop() time */unsigned long int __unused1;__time_t sem_ctime; /* last time changed by semctl() */unsigned long int __unused2;unsigned long int sem_nsems; /* number of semaphores in set */unsigned long int __unused3;unsigned long int __unused4;};semid_dsデータ 構 造造 体 はにありますが、ユーザー・アプリケーションはヘッダ・ファイルを 内 部邪 的 に 含 むヘッダ・ファイルを 含 める 必 要 があります。この 構 造造 体 のメンバーsem_permはipc_perm 型 であることに 注 意 してください。このデータ 構造造 体 は 全 てのIPC 機 能 (ヘッダ・ファイル)と 同 じですが、ユーザー・アプリケーションはヘッダ・ファイルを 内 部邪 的 に 含 むファイルを 含 める 必 要 があります。ipc_permデータ 構 造造 体 の 詳 細 は3 章 の「System Vメッセージ」セクション 内 に 記 述 されています。semget(2)システムコールは2つの 仕 事 のうち1つを 実 行 します:• 新 しいセマフォ 集 合 識 別 子 を 作 成 し、それ 用 に 対 応 するデータ 構 造造 体 とセマフォ 集 合 を作 成 します• 既 に 関 連連 付 けられたデータ 構 造造 体 とセマフォ 集 合 を 持 つ 既 存 のセマフォ 集 合 識 別 子 を 見つけます実 行 されるタスクはsemgetシステムコールへ 渡 すkey 引 数 の 値 により 決 まります。もしkey が 既存 のsemid で 使 用 されておらずIPC_CREATフラグが 設 定 されていない 場 合 、 新 しいsemid はシステム・チューニング・パラメータを 超 えない 条 件 で 関 連連 付 けられたデータ 構 造造 体 と 作 成 されたセマフォの 集 合 と 共 に 返 されます。key の 値 をゼロに 指 定 するためにプライベート・キー(IPC_PRIVATE) として 知 られる 条 件 もあります。このキーが 指 定 される 時 、 新 しい 識 別 子 はシステム・チューニング・パラメータを 超 えない 限 り、 常 に 関 連連 付 けられたデータ 構 造造 体 と 作 成 されたセマフォの 集 合 と 共 に 返 されます。ipcs(8)コマンドはsemid 用 のkey フィールドを 全 てゼロとして 表 示 します。セマフォ 集 合 が 作 成 される 時 、semgetを 呼 び 出 すプロセスは 所 有 者 / 作 成 者 になり、 関 連連 付 けられるデータ 構 造造 体 はそれに 応 じて 初 期 化 されます。 所 有 権 は 変 更 される 可 能 性 がありますが、 作成 されるプロセスは 常 に 作 成 者 のままでいることを 思 い 出 してください(「semctlシステムコール」セクションを 参 照 してください)。セマフォ 集 合 の 作 成 者 はこの 機 能 のために 最 初 の 操 作 パーミッションもまた 決 定 します。5-30

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

Saved successfully!

Ooh no, something went wrong!