作者wlsabcd (我不会C++)
看板LinuxDev
标题Re: [问题] 讯息驻列的问题
时间Wed May 2 21:59:43 2007
※ 引述《jokker (微雨从东来)》之铭言:
: Hi, 大家
: 我现在在看IPC ,遇到一个问题
: 程式如下
: #include <stdio.h>
: #include <mqueue.h>
: #include <sys/stat.h>
: #include <unistd.h>
: int main(int argc, char** argv){
: int c, flags;
: mqd_t mqd;
: mqd = mq_open(argv[1], O_RDONLY|O_CREAT);
: if( mqd == -1 )
: fprintf(stderr,"open fail.\n");
: mq_close(mqd);
: exit(1);
: }
: 编译过程如下
: #> gcc -lrt mqtest.c
: 执行结果如下
: #>./a.out /tmp/hello
: open fail.
: 在网路上找到很多人发问类似问题, 但是没有确定解答
: 请问有谁知道为什麽吗 ??
1. With O_CREAT, mode and attr argument are required
ex.
#define FILE_MODE (S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH)
#define FILE_FLAG (O_CREAT | O_EXCL | O_RDWR)
mq_open(argv[1], FILE_FLAG, FILE_MODE, NULL);
2. The opened queue has to start with the format "/queue_name"
ex.
#>./a.out /hello
3. refernce:
UNIX NETWORK PROGRAMMING Volume 2, 2nd Edition
BR.
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 203.70.77.219