我正在尝试制作一个简单的用户空间程序,该程序在读取文件时动态生成文件内容,就像虚拟文件系统一样。我知道有像 FUSE 这样的程序,但对于我想做的事情来说,它们似乎有点重。
例如,一个简单的计数器实现如下所示:
$ cat specialFile
0
$ cat specialFile
1
$ cat specialFile
2
我在想这specialFile
可能是一个命名管道,但我没有太多运气。我也想select
在这里可能会有所帮助,但我不确定我会如何使用它。我错过了一些基本概念吗?
#include <stdio.h>
int main(void)
{
char stdoutEmpty;
char counter;
while (1) {
if (stdoutEmpty = feof(stdout)) { // stdout is never EOF (empty)?
printf("%d\n", counter++);
fflush(stdout);
}
}
return 0;
}
然后用法将类似于:
shell 1 $ mkfifo testing
shell 1 $ ./main > testing
shell 2 $ cat testing
# should be 0?
shell 2 $ cat testing
# should be 1?