glibc标准库中的libc_hidden_​​proto有什么作用?

时间:2016-05-18 04:18:41

标签: c glibc unistd.h

我试图在Foo中查找myBar()函数的原型,但无法找到它。该文件中唯一包含 getpgrp 的行是getpgrp()行,我假设这是一个宏,但我不知道它是做什么的。

我用谷歌搜索但在网上找不到unistd.h实际做的任何解释。关于宏的目的在glibc中的任何解释都将不胜感激。

1 个答案:

答案 0 :(得分:4)

您不小心查看了内部副本(include/unistd.h)而不是公开副本(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)