windowsϵÄReadFileÓëLinuxϵÄpread
ÎÊÌâµÄÒý³ö£º
µ±¶ÔͬһÎļþ¾ä±ú£¨ÔÚWindowsÏ£©»òÊÇÎļþÃèÊö·û£¨ÔÚLinuxÏ£©½øÐÐËæ»ú¶Áд²Ù×÷ʱ£¬»á´æÔÚÎļþÖ¸ÕëµÄ¶¨Î»Óë¶Á\дÁ©¸ö²½Ö裬µ«ÓÉÓÚÕâ²»ÊÇÒ»¸öÔ×Ó²Ù×÷£¬¾Í¿ÉÄܲúÉúÈçÏÂÎÊÌ⣺½ø³ÌA¶ÔijÎļþÏȶ¨Î»µ½ f1 ´¦£¬È»ºó±»Öжϣ¬È»ºó½ø³ÌB¶ÔͬһÎļþ¶¨Î»µ½ f2 ´¦£¬È»ºó±»Öжϣ¬½ø³ÌAÔÙ´ÎÖ´ÐУ¬´ÓÎļþµÄµ±Ç°Ö¸Õë´¦¿ªÊ¼¶Á»òÊÇд£¬ÓÚÊÇÕâ±ã²úÉúÁ˲»ÊÇÆÚÍûµÄ½á¹ûÁË¡££¨ÕâÀïҪעÒ⣬¶ÔͬһÎļþµÄÁ©´Î´ò¿ª£¬µÃµ½µÄ½«ÊÇÁ©¸ö²»Í¬µÄ¾ä±ú»òÊÇÃèÊö·û£¬ËùÒÔ²»Óõ£ÐÄÕâÖÖÇé¿ö»á³öÎÊÌ⣩
½â¾ö°ì·¨£º
ÔÚLinuxÏ£¬preadº¯Êý¾ÍºÃÏñÊÇרÃÅΪÉÏÃæµÄÎÊÌâ·þÎñµÄ£¬Ëü±¾Éí¾ÍÊÇÔ×ÓÐԵIJÙ×÷£¬¶¨Î»ÎļþÖ¸ÕëÓë¶Á²Ù×÷Ò»ÆøºÇ³É£¬¶øÇÒ¶Á²Ù×÷²¢²»¸Ä±äÎļþÖ¸Õë¡£
ÔÚwindowsÏ£¬²Î¿¼ÆäapiʱÎÒ²¢Ã»Óв鵽ÏñpreadÕâôֱ½ÓµÄº¯Êý£¬¶øÊÇReadFileËüµÄÒ»¸ö²ÎÊýlpOverlappedÀ´ÊµÏֵģº
1£©ÈôÎļþÊÇÒÔ
FILE_FLAG_OVERLAPPED´ò¿ªµÄ£¬ÇÒ lpOverlapped ²»ÎªNULL£¬Ôò¶Á²Ù×÷»áÔÚ
lpOverlapped½á¹¹ÖÐÖ¸¶¨µÄoffset´¦¿ªÊ¼¶ÁÎļþ£¬ÇÒº¯Êý¿ÉÄÜ»áÔÚ¶Á²Ù×÷Íê³Éǰ¾Í·µ»ØÁË£¨¼´Ò첽ģʽ£©
2£©ÈôÎļþ²»ÊÇÒÔ
FILE_FLAG_OVERLAPPED´ò¿ªµÄ£¬µ«lpOverlapped ²»ÎªNULL£¬Ôò
¶Á²Ù×÷»áÔÚ
lpOverlapped½á¹¹ÖÐÖ¸¶¨µÄoffset´¦¿ªÊ¼¶ÁÎļþ£¬ÇÒº¯Êý»áÒ»Ö±×èÈûÖ±µ½¶Á²Ù×÷Íê³É£¨¼´Í¬²½Ä£Ê½£©
´ÓÉÏÃæ¿ÉÖª£¬ºÃËÆWindowsÏÂReadFileÎÞ·¨ÊµÏÖpreadÔÚLinuxÏµĹ¦ÄÜ£¬³õ²½Ïë·¨ÊǶÔÎļþ¾ä±ú½øÐмÓËøÀ´±ÜÃâÎÊÌâµÄ³öÏÖ£¬²¢ÊµÊ©¶ÔÎļþ½øÐеڶþ´Î¿Õ¶ÁÈ¡£¨¼´¶Á0¸ö×Ö·û£©À´ÎļþÖ¸Õë»Øµ½µÚÒ»´Î¶ÁÈ¡µÄλÖ㬵«Ã»ÊµÏÖ£¬²»Öª¿É·ñ¡££¨´ýÐø£©
Ïà¹ØÎĵµ£º
List_Head
²Ù×÷ϵͳÄں˾³£ÐèҪά»¤Êý¾Ý½á¹¹¡£ÄÚºËÓбê×¼µÄÑ»·Á´±í¡¢Ë«ÏòÁ´±íµÄʵÏÖ¡£ÔÚ<Linux/list.h>ÎļþÖж¨ÒåÁËÒ»¸ölist_headÀàÐͼòµ¥½á¹¹£º
struct list_head {
struct list_head *next, *prev;
};
ͨÓÃÁ´±íµÄ³£ÓÃÓÃ;Êǽ«Ä³Ò»¸öÊý¾Ý½á¹¹±¾Éí´®³ÉÁ´±í£¬»ò½«Ä³Ð©Á´±íÓëÒ»¸öÊý¾Ý½á¹ ......
ºÍÆäËû²Ù×÷ϵͳһÑù£¬Linux°üº¬½ø³Ìµ÷¶ÈÓë½ø³Ì¼äͨÐÅ(IPC)¡¢ÄÚ´æ¹ÜÀí(MMU)¡¢ÐéÄâÎļþϵͳ(VFS)¡¢ÍøÂç½Ó¿ÚµÈ£¬ÏÂͼ¸ø³öÁËLinuxµÄ×é³É¼°Æä¹ØÏµ£º
LinuxÄÚºËÔ´´úÂë°üÀ¨¶à¸öĿ¼£º
¡¡¡¡£¨1£©arch£º°üÀ¨Ó²¼þÌØ¶¨µÄÄں˴úÂ룬Èçarm¡¢mips¡¢i386µÈ£»
¡¡¡¡£¨2£©drivers£º°üº¬Ó²¼þÇý¶¯´úÂ룬Èçcha ......
¼ÍÏþá°Ôø¾Ëµ£º“ÊÀ¼äµÄµÀÀíÓëÊÂÇ飬¶¼ÔÚ¹ÅÈ˵ÄÊéÖÐ˵¾¡£¬ÏÖÔÚÈçÔÙÖøÊö£¬ÈÔÈ»³¬²»¹ý¹ÅÈ˵ķ¶Î§£¬ÓֺαØÔÙ¶àÖøÊö¡£”ÓÚÊÇËûÒ»ÉúÖ®ÖУ¬´Ó²»ÖøÊ飬ֻÊDZàÊé--ÕûÀíǰÈ˵ĵ伮£¬½«ÖйúÎÄ»¯×÷ϵͳµÄ·ÖÀ࣬ÒÔ±ãÓÚÒÔºóµÄѧÕßÃÇѧϰ¡£×Ô¼ºµÄÖø×÷Ö»ÓСºÔÄ΢²ÝÌñʼǡ»Ò»²á¶øÒÑ¡£
&nb ......