当前位置: 技术问答>linux和unix
一个信号量改变mode的问题
来源: 互联网 发布时间:2016-10-22
本文导语: void changemode(int sid , char *mode) 224 { 225 int rc; 226 union semun semopts; 227 struct semid_ds mysemds; 228 229 semopts.buf = &mysemds; 230 232 rc = semctl(sid , 0 , IPC...
void changemode(int sid , char *mode)
224 {
225 int rc;
226 union semun semopts;
227 struct semid_ds mysemds;
228
229 semopts.buf = &mysemds;
230
232 rc = semctl(sid , 0 , IPC_STAT , semopts);
233
234 printf("%dn" , rc);
236
237 if(rc == -1)
238 {
239 perror("semctl");
240 exit(1);
241 }
上面一段是 改变信号量对象mode的函数 为什么我在执行的时候运行到232行就会提示 参数不合法 semctl: Invalid argument 求教阿 谢谢
224 {
225 int rc;
226 union semun semopts;
227 struct semid_ds mysemds;
228
229 semopts.buf = &mysemds;
230
232 rc = semctl(sid , 0 , IPC_STAT , semopts);
233
234 printf("%dn" , rc);
236
237 if(rc == -1)
238 {
239 perror("semctl");
240 exit(1);
241 }
上面一段是 改变信号量对象mode的函数 为什么我在执行的时候运行到232行就会提示 参数不合法 semctl: Invalid argument 求教阿 谢谢
|
IPC_STAT 是获取状态
貌似语法没有问题
看看你的sid 是一个合法的信号灯吗..
貌似语法没有问题
看看你的sid 是一个合法的信号灯吗..
|
参数不合法 semctl: Invalid argument :提示就是说你的函数使用参数不对,你检查下,比如看看输入法是不是不对啊之类的,。这个问题应该不难解决