linux - 在 Linux 平台上捕获文件系统调用

标签 linux filesystems system-calls inotify ptrace

我想非常详细地捕获文件系统上的所有系统调用。例如。对于write系统调用,我想记录目标文件、写入的字节数和写入发生的偏移量。

目前,我想用inotify 实现这样一个记录器。但是,它无法提供此类详细信息。例如。对于 write,它不提供写入的字节数和偏移量。 另一种方法是使用 bbfs在 fuse 上实现。但是,它会在记录系统调用时引入开销,并将用户操作延迟到某种无法容忍的程度。

是否有一些库可以捕获文件系统上的系统调用,就像 ptrace 记录进程发出的所有系统调用一样?

最佳答案

Linux 中有许多 跟踪选项。但这听起来像是一个非常简单的案例。您是否仅使用 strace 实用程序进行了调查?它有很多选项可以控制跟踪粒度,将记录参数到几乎所有系统调用(如果需要,包括缓冲区内容)并且存在并且基本上无处不在,除了安装包之外没有任何设置。

关于linux - 在 Linux 平台上捕获文件系统调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16923526/

相关文章:

windows - 使用什么字符将项目放在字母列表的末尾?

macos - 如何获得正在 OS X 上读取文件的通知?

c - C 中的 open() 和 write() 函数

linux - Spark配置,SPARK_DRIVER_MEMORY、SPARK_EXECUTOR_MEMORY、SPARK_WORKER_MEMORY有什么区别?

filesystems - 网络文件系统,用于存储静态图像/文件

c - 你如何在 C 中进行系统调用中断?

unix 系统调用监视器

linux - 远程 http archetypeCatalog 在 Linux 中不起作用

python - 在 Ubuntu 上安装 Python Nmap 的问题

linux - 在 Linux 中使用 pppd 和聊天通过 gprs/gsm 调制解调器连接到 gprs 网络