我从IBM AIX上的一个应用程序获得了源文件,并试图在Linux上构建它们。但是,AIX上名为usersec.huserpw.h的头文件在Linux上不存在。因此,在Linux上,我得到这些函数的编译器错误:
声明于usersec.h

int     getuserattr (char *, char *, void *, int);

关于getuserattr的更多信息是here
声明于userpw.h
struct userpw
{
        char    *upw_passwd;            /* user's passwd */
        unsigned int    upw_flags;      /* flags of restrictions */
        time_t  upw_lastupdate;         /* date of last passwd update */
        char    upw_name[PW_NAMELEN];   /* user's name */
};

struct userpw   *getuserpw ();
int setpwdb ();
int endpwdb ();

请查找更多信息:getuserpwsetpwdb and endpwdb
如果有人知道如何在Linux上编写等价的函数,那就太好了。

最佳答案

您可能想使用getpwent及其相关功能。
函数返回一个指向包含
密码数据库中记录的细分字段(例如。,
本地密码文件getpwent()、NIS和LDAP)。第一次
/etc/passwd被调用,它返回第一个条目;此后,它
返回连续的条目。
getpwent()函数倒回密码的开头
数据库。
setpwent()函数用于在
已执行所有处理。
如果要获取特定用户的密码输入,可以使用endpwent()或其变体之一。
函数返回一个指向包含
密码数据库中记录的细分字段(例如。,

用户名。

07-24 09:46
查看更多