我想将用户给定的输入(即用户名)与ubuntu中/ etc / passwd文件中已存储的用户名进行比较。我正在尝试C.请帮助
答案 0 :(得分:4)
#include <pwd.h>
...
struct passwd *e = getpwnam(userName);
if(e == NULL) {
//user not found
} else {
//found the user
}
(如果你真的想要对用户进行身份验证,那么还需要做更多的工作)
答案 1 :(得分:0)
此代码打印/ etc / passwd中的所有用户名。
#include <stdio.h>
int main()
{
char buffer[128];
char* username;
FILE* passwdFile;
passwdFile = fopen("/etc/passwd", "r");
while (fgets(buffer, 128, passwdFile) != NULL)
{
username = strtok(buffer, ":");
printf("username: %s\n", username);
}
fclose(passwdFile);
return 0;
}
修改以将username
与您的输入进行比较。