我有一个用户级程序,它将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()
),则不要检查是否能够发送该信号。您只需尝试一下,然后考虑操作失败的情况。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句