Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

Linux¶à½ø³ÌÏà¹ØÄÚÈÝ

Linux¶à½ø³ÌÏà¹ØÄÚÈÝ
°æÈ¨ÉùÃ÷£º¿ÉÒÔÈÎÒâ×ªÔØ£¬µ«×ªÔØÊ±±ØÐë±êÃ÷Ô­×÷Õßcharlee¡¢Ô­Ê¼Á´½Óhttp://tech.idv2.com/2006/10/14/linux-multiprocess-info/ÒÔ¼°±¾ÉùÃ÷¡£
×î½üÔÚÓà perl дһ¸öLinuxÏÂµÄ¶à½ø³ÌÊØ»¤½ø³Ì£¬Òò´ËÑо¿ÁËÒ»ÏÂLinuxϵĽø³ÌÏà¹ØµÄ֪ʶ¡£ÏÖ½«ÐĵÃ×ܽáһϡ£Ö÷ÒªÊǹØÓÚ½ø³Ì´´½¨ºÍ»ØÊÕ¡£
fork
SIGCHLDÐźźͽ©Ê¬½ø³Ì
ÀûÓà waitpid »ØÊÕ½©Ê¬½ø³Ì
ºöÂÔ SIGCHLD »ØÊÕ½©Ê¬½ø³Ì
fork
Ê×ÏÈ˵˵ fork
º¯Êý¡£Õâ¸öº¯ÊýÓÃÀ´´´½¨Ò»¸ö½ø³Ì£¬²»¹ý´´½¨·½·¨ÓÐЩ²»Ì«ºÃÀí½â¡£ÏÈ¿´ÏÂÃæµÄ³ÌÐò
fork-test.pl¡£ÎÒÊÇÓÃperlдµÄ£¬²»¹ýÏàͬµÄ¹¦ÄÜÒ²¿ÉÒÔÓà C À´Íê³É¡£
#!/usr/bin/perl
#------------------------------------
# fork-test.pl
print "Program started, pid=$$.\n";
if ($child_pid = fork()) {
print "I'm parent, my pid=$$, child's pid=$child_pid.\n";
} else {
print "I'm child, pid=$$.\n";
}
ÔËÐÐÖ®ºóÏÔʾÏÂÃæµÄ½á¹û¡£
Program started, pid=8934.
I'm child, pid=8935.
I'm parent, my pid=8934, child's pid=8935.
Ϊʲô I'm child ºÍ I'm parent ¶¼»á±»ÏÔʾ£¿ÕâÊÇÒòΪ fork µ÷ÓÃʱ£¬µ±Ç°µÄ½ø³Ì»á´Ó fork µÄλÖÃÒ»·ÖΪ¶þ£¬fork
¶ÔÁ½¸ö½ø³ÌµÄ·µ»ØÖµ²»Í¬¡£ÔÚ¸¸½ø³ÌÖÐ fork ·µ»Ø×Ó½ø³Ì(¼´ÁíÒ»¸ö½ø³Ì)µÄ½ø³Ìid£¬¶øÔÚ×Ó½ø³ÌÖÐ fork ·µ»Ø 0¡£ÉÏÀýµÄÖ´Ðйý³ÌÈçÏÂͼ¡£
ÉÏÀýÖÐÖ´Ðе½ Program started ʱ£¬Ö»ÓÐÒ»¸ö½ø³Ì 8934£¬¶øÖ´Ðе½ fork ʱ£¬½ø³Ì·ÖΪÁ½¸ö£¬¸¸½ø³ÌΪ 8934£¬×Ó½ø³ÌΪ
8935¡£½ÓÏÂÀ´¸¸½ø³ÌÖ´ÐÐ if ·ÖÖ§£¬ÊäÈë“I'm parent..”£¬¶ø×Ó½ø³ÌÖ´ÐÐ else ·ÖÖ§£¬Êä³ö “I'm child”¡£
SIGCHLDÐźźͽ©Ê¬½ø³Ì
Ê×ÏÈ˵˵ʲôÊǽ©Ê¬½ø³Ì(zombie process)¡£ÎÒÃÇÖªµÀ Linux
ʹÓýø³Ì±íÀ´¹ÜÀí½ø³Ì£¬Ã¿¸ö½ø³Ì¶¼ÔÚ½ø³Ì±íÖÐÕ¼¾ÝÒ»¸öλÖᣵ±ÎÒÃÇÓà fork
Éú³ÉÒ»¸ö×Ó½ø³Ì£¬È»ºó¸Ã×Ó½ø³ÌÍ˳öʱ£¬ÏµÍ³²»»á×Ô¶¯»ØÊÕ¸Ã×Ó½ø³ÌËùռλÖᣴËʱËäÈ»½ø³Ì±íÖÐÓÐÕâ¸ö×Ó½ø³ÌµÄÐÅÏ¢£¬µ«Êµ¼ÊÉϸÃ×Ó½ø³ÌÔçÒѽáÊø£¬ÓÚÊÇÕâ¸ö½ø³Ì¾Í³ÉÁË“½©Ê¬½ø³Ì”¡£
½©Ê¬½ø³ÌËäÈ»²»Õ¼ÓÃϵͳ×ÊÔ´£¬µ«ÊÇËü»áÀ˷ѽø³Ì±íµÄλÖá£Èç¹û½©Ê¬½ø³ÌÌ«¶à£¬ÓпÉÄܻᵼÖ²»ÄÜ´´½¨Ð½ø³Ì¡£ÏÂÃæµÄÀý×Ó zombie-test.pl
ÑÝʾÁËÈçºÎ´´½¨½©Ê¬½ø³Ì£º
#!/usr/bin/perl
#------------------------------------
# zombie-test.pl
sub child {
print "I'm child, pid=$$.\n";
}
while (1) {
if (fork() == 0) {


Ïà¹ØÎĵµ£º

ÐÞ¸ÄlinuxĬÈϱàÂë

export£ºÉèÖûòÏÔʾ»·¾³±äÁ¿¡£
Óï¡¡¡¡·¨£ºexport [-fnp][±äÁ¿Ãû³Æ]=[±äÁ¿ÉèÖÃÖµ]
²¹³ä˵Ã÷£ºÔÚshellÖÐÖ´ÐгÌÐòʱ£¬shell»áÌṩһ×é»·¾³±äÁ¿¡£export¿ÉÐÂÔö£¬Ð޸Ļòɾ³ý»·¾³±äÁ¿£¬¹©ºóÐøÖ´ÐеijÌÐòʹÓá£exportµÄЧÁ¦½ö¼°Óڸô˵ǽ²Ù×÷¡£
²Î¡¡¡¡Êý£º
¡¡-f ¡¡´ú±í[±äÁ¿Ãû³Æ]ÖÐΪº¯ÊýÃû³Æ¡£ 
¡¡-n ¡ ......

Linux select()Ïê½â

Linux select()Ïê½â selectϵͳµ÷ÓÃÊÇÓÃÀ´ÈÃÎÒÃǵijÌÐò¼àÊÓ¶à¸öÎļþ¾ä±ú(file descriptor)µÄ״̬±ä»¯µÄ¡£³ÌÐò»áÍ£ÔÚselectÕâÀïµÈ´ý£¬Ö±µ½±»¼àÊÓµÄÎļþ¾ä±úÓÐijһ¸ö»ò¶à¸ö·¢ÉúÁË״̬¸Ä±ä¡£ ÎļþÔÚ¾ä±úÔÚLinuxÀïºÜ¶à£¬Èç¹ûÄãmanij¸öº¯Êý£¬ÔÚº¯Êý·µ»ØÖµ²¿·Ö˵µ½³É¹¦ºóÓÐÒ»¸öÎļþ¾ä±ú±»´´½¨µÄ¶¼Êǵģ¬Èçman socket¿ÉÒÔ¿´µ½&ldqu ......

ÓÃLinux¹¹½¨×îºÃµÄFTP·þÎñÆ÷

ÔÚÖÚ¶àÍøÂçÓ¦ÓÃÖУ¬FTP£¨Îļþ´«ÊäЭÒ飩ÓÐ×ŷdz£ÖØÒªµÄµØÎ»¡£InternetÖÐÒ»¸öÊ®·ÖÖØ
ÒªµÄ×ÊÔ´¾ÍÊÇÈí¼þ×ÊÔ´£¬¶ø¸÷ÖÖ¸÷ÑùµÄÈí¼þ×ÊÔ´´ó¶àÊý¶¼·ÅÔÚFTP·þÎñÆ÷ÖС£Óë´ó¶àÊý
Internet·þÎñÒ»Ñù£¬FTPÒ²ÊÇÒ»¸ö¿Í»§»ú/·þÎñÆ÷ϵͳ¡£Óû§Í¨¹ýÒ»¸öÖ§³ÖFTPЭÒéµÄ¿Í»§
»ú³ÌÐò£¬Á¬½Óµ½Ö÷»úÉϵÄFTP·þÎñÆ÷³ÌÐò¡£Óû§Í¨¹ý¿Í»§»ú³ÌÐòÏò·þÎñÆ÷³Ì ......

ǶÈëʽlinuxÏÂQT3/EmbeddedµÄÊäÈëÉ豸Çý¶¯½Ó¿Ú

Ò»¡¢Qt3/EmbeddedµÄÊäÈëÉ豸µÄÇý¶¯½Ó¿ÚʵÏÖÔ­Àí·ÖÎö
       1¡¢Qt3/Embedded°ÑÓëµ×²ãÓ²¼þÏà¹ØµÄÔ´Îļþͳһ·ÅÔÚsrc/embeddedĿ¼Ï£¬ËùÒÔÎÒÃÇ×îºÃÒ²°Ñ×Ô¼ºµÄÉ豸Çý¶¯½Ó¿ÚÎļþ·Åµ½´ËĿ¼¡£
2¡¢Qt/EmbeddedÖеÄÊäÈëÉ豸·ÖΪÊó±êÀàÓë¼üÅÌÀà¡£ÔÚ3.x°æ±¾ÏµÁÐÖУ¬Êó±êÉ豸µÄ³éÏó»ùÀàΪQWSMouseHandler£¬ÔÚsr ......

linux°²×°¡¢Ð¶ÔØÑ¹ËõµÄ³ÌÐò°²×°°ü

Ê×ÏÈÏȽ«Îļþ½âѹËõ£¨ÒÔ.tar.bz2ΪÀý£©£º
tar -xjvf file.tar.bz2
ÆäËûµÄÎļþµÄ½âѹ£¬¿ÉÒԲο¼ÉÏһƪ¹ØÓÚlinuxÏÂѹËõ¡¢½âѹËõÎļþµÄÎÄÕ¡£
È»ºó½øÈëµ½½âѹºóµÄÎļþÀï
cd Ŀ¼
ÔÙ½Ó×ÅÖ´ÐÐ
./configure
ÕâÑù£¬»áÉú³ÉmakefileÎļþ
½Ó׎øÐÐÎļþµÄ±àÒë
make
ÔÙ½Ó×ÅÖ´Ðа²×°
make install
·´Ö®£¬Ð¶ÔؾÍÊÇ
make unin ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ