我試圖通過展示我的功能之一我的用戶ID和組ID在我的C程序。用戶ID正確顯示(501),但我的組ID不是。當我使用檢查我的組ID命令「ID -g」我得到20,但是當我用我的功能,運行它通過我的節目,我得到了價值1如何在C中正確顯示groupID(GID)?
這是我的代碼。
int Registerpw(char **args){
register struct passwd *pw;
register uid_t uid;
int c;
register gid_t gid;
register struct group *grp;
grp = getgrgid(gid);
uid = geteuid();
pw = getpwuid(uid);
if (pw)
{
printf("%d,",uid); // userID
printf("%d,", gid); //groupID
puts (pw->pw_name);
puts(grp->gr_name);
}
else{
printf("failed\n");
}
return 1;
}
我的輸出
501,1,USERNAME
daemon
你缺少分配值'gid'聲明? –
@MarkPlotnick'寄存器gid_t gid'是獲得GID – Recap
@Recap這行代碼僅聲明&定義gid'的'可變,而使值初始化。上面的代碼從未初始化過'gid'。 – starrify