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
A
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.
vi/vim ist OpenSource. Ich schlage vor, Sie bekommen die Quelle und schauen durch sie hindurch. Was ist eine Sicherungsfunktion? – octopusgrabbus
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! –
fusexmp Beispiel, das mit dem Download kommt, hat einige Funktionen definiert. Ich wollte mich auf diese Funktionen beziehen – user1330431