簡體   English   中英

如何從用戶ID檢索用戶名

[英]How to retrieve the user name from the user ID

我正在學習一本書的同時在Unix上實現(ls)命令。 在使用(-l)標志執行(ls)命令的編碼部分期間,我看到必須提示文件的用戶名和組名。 到目前為止,我具有以下幾行的用戶和組ID:

struct stat statBuf;

statBuf.st_uid; //For the user id. 
statBuf.st_gid; //For the group id. 

在Unix上的默認(ls)命令中,文件信息的打印方式是顯示用戶名而不是用戶ID。

誰能幫助我找到正確的方法來從其ID中檢索用戶名和組名?

您可以使用getpwuid查找特定UID(包括用戶名,但現在不包含密碼本身)的密碼文件條目,並使用getgrgid查找特定GID的組文件條目。

檢查我的代碼中的用戶名:

#include <unistd.h>
#include <sys/types.h>
#include <pwd.h>

string getUser(uid_t uid)
{
    struct passwd *pws;
    pws = getpwuid(uid);
        return pws->pw_name;
}

對於組名,您可以使用getgrgid。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM