2008年1月27日 星期日

詭異的execv

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

1 則留言:

  1. 還有更扯的:
    int main(int argc, char** argv);

    Somebody please tell me why~

    回覆刪除