Есть код
Код: Выделить всё
...
sprintf (namebuf, "fifo%d.out", current_client_order);
unlink (namebuf);
if (mkfifo (namebuf, O_RDONLY|O_WRONLY|O_NONBLOCK|0622) < 0)
{
perror ("mkfifo");
exit (-1);
}
if (pipe_fd_in = open (namebuf, O_RDONLY)) < 0)
{
perror ("open");
exit (-1);
}
...От раза к разу он выполняется по-разному. Иногда проходит нормально, но чаще всего во время вызова open выдает "open: No such file or directory", что очень странно, ведь до этого был успешный вызов mkfifo.
Создается впечатление будто вызов unlink просто ставит операцию удаления в очередь