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 ......
²¢·¢Ó뾺̬
½â¾ö¾ºÌ¬ÎÊÌâµÄ;¾¶ÊDZ£Ö¤¶Ô¹²Ïí×ÊÔ´µÄ»¥³â·ÃÎÊ¡£
·ÃÎʹ²Ïí×ÊÔ´µÄ´úÂëÇøÓò³ÆÎªÁÙ½çÇø£¬ÁÙ½çÇøÐèÒªÒÔijÖÖ»¥³â»úÖÆ¼ÓÒÔ±£»¤¡£ÖÐ¶ÏÆÁ±Î¡¢Ô×Ó²Ù×÷¡¢×ÔÐýËøºÍÐźÅÁ¿µÈÊÇLinuxÉ豸Çý¶¯ÖпɲÉÓõĻ¥³â;¾¶¡£
ÖÐ¶ÏÆÁ±Î
ÖÐ¶ÏÆÁ±Î½«Ê¹µÃÖжÏÓë½ø³ÌÖ®¼äµÄ²¢·¢²»ÔÙ·¢Éú£¬¶øÇÒ£¬ÓÉÓÚLinuxÄں˵Ľø³Ìµ÷¶ÈµÈ²Ù×÷¶¼ÒÀÀµ ......
1. ÄÚºËѧϰ·½·¨£¬±àÒë¡¢µ÷ÊԵȳ£¼ûÎÊÌâ
1.1 ¹ØÓÚ±àÒëÉý¼¶Äں˵½2.6.0µÄһЩÎÊÌâ ×÷Õߣºommm
http://linux.chinaunix.net/bbs/thread-281831-1-5.html
1.2 VMWare Workstation 6.0µ÷ÊÔLinux Kernel£¬¾¹Èç´Ë·½±ã ×÷Õߣºalbcamus
http://linux.chinaunix.net/bb ......
example:
zip -q -r html.zip html
²ÎÊý˵Ã÷£º
Óï¡¡¡¡·¨£ºzip [-AcdDfFghjJKlLmoqrSTuvVwXyz$][-b <¹¤×÷Ŀ¼>][-ll][-n <×Öβ×Ö·û´®>][-t <ÈÕÆÚʱ¼ä>][-<ѹËõЧÂÊ>][ѹËõÎļþ][Îļþ...][-i <·¶±¾Ñùʽ>][-x <·¶±¾Ñùʽ>]
²¹³ä˵Ã÷£ºzipÊǸöʹÓù㷺µÄѹËõ³ÌÐò£¬Îļþ¾ËüѹËõºó»áÁíÍ ......
Ò»¡¢½ø³Ì¿ØÖÆ£º
fork
´´½¨Ò»¸öнø³Ì
clone
°´Ö¸¶¨Ìõ¼þ´´½¨×Ó
½ø³Ì
execve
ÔËÐпÉÖ´ÐÐÎļþ
exit
ÖÐ
Ö¹½ø³Ì
_exit
Á¢¼´ÖÐÖ¹µ±Ç°½ø³Ì
getdtablesize
½ø
³ÌËùÄÜ´ò¿ªµÄ×î´óÎļþÊý
getpgid
»ñȡָ¶¨½ø³Ì×é±êʶºÅ
setpgid
Éè
ÖÃÖ¸¶¨½ø³Ì×é±êÖ¾ºÅ
getpgrp
»ñÈ¡µ±Ç°½ø³Ì×é±êʶºÅ
setpgrp
Éè
Öõ±Ç°½ø³Ì×é± ......