如果我这样做(在类似 Bourne 的外壳中):
exec 3> file 4>&3 5> file 6>> file
Run Code Online (Sandbox Code Playgroud)
文件描述符 3 和 4,因为 4dup()
来自 3,共享相同的打开文件描述(相同的属性,文件内的相同偏移量......)。虽然该进程的文件描述符 5 和 6 位于不同的打开文件描述上(例如,它们在文件中都有自己的指针)。
现在,在lsof
输出中,我们看到的是:
zsh 21519 stephane 3w REG 254,2 0 10505865 /home/stephane/file
zsh 21519 stephane 4w REG 254,2 0 10505865 /home/stephane/file
zsh 21519 stephane 5w REG 254,2 0 10505865 /home/stephane/file
zsh 21519 stephane 6w REG 254,2 0 10505865 /home/stephane/file
Run Code Online (Sandbox Code Playgroud)
更好一点lsof +fg
:
zsh 21519 stephane 3w REG W,LG 254,2 0 10505865 /home/stephane/file …
Run Code Online (Sandbox Code Playgroud)