0
當我從命令提示符執行vi文件名時,如果我使用fusexmp示例,會調用什麼保險功能?我可以猜測mknod,打開被調用。 當我做一個寫,即當我這樣做:wq寫入被調用。是對的嗎。當我做vi時調用什麼函數
當我從命令提示符執行vi文件名時,如果我使用fusexmp示例,會調用什麼保險功能?我可以猜測mknod,打開被調用。 當我做一個寫,即當我這樣做:wq寫入被調用。是對的嗎。當我做vi時調用什麼函數
有沒有飛馳簡單的方法,看看哪些FUSE函數的調用對於任何給定文件操作,但運行strace(1)
將記錄系統調用,這是相當接近FUSE功能:
$ strace -o /tmp/vim.all vim /etc/motd
許多這些系統調用並不與這一個文件相關,而是與加載vim
,它的動態鏈接庫,本地配置以及所有支持文件的過程無關。
下面是引用我開了/etc/motd
一些選定的線路:
stat("/etc/motd", {st_mode=S_IFREG|0644, st_size=183, ...}) = 0
stat("/etc/motd", {st_mode=S_IFREG|0644, st_size=183, ...}) = 0
stat("/etc/motd", {st_mode=S_IFREG|0644, st_size=183, ...}) = 0
stat("/etc/motd", {st_mode=S_IFREG|0644, st_size=183, ...}) = 0
access("/etc/motd", W_OK) = -1 EACCES (Permission denied)
open("/etc/motd", O_RDONLY) = 7
close(7) = 0
open("/etc/motd", O_RDONLY) = 7
read(7, "Welcome to Ubuntu 11.04 (GNU/Lin"..., 8192) = 183
read(7, "", 65536) = 0
close(7) = 0
stat("/etc/motd", {st_mode=S_IFREG|0644, st_size=183, ...}) = 0
其間的線條使重複stat(2)
呼籲少一點傻傻的看着。
vi/vim是開源的。我建議你獲取源代碼並查看它。什麼是保險絲功能? – octopusgrabbus 2012-04-13 00:00:42
你可以通過使用dtrace,systemtap甚至oprofile(有內核支持)來查看自己。啓動其中一個,然後使用vi,然後獲得所有調用的報告! – 2012-04-13 00:03:16
fusexmp自帶的下載示例定義了一些函數。我的意思是指這些功能 – user1330431 2012-04-13 00:09:00