免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1040 | 回复: 0
打印 上一主题 下一主题

关于消息队列 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-11-21 16:40 |只看该作者 |倒序浏览
unix网络编程: 进程间通信 (Richard Steven)



  1. #include "unpipc.h"


  2. int main(int argc, char **argv)
  3. {
  4.     int  c,flags;
  5.         mqd_t   mqd;
  6.        
  7.         flags = O_RDWR | O_CREAT;
  8.         while(c=getopt(argc,argv,"e") != -1 )
  9.         {
  10.             switch(c)
  11.                 {
  12.                     case  'e':
  13.                             flags |= O_EXCL;
  14.                                 break;
  15.                 }
  16.                        
  17.        
  18.        
  19.         }
  20.        
  21.         if (optind!=(argc-1))
  22.         {
  23.             fprintf(stderr,"usage:mqcreate[-e] <name>");
  24.                 exit (1);
  25.         }
  26.     mqd = mq_open(argv[optind],flags,FILE_MODE,NULL);
  27.        
  28.         mq_close(mqd);
  29.        
  30.         exit(0);
  31.        

  32. }
复制代码


运行 ./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);
       
不知为何?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP