G. FIFO Client/Server Program in Unix Using C Programming

FIFO Server Program

/* FIFO Server Program In C*/

#include<stdio.h>
#include<unistd.h>
#include<fcntl.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<string.h>
int main() {
 char fname[25] = "";
 char fcontent[100] = "";
 int fd, fd1, fd2;
 mkfifo("fifo1", 0600);
 mkfifo("fifo2", 0600);
 fd = open("fifo1", O_RDONLY);
 fd1 = open("fifo2", O_WRONLY);
 read(fd, fname, 25);
 fd2 = open(fname, O_RDONLY);
 while (read(fd2, fcontent, 100) != 0) {
   printf("%s\n", fcontent);
   if (fd < 0)
    write(fd1, "file not exit", 14);
   else
    write(fd1, fcontent, strlen(fcontent));
 }
 close(fd);
 close(fd1);
 close(fd2);
}

FIFO Client Program

/* FIFO Client Program In C*/

#include<stdio.h>
#include<unistd.h>
#include<fcntl.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<string.h>
int main() {
 char s[100] = "";
 char s1[1000] = "";
 int fd, fd1;
 fd = open("fifo1", O_WRONLY);
 fd1 = open("fifo2", O_RDONLY);
 printf("\nEnter the file name:");
 scanf("%s", s);
 write(fd, s, strlen(s));
 while (read(fd1, s1, 1000) != 0) {
   printf("File Content :%s", s1);
 }
}

Sample Output

Enter the file name:strcmp.c

File Content :#include<stdio.h>
#include<unistd.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<stdlib.h>
include<string.h>
int main(int argc,char *argv[])
{
        if(strcmp(argv[1],argv[2])==0)
                printf("The gistrcmp.c
#strcmp.cFile Content :include<string.h>
int main(int argc,char *argv[])
{
       if(strcmp(argv[1],argv[2])==0)
ven strings are equal");
        else
                printf("The strings are not equal");
}
rgv[2])==0)
                printf("The gistrcmp.c
                printf("The gistrcmp.cFile Content :ven strings are equal");
        else
                printf("The strings are not equal");
}
                printf("The gistrcmp.c[1]+  Done                    ./server