我在写Linux下用进程模拟生产者和消费者的问题 现在写了main.c consumer.c producer.c 还有头文件head.h main.c是主程序,里面会启动生产者进程和消费者进程 consumer.c producer.c要用到head.h文件 问如何编译啊
//主进程
#include <unistd.h>
#include <stdlib.h>
#include "head.h"
int main()
{
int sem_id;
int shm_id;
int i,start;
sem_id = semget(SEM_ALL_KEY, 3, IPC_CREAT|0660);//创建信号量集合,一共三个
//初始化三个信号量集合
semctl(sem_id, SEM_EMPTY, SETVAL, 3);
semctl(sem_id, SEM_FULL, SETVAL, 0);
semctl(sem_id, SEM_MUTEX, SETVAL, 1);
shm_id = createQueue(); //创建共享主存
if(shmid<0)
{
perror("创建共享主存失败!");
exit(1);
}
//生成生产者进程
if(fork()==0)
execl("producer", "producer1", 0);
if(fork()==0)
execl("producer", "producer2", 0);
//生成消费者进程
if(fork()==0)
execl("consumer", "consumer1", 0);
if(fork()==0)
execl("consumer", "consumer2", 0);
if(fork()==0)
execl("consumer", "consumer3", 0);
//等待子进程
int stat,i;
for(i=0;i<5;i++)
wait(&stat);
removeQueue(shm_id);//释放共享主存
return 0;
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。