Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö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ϵͳÐÅÏ¢²é¿´ÃüÁî´óÈ«

ϵͳ
# uname -a               # ²é¿´ÄÚºË/²Ù×÷ϵͳ/CPUÐÅÏ¢
# head -n 1 /etc/issue   # ²é¿´²Ù×÷ϵͳ°æ±¾
# cat /proc/cpuinfo      # ²é¿´CPUÐÅÏ¢
# hostname      &nbs ......

¹ØÓÚlinuxµÄÊØ»¤½ø³Ì

Linux·þÎñÆ÷ÔÚÆô¶¯Ê±ÐèÒªÆô¶¯ºÜ¶àϵͳ·þÎñ£¬ËüÃÇÏò±¾µØºÍÍøÂçÓû§ÌṩÁËLinuxµÄϵͳ¹¦Äܽӿڣ¬Ö±½ÓÃæÏòÓ¦ÓóÌÐòºÍÓû§¡£ÌṩÕâЩ·þÎñµÄ³ÌÐòÊÇÓÉÔËÐÐÔÚºǫ́µÄÊØ»¤½ø³Ì£¨daemons£©À´Ö´Ðеġ£ÊØ»¤½ø³ÌÊÇÉú´æÆÚ³¤µÄÒ»ÖÖ½ø³Ì¡£ËüÃǶÀÁ¢ÓÚ¿ØÖÆÖն˲¢ÇÒÖÜÆÚÐÔµÄÖ´ÐÐijÖÖÈÎÎñ»òµÈ´ý´¦ÀíijЩ·¢ÉúµÄʼþ¡£ËûÃdz£³£ÔÚϵͳÒýµ¼×°ÈëʱÆô¶ ......

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ϵͳCGI³ÌÐòÉè¼Æ¼¼Êõ

ǶÈëʽLinuxϵͳCGI³ÌÐòÉè¼Æ¼¼Êõ
ÕªÒª£ºÔÚÏêϸ½éÉÜÒ»ÖÖǶÈëʽWeb·þÎñÆ÷BOAµÄʵÏÖÓëÅäÖ÷½·¨µÄ»ù´¡ÉÏ£¬ÒÔÒ»¸öWebÔÚÏßÔ¶³Ì¼à¿ØGPIO£¨Í¨ÓÃÊäÈë/Êä³ö£©µÄ³ÌÐòΪʵÀý£¬½éÉÜǶÈëʽLinuxϵͳÏÂCPU³ÌÐòÉè¼Æ¼¼Êõ¡£
   ¹Ø¼ü´Ê£ºÇ¶ÈëʽϵͳLinux BOA CGI GPIO
1 ¸ÅÊö
Ëæ×Å»¥ÁªÍøÓ¦ÓÃµÄÆÕ¼°£¬Ô½À´Ô½¶àµÄÐÅÏ¢»¯²úÆ·ÐèÒª½Ó ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ