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.

リアルタイム・プロセス 間 通 信shm_unlinkルーチンの 利 用 3shm_unlink(3)ルーチンは 呼 び 出 し 元 プロセスが 共 有 メモリ・オブジェクトの 名 前 を 削 除 することを 許 可 します。もし1つ 以 上 のプロセスが 呼 び 出 した 時 点 で 共 有 メモリ・オブジェクトにマッピングされたアドレス 空 間 の 一 部邪 を 所 有 している 場 合 、shm_unlinkが 返 す 前 に 名 前 は 削 除 されますが、 共 有 メモリ・オブジェクトの 中 のデータは 最 後 のプロセスがマッピングしたオブジェクトを 削 除 するまで 削 除 されません。もしプロセスがmunmap(2), exec(2), exit(2)を 呼 び 出 した 場合 、マッピングは 削 除 されます。概 要#include #include int shm_unlink(const char *name);引 数 は 以 下 のように 定 義 されます:name削 除 する 共 有 メモリ・オブジェクト 名 を 指 定 するNULLで 終 わる 文 字列 のポインタ。この 文 字 列 は 最 大 255 文 字 に 制 限 される 可 能 性 があることに 注 意 してください。これに 先 頭 のスラッシュ(/) 文 字 を 含 めることが 可 能 ですが、 途 中 にスラッシュ 文 字 を 含 めてはいけません。この 名 前 はファイル・システムの 一 部邪 ではないことに 注 意 してください: 先 頭 のスラッシュも 現 在 の 作 業 ディレクトリも 名 前 の 解 釈 に 影 響を 及 ぼしません(/shared_objとshared_objは 同 一 の 名 前 として 解 釈します)。もしPOSIXインターフェースをサポートするあらゆるシステムに 移 植 できるコードを 書 きたいと 考 えているのであれば、nameはスラッシュ 文 字 で 始 めることを 推 奨 します。System V 共 有 メモリ 3戻 り 値 0はshm_unlinkの 呼 び 出 しが 成 功 したことを 示 します。 戻 り 値 -1はエラーが 発 生 したことを 示 します。errnoはエラーを 示 すために 設 定 されます。 発 生 する 可 能 性 のあるエラーのタイプのリストについてはshm_ unlink(3)のmanページを 参 照 してください。もしエラーが 発 生 した 場合 、shm_unlinkの 呼 び 出 しは 名 前 付 き 共 有 メモリ・オブジェクトを 変 更 しません。共 有 メモリは2つ 以 上 のプロセスがメモリ、つまりその 中 に 格 納 されているデータを 共 有 することを 可 能 にします。これは 共 通 の 仮 想 メモリアドレス 空 間 へのアクセスの 設 定 を 許 可 することによって 行 われます。この 共 有 は 領 域 ベースで 存 在 し、それはハードウェア 依 存 のメモリ 管 理 となります。プロセスは 最 初 にshmget(2)システムコールを 使 って 共 有 メモリ 領 域 を 作 成 します。 作 成 に 関 し、プロセスは 共 有 メモリ 領 域 のために 全 体 的 な 操 作 許 可 を 設 定 して、サイズをバイトで 設 定 し、 共有 メモリ 領 域 を 参 照 専 用 ( 読 み 取 り 専 用 )で 結 合 するように 指 定 することが 可 能 です。もしメモリ 領 域 が 参 照 専 用 として 指 定 されていない 場 合 、 適遚 切 な 操 作 許 可 を 持 つ 他 の 全 てのプロセスはメモリ 領 域 の 読 み 取 り、または 書 き 込 みが 可 能 です。システム 上 の 共 有 メモリ 領 域 は/proc/sysvipc/shmファイルおよび-mオプションを 使 用 してipcs(8)を 介 して 見 ることができます。3-15

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

Saved successfully!

Ooh no, something went wrong!