ǶÈëʽLinuxÓ¦ÓóÌÐò¿ª·¢²âÊÔÌâ ÏÂÔØ±¾ÎÄ

printf(\fork,count=%d\\n\

result=fork(); if(result<0)

printf(\fail\\n\ else if(result>0) {

count++;

printf(\is parent!\\n¡±); } else {

count--;

printf(\is child!\\n\

}

printf(\fork count=%d\\n\ return 0; }

before fork,count=5 This is child after fork count=4 This is parent! after fork count=6 ³ÌÐòµÄÖ´Ðйý³ÌÈçÏ£º

³ÌÐòÏȶ¨ÒåÁËÁ½¸ö±äÁ¿resultºÍcount£¬È»ºóÊä³ö±äÁ¿countµÄÖµ£¬ µÃµ½\fork count=5\ÕâÒ»ÐÐÊä³ö¡£µ±Ö´Ðе½result=fork()ʱ³ÌÐò·Ö²æ£¬²úÉú¸¸×ÓÁ½¸ö½ø³Ì¡£ÏµÍ³Ê×Ïȵ÷¶È×Ó½ø³ÌÖ´ÐУ¬Ö±ÖÁ×Ó½ø³Ì½áÊø¡£

¶øÔÚ×Ó½ø³ÌÖÐresultΪ0£¬¹Ê×ßµÄÊÇÌõ¼þ·ÖÖ§µÄ×îºóÒ»¸ö·ÖÖ§£¬Êä³ö£º This is child. after fork count=4

×Ó½ø³ÌÖ´ÐÐÍêÁËÖ®ºóµ÷¶È¸¸½ø³ÌÖ´ÐУ¬Ö±ÖÁ¸¸½ø³Ì½áÊø¡£¶øÔÚ¸¸½ø³ÌÖÐresultΪ×Ó½ø³ÌºÅ£¬´óÓÚ0£¬ÓÚÊÇ×ßÌõ¼þ·ÖÖ§µÄµÚ¶þ¸ö¸ö·ÖÖ§£¬Êä³ö£º This is parent after fork count=6 ËÄ¡¢±à³ÌÌâ

1¡¢±àдһ¸ö£ÃÓïÑÔÔ´³ÌÐòex.c£¬£¨1£©ÓÃÒÔÔÚ´ò¿ªµ±Ç°Ä¿Â¼ÏµÄÎļþ

¡°ex.txt¡±£¬Èç¹ûûÓÐÔò´´½¨¸ÃÎļþ£¬²¢Ê¹Æä¾ßÓжÁдÊôÐÔ£¬£¨2£©±àдһ¸ömakefileʵÏÖ×Ô¶¯±àÒë,Éú³É¿ÉÖ´ÐÐÎļþex¡£

void main(void) {

}

close(fid); }

objects = ex.o

exec = ex all:$(objects)

gcc ¨Co $(exec) $(objects)

int fid;

fid = open(¡°./ex.txt¡±,O_RDWR|O_CREAT); if(fid==-1) {

printf(¡°open or create error \\n¡±); exit(0);

ex.o:ex.c

gcc ¨Cc ex.c

clean:

rm ¨Cr $(exec) $(objects)

2¡¢¼Ù¶¨ÄãÔÚĿ¼/root/armÏÂÓÐÒ»¸öC³ÌÐò£¬ËüÓɼ¸¸öµ¥¶ÀµÄÎļþ×é³É£¬¶øÕ⼸¸öÎļþÓÖ·Ö±ð°üº¬ÁËÆäËûÎļþ£¬ÈçÏÂͼËùʾ£º Îļþ main.c list.c symbol.c table.c table.h °üº¬Îļþ stdio.h, table.h list.h symbol.h table.h symbol.h, list.h ÊÔ±àдmakefileÎļþ£¬×îÖÕµÄÄ¿±êÎļþΪex1£¨½»²æ±àÒëÆ÷Ϊarm-linux-gcc£©

CC=arm-linux-gcc

ex1: main.o list.o symbol.o table.o

$(CC) -o ex1 main.o list.o symbol.o table.o main.o: main.c table.h symbol.h list.h $(CC) -c -o main.o main.c list.o: list.c list.h $(CC) -c -o list.o list.c symbol.o: symbol.c symbol.h $(CC) -c -o symbol.o symbol.c table.o: table.c table.h symbol.h list.h

$(CC) -c -o table.o table.c clean:

rm ex *.o

Îå¡¢¼ò´ðÌâ

1¡¢Ê²Ã´Êǽ»²æ±àÒ룿ǶÈëʽ½»²æ±àÒëÔõôʵÏÖ£¿ 2¡¢BootloaderÆô¶¯Á÷³ÌÊÇÔõôÑùµÄ£¿

3¡¢±È½ÏÈ«»º³å¡¢Ðлº³åºÍ²»´ø»º³å£¬²¢ËµÃ÷±ê×¼ÊäÈëÊä³ö¡¢±ê×¼´íÎó¸÷ʹÓÃÄÄÖÖÀàÐ͵Ļº³å£¿

4¡¢±àÐ´ÊØ»¤½ø³Ì°üÀ¨Äö²½Ö裬ÿ¸ö²½Öè·Ö±ðÔõôʵÏÖ£¿ 5¡¢½ø³ÌµÄÐźÅÓëÐźÅÁ¿Í¨ÐÅÓÐÊ²Ã´Çø±ð£¿

6¡¢ÎÞÃû¹ÜµÀºÍÓÐÃû¹ÜµÀÔÚʹÓÃʱÓÐÊ²Ã´Çø±ð£¿·Ö±ðʹÓÃʲôº¯Êý´´½¨ÎÞÃû¹ÜµÀºÍÓÐÃû¹ÜµÀ£¿