今天看到了命名管道这,于是就写了个小程序实践一下
程序有两个,一个Sever,一个Client,主要功能是在客户端输入字符,
然后通过管道让服务端读取!
/*fifosever.c*/
#include
#include
#include
#include
#include
#define FIFO_FILE "MYFIFO"
int main (void)
{
FILE *fp;
char readbuf[80];
umask(0);
mknod(FIFO_FILE,S_IFIFO|0666,0);/*creat a fifo*/
while(1)
{
fp=fopen(FIFO_FILE,"r");
fgets(readbuf,80,fp);
printf("The message is:%s\n",readbuf);
fclose(fp);
}/*get information from FIFO*/
return 0;
}
/*fifoclient.c*/
#include
#include
#define FIFO_FILE "MYFIFO"
int main (int argc,char *argv[])
{
FILE *fp;
if(argc!=2)
{
printf("USAGE:fifoclient[string]\n");
exit(1);
}
if((fp=fopen(FIFO_FILE,"w"))==NULL)
{
perror("fopen");
exit(1);
}
fputs(argv[1],fp);
fclose(fp);
return 0;
}