例如:
打开/阅读 /var/command_result.txt
的内容是执行sysctl -x -B 16 kern.arandom.
的结果
因此,每次/var/command_result.txt
打开/阅读时,内容都是不同的随机数。
由于
答案 0 :(得分:0)
使/var/command_result.txt
成为命名管道,并且有一个可以反复打开并写入的进程?如果你需要一个读取文件的并发进程,那么它不会很好用,但如果它只是用于顺序测试,那就没问题。
$ mknod /tmp/command_result.txt p
$ perl -we '$a=0;
while(1){
open(STDOUT,">","/tmp/command_result.txt");
print "$a\n";
$a++;
}' &
[1] 31811
$ head -1 /tmp/command_result.txt
0
$ head -1 /tmp/command_result.txt
810
$ head -1 /tmp/command_result.txt
2431
$ cat /tmp/command_result.txt | head -1
3397
如您所见,head
在输出结果之前会读取多行。当我在彼此之后非常快速地运行头部命令时,我在perl侧出现了管道错误。陷阱可以解决这个问题。