|
|
¡¾´ð°¸¡¿Ó¦Öú»ØÌû
¡ï º®½_µöÑ©: ½ð±Ò+1 2012-04-06 18:55:29
×ªÔØ£ºhttp://blog.csdn.net/Lambol_8309/article/details/4524964
int main(int argc,char* argv[])Ïê½â
argcÊÇÃüÁîÐÐ×ܵIJÎÊý¸öÊý
argv[]ÊÇargc¸ö²ÎÊý£¬ÆäÖеÚ0¸ö²ÎÊýÊdzÌÐòµÄÈ«Ãû£¬ÒÔºóµÄ²ÎÊýÃüÁîÐкóÃæ¸úµÄÓû§ÊäÈëµÄ²ÎÊý£¬±ÈÈ磺 Ö´ÐÐʱÇÃÈë
F:/MYDOCU~1/TEMPCODE/D1/DEBUG/D1.EXE aaaa bbb ccc ddd
Êä³öÈçÏ£º
F:/MYDOCU~1/TEMPCODE/D1/DEBUG/D1.EXE
aaaa
bbb
ccc
ddd
--------------------------------------------------------------------
char *argv[]ÊÇÒ»¸ö×Ö·ûÊý×é,Æä´óСÊÇint argc,Ö÷ÒªÓÃÓÚÃüÁîÐвÎÊý argv[] ²ÎÊý£¬Êý×éÀïÿ¸öÔªËØ´ú±íÒ»¸ö²ÎÊý;
±ÈÈçÄãÊäÈë
test a.c b.c t.c
Ôò
argc = 4
argv[0] = \"test\"
argv[1] = \"a.c\"
argv[2] = \"b.c\"
argv[3] = \"t.c\"
--------------------------------------------------------------------------------------------
argc¼Ç¼ÁËÓû§ÔÚÔËÐгÌÐòµÄÃüÁîÐÐÖÐÊäÈëµÄ²ÎÊýµÄ¸öÊý¡£
arg[]Ö¸ÏòµÄÊý×éÖÐÖÁÉÙÓÐÒ»¸ö×Ö·ûÖ¸Õ룬¼´arg[0].Ëûͨ³£Ö¸Ïò³ÌÐòÖеĿÉÖ´ÐÐÎļþµÄÎļþÃû¡£ÔÚÓÐЩ°æ±¾µÄ±àÒëÆ÷Öл¹°üÀ¨³ÌÐòÎļþËùÔڵķ¾¶¡£
-------------------------------------------------------------------------
ÔÚµ÷ÓÃÒ»¸ö¿ÉÖ´ÐгÌÐòʱ£¬Ä³Ð©Çé¿öÏÂÐèÒªÏò³ÌÐò´«µÝ²ÎÊý¡£ÈçÎÒÃÇ¿ÉÒÔÔÚ¿ØÖÆÌ¨Öмünotepad.exe£¬
»Ø³µºó½«Ö´ÐмÇʱ¾³ÌÐò¡£Èç¹ûÎÒÃÇÏ£ÍûÔÚ´ò¿ªnotepadʱͬʱ´ò¿ªÒ»¸öÎı¾Îļþ£¬¿ÉÒÔÔÚnotepad.exe ºóÃæ¸úÉÏÎļþµÄ·¾¶ºÍÃû×Ö£¬Èçnotepad.exe example.txt£¨ÎļþÔÚµ±Ç°Â·¾¶£©¡£
ÄÇô³ÌÐòÖÐÈçºÎÄܵõ½ÕâЩÊäÈë²ÎÊýÄØ£¿Õâ¸ö¹¤×÷ÊDZàÒëÆ÷°ïÎÒÃÇÍê³ÉµÄ£¬±àÒëÆ÷½«ÊäÈë²ÎÊýµÄÐÅÏ¢
·ÅÈëmainº¯ÊýµÄ²ÎÊýÁбíÖС£
mainº¯ÊýµÄ²ÎÊýÁÐ±í±£´æÁËÊäÈë²ÎÊýµÄÐÅÏ¢£¬µÚÒ»¸ö²ÎÊýargc¼Ç¼ÁËÊäÈë²ÎÊýµÄ¸öÊý£¬µÚ¶þ¸ö²ÎÊýÊÇ×Ö·û´®Êý×éµÄ£¬×Ö·û´®Êý×éµÄÿ¸öµ¥ÔªÊÇchar*ÀàÐ͵ģ¬Ö¸ÏòÒ»¸öc·ç¸ñ×Ö·û´®¡£
ÒÔnotepad.exe example.txtΪÀý
argcÊÇ2£¬¾ÍÊÇ˵argvÊý×éÖÐÓÐÁ½¸öÓÐЧµ¥Ôª
µÚÒ»µ¥ÔªÖ¸ÏòµÄ×Ö·û´®ÊÇ\"notepad.exe\"
µÚ¶þµ¥ÔªÖ¸ÏòµÄ×Ö·û´®ÊÇ\"example.txt\"
argvÊý×éÖеĵÚÒ»¸öµ¥ÔªÖ¸ÏòµÄ×Ö·û´®×ÜÊÇ¿ÉÖ´ÐгÌÐòµÄÃû×Ö£¬ÒÔºóµÄµ¥ÔªÖ¸ÏòµÄ×Ö·û´®ÒÀ´ÎÊdzÌÐòµ÷ÓÃʱµÄ²ÎÊý¡£
Õâ¸ö¸³Öµ¹ý³ÌÊDZàÒëÆ÷Íê³ÉµÄ£¬ÎÒÃÇÖ»ÐèÒª¶Á³öÊý¾Ý¾Í¿ÉÒÔÁË¡£
-----------------------------------------------------------------------------
int main( int argc , char *argv[] , char *envp[] )
main()º¯ÊýÒ»°ãÓÃint»òÕßvoidÐεġ£ÎұȽÏϲ»¶ÓÃintÐͶ¨Òåmain¡£ÒòΪÔÚ½áÊøµÄʱºò¿ÉÒÔ·µ»Ø¸ø²Ù×÷ϵͳһ¸öÖµÒÔ±íʾִÐÐÇé¿ö¡£
int argc
Õâ¸ö¶«¶«ÓÃÀ´±íʾÄãÔÚÃüÁîÐÐÏÂÊäÈëÃüÁîµÄʱºò£¬Ò»¹²ÓжàÉÙ¸ö²ÎÊý¡£±È·½ËµÄãµÄ³ÌÐò±àÒëºó£¬¿ÉÖ´ÐÐÎļþÊÇtest.exe
D:/tc2>test
Õâ¸öʱºò£¬argcµÄÖµÊÇ1
µ«ÊÇ
D:/tc2>test.exe myarg1 myarg2 µÄ»°£¬argcµÄÖµÊÇ3¡£Ò²¾ÍÊÇÃüÁîÃû¼ÓÉÏÁ½¸ö²ÎÊý£¬Ò»¹²Èý¸ö²ÎÊý
char *argv[]
Õâ¸ö¶«¶«ÓÃÀ´È¡µÃÄãËùÊäÈëµÄ²ÎÊý
D:/tc2>test
Õâ¸öʱºò£¬argcµÄÖµÊÇ1£¬argv[0]µÄÖµÊÇ \"test\"
D:/tc2>test myarg1 myarg2
Õâ¸öʱºò£¬argcµÄÖµÊÇ3£¬argc[0]µÄÖµÊÇ\"test\"£¬argc[1]µÄÖµÊÇ\"myarg1\"£¬argc[2]µÄÖµÊÇ\"myarg2\"¡£
Õâ¸ö¶«¶«Ò»°ãÓÃÀ´Îª³ÌÐòÌṩ·Ç³£ÖØÒªµÄÐÅÏ¢£¬È磺Êý¾ÝÎļþÃû£¬µÈµÈ¡£
È磺copy a.c b.txt
Õâ¸öʱºò£¬a.cºÍb.txt¾ÍÊÇËùνµÄ¡°·Ç³£ÖØÒªµÄÐÅÏ¢¡±¡£²»Ö¸¶¨ÕâÁ½¸öÎļþ£¬Äãû·¨½øÐп½±´¡£
µ±ÄãµÄ³ÌÐòÓõ½argcºÍargvÕâÁ½¸ö²ÎÊýµÄʱºò£¬¿ÉÒÔ¼òµ¥µØÍ¨¹ýÅжÏargcµÄÖµ£¬À´¿´¿´³ÌÐòµÄ²ÎÊýÊÇ·ñ·ûºÏÒªÇó
char *envp[]
Õâ¸ö¶«¶«Ïà¶ÔÀ´ËµÓõñȽÏÉÙ¡£ËüÊÇÓÃÀ´È¡µÃϵͳµÄ»·¾³±äÁ¿µÄ¡£
È磺ÔÚDOSÏ£¬ÓÐÒ»¸öPATH±äÁ¿¡£µ±ÄãÔÚDOSÌáʾ·ûÏÂÊäÈëÒ»¸öÃüÁµ±È»£¬Õâ¸öÃüÁî²»ÊÇdirÒ»ÀàµÄÄÚ²¿ÃüÁµÄʱºò£¬DOS»áÊ×ÏÈÔÚµ±Ç°Ä¿Â¼ÏÂÕÒÕâ¸öÃüÁîµÄÖ´ÐÐÎļþ¡£Èç¹ûÕÒ²»µ½£¬Ôòµ½PATH¶¨ÒåµÄ·¾¶ÏÂÈ¥ÕÒ£¬ÕÒµ½ÔòÖ´ÐУ¬ÕÒ²»µ½·µ»ØBad command or file name
ÔÚDOSÃüÁîÌáʾ·ûϼüÈëset¿É²é¿´ÏµÍ³µÄ»·¾³±äÁ¿
ͬÑù£¬ÔÚUNIX»òÕßLINUXÏ£¬Ò²ÓÐϵͳ»·¾³±äÁ¿£¬¶øÇÒÓõñÈDOSÒª¶à¡£Èç³£ÓõÄ$PATH,$USER,$HOMEµÈµÈ¡£
envp±£´æËùÓеĻ·¾³±äÁ¿¡£Æä¸ñʽΪ£¨UNIXÏ£©
PATH=/usr/bin;/local/bin;
HOME=/home/shuui
¼´£º
»·¾³±äÁ¿Ãû=Öµ
DOSÏ´ó¸ÅÒ²Ò»Ñù¡£
»·¾³±äÁ¿Ò»°ãÓÃÀ´Îª³ÌÐòÌṩ¸½¼ÓÐÅÏ¢¡£È磬Äã×öÁËÒ»¸öÏÔʾÎı¾µÄÄÚÈݵijÌÐò¡£ÄãÏë¿ØÖÆÆäÒ»ÐÐÖÐÏÔʾµÄ×Ö·ûµÄ¸öÊý¡£Äã¿ÉÒÔ×Ô¼º¶¨ÒåÒ»¸ö»·¾³±äÁ¿£¨UNIXÏ£©
%setenv NUMBER = 10
%echo $NUMBER
10
È»ºóÄã¿ÉÒÔÔÚ³ÌÐòÖжÁÈëÕâ¸ö»·¾³±äÁ¿¡£È»ºó¸ù¾ÝÆäÖµ¾ö¶¨Ò»ÐÐÊä³ö¶àÉÙ¸ö×Ö·û¡£ÕâÑù£¬Èç¹ûÄã²»Ð޸Ļ·¾³±äÁ¿µÄ»°£¬Äãÿ´ÎÖ´ÐÐÕâ¸ö³ÌÐò£¬Ò»ÐÐÖÐÏÔʾµÄ×Ö·ûÊý¶¼ÊDz»Ò»ÑùµÄ
ÏÂÃæÊÇÒ»¸öÀý×Ó³ÌÐò D:/>argtest this is a test programe of main()\'s argments
You have inputed total 9 argments
arg0 : D:/TC/NONAME.EXE
arg1 : this
arg2 : is
arg3 : a
arg4 : test
arg5 : programe
arg6 : of
arg7 : main()\'s
arg8 : argments
The follow is envp :
TMP=C:/WINDOWS/TEMP
TEMP=C:/WINDOWS/TEMP
PROMPT=$p$g
winbootdir=C:/WINDOWS
PATH=C:/WINDOWS;C:/WINDOWS/COMMAND
COMSPEC=C:/WINDOWS/COMMAND.COM
SBPCI=C:/SBPCI
windir=C:/WINDOWS
BLASTER=A220 I7 D1 H7 P330 T6
CMDLINE=noname this is a test programe of main()\'s argments
-----------------------------------------------------------------------------------------
ÃüÁîÐвÎÊý°¡¡£argc ÊDzÎÊýµÄ¸öÊý£¬argv[]ÊDzÎÊý£¬argv[0]ÊÇÎļþÃû£¬argv[1]ÊǵÚÒ»¸ö²ÎÊý...
ÈçÄãµÃexeÎļþÃûÊÇ:myprog.exe£¬ÄÇô
myprog 12 22 32
Ôòargv[0]=\"myprog\"£¬argv[1]=\"12\"£¬argv[2]=\"22\"...
exit()ÊdzÌÐòÍ˳öʱµÄ·µ»ØÂë¡£¿ÉÒÔÓÃÆäËû³ÌÐò½ÓÊÕ£¬ÅжÏÊÇ·ñÕý³£Í˳ö¡£Èçexit(-1)ÈÏΪÒì³£Í˳ö¡£
[ ·¢×ÔÊÖ»ú°æ http://muchong.com/3g ] |
|