semop 错误File too large
来源: 互联网 发布时间:2016-04-17
本文导语: void up(int sem_id, int sem_num) { struct sembuf xx; xx.sem_num = sem_num; xx.sem_op = 1; xx.sem_flg = 0; if(semop(sem_id, &xx, 1)== -1) { fprintf(stderr,"Fail in upsemop:%sn",strerror(errno)); ...
void up(int sem_id, int sem_num)
{
struct sembuf xx;
xx.sem_num = sem_num;
xx.sem_op = 1;
xx.sem_flg = 0;
if(semop(sem_id, &xx, 1)== -1)
{
fprintf(stderr,"Fail in upsemop:%sn",strerror(errno));
//exit(1);
}
}
是不是删除了信号量之后会出现错误Invalid argument
那什么时候会出现错误File too large
还有改为sem_flg=SEM_UNDO有什么区别,up操作时信号量是不是立即加1
{
struct sembuf xx;
xx.sem_num = sem_num;
xx.sem_op = 1;
xx.sem_flg = 0;
if(semop(sem_id, &xx, 1)== -1)
{
fprintf(stderr,"Fail in upsemop:%sn",strerror(errno));
//exit(1);
}
}
是不是删除了信号量之后会出现错误Invalid argument
那什么时候会出现错误File too large
还有改为sem_flg=SEM_UNDO有什么区别,up操作时信号量是不是立即加1
|
File too large
应该不是 if(semop(sem_id, &xx, 1)== -1)
的错误,如果想知道某个操作的失败原因,最好在其之前,使errno=0;
应该不是 if(semop(sem_id, &xx, 1)== -1)
的错误,如果想知道某个操作的失败原因,最好在其之前,使errno=0;