"read()関数とwrite()関数を用いて、コマンド行引数で指定されたファイルを読み込み"
の時点から既にどのようにすればよいか分からない状況です、、どうかお助け下さい、、
read()関数とwrite()関数を用いて、コマンド行引数で指定されたファイルを読み込み、そのまま標準出力に出力するプログラムを作成してください。次のように、このプログラム自身を引数として指定して、リダイレクトしてファイルに保存し、このプログラム自身とcmpコマンドで比較すると、同一なので、何も出力されないはずで、正しくプログラムが作成できたかどうかが分かります。基本的には、ファイルをopen()関数でオープンした後、繰り返しの中でread()関数を呼び出します。read()関数は、実際に読み込んだバイト数を返しますが、ファイルの終わりで0を返しますので、そこで繰り返しを抜け出します。また、読み込みでエラーになった場合には-1を返します。
c
1% ./kadai7 kadai7 > temp 2% cmp kadai7 temp 3%
コマンド行引数の例として以下があり、
ここのmainにおいてopen関数でファイルを開き、繰り返しの中でread関数を呼び出すのでしょうか。
c
1#include <stdio.h> 2#include <stdlib.h> 3int i; 4int main(int argc, char *argv[]){ 5 if(argc > 1){ 6 for(i=1; i<argc; i++){ 7 printf("%s ",argv[i]); 8 } 9 printf("\n"); 10 } 11 exit(0); 12}

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。