コマンドライン引数を文字配列に渡す 2 つの方法を見つけました。
int main (int argc, char **argv)
{
const char *s1 = argv[0];
char s2[256];
strcpy(s2, argv[0]);
printf("s1: %s\ns2: %s\n\n", s1, s2);
}
AIX システムで IBM xlc コンパイラーを使用してコンパイル
[マイプロンプト]> ./a.out
s1: ./a.out
s2: ./a.out
どちらの実装 (s1 または s2) が正しいですか? argv[0] は任意の長さにできるため、s1 は便利です。s2 では、argv[0] の長さが 256 文字未満である必要があります。
s1 がどのように/なぜ機能するのかわかりません。s1 の右側はコンパイル時に必要だと思いますが、実行時に生成されると思います。