我试图查找 getpgrp()
的原型(prototype)unistd.h
中的函数但找不到它。该文件中唯一包含 getpgrp 的行是 libc_hidden_proto (tcgetpgrp)
行。我假设这是一个宏,但我不知道它的作用。
我用谷歌搜索,但在网上找不到任何关于 libc_hidden_proto
的解释实际上确实如此。任何关于该宏在 glibc 中的用途的解释都将不胜感激。
最佳答案
您不小心查看了内部副本 ( include/unistd.h
) 而不是公共(public)副本 ( posix/unistd.h
)。不,我也不明白 glibc 的源代码是如何组织的。
来自 include/libc-symbols.h :
The following macros are used for PLT bypassing within libc.so
(and if needed other libraries similarly).
First of all, you need to have the function prototyped somewhere,
say in foo/foo.h:
int foo (int __bar);
If calls to foo within libc.so should always go to foo defined in libc.so,
then in include/foo.h you add:
libc_hidden_proto (foo)
关于c - glibc 标准库中的 libc_hidden_proto 是做什么的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37290230/