【发布时间】:2013-04-02 13:28:28
【问题描述】:
我的问题很奇怪。 事实上,我列出了给定进程的所有子进程。
为此,我使用:How to find all child processes? 和 RC 的答案。
但是,我需要一个带有 unsigned long 的出口。
该解决方案基于char[]
如果我想获得unsigned long,我需要修改代码以仅获得数值。另一种情况将不正确。
所以我将char 设置为unsigned long。然后,scanf 和 %ld 标签。
但是我越来越废话了......
为什么这不起作用?
编辑:代码:
const char *name = "top";
char command[100];
unsigned long parentID; unsigned long processID;
strcpy(command, "ps -C "); strcat(command, name); strcat(command, " --format '%P %p'");
FILE *fp = popen(command, "r");
if (fp == NULL) fprintf(stderr, "Error in reading PID child processes information !\n");
while(fscanf(fp, "%lu %lu", parentID, processID) != EOF) {
printf("PID : %lu Parent : %lu \n", processID, parentID);
}
return processID;
有了%s 和char[256],这项工作!
编辑:想法
我正在考虑两种方法来做到这一点:
- 首先,使用
unsigned long而不是char[]。 - 其次,读取文件后将
char[]转换为unsigned long。但是,我需要逐行阅读。popen可以吗?
【问题讨论】:
-
您的代码有错误。
-
显然你的代码是错误的。由于您没有显示您的代码,因此您将其变得不必要地困难。忠告:不要隐瞒细节。
-
好的,我正在添加它!
-
Thx 顺便说一句,非常令人鼓舞! ;) 很高兴在这里成为初学者!
标签: c++