如上,这样也能把semid的0号信号的val打印出来,为什么?val = su.val不应该放在semctl后面才行吗?
int ret = 0;
union semun su;
int val;
val = su.val;
printf("val:%dn",val);//添加
ret = semctl(semid,0,GETVAL,su);
printf("val:%dn",val);
printf("val:%dn",su.val);//添加
我也感觉这个问题很奇怪。你看看上面的三个输出是不是一样?然后你再把赋值语句放在semctl后面试一试呢。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。