MQ_OPEN(3) | Linux Programmer's Manual | MQ_OPEN(3) |
mq_open - メッセージキューをオープンする
#include <fcntl.h> /* For O_* constants */ #include <sys/stat.h> /* For mode constants */ #include <mqueue.h> mqd_t mq_open(const char *name, int oflag); mqd_t mq_open(const char *name, int oflag, mode_t mode, struct mq_attr *attr);
-lrt でリンクする。
mq_open() は、新しい POSIX メッセージキューを作成するか、既存のキューを オープンする。キューは name で識別される。 name の構成の詳細については mq_overview (7) を参照。
oflag 引き数には、関数呼び出しの操作を制御するフラグを指定する (oflag の値の定義は <fcntl.h> のインクルードにより得られる)。 oflag には、以下のうちいずれか一つを必ず指定しなければならない。
0 個以上の下記のフラグを、ビット単位の OR (論理和) で oflag に追加で指定できる。
oflag に O_CREAT を指定する場合、追加で 2つの引き数を与える必要がある。 mode 引き数は、新しいキューに適用される許可設定 (permission) を、 open(2) と同じように指定する (許可ビットのシンボル定義は <sys/stat.h> のインクルードにより得られる)。 許可設定はプロセスの umask でマスクされる。
attr 引き数は、キューの属性を指定する。詳細は、 mq_getattr(3) を参照。 attr が NULL の場合、キューは実装で定義されたデフォルト属性で作成される。 Linux 3.5 以降では、2 つの /proc ファイルがあり、これらのデフォルト値を制御できる。 詳細は mq_overview(7) を参照。
成功すると、 mq_open() はメッセージキュー記述子 (message queue descriptor) を返す。 メッセージキュー記述子は他のメッセージキュー関連の関数で使用される。 エラーの場合、 mq_open() は (mqd_t) -1 を返し、 errno にエラーを示す値を設定する。
関数 mq_open() はスレッドセーフである。
POSIX.1-2001.
2.6.14 より前のカーネルには、 プロセスの umask が mode で指定された許可設定に適用されなかった。
mq_close(3), mq_getattr(3), mq_notify(3), mq_receive(3), mq_send(3), mq_unlink(3), mq_overview(7)
この man ページは Linux man-pages プロジェクトのリリース 3.79 の一部 である。プロジェクトの説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。
2014-12-31 | Linux |