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.
Verwandte Themen
- 1. Woher wissen Sie, welche OpenGL-Funktionen in jedem Frame aufgerufen werden müssen und welche nur einmal aufgerufen werden können?
- 2. Wie werden Funktionen bestellt, wenn mehrere Funktionen mit dem gleichen Namen aufgerufen werden
- 3. Welche VI-Syntaxfarben verwendet Cygwin?
- 4. Wie finde ich heraus, welche Funktionen beim Drücken einer Taste in Chrome Console aufgerufen werden?
- 5. Welche Android-Methoden werden aufgerufen, wenn die Batterie ausgeht?
- 6. Welche Parameter werden verwendet, wenn .addActionListener() aufgerufen wird?
- 7. Welche Sicherheitsprobleme entstehen, wenn Methoden mit Reflektion aufgerufen werden?
- 8. Welche Funktionen werden als erweiterte Python angesehen?
- 9. Welche TextFieldDelegate-Methode sollte aufgerufen werden?
- 10. Wie finde ich Javascript-Funktionen, die aufgerufen werden?
- 11. Wie Java-Funktionen von C++ aufgerufen werden?
- 12. Wie R-Funktionen von Fortran aufgerufen werden?
- 13. unordered_map mit benutzerdefiniertem Hashing/gleiche Funktionen - Funktionen werden nicht aufgerufen
- 14. Welche ES6-Funktionen werden in JSX unterstützt?
- 15. Welche Aktivität wird aufgerufen, wenn ich eine Anwendung starte?
- 16. Wie zwei Funktionen verglichen werden, die mit `.bind()` aufgerufen werden?
- 17. Welche neuen Funktionen werden Scala 2.9 hinzugefügt?
- 18. Return() von Funktionen - mache ich es falsch?
- 19. Anzeige von Funktionen in c mit vi
- 20. Wie mache ich Funktionen mit Flagparametern? (C++)
- 21. Welche Funktionen würde ich vermissen, wenn JDK nicht installiert ist?
- 22. Welche Funktionen werden in einem Multiprozessprogramm aufgerufen, ohne die Quelle zu ändern?
- 23. Welche Methoden werden aufgerufen, wenn ich versuche, ein benutzerdefiniertes Objekt mit einer Zeichenfolge zu vergleichen?
- 24. Android Studio - Wie sieht man, welche Funktionen welcher Objekte aufgerufen werden?
- 25. Welche Funktion wird aufgerufen?
- 26. IOS, welche Methode aufgerufen wird, wenn die Tastatur erscheint
- 27. öffentliche Funktionen werden remote zugegriffen werden, wenn die Umsetzung onCFCRequest()
- 28. Werden beim Aufruf von log.Fatalln verzögerte Funktionen aufgerufen?
- 29. Wie ermittelt man, welche Methoden in einer Methode aufgerufen werden?
- 30. Wie werden zwei verschiedene Funktionen für eine gleiche Bedingung aufgerufen?
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