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

Linux select

selectº¯ÊýÊÇÓÃÓÚ³ÌÐò¼àÊÓ¶à¸öÎļþÃèÊö·û(file descrīptor)µÄ״̬±ä»¯¡£³ÌÐò»áÍ£ÔÚselectÕâÀïµÈ´ý£¬Ö±µ½±»¼àÊÓµÄÎļþÃèÊö·ûÓÐijһ¸ö»ò¶à¸ö·¢ÉúÁË״̬¸Ä±ä¡£select()µÄ»úÖÆÖÐÌṩһfd_setµÄÊý¾Ý½á¹¹£¬Êµ¼ÊÉÏÊÇÒ»longÀàÐ͵ÄÊý×飬 ÿһ¸öÊý×éÔªËØ¶¼ÄÜÓëÒ»´ò¿ªµÄÎļþÃèÊö·û£¨²»¹ÜÊÇSocketÃèÊö·û,»¹ÊÇÆäËû Îļþ»òÃüÃû¹ÜµÀ»òÉ豸ÃèÊö·û£©½¨Á¢ÁªÏµ£¬½¨Á¢ÁªÏµµÄ¹¤×÷ÓɳÌÐòÔ±Íê³É£¬ µ±µ÷ÓÃselect()ʱ£¬ÓÉÄں˸ù¾ÝIO״̬ÐÞ¸Äfd_setµÄÄÚÈÝ£¬ÓÉ´ËÀ´Í¨ÖªÖ´ ÐÐÁËselect()µÄ½ø³ÌÄÄÒ»Socket»òÎļþ¿É¶Á.
selectº¯ÊýÔ­ÐÍÈçÏ£º
   int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout);
º¯ÊýµÄ×îºóÒ»¸ö²ÎÊýtimeoutÏÔÈ»ÊÇÒ»¸ö³¬Ê±Ê±¼äÖµ£¬ÆäÀàÐÍÊÇstruct timeval *£¬¼´Ò»¸östruct timeval½á¹¹µÄ±äÁ¿µÄÖ¸Õ룬ËùÒÔÎÒÃÇÔÚ³ÌÐòÀïÒªÉêÃ÷Ò»¸östruct timeval tv;È»ºó°Ñ±äÁ¿tvµÄµØÖ·&tv´«µÝ¸øselectº¯Êý£¬Èç¹û×îºóÒ»¸ö³¬Ê±µÄʱ¼äÖµÉèÖÃΪNULL±íʾÎÞ³¬Ê±Ê±¼ä¡£struct timeval½á¹¹ÈçÏ£º
struct timeval
{
long   tv_sec;     /* seconds */
long   tv_usec;    /* microseconds */
};
µÚ2¡¢3¡¢4Èý¸ö²ÎÊýµÄÀàÐÍÊÇÒ»ÑùµÄ£º fd_set *£¬¼´ÎÒÃÇÔÚ³ÌÐòÀïÒªÉêÃ÷¼¸¸öfd_setÀàÐ͵ıäÁ¿£¬±ÈÈ綨ÒåÁËrfds, wfds, efds¡£
ÁíÍâ¹ØÓÚfd_setÀàÐ͵ıäÁ¿£¬»¹ÓÐÒ»×é±ê×¼µÄºê¶¨ÒåÀ´´¦Àí´ËÀà±äÁ¿£º
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, fd_set *fdset)£º¼ì²éfd_setÁªÏµµÄÎļþÃèÊö·ûfdÊÇ·ñ¿É¶Áд£¬>0±íʾ¿É¶Áд¡£
£¨¹ØÓÚfd_set¼°Ïà¹ØºêµÄ¶¨Òå¼û/usr/include/sys/types.h£©¶¨ÒåµÄÕâÈý¸ö²ÎÊý¶¼ÊÇÃèÊö·ûµÄ¼¯ºÏ£¬µÚÒ»¸örfdsÊÇÓÃÀ´±£´æÕâÑùµÄÃèÊö·ûµÄ£ºµ±ÃèÊö·ûµÄ״̬±ä³É¿É¶ÁµÄʱϵͳ¾Í»á¸æËßselectº¯Êý·µ»Ø£¬µÚ¶þ¸öwfdsÊÇÖ¸ÓÐÃèÊö·û״̬±ä³É¿ÉдµÄʱϵͳ¾Í»á¸æËßselectº¯Êý·µ»Ø£¬µÚÈý¸ö²ÎÊýefdsÊÇÌØÊâÇé¿ö£¬¼´ÃèÊö·ûÉÏÓÐÌØÊâÇé¿ö·¢Éúʱϵͳ»á¸æËßselectº¯Êý·µ»Ø¡£ÏÂÃæÒÔÒ»¸öÊäÈëΪÀýÀ´ËµÃ÷£º
......other codes
int fd1, fd2;         /* ÔÚ¶¨ÒåÁ½¸öÃèÊö·û*/
fd1 = socket(...);    /* ´´½¨socketÁ¬½Ó*/
fd2


Ïà¹ØÎĵµ£º

LinuxÍøÂç±à³Ì ¿Í»§¶ËÓë·þÎñÆ÷¶ËÒ첽ͨÐÅ

#include <sys/select.h>
#include <sys/time.h>
#include
<sys/types.h>
#include <unistd.h>
int select(int
nfds,fd_set *readfds,fd_set *writefds, fd_set *except fds,struct timeval
*timeout)
void FD_SET(int fd,fd_set *fdset)
void FD_CLR(int fd,fd_set
*fdset)
void F ......

ÔÚlinuxϲéѯ·ÓÉ

ÔÚlinux²éѯ·Óɵķ½·¨ÓкܶàÖÖ¡£ÏÂÃæ½éÉÜÒ»ÖÖ´Óiproute¿ªÔ´Èí¼þÖÐÌáÈ¡³öÀ´µÄÒ»ÖÖ·½·¨¡£ÔÚubuntu904ϱàÒ룬ÔËÐÐͨ¹ý¡£
±àÒë: gcc -o reqroute iproute_linux.c
ʹÓÃ: ./reqroute 1.2.3.4
½á¹û:source:1.3.4.5
       Gateway:192.168.1.3
       Dev:et ......

Linux shell½Å±¾È«ÃæÑ§Ï°

Linux shell½Å±¾È«ÃæÑ§Ï°
 
 
1. Linux ½Å±¾±àд»ù´¡
1.1 Óï·¨»ù±¾½éÉÜ
1.1.1 ¿ªÍ·
³ÌÐò±ØÐëÒÔÏÂÃæµÄÐпªÊ¼£¨±ØÐë·½ÔÚÎļþµÄµÚÒ»ÐУ©£º
#!/bin/sh
¡¡¡¡·ûºÅ#!ÓÃÀ´¸æËßϵͳËüºóÃæµÄ²ÎÊýÊÇÓÃÀ´Ö´ÐиÃÎļþµÄ³ÌÐò¡£ÔÚÕâ¸öÀý×ÓÖÐÎÒÃÇʹÓÃ/bin/shÀ´Ö´ÐгÌÐò¡£
¡¡¡¡µ±±à¼­ºÃ½Å±¾Ê±£¬Èç¹ûÒªÖ´Ðиýű¾£¬»¹±ØÐ ......

Unix/Linux ϵͳ×Ô¶¯»¯¹ÜÀí:

±¾ÎÄÊÇ Unix/Linux ϵͳ¹ÜÀí×Ô¶¯»¯ÏµÁÐÖеÄһƪ£¬Ö÷Òª½²ÊöÈçºÎʵÏÖ´ÅÅÌ I/O ×Ô¶¯»¯¼à¿Ø¡£
´ÅÅÌ I/O ¼à¿ØÊÇ Unix/Linux ϵͳ¹ÜÀíÖÐÒ»¸ö·Ç³£ÖØÒªµÄ×é³É²¿·Ö¡£Ëü¿ÉÒÔ¼à¿ØÍÌÍÂÁ¿¡¢Ã¿Ãë I/O Êý¡¢´ÅÅÌÀûÓÃÂÊ¡¢·þÎñʱ¼äµÈÐÅÏ¢£¬²¢ÇÒÔÚ·¢ÏÖÒ쳣ʱ£¬·¢Ë͸澯ÐÅÏ¢¸øÏµÍ³¹ÜÀíÔ±£¬±ãÓÚϵͳ¹ÜÀíÔ±½øÐе÷ÕûÊý¾Ý²¼¾ÖµÈ¹ÜÀí»î¶¯ÒÔ´ïµ½ÓÅ»¯Ï ......

zz ɾ³ýUbuntu Linux²Ù×÷ϵͳ¾ÉÄں˵ķ½·¨


Oracle°ïÄú׼ȷ¶´²ì¸÷¸öÎïÁ÷»·½Ú
ʹÓÃUbuntuÒ»¶Îʱ¼äºó£¬¾Í»á·¢¾õÓÉÓÚ×Ô¶¯Éý¼¶£¬ÏµÍ³Àï°²×°Á˺ܶàÄںˡ£ÏñÎÒ£¬¾¹È»°²×°ÁËÏÂÃæÄÇô¶à£¬Õâ¸öÔì³ÉÁËÂþ³¤µÄÆô¶¯ÁÐ±í¡£±ØÐëɾµôһЩ²»Óõġ£
Ê×ÏȾÍÊÇʹÓÃÈçÏÂÃüÁÁгöËùÓа²×°µÄÄںˣ¬Ï±íÖУ¬´øÓÐimageµÄ¾ÍÊÇÄÚºËÎļþ¡£´ÓÖÐÑ¡ÔñÒªÐ¶ÔØµÄ°ü£¬ÓÃapt-getÀ´Ð¶ÔØ¡£
[tc@ibm:~ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ