【发布时间】:2015-12-02 13:52:12
【问题描述】:
我正在尝试在 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
请帮忙。
【问题讨论】:
-
使用
perror打印实际的错误信息 -
检查你是否有 cwd 的写权限
-
你检查errno了吗?如果我不得不猜测的话,可能是 EEXISTS。
-
您想将
fprintf(stderr,"Error creating fifo\n");替换为perror("mkfifo() failed");。这将为您提供长文本错误消息,该消息对应于errno在失败时设置的mkfifo()的值。 -
感谢工作,它有一个同名的现有文件。
标签: c pipe named-pipes mkfifo