ÈçºÎÔÚ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ÓïÑÔ¹ÌÈ»ÓÐÖÖÖÖÓÅÊÆ£¬µ«²»¿É·ñÈÏ£¬ºÜ¶à³¡ºÏÏ£¬Óýű¾ÓïÑÔ¸üΪ·½±ã£¬±ÈÈçÎÒÃǽ«¾ÙÀý˵Ã÷µÄ¶ÔÅäÖÃÎļþµÄ´¦Àí¡£
¡¡¡¡ÏÈ ......
http://www.diybl.com/course/3_program/c++/cppjs/20090403/163906.html
CºÍC++»ìºÏ±à³Ì(__cplusplus Óë external "c" µÄʹÓÃ)
www.diybl.com¡¡Ê±¼ä£º2009-04-03¡¡×÷Õß:ÄäÃû ±à¼:sky µã»÷£º¡¡124 [ÆÀÂÛ]
µÚÒ»ÖÖÀí½â
±ÈÈç˵ÄãÓÃC++¿ª·¢ÁËÒ»¸öDLL¿â£¬ÎªÁËÄܹ»ÈÃCÓïÑÔÒ²Äܹ»µ÷ÓÃÄãµÄDLLÊä³ö(Export)µÄº¯Êý£¬ÄãÐèÒªÓÃexte ......
ÓÃvc6н¨ÁËÒ»¸öwin32µÄ¿ØÖÆÌ¨³ÌÐò£¬µ÷ÊÔÒ»¸öÖ±½Ó²åÈëÅÅÐòµÄС³ÌÐò£¬Îļþ¶¨ÒåΪ.cÎļþ£¬¶ø²»ÊÇÒ»°ãʹÓõÄ.cppÎļþ£¬´úÂë¶ÎÈçÏ£º
#include <stdio.h>
void inst(int* x,int n)
{
int i,j,t;
for(i=1; i<n; i++) /* i±íʾ²åÈë´ÎÊý£¬¹²½øÐÐn-1´Î²åÈë*/
{
t = x[i];
for(j=i-1; j> ......
PCÖ®¸¸C. ThackerÈÙ»ñ2009ÄêͼÁé½±
2010-03-10 01:21 | 3110´ÎÔĶÁ | ¡¾ÒÑÓÐ16ÌõÆÀÂÛ¡¿·¢±íÆÀÂÛ
¹Ø¼ü´Ê£ºÐÂÎÅ×ÊѶ | ¸ÐлliujiangCEµÄÌṩ | ÊÕ²ØÕâÆª×ÊѶ
¸ù¾ÝACM¹Ù·½ÍøÕ¾3ÔÂ9ÈÕ·¢²¼µÄÏûÏ¢£¬2009ÄêͼÁé½±ÊÚÓèÁËÏÖ´úPCÖ®¸¸Charles Thacker£¬ÒÔ±íÕÃËû¶ÔµÚһ̨ÏÖ´ú¸öÈ˼ÆËã»úXerox PARC Altoµ ......
Ò»¡¢´ÓCÓëC++±àÒëÁ¬½Ó·½Ê½ÉîÈëÀí½âextern "C"
<1>.CºÍC++¶Ôº¯ÊýµÄ´¦Àí·½Ê½ÊDz»Í¬µÄ.±»extern "C"ÐÞÊεıäÁ¿ºÍº¯ÊýÊǰ´ÕÕCÓïÑÔ·½Ê½±àÒëºÍÁ¬½ÓµÄ.extern "C"ÓÃÓÚʵÏÖC++ÓëC¼°ÆäËüÓïÑԵĻìºÏ±à³Ì¡£
<2>.δ¼Óextern “C”ÉùÃ÷ʱµÄ±àÒ뷽ʽ
Ê×ÏÈ¿´¿´C++ÖжÔÀàËÆCµÄº¯ÊýÊÇÔõÑù±àÒëµÄ¡£
×÷ΪһÖÖÃæÏò ......