我需要使用c ++和linux恢复所有正在运行的进程。但我找不到lib或相应的功能。
我无法运行诸如" ps"等的linux命令。
答案 0 :(得分:3)
(我猜你需要检查,扫描,列表或发现流程;恢复流程是一件困难的事情,请阅读application checkpointing)
您应该考虑使用proc(5),即/proc/
文件系统(特定于Linux)。
pid 1234的过程由/proc/1234/
目录描述。在终端中尝试ls /proc/$$/
。
因此,您可以在/proc/
上使用适当的调用(例如opendir(3),readdir(3),closedir(3),stat(2)等等)来探索流程文件树(这是ps
,top
等正在使用的文件树;请查看strace(1) ...)。
请注意/proc/
下的许多文件具有stat(2)给出的0大小,但是可以顺序读取(有点像管道)。试着举例stat /proc/$$/status
然后cat /proc/$$/status
。另请参阅this。