【发布时间】:2015-07-16 16:41:55
【问题描述】:
我正在尝试使用 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;
}
但这并没有什么不同,错误仍然存在。我在这里做错了什么还是有某种系统干预导致了这个问题?
帮助..提前致谢
【问题讨论】:
-
你不能只是
printf(state)。state是int。你需要printf("%d\n", state)。 -
哦,是的...只是打字错误。谢谢
标签: linux system-calls unlink mknod