请教UNIX 网络编程 卷2 中的小问题

sws_martian 2011-04-07 11:35:25
共享内存一章 ,其中有一个文件incr1.c,不分代码

err_quit("usage: incr1 <#loops>");
nloop = atoi(argv[1]);

/* 4create, initialize, and unlink semaphore */
mutex = Sem_open(Px_ipc_name(SEM_NAME), O_CREAT /*| O_EXCL*/, FILE_MODE, 1);
Sem_unlink(Px_ipc_name(SEM_NAME));

setbuf(stdout, NULL); /* stdout is unbuffered */

编译成功后运行总报错:sem_open error for /tmp/mysem: No such file or directory
请问是什么原因。我的环境是suse 10。
...全文
163 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
子晞 2013-06-14
  • 打赏
  • 举报
回复
justkk正解
justkk 2011-04-07
  • 打赏
  • 举报
回复
先用一个常量试试
mutex = Sem_open("/aaa", O_CREAT /*| O_EXCL*/, FILE_MODE, 1)
就想叫yoko 2011-04-07
  • 打赏
  • 举报
回复
你包含的/tmp/mysem这个路径有问题
justkk 2011-04-07
  • 打赏
  • 举报
回复
书上有一句话,“为便于移植起见,Posix IPC名字必须以一个斜杠符打头,并且不能再含有任何其他斜杠符”
justkk 2011-04-07
  • 打赏
  • 举报
回复
我也不确定
有些系统中要求名字必须以/打头,并且不能包含路径
sws_martian 2011-04-07
  • 打赏
  • 举报
回复
前辈正解,是我弄错了。只是不知道为什么会这样?
[Quote=引用 2 楼 justkk 的回复:]

先用一个常量试试
mutex = Sem_open("/aaa", O_CREAT /*| O_EXCL*/, FILE_MODE, 1)
[/Quote]
sws_martian 2011-04-07
  • 打赏
  • 举报
回复
换了还是不行啊

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧