c.c

来自「在linux平台上实现两个进程之间的交互。一客户进程向一远程进程提交一道作业;远」· C语言 代码 · 共 71 行

C
71
字号
#include  <unistd.h>       /*CLIENT PROCESS */# include <stdio.h># include <sys/msg.h># include <sys/types.h># include <sys/ipc.h># include <sys/wait.h># include <errno.h># define msgkey 181struct mymsgform{                long mtype;                char mpath[250];                }msg;main()                     /*MAIN PROGRAME*/{ int qid,pid; printf("(C)THE MSGKEY IS :%d\n",msgkey);    if ((qid=open_queue(msgkey))==-1)    {    perror("open_queue");    exit(1);    }    msg.mtype=1;    printf("(C)PLEASE INPUT THE PATH OF YOU WANT RUN PROGRAME!\n");    gets(msg.mpath);    if ((send_message(qid,&msg))==-1)    {    perror("send_message");    exit(1);    }    printf("(C)THE QUEUE ID IS:%d\n",qid);    printf("(C)THE PROCESS HAD SEND A MESSAGE!\n");    printf("(C)WAIT THE RESULT OF RUN BY SEVER!\n");    while ((read_message(qid,msg.mtype,&msg))==-1)    { }    printf(msg.mpath);    printf("  (C)WORK FILISHED!\n");}int open_queue(int keyval)    /*creat a message queue*/{int qid; if ((qid=msgget(keyval,IPC_CREAT|0660))==-1) { return(-1); } return(qid); printf("(C)THE KEY OF THE MSG QUEUE IS:%d\n",qid);}int send_message(int qid,struct mymsgform*msg)       /*send message to message queue*/{  int result,length;  length=sizeof(struct mymsgform)-sizeof(long);  if ((result=msgsnd(qid,msg,length,0))==-1)     {     return(-1);     }     return(result);}int read_message(int qid,long type,struct mymsgform*msg)   /*read mesaage from message queue*/{   int result,length;   length=sizeof(struct mymsgform)-sizeof(long);   if ((result=msgrcv(qid,msg,length,type,0))==-1)   {    return(-1);    }    return(result);}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?