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

Linux API列出正在运行的进程?

施阎宝
2023-03-14
问题内容

我需要一个C / C ++ API,该API允许我列出Linux系统上正在运行的进程,并列出每个进程已打开的文件。

希望最终直接读取的/ proc /文件系统

有人能想到一种方法吗?


问题答案:

http://procps.sourceforge.net/

http://procps.cvs.sourceforge.net/viewvc/procps/procps/proc/readproc.c?view=markup

是ps和其他处理工具的来源。他们确实使用了proc(表明这可能是常规的最佳方法)。它们的来源非常可读。文件

/procps-3.2.8/proc/readproc.c

可能有用。 ephemient发布的另一个 有用建议是链接到 libproc 提供的API,该API
应该在您的存储库中可用(或者我已经说过已经安装),但是您需要标头使用“ -dev”变体,而不需要。

祝好运



 类似资料:
  • 问题内容: 如何获取Go中当前正在运行的进程的列表? 该OS软件包提供了一些功能:http : //golang.org/pkg/os/, 但没有提供任何内容来查看正在运行的进程的列表。 问题答案: 标准库中没有这样的功能,很可能永远不会。 在大多数情况下,程序不需要进程列表。Go程序通常希望等待一个或更少数量的进程,而不是所有进程。进程的PID通常通过除搜索所有进程的列表之外的其他方式获得。 如

  • 当我的selenium程序由于某些错误而崩溃时,它似乎会留下正在运行的进程。 例如,这是我的流程列表: 这是我的代码: 有时,浏览器加载网页元素的速度不够快,所以当它试图点击它没有找到的东西时,Selenium会崩溃。其他时候它工作正常。 为了简单起见,这是一个简单的例子,但是对于一个更复杂的硒程序,什么是保证干净退出而不留下正在运行的进程的方法?它应该在意外崩溃和成功运行时干净退出。

  • 问题内容: 我有一堆服务器,可以使用在服务器上运行实验。该过程如下: 到服务器XXX 发射 在几个标签中开始实验 分离 与服务器断开连接 在实验运行期间,通过查看所有服务器并列出正在运行的进程(使用或),我可以轻松找到它们在哪些服务器上。 但是,一旦实验完成,如何找到在哪个服务器上打开了屏幕会话(以便可以查看输出,重新启动它们,等等)? PS:我的实验也将其输出也打印到文件中……但这不是我要问的重

  • 问题内容: 我正在尝试获取Windows机器上所有当前正在运行的进程的列表。 我正在尝试通过JNA的winapi调用EnumProcesses-> OpenProcess-> GetModuleBaseNameW-> CloseHandle尝试OpenProcess调用时失败。GetLastError返回5(ERROR_ACCESS_DENIED)。 这是我的代码: 问题答案: 调用with 表示

  • 问题内容: 我在POSIX / Linux环境中有一个多线程应用程序-我无法控制创建pthread的代码。在某个时候,进程(pthread的所有者)接收到信号。 该信号的处理程序应中止,取消或停止所有pthread,并记录正在运行的pthread数。 我的问题是我找不到如何列出正在运行的所有pthread。 问题答案: 似乎没有任何可移植的方式枚举进程中的线程。 Linux具有,看起来像是原始的纯

  • 这些天我们一直在尝试安装hadoop集群。有时成功,但大多数时候失败了。我根据官方文件和一些看似高质量的博客进行配置。 我遇到的问题是:所有进程(包括namenode、datanode、nodemanager、resourcemanager)都可以通过命令查看: 但是奴隶们实际上没有工作。我无法在web界面master:8088或master:50070中看到它们 有人说这是重复的namenode