2017-04-12 22 views
0

今日、特定のディレクトリにあるファイルのリストを取得したかったのです。これを実現する最も簡単な方法は、プロンプトを開いて、私は最初の「DIR」コマンドが実行され、その出力が作成されることを想定コマンドラインコマンドの注文

dir > filelist.txt 

を実行することです。その後、ファイルにリダイレクトされます。

しかし興味深いのは、 'filelist.txt'内のディレクトリリストに、期待されていないゼロバイトの 'fielist.txt'が含まれていることです。

「filelist.txt」が完了すると、実際には450バイトが表示されます(リダイレクト、同じプロンプトを使わずにディレクトリを実行すると)。

1)なぜ 'filelist'txt'が表示されるのですか?

2)コマンドプロンプトとは何ですか?

答えて

0

最初に 'dir'コマンドが実行され、その出力が作成されたとします。

ここで出力はどこにありますか?

出力は、デフォルトでコンソールに表示され、プログラムによって出力された直後です。

出力をファイルにリダイレクトすると、コンソールに書き込まれるときにそのファイルに書き込まれます。プログラムが出力を書き込む瞬間です。

コマンドに出力がない場合でも、ファイルは作成されます。コンソールは最初に要求された出力ファイルを作成しようとします。それが失敗すると、要求されたコマンドは実行されません。

+0

私は、各コマンドが実行されるバックグラウンドにバッファがあると仮定しています。その出力はバッファされています(この場合、次の入力は含まれません)。シンクやミドルウェアのようなもの。 –