⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 进程通讯.txt

📁 LINUX下使用socket编程
💻 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 + -