当前位置:首页 > 进程通信 实验
void stop() { }
main(){
/*定义共享内存*/
int shmid1,shmid2;//定义2个共享存储区的内部标识
char *addr,*array;
/*创建并附接共享内存*/
shmid1=shmget(IPC_PRIVATE,BUFSIZE,IPC_CREAT|0666);
shmid2=shmget(IPC_PRIVATE,BUFSIZE,IPC_CREAT|0666);
addr=(char *)shmat(shmid1,NULL,0);
array=(char *)shmat(shmid2,NULL,0);
/*创建消息队列并初始化*/
int msgid;
msgid=msgget(IPC_PRIVATE,IPC_CREAT|0666);
pid=getpid();//获取父进程ID号
while((pid1=fork())==-1);
if(pid1>0){
while((pid2=fork())==-1);
if(pid2==0){
while(1){
memset(buffer,'\\0',0);
scanf(%uffer);//
从
终
端
输
入
字
符
串
memset(msg.mtext,'\\0',0);
strcpy(msg.mtext,buffer);
msg.mtype=1;//设置消息类型为1
if(msgsnd(msgid,&msg,MAXMSG,0)<0)return 0;//向子进程息
if(strcmp(buffer,\ }
exit(0); } else {
printf(\input a line:\\n\提示输入
while(1){
signal(16,stop);//
1
发送消
共分享92篇相关文档