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

ÈçºÎÔÚunixµÄc³ÌÐòÖеõ½system()µ÷Óõķµ»ØÖµ

½áÂÛ£º
char cmd[128];
...
int  status = system(cmd);
printf("%d == system(\"%s\");\n", WEXITSTATUS(status), cmd);  //´òÓ¡·µ»ØÖµ
 
ÍøÉÏËѵ½µÄ´ð°¸Óë½âÊÍ(1)£º
http://www.lslnet.com/linux/dosc1/38/linux-280268.htm
ÈçºÎÔÚunix c³ÌÐòÖеõ½systemµ÷Óõķµ»ØÖµ,ÇëÖ¸½Ì
¶Ô system µÄ·µ»ØÖµÊ©¼Ó WEXITSTATUS ºê¡£½á¹û¾ÍÊÇ¡£
ÈçºÎÔÚunix c³ÌÐòÖеõ½systemµ÷Óõķµ»ØÖµ,ÇëÖ¸½Ì
¿´¿´ÕâÌõFAQ:
1.10  systemº¯Êý£¬pcloseº¯Êý£¬waitpidº¯Êý µÄ·µ»ØÖµÊÇʲô£¿
==========================================================
     ‘system()’£¬‘pclose()’»òÕß‘waitpid()’µÄ·µ»ØÖµ²»ÏóÊÇÎÒ½ø³ÌµÄÍ˳öÖµ(exit
        value)(ÒëÕß×¢£ºÍ˳öÖµÖ¸µ÷ÓÃexit() »ò_exit()ʱ¸øµÄ²ÎÊý)... »òÕßÍ˳öÖµ×óÒÆÁË8
       λ...ÕâÊÇÔõô¸ãµÄ£¿
ÊÖ²áÒ³ÊǶԵģ¬ÄãÒ²ÊǶԵÄ! Èç¹û²éÔÄÊÖ²áÒ³µÄ‘waitpid()’Äã»á·¢ÏÖ½ø³ÌµÄ·µ»Ø
Öµ±»±àÂëÁË¡£Õý³£Çé¿öÏ£¬½ø³ÌµÄ·µ»ØÖµÔÚ¸ß16룬¶øÓàϵÄλÓÃÀ´×÷ÆäËüÊ¡£
Èç¹ûÄãÏ£Íû¿ÉÒÆÖ²£¬Äã¾Í²»ÄÜÆ¾½èÕâ¸ö£¬¶ø½¨ÒéÊÇÄã¸ÃʹÓÃÌṩµÄºê¡£ÕâЩºê×Ü
ÊÇÔÚ‘wait()’»ò‘wstat’µÄÎĵµÖÐ˵Ã÷ÁË¡£
ΪÁ˲»Í¬Ä¿µÄ¶¨ÒåµÄºê(ÔÚ‘<sys/wait.h>;’)°üÀ¨(statÊÇ‘waitpid()’·µ»ØµÄÖµ)£º
`WIFEXITED(stat)'
     Èç¹û×Ó½ø³ÌÕý³£Í˳öÔò·µ»Ø·Ç0
`WEXITSTATUS(stat)'
     ×Ó½ø³Ì·µ»ØµÄÍ˳öÂë
`WIFSIGNALED(stat)'
     Èç¹û×Ó½ø³ÌÓÉÓëÐźŶø ÖÕÖ¹Ôò·µ»Ø·Ç0
`WTERMSIG(stat)'
     ÖÕÖ¹×Ó½ø³ÌµÄÐźŴúÂë
`WIFSTOPPED(stat)'
     Èç¹û×Ó½ø³ÌÔÝÍ£(stopped)Ôò·µ»Ø·Ç0
`WSTOPSIG(stat)'
     Ê¹×Ó½ø³ÌÔÝÍ£µÄÐźŴúÂë
`WIFCONTINUED(stat)'
     Èç¹û״̬ÊDZíʾ×Ó½ø³Ì¼ÌÐøÖ´ÐÐÔò·µ»Ø·Ç0
`WCOREDUMP(stat)'
     Èç¹û‘WIFSIGNALED(stat)’Ϊ·Ç0£¬¶øÈç¹ûÕâ¸ö½ø³Ì²úÉúÒ»¸öÄÚ´æÓ³ÉäÎļþ
     (core dump)Ôò·µ»Ø·Ç0
ÍøÉÏËѵ½µÄ´ð°¸Óë½âÊÍ(2)£º
£¨1£©¸ÕÓõ½systemº¯Êý£¬Òª¸ù¾ÝÆä·µ»ØÖµÀ´×ö½øÒ»²½²Ù×÷£¬¿ÉÊÇsystemµÄ·µ»


Ïà¹ØÎĵµ£º

CÊäÈëÊä³ö

×ÛÊö
¿´Ò»ÏÂÊäÈë²Ù×÷µÄÔ­Àí£¬
³ÌÐòµÄÊäÈë¶¼½¨ÓÐÒ»¸ö»º³åÇø£¬¼´ÊäÈ뻺³åÇø¡£Ò»´ÎÊäÈë¹ý³ÌÊÇÕâÑùµÄ£¬µ±Ò»´Î¼üÅÌÊäÈë½áÊøÊ±»á½«ÊäÈëµÄÊý¾Ý´æÈëÊäÈ뻺³åÇø£¬¶øcinµÈÊäÈëÊä³öº¯ÊýÖ±½Ó´ÓÊä
È뻺³åÇøÖÐÈ¡Êý¾Ý¡£ÕýÒòΪcinµÈÊäÈëÊä³öº¯ÊýÊÇÖ±½Ó´Ó»º³åÇøÈ¡Êý¾ÝµÄ£¬ËùÒÔÓÐʱºòµ±»º³åÇøÖÐÓвÐÁôÊý¾Ýʱ£¬cinº¯Êý»áÖ±½ÓÈ¡µÃÕâЩ²ÐÁôÊý¾ ......

extern "C"

extern "C"°üº¬Ë«Öغ¬Ò壬ÆäÒ»£º±»ËüÐÞÊεÄÄ¿±êÊÇ“extern”µÄ£»Æä¶þ£º±»ËüÐÞÊεÄÄ¿±êÊÇ“C”µÄ¡£
1£©±»extern “C”ÏÞ¶¨µÄº¯Êý»ò±äÁ¿ÊÇexternÀàÐ͵ģ»
    externÊÇC/C++ÓïÑÔÖбíÃ÷º¯ÊýºÍÈ«¾Ö±äÁ¿×÷Ó÷¶Î§£¨¿É¼ûÐÔ£©µÄ¹Ø¼ü×Ö£¬¸Ã¹Ø¼ü×Ö¸æËß±àÒëÆ÷£¬ÆäÉùÃ÷µÄº¯ÊýºÍ±äÁ¿¿ÉÒÔ ......

C/C++³ÌÐòÄÚ´æ·ÖÅäÏê½â


Ò»¸öÓÉC/C++±àÒëµÄ³ÌÐòÕ¼ÓõÄÄÚ´æ·ÖΪÒÔϼ¸¸ö²¿·Ö
1¡¢Õ»Çø£¨stack£©— ³ÌÐòÔËÐÐʱÓɱàÒëÆ÷×Ô¶¯·ÖÅ䣬´æ·Åº¯ÊýµÄ²ÎÊýÖµ£¬¾Ö²¿±äÁ¿µÄÖµµÈ¡£Æä²Ù×÷·½Ê½ÀàËÆÓÚÊý¾Ý½á¹¹ÖеÄÕ»¡£³ÌÐò½áÊøÊ±ÓɱàÒëÆ÷×Ô¶¯ÊÍ·Å¡£
2¡¢¶ÑÇø£¨heap£© — ÔÚÄڴ濪±ÙÁíÒ»¿é´æ´¢ÇøÓò¡£Ò»°ãÓɳÌÐòÔ±·ÖÅäÊÍ·Å£¬ Èô³ÌÐòÔ±²»ÊÍ·Å£¬³ÌÐò½áÊøÊ±¿É ......

ÉîÈëÀí½âextern "C"

Ò»¡¢´ÓCÓëC++±àÒëÁ¬½Ó·½Ê½ÉîÈëÀí½âextern "C"
<1>.CºÍC++¶Ôº¯ÊýµÄ´¦Àí·½Ê½ÊDz»Í¬µÄ.±»extern "C"ÐÞÊεıäÁ¿ºÍº¯ÊýÊǰ´ÕÕCÓïÑÔ·½Ê½±àÒëºÍÁ¬½ÓµÄ.extern "C"ÓÃÓÚʵÏÖC++ÓëC¼°ÆäËüÓïÑԵĻìºÏ±à³Ì¡£
<2>.δ¼Óextern “C”ÉùÃ÷ʱµÄ±àÒ뷽ʽ
Ê×ÏÈ¿´¿´C++ÖжÔÀàËÆCµÄº¯ÊýÊÇÔõÑù±àÒëµÄ¡£
×÷ΪһÖÖÃæÏò ......

»ªÎªC/C++±ÊÊÔÌâ ¸½´ð°¸

1.staticÓÐʲôÓÃ;£¿£¨ÇëÖÁÉÙ˵Ã÷Á½ÖÖ£©
    1)ÔÚº¯ÊýÌ壬һ¸ö±»ÉùÃ÷Ϊ¾²Ì¬µÄ±äÁ¿ÔÚÕâÒ»º¯Êý±»µ÷Óùý³ÌÖÐά³ÖÆäÖµ²»±ä¡£
    2) ÔÚÄ£¿éÄÚ£¨µ«ÔÚº¯ÊýÌåÍ⣩£¬Ò»¸ö±»ÉùÃ÷Ϊ¾²Ì¬µÄ±äÁ¿¿ÉÒÔ±»Ä£¿éÄÚËùÓú¯Êý·ÃÎÊ£¬µ«²»Äܱ»Ä£¿éÍâÆäËüº¯Êý·ÃÎÊ¡£ËüÊÇÒ»¸ö±¾µØµÄÈ«¾Ö±äÁ¿¡£
    ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ