質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Q&A

解決済

1回答

1102閲覧

C言語 read関数・write関数を用いて、コマンド行引数でファイル読み込み

ccodereader

総合スコア7

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

0グッド

0クリップ

投稿2022/05/29 14:35

編集2022/05/29 15:06

"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}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

ここのmainにおいてopen関数でファイルを開き、繰り返しの中でread関数を呼び出すのでしょうか。

それで良いでしょう。

投稿2022/05/29 15:50

otn

総合スコア86281

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問