【发布时间】:2021-12-18 21:41:17
【问题描述】:
我是一个新程序员。当我尝试读取getXXbyYY.c,glibc中gethostbyname()的源文件时,我发现了一个关于宏的函数。
INTERNAL (REENTRANT_NAME) (ADD_VARIABLES, &resbuf, buffer,buffer_size, &result H_ERRNO_VAR)
可以通过以下宏解析为__gethostbyname_r()。
#define REENTRANT_NAME APPEND_R (FUNCTION_NAME)
#define APPEND_R(name) APPEND_R1 (name)
#define APPEND_R1(name) name##_r
#define INTERNAL(name) INTERNAL1 (name)
#define INTERNAL1(name) __##name
然后我试图找到__gethostbyname_r()的实现,但是我只是在netdb.h找到了原型。
那么,我想知道__gethostbyname_r()的实现在哪里,它会做什么?
【问题讨论】:
-
它可能是使用类似的宏定义的。只需查找
gethostbyname_r(不带双前导下划线),看看你会发现什么。