我想找到在Linux中为某个进程打开的所有fds。
我可以使用glib库函数吗?
由于您使用的是Linux,因此(几乎可以肯定)已/proc挂载了文件系统。这意味着最简单的方法是获取清单的内容/proc/self/fd; 其中的每个文件都以FD命名。(当然,请使用g_dir_open,g_dir_read_name并g_dir_close列出信息。)
/proc
/proc/self/fd
g_dir_open
g_dir_read_name
g_dir_close
否则获取信息会有些尴尬(例如,没有有用的POSIX API;这是一个尚未标准化的领域)。