linuxÖÐselect()º¯Êý·ÖÎö
select()µÄ»úÖÆÖÐÌṩһfd_setµÄÊý¾Ý½á¹¹£¬Êµ¼ÊÉÏÊÇÒ»longÀàÐ͵ÄÊý×飬 ÿһ¸öÊý×éÔªËØ¶¼ÄÜÓëÒ»´ò¿ªµÄÎļþ¾ä±ú£¨²»¹ÜÊÇSocket¾ä±ú,»¹ÊÇÆäËû Îļþ»òÃüÃû¹ÜµÀ»òÉ豸¾ä±ú£©½¨Á¢ÁªÏµ£¬½¨Á¢ÁªÏµµÄ¹¤×÷ÓɳÌÐòÔ±Íê³É£¬ µ±µ÷ÓÃselect()ʱ£¬ÓÉÄں˸ù¾ÝIO״̬ÐÞ¸Äfd_setµÄÄÚÈÝ£¬ÓÉ´ËÀ´Í¨ÖªÖ´ ÐÐÁËselect()µÄ½ø³ÌÄÄÒ»Socket»òÎļþ¿É¶Á£¬ÏÂÃæ¾ßÌå½âÊÍ£º
#include
#include
#include
int select(nfds, readfds, writefds, exceptfds, timeout)
int nfds;
fd_set *readfds, *writefds, *exceptfds;
struct timeval *timeout;
ndfs£ºselect¼àÊÓµÄÎļþ¾ä±úÊý£¬ÊÓ½ø³ÌÖдò¿ªµÄÎļþÊý¶ø¶¨,Ò»°ãÉèÎªÄØÒª¼àÊÓ¸÷Îļþ ÖеÄ×î´óÎļþºÅ¼ÓÒ»¡£
readfds£ºselect¼àÊӵĿɶÁÎļþ¾ä±ú¼¯ºÏ¡£
writefds: select¼àÊӵĿÉдÎļþ¾ä±ú¼¯ºÏ¡£
exceptfds£ºselect¼àÊÓµÄÒì³£Îļþ¾ä±ú¼¯ºÏ¡£
timeout£º±¾´Îselect()µÄ³¬Ê±½áÊøÊ±¼ä¡££¨¼û/usr/sys/select.h£¬ ¿É¾«È·ÖÁ°ÙÍò·ÖÖ®Ò»Ã룡£©
µ±readfds»òwritefdsÖÐÓ³ÏóµÄÎļþ¿É¶Á»ò¿Éд»ò³¬Ê±£¬±¾´Îselect() ¾Í½áÊø·µ»Ø¡£³ÌÐòÔ±ÀûÓÃÒ»×éϵͳÌṩµÄºêÔÚselect()½áÊøÊ±±ã¿ÉÅÐ ¶ÏÄÄÒ»Îļþ¿É¶Á»ò¿Éд¡£¶ÔSocket±à³ÌÌØ±ðÓÐÓõľÍÊÇreadfds¡£ ¼¸Ö»Ïà¹ØµÄºê½âÊÍÈçÏ£º
FD_ZERO(fd_set *fdset)£ºÇå¿ÕfdsetÓëËùÓÐÎļþ¾ä±úµÄÁªÏµ¡£
FD_SET(int fd, fd_set *fdset)£º½¨Á¢Îļþ¾ä±úfdÓëfdsetµÄÁªÏµ¡£
FD_CLR(int fd, fd_set *fdset)£ºÇå³ýÎļþ¾ä±úfdÓëfdsetµÄÁªÏµ¡£
FD_ISSET(int fd, fdset *fdset)£º¼ì²éfdsetÁªÏµµÄÎļþ¾ä±úfdÊÇ·ñ
¿É¶Áд£¬>0±íʾ¿É¶Áд¡£
£¨¹ØÓÚfd_set¼°Ïà¹ØºêµÄ¶¨Òå¼û/usr/include/sys/types.h£©
ÕâÑù£¬ÄãµÄsocketÖ»ÐèÔÚÓж«¶«¶ÁµÄʱºò²Å¶ÁÈ룬´óÖÂÈçÏ£º
...
int sockfd;
fd_set fdR;
struct timeval timeout = ..;
...
for(;;) {
FD_ZERO(&fdR);
FD_SET(sockfd, &fdR);
switch (select(sockfd + 1, &fdR, NULL, &timeout)) {&
Ïà¹ØÎĵµ£º
×ÜÀÀ
ÓÃiptables -ADC À´Ö¸¶¨Á´µÄ¹æ
Ôò
£¬-AÌí¼Ó -Dɾ³ý -C ÐÞ¸Ä
iptables - [RI] chain rule num rule-specification[option]
ÓÃiptables - RI ͨ¹ý¹æÔòµÄ˳ÐòÖ¸¶¨
iptables -D chain rule num[option]
ɾ³ýÖ¸¶¨¹æÔò
iptables -[LFZ] [chain][option]
ÓÃiptables -LFZ Á´Ãû [Ñ¡Ïî]
iptables -[NX] chain
ÓÃ -NX ......
include/linux/sched.h
384 struct task_struct {
385 volatile long state;
386 struct thread_info *thread_info;
387 atomic_t usage;
388 unsigned long flags;
389 &nbs ......
1. ls£ºÁгöÎļþÁбí
¸ñʽ£º ls option£¬option¿ÉÒÔÊÇ£º -a ÁгöÒþ²ØÎļþ£¬-l ÁгöÎļþÏêϸÐÅÏ¢
2. pwd£º²é¿´µ±Ç°Ä¿Â¼
3. mkdir£º ´´½¨Ä¿Â¼
4. touch£º ´´½¨Îļþ
5. cd£º Çл»Ä¿Â¼
6. cp£º ¿½±´Îļþ/Ŀ¼
¸ñʽ£º cp srcfile desfi ......
LinuxÏÂC++¿ª·¢¹¤¾ß½éÉÜ
¡¡¡¡¸ÅÊö
¡¡¡¡¾ÍC£«£«¿ª·¢¹¤¾ß¶øÑÔ£¬ÓëWindowsÏÂ΢Èí£¨VC£¬ VS2005µÈ£©Ò»Í³ÌìÏÂÏà±È£¬Linux/UnixÏÂC£«£«¿ª·¢£¬¿ÉνÎ廨°ËÃÅ£¬¸÷ʽ¸÷Ñù¡£Emacs, vi, eclipse, anjuta£¬kdevelopµÈ²ã³ö²»Çî¡£
¡¡¡¡WindowsÏ£¬¿ª·¢¹¤¾ß¶àÒÔ¼¯³É¿ª·¢»·¾³IDEµÄÐÎʽչÏÖ¸ø×îÖÕÓû§¡£ÀýÈ磬VS2005¼¯³ ......
ʲôÊÇSocket
¡¡¡¡ Socket½Ó¿ÚÊÇTCP/IPÍøÂçµÄAPI£¬Socket½Ó¿Ú¶¨ÒåÁËÐí¶àº¯Êý»òÀý³Ì£¬³ÌÐòÔ±¿ÉÒÔÓÃËüÃÇÀ´¿ª·¢TCP/IPÍøÂçÉϵÄÓ¦ÓóÌÐò¡£ÒªÑ§InternetÉϵÄTCP/IPÍøÂç±à³Ì£¬±ØÐëÀí½âSocket½Ó¿Ú¡£
¡¡ ¡¡ Socket½Ó¿ÚÉè¼ÆÕß×îÏÈÊǽ«½Ó¿Ú·ÅÔÚUnix²Ù×÷ϵͳÀïÃæµÄ¡£Èç¹ûÁ˽âUnixϵͳµÄÊäÈëºÍÊä³öµÄ»°£¬¾ÍºÜÈÝÒ×Á˽âSocketÁË¡£ÍøÂçµÄ ......