如何修改Ubuntu中的glibc来改变printf()函数的结果

时间:2017-10-29 10:20:38

标签: c ubuntu printf glibc

我想在Ubunto中修改glibc,让printf()的结果包含一些其他组件,而不是只打印printf()中的内容。例如,如果我输入printf(" Hello World"),我希望结果是' J.Doe,Hello World'结果包括我在printf()中的名字前面的名字。我怎么能通过修改glibc中的一些文件来做到这一点?

1 个答案:

答案 0 :(得分:3)

  1. 下载glibc包。我一直在使用的版本是glibc-2.23.tar.gz。
  2. 确保您可以构建它。 (这并不容易 - 它是一个庞大而复杂的软件包,具有很多系统依赖性。)
  3. 确保您可以将C程序与新构建的libc链接,而不是/ usr / lib中的。
  4. 现在您已准备好开始修改printf。所有printf变体的公共代码都在stdio-common / vfprintf.c中。谨防!它复杂而复杂的代码;这不是最直接,易于理解的实施方法。
  5. 如果你想要一个更简单,易于理解的printf实现来玩和学习,那么C FAQ list就有一个。