在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/C/ linux中 getpwnam()是如何工作的?

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

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

最近在研究linux編程, 遇到了一個(gè)函數(shù)getpwnam().這個(gè)函數(shù)定義在 pwd.h中定義為:

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

然后我開(kāi)始找這個(gè)函數(shù)是在哪里實(shí)現(xiàn)的, 我下載出來(lái)了一個(gè)GNU lib , 然后并沒(méi)有發(fā)現(xiàn)哪里實(shí)現(xiàn)的getpwnam 但是發(fā)現(xiàn)了一個(gè)文件叫做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"

但是沒(méi)有找到其他的實(shí)現(xiàn)getpwnam, 請(qǐng)問(wèn), 這個(gè)getpwnam是在哪里實(shí)現(xiàn)的呢?

回答
編輯回答
雨蝶

如果你打開(kāi) ../nss/getXXbyYY.c 這個(gè)文件,你就會(huì)恍然大悟

或者,你可以使用 gcc -E 來(lái)對(duì) getpwnam.c 做下預(yù)處理就明白了

2018年4月1日 21:22