¶ÑÕ»¡¢linux c³ÌÐò´æ´¢¿Õ¼ä²¼¾ÖµÄ×ܽá
Õ»Ö÷ÒªÓÃÀ´´æ·Å¾Ö²¿±äÁ¿, ´«µÝ²ÎÊý, ´æ·Åº¯ÊýµÄ·µ»ØµØÖ·.esp ʼÖÕÖ¸ÏòÕ»¶¥, Õ»ÖеÄÊý¾ÝÔ½¶à, espµÄֵԽС.
¶ÑÓÃÓÚ´æ·Å¶¯Ì¬·ÖÅäµÄ¶ÔÏó, µ±ÄãʹÓà malloc , new µÈ½øÐзÖÅäʱ,ËùµÃµ½µÄ¿Õ¼ä¾ÍÔÚ¶ÑÖÐ. ¶¯Ì¬·ÖÅäµÃµ½µÄÄڴ渽´øÓзÖÅäÐÅÏ¢, ËùÒÔÄãÄܹ» realloc ºÍ freeµ÷ËüÃÇ.
È«¾Ö£¬¾²Ì¬ºÍ³£Á¿ÊÇ·ÖÅäÔÚÊý¾ÝÇøÖеġ£Êý¾ÝÇø°üÀ¨bssºÍ³õʼ»¯Çø¡£
¶ÑÏò¸ßÄÚ´æµØÖ·Éú³¤
Õ»ÏòµÍÄÚ´æµØÖ·Éú³¤
¶ÑºÍÕ»ÏàÏò¶øÉú£¬¶ÑºÍÕ»Ö®¼äÓиöÁÙ½çµã£¬³ÆÎªstkbrk
CODE:
½ø³ÌÔÚÄÚ´æÖеÄÓ°Ïñ.
ÎÒÃǼÙÉèÏÖÔÚÓÐÒ»¸ö³ÌÐò, ËüµÄº¯Êýµ÷ÓÃ˳ÐòÈçÏÂ.
main(...) ->; func_1(...) ->; func_2(...) ->; func_3(...)
¼´: Ö÷º¯Êýmainµ÷Óú¯Êýfunc_1; º¯Êýfunc_1µ÷Óú¯Êýfunc_2; º¯Êýfunc_2µ÷Óú¯Êýfunc_3
µ±³ÌÐò±»²Ù×÷ϵͳµ÷ÈëÄÚ´æÔËÐÐ, ÆäÏà¶ÔÓ¦µÄ½ø³ÌÔÚÄÚ´æÖеÄÓ°ÏñÈçÏÂͼËùʾ.
(ÄÚ´æ¸ßÖ·)
+--------------------------------------+
| ...... | ... Ê¡ÂÔÁËһЩÎÒÃDz»ÐèÒª¹ØÐĵÄÇø
+--------------------------------------+
| env strings (»·¾³±äÁ¿×Ö´®) | \
+--------------------------------------+ \
| argv strings (ÃüÁîÐÐ×Ö´®) | \
+--------------------------------------+ \
| env pointers (»·¾³±äÁ¿Ö¸Õë) | SHELLµÄ»·¾³±äÁ¿ºÍÃüÁîÐвÎÊý±£
Ïà¹ØÎĵµ£º
³É¹¦ÊµÏÖLinuxÏÂpppdͨ¹ýGPRS²¦ºÅÉÏÍø
×ò
Ìì°Ñ¿ª·¢°åµÄbootloaderɾÁË,û°ì·¨,Ö»µÃÔÚPCÉϵ÷GPRS²¦ºÅÁË.ÏÈÔÚwindowsϲ¦ºÅ³É¹¦,È»ºóÓù¤¾ß¿´²¦ºÅʱ¾ßÌåʹÓÃÁËÄÄЩATÃü
Áî,ÔÙʹÓÃÕâЩÃüÁîµ½linuxÏÂʹÓÃpppdÀ´²¦ºÅ,×îºóÖÕÓڳɹ¦ÁË,֮ǰ¿ª·¢°åÉϲ»Äܳɹ¦²¦ºÅ¼«ÓпɾÍÊÇATÖ¸ÁîÓÐÎ ......
1. Íù/libºÍ/usr/libÀïÃæ¼Ó¶«Î÷£¬ÊDz»ÓÃÐÞ¸Ä/etc/ld.so.confµÄ£¬µ«ÊÇÍêÁËÖ®ºóÒªµ÷Ò»ÏÂldconfig£¬²»È»Õâ¸ölibrary»áÕÒ²»µ½
2. ÏëÍùÉÏÃæÁ½¸öĿ¼ÒÔÍâ¼Ó¶«Î÷µÄʱºò£¬Ò»¶¨ÒªÐÞ¸Ä/etc/ld.so.conf£¬È»ºóÔÙµ÷ÓÃldconfig£¬²»È»Ò²»áÕÒ²»µ½
±ÈÈç°²×°ÁËÒ»¸ömysqlµ½/usr/local/mysql£¬mysqlÓÐÒ»´ó¶ÑlibraryÔÚ/usr/local/mysql/libÏÂÃæ ......
1£¬´®¿Ú²Ù×÷ÐèÒªµÄÍ·Îļþ
¡¡¡¡#include¡¡¡¡ <stdio.h>¡¡¡¡¡¡/* ±ê×¼ÊäÈëÊä³ö¶¨Òå */
¡¡¡¡#include¡¡¡¡ <stdlib.h>¡¡¡¡ /* ±ê×¼º¯Êý¿â¶¨Òå */
¡¡¡¡#include¡¡¡¡ <unistd.h>¡¡¡¡ /* Unix ±ê×¼º¯Êý¶¨Òå */
¡¡¡¡#include¡¡¡¡ <sys/types.h>¡¡
¡¡¡¡#include¡¡¡¡ <sys/stat.h>¡¡
¡¡¡¡#incl ......
ÈçºÎ±àÒëLinuxµÄÄÚºË. Äںˣ¬ÊÇÒ»¸ö²Ù×÷ϵͳµÄºËÐÄ¡£Ëü¸ºÔð¹ÜÀíϵͳµÄ½ø³Ì¡¢ÄÚ´æ¡¢ É豸Çý¶¯³ÌÐò¡¢ÎļþºÍÍøÂçϵͳ£¬¾ö¶¨×ÅϵͳµÄÐÔÄܺÍÎȶ¨ÐÔ¡£Linux×÷Ϊһ¸ö×ÔÓÉÈí¼þ£¬ ÔÚ¹ã´ó°®ºÃÕßµÄÖ§³ÖÏ£¬Äں˰汾²»¶Ï¸üС£ÐµÄÄÚºËÐÞ¶©Á˾ÉÄں˵Äbug£¬²¢Ôö¼ÓÁËÐí
http://www.phpv.net/article.php/40
ÈçºÎ±àÒëLinuxÄÚºË- Linuxer ......
//¿âº¯ÊýʵÏÖ
char *strcat (char *dst, const char *src)
{
char *p = dst;
while (*p)
p++;
while ((*p++ = *src++))
;
return dst;
}
char *strncat (char *s1, const char *s2, long unsigned int n)
{
char *dest = s1;
  ......