免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3209 | 回复: 7

[C] 关于信号量的部分,遇见一个问题过不了 [复制链接]

论坛徽章:
0
发表于 2011-06-14 00:39 |显示全部楼层
本帖最后由 duwei211 于 2011-06-14 00:58 编辑
  1. key_t i = 0;
  2.         i = ftok( FILE, 42 );
  3.         printf("ftok i = %d\n",i);

  4.         if( (semp = semget(i, 1, 0666)) == -1 )
  5.         {
  6.                 perror("semget");
  7.                 printf("创建信号量集合失败\n");
  8.         }
复制代码
这段出现的问题:
semget: No such file or directory
创建信号量集合失败

网上找过一些方法,有的说是文件没有权限,最后我修改了文件权限还是一样,求高手!!!

论坛徽章:
0
发表于 2011-06-14 00:40 |显示全部楼层
UP!

论坛徽章:
0
发表于 2011-06-14 00:46 |显示全部楼层
急!有知道的帮帮忙啊,明天8点就要上班,不弄正确睡不下啊

论坛徽章:
0
发表于 2011-06-14 03:42 |显示全部楼层
本帖最后由 vupiggy 于 2011-06-13 20:45 编辑

RTFM

man semget

...
ENOENT
                No semaphore set exists for key and semflg did not specify IPC_CREAT.
...
  1. if ((semid = semget(semkey, 0, 0)) == -1) {


  2.     /* Semaphore does not exist - Create. */
  3.     if ((semid = semget(semkey, 1, IPC_CREAT | IPC_EXCL | S_IRUSR |
  4.         S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH)) != -1)
复制代码

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:48:31平安夜徽章
日期:2015-12-26 00:06:30C
日期:2016-10-25 16:26:25
发表于 2011-06-14 09:42 |显示全部楼层
楼上的是正解

论坛徽章:
0
发表于 2011-06-14 10:48 |显示全部楼层
学习~~~

论坛徽章:
0
发表于 2011-06-14 11:00 |显示全部楼层
kernel.sem=1024 32000 100 2048

试试?

论坛徽章:
0
发表于 2011-06-15 07:22 |显示全部楼层
3Q大家。3Q vupiggy
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP