c - 用户定义的函数是否能够代替 libc 的函数执行操作?

标签 c linux

我想自己编写一些 libc 函数(但不是所有 libc!)以提高我程序的性能。但是 GCC 是在编译程序中使用它们而不是 libc 函数还是忽略它们?

最佳答案

几乎所有 glibc 中的公共(public)符号都是 weak linked ,这意味着您可以提供自己的实现,该实现将在链接期间优先于弱符号。

所以,是的。您可以使用相同的名称/参数定义自己的函数,它们将被使用。请务必查看头文件以查看函数的真实签名,某些函数可能是扩展为另一个函数的宏。

您还可以创建一个包含要覆盖的函数的共享库,并让动态链接器预加载它以覆盖共享库中的函数。参见 this question获取更多信息。

关于c - 用户定义的函数是否能够代替 libc 的函数执行操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19345044/

相关文章:

c - 如何在检查单元测试中设置从文件读取输入的路径?

c++ - 如何将指针作为函数参数返回

c - 使用C从SD卡读取jpeg

linux - Qt Creator/gdb/远程调试/交叉编译: solib-search-path not used

linux - 根据 gdb 信息源找不到源文件

java - 如何使用 Glassfish 实现基本身份验证?

c - 获取由消息发送者的 "dbus_request_name"设置的总线名称

c - GCC 编译器允许结构转换,但 Visual Studio 不允许

linux - 无法从 Jenkins Windows 框添加 Linux 从机

c++ - 在 linux 下,在 C++ 中使用 system() 执行命令的转义序列