0
我有一个用户级别的程序,将PID作为输入。 在继续执行程序之前,我需要检查我是否拥有该过程。因为它是PID的进程在Linux中的所有权因为它是PID
我是新来的linux,我想知道是否有办法检查我是否拥有这个过程..?
我有一个用户级别的程序,将PID作为输入。 在继续执行程序之前,我需要检查我是否拥有该过程。因为它是PID的进程在Linux中的所有权因为它是PID
我是新来的linux,我想知道是否有办法检查我是否拥有这个过程..?
可能最简单的方法是检查伪目录/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()
)这个过程,你不应该检查你是否能够。您只需尝试一下,然后再考虑操作失败的情况。