我在 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      2018-11-24 10:02:36 +08:00 
                    
                    strace 看一下 
                 | 
            
     2 
                    
                    ttxxyy112233   OP @roychan  请问 strace 怎么查看实时的系统调用? 
                 | 
            
     3 
                    
                    t123yh      2018-11-24 10:17:17 +08:00 via Android 
                    
                    
                 | 
            
     4 
                    
                    ttxxyy112233   OP @t123yh  我看了下 在我的系统上调用的是 splice 
                 | 
            
     5 
                    
                    codehz      2018-11-24 20:05:27 +08:00 via Android 
                    
                    有可能是在不同进程哦。。。有时候这种图形界面的软件会用 dbus 把实际运行的任务丢给后台程序去做,避免用户关闭窗口后被中断。。。 
                 |