12,788
回編集
(ページの作成:「== コマンドライン引数を利用してプログラムにデータを渡す == コマンドライン引数は、プログラムの実行時に渡される引数の…」) |
|||
107行目: | 107行目: | ||
printf("%s\n", s); | printf("%s\n", s); | ||
return EXIT_SUCCESS; | |||
} | |||
</source> | |||
<br><br> | |||
== パイプを利用してプログラム間でデータを渡す == | |||
標準出力から出力されたデータはパイプを使用することにより、別のプログラムの標準入力へ入力することができる。<br> | |||
<br> | |||
パイプを利用してプログラム間でデータを渡すには、以下のようにコマンドを実行する。<br> | |||
プログラム1の標準出力からプログラム2の標準入力へデータを渡します. | |||
プログラム1 | プログラム2 | |||
<br> | |||
'''出力側(output.c)'''<br> | |||
以下の出力側のプログラムを用意して、output.outという名前でコンパイルする。<br> | |||
<source lang="c"> | |||
#include <stdio.h> | |||
#include <stdlib.h> | |||
int main(void) | |||
{ | |||
char s[N] = {'\0'}; | |||
printf("%s\n", "Snoopy!"); | |||
return EXIT_SUCCESS; | |||
} | |||
</source> | |||
'''入力側(input.c)'''<br> | |||
以下の入力側のプログラムを用意して、input.outという名前でコンパイルする。<br> | |||
<source lang="c"> | |||
#include <stdio.h> | |||
#include <stdlib.h> | |||
#define N 256 | |||
int main(void) | |||
{ | |||
char s[N] = {'\0'}; | |||
fgets(s, N - 1, stdin); | |||
/* scanf("%255s", s) */ /* こちらの記述でもよい */ | |||
printf("%s\n", s); | |||
return EXIT_SUCCESS; | |||
} | |||
</source> | |||
<br><br> | |||
== 他のプログラムを実行する == | |||
他のプログラムを実行するには、stdlib.hのsystem関数を使用する。<br> | |||
system関数は、コマンドプロセッサへ引数が指す文字列を渡す関数である。system関数によって渡された文字列は、コマンドプロセッサによって実行される。<br> | |||
<br> | |||
'''呼び出す側のプログラム(exec.c)'''<br> | |||
以下の呼び出す側のプログラムをexec.outという名前でコンパイルする。<br> | |||
<source lang="c"> | |||
#include <stdio.h> | |||
#include <stdlib.h> | |||
int main(void) | |||
{ | |||
char program[] = "./print.out"; | |||
int result; | |||
/* 他プログラムを実行する */ | |||
result = system(program); | |||
if ( result == EXIT_SUCCESS ) | |||
{ | |||
puts("正常に実行されました."); | |||
} | |||
else | |||
{ | |||
puts("正常に実行されませんでした."); | |||
} | |||
return EXIT_SUCCESS; | |||
} | |||
</source> | |||
<br> | |||
'''呼び出される側のプログラム(print.c)'''<br> | |||
以下の呼び出される側のプログラムをprint.outという名前でコンパイルする。<br> | |||
<source lang="c"> | |||
#include <stdio.h> | |||
#include <stdlib.h> | |||
int main(void) | |||
{ | |||
printf("Snoopy\n"); | |||
return EXIT_SUCCESS; | return EXIT_SUCCESS; | ||
} | } |