使用struct task_struct http://lxr.linux.no/linux+v2.6.30.5/include/linux/sched.h#L246中定义的流程如何获取当前用户?我必须检查用户是否是root用户。我显然不能使用getuid
答案 0 :(得分:2)
您可以使用task_uid
获取task_struct
或task_euid
的用户ID,如果您需要的话。{/ p>
答案 1 :(得分:0)
尝试使用getlogin_r()
功能。它在unistd.h中定义并返回用户名。有关其他选项,请查看man getlogin_r
。
int getlogin_r(char *buf, size_t bufsize);
答案 2 :(得分:0)
最终使用了成员变量uid_t uid,我最初没有看到。检查我正在使用的linux版本(旧)并在此处找到它:http://lxr.linux.no/linux+v2.6.18/include/linux/sched.h#L246
对不起麻烦