My Memorandum

私の備忘録。

PCサポートの発見、メモ
妊婦記録と育児日記

MS-DOSの基礎-データの入出力先の切り換え

2004-05-14 15:01:45 | PCサポ
「リダイレクト」とは,「方向切り換え」という意味で,コマンドを実行する際のデータの入力元や,実行結果の出力先を切り換える機能です。
MS-DOSでは キーボードから入力を行い,ディスプレイに出力する というのが標準の設定ですが,リダイレクトによりこの設定が変えられます。
この機能により,コマンドで得た結果をプリンタに出力したり,ファイルとして保存することが可能になります。

リダイレクトには,以下に示す機能があります。


<> > ・・・出力先を切り換える。
>> ・・・ファイルにコマンドの出力結果を付け加える。
<例1>ディレクトリ情報をプリンタに印刷する。
      A:\> dir > prn

<例2>FILE.TXT というファイルを作成して ディレクトリ情報を格納する。
      A:\> dir > file.txt

<例3>FILE.TXT にルートディレクトリのディレクトリ情報を付け加える。
      A:\> dir \ >> file.txt



なお,リダイレクトは MS-DOSのコマンドだけでなく,我々の作ったプログラムを実行させる場合も使えます。
例えば,C言語での scanf()や Fortranでの READ文のように入力を含むプログラムを実行する際,通常は,キーボードからデータを入力します。一方,このようなデータを別のファイルに用意しておき,入力元をそのファイルにリダイレクトして,ファイル中のデータを読み込ませることが簡単にできます。

以下に,我々の作ったプログラムを実行させる際のデータのリダイレクト方法を例示します。

前提条件:以下の(1)~(4)を前提にします。


(1) ソースプログラムの内容とファイル名

#include <stdio.h>
main(){
int i, j;
scanf("%d %d", &i, &j);
printf("i=%d j=%d i+j=%d\n", i, j, i+j);
}


・・・  A:\samp.c



(2) A:\samp.cを コンパイル,リンクして得られた実行形式プログラムのファイル名
   ・・・・・  A:\samp.exe
(3) データファイルの内容とファイル名


   12  34  
・・・  A:\samp.dat



(4) カレントディレクトリ ・・・・  A:\



<例1> データの入力元を A:\samp.dat にリダイレクトする場合:

 A:\>samp <samp.dat    i=12 j=34 i+j=46 

 A:\>


・・・入力データは A:\samp.dat 中のを使うので実行結果のみ表示される。


<例2> データの入力元を A:\samp.dat にリダイレクトし,さらに 出力先を D:\kekka.dat にリダイレクトする場合:
 A:\>samp <samp.dat > d:\kekka.dat  

 A:\>


・・・結果は D:\kekka.dat に出力されたので, 画面には表示されない。

D:\kekka.dat の内容は,次のように TYPEコマンドで見られます。
 A:\>type d:\kekka.dat

  i=12 j=34 i+j=46 

 A:\>