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ÓÃc±à³Ì£¬ºÜ¶àʱºò¶¼»áÅöµ½½á¹¹ÌåÕâ¸ö¸ÅÄÓÈÆäÊÇʹÓÃÖ¸Õë·ÃÎʽṹÌå³ÉÔ±¡££¨ÏÂÃæµÄÎÄ×Ö½éÉÜ£¬Çë²Î¿¼´úÂëÀí½â£©
1. ʹÓÃÒ»¸öÐÂÔËËã·û£º->,Õâ¸öÔËËã·ûÓÐÒ»¸öÁ¬½ÓºÅ£¨-£©ºó¸úÒ»¸ö´óÓÚ·ûºÅ£¨>£©×é³É
&nbs ......
À뿪Õâ¼Ò¹«Ë¾Ò²ÒѾÎåÄê¶àÁË£¬ÔÙ֮ǰÓÐÒ»¸öÅóÓÑÀ뿪ʱ£¬ÎÒ»¹Ì¸µ½ÐÄÖеÄÓ²¼þÀíÏ룬ËûÖ»ÊÇ˵À뿪Ӳ¼þºÜ¶àÄêÖ®ºó¿ÖÅÂÒѾÎÞ·¨»ØÈ¥ÁË£¬µ±Ê±ÎÒËäȻû˵ʲô£¬ÐÄÀﻹÊÇÓÐЩÎÞÄεġ£½ñÌ쵱дµ½ÏÖÔÚµÄʱºò£¬·¢ÏÖÓ²¼þÔÚÎҵŤ×÷ÖÐÒѾ½¥½¥µ»¯ÁË£¬ÊDz»ÊÇËüÕæµÄ²»ÖØÒªÁË£¿
ÓÚÊÇдϽñÌìµÄ±êÌâµÄʱºò£¬¾ö¶¨¼ÓÉÏGNU/Linux£¬ÒòΪËü³ÉΪÁ ......
zipÃüÁîµÄ»ù±¾Ó÷¨ÊÇ£ºzip [²ÎÊý] [Îļþ1] [Îļþ2]
¼òµ¥µÄÀý×Ó£º
°Ñ±¾Ä¿Â¼ÏµÄtestÎļþ´ò°ü³Étest.zipÎļþ£ºzip test.zip test/* £¬Èç¹ûÔÚÎļþÖÐÓþø¶ÔµÄ·¾¶£¬ÄÇôÔÚѹËõÎļþÖÐÒ²ÊǾø¶Ô·¾¶¡£¾ÍÊÇ˵£¬Èç¹ûÄã zip test.zip /hom ......
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ϵÁÐÀï ......
ÈíʵʱºÍӲʵʱ£¬ÈíʵʱÊÇ˵Υ·´Á˳ÌÐòÖ´ÐеÄdeadlineÒ²²»»áÓÐÖÂÃüµÄ´íÎ󣬶øÓ²ÊµÊ±µÄdeadlineÊÇдËÀµÄ¡£
ºÜ¶àlinuxÓÐӲʵʱµÄ²¹¶¡£¬ÈçMontaVista¡£
ÓÐÔ´¾§ÕñºÍÎÞÔ´¾§Õñ£¬ÓÐÔ´µÄ½Ðosllicator£¬ÎÞÔ´µÄ½Ðcrystal¡£
uclinuxÊǾ²Ì¬±àÒëµÄ£¬Ã»ÓÐmmu»úÖÆ¡£
x86µÄҪѡxterm...
serveu¼ÙÉè·þÎñÆ÷ + linuxÓÃsftp£¨Í¨¹ýssh ......