c-更好地确定保存的id



我正在尝试了解进程如何获得自己的保存集uid。我能得到suid的唯一方法是使用getresuid(),但我想这不是最好的解决方案。

我如何才能以"更工程化的方式"获得它?

这是我的代码:

#define _GNU_SOURCE
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <stdlib.h>
int main(void) {
uid_t *ruid = malloc(sizeof (uid_t));
uid_t *euid = malloc(sizeof (uid_t));
uid_t *suid = malloc(sizeof (uid_t));
getresuid(ruid, euid, suid);
printf("%d, %d, %dn", *ruid, *euid, *suid);
}

实际上就是这样做的。您的方法过于复杂。看看这个:

uid_t ruid, euid, suid;
getresuid(&ruid, &euid, &suid);
printf("%d, %d, %dn", ruid, euid, suid);

最新更新