【问题标题】:mkfifo() not able to create file in Cmkfifo() 无法在 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() 的值。
  • 感谢工作,它有一个同名的现有文件。

标签: c pipe named-pipes mkfifo


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多