mq_open(3) Library Functions Manual mq_open(3) mq_open - (librt -lrt) #include /* O_* */ #include /* */ #include 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); mq_open() POSIX . name. name mq_overview(7). oflag . ( .) oflag: O_RDONLY . O_WRONLY . O_RDWR . OR oflag: O_CLOEXEC ( 2.6.26) . open(2) . O_CREAT . ( ) . ( ) . O_EXCL O_CREAT oflag name EEXIST. O_NONBLOCK . mq_receive(3) mq_send(3) EAGAIN. O_CREAT oflag . mode open(2). ( .) umask . struct mq_attr attr . : struct mq_attr { long mq_flags; /* ( mq_open()) */ long mq_maxmsg; /* */ long mq_msgsize; /* () */ long mq_curmsgs; /* ( mq_open()) */ }; mq_maxmsg mq_msgsize mq_open() . attr NULL . 3.5 /proc mq_overview(7) . mq_open() . mq_open() (mqd_t) -1 errno . EACCES . EACCES name . EEXIST O_CREAT O_EXCL oflag name . EINVAL name mq_overview(7). EINVAL O_CREAT oflag attr attr->mq_maxmsg attr->mq_msqsize . . ( CAP_SYS_RESOURCE) attr->mq_maxmsg msg_max attr->mq_msgsize msgsize_max. attr->mq_maxmsg HARD_MAX. ( mq_overview(7) .) EMFILE ( RLIMIT_NOFILE getrlimit(2)). ENAMETOOLONG name . ENFILE . ENOENT O_CREAT oflag name. ENOENT name "/" . ENOMEM . ENOSPC . queues_max mq_overview(7). attributes(7). +------------+------------------------------------+--------------------+ || | | +------------+------------------------------------+--------------------+ |mq_open() | | MT-Safe | +------------+------------------------------------+--------------------+ C mq_open() . name (/) EINVAL . name C name ( name+1) . POSIX.1-2008. 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) 3 . . : . 6.18 8 2026 mq_open(3)