ミスティーネットPerl・CGI講座 パール・CGIレッスン MISTY-NETレンタルサーバー・PERLプログラミング講座 CGI&PERL究極のレシピ
| HOME | ご利用について | 推奨環境 | リンクに関して | 免責/規約 | お問合せ | ミスティーネット | リンク集 |
Perl言語リファレンス

ミスティーネットPerl・CGI講座/基本編
ミスティーネットPerl・CGI講座/基本編
始めに 始めに
変数について 変数について
処理の制御1 処理の制御1
処理の制御2 処理の制御2
配列の処理 配列の処理
ハッシュの処理 ハッシュの処理
数値の扱い 数値の扱い
文字の扱い 文字の扱い
時間の処理 時間の処理
サブルーチン サブルーチン
ファイルの処理 ファイルの処理
ディレクトリの処理 ディレクトリ処理
CGIについて CGIについて
漢字の処理 漢字の処理
    (文字コード)
Cookie の処理 Cookie の処理
正規阜サ1 正規阜サ1
正規阜サ2 正規阜サ2
演算子について 演算子について
ライブラリ ライブラリ
デバッグ デバック
環境変数について 環境変数
ミスティーネットPerl・CGI講座/基本編

ミスティーネットPerl・CGI講座/応用編
ミスティーネットPerl・CGI講座/応用編
カウンターを作ってみよう カウンターを
     作ってみよう!
ミニゲームを作ってみよう ミニゲームを
     作ってみよう!
ミスティーネットPerl・CGI講座/応用編

  HOME >> アルファベットで関数を検索 >> shmget
shmget [SYSTEMV IPCのsemctl システムコールを実行し、共有メモリセグメントを取得する]
[関数の使い方・書式]

shmget ,,

(スカラー) 共有メモリセグメントのキー値。 ・・・ 通常事前に取り決めておく。
(スカラー) 新規作成する際はセグメントの大きさ(バイト数)。 ・・・ 大きすぎるとパフォーマンス問題発生の可能性。。
(スカラー) フラグ。 ・・・ 新規作成時はアクセス権限とパラメータの論理和。 アクセス権限の指定方法は UNIX のファイルシステムと同じ。
(スカラー) 成功時はセグメントID。エラー時は偽(未定義値)を返します。


[関数の機能]
新しい共有メモリセグメントを生成したり、アクセスして共有メモリセグメントのキーを返します。。
キー値が &IPC_PRIVATE の場合、新しい共有メモリセグメントが作成されます。 キー値は共有メモリセグメントの名前と使用されます。
&IPC_CREAT をフラグにセットしても、新規に共有メモリセグメントを作成することが出来ます。 その場合、新しい共有メモリセグメントはキーにセットされた名前で生成されIDが返されます。 二つ以上のプロセスに使用されるセグメントには0以外のキーを使用します。 但し、でセットしたキー値が既に存在していればその共有メモリセグメントのIDが返されます。

状況 戻り値
セットしたキー値 = 既存の共有メモリセグメントのキー値、かつ
     フラグ = 0
     フラグ = アクセス権限|&IPC_CREAT
     フラグ = アクセス権限|&IPC_CREAT|&IPC_EXCEL

既存の共有メモリセグメントID
既存の共有メモリセグメントID
未定義値
セットしたキー値 != 既存の共有メモリセグメントのキー値、かつ
     フラグ = 0
     フラグ = アクセス権限|&IPC_CREAT
     フラグ = アクセス権限|&IPC_CREAT|&IPC_EXCEL

未定義値
新しい共有メモリセグメントID
新しい共有メモリセグメントID

キー値が &IPC_PRIVATE ではなく、フラグがセットされていない場合、キーの値に合致する名前の共有メモリセグメントIDが返されるかエラーとなります。
プラットフォームで SYSTEMV IPC がサポートされている必要があります。エラー発生時には、$! にエラーコードがセットされます。


[書式の例]
$id = shmget $key, $nsems, $flags;


サンプルソース
require "sys/ipc.ph";
require "sys/msg.ph";
$| = 1;
$key = 0x123;
$size = 32;
$id = shmget($key, $size, $(&IPC_CREAT | 0644);
unless (defined $id) { die "shmget エラー: $!\n"; }
print "共有メモリID: $id\n";



| HOME | ご利用について | 推奨環境 | リンクに関して | 免責/規約 | お問い合わせ | ミスティーネット |
(C)Copyright 2002 ミスティーネット Inc. All Right Reserved.