小さな C プログラムを作成していて、実行可能ファイルが開始された引数のみを保持する char ポインター配列が必要です。現在、このコードはすべての環境変数も出力します。
int main (int argc, const char * argv[]) {
while(argv) {
NSLog(@"Parameter %s\n", *argv);
argv++;
}
}
小さな C プログラムを作成していて、実行可能ファイルが開始された引数のみを保持する char ポインター配列が必要です。現在、このコードはすべての環境変数も出力します。
int main (int argc, const char * argv[]) {
while(argv) {
NSLog(@"Parameter %s\n", *argv);
argv++;
}
}
に変更while(argv)
しwhile(*argv)
ます。それはあなたにただの議論を与えるでしょう。
main()
実際にはこのように呼び出されますmain(int argc, char **argv, char **environ)
何が起こっているかというと、あなたは通り過ぎargv
て に入っていenviron
ます。この動作は未定義であり、依存すべきではありません。あなたのコードは、そのままで環境を通過し続け、止まらず、ゴミを出力します。
もちろん、別の方法で行うこともできます。
for(int i = 0; i < argc; i++) {
NSLog(@"Parameter %s\n", argv[i]);
}
argv[0]
にはプログラム名が含まれ、残りは引数です。