¸ßˮƽC³ÌÐòÔ±ÐÞÑø
ÔÚ´óÐÍCÓïÑÔÏîÄ¿¹¤³Ì»òÕßlinuxÄÚºËÖÐÎÒÃǶ¼»á¾³£¼ûµ½Á½¸öFASTCALLºÍarmlinkage
Á½¸ö±êʶ·û(ÐÞÊηû)£¬ÄÇôËüÃǸ÷ÓÐʲô²»Í¬ÄØ£¿½ñÌì¾Í¸ø´ó¼Ò¹²Í¬·ÖÏíÒ»ÏÂ×Ô¼ºµÄÐĵÃ.
´ó¼Ò¶¼ÖªµÀÔÚ±ê×¼CϵÖк¯ÊýµÄÐβÎÔÚʵ¼Ê´«Èë²ÎÊýµÄʱºò»áÉæ¼°µ½²ÎÊý´æ·ÅµÄÎÊÌ⣬ÄÇôÕâЩ²ÎÊý´æ·ÅÔÚÄÄÀïÄØ£¿ ÓÐÒ»¶¨ÀíÂÛ»ù´¡µÄÅóÓÑÒ»¶¨»á¿Ï¶¨µØ»Ø´ð£ºÕâЩº¯Êý²ÎÊýºÍº¯ÊýÄÚ²¿¾Ö²¿±äÁ¿Ò»Æð±»·ÖÅäµ½Á˺¯ÊýµÄ¾Ö²¿¶ÑÕ»ÖУ¬ÕæµÄÊÇÕâÑùÂð£¿Æäʵ»¹ÓÐÀýÍâµÄÇé¿ö£º
Ê×ÏÈ×÷Ϊlinux²Ù×÷ϵͳ,Ëü²»Ò»¶¨¾ÍÖ»ÔËÐÐÔÚX86ƽ̨ÏÂÃæ,»¹ÓÐÆäËûƽ̨ÀýÈçARM,PPC£¬´ï·ÒÆæµÈµÈ£¬ËùÒÔÔÚ²»Í¬µÄ´¦ÀíÆ÷½á¹¹Éϲ»Äܱ£Ö¤¶¼ÊÇͨ¹ý¾Ö²¿Õ»´«µÝ²ÎÊýµÄ£¬¿ÉÄÜ´Ëʱ¾ÍÓÐÅóÓѾͻáÎÊ£º²»·ÅÔÚÕ»ÖÐÄÜ·ÅÔÚÄÄÀïÄØ£¿ÊìϤARMµÄÅóÓÑÒ»¶¨ÖªµÀARM¶Ôº¯Êýµ÷Óùý³ÌÖеĴ«²Î¶¨ÒåÁËÒ»Ì×¹æÔò£¬½ÐATPCS£¨ÄڵؽÐAAPCS£©£¬¹æÔòÖÐÃ÷È·Ö¸³öARMÖÐR0-R4¶¼ÊÇ×÷ΪͨÓüĴæÆ÷ʹÓã¬ÔÚº¯Êýµ÷ÓÃʱ´¦ÀíÆ÷´ÓR0-R4ÖлñÈ¡²ÎÊý£¬ÔÚº¯Êý·µ»ØʱÔÙ½«ÐèÒª·µ»ØµÄ²ÎÊýÒ»´Î´æµ½R0-R4ÖУ¬Ò²¾ÍÊÇ˵¿ÉÒÔ½«º¯Êý²ÎÊýÖ±½Ó´æ·ÅÔڼĴæÆ÷ÖУ¬ËùÒÔΪÁËÑϸñÇø±ðº¯Êý²ÎÊýµÄ´æ·ÅλÖã¬ÒýÈëÁËÁ½¸ö±ê¼Ç£¬¼´asmlinkageºÍFASTCALL£¬Ç°Õß±íʾ½«º¯Êý²ÎÊý´æ·ÅÔÚ¾Ö²¿Õ»ÖÐ,ºóÕßÔòÊÇ֪ͨ±àÒëÆ÷½«º¯Êý²ÎÊýÓüĴæÆ÷±£´æÆðÀ´
ÎÒÃÇÔÚËÑË÷һЩ¶îÍâµÄÏßË÷£¬ARMÖÐR0-R4ÓÃÓÚ´æ·Å´«Èë²ÎÊý£¬ÒþÔ¼¸æËßÎÒÃÇ£¬×÷Ϊ¸ßˮƽǶÈëʽϵͳ¿ª·¢Õߣ¬»òÕ߸ßˮƽCÓïÑÔ³ÌÐòÔ±£¬º¯ÊýµÄɾ³ý²»Ó¦¸Ã´óÓÚ5¸ö£¬ÄÇôÓÐÈ˾ͻᷴ¹ýÀ´ÎÊ£º³¬¹ý5¸öµÄÄÇЩ²ÎÊýÓÖºÎÈ¥ºÎ´Ó£¿ÎҵĻشðÊÇ£º´«Èë²ÎÊýÈç¹û³¬¹ý5¸ö£¬¶àÓàµÄ²ÎÊý»¹ÊDZ»´æ·Åµ½¾Ö²¿Õ»ÖУ¬´ËʱÓÐÈË¿ÉÄÜÓÖ»áÎÊ£º½«º¯Êý²ÎÊý´«Èë¾Ö²¿Õ»ÓÐʲô²»ºÃ£¿ ÎҵĻشðÊÇ£º±íÃæÉÏûʲô²»ºÃ£¬µ«ÊÇÈç¹ûÄãÊÇÒ»Ãû¾ßÓÐlinuxÄÚºËÐÞÑøµÄ³ÌÐòÔ±,Äã¾Í»áÒþÔ¼¼ÇµÃlinuxÖУ¬²»¹ÜÊÇϵͳµ÷Ó㬻¹ÊÇϵͳÏÝÚ嶼»áÒýÆðÓû§¿Õ¼äÏÝÈëÄں˿ռ䣬ÎÒÃÇÖªµÀ£¬ÏµÍ³¿Õ¼äµÄȨÏÞ¼¶ÊÇ0£¬Óû§¿Õ¼äµÄȨÏÞ¼¶Îª3£¬ÏµÍ³µ÷ÓôÓȨÏÞ¼¶Îª3µÄÓû§¿Õ¼äÏݵ½È¨ÏÞ¼¶Îª0µÄÄں˿ռ䣬±ØÈ»ÒýÆð¶ÑÕ»Çл»£¬linuxϵͳ½«´ÓÈ«¾ÖÈÎÎñ״̬ջTSSÖÐÕÒµ½Ò»¸öºÏÊʵÄÄÚºËÕ»ÐÅÏ¢±£´æ¸²¸Çµ±Ç°SP,SSÁ½¸ö¼Ä´æÆ÷µÄÄÚÈÝ£¬ÒÔÍê³É¶ÑÕ»Çл»£¬´Ëʱ´¦ÓÚÄں˿ռäËù¿´µ½µÄÕ»ÒѲ»ÊÇÓû§¿Õ¼äÄǸöÕ»£¬ËùÒÔÔÚµ÷ÓõÄʱºòѹÈëÓû§Õ»µÄÊý¾Ý¾ÍÔÚÏÝÈëÄں˵ÄÄǸö˲¼ä£¬±»ÖÍÁôÔÚÓû§¿Õ¼äÕ»£¬Äں˸ù±¾²»ÖªµÀËüµÄ´æÔÚÁË£¬ËùÒÔ×÷Ϊ°²È«¿¼ÂÇ»òÕß×÷Ϊ¸ßˮƽ³ÌÐòÔ±µÄÇÐÉíÐÞÑø³ö·¢£¬¶¼²»Ó¦¸ÃÏòϵͳµ÷Óü¶º¯Êý´«Èë¹ý¶àµÄ²ÎÊý¡£
Ïà¹ØÎĵµ£º
n Óñêʶ·û´ú±íÒ»¸ö³£Á¿£¬³ÆΪ·ûºÅ³£Á¿¡£ n ·ûºÅ³£Á¿Óë±äÁ¿²»Í¬£¬ËüµÄÖµÔÚÆä×÷ÓÃÓòÄÚ²»Äܸı䣬Ҳ²»ÄÜÔÙ±»¸³Öµ¡£ n ʹÓ÷ûºÅ³£Á¿µÄºÃ´¦ÊÇ£º Ø º¬ÒåÇå³þ£» Ø ÄÜ×öµ½¡°Ò»¸ÄÈ«¸Ä¡±¡£ --»°Ëµ£º²»ÖªµÀcÀïÃæÓÐûÓÐÈ«¾Ö±äÁ¿µÄ¶«¶«£¬ÓеĻ°£¬ÕâÁ½¸öµÄʵ¼ÊÓô¦ÓÐɶ×ÓÇø±ðÄØ£¿¿´¿´ÔÙ˵ Êý¾Ý½á¹¹+Ëã·¨=³ÌÐò ÖÕÓÚÖªµÀÕâ ......
ÕûÐͳ£Á¿¾ÍÊÇÕû³£Êý¡£Ê¹ÓõÄÕû³£ÊýÓа˽øÖÆ¡¢Ê®Áù½øÖƺÍÊ®½øÖÆÈýÖÖ¡£ Ê®½øÖÆÕû³£Êý²»ÄÜÓÐÇ°µ¼0£¬²»ÄÜÓзÇÊý×Ö×Ö·û¡£ °Ë½øÖÆÕû³£Êý±ØÐëÒÔ0¿ªÍ·£¬²»ÄÜÓзÇÊý×Ö×Ö·û¡£ Ê®Áù½øÖÆÕû³£Êý±ØÐëÒ»0X»ò0x¿ªÍ·£¬²»ÄÜÓзǷ¨×Öĸ£¨ ......
ÔÚÌÖÂÛÈ«¾Ö±äÁ¿Ö®Ç°ÎÒÃÇÏÈÒªÃ÷°×¼¸¸ö»ù±¾µÄ¸ÅÄ
1. ±àÒëµ¥Ôª(Ä£¿é)£º
ÔÚIDE¿ª·¢¹¤¾ß´óÐÐÆäµÀµÄ½ñÌ죬¶ÔÓÚ±àÒëµÄһЩ¸ÅÄîºÜ¶àÈËÒѾ²»ÔÙÇå³þÁË£¬ºÜ¶à³ÌÐòÔ±×îŵľÍÊÇ´¦ÀíÁ¬½Ó´íÎó(LINK ERROR), ÒòΪËü²»Ïñ±àÒë´íÎóÄÇÑù¿ÉÒÔ¸ø³öÄã³ÌÐò´íÎóµÄ¾ßÌåλÖã¬Äã³£³£¶ÔÕâÖÖ´íÎó¸Ðµ½°ÃÄÕ£¬µ«ÊÇÈç¹ûÄã¾ ......
Õ»£ºº¯Êýµ÷ÓõÄʱºò£¬ÔÚÕ»Öб£´æ¾Ö²¿±äÁ¿ºÍº¯Êý²ÎÊýµÈ¡£µ±º¯Êý·µ»Øʱ£¬×Ô¶¯Çå³ýÕ»¡£
×ÔÓÉ´æ´¢Çø£ºÒ²³ÆΪ¶Ñ(heap)£¬¿ÉÒÔ¿´×÷´óÁ¿µÄÄÚ´æ¶Î¡£Í¨¹ý new ²Ù×÷·û·ÖÅäµÄÄÚ´æÔÚ¶ÑÖС£³ÌÐò½áÊø֮ǰ²»×Ô¶¯Çå³ý×ÔÓÉ´æ´¢Çø¡£ÐèÒªÓɳÌÐòÀ´¸ºÔðÊÍ·Å£¨delete£©¡£
1.
¶ÔÖ¸ÏòÕ»ÉÏÄÚ´æµÄÖ¸Õëµ÷ÓÃdelete»áµ¼Ö³ÌÐòCrash¡£
2.
new ½ø ......
½ø³ÌI/Oº¯Êý,Óëpcloseº¯ÊýÒ»ÆðʹÓá£
±íÍ·Îļþ
¡¡¡¡#include <stdio.h>
º¯Êý¶¨Òå
¡¡¡¡FILE * popen
( const char * command
, const char * type
);
¡¡¡¡int pclose
( FILE * stream
);
º¯Êý˵Ã÷
¡¡¡¡
popen() º¯Êýͨ¹ý´´½¨Ò»¸ö¹ÜµÀ£¬µ÷Óà fork ²úÉúÒ»¸ö×Ó½ø³Ì£¬Ö´ÐÐÒ»¸ö shell ÒÔÔËÐÐÃüÁîÀ´¿ªÆôÒ» ......