ÈçºÎÔÚ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µÄ·µ»
Ïà¹ØÎĵµ£º
ÔÚlinuxÉÏд³ÌÐò¡¢×öÍø¹ÜµÄÈË£¬»ò¶à»òÉÙ¶¼»á¼¸Öֽű¾¡£½Å±¾ÓïÑÔÁé»îµÄ±äÁ¿ÀàÐÍ¡¢Ç¿´óµÄÕýÔò±í´ïʽ´¦ÀíÄÜÁ¦£¬ÔÙ¼ÓÉÏlinuxϵͳ±¾ÉíµÄ¹ÜµÀ¡¢Öض¨ÏòÒÔ¼°·á¸»µÄÃüÁîÐй¤¾ß£¬ÈÃÄã±à³ÌÆðÀ´ÓÎÈÐÓÐÓà¡£
¡¡¡¡¶øCÓïÑÔ¹ÌÈ»ÓÐÖÖÖÖÓÅÊÆ£¬µ«²»¿É·ñÈÏ£¬ºÜ¶à³¡ºÏÏ£¬Óýű¾ÓïÑÔ¸üΪ·½±ã£¬±ÈÈçÎÒÃǽ«¾ÙÀý˵Ã÷µÄ¶ÔÅäÖÃÎļþµÄ´¦Àí¡£
¡¡¡¡ÏÈ ......
PCÖ®¸¸C. ThackerÈÙ»ñ2009ÄêͼÁé½±
2010-03-10 01:21 | 3110´ÎÔĶÁ | ¡¾ÒÑÓÐ16ÌõÆÀÂÛ¡¿·¢±íÆÀÂÛ
¹Ø¼ü´Ê£ºÐÂÎÅ×ÊѶ | ¸ÐлliujiangCEµÄÌṩ | ÊÕ²ØÕâÆª×ÊѶ
¸ù¾ÝACM¹Ù·½ÍøÕ¾3ÔÂ9ÈÕ·¢²¼µÄÏûÏ¢£¬2009ÄêͼÁé½±ÊÚÓèÁËÏÖ´úPCÖ®¸¸Charles Thacker£¬ÒÔ±íÕÃËû¶ÔµÚһ̨ÏÖ´ú¸öÈ˼ÆËã»úXerox PARC Altoµ ......
ubuntuϵÄc/c++»·¾³´î½¨ÊDZȽϼòµ¥,ÒòΪÓÐaptºÍÐÂÁ¢µÃµÄ°ïÖú.
1.
Ê×ÏÈÊÇÅäÖÃgcc,ÔÚubuntu°²×°Íê³ÉÒѾÓÐgccÁË(gccÊÇÓÉGNUÖ®¸¸StallmanËù¿ª·¢µÄlinuxϵıàÒëÆ÷£¬È«³ÆÎªGNU
Compiler Collection£¬ Ŀǰ¿ÉÒÔ±àÒëµÄÓïÑÔ°üÀ¨£ºC, C++, Objective-C, Fortran, Java,
and
Ada.).µ«ÊÇgcc»¹²»ÄܱàÒëÎļþ.ÒòΪȱÉÙһЩͷÎļþ.Ä ......
½«Àà³ÉÔ±º¯ÊýÓÃ×öC»Øµ÷º¯Êý Ìá³öÎÊÌ⣺ »Øµ÷º¯ÊýÊÇ»ùÓÚC±à³ÌµÄWindows SDKµÄ¼¼Êõ£¬²»ÊÇÕë¶ÔC++µÄ£¬³ÌÐòÔ±¿ÉÒÔ½«Ò»¸öCº¯ÊýÖ±½Ó×÷Ϊ»Øµ÷º¯Êý£¬µ«ÊÇÈç¹ûÊÔͼֱ½ÓʹÓÃC++µÄ³ÉÔ±º¯Êý×÷Ϊ»Øµ÷º¯Êý½«·¢Éú´íÎó£¬ÉõÖÁ±àÒë¾Í²»ÄÜͨ¹ý¡£·ÖÎöÔÒò£ºÆÕͨµÄC++³ÉÔ±º¯Êý¶¼Òþº¬ÁËÒ»¸ö´«µÝº¯Êý×÷Ϊ²ÎÊý£¬Ò༴“this”Ö¸Õ룬C++ͨ¹ý ......