LinuxÖÐselectº¯Êýѧϰ¼°ÊµÀý±Ê¼Ç
UnixÖеĺ¯ÊýselectºÍpollÓÃÀ´£¬Ö§³ÖUnixÖÐI/O¸´ÓõŦÄÜ£¬ÔÚUnixÖÐI/OÄ£ÐÍ¿ÉÒÔ·ÖΪÒÔÒ»¼¸ÖÖ£º
£¨1£©×èÈûI/O
£¨2£©·Ç×èÈûI/O
£¨3£©I/O¸´Óã¨selectºÍpoll£©
£¨4£©ÐźÅÇý¶¯I/O(SIGIO)
£¨5£©Òì²½I/O
ÆäÖУ¬ÏÖÔڱȽÏÁ÷ÐеÄI/OÄ£ÐÍÊÇ×èÈûI/OÄ£ÐÍ.×èÈûI/OÊǵ±Ó¦ÓóÌÐòºÍÄں˽»»»Êý¾Ýʱ£¬ÓÉÓÚÄں˻¹Ã»ÓÐ×¼±¸ºÃÊý¾Ý£¬ÄÇôӦÓóÌÐò±ØÐë½øÐÐ×èÈû£¬²»ÄܼÌÐøÖ´ÐУ¬Ö±µ½Äں˵ÄÊý¾Ý×¼±¸ºÃ£¡Ó¦ÓóÌÐòÈ¡µ½Êý¾Ý·µ»Øºó£¬×èÈû¹ý³Ì½áÊø£¡µ«·µ»ØµÄ½á¹ûÒ²²¢²»Ò»¶¨ÊÇÕýÈ·µÄ£¡ÕâÀïÖ»ÊǾÙÒ»¸ö¼òµ¥µÄÀý×Ó£¡Ò²ÐíÇé¿ö»á¸ü¼ÓµÄ¸´ÔÓ£¡
·Ç×èÈûI/O£¬ÀýÈçÔÚºÍÄں˽»»»Êý¾Ýʱ£¬Èç¹ûÄں˵ÄÊý¾ÝûÓÐ×¼±¸ºÃ£¬ÄÇôӦÓóÌÐò²»»áÒ»ÕæµÈ´ý£¬»áÓÐÒ»¸ö·µ»ØÐÅÏ¢£¬ÒÔÅжÏÊÇÄÇÀï³öÁËÎÊÌ⣡ÕâÑùÓÐÖúÓÚÈ·ÈÏÊÇÔÚÄǸö½×¶Î³öÁËÎÊÌ⣡
I/O¸´Óã¬ÎÒÃǾͿÉÒÔµ÷ÓÃϵͳµ÷ÓÃselectºÍpoll£¡ÔÚÕâÁ½¸öϵͳµ÷ÓÃÖеÄijһ¸ö×èÈû£¬¶ø²»ÊÇÕæÕýµÄ×èÈûI/Oϵͳµ÷Óã¡
ÏÂÃæÖ÷Òª½éÉÜI/O¸´ÓÃÖеÄselectº¯Êý£¡selectº¯Êý¿ÉÒÔָʾÄں˵ȴý¶à¸öʼþÖеÄÈÎÒ»¸ö·¢Éú£¬½öÔÚÒ»¸ö»ò¶à¸öʼþ·¢Éú£¬»òÕߵȴýÒ»¸ö×ã¹»µÄʱ¼äºó²Å»½Ðѽø³Ì£¡selectº¯ÊýµÄÔÐÍÈçÏ£º
#include <sys/types.h>
#include<sys/time.h>
int select (int maxfdp1,fd_set *readset,fd_set * writeset,fd_set excpetset,const struct timeval *timeout);
·µ»ØÖµ£º×¼±¸ºÃµÄÃèÊö·ûµÄÕýÊýÄ¿ 0---³¬Ê± -1---³ö´í£¡
ÆäÖÐ×îºóÒ»¸ö²ÎÊýÊÇÒ»¸ö½á¹¹ÌåµÄÖ¸Õ룬Ëü±íʾµÈ´ýÄÚºËÖеÄÒ»×éÃèÊö·ûÈÎÒ»¸ö×¼±¸ºÃÐèÒª»¨·Ñ¶à¾ÃµÄʱ¼ä£¡ÆäÖÐtimevalÖ¸¶¨ÁËÃëÊýºÍ΢ÃëÊý¡£
struct timeval{
long tv_sec;//ÃëÊý
long tv_usec;//΢ÃëÊý
};
½« timeoutÉèÖÃΪ¿ÕÖ¸Õëʱ£¬»áÓÀÔ¶µÈ´ýÏÂÈ¥£¬µÈ´ý¹Ì¶¨µÄʱ¼ä£ºÈç¹ûtimeoutÖ¸ÏòµÄtimevalÖеľßÌåµÄֵʱ£¬»áµÈ´ýÒ»¸ö¹Ì¶¨µÄʱ¼ä£¬²»µÈ´ýÁ¢¿Ì·µ»Ø£¬ÕâʱtimevalÖеÄtv_secºÍtv_usecΪ0.
selectÓÐÈý¸ö¿ÉÄܵķµ»ØÖµ¡£
1£®Õý³£Çé¿öÏ·µ»Ø¾ÍÐ÷µÄÎļþÃèÊö·û¸öÊý£»
2£®¾¹ýÁËtimeoutʱ³¤ºóÈÔÎÞÉ豸׼±¸ºÃ£¬·µ»ØÖµÎª0£»
3£®Èç¹ûselect±»Ä³¸öÐźÅÖжϣ¬Ëü½«·µ»Ø-1²¢ÉèÖÃerrnoΪEINTR¡£
4£®Èç¹û³ö´í£¬·µ»Ø-1²¢ÉèÖÃÏàÓ¦µÄerrno¡£
EBADF ÎļþÃèÊö´ÊΪÎÞЧµÄ»ò¸ÃÎļþÒѹرÕ
EINTR ´Ëµ÷Óñ»ÐźÅË
Ïà¹ØÎĵµ£º
°üº¬3¸öÎļþ¼Ð£¬ºÍÒ»¸öÎļþMakefile
Ŀ¼×éÖ¯½á¹¹ÈçÏ£º
Makefile
inc/hello.h
main/main.c
src/hello.c
MakefileÎļþÔÚÍâÃæ£¬ÕâÑùÉú³ÉµÄ.oºÍ¿ÉÖ´ÐÐÎļþ¶¼ÔÚÍâÃæ£¬cleanÖ®ºó»áºÜ¸É¾»£¬½á¹¹ÇåÎú
ÎļþÄÚÈÝÈçÏ£º
Makefile(Ö®ËùÒÔÓôóд£¬ÒòΪmake¿ÉÒÔʶ±ðMakefileºÍmakefile£¬Óôóд¿ÉÒÔÏÊÃ÷һЩ)::
# String declar ......
µÚÒ»ÖÖ·½·¨£º
rootÓû§µÇ¼ϵͳ
usr/local/mysql/bin/mysqladmin -u root -p password ÐÂÃÜÂë
enter password ¾ÉÃÜÂë
µÚ¶þÖÖ·½·¨£º
rootÓû§µÇ¼mysqlÊý¾Ý¿â
mysql> update mysql.user set password=password("ÐÂÃÜÂë")where User="root";
mysql> flush privileges;
mysql> quit ;
mysqlÍü¼ÇrootÃÜÂëÈçºÎ ......
Ê×ÏÈ,·þÎñÆ÷GCCÒªÓÐ,²»È»Ê²Ã´¶¼²»ÄÜ×ö.Äܹ»ÓÃgcc -vÀ´²é¿´ÊÇ·ñ°²×°ÁËGCC,
#gcc -v
Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/3.2.3/specs
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info
--enable-shared --enable-threads=posix --disable-checki ......
°²×°£¬Éý¼¶ºÍÐ¶ÔØÓ¦ÓÃÈí¼þÊÇÓ°ÏìÓû§¶Ô²Ù×÷ϵͳÆÀ¼ÛµÄ¾ö¶¨ÐÔÒòËØÖ®Ò»¡£¶ÔÓÚÈÕ½¥Á÷ÐÐµÄ GNU/Linux ²Ù×÷ϵͳ£¬ÓµÓмò½àÇ¿´óµÄÈí¼þ°ü¹ÜÀí»úÖÆ¹¦²»¿Éû¡£±¾ÎÄ´Ó»ù±¾µÄ rpm/dpkg ÃüÁîÐгö·¢£¬ÒÔ RHEL ºÍ Ubuntu
ΪÀý£¬½éÉܵäÐÍ Linux ϵͳÖÐÓ¦ÓÃÈí¼þµÄ¹ÜÀíºÍʹÓá£
RPM/DPKG Á½´óÕóÓª¼ò½é
ÔÚ GNU/Linux( ÒÔϼò³Æ Linux) ²Ù× ......
±¾ÎĽ«Í¨¹ýÓÃÓÚÏò¶ÓÁз¢ËÍÏûÏ¢ºÍ´Ó¶ÓÁнÓÊÕÏûÏ¢µÄʾÀýÓ¦ÓóÌÐò˵Ã÷ÈçºÎÔÚ Linux ÉÏ×ÅÊÖ°²×°ºÍÅäÖà WebSphere MQ£¬ÒÔ¼°ÈçºÎΪ MQ »·¾³¿ª·¢ Java Ó¦ÓóÌÐò¡£
ÒýÑÔ
±¾ÎĵÄÄ¿±êÊÇÈÃÄúÇáËÉʵÏÖ Linux® É쵀 IBM® WebSphere® MQ ÈëÃÅ¡£ÓÉÓÚ´ó²¿·Ö Linux ·þÎñÆ÷²¢Ã»ÓÐͼÐÎÓû§½çÃæ£¬Òò´Ë±¾ÎĽ«ËµÃ÷ÈçºÎʹÓÃÃüÁîÐй¤¾ ......