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

linux api±Ê¼Ç£¨7£©£ºÏµÍ³µ÷ÓÃÈçºÎ°ÚÍÑÐźŵĸÉÈÅ

ÔÚlinux»·¾³Ï±à³ÌÓÐÒ»¸öºÜÈÃÈËÍ·ÌÛµÄÎÊÌâ¾ÍÊÇÐźŶÔϵͳµ÷ÓõĸÉÈÅ£¬ÔÚϵͳµ÷Óùý³ÌÖÐÈç¹ûÊܵ½ÐźŵĸÉÈÅ£¬
²¿·Öϵͳµ÷ÓûὫerrnoÉèÖóÉEINTR£¬ÎÒÃDz»µÃ²»±àдÏÂÃæµÄ´íÎó´¦Àí´úÂëÀ´·ÀÖ¹ÕâÖÖÇé¿öµÄ·¢Éú£º
syscall:
int ret = syscall(...);
if (ret < 0 && EINTER == errno)
goto syscall;
else if(ret < 0)
...
else
... 
Ò»´ÎÓÖÒ»´ÎµÄ±àдµÄ»°ÕæµÄºÜ·³£¬¶øÇ°¶Ëʱ¼äÎÒÔÚchromeµÄÔ´´úÂëÖÐÕÒµ½µÄÒ»¶Î´úÂëÕýºÃ½â¾öÁËÕâÖÖ³óªµÄ±àÂ룺
#include <fcntl.h>
#include <errno.h>
#include <unistd.h>
#define HANDLE_EINTR(x) ({ \
typeof(x) __eintr_code__; \
do { \
__eintr_code__ = x; \
} while(__eintr_code__ < 0 && EINTR == errno); \
__eintr_code__; \
})
int main()
{
int fd = 0;
char buf[1024];
fd = open("hello world", O_RDWR);
HANDLE_EINTR(read(fd,buf, sizeof(buf)));
close(fd);
return 0;
}
 
µ±È»ÎÒÃÇÒ²²»ÊÇÖ»ÒªÅöµ½ÏµÍ³µ÷ÓþÍʹÓÃHANDLE_EINTR£¬Ò»¸öϵͳµ÷Óú¯ÊýÖÁÉÙÒªÂú×ãÁ½¸öÌõ¼þµÄʱºò²ÅÄÜʹÓãº
1£©·µ»ØÖµÀàÐÍΪint
2£©»áÊܵ½ÐźŵĸÉÈÅ£¬Ò²¾ÍÊÇ˵ÓпÉÄܽ«errnoÉèÖóÉEINTR£¨Õâ¾ÍÐèÒªÎÒÃDzémanÊÖ²áÁË£©¡£ÉÏÃæµÄopenº¯Êý¾Í
²»»áÊܵ½ÐźŵĸÉÈÅ£¬ËùÒԾͲ»ÄÜʹÓÃÕâ¸öºê¡£
ÖÁÉÙµ½Ä¿Ç°ÎªÖ¹£¬ÎÒ·¢ÏÖ·²ÊÇÄܹ»½«errnoÉèÖóÉEINTRµÄϵͳº¯ÊýµÄ·µ»ØÖµÀàÐͶ¼ÊÇint£¬²¢ÇÒµ±³ö´íµÄʱºò
·µ»ØÖµÐ¡ÓÚ0¡£


Ïà¹ØÎĵµ£º

Linux makefile ½Ì³Ì ·Ç³£Ïêϸ£¬ÇÒÒ×¶®

 ×î½üÔÚѧϰLinuxϵÄC±à³Ì£¬ÂòÁËÒ»±¾½Ð¡¶Linux»·¾³ÏµÄC±à³ÌÖ¸ÄÏ¡·¶Áµ½makefile¾ÍÔ½¿´Ô½ÃÔºý£¬¿ÉÄÜÊÇÎÒµÄÀí½âÄܲ»ÐС£
            ÓÚÊÇgoogleµ½ÁËÒÔÏÂÕâÆªÎÄÕ¡£Í¨Ë×Ò×¶®¡£È»ºó°ÑËüÌù³öÀ´£¬·½±ãѧϰ¡£
        & ......

linuxÃüÁîÔ´ÂëµÄ²é¿´

ÔÚÆ½³£µÄ×÷ÒµÖУ¬ÓÐʱºòÀÏʦÈÃ×Ô¼ºÊµÏÖÖîÈçcatµÈÀàµÄ³ÌÐò£¬ÓÐʱºò½ÐÓÃshellʵÏÖ£¬ÓÐʱºòÓÃcʵÏÖ£¬µ«ÊÇÎÒ¾­³£Ò»µãÍ·Ð÷¶¼Ã»ÓУ¬²»¹ýÎÒÏëµ½linux¿ªÔ´µÄ£¬ÃüÁî´úÂë¿ÉÒÔÄÃÀ´²Î¿¼Ï°¢£¬ËùÒÔÎÒ¾ÍÏë¿´¿´linuxÃüÁîµÄÔ´´úÂ룬ÓÚÊǾͿªÊ¼Á˰ڶɹ·¹·µÄËÑË÷¹ý³Ì¡£´Ó½á¹ûÀ´¿´£¬ÓÐÁ½ÖÖÇé¿ö£¬Ò»ÖÖÊǸøÓèrpmµÄ°üµÄÐÎʽ£»ÁíÒ»ÖÖÊÇ»ùÓÚdeb°üµÄÐ ......

linuxÖ®¼äһЩ²î±ð

redhatϵÁÐ(rhel,centos,fc) yum install package-name
debianϵÁÐ(debian,ubuntu)  apt-get install package-name
¶ÔÓÚ¿ª·¢°ü
redhat:  yum install python-devel
debian:  apt-get install python-dev
Ìí¼ÓÓû§
redhat:  useradd user-name
debian:  useradd -m user-name
debianϵÁÐÀï ......

RedHat Enterprise Linux 5ÏÂÅäÖÃApache,Mysql,Php

[¾­¹ý°²×°²âÊԳɹ¦µÄ·½·¨from CYBEND ]
µÚÒ»²½£ºÏµÍ³ÓëÈí¼þµÄ×¼±¸
ϵͳ°æ±¾ redhat enterprise linux 5 ,Äں˰汾 2.6.18
µÚ¶þ²½£ºÈí¼þ°üµÄ×¼±¸
httpdÈí¼þ°ü£ºhttpd-2.2.8.tar.bz2
mysqlÈí¼þ°ü´Ómysql¹Ù·½ÍøÕ¾ÏÂÔØ£¬ÎÒÑ¡ÓõÄÊÇehel5µÄrpm°ü
MySQL-server-community-5.0.51a-0.rhel5.i386.rpm
MySQL-client-community ......

linux api±Ê¼Ç£¨4£©£ºỊ̈߳¨¶þ£©

ÕâÒ»½ÚÎÒÃÇÀ´¿´¿´ÆäËûÏ̺߳¯Êý£º
int pthread_tryjoin_np(pthread_t thread_handle, void ** thread_return);
int pthread_timedjoin_np (pthread_t thread_handle, void **thread_return, __const struct timespec *abstime);
pthread_tryjoin_np»á¿ÉÒÔÓÃÀ´ÅжÏthread_handleÖ¸ÏòµÄÏß³ÌÊÇ·ñÒѾ­ÖÐÖ¹£¬Èç¹ûûÓÐÔò*thre ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ