实验六:进程间通信
●实验目的:
学会进程间通信方式:无名管道,有名管道,信号,消息队列,
●实验要求:
(一)在父进程中创建一无名管道,并创建子进程来读该管道,父进程来写该管道(二)在进程中为SIGBUS注册处理函数,并向该进程发送SIGBUS信号
(三)创建一消息队列,实现向队列中存放数据和读取数据
●实验器材:
软件:安装了Linux的vmware虚拟机
硬件:PC机一台
●实验步骤:
(一)无名管道的使用
1、编写实验代码pipe_rw.c
#include
#include
#include
#include
#include
#include
int main()
{
int pipe_fd[2];//管道返回读写文件描述符
pid_t pid;
char buf_r[100];
char* p_wbuf;
int r_num;
memset(buf_r,0,sizeof(buf_r));//将buf_r初始化
char str1[]=”parent write1 “holle””;
char str2[]=”parent write2 “pipe”\n”;
r_num=30;
/*创建管道*/
if(pipe(pipe_fd)<0)
{
printf("pipe create error\n");
return -1;
}
/*创建子进程*/
if((pid=fork())==0) //子进程执行代码
{