gpt4 book ai didi

c - 避免在 Solaris 操作系统上重写文件

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:56:34 26 4
gpt4 key购买 nike

我对正在记录到文件的某些 C 库函数(顺便说一句,我无权访问其源代码)有问题。这些库的某些版本是使用附加到日志文件的函数编译的。但是以前的根本不追加。

是否有某种方式(如 Linux 中的 chattr)“强制”操作进入追加模式?我不允许对文件执行任何特定操作,比如在使用这些库重新启动代理之前复制它们……所以我唯一的选择是强制这些函数附加到文件,不管它们是如何被编程为打开的他们。

谢谢。

最佳答案

一种方法是使用 interposing dynamic library这会重载 libc fopenopen 函数,并会在请求的文件是目标文件之一时即时更改它们的模式参数那些。 Here是一个精确插入 fopen 调用的示例,您可以轻松地适应您的需要。

或者,您可以在所谓的破坏性模式下使用 dtrace 来拦截相同的打开调用,并即时修补参数或在文件被覆盖之前备份文件。

Here是一个类似黑客攻击的例子。

关于c - 避免在 Solaris 操作系统上重写文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37480314/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com