【发布时间】:2017-10-29 10:20:37
【问题描述】:
我想在 Ubunto 中修改 glibc,让 printf() 的结果包含一些其他组件,而不仅仅是打印 printf() 中的内容。例如,如果我输入 printf("Hello World"),我希望结果是 'J.Doe, Hello World',结果在 printf() 中的内容前面包含我的名字。如何通过修改 glibc 中的一些文件来做到这一点?
【问题讨论】:
-
这是一个非常糟糕的主意。如果您真的想重载
printf,只需编写您自己的版本并链接即可。不要试图维护自己的库。 -
为什么你想这样做?您想通过它解决的实际问题是什么?我建议你花点时间阅读一下the XY problem,因为你的问题就是一个很好的例子。
-
这是我学习 Ubuntu 的一些项目,但我对这个问题一无所知......
-
实际上这不可能,因为重新定义内置函数具有未定义的行为。使用 GCC,
printf("hello world\n");甚至不调用printf函数!