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

qlvxas9a  于 2023-03-07  发布在  其他
关注(0)|答案(2)|浏览(160)

我试图用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

请帮帮我。

3qpi33ja

3qpi33ja1#

您想用perror("mkfifo() failed");替换fprintf(stderr,"Error creating fifo\n");。这会给您一条长文本错误消息,它对应于mkfifo()在失败时设置的errno值。- alk
感谢工作,它有一个同名的现有文件. - vidit jain

n8ghc7c1

n8ghc7c12#

在Unix环境下执行程序。甚至文件夹目录也应该在Unix环境下。在代码中也包含#include<unistd.h>。但是#include<unistd.h>mkfifo只能在Unix环境下工作。所以在Unix终端执行程序。我遇到了这个问题,这就是我解决它的方法。

相关问题