mkfifo() не может создать файл в C

Я пытаюсь создать именованный канал в C, но безуспешно.

Вот мой код:

#define FIFO_NAME "/tmp/myfifo"
int main(){
    int fd;
    fd = mkfifo(FIFO_NAME, 0666);//, 0);
    if(fd<0){
      fprintf(stderr,"Error creating fifo\n");
      exit(0);
    }

При запуске приведенного выше кода каждый раз, когда выходит вывод:

Error creating fifo

Пожалуйста помоги.


person vidit jain    schedule 02.12.2015    source источник
comment
используйте perror для печати фактического сообщения об ошибке   -  person bolov    schedule 02.12.2015
comment
проверьте, есть ли у вас права на запись в cwd   -  person bolov    schedule 02.12.2015
comment
Вы проверили ошибку? Вероятно, СУЩЕСТВУЕТ, если я должен был предположить.   -  person Flexo    schedule 02.12.2015
comment
проверьте, что файла уже нет   -  person bolov    schedule 02.12.2015
comment
Вы хотите заменить fprintf(stderr,"Error creating fifo\n"); на perror("mkfifo() failed");. Это дает вам длинное текстовое сообщение об ошибке, которое соответствует значению errno, установленному mkfifo() при ошибке.   -  person alk    schedule 02.12.2015
comment
Спасибо, это сработало, у него был существующий файл с таким же именем.   -  person vidit jain    schedule 02.12.2015


Ответы (1)


Вы хотите заменить fprintf(stderr,"Error creating fifo\n"); на perror("mkfifo() failed");. Это дает вам длинное текстовое сообщение об ошибке, которое соответствует значению errno, установленному mkfifo() при ошибке. алк

Спасибо, это сработало, у него был существующий файл с таким же именем. видит джайн

person Community    schedule 03.07.2017