我正在编写一个应用程序,需要拦截一些文件系统系统调用,例如unlink。我想保存一些文件,比如abc。如果用户删除了该文件,那么我需要将其复制到其他地方。因此,在删除abc之前,我需要unlink调用我的代码,以便我可以保存它。我已经研究过与拦截系统调用相关的线程,但是像LD_PRELOAD这样的方法在我的情况下无法工作,因为我希望这是安全的,并且在内核中实现,所以这种方法是无用的。inotify会在事件发生后通知我,所以我不能能够保存它。你能否建议任何这样的方法。我想在内核模块中实现这个功能,而不是修改内核代码本身。 Graham Lee建议的另一种方法,我已经考虑过这种方法,但它有一些问题,我需要所有文件的硬链接镜像,它不会占用空间,但仍然可能存在问题,因为我必须反复镜像驱动器以保持我的镜像最新,而且它不能在不支持链接的分区上跨分区工作,因此我希望通过将钩子附加到文件/目录上,然后监视更改而不是重复扫描来找到解决方案。 我还想添加对修改后文件的写入支持,但我不能使用硬链接。 我想通过替换系统调用来拦截系统调用,但是我还没有找到在Linux > 3.0中执行该操作的方法。请建议一些方法。