0

コマンド プロンプトから vi ファイル名を実行すると、fusexmp の例を使用している場合、どのヒューズ関数が呼び出されますか? mknod、open が呼び出されていると推測できます。書き込みを行うと、つまり :wq 書き込みが呼び出されます。そうですか。

4

1 に答える 1

3

特定のファイル操作に対してどの FUSE 関数が呼び出されているかを簡単に確認する方法はありませんが、実行するシステム コールstrace(1)が記録されます。これは FUSE 関数に非常に近いものです。

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

これらのシステム コールの多くは、特定の 1 つのファイルに関連しているのではなく、ロードのプロセス、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)呼び出しのばかげた見た目が少し軽減されます。

于 2012-04-13T00:10:49.660 に答える