我需要编写一些 C 代码来检查我知道其 PID 的正在运行的进程的有效 GID。我还没有找到任何直接的方法来做到这一点。我可以使用许多重量级的 kludge,例如调用popen("/bin/ps ARGS", "r")和解析其输出,或fopen("/proc/PID/status", "r")解析该输出,但我正在寻找一种更清晰、更直接的方法。如果只getegid()采用 PID 参数...
这似乎是一个很受欢迎的问题,所以我想把答案说得非常清楚。@MarkPlotnick 给出了最好的答案,作为对之前(相当好的)答案的评论,但我们还没有引起他的注意而重新发布它,所以我可以接受它作为正确的答案并帮助人们。所以,向马克道歉:
Mark Plotnick 说: 你也可以做 stat("/proc/nnn", &stb); 该进程的有效 gid 将位于 stb.st_gid 中。这同时具有更高的可移植性(它可以在 Linux 和 FreeBSD 上运行)和更少的可移植性(没有文档记录)。
谢谢马克!
| 归档时间: |
|
| 查看次数: |
1532 次 |
| 最近记录: |