Почему программа застревает при открытии успешно созданного канала имен? - PullRequest
0 голосов
/ 24 ноября 2018

Я новичок в программировании каналов и сокетов и сделал попытку создания простой программы, которая использует именованные каналы.

Код (который имеет отношение к рассматриваемому вопросу) приведен ниже:

getcwd(cwd, sizeof(cwd));

char * pipename = malloc(PIPENAME_SIZE * sizeof(char)); 
strcat(pipename, cwd);
strcat(pipename, ".pipe");
unlink(pipename);

if (mkfifo(pipename, 0644) == -1) {
    fprintf(stderr, "Error creating FIFO.\n");
    exit(EXIT_FAILURE);
}

printf("I'm here\n");
fflush(stdin);

int fd_receive = open(pipename, O_RDONLY);

printf("And now I'm here\n");
fflush(stdin);

Когда я запускаю программу, вывод

I'm here

Почему он застревает при открытии файла?Это вопрос разрешений?Я огляделся и не смог найти никого с такой же проблемой, поэтому думаю, что это деталь, по которой пропустил бы такой я, как я.

Заранее спасибо.

...