https://oshiete.goo.ne.jp/qa/8940272.html
以上プログラムで
11行目から14行目までは「ストリームの生成」だそうです。
fp = fopen(argv[1], "r");
if ( fp == NULL ){
printf("fopen dekinai\n");
return -2;
以上で
質問1
returnの-2;にしないとだめな理由は何でしょうか?
質問2
もし、return-2;の-2 を他の数字にした場合、行数のカウントは可能でしょうか!?
試したいのですが、簡単にできる環境がございません_ _
全国の皆様よろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
異常終了の原因を区別するためでしょう
大規模なシステムの場合だと、処理が複数のプログラムに分散されることが多いので、
スクリプトなりジョブ管理システムなりで、プログラムの呼び出しを管理することになります。
この様な場合はプログラム毎に実行結果を判断して、
異常発生ならば原因毎に特有の後始末を行わなければいけません。
この実行結果を判断する目的で、大抵のプログラムには終了ステータスの機能が備わっており、
C言語にも main 関数の return 文として仕様に盛り込まれています。
ご提示の例ですと、
終了ステータスが 0 なら、正常終了
終了ステータスが -1 なら、「引数が足りない」 の後始末をする
終了ステータスが -2 なら、「変なのを指定するな」 の後始末をする
というように、呼び出し側にて管理することができます。
単体で動くプログラムなら管理の必要はありませんが、
細かく決めた終了ステータスはデバッグ時に有益な情報源にもなりますので、
習慣として指定することをオススメします。
というわけで
質問1: -2 の理由
特に無いが、管理のために決まったルールがあるなら従うこと
質問2: -2 を他の数字にした場合
何の問題もない
ご回答誠にありがとうございました。
プログラムの”いろは”が少しわかりました。
めげずに頑張ります。
今後ともよろしくお願いいたします。
No.1
- 回答日時:
> returnの-2;にしないとだめな理由は何でしょうか?
特にない。別の整数値でもかまわない。ただし、0 はプログラムが正常終了したと取られるからこの場合はだめだし、argc が 2 の場合とはプログラムが続けられない理由が違うからこのときの return の値とは別の値にしたほうがいい。
……というか、前に参考 URL にしたこのページちゃんと読みました?
http://www.geekpage.jp/programming/c/return-main …
あと、
> 試したいのですが、簡単にできる環境がございません_ _
って、前に GCC とか Visual C++ とかのインストール方法を聞いてたけど、それを使えばいいじゃないですか。それはどうなったんですか?
お返事が遅れまして申し訳ございませんでした。
-2は特に決まりはない・・わかりました。
以下で
CC とか Visual C++ とかのインストール方法を聞いてたけど、それを使えばいいじゃないですか。
ですが、
インストールはしていますが!いまいち使い方が分かりません?
だいぶやりましたが_ _
ユーチューブあたりで探してみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- C言語・C++・C# バイナリファイルをコピーするのにかかる時間を測りたいのですが実行するとFatel error:gli 2 2022/11/03 01:10
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- C言語・C++・C# C言語 3 2022/10/04 15:07
- 大学・短大 C言語線形リストの問題です 3 2022/12/22 00:45
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- C言語・C++・C# C言語階乗の総和を求める 2 2023/03/04 23:31
- JavaScript HTMLでJavaScriptを使ってパスワードの強化判定のプログラムを作成しています。 一通り作っ 2 2022/10/19 01:41
- その他(プログラミング・Web制作) listへのappendが出来ない件 1 2022/12/06 21:44
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
インクリメント演算子のみを用...
-
Vba 実数および実数タイプの変...
-
Notepad++の関数リスト表示でC...
-
自動クエリとはどういうもので...
-
PICマイコンのコピー(クローン...
-
これはDos攻撃になりますか?
-
XnViewにwebpを「いつも開く」...
-
binファイルってiphone専用です...
-
セルフイメージを高める21日...
-
Excelで4096点以上のFFTの方法
-
プログラムに必要な数学本
-
あるプログラムのコマンドライ...
-
C言語の長桁の引き算のプログラ...
-
C言語でヒストグラムを作成する...
-
C *での三角形描画
-
転職・プログラマー 未経験者...
-
arduino の USB 接続
-
VB.NETで、プログラム上から新...
-
スマホを、昨年の2月に、機種変...
-
Excelに埋め込んだVBAのプログ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
あるプログラムのコマンドライ...
-
Excelで4096点以上のFFTの方法
-
「Outlookが他のプログラムによ...
-
Excelに埋め込んだVBAのプログ...
-
VBAにてメール作成した際、一部...
-
Notepad++の関数リスト表示でC...
-
自動クエリとはどういうもので...
-
読み込み中にアクセス違反が発...
-
PICマイコンのコピー(クローン...
-
XnViewにwebpを「いつも開く」...
-
未使用の変数を一括検索する方法
-
VBAでユーザーフォームが自動的...
-
UWSCで指定のフォルダを開きたい。
-
パックマンプログラム
-
このプログラミング誰か教えて...
-
モジュール、アプリケーション...
-
Vba UserFormを前面に出す方法...
-
特定のwebサイトのタイトルや記...
-
ドロップダウンリストの文字を...
-
テキストボックスのエンターキ...
おすすめ情報