📄 进程通讯.txt
字号:
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/msg.h>
#define MSGKEY 75
struct msgform { long mtype;
char mtext[256];
};
main()
{ struct msgform msg;
int msgid,pid,*pint;
msgid=msgget(MSGKEY,0777);
pid=getpid();
printf("client : pid=%d\n",pid);
pint=(int *)msg.mtext;
*pint=pid;
msg.mtype=1;
msgsnd(msgid,&msg,sizeof(int),0);
msgrcv(msgid,&msg,256,pid,0);
printf("client: receive from pid %d \n",*pint);
}
-------------------------------------------------
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/msg.h>
#define MSGKEY 75
struct msgform { long mtype;
char mtext[256];
};
int msgid;
main()
{ struct msgform msg;
int pid,*pint;
/* extern cleanup();*/
msgid=msgget(MSGKEY,0777|IPC_CREAT);
printf("server : pid=%d\n",pid);
for(;;)
{
msgrcv(msgid,&msg,256,1,0);
pint=(int *)msg.mtext;
pid=*pint;
printf("server: receive from pid %d \n",pid);
msg.mtype=pid;
*pint=getpid();
msgsnd(msgid,&msg,sizeof(int),0);
}
}
--------------------------------------------------
#include <sigmal.h>
main()
{
void catchint();
int i;
signal(SIGINT,catchint);
for(i=1;i<5;i++)
{ printf("sleep call #%d\n",i);
sleep(1);
}
printf("Exiting.\n");
exit(0);
}
void catchint(signo)
int signo;
{
/*signal(SIGINT,SIG_IGN);*/
printf("catchint: signo=%d\n",signo);
/*signal(SIGINT,catchint);*/
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -