ただ今Cの関数を勉強しているのですが、勉強用HPに
************************
int main(int argc, char *argv[ ])
戻り値:int型、引数:argc, argv
後者は、コマンドライン オプションを受け付ける。 argc はオプションの数、argv はオプションの内容となる。
************************
とあります。
そこで質問なのですが、コマンドラインオプションとは何ですか?
また、
・コマンド
・コマンドライン
・コマンドラインオプション
の違い、それぞれの意味も教えてください。
マックのコマンド+s、コマンド+vみたいなものですか?
それともunixのcdや./のようなものでしょうか。
わからない単語が出てくると、
そこで頭が混乱してしまい先に進めない性質なので困っています。
どうぞご教授よろしくお願いします。
No.3ベストアンサー
- 回答日時:
★回答
・『コマンド』とは
プログラム名の事です。
つまり unix でいうと cd、cp、ls などです。
・『コマンドライン』とは
プログラム名 引数 … 引数、オプションの1行の事です。
または、コマンドを打ち込む入力待ちの状態です。
・『コマンドラインオプション』とは
cp コマンドでいう -f、-i、-p、-r などの事です。
cp コマンドでのファイル名は引数と呼びます。
一般にオプションは - 文字から始まります。
あと Windows の OS では / 文字から始まるスイッチオプションという呼び方がありますが、
- 文字から始まるオプションとほぼ同じ役割です。また、- 文字、/ 文字から始まるものを
合わせてオプションと呼ぶこともあります。
その他:
・main() 関数の引数にある『argc』は引数の個数、『argv』は引数の内容です。
参考にした HP ではオプションの数、オプションの内容と呼んでいますが、引数もオプションも
含まれます。引数とオプションはプログラムで区別するため、そのために - 文字や / 文字から
始まる文字列をオプション(スイッチ)などとして区別しています。もし、- 文字や / 文字から
始まらない文字列ならば、それが引数とプログラムで解釈するように C ソースを記述します。
・具体的にはコマンドラインで『cp -i -r file1.c file2.c』と入力するとプログラムでは、
argc = 5
argv[ 0 ] = "cp" ←プログラム名
argv[ 1 ] = "-i"
argv[ 2 ] = "-r"
argv[ 3 ] = "file1.c"
argv[ 4 ] = "file2.c"
argv[ 5 ] = NULL ←必ずセットされる
となります。
・argc はオプションと引数の合計数です。また、プログラム名もカウントされます。
その他、argv[0] にプログラム名が入るか、空文字列が入るかは処理系依存です。
あと argv[ argc ] の位置には必ず NULL ポインタがセットされることが保障されています。
・以上。参考に!
詳しいご説明、どうもありがとうございます。
例の提示と、それに対するわかりやすいご説明のおかげで
今までごっちゃになっていたコマンドの区別がつくようになりました。
ぜひ、今後の参考にさせていただきます。
No.2
- 回答日時:
<・コマンド
実行命令。 例: cd
<・コマンドライン
コマンドを入力する行(プロンプトに続くスペース)。
・コマンドラインオプション
コマンドの引数。 例: cd ./ の ./
ご回答どうもありがとうございます。
スパッとした解説のおかげで頭がこんがらがずにすみました。
おまけに例も提示してくださりまして、大変わかりやすかったです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語 共用体について コマンドライン引数で値を2つ入力したときに、argv[2]の値をUNI u1 4 2022/04/25 20:34
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
- C言語・C++・C# C言語について コマンドラインで >変数 12.00 (char型) と、小数点付きの値を共用体に渡 1 2022/04/22 16:56
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- C言語・C++・C# c言語 コマンドライン引数 4 2023/02/09 18:47
- CAD・DTP Autocad Scriptファイルからの入力とコマンドラインからの入力が違う 1 2023/08/01 09:13
- UNIX・Linux テキストファイルをページ番号付きでコマンドラインから印刷したい 1 2023/02/22 12:47
- C言語・C++・C# c言語 配列とポインタについて 3 2023/02/09 22:53
- C言語・C++・C# バイナリファイルをコピーするのにかかる時間を測りたいのですが実行するとFatel error:gli 2 2022/11/03 01:10
- C言語・C++・C# C言語のファイル入力が分かりません 2 2022/05/22 06:35
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
バッチファイルでキー操作を行う。
-
デフォルトのショートカットキ...
-
別のユーザーフォームのコマン...
-
コマンドプロンプトが実行中か...
-
VBユーザーフォームで時間入力
-
機内モードのままOFFに出来ない
-
TEXの表の位置が・・・
-
コマンドプロンプトですべてのU...
-
ルーターにつながっている全て...
-
[ASP]BASICで使えたような「G...
-
Ciscoポートミラーリングの設定...
-
コマンドラインで一定時間処理...
-
エクセルのマクロ(visual basi...
-
viの行削除コマンドを教えて下...
-
シェルコード とコマンドプロン...
-
インタネットに接続できないと...
-
VBSで異なる資格情報でNWドライ...
-
ttlで戻り値を取得する方法
-
コンボボックス(最終行取得)
-
AndroidのGmailアプリってどう...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バッチファイルでキー操作を行う。
-
コマンドプロンプトが実行中か...
-
コマンドプロンプトで表示が多...
-
ttlで戻り値を取得する方法
-
別のユーザーフォームのコマン...
-
VBユーザーフォームで時間入力
-
Tera Term Proに関する質問です。
-
コマンドプロンプトですべてのU...
-
コマンドキーがないんですけど...
-
TEXの表の位置が・・・
-
ルーターにつながっている全て...
-
デフォルトのショートカットキ...
-
dosバッチ起動後、画面を閉じな...
-
文字の点滅はどうやるのですか?
-
EEPROMのデータの初期化について
-
RTX1100の削除コマンド
-
コンボボックス(最終行取得)
-
JP1起動バッチについて
-
makeコマンドのエラー
-
ディスクの空き容量を取得する...
おすすめ情報