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

📄 cli_max.c

📁 lpc implement for distribut
💻 C
字号:
#include <stdio.h>#include <sys/types.h>#include <unistd.h>#include <sys/ipc.h>#include <sys/msg.h>#include "mymsg.h"int   open_attach(char *,int);int   door_call(int ,char *);int   call_result(int);int   door_msg_id=-1;message *rcv_msg,        *snd_msg;int     rcv_len,        snd_len;int main(int argc,char **argv){  int   fd;  char  snd_str[2*MAXSIZE],        chrtmp[20];;  if (argc != 4)  {    error_quit("*****usage: client <client_pathname> <string1> <string2>*****");    exit (1);  }  if ( strlen(argv[2]) > 20 || strlen(argv[3]) > 20)  {     error_quit("*****input is too long,try again(<=20******");     exit (1);  }  fd = open_attach(argv[1],'1');  strcpy(chrtmp,argv[2]);  strcat(chrtmp,"+");  strcpy(snd_str,chrtmp);  strcat(snd_str,argv[3]);  snd_str[strlen(snd_str)+1] ='\0';  door_call(fd,snd_str);  call_result(fd);  exit (0);}int open_attach(char *pathname,int def){  int door_id;  door_id = ftok(pathname,def);  door_msg_id = msgget(door_id,0);  if (door_msg_id == -1)  {     error_quit("!!! get door error!!!\n");     exit (1);  }  return (door_msg_id);}int door_call(int fd,char *ptr){  int ret;  int size;  size = 2*sizeof(long) + strlen(ptr) +1;  snd_msg=(message *)malloc(size);  snd_msg->m_type = CLIENT_INPUT;  snd_msg->process_id = getpid();  strncpy(snd_msg->m_buf,ptr,strlen(ptr));  snd_len = sizeof(long) + strlen(snd_msg->m_buf);  if ((ret = msgsnd(fd,snd_msg,snd_len,0)) < 0)  {     error_quit("send message to server ");     exit (1);  }  printf("<<<send a request to server----%s>>>\n",ptr);  free(snd_msg);  return (0);}int call_result(int fd){  int  len;  long type;  rcv_msg =(message *)malloc(MAXSIZE+2*sizeof(long));  type = getpid();  if ((len = msgrcv(fd,rcv_msg,sizeof(rcv_msg)-sizeof(long),type,0)) < 0)  {     error_quit("!!!receive result error!!!\n ");     exit (1);  }  printf("<<<the result from server is %s>>>\n",rcv_msg->m_buf);  free(rcv_msg);  return (0);}

⌨️ 快捷键说明

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