首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用exec的单进程树

使用exec的单进程树
EN

Stack Overflow用户
提问于 2015-04-19 20:27:35
回答 1查看 1.6K关注 0票数 1

我必须写一个使用fork()函数创建进程树的脚本。然后,我需要使用脚本中的exec()函数,通过pstree -c命令只生成一个进程树。

好的,我创建了进程树,这不是问题,假设:

代码语言:javascript
复制
int main() {
   int pid1, pid2;
   if(pid1 = fork()) {
      printf("%d", pid1);
   } else if (pid2 = fork()) {
      printf("%d", pid2);
   } else {
      printf("%s", "parent process");
   }
   return 0;
}

但是如何使用exec函数调用pstree -c命令呢?我怎么才能只显示一个特定的树呢?

代码语言:javascript
复制
execl("/bin/pstree -c", "pstree -c", 0, 0);

我尝试使用/bin/,但没有使用it...nothing works,当我运行脚本时,树不会显示。

无论如何,它将显示整个树,而不仅仅是我使用的叉子。

我该怎么做呢?

EN

回答 1

Stack Overflow用户

发布于 2015-04-19 20:33:07

使用execl时,每个命令参数都应该是函数的单独参数。第一个参数应该是要执行的程序的路径;程序名中没有-c,这是一个参数。如果您只想显示当前流程树,则需要添加一个PID参数。

代码语言:javascript
复制
char pid[10];
sprintf(pid, "%d", getpid());

execl("/bin/pstree", "pstree", "-c", pid, (char*)0);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29729848

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档