mkfifo() 无法在 C 中创建文件

Posted

技术标签:

【中文标题】mkfifo() 无法在 C 中创建文件【英文标题】:mkfifo() not able to create file in C 【发布时间】: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() 的值。 感谢工作,它有一个同名的现有文件。 【参考方案1】:

您想将fprintf(stderr,"Error creating fifo\n"); 替换为perror("mkfifo() failed");。这将为您提供长文本错误消息,该消息对应于mkfifo() 在失败时设置的errno 的值。 – alk

谢谢,它有一个同名的现有文件。 – vidit 耆那教

【讨论】:

以上是关于mkfifo() 无法在 C 中创建文件的主要内容,如果未能解决你的问题,请参考以下文章

mkfifo 文件权限未正确执行

有名管道通讯编程

在 C 中创建单链表

无法在 Android 11 中创建文件夹(目录),如何创建?

Fiddler中创建AutoResponder规则之替换图片、JS文件

如何在 C 语言的 windows 的 %appdata% 路径中创建目录并创建文件