我有一个挂钩读取系统调用的内核模块。我必须做的一件事是捕获读取系统调用的内容,该系统调用正在执行我的老师提交的外部程序。
通过 strace,我可以看到老师的程序是如何读取的:
read(6, "\v\0\0\0\tExercise1", 14)
并且读取挂钩正在工作,问题是,我不知道如何从新的读取函数内部读取内容,因为如果我正确,*buf 是空的并且在调用原始系统调用 read 之前不会被填充。所以,理论上我应该直接从文件描述符中读取,但不使用 read 系统调用我不知道该怎么做。
有任何想法吗?谢谢!