
No.4ベストアンサー
- 回答日時:
> ↑間違ってますか?
間違っています。
argv[n]がNULLになるのは、argv[argc]だけです。
5個のパラメータが正しく入力されたかどうかを知るのであれば、
if (argc == (5 + 1))
とします。
argv[0]にはプログラム名が格納されます。また、環境によってはargcが0になることもありますので、その場合はargv[0]がNULLになります。
argv[argc + 1]以降は配列の外になりますので、その内容を参照することはできません。
No.3
- 回答日時:
> if (argv[1] == NULL)
> if (argv[2] == NULL)
> if (argv[3] == NULL)
> if (argv[4] == NULL)
> if (argv[5] == NULL)
> とやれば、それぞれNULLかどうかのチェックできると
> いう事ですね!
一応はそうですが、たぶん何か誤解があると思います。
具体的に何をしたいのか補足してください。
この回答への補足
やりたい事は、シェルから渡されてくる5個の
パラメタを使って、Cモジュールで処理を行うのですが
変数に格納する前に、パラメタチェックを行ってから
(シェル側でもチェックしてる)宣言した変数にコピーして使いたいのです。
if (argv[1] == NULL){ /* パラメタのNULLチェック */
strcpy(atr1, argv[1]); /* 変数にコピーする */
}
↑間違ってますか?
No.2
- 回答日時:
argv はプログラム名を含めたコマンドライン引数の配列へのポインタを保持しているので、NULL にはなりません。
argv[1] は(もしあれば)コマンドライン引数の文字列の先頭を指しているので、'\0' にはなりません。
argv[1] が NULL ということはプログラムが、引数なしで実行されたということです。
strcmp(argv[1] == NULL) は明らかに不正な呼び出しです。strcmp の関数宣言を確認して下さい。
No.1
- 回答日時:
> 記述は以下で合っていますでしょうか?
間違っています。
argvの値がNULLかどうかをチェックするのであれば、
if (argv == NULL)
です。ただし、argvがNULLになるのは、(再帰呼出しを行うなど)自分でmainを呼び出した場合のみです。
argv[1]がNULLかどうかをチェックするのであれば、
if (argv[1] == NULL)
です。
この回答への補足
パラメタの数が5コあって、それぞれの値がNULLか
どうかチェックするのであれば、jactaさんが
教えてくれたように
if (argv[1] == NULL)
if (argv[2] == NULL)
if (argv[3] == NULL)
if (argv[4] == NULL)
if (argv[5] == NULL)
とやれば、それぞれNULLかどうかのチェックできると
いう事ですね!
ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
c言語プログラミングについて f...
-
【C#】SQL文の中に変数を埋め込...
-
2の補数を計算するプログラム
-
分数の足し算をさせるプログラ...
-
ヒストグラム均等化処理プログラム
-
再帰処理をループ処理に変換
-
C++で表を作成したいのです ...
-
再起呼び出しの回数をカウント...
-
モータの制御
-
C言語でテーブル引きしたら速度...
-
最大の四角形を求めるプログラム
-
OpenCVによる4値化について
-
OpenGLの惑星プログラム
-
C++ bmp 透過処理
-
カードシャッフルのブログラム...
-
文字列と変数の値をエディット...
-
3のつく数と3の倍数を表示 C言語
-
ライントレース:C言語 物理セン...
-
条件が多い場合
-
迷路の解を見つけるアルゴリズム
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語で%を使わない余りの出し方
-
カードシャッフルのブログラム...
-
2の補数を計算するプログラム
-
OpenCVによる4値化について
-
ヒストグラム均等化処理プログラム
-
【C#】SQL文の中に変数を埋め込...
-
再起呼び出しの回数をカウント...
-
intとlongは同じ?
-
C++で表を作成したいのです ...
-
画像の拡大・縮小
-
argvのNULLチェック
-
c言語プログラミングについて f...
-
ヌメロンのプログラム
-
C言語でDOS画面のプログラム(...
-
OpenGLの惑星プログラム
-
opencvとmbedのシリアル通信で...
-
C言語プログラミング 漸化式に...
-
3のつく数と3の倍数を表示 C言語
-
猫でもわかるゲームプログラミ...
-
条件が多い場合
おすすめ情報