mkfifo_write.c
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <errno.h>
int main(int argc, const char *argv[])
{
int fd ;
char ch[1024] = "" ;
if(argc != 2)
{
fprintf(stderr,"Usage:%s fifo\n",argv[0]);
return -1;
}
fd = open(argv[1],O_RDWR);
while(1)
{
fgets(ch,sizeof(ch),stdin);
write(fd,ch,sizeof(ch));
if(strncmp(ch,"quit",4) == 0)
{
exit(0);
}
}
return 0;
}
mkfifo_read.c
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <errno.h>
int main(int argc, const char *argv[])
{
int fd ;
char ch[1024] = "" ;
size_t size = 0;
if(argc != 2)
{
fprintf(stderr,"Usage:%s fifo\n",argv[0]);
return -1;
}
fd = open(argv[1],O_RDWR);
while(1)
{
//fgets(ch,sizeof(ch),stdin);
// write(fd,ch,sizeof(ch));
size = read(fd,ch,sizeof(ch));
if(size == 0)
{
continue;
}
if(strncmp(ch,"quit",4) == 0)
{
exit(0);
}
printf("Read: %s\n",ch);
}
return 0;
}