selectϵͳµ÷ÓÃʱÓÃÀ´ÈÃÎÒÃǵijÌÐò¼àÊÓ¶à¸öÎļþ¾ä±úµÄ״̬±ä»¯µÄ¡£³ÌÐò»áÍ£ÔÚselectÕâÀïµÈ´ý£¬Ö±µ½±»¼àÊÓµÄÎļþ¾ä±úÓÐÒ»¸ö»ò¶à¸ö·¢ÉúÁË״̬¸Ä±ä¡£
¹ØÓÚÎļþ¾ä±ú£¬Æäʵ¾ÍÊÇÒ»¸öÕûÊý£¬Í¨¹ýsocketº¯ÊýµÄÉùÃ÷¾ÍÃ÷°×ÁË£º
int socket(int domain, int type, int protocol);
ÎÒÃÇ×îÊìϤµÄ¾ä±úÊÇ0¡¢1¡¢2Èý¸ö£¬0ÊDZê×¼ÊäÈ룬1ÊDZê×¼Êä³ö£¬2ÊDZê×¼´íÎóÊä³ö¡£0¡¢1¡¢2ÊÇÕûÊý±íʾµÄ£¬¶ÔÓ¦µÄFILE *½á¹¹µÄ±íʾ¾ÍÊÇstdin¡¢stdout¡¢stderr¡£
¼ÌÐøÉÏÃæµÄselect£¬¾ÍÊÇÓÃÀ´¼àÊÓij¸ö»òijЩ¾ä±úµÄ״̬±ä»¯µÄ¡£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º¯Êý¡£struct timeval½á¹¹ÈçÏ£º
struct timeval
{
long tv_sec; //seconds
long tv_usec; //microseconds
}£»
µÚ2¡¢3¡¢4Èý¸ö²ÎÊýÊÇÒ»ÑùµÄÀàÐÍ;fd_set *,¼´Î ......
ÔÎĵØÖ·£ºhttp://www.gz-benet.com.cn/bbs/Show.Asp?ID=4268
“Sudo”
ÊÇUnix/Linuxƽ̨ÉϵÄÒ»¸ö·Ç³£ÓÐÓõŤ¾ß£¬ËüÔÊÐíϵͳ¹ÜÀíÔ±·ÖÅ䏸ÆÕͨÓû§Ò»Ð©ºÏÀíµÄ“ȨÀû”£¬ÈÃËûÃÇÖ´ÐÐһЩֻÓг¬¼¶Óû§»òÆäËûÌØÐíÓû§²ÅÄÜ
Íê³ÉµÄÈÎÎñ£¬±ÈÈ磺ÔËÐÐһЩÏñmount£¬halt£¬suÖ®ÀàµÄÃüÁ»òÕß±à¼Ò»Ð©ÏµÍ³ÅäÖÃÎļþ£¬Ïñ/etc/mtab£¬
/etc/samba/smb.confµÈ¡£ÕâÑùÒÔÀ´£¬¾Í²»½ö¼õÉÙÁËrootÓû§µÄµÇ½´ÎÊýºÍ¹ÜÀíʱ¼ä£¬Ò²Ìá¸ßÁËϵͳ°²È«ÐÔ¡£
¡¡¡¡Ò». sudoµÄÌØµã
¡¡¡¡sudo°çÑݵĽÇɫע¶¨ÁËËüÒªÔÚ°²È«·½Ãæ¸ñÍâ½÷É÷£¬·ñÔò¾Í»áµ¼Ö·Ƿ¨Óû§¾ðÈ¡rootȨÏÞ¡£Í¬Ê±£¬Ëü»¹Òª¼æ¹ËÒ×ÓÃÐÔ£¬ÈÃϵͳ¹ÜÀíÔ±Äܹ»¸üÓÐЧ£¬¸ü·½±ãµØÊ¹ÓÃËü¡£sudoÉè¼ÆÕßµÄ×ÚÖ¼ÊÇ£º¸øÓû§¾¡¿ÉÄÜÉÙµÄȨÏÞµ«ÈÔÔÊÐíÍê³ÉËûÃǵŤ×÷¡£ËùÒÔ£¬sudoÓÐÒÔÏÂÌØµã£º
¡¡¡¡# 1. sudoÄܹ»ÏÞÖÆÖ¸¶¨Óû§ÔÚÖ¸¶¨Ö÷»úÉÏÔËÐÐijЩÃüÁî¡£
¡¡¡¡# 2. sudo¿ÉÒÔÌṩÈÕÖ¾£¬ÖÒʵµØ¼Ç¼ÿ¸öÓû§Ê¹ÓÃsudo×öÁËЩʲô£¬²¢ÇÒÄܽ«ÈÕÖ¾´«µ½ÖÐÐÄÖ÷»ú»òÕßÈÕÖ¾·þÎñÆ÷¡£
¡¡¡¡# 3. sudoΪϵͳ¹ÜÀíÔ±ÌṩÅäÖÃÎļþ£¬ÔÊÐíϵͳ¹ÜÀíÔ±¼¯ÖеعÜÀíÓû§µÄʹÓÃȨÏÞºÍʹÓõÄÖ÷»ú¡£ËüĬÈϵĴæ·ÅλÖÃÊÇ/etc/sudoers¡£
¡¡¡¡# 4.sudoʹÓÃʱ¼ä´ÁÎļþÀ´Íê³ ......
1.1.Á´±ílist_head
include/linux/list.h
ºÜ¾µä£¬Á´±íÔÚÄÚºËÖкܳ£Óã¬ÀýÈç¹ÜÀí½ø³Ì£¬½ø³ÌµÄ¸÷¸ö״̬¶ÓÁж¼ÊÇʹÓÃÕâ¸öË«ÏòÁ´±íʵÏֵġ£ÄÚºËÖеÄÁ´±í¶¨Òå³ÉºÍÊý¾ÝÎ޹صÄÐÎʽ£¬¶ø²»ÊÇͨ³£ÎÒÃÇʹÓõÄÁ´±í¸ñʽ£¬ÀýÈç
typedef struct _list{
Elemtype elem;
struct _list *next;
}list;
ÄÚºËÖеÄÁ´±í¶¨ÒåΪ
struct list_head{
struct list_head *next, *prev;
};
¿É¼û£¬Õâ¸öÁ´±í½ÚµãÖв»°üº¬ÈκÎÊý¾Ý£¬Ö»ÓÐÁ½¸öÖ¸Õë¡£µ±ÐèҪʹÓÃÁ´±íÀ´×éÖ¯Êý¾Ý½á¹¹Ê±£¬Õâ¸ö½á¹¹ÖоͰüº¬Ò»¸ölist_head³ÉÔ±£¬ÀýÈç
struct _list_struct{
Elemtype elem;
struct list_head list;
...
};
ÏÔ¶øÒ×¼û£¬Á´±íʵÏֳɺÍÊý¾Ý·ÖÀëµÄºÃ´¦ÊÇ£¬²»ÓÃΪÿÖÖÊý¾Ý¶¼¶¨ÒåÁ´±í²Ù×÷£¬¿ÉÒÔʹÓÃͳһµÄÁ´±í²Ù×÷¼´¿É¡£µ«ÊÇÎÊÌâÊÇ£ºÖ»ÖªµÀÊý¾Ý³ÉÔ±listµÄµØÖ·£¬ÔõÑùÈ¥·ÃÎÊ×ÔÉíÒÔ¼°ÆäËû³ÉÔ±ÄØ£¿
#define list_entry(ptr,type,member) \
container_of(ptr,type,member)
¶øcontainer_of(ptr,type,member)ºê¶¨ ......
http://blog.csdn.net/compiler_hdz/archive/2006/01/10/575113.aspx
ÏÈ¿´Ò»¸ö“hello world!”µÄÀý×Ó£º
ÔÚij¸öĿ¼ÏÂн¨Ò»¸öÎļþ£¬½Ðhello.sh£¬ÇÃÈëÒÔÏ´úÂ룺
#!/bin/sh
echo "hello world!"
ºÃ£¬¾ÍÕâЩ¡£±£´æ£¬ÔÚÃüÁîÌáʾ·ûϽøÈë±£´æ“hello.sh”µÄĿ¼£¬ÕâÑùÖ´ÐУº
#sh hello.sh£¨»Ø³µ£©
¿´µ½Á˰ɣ¿¹þ¹þ£¬²»¹ýÄã¸ßÐ˵IJ»ÒªÌ«ÔçÁË£¬Ö»²¢²»ÄÜ˵Ã÷ʲô£¬¾ÍÏóÄãÔÚÆäËû±à³Ì»·¾³ÖÐ×öµÄ“hello world.”Ò»Ñù£¬Àë¸ßÊֵľàÀ뻹Զ×ÅÄØ¡£
ÎÒÃÇÏÈ¿´¿´bash½Å±¾ÖбäÁ¿µÄʹÓá£
ÐÞ¸ÄÉÏÃæµÄ“hello world!”µÄÀý×Ó£¬¸Ä³ÉÏÂÃæµÄÑù×Ó£º
#!/bin/bash
# This is a very simple example
str="hello world!"
echo $str
±£´æºó°´ÕÕÉÏÃæµÄ·½·¨Ö´Ðиýű¾£¬Ä㽫¿´µ½ºÍÒÔǰһÑùµÄЧ¹û¡£ÎÒÃÇ¿´¿´Ã¿Ò»¾äµÄÒâÒ壺
µÚ
Ò»ÐУ¬#! ÊÇ˵Ã÷ hello.sh Õâ¸öÎļþµÄÀàÐ͵ģ¬ÓеãÀàËÆ Windows ϵͳÏÂÓÃÎļþºó׺À´±íʾ²»Í¬ÎļþÀàÐ͵ÄÒâ˼¡£Linux
ϵͳ¸ù¾Ý "#!" ¼°¸Ã×Ö´®ºóÃæµÄÐÅϢȷ¶¨¸ÃÎļþµÄÀàÐÍ¡£ÔÚ BASH ÖÐ µÚÒ»ÐÐµÄ "#!" ¼°ºóÃæµÄ "/bin/bash&qu ......
ÔÚlinuxÏÂÃæ°²×°mysql£¬Ê×ÏàÒª¸ù¾Ý²Ù×÷ϵͳµÄ°æ±¾£¬Ñ¡Ôñ¶ÔÓ¦µÄmysqlµÄ°æ±¾£¬¹Ù·½ÍøÕ¾ÉÏÓзdz£Ã÷È·µÄ·ÖÀà
http://dev.mysql.com/downloads/
ÔÚÕâÀïÎÒʵÑéµÄ²Ù×÷ϵͳÊÇredhat linux
mysql ÓÃÁËÁ½¸ö°²×°°ü£¬Ò»¸öÊÇserver¶Ë£¬Ò»¸öÊÇclient,ÎÒÓõÄÊÇrpm°ü£¬°²×°µÄÖ¸Áî±È½Ï¼òµ¥¡£
MySQL-server-community-5.1.42-0.rhel4.i386
MySQL-client-community-5.1.42-0.rhel4.i386
ÍÆ¼ö²ÉÓõÄĬÈϵݲװ·¾¶£¬È»ºóÔËÐÐÁ½Ìõ¼òµ¥µÄÖ¸Áî¾Í°²×°Íê³ÉÁË¡£
rpm -Uhv MySQLMySQL-server-community-5.1.42-0.rhel4.i386
rpm -Uhv MySQL-client-community-5.1.42-0.rhel4.i386
mysql°²×°µÄ¼¸¸öĬÈÏ·¾¶.
1,Êý¾ÝĿ¼£¬ /var/lib/mysql
2,ÅäÖÃÎļþ£¬ /usr/share/mysql
3,Ïà¹ØµÄÃüÁî /usr/bin
4,Æô¶¯½Å±¾ /etc/rc.d/init.d
°²×°Íê³É¹ýºóÈç¹û²»ÄÜÆô¶¯·þÎñ£¬
the server quit without updating PID file
Õâ¸ö´íÎóºÜ´ó²¿·ÖÊÇÓÉÅäÖÃÎļþÒýÆðµÄ£¬ÄãÖ»ÐèÒª¸ù¾ÝÄãϵͳµÄÅäÖðÑ/usr/share/mysqlÏÂÃæ¶ÔÓ¦µÄÅäÖÃÎļþcopyµ½/etc
²¢ÖØÃüÃûΪmy.cnf.Ñ¡ÔñºÏÊʵÄÅäÖÃÎļþ²Î¿¼http://www.kuqin.com/database/20090725/64156.html
ÅäÖÃÎļþ¸ã¶¨ºó£¬¾ÍÆô¶¯mysqlµÄ·þÎñ£¬
service mysql ......
ÔÚlinuxÏÂÃæ°²×°mysql£¬Ê×ÏàÒª¸ù¾Ý²Ù×÷ϵͳµÄ°æ±¾£¬Ñ¡Ôñ¶ÔÓ¦µÄmysqlµÄ°æ±¾£¬¹Ù·½ÍøÕ¾ÉÏÓзdz£Ã÷È·µÄ·ÖÀà
http://dev.mysql.com/downloads/
ÔÚÕâÀïÎÒʵÑéµÄ²Ù×÷ϵͳÊÇredhat linux
mysql ÓÃÁËÁ½¸ö°²×°°ü£¬Ò»¸öÊÇserver¶Ë£¬Ò»¸öÊÇclient,ÎÒÓõÄÊÇrpm°ü£¬°²×°µÄÖ¸Áî±È½Ï¼òµ¥¡£
MySQL-server-community-5.1.42-0.rhel4.i386
MySQL-client-community-5.1.42-0.rhel4.i386
ÍÆ¼ö²ÉÓõÄĬÈϵݲװ·¾¶£¬È»ºóÔËÐÐÁ½Ìõ¼òµ¥µÄÖ¸Áî¾Í°²×°Íê³ÉÁË¡£
rpm -Uhv MySQLMySQL-server-community-5.1.42-0.rhel4.i386
rpm -Uhv MySQL-client-community-5.1.42-0.rhel4.i386
mysql°²×°µÄ¼¸¸öĬÈÏ·¾¶.
1,Êý¾ÝĿ¼£¬ /var/lib/mysql
2,ÅäÖÃÎļþ£¬ /usr/share/mysql
3,Ïà¹ØµÄÃüÁî /usr/bin
4,Æô¶¯½Å±¾ /etc/rc.d/init.d
°²×°Íê³É¹ýºóÈç¹û²»ÄÜÆô¶¯·þÎñ£¬
the server quit without updating PID file
Õâ¸ö´íÎóºÜ´ó²¿·ÖÊÇÓÉÅäÖÃÎļþÒýÆðµÄ£¬ÄãÖ»ÐèÒª¸ù¾ÝÄãϵͳµÄÅäÖðÑ/usr/share/mysqlÏÂÃæ¶ÔÓ¦µÄÅäÖÃÎļþcopyµ½/etc
²¢ÖØÃüÃûΪmy.cnf.Ñ¡ÔñºÏÊʵÄÅäÖÃÎļþ²Î¿¼http://www.kuqin.com/database/20090725/64156.html
ÅäÖÃÎļþ¸ã¶¨ºó£¬¾ÍÆô¶¯mysqlµÄ·þÎñ£¬
service mysql ......
[±¾ÎÄת×Ô]http://www.scmlife.com/index.php/214/dp-bbsthread-21094.html
¸½¼þÎĵµ´ó¸Ù£º
»·¾³
1.°²×°Apache2.2.14
2.°²×°Subversion
1.6.6
3.°²×°ºóµÄϵͳÉèÖÃ
4.ApacheÉèÖÃ
5.svn¿âµÄÅäÖÃ
6.ÔËÐÐSVN·þÎñÆ÷
»·¾³£º
Red Hat Enterprise Linux Server release 5.3
(Tikanga)
httpd-2.2.14.tar.gz
subversion-1.6.6.tar.gz
µ½¹ÙÍøhttp://subversion.tigris.org/
ÏÂÔØµ±Ç°×îеÄÎȶ¨°æ±¾subversion-1.6.6.tar.gz
µ½¹ÙÍøhttp://httpd.apache.org/
ÏÂÔØµ±Ç°×îеÄÎȶ¨°æ±¾httpd-2.2.14.tar.gz
1.°²×°Apache2.2.14
ÓÃrootÕ˺ÅÖ´ÐÐÒÔÏÂÃüÁ
tar
zxf httpd-2.2.14.tar.gz #½âѹµ½µ±Ç°Ä¿Â¼
cd httpd-2.2.14 #½øÈë½âѹºóµÄĿ¼
./configure
--prefix=/local/svnroot/apache2 --enable-so --enable-mods-shared=all
--enable-dav=share --enable-dav-fs --with-ldap --enable-ldap
--enable-authnz-ldap --enable-authn-alias
#¶¨Òå°²×°µÄÄ¿±ê·¾¶£¨¿É¾Ý×Ô¼ºÐèÒªÐ޸ģ©£¬Ê¹ÄÜLDAP
make
#±àÒë
make install #°²×°
/local/svnroot/apache2/bin/apachectl start
#Æô¶¯Apache
ÓÃIE·ÃÎÊÒÔÏÂÍøÖ·£¬http://hostIP/£¬Èç¹ûÌáʾIt
works£¡£¬ ......