Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

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)) {&


Ïà¹ØÎĵµ£º

Linux iptableÎĵµ

×ÜÀÀ
ÓÃ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 ......

Èý¿î Linux ϵÄÃâ·Ñ×ÀÃæ¼¶É±¶¾Èí¼þ(ͼ)


ÓÉÓÚ Linux Á¼ºÃµÄÓû§È¨ÏÞ¹ÜÀíÌåϵ£¬²¡¶¾ÍùÍùÊÇ Linux ϵͳ¹ÜÀíÔ±×îºó²ÅÐèÒª¿¼ÂǵÄÎÊÌâ¡£ÒÔÍù£¬Linux ÉϵÄɱ¶¾Èí¼þÖ÷ÒªÊÇΪÆóÒµµÄÓʼþºÍÎļþ·þÎñÆ÷ËùÉè¼ÆµÄ¡£Èç½ñ£¬Ëæ×Å Linux ×ÀÃæÓû§ÊýÁ¿µÄÔö³¤£¬×ÀÃæÓû§ÔÚÊÜÒæÓÚ Linux ϵͳ¶Ô²¡¶¾½ÏÇ¿µÄÌìÈ»ÃâÒßÁ¦µÄͬʱ£¬Ò²ÐèҪɱ¶¾Èí¼þÇåÀí´ÓÍøÂç»òUÅÌ´øÀ´µÄWIndows²¡¶¾¡£¾¡¹ÜÄÇЩ ......

linuxÄں˶ÁÊé±Ê¼Ç£¨½ø³ÌÊý¾Ý½á¹¹·ÖÎö£©Ò»

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 ......

LinuxÏÂVMWareÐÞ¸ÄBIOS°²×´Win7µÄOEM°æ

      ÔÚѧϰÓ빤×÷Öж¼Àë²»¿ªLinux£¬ÄÇô¸É´à¾ÍÖ»×°Ò»¸öLinuxËãÁË£¬²»¹ý»¹ÊÇ»áÓÐÓõ½WindowsµÄÇé¿ö£¬±ÈÈç˵дÂÛÎİ¡£¬Ä³Ð©×¨ÒµÈí¼þ°¡Ê²Ã´µÄ¡£²»ÒªËµLinuxÏÂʲô¶¼ÓУ¬ºÇºÇ£¬·´ÕýÎÒÊDz»¸ÒÓÃLinuxϵÄofficeµÄ£¬´òÓ¡Éç¶¼ÓÃMS word¡£¶øwordÎĵµµ½ÁËopenofficeÖ®Á÷µÄÏÂÃæ¾ÍÊÇ»á³öÏÖÇ§Ææ°Ù¹ÖµÄÏÖÏó¡£ ......

linuxϵͳµ÷ÓÃÁбí

Ò»¡¢½ø³Ì¿ØÖÆ£º
fork
´´½¨Ò»¸öнø³Ì
clone
°´Ö¸¶¨Ìõ¼þ´´½¨×Ó
½ø³Ì
execve
ÔËÐпÉÖ´ÐÐÎļþ
exit
ÖÐ
Ö¹½ø³Ì
_exit
Á¢¼´ÖÐÖ¹µ±Ç°½ø³Ì
getdtablesize
½ø
³ÌËùÄÜ´ò¿ªµÄ×î´óÎļþÊý
getpgid
»ñȡָ¶¨½ø³Ì×é±êʶºÅ
setpgid
Éè
ÖÃÖ¸¶¨½ø³Ì×é±êÖ¾ºÅ
getpgrp
»ñÈ¡µ±Ç°½ø³Ì×é±êʶºÅ
setpgrp
Éè
Öõ±Ç°½ø³Ì×é± ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ