linux中 getpwnam()是如何工作的?

新手上路,请多包涵

linux中 getpwnam()是如何工作的?

最近在研究linux编程, 遇到了一个函数getpwnam().这个函数定义在 pwd.h中定义为:

extern struct passwd *getpwnam (const char *__name);

然后我开始找这个函数是在哪里实现的, 我下载出来了一个GNU lib , 然后并没有发现哪里实现的getpwnam 但是发现了一个文件叫做getpwnam.c

#include <pwd.h>


#define LOOKUP_TYPE    struct passwd
#define FUNCTION_NAME    getpwnam
#define DATABASE_NAME    passwd
#define ADD_PARAMS    const char *name
#define ADD_VARIABLES    name
#define BUFLEN        NSS_BUFLEN_PASSWD

#include "../nss/getXXbyYY.c"

但是没有找到其他的实现getpwnam, 请问, 这个getpwnam是在哪里实现的呢?

阅读 3.3k
1 个回答

如果你打开 ../nss/getXXbyYY.c 这个文件,你就会恍然大悟

或者,你可以使用 gcc -E 来对 getpwnam.c 做下预处理就明白了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进