我自己想了下,linux应该是没有原生API可以实现的,至于lsof和上面的fuser之类的实现原理,应该是遍历/proc/下面所有pid的fd目录,该目录下的连接文件的路径匹配磁盘路径,说明该进程占用了磁盘。举例: ~ # ls -l /proc/$pid/fd/ lr-x------ 1 root root 64 Dec 31 09:23 0 -> /dev/null lrwx------ 1 root root 64 Dec 31 09:23 1 -> /dev/console lrwx------ 1 root root 64 Dec 31 09:23 2 -> /dev/console l-wx------ 1 root root 64 Dec 31 09:23 3 -> /media/sdcard/xx
我自己想了下,linux应该是没有原生API可以实现的,至于lsof和上面的fuser之类的实现原理,应该是遍历/proc/下面所有pid的fd目录,该目录下的连接文件的路径匹配磁盘路径,说明该进程占用了磁盘。举例: