我正在尝试使用 mknod() 命令创建一个 FIFO 命名管道:
int main() {
char* file="pipe.txt";
int state;
state = mknod(file, S_IFIFO & 0777, 0);
printf("%d",state);
return 0;
}
但是该文件不是在我当前的目录中创建的。我试着把它列出来ls -l
。状态返回 -1。
我在这里和其他网站上发现了类似的问题,并且我尝试了最建议的解决方案:
int main() {
char* file="pipe.txt";
int state;
unlink(file);
state = mknod(file, S_IFIFO & 0777, 0);
printf("%d",state);
return 0;
}
但这没有任何区别,错误仍然存在。我在这里做错了什么还是有某种系统干预导致了这个问题?
帮助..提前谢谢