进程通信 (命名管道 单向通信)
client.c:1#include<stdio.h>2#include<stdlib.h>3#include<string.h>4#include<sys/stat.h>5#include<sys/types.h>6#include<unistd.h>7#include<fcntl.h>8#define_PATH_"./tmp"9#defineSIZE10010intmain()11{12if(mkfifo(_PATH_,0666|S_IFIFO)<0)13{14perror("mkfifo");15return-1;16}17intfd=open(_PATH_,O_WRONLY);18if(fd<0)19{20perror("open");21return-1;22}23charbuf[SIZE];24memset(buf,'\0',SIZE);25while(1)26{27scanf("%s",buf);28write(fd,buf,strlen(buf));29}30close(fd);31return0;32}server.c:1#include<stdio.h>2#include<stdlib.h>3#include<string.h>4#include<sys/stat.h>5#include<sys/types.h>6#include<unistd.h>7#include<fcntl.h>8#define_PATH_"./tmp"9#defineSIZE10010intmain()11{12intfd=open(_PATH_,O_RDONLY);13if(fd<0)14{15perror("open");16return-1;17}18charbuf[SIZE];19while(1)20{2122memset(buf,'\0',SIZE);23read(fd,buf,sizeof(buf));24printf("%s\n",buf);25}26close(fd);27return0;28}Makefile:1.PHONY:all2all:clientserver3server:server.c4gcc-o$@$^5client:client.c6gcc-o$@$^7.PHONY:clean8clean:9rm-fclientservertmp
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。