For some reason if I do a second open, it compiles but when I try to run it, it does nothing like it's locked. It's missing a lot of other functions, because it's a work in progress for a school project. If I remove one of the open(), the program runs just fine.
#include <fcntl.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <unistd.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define BUFFER_SIZE 100
#define INPUT "/tmp/father"
int main(int argc, char **argv)
{
    int fds;
    int fd;
    char mode[BUFFER_SIZE];
    char buffer[BUFFER_SIZE];
    unlink(INPUT);
    mkfifo(INPUT, S_IRUSR | S_IWUSR);
    if(argc != 2)
    {
        fputs("Argumentos invalidos\n", stderr);
        exit(EXIT_FAILURE);
    }
    fd = open(argv[1], O_WRONLY);
    if(fd == -1)
    {
        fprintf(stderr, "\nCan't open pipe\n");
        exit(EXIT_FAILURE);
    }
    fds = open(INPUT, O_RDONLY);
    if(fds == -1)
    {
        fprintf(stderr, "\nCan't open pipe\n");
        exit(EXIT_FAILURE);
    }
    while(1)
    {
        fgets(buffer,BUFFER_SIZE,stdin);
        sscanf(buffer,"%s", mode);      
        write(fd,buffer,strlen(buffer));
    }
}
 
     
    