-1

">>" の仕組みを理解しようとしています。自動追加モードまたは lseek を使用しますか?

私は bash ソースをダウンロードし、それがどのように機能するかを調べるために grep を試みましたが、うまくいきませんでした。多分もっと良い方法がありますか?

4

1 に答える 1

3

これはシステム コールを介して機能するため、知る最も簡単な方法は、strace を使用して bash を実行することです。次のようなことができます:

$ strace -o bash.log bash
$ echo hello >> test.txt
$ echo goodbye >> test.txt
$ exit
$ grep test.txt bash.log
open("test.txt", O_WRONLY|O_CREAT|O_APPEND, 0666) = 3
open("test.txt", O_WRONLY|O_CREAT|O_APPEND, 0666) = 3
write(3, "echo hello >> test.txt\necho good"..., 48) = 48

呼び出しに渡されたフラグから、open()追加モードで直接開かれていることがわかります。

于 2013-04-17T15:13:57.663 に答える