- 论坛徽章:
- 0
|
想请教各位关于POSIX消息队列的问题,就是我按照<UNIX网络编程>卷2中编写了程序之后, 可以编译成功, 但是运行时问题报错, 说是 参数不正确.
想请教一下在Linux下该如何来使用POSIX消息队列? 谢谢.
如下是代码:
- #include<stdio.h>
- #include<mqueue.h>
- #include<stdlib.h>
- #include<unistd.h>
- #include<sys/types.h>
- int main(int argc, char **argv)
- {
- int c, flags;
- mqd_t mqd;
- flags = O_RDWR|O_CREAT;
- while ((c = getopt(argc, argv, "e")) != -1)
- {
- switch(c)
- {
- case 'e':
- flags |= O_EXCL;
- break;
- }
- }
- printf("optind = %d, argc = %d\n", optind, argc);
- if (optind != argc - 1)
- {
- printf("usage: mqcreate [-e]\n");
- exit(1);
- }
- if ((mqd = mq_open(argv[optind], flags, 0600, NULL)) == -1)
- {
- printf("mq_open error\n");
- perror("<errno>");
- exit(1);
- }
- mq_close(mqd);
- return 0;
- }
复制代码
我使用gcc mqcreate1.c -o mqcreate -lrt来进行编译, 在运行时报的错为
./mqcreate test
<errno>: Invalid argument
请教一下该怎样来使用. 谢谢! |
|