我正在 Linux 环境中编写一个长时间运行的程序,它将计算一个大表中的条目。每次到达行尾时,它都会将计算值输出到纯文本文件中。
为了避免不断地重新打开文件并附加到文件中,我正在考虑只打开文件一次并在程序运行期间保持打开状态。
我知道一次可以打开的文件描述符的最大数量有限制,但是单个文件描述符长时间保存是否有时间限制?
注意:我正在运行的过程可能需要一个月或更长时间才能完成。
答案1
如果我理解正确,您正在寻找建议的解决方案这里。所以,正如建议的那样这回答,我想看看是否有使用的选项exec
。所以,当我用谷歌搜索时linux 使用文件描述符追加, 我有这用户的回答吉尔斯。
所以他的答案的本质就是我相信你正在寻找的。
exec 5>/tmp/foo # open /tmp/foo for writing, on fd 5
while true; do #
echo "Hello" >&5 # write to fd 5, i.e. /tmp/foo
done #
关于文件描述符可以保持打开状态的最长时间,我相信只要循环终止它就会保持打开状态,因为我们在这里没有关闭文件描述符。您可以找到有关我链接到的答案的更多信息。