当前位置: 技术问答>linux和unix
用信号量同步生产者消费者的问题
来源: 互联网 发布时间:2016-07-29
本文导语: 用信号量同步生产者消费者。 大家帮我看看这个程序错在哪了。 为什么信号量为0时没有阻塞进程? 还有sembuf结构有个sem_flag成员, 那个SEM_UNDO位是做什么的?我看apue没看明白。 #include "apue.h" #include #include #i...
用信号量同步生产者消费者。
大家帮我看看这个程序错在哪了。
为什么信号量为0时没有阻塞进程?
还有sembuf结构有个sem_flag成员, 那个SEM_UNDO位是做什么的?我看apue没看明白。
大家帮我看看这个程序错在哪了。
为什么信号量为0时没有阻塞进程?
还有sembuf结构有个sem_flag成员, 那个SEM_UNDO位是做什么的?我看apue没看明白。
#include "apue.h"
#include
#include
#include
#include
#define N 10
#define MUTEX 0
#define FULL 1
#define EMPTY 2
typedef union semun {
int val;
struct semid_ds *buf;
unsigned short *array;
};
int num = 0;
int init_sem(int, int , int);
int up(int, int);
int down(int, int);
void producer(int);
void consumer(int);
int main (int argc, char *argv[])
{
int semid;
pid_t pid1, pid2;
if ((semid = semget(IPC_PRIVATE, 3, 0660))