【发布时间】:2016-11-17 22:36:37
【问题描述】:
我有一个相当奇特的文件格式可以使用: 每行都以其内容的校验和开头,后跟一个换行符。
看起来像这样:
[CHECKSUM OF LINE_1][LINE_1]\n
[CHECKSUM OF LINE_2][LINE_2]\n
[CHECKSUM OF LINE_3][LINE_3]\n
...
我的目标:让任何应用程序都可以像处理任何其他文本文件一样处理这些文件 - 不知道每行开头的附加校验和。
由于我在使用 debian wheezy(内核 3.18.26)的 linux 机器上工作,我想使用 LD_PRELOAD 机制来覆盖相关的文件功能。 我在 https://zlibc.linux.lu/index.html 上看到过类似 zlibc 的内容 - 并解释了它是如何工作的 (https://zlibc.linux.lu/zlibc.html#SEC8)。
但我不明白。它们只替换文件打开功能。没有读。不写。没有 fseek。没有。那么它是怎样工作的? 或者 - 我必须拦截哪些函数来处理对该文件的每个读取或写入操作并相应地处理它们?
【问题讨论】:
标签: linux function overriding ld-preload