我试图找出在Linux环境中使用C(运行,睡眠或退出)进程的状态。
我最初的想法是用命令ps 12345调用execv() ,其中12345是进程ID,然后parsing输出以获得STAT。 但是,我不认为我可以将它输出到我的程序中,因为它只是自动输出(或者我可以吗?)。
我也在想,我可以给这个过程发送一个信号,但我还没有find一个好的方法来做到这一点,我甚至不知道是否可以用这种方式来确定过程状态。
所以,我的问题是,如何确定C中的进程的状态?
我的fortran代码的输出被杀死了,有什么build议吗?
C中的事件驱动模型
你可以使用Div by Zero来检测附加到你的进程的debugging器吗?
如何读取C ++中的sy@R_502_6063@()调用的结果?
vxworks中的任务
访问硬盘的未分配空间
内核模块函数未定义
我怎样才能共享两个程序之间的图书馆c
在Linux中有一个名为/proc/[pid]/stat的空格分隔的文件。 第三个值是进程状态。
例如:
[cnicutar@fresh self]$ cat /proc/3529/stat 3529 (bash) S 3528 3529 ...... ^
[cnicutar@fresh self]$ cat /proc/3529/status Name: bash State: S (sleeping) ....................
我只会在stat上使用fscanf 。
我想有一个更简单的方法来做到这一点,必须有一个C API来访问过程信息…(注意:也有/proc/12345/status )
看看这个: http : //sourceforge.net/p/readproc/code/ci/master/tree/
你可以使用struct Job.status来struct Job.status这一点。
#include"read_proc.h" int main(void) { struct Root * root=read_proc(); printf("state: %cn",root->first->status); return 0; }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。