我试图在Foo
中查找myBar()
函数的原型,但无法找到它。该文件中唯一包含 getpgrp 的行是getpgrp()
行,我假设这是一个宏,但我不知道它是做什么的。
我用谷歌搜索但在网上找不到unistd.h
实际做的任何解释。关于宏的目的在glibc中的任何解释都将不胜感激。
答案 0 :(得分:4)
您不小心查看了内部副本(include/unistd.h
)而不是公开副本(posix/unistd.h
)。不,我也不明白glibc的来源是如何组织的。
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)