epoll_ctl 系统调用 最后一个参数为何不加const

epoll_ctl 系统调用 最后一个参数为什么不加const
int epoll_ctl(int epfd, int op, int fd, struct epoll_event *event);
这是系统调用的原api.
为什么不是
int epoll_ctl(int epfd, int op, int fd, const struct epoll_event *event);

------解决思路----------------------
const 不是一开始就有的,在新的 C 标准里面才增加的,为了兼容性,很多地方都要妥协才行,比如:
char* p = "Hello Wolrd!" 就不应该允许编译通过,要 const char* p = "Hello World!" 才行,但事实上 char* p = "Hello Wolrd!" 已经存在太多了,不可能不让它通过。
------解决思路----------------------
可能原因正如楼上说的。也有可能设计时认为这个调用会在后需修改event结构的内容。
epoll_ctl的调用,认为重点是意识到传入的epoll_event *event会被内核拷贝一份存入红黑树中,用户自行释放event也没有关系。