Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö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ÏÂʵÏÖweb qqµÄ×ÀÃæ»¯


´´½¨×ÀÃæÍ¼±ê
Ŀǰ½«ÍøÂçÓ¦ÓÃÀ©Õ¹µ½×ÀÃæÊÇÒ»¸öÇ÷ÊÆ£¬´æÔÚןܶà½â¾ö·½°¸£¬±¾ÎÄÒÔ Mozilla Prism ΪÀý£¬ÀàËÆµÄ·½·¨Í¬ÑùÊÊÓÃÓÚ Google Chrome ¡£
1. µ½ Mozilla Prism µÄÍøÕ¾ÉÏÏÂÔØ Prism£¬µã»÷ Download Now Ö®ºó»áÌáʾÓÐÁ½ÖÖ£¬Ò»ÖÖÊÇÒÔ Mozilla Firefox À©Õ¹µÄ·½Ê½£¬ÊʺÏÒѾ­°²×°ÓÐ Firefox µÄÅóÓÑ£»Ò»Ö ......

LinuxϵͳϵĶàÏ̱߳à³ÌÈëÃÅ


LinuxϵͳϵĶàÏ̱߳à³ÌÈëÃÅ
2006-01-17 09:13×÷Õߣºpcstudy³ö´¦£ºblogchinaÔðÈα༭£º·½ÖÛ
    Ïà¹Ø×¨Ì⣺ LinuxÉ豸Çý¶¯³ÌÐò¿ª·¢ÈëÃÅ
¡¡¡¡ÒýÑÔ
¡¡¡¡Ị̈߳¨thread£©¼¼ÊõÔçÔÚ60Äê´ú¾Í±»Ìá³ö£¬µ«ÕæÕýÓ¦ÓöàÏ̵߳½²Ù×÷ϵͳÖÐÈ¥£¬ÊÇÔÚ80Äê´úÖÐÆÚ£¬solarisÊÇÕâ·½ÃæµÄٮٮÕß¡£´«Í³µÄUnixÒ²Ö§³ÖÏ̵߳ĸÅÄî ......

¼ÇÒäÖеļÆËã»ú 11 (DELL Pentium IV ºÍ GNU/Linux)

À뿪Õâ¼Ò¹«Ë¾Ò²ÒѾ­ÎåÄê¶àÁË£¬ÔÙ֮ǰÓÐÒ»¸öÅóÓÑÀ뿪ʱ£¬ÎÒ»¹Ì¸µ½ÐÄÖеÄÓ²¼þÀíÏ룬ËûÖ»ÊÇ˵À뿪Ӳ¼þºÜ¶àÄêÖ®ºó¿ÖÅÂÒѾ­ÎÞ·¨»ØÈ¥ÁË£¬µ±Ê±ÎÒËäȻû˵ʲô£¬ÐÄÀﻹÊÇÓÐЩÎÞÄεġ£½ñÌ쵱дµ½ÏÖÔÚµÄʱºò£¬·¢ÏÖÓ²¼þÔÚÎҵŤ×÷ÖÐÒѾ­½¥½¥µ­»¯ÁË£¬ÊDz»ÊÇËüÕæµÄ²»ÖØÒªÁË£¿
ÓÚÊÇдϽñÌìµÄ±êÌâµÄʱºò£¬¾ö¶¨¼ÓÉÏGNU/Linux£¬ÒòΪËü³ÉΪÁ ......

¹ØÓÚLinuxµÄÊÓÆµ±à³Ì(v4l2±à³Ì)(ת£©


ǰÑÔ£ºÄ¿Ç°ÕýÔÚæÓÚARMƽ̨µÄLinuxÓ¦ÓóÌÐòµÄ¿ª·¢£¨ÆäʵÊÇ¸Õ¸ÕÆð²½Ñ§Ï°À²£©¡£µ×²ãµÄ¶«Î÷²»Óÿ¼ÂÇÁË£¬¿ª·¢°å×ÓÌṩÁËNAND Bootloader£¬ºÍLinux 2.6µÄÔ´Â룬¶øÇÒ¶¼±àÒëºÃÁË¡£×Ô¼º±àÒëµÄbootloader¿ÉÒÔÓ㬵«ÊÇLinux±àÒëºó£¬ÎļþºÜ´ó£¬ÔÝÇÒ¾ÍÓÃÈ˼ұàÒëµÄϵͳ£¬ÏÈרÐÄдӦÓóÌÐò °É¡£¡£
ÕýÎÄ£ºÒª×öµÄÈÎÎñÊÇ£¬°ÑÒ»¿é°å×ÓÉ쵀 ......

LinuxÄں˽ø³Ìµ÷¶ÈÒÔ¼°¶¨Ê±Æ÷ʵÏÖ»úÖÆ(ת)

ÕªÒª¡¿±¾Îļòµ¥½éÉÜÁËÈÎÎñµÄ¸÷ÖÖ״̬ºÍPCBµÄ½á¹¹£¬·ÖÎöÁ˼¸ÖÖÈÎÎñµ÷¶È²ßÂÔ£¬Ïê½âÁËschedule£¬²¢·ÖÎöÁËÈçºÎ½øÐнø³ÌÉÏÏÂÎÄÇл»£»Ëæºó·ÖÎöÁË2.6ÄÚºËÈçºÎÓÅ»¯ÁËÈÎÎñµ÷¶ÈËã·¨£»×îºó½éÉÜÁËÄں˶¨Ê±Æ÷µÄʵÏÖ»úÖÆºÍϵͳµ÷ÓõÄʵÏÖ¹ý³Ì¡£
¡¾¹Ø¼ü´Ê¡¿½ø³Ì¿ØÖÆ¿éPCB£¬RR£¬FIFO£¬Äں˵÷¶ÈËã·¨£¬ÈÎÎñÇл»£¬Äں˶¨Ê±£¬timer£¬ÈíÖжÏsoft ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ