是否有系统调用来获取正在运行的进程的uid / gid?

对我自己的问题的长篇回答,用Googlesearch并没有发现任何有用的东西,是通过“ps”的来源进行筛选。 但是在这之前,有没有人愿意提供懒人的解决scheme呢? 🙂

我发现这个问题: 使用procf / <pid> / status了解进程状态但是,3.2内核似乎没有解决scheme。 这个pstatus_ttypes在更新的内核中可用吗? 如果是这样,这是否意味着更新的内核为/ proc //状态提供二进制接口?

目前,我能想出的唯一可行的解​​决方案就是沿着这条线。 显然,没有去努力看看这是否真的如我所期望的那样工作… …:

 int len, pid, n, fd = open("/proc/12345/status", O_RDONLY | O_NOATIME); char buf[4096], whitespace[50]; if (0 < (len = read(fd, buf, 4096))) { n = sscanf(buf, "Uid:%s%d ", whitespace, &pid); }