昨天在寫Linux的系統程式時發現了一件很詭異的事....
那就是execv的prototype竟然是
那就是execv的prototype竟然是
int execv( const char *path, char *const argv[]);
根據這篇的描述,
而且雖然非const轉型到const是合法的,但是反向操作很危險。
真想知道它這麼定的理由= =
char * const
的意思是char的const指標,也就是說雖然有保護到指標,但是沒有保護到pointee的字元。而且雖然非const轉型到const是合法的,但是反向操作很危險。
真想知道它這麼定的理由= =
還有更扯的:
回覆刪除int main(int argc, char** argv);
Somebody please tell me why~