linux/init.h ÖÐ__init
Ôʼ¶¨Òå:include/linux/init.h
__initºÍ__exit±ê¼Çº¯Êý£¬__initdataºÍ__exitdata±ê¼ÇÊý¾Ý¡£
´Ëºê¶¨Òå¿ÉÖª±ê¼ÇºóµÄº¯ÊýÓëÊý¾ÝÆäʵÊǷŵ½ÁËÌØ¶¨µÄ£¨´úÂë»òÊý¾Ý£©¶ÎÖС£±ê¼ÇΪ³õʼ»¯µÄº¯Êý,±íÃ÷¸Ãº¯Êý¹©ÔÚ³õʼ»¯ÆÚ¼äʹÓá£ÔÚÄ£¿é×°ÔØÖ®ºó£¬Ä£¿é×°ÔØ¾Í»á½«³õʼ»¯º¯ÊýÈÓµô¡£ÕâÑù¿ÉÒÔ½«¸Ãº¯ÊýÕ¼ÓõÄÄÚ´æÊͷųöÀ´¡£
__exitÐÞÊδʱê¼Çº¯ÊýÖ»ÔÚÄ£¿éÐ¶ÔØÊ±Ê¹Óá£Èç¹ûÄ£¿é±»Ö±½Ó±à½øÄÚºËÔò¸Ãº¯Êý¾Í²»»á±»µ÷Óá£Èç¹ûÄں˱àÒëʱûÓаüº¬¸ÃÄ£¿é,Ôò´Ë±ê¼ÇµÄº¯Êý½«±»¼òµ¥µØ¶ªÆú¡£
_init²»ÊôÓÚcµÄ±ê×¼ÔÚÄں˴úÂëÀÕâ¸ö±íʾ°ÑÕâ¸öº¯Êý·ÅÔÚ.init.text sectionÀÔÚinclude/linux/init.hÀïÓж¨Òå
#define __init __attribute__ ((__section__ (".init.text")))
Õâ¸ösectionµÄ¿Õ¼äÊǻᱻ»ØÊյģ¬sectionÊǺÍÁ¬½ÓÓйصĸÅÄî
Ïà¹ØÎĵµ£º
Ö»Òª¿´¿´ include/linux/init.hÖе͍Òå¾ÍÇå³þÁË£º
#define core_initcall(fn) __define_initcall("1",fn)
#define postcore_initcall(fn) __define_initcall("2",fn)
#define arch_initcall(fn) &n ......
´íÎóÓ¡ÏóºÍÈÏʶÂÞÁÐÈçÏ£¬Ò»Ò»½âÊÍ£º
1¡£linuxϵÄÈí¼þÌ«ÉÙ
»Ø´ð£ºlinux ϵÄÈí¼þÒ»µãÒ²²»ÉÙ¡£windows»¹ÔÚÄï¶Ç×ÓÀïµÄʱºò£¬UnixÒѾÈçÈÕÖÐÌìÁË¡£ÒªÖªµÀ΢Èí¹«Ë¾¿ª·¢µÄµÚÒ»¸ö²Ù×÷ϵͳÊÇʲôÂð£¿ÊÇÒ»¸ö½Ð×öXenixµÄ¶«Î÷£¬ÊÇUnixµÄÒ»¸ö·ÖÖ§£¬ºóÀ´²ÅÈ¥¸ãDOSµÄ¡£ÓÐÈËÓÖÎÊÁË£¬Unix²»ÊÇLinux°¢£¬ÒªÖªµÀ£¬LinuxÍêÈ«ÖØÐµÄʵÏÖÁËUni ......
ÈçºÎÈÃLinux¸ÉµôWindows£¿ÎÒ³ÐÈÏ£¬ÕâÊÇÓеã±êÌâµ³ÁË¡£µ«Õâ¸öÎʺţ¬¹À¼ÆºÜ¶àLinuxµÄ·ÛË¿²»ÖªµÀ»ÃÏë¹ý¶àÉٱ飻ҡÆìÄź°£¬ÁоÙLinuxÖÚ¶àÓŵ㣬ÂÞÁÐWindows¸÷ÖÖ×ïÐУ¬¾ÍÊÇÈÃÈËÃÇÈ¥ÊÔÊÔLinux¡£¿ÉÊǽá¾ÖÔõôÑù£¿´ó¼Ò¶¼¿´µ½ÁË¡£
ΪʲôLinux»áʧ°Ü£¿àÞ£¬²»Ó¦¸Ã˵ÊÇʧ°Ü£¬Ó¦¸ÃÊÇ˵ΪʲôռÓÐÂÊÔ ......
¹ØÓÚread(...)·µ»ØÖµµÄÕýÈ·Åжϣºp30
File I/O µÄ read(...)º¯ÊýÓ÷¨£º
ÓÐÎÊÌâµÄ´úÂ룬ֻÅжϷµ»ØÖµÎª-1µÄÇé¿ö¡£
unsigned long word;
ssize_t nr;
/* read a couple bytes into 'word' from 'fd' */
nr = read (fd, &word, sizeof (unsigned long));
if (nr == -1)
/* error */
Indeed, a call to read( ) ca ......