获取 Oracle Solaris 11 上的进程列表
我曾经通过枚举/proc文件系统来获取Linux下的进程列表,因为它有纯文本文件,我可以从中读取数据(stat、status、exe链接......),但solaris上的情况并非如此,我尝试将我的工具移植到 Oracle Solaris 11(我的第一个 Solaris),但它不起作用,我尝试手动访问 /proc 文件夹,但找不到任何可读的内容,但 ps -fu user
可以工作!
有人可以指出我如何获取solaris下的进程列表吗? 顺便说一句,我在 gcc 中编码。
谢谢。
i used to get a list of processs under linux by enumerating the /proc file system, since it had plain-text files that i can read data from (stat, status, exe link....) but thats not the case on solaris, i tried porting my tools to Oracle Solaris 11 (my first solaris) but it wont work, i tried accessing the /proc folder manually, but couldn't find anything readable, but ps -fu user
works !
is it possible that someone can point me on how to get a list of processes uneder solaris?
im coding in gcc btw.
thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
与 Linux 不同,Solaris /proc 提供二进制数据,而不是文本数据。
Solaris 有一个广泛而详细的手册页 proc (4) 描述进程号层次结构下的不同文件包含什么内容、如何访问它们以及使用什么结构来获取其内容。
当然也可以使用
man -s 4 proc
在本地访问该手册页Unlike Linux, Solaris /proc is providing binary data, not text one.
Solaris has an extensive and detailed manual page proc(4) describing what the different files under a process number hierarchy contain, how to access them and what structures to use in order to get their content.
This manual page is of course also accessible locally with
man -s 4 proc
与此类似: 如何获取进程从 Solaris 系统以 C/C++ 编程方式获取信息?
Similar to this: How to get process info programmatically in C/C++ from a Solaris system?
您希望 /usr/include/procfs.h 和 /usr/include/sys/procfs.h 描述的接口来解码 /proc 中的二进制数据
You want the interface described by /usr/include/procfs.h and /usr/include/sys/procfs.h to decode the binary data in /proc