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

📄 c.c

📁 在linux平台上实现两个进程之间的交互。一客户进程向一远程进程提交一道作业;远程进程完成作业后向客户进程返回执行结果或者是结束的信息。
💻 C
字号:
#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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -