process1.cpp:
const char* myfifo = "./myfifo";
mkfifo(myfifo,0666);
fd = open(myfifo, O_RDONLY);
wait(0);
read(fd, &sum, 4);
process2.cpp:
fd = open(myfifo, O_WRONLY);
unlink(myfifo);
write(fd, &write_int, sizeof(write_int) );
首先,我使用 mkfifo()创建了一个名为 myfifo 的管道文件,然后将 myfifo 的描述符提供给process1和process2,然后使用取消关联()删除 myfifo 。 整个程序都有效,但在删除 myfifo 后,我仍然可以在两个进程之间进行读写,这很奇怪。谁知道原因?
答案 0 :(得分:0)
当您unlink()
文件时,该文件实际上是从文件系统中删除的,当且仅当: