ページ 11

execve関数の引数について

Posted: 2010年1月24日(日) 13:11
by まなお
execve関数の引数について不明な点があるので投稿します。
環境はLinuxです。

execve関数のプロトタイプ宣言は以下のようになっています。
int execve(const char *filename, char *const argv[/url], char *const envp[/url]);

そこで質問なのですが、argvやenvpに指定する文字列はexecve関数の中で変更される可能性が
あるということなのでしょうか?

もし変更される可能性がないのならば
int execve(const char *filename, const char *const argv[/url], const char *const envp[/url]);
というようにcharの前にconstがあるべきだと思います。
何か理由があるのでしょうか?

Re:execve関数の引数について

Posted: 2010年1月24日(日) 14:53
by hoge
> もし変更される可能性がないのならば
> int execve(const char *filename, const char *const argv[/url], const char *const envp[/url]);
> というようにcharの前にconstがあるべきだと思います。
> 何か理由があるのでしょうか?

constつきだと、キャストする必要があり、面倒くさいからではないでしょうか。
http://www.kouno.jp/home/c_faq/c11.html#10

画像