gpt4 book ai didi

c - 我的 Linux C 进程如何知道在命令行上打开了多少文件?

转载 作者:行者123 更新时间:2023-12-01 09:41:35 25 4
gpt4 key购买 nike

当我在 Linux 下启动一个进程时,我可以传递多个输入和输出重定向。例如,如果我想要 14 个输出文件,我会这样做:

command >f1 3>f2 4>f3 5>f4 6>f5 7>f6 8>f7 9>f8 10>f9 11>f10 12>f11 13>f12 14>f13 15>f14

我的命令能否准确知道在命令行上传递了多少此类文件?

我知道我总是可以添加命令行选项,例如 --count 14。我希望我们不必这样做。

最佳答案

无法区分在命令行上建立的重定向和已经存在于执行环境中的重定向。

例如,当实用程序 util 在脚本中运行时

exec 4<file4
# ...
util 3<file3

它将看到 fd 3 和 fd 4 都打开以供读取;它不能说在命令行上只打开了一个。如果你关心这个,你可能应该关心,因为可能有很多这样的。

除此之外,您当然可以找出当前打开的 fds,例如循环遍历所有文件或检查 /proc/self/fd 伪目录。见 this question有关在 Linux 下查找所有打开的文件描述符的一些示例解决方案。

关于c - 我的 Linux C 进程如何知道在命令行上打开了多少文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59796892/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com