当前位置: 首页 > 面试题库 >

查找进程linux(C代码)的打开文件描述符?

夹谷岳
2023-03-14
问题内容

我想找到在Linux中为某个进程打开的所有fds。

我可以使用glib库函数吗?


问题答案:

由于您使用的是Linux,因此(几乎可以肯定)已/proc挂载了文件系统。这意味着最简单的方法是获取清单的内容/proc/self/fd;
其中的每个文件都以FD命名。(当然,请使用g_dir_openg_dir_read_nameg_dir_close列出信息。)

否则获取信息会有些尴尬(例如,没有有用的POSIX API;这是一个尚未标准化的领域)。



 类似资料:
  • 问题内容: 我有一个正在Linux上运行的C ++应用程序,我正在对其进行优化。如何确定我的代码哪些区域运行缓慢? 问题答案: 如果您的目标是使用探查器,请使用建议的探查器之一。 但是,如果您急于在主观上很慢的情况下在调试器下手动中断程序,则有一种简单的方法可以查找性能问题。 暂停几次,每次查看调用堆栈。如果有一些代码浪费了一定百分比的时间(20%或50%或其他),那么这就是您在每次采样时都将其捕

  • 问题 你有多个Python解释器进程在同时运行,你想将某个打开的文件描述符从一个解释器传递给另外一个。 比如,假设有个服务器进程相应连接请求,但是实际的相应逻辑是在另一个解释器中执行的。 解决方案 为了在多个进程中传递文件描述符,你首先需要将它们连接到一起。在Unix机器上,你可能需要使用Unix域套接字, 而在windows上面你需要使用命名管道。不过你无需真的需要去操作这些底层, 通常使用 m

  • 问题内容: 很抱歉没有自己进行研究并在此处提出要求。我时间很短。 是否可能有两个文件描述符表,用于从单个线程产生的两个或更多线程。两个或多个子线程正在同时访问同一文件,那么同一文件在不同线程中针对同一文件的两次不同打开的偏移量是特定于线程的吗? 谢谢 问题答案: 文件描述符在线程之间共享。如果要“特定于线程”的偏移量,为什么不让每个线程使用不同的文件描述符(多次)?

  • 文件描述符 Linux很重要的设计思想就是一切皆文件,网络是文件,键盘等外设也是文件,很神奇吧?于是所有资源都有了统一的接口,开发者可以像写文件那样通过网络传输数据,我们也可以通过/proc/的文件看到进程的资源使用情况。 内核给每个访问的文件分配了文件描述符(File Descriptor),它本质是一个非负整数,在打开或新建文件时返回,以后读写文件都要通过这个文件描述符了。 应用 我们想想操作

  • 文件描述符接口 函数 int  fd_new (void)   分配文件描述符   struct dfs_fd *  fd_get (int fd)   获取文件描述结构   void  fd_put (struct dfs_fd *fd)   放置文件描述符   int  fd_is_open (const char *pathname)   判断文件是否已被打开   int  select (

  • 问题内容: 我正在使用epoll(边缘触发)和线程在线程网络服务器上工作,并且正在使用httperf对服务器进行基准测试。 到目前为止,它的性能确实非常好,或者几乎完全按照发送请求的速度执行。直到1024屏障为止,那里的所有内容都减慢到大约30个请求/秒。 在64位Ubuntu 9.04上运行。 我已经尝试过: 成功增加文件描述符的ulimit数量。只是并不能提高1024个并发连接以上的性能。 a