我在 Ubuntu14.04 Desktop 版本上写了一个 hook write(unsigned int fd, const char __user *buf, size_t count) 的 linux kernel module, 发现在 nautilus 下粘贴文件并没用调用 write,而如果在命令行使用 cp 命令则调用了 write,所以想知道 nautilus 调用了哪些 system call 使得在粘贴的时候写入该文件的。

我在 Ubuntu14.04 Desktop 版本上写了一个 hook write(unsigned int fd, const char __user *buf, size_t count) 的 linux kernel module, 发现在 nautilus 下粘贴文件并没用调用 write,而如果在命令行使用 cp 命令则调用了 write,所以想知道 nautilus 调用了哪些 system call 使得在粘贴的时候写入该文件的。
1 roychan Nov 24, 2018 strace 看一下 |
2 ttxxyy112233 OP @roychan 请问 strace 怎么查看实时的系统调用? |
3 t123yh Nov 24, 2018 via Android |
4 ttxxyy112233 OP @t123yh 我看了下 在我的系统上调用的是 splice |
5 codehz Nov 24, 2018 via Android 有可能是在不同进程哦。。。有时候这种图形界面的软件会用 dbus 把实际运行的任务丢给后台程序去做,避免用户关闭窗口后被中断。。。 |