[Powered by Google Translate] トミー:このビデオでは、私たちは学びます リダイレクトとパイプ。 これまでのところ、我々へのprintfのような関数を使用してきた 出力端子へのデータとGetStringのような機能 ユーザーが当社への入力を提供できるようにする キーボードを使用しているプログラム。 迅速の行を取得したプログラムを見てみましょう ユーザからの入力をして、それを出力します。 7行目では、文字列を入力するようユーザーに求めている、と 次に、8行目で、私たちは裏にそれを印刷している。 我々のプログラムをコンパイルして実行してみましょう。 グレート。 我々は与えられた文字列がエコーバックされました 端末での私たちに。 printf関数に書いたので、これは何が起こっ ストリームは、標準出力と呼ばれる、またはS-T-D-OUT。 何かがstdoutに書き込まれている場合、デフォルトではだ 端末によって表示される。 だから、すべてが順調と良いことだが、単に何の代わりに、場合 文字列を表示する、我々はそれをファイルに保存したいですか? 例えば、私たちは覚えておきたいかもしれません、まさに私たちの 我々は、後でそれに特定の入力を与えたときにプログラムがなかった。 一つのアプローチは、使用して、私達のCプログラムでこれを行うことであろう 我々はよそのファイルへの書き込みのためにいくつかの特別な機能 別のビデオで見る。 さらに簡単に、しかし、何とかになる stdoutをファイルにリダイレクトします。 そうすれば、printfの標準出力(stdout)に書き込むときに、内容が意志 のではなくファイルに書き込まれる 端末によって表示される。 私たちは、大なり記号を追加することにより、続いてちょうどそれを行うことができます ファイル名によって、コマンドに我々のプログラムを実行するために使用します。 そうではなく、単に実行する。/リダイレクト、我々は、することができます 続いて、不等号、続いて実行する。/リダイレクト file.txtのようにファイル名、。 何が起こるか見てみましょう。 [OK]をクリックします。 この時間は、何も端末に表示されていないことに注意してください、 しかし、我々は我々の内容を変更していない すべてのCプログラム。 今lsでこのディレクトリの内容を調べてみましょう。 かしこまりました。 今、私たちのディレクトリに新しいファイルがfile.txtを呼んでいる、 それは私達が私達を実行したときに我々は与えられたファイル名です プログラムをリダイレクトします。 file.txtのを開きましょう。 そしてここで、我々は、リダイレクトのうち、stdoutがあったことがわかります file.txtを呼ばれるファイルに書き込まれます。 それでは、上記のコマンドをもう一度実行してみましょうが、供給 異なる入力この時間。 オーケー。 それでは、file.txtを見てみましょう。 我々は、ファイルが上書きされたことをここに見ることができるので、私たちの 元の入力はもうありません。 我々は、代わりにこのファイルに追加したい場合は、新しいを置く ファイルの既存の内容を以下に入力、私たちすることができます ただ1つではなく2つの大なり記号を使用します。 ことを試してみましょう。 我々は再びfile.txtを開いた場合、今、私達は私達の両方を見ることができます 入力ライン。 いくつかのケースでは、我々はすべてを破棄したい場合があり 私たちのプログラムの出力。 むしろ、出力をファイルに書き込み、その後削除するよりも 我々はそれを行っているファイルは、我々は特別に書き込むことができます ファイルは/ dev / nullと呼ばれる。 何が/に書き込まれたときにdev/null-- または略して単にdevnull - それは自動的に破棄されます。 だからあなたのデータのためのブラックホールとしてdevnull考える。 だから今我々はより大きい符号がリダイレクトする方法を見てきました 標準出力(stdout)、我々は標準的なリダイレクトする方法を見てみましょう - またはS-T-D-IN - stdoutのアナログ。 関数はprintfというストリームに書き込みたいとしながら ストリームから読み込まれた標準出力(stdout)、GetStringメソッドと同様の機能 デフォルトでは、ストリームである、と呼ばれる標準入力、 文字はキーボードで入力。 我々は、不等号を使ってstdinをリダイレクトすることができ、続いて ファイル名による。 今すぐではなく、少なくともユーザーに入力を促す ターミナル、我々は指定されたファイルを開いて使用するプログラム 入力としてのライン。 何が起こるか見てみましょう。 グレート。 file.txtの最初の行が端末に表示されています 私たちは、かつてGetStringメソッドを呼び出しているためです。 我々は我々のプログラムでGetStringメソッドに別の電話があった場合は、 file.txtの次の行は次のように使用されていた その呼び出しへの入力。 再び、我々はすべて弊社のC言語のプログラムを変更していない。 私たちは私たちがそれを実行する方法を変更している。 そしてまた、我々は標準出力(stdout)、この時間をリダイレクトしていない、覚えている ので、プログラムの出力はまだあった 端末に表示。 我々は、もちろん、両方stdinをリダイレクトすることができます このようなとstdout。 さて、file2.txtはfile.txtの最初の行が含まれています。 だから、これらの演算子を使用して、私たちを読むことができましたし、 テキストフ​​ァイルからの書き込み。 今、私たちは1つのプログラムの出力を使用する方法を見てみましょう 他のプログラムに入力する。 そこでここでは別の簡単なCのプログラム私はだ ここでは、hello.cと呼ばれています。 あなたが見ることができるように、これは単にこんにちは "を出力 そこに! "ユーザーに設定されます。 - 私は、入力としてハローの出力を使用するようにリダイレクトしたい場合 別のプログラム - 私は最初に呼ばれるファイルに挨拶のstdoutをリダイレクトすることができ input.txt、その同じにリダイレクトのstdinをリダイレクト ファイル - input.txt。 だから私は行うことができます。/ hello>というinput.txt。 これを実行するには、Enterを押します。 続いて。/リダイレクト< input.txt、そしてことを実行してください。 だから我々はできセミコロンでこのビットを、短縮することができます 私たちは、同じ回線上の2つ以上のコマンドを実行します。 だから私は、と言うことができます。/ hello>というinput.txt、セミコロン、 。/ final.txt。 我々はfinal.txtを開くので、もし、私たちがいたかを正確に持っている 探している: アルファベット順に一意の名前のリスト、 テキストフ​​ァイルに保存。 ところで、私達はまた言ったかもしれないソート< students.txt | uniqは> final.txtかを正確に 我々が見てきた事業者のそれぞれを使用して同じこと、 このビデオ。 私の名前はトミーであり、これはCS50です。