首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用execlp()打印pstree

使用execlp()打印pstree
EN

Stack Overflow用户
提问于 2018-12-12 03:05:27
回答 2查看 355关注 0票数 0

我需要在打印过程树的帮助,正好从代码。感谢stackoverflow社区,我写了一个使用fork()函数创建多个进程的程序,现在我需要使用execlp()函数在屏幕上打印一个进程树。

代码语言:javascript
复制
int main()
{
    int t = 5;
    int mainPID = getpid();
    cout << "Main process: " << mainPID << endl << endl;

    int pid;
    if ((pid = fork()) == -1) return -1;
    if (pid == 0)
    {
        cout << "source for child process ";
    }
    else{
        cout << "source for parent process ";
    }
    sleep(t);
    return 0;
}

当我在终端类型的另一个实例上运行程序时,

代码语言:javascript
复制
pstree /mainPID/ 

我得到了树,它从mainPID开始打印。我需要打印代码中的树,但是当放入代码中时

代码语言:javascript
复制
execlp("pstree", "pstree", "-c", "-p", (int *)NULL);

我从所有系统中获得打印的树

代码语言:javascript
复制
execlp("pstree", "pstree", mainPID, "-c", "-p", (int *)NULL);

不打印任何内容。

EN

回答 2

Stack Overflow用户

发布于 2019-12-02 02:23:00

execlp将char *const argv[]作为其余参数...

所以尝试将"mainPID“转换为char[]

这在我的案例中起作用了。

票数 0
EN

Stack Overflow用户

发布于 2019-11-23 00:23:06

您应该将mainPID转换为字符串或字符*,然后尝试此操作。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53730773

复制
相关文章

相似问题

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