#include <stdio.h>
// #include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/stat.h>


int main(int argc, char **argv)
{
   struct stat st;
   int fildes = 0;
   static char fname[] = "./pipe";

   unlink(fname);

   mkfifo(fname, 0644);

   if ((fildes = open(fname, O_RDWR)) != (-1)) {

      printf("trying to set mode 04777 ");
      fchmod(fildes, 04777);
      fstat(fildes, &st);
      printf(" - result mode %o\n", st.st_mode);

      printf("trying to set mode 02777 ");
      fchmod(fildes, 02777);
      fstat(fildes, &st);
      printf(" - result mode %o\n", st.st_mode);

      close(fildes);
   }
   unlink(fname);

   return 0;
}
