鉴于它是PID,在linux中进程的所有权

时间:2014-11-06 01:07:52

标签: linux process ownership

我有一个用户级程序,它将PID作为输入。 在继续执行程序之前,我需要检查是否拥有该过程。

我是linux新手,我想知道是否有办法检查我是否拥有该流程..?

1 个答案:

答案 0 :(得分:0)

最简单的方法可能是检查伪目录/proc/PID的所有者。

您可以使用stat()功能获取文件或目录的所有者。您可以将其与自己使用geteuid()getuid()进行比较。

有些事情:

char name[50];
struct stat st;
sprintf(name, "/proc/%d", pid);
stat(name, &st);
printf("uid: %d gid: %d\n", st.st_uid, st.st_gid);

但是,您应该首先重新考虑为什么需要它。例如,如果您要发送一个信号(kill()),那么您不应该检查是否能够。您只需尝试它,然后考虑操作失败的情况。