- 论坛徽章:
- 0
|
unix网络编程: 进程间通信 (Richard Steven)
- #include "unpipc.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;
- }
-
-
-
- }
-
- if (optind!=(argc-1))
- {
- fprintf(stderr,"usage:mqcreate[-e] <name>");
- exit (1);
- }
- mqd = mq_open(argv[optind],flags,FILE_MODE,NULL);
-
- mq_close(mqd);
-
- exit(0);
-
- }
复制代码
运行 ./createfifo myfifo 之后在当前目录下 ls -al
发现没有myfifo 之类的, 怎么回事啊?
gdb跟踪程序 set args -e myfifo
发现运行到if (optind!=(argc-1)) 时,optind=1, argc=3 为何不执行
fprintf(stderr,"usage:mqcreate[-e] <name>");
exit (1);
而是执行到了
mqd = mq_open(argv[optind],flags,FILE_MODE,NULL);
不知为何? |
|