の引数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[])
そして、開発者がそれらを変更する必要がある場合、それらをローカル変数にコピーできるようにしますか?