我是管道和套接字编程的新手,并尝试创建一个使用命名管道的简单程序。
代码(与相关问题有关)如下:
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可能会错过的一个细节。
谢谢。