我在下面阅读了redis源:
int aeCreateFileEvent(aeEventLoop *eventLoop, int fd, int mask,
aeFileProc *proc, void *clientData)
{
if (fd >= eventLoop->setsize) {
errno = ERANGE;
return AE_ERR;
}
aeFileEvent *fe = &eventLoop->events[fd];
//...
}
'fd' 参数是函数 socket 或 accept 的返回值,用作数组 'eventLoop->events' 的下标。'eventLoop->setsize' 初始化为 10000+1024=11024。
所以我的问题是:函数socket或accept的返回值范围是多少?为什么它们可以用作数组的下标?