>"を使用すると、bashはO_APPENDでファイルを開くことができますか?">
使用すると、echo 1234 >> some-file
文書に出力が追加されることが示されています。
私の考えでは、some-fileが存在しない場合、O_CREATは新しいファイルを生成します。使用される場合、>
O_TRUNC は既存のファイルを切り捨てます。
場合>>
:ファイルがO_WRONLY(またはO_RDWR)で開き、O_APPENDをシミュレートして書き込み操作を終了して完了しようとしましたか?それともファイルがO_APPENDで開かれ、カーネルが追加が発生するかどうかを確認しますか?
出力ファイルがNFSマウントポイントから出ると、コンソールプロセスはechoによって挿入されたいくつかのタグを上書きし、NFS文書によると、O_APPENDはサーバーでサポートされていないため、クライアントカーネルがそれを処理する必要があるため、この質問をします。保存プロセスはO_APPENDを使用しているようですが、>>
Linuxのbashについてはよくわからないので、ここで質問します。
ベストアンサー1
私はこれを実行しました:strace -o spork.out bash -c "echo 1234 >> some-file"
あなたの問題を特定するために。これが私が見つけたものです:
open("some-file", O_WRONLY|O_CREAT|O_APPEND, 0666) = 3
コマンドを実行しているディレクトリに「some-file」というファイルはありませんecho
。