我试图用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
请帮帮我。
2条答案
按热度按时间3qpi33ja1#
您想用
perror("mkfifo() failed");
替换fprintf(stderr,"Error creating fifo\n");
。这会给您一条长文本错误消息,它对应于mkfifo()
在失败时设置的errno
值。- alk感谢工作,它有一个同名的现有文件. - vidit jain
n8ghc7c12#
在Unix环境下执行程序。甚至文件夹目录也应该在Unix环境下。在代码中也包含
#include<unistd.h>
。但是#include<unistd.h>
和mkfifo
只能在Unix环境下工作。所以在Unix终端执行程序。我遇到了这个问题,这就是我解决它的方法。