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#define SIZE 100 10int main() 11 { 12 if(mkfifo(_PATH_,0666|S_IFIFO)<0) 13 { 14 perror("mkfifo"); 15 return -1; 16 } 17 intfd=open(_PATH_,O_WRONLY); 18 if(fd<0) 19 { 20 perror("open"); 21 return -1; 22 } 23 char buf[SIZE]; 24 memset(buf,‘\0‘,SIZE); 25 while(1) 26 { 27 scanf("%s",buf); 28 write(fd,buf,strlen(buf)); 29 } 30 close(fd); 31 return 0; 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#define SIZE 100 10int main() 11 { 12 intfd=open(_PATH_,O_RDONLY); 13 if(fd<0) 14 { 15 perror("open"); 16 return -1; 17 } 18 char buf[SIZE]; 19 while(1) 20 { 21 22 memset(buf,‘\0‘,SIZE); 23 read(fd,buf,sizeof(buf)); 24 printf("%s\n",buf); 25 } 26 close(fd); 27 return 0; 28 } Makefile: 1.PHONY:all 2 all:client server 3 server:server.c 4 gcc -o [email protected] $^ 5client:client.c 6 gcc -o [email protected] $^ 7.PHONY:clean 8clean: 9 rm -f client server tmp
时间: 2024-10-26 12:34:03