2012-04-12 5 views
0

Wenn ich einen vi-Dateinamen von der Eingabeaufforderung aus mache, welche Sicherungsfunktionen werden aufgerufen, wenn ich das fusexmp-Beispiel verwende? Ich könnte raten, mknod, open werden genannt. Wenn ich schreibe, also wenn ich mache: wq write wird aufgerufen. ist das richtig.Welche Funktionen werden aufgerufen, wenn ich vi mache

+0

vi/vim ist OpenSource. Ich schlage vor, Sie bekommen die Quelle und schauen durch sie hindurch. Was ist eine Sicherungsfunktion? – octopusgrabbus

+0

können Sie selbst sehen, indem Sie dtrace, systemtap oder sogar oprofile (mit Kernel-Unterstützung) verwenden. starte einen von diesen, dann benutze vi, und erhalte dann einen Bericht über alle Anrufe! –

+0

fusexmp Beispiel, das mit dem Download kommt, hat einige Funktionen definiert. Ich wollte mich auf diese Funktionen beziehen – user1330431

Antwort

3

Es gibt keine phantastisch einfache Möglichkeit, die FUSE-Funktionen zu sehen sind, für eine bestimmte Dateioperation genannt, aber strace(1) läuft das System ruft aufzeichnen, die auf die FUSE-Funktionen ganz in der Nähe ist:

$ strace -o /tmp/vim.all vim /etc/motd 

Viele dieser Systemaufrufe beziehen sich nicht nur auf die eine Datei, sondern auch auf den Prozess des Ladens von vim, seiner dynamisch verknüpften Bibliotheken, Ihrer lokalen Konfiguration und all seiner unterstützenden Dateien.

Hier einige ausgewählte Zeilen, die auf die /etc/motd verweisen, die ich geöffnet:

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 

Die dazwischenliegenden Linien machen die wiederholte stat(2) suchen etwas weniger dumm nennt.

Verwandte Themen