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

/*
 * Exemplo de utilizacao de um FIFO
 * para enviar dados para outro processo
 *
 * Jose Rogado
 */

#define BUFSIZE 32
char buffer[BUFSIZE];

main(int argc, char *argv[])
{
    FILE *fd;
    char *p;

    if (argc != 2) {
        printf("Wrong arg. count\n");
        exit(1);
    }
    fd = fopen(argv[1], "w");
    if (fd == 0)
        perror("open");

    while(1) {
      p = fgets(buffer, BUFSIZE, stdin);
      if (p == NULL)
        break;
      fputs(buffer, fd);
      /* Necessario para esvaziar o I/O buffer */
      fflush(fd);
    }
    exit(0);
}
