Ví dụ: execve (2), mà theo posix có nguyên mẫu này [1]:Tại sao không phải là đối số argv và envp để thực thi con trỏ đến const?
int execve(const char *path, char *const argv[], char *const envp[]);
Đối với tôi, nó có vẻ như thể
int execve(const char *path, const char *const argv[], const char *const envp[]);
sẽ là một sự cải tiến rõ ràng.
Vì vậy, có ai biết tại sao điều này giống như không? Điều gì có thể giải thích sự cần thiết để có thể thao tác các chuỗi argv/envp đã cho?
[1] http://pubs.opengroup.org/onlinepubs/009695399/functions/exec.html
[Trả lời nhận xét của bạn về câu trả lời đã xóa] Ồ, tôi hiểu ý bạn là gì - vâng, câu trả lời của tôi đề cập đến các đối số của 'main', không phải là đối số của' argv'. Đó thực sự là một câu hỏi C API, không phải là một câu hỏi thiết kế hệ thống Unix. Tôi nghĩ rằng câu trả lời chỉ đơn giản là tương thích lịch sử với các API ban đầu, pre-const. – Gilles
Vì câu hỏi về API C (trái ngược với thiết kế hệ thống chung) không có chủ đề ở đây, tôi đang bỏ phiếu để chuyển sang [như vậy]. (Không được đăng lại, câu hỏi sẽ sớm được chuyển đi.) – Gilles
Có lẽ một số chương trình biến đổi các bộ đệm này –