尝试使用信号量同步unix上的进程,sem_wait()
失败并出现错误"成功"。
我有3个进程,每个进程运行相同的代码:
while( sem_wait( &sem ) == -1 );
if( errno != EINTR )
{
perror("Failed to lock semaphore");
}
/* critical section */
while( sem_post( &sem ) < 0 )
{
perror("Failed to unlock semaphore");
}
在创建子进程之前(和之后),在父进程中调用 sem_init()
和sem_destroy()
。结果是:
Failed to lock semaphore: Success
Failed to lock semaphore: Success
Failed to lock semaphore: Success
sem_wait()
失败了吗?如果确实如此,为什么会说&#34;成功&#34;?