我的理解是大多数文件IO操作都是在内核中实现的,例如CRUD,移动或删除。但是,文件复制不是作为内核级API实现的。
为了检测内核中的文件副本,需要使用启发式方法(discussion on this approach),例如作为检测文件读取,文件创建和文件写入来自同一用户具有相同的文件名,但路径不同。
为什么copy是用户登陆操作?
答案 0 :(得分:1)
首先,因为关心两个不同的文件是否具有相同的内容,其中一个文件的内容是直接从另一个文件中复制的,所以是一个用户空间问题,在内核中没有逻辑上的原因。
充其量。
字节是字节。
其次,内核如何区分在两个不同的文件描述符之间复制文件? See the man page for sendfile()
.为什么内核会跟踪调用用户是否调用sendfile()
将文件内容发送到TCP套接字到who-knows-where或另一个文件?
第三,即使内核跟踪复制文件,上帝的好地球上有什么东西做这些数据?
如果您关心此类文件复制事件,请设置审核。