ただ今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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コマンドプロンプトが実行中か...
-
コマンドプロンプトで表示が多...
-
バッチファイルでキー操作を行う。
-
ttlで戻り値を取得する方法
-
VBユーザーフォームで時間入力
-
Excel VBA コマンドライン(MS-...
-
別のユーザーフォームのコマン...
-
コマンドキーがないんですけど...
-
コンボボックス(最終行取得)
-
Tera Term Proに関する質問です。
-
VBA でshell関数を使ってコマン...
-
dosバッチ起動後、画面を閉じな...
-
ディスクの空き容量を取得する...
-
文字の点滅はどうやるのですか?
-
viの行削除コマンドを教えて下...
-
HP-UXでのMakeファイルの文法に...
-
バッチファイルでユーザーに入...
-
アンドロイドでも、robocopyは...
-
latexが使いたい
-
エクセル コマンドボタンでリセ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コマンドプロンプトが実行中か...
-
コマンドプロンプトで表示が多...
-
バッチファイルでキー操作を行う。
-
ttlで戻り値を取得する方法
-
別のユーザーフォームのコマン...
-
VBユーザーフォームで時間入力
-
Tera Term Proに関する質問です。
-
RTX1100の削除コマンド
-
コマンドプロンプトですべてのU...
-
コンボボックス(最終行取得)
-
EEPROMのデータの初期化について
-
文字の点滅はどうやるのですか?
-
excel-vbaで作成したマクロを別...
-
コマンドキーがないんですけど...
-
ルーターにつながっている全て...
-
VBA
-
dosバッチ起動後、画面を閉じな...
-
[WSH|JS|VB] telnetコマンドの...
-
【Teratermマクロ】文字列の一...
-
makeコマンドのエラー
おすすめ情報