1

の引数main()が書き込み可能であるのはなぜですか? つまり、プログラムはそれらを 1% の確率で変更するということですか?

del readme.txt (DOS)

また

rm readme.txt (Unix)

文字列を変更する必要はありません"readme.txt"(like that という名前のファイルを削除しても)。

ほとんどのバイナリは引数に触れていないのに、なぜ OS は引数をコピーしてアプリケーションに書き込み可能にするのでしょうか?

それらを読み取り専用にして、(たとえば) このように C++ のメイン関数を持たせた方が良いでしょうか (つまり、より効率的です)。

int main (const int argc, const char * argv[])

それ以外の

int main (int argc, char * argv[])

そして、開発者がそれらを変更する必要がある場合、それらをローカル変数にコピーできるようにしますか?

4

1 に答える 1