注æçè¿ä¸ªæ件
sysdeps/unix/sysv/linux/syscalls.list
éé¢è®°å½çç³»ç»è°ç¨çåååä¸äºå±æ§ï¼å
·ä½æä¹æ²¡æç 究è¿ï¼ä¸æã
åçselectçå®ç°ï¼å¾è®©äººæ讶ï¼ä¸æ¦ä½¿ç¨ï¼ç»æå°±æ¯âæ¥éâã
int
__select (nfds, readfds, writefds, exceptfds, timeout)
int nfds;
fd_set *readfds;
fd_set *writefds;
fd_set *exceptfds;
struct timeval *timeout;
{
__set_errno (ENOSYS);
return -1;
}
libc_hidden_def (__select)
stub_warning (select)
weak_alias (__select, select)
è¿æ¯å 为glibc并没æå®ç°ç³»ç»è°ç¨ï¼èæ¯è°ç¨ç³»ç»è°ç¨ï¼
æ´è¿ä¸æ¥ï¼è¿è°ç¨ç³»ç»è°ç¨é½æ²¡æä¸ä¸ªä¸ªå®ç°ï¼èæ¯ä½¿ç¨äºéç¨çåæ³ï¼
çç±å¾ç®åï¼ææçç³»ç»è°ç¨å¨linuxå
æ ¸å¤´æ件éé½è½æ¾å°ï¼
ææçç³»ç»è°ç¨åæ°ç±»åå°±é£ä¹å ç§ï¼åæ°ä¸ªæ°ä¹æ¯æéçï¼
å æ¤æ²¡æå¿
è¦é对ææçç³»ç»è°ç¨ä¸ä¸å°è£
ï¼
äºæ¯å°±æäºè¿ä¸ªlistæ件ï¼èªå¨çæè°ç¨ç³»ç»è°ç¨çå½æ°ï¼
å¦æçæ失败ï¼ä¹å°±æ¯ä½ çå°çâæ¥éâã
符å·æ¯æ强弱çï¼å½èªå¨çææåçæ¶åï¼âæ¥éâç弱符å·å°±è¢«å¿½ç¥äºã
å½ä½ å¨glibcä¸æ¾å°ä¸ä¸ªç³»ç»è°ç¨çå°è£
æºç ï¼æ¯ä»¥ä¸åå ï¼
1. ç¼è¯çç®æ ç³»ç»ä¸æ¯æè¿ä¸ªç³»ç»è°ç¨ï¼æ以èªå·±ç¨å¦ä¸ç§æ¹å¼å®ç°äºã
2. è¿ä¸ªç³»ç»è°ç¨æ æ³ä½¿ç¨éç¨çèªå¨çææ¹å¼çæï¼ç¨ç¹åçæ¹å¼è¦çã
3. é对è¿ä¸ªç³»ç»è°ç¨åäºç¹å«çä¼åã
4. å
¶å®å¯è½çåå ã
å
·ä½å¯ä»¥çæ
SYSCALL, PSEUDO, DO_CALL, INLINE_CALL çåå
è¿ä¸¤ä¸ªæ件æ¯éç¹æå¨
sysdeps/unix/i386/sysdep.h
sysdeps/unix/i386/sysdep.S
è¦ææ¸
æ¥å
·ä½çèªå¨çæè¿ç¨ï¼ææå¾ç 究glibcèªèº«çç¼è¯è¿ç¨äº
温馨提示:答案为网友推荐,仅供参考