打开成功创建的名称管道时,为什么程序会卡住?

时间:2018-11-24 17:13:06

标签: c named-pipes

我是管道和套接字编程的新手,并尝试创建一个使用命名管道的简单程序。

代码(与相关问题有关)如下:

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

为什么打开文件时卡住?这是权限问题吗?我四处张望,找不到任何遇到相同问题的人,所以我想这是像我这样的noobie可能会错过的一个细节。

谢谢。

0 个答案:

没有答案