当前位置:  技术问答>linux和unix

关于 信号量操作函数semop 报 Invalid argument错误的问题

    来源: 互联网  发布时间:2017-04-20

    本文导语:  本帖最后由 only_yestoday 于 2013-08-02 09:02:21 编辑 主函数是把信号量 V了两次,然后又P几次,这是没问题的,当信号量得值变成0之后再V操作的话,信号量的值变成-1后程序就阻塞了。可是当我在当我开了几个线程后,然...

本帖最后由 only_yestoday 于 2013-08-02 09:02:21 编辑
主函数是把信号量 V了两次,然后又P几次,这是没问题的,当信号量得值变成0之后再V操作的话,信号量的值变成-1后程序就阻塞了。可是当我在当我开了几个线程后,然后在线程里面去进行P操作问题就出来了,如标题写的那样,semop函数会报Invalid argument错误,而且线程不会阻塞。大侠们帮帮忙吧,刚接触LINUX
另外还是工作需要。测试程序如下面,并一起给出MAKEFILE

#include 
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include

union   semun  
{  
 int   val;                     //   value   for   SETVAL  
 struct   semid_ds   *buf;      //   buffer   for   IPC_STAT,   IPC_SET   
 unsigned short   *array;        //   array   for   GETALL,   SETALL   
                                    //   Linux   specific   part  
 struct   seminfo   *__buf;     //   buffer   for   IPC_INFO     
};

int sid;

int CreateSem(const char *pathname, int subid, int members, int initvar)
{
 key_t key;
 int sid,index;
 union semun semopts;
 if((key=ftok(pathname, subid))==-1)
 {
  perror("ftok erro!");
  return -1;
 }
 
 if((sid=semget(key, members, IPC_CREAT))==-1)
 {
  perror("Fail to create semaphore !");
  return -1;
 }
 semopts.val = initvar;
 for(index = 0; index 

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 生产者消费者问题为什么不可以共用一个信号量,如果这个信号量可以设置取值固定为0到N,即当信号量取值为N的时候阻塞进程,是否也可以?
  • 自旋锁和读写自旋锁、信号量和读写信号量分别有什么区别?
  • semaphore.h sem.c Posix 信号量 System v 信号量
  • 书上说,中断用自旋锁,进程,用信号量,但是,为什么中断不能用信号量?
  • 请问线程中的信号量,怎么设置成0,1信号量?
  • 关于信号量与UNIX信号的疑问
  • 多个进程共用一个信号量,如果某个进程死掉,此时又将信号量锁定,其它进程就死掉,有什么办法可以解决这一问题
  • 当信号量(灯)遇上信号,help!
  • POSIX:有名信号量 和SYStem V的信号量 你用哪个?
  • 求助一些关于信号量的问题
  • 关于消息队列信号量信号共享内存等核心编程的问题(求知若渴!!!.....)
  • linux 中信号量的使用 当信号初始化的时候设置的值大于1将是如何?
  • 关于信号量的问题
  • 【求助】多进程中 内核信号量无效?
  • 为什么中断不能用信号量?
  • 信号量
  • 信号量释放
  • 信号量的烦恼
  • 信号量的问题
  • 进程间通过信号量通信


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,