相关疑难解决方法(0)

linux:以编程方式获取另一个进程的父pid?

我试过谷歌,但发现getppid()哪个获得当前进程的父pid .

我需要类似的东西getppid(some_other_pid),有这样的东西吗?基本上取一些进程的pid并返回父进程'pid.

linux operating-system process

26
推荐指数
3
解决办法
2万
查看次数

如何使用C ++从OSX中的pid以编程方式获取uid?

给定一个pid,我想找到该进程的所有者(作为uid)。有没有办法使用C ++在osx(或任何unix)中得到它?

Google没有帮助。'ps'可以做到;所以我认为应该有一种以编程方式获取它的方法。

c++ unix macos process

4
推荐指数
1
解决办法
6830
查看次数

OSX:proc_pidinfo为其他用户的进程返回0

我需要获取一些有关在Mac OSX上运行进程的信息(PID,UID,GID,进程名称)。我试过了proc_pidinfo。对于我自己的流程,它可以正常工作。但是,对于其他用户拥有的进程,将返回0。没有此功能的文档,但是根据Internet上的信息,应该返回写入提供的缓冲区的字节数。在其他用户的进程上调用此函数将返回0,这意味着未提供任何信息。

例:

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

#include <libproc.h>


int main(int argc, char *argv[])
{
    pid_t pid;
    struct proc_bsdinfo proc;

    if (argc == 2)
        pid = atoi(argv[1]);
    else
        pid = getpid();

    int st = proc_pidinfo(pid, PROC_PIDTBSDINFO, 0,
                         &proc, PROC_PIDTBSDINFO_SIZE);

    if (st != PROC_PIDTBSDINFO_SIZE) {
        fprintf(stderr, "Cannot get process info");
        return 1;
    }
    printf(" pid: %d\n", (int)proc.pbi_pid);
    printf("ppid: %d\n", (int)proc.pbi_ppid);
    printf("comm: %s\n",      proc.pbi_comm);
    printf("name: %s\n",      proc.pbi_name);
    printf(" uid: %d\n", (int)proc.pbi_uid);
    printf(" gid: %d\n", (int)proc.pbi_gid);

    return …
Run Code Online (Sandbox Code Playgroud)

c macos

4
推荐指数
2
解决办法
1952
查看次数

标签 统计

macos ×2

process ×2

c ×1

c++ ×1

linux ×1

operating-system ×1

unix ×1