ÉèΪÊ×Ò³ ¼ÓÈëÊÕ²Ø

TOP

Linux Ó¦ÓóÌÐòÀïÃæµ÷ÓÃShell
2014-11-24 08:20:33 À´Ô´: ×÷Õß: ¡¾´ó ÖРС¡¿ ä¯ÀÀ:0´Î
Tags£ºLinux Ó¦ÓóÌÐò ÀïÃæ µ÷Óà Shell

ÔÚLinuxµÄÓ¦ÓóÌÐòÀïÃæµ÷ÓÃÎÒµÄshell(ÕâÍæÒ⹦ÄÜʵÔÚ̫ǿ´ó)µÄ°ì·¨ÓкܶàÖÖÒ»°ãÀ´ËµÓÐfork()¡¢exec*()¡¢pipe¡¢system£¨£©ÆäÖÐÓÖÒÔsystem£¨£©


µ÷ÓúÜÉÙ·½±ã£¬ÏÖÔÚ¼ÓÒÔ˵Ã÷¡£


//------------------------------------------------------------------------------------------------------------------------------------------------------


exec*


·½·¨¶þ£º exec( )º¯Êý×å(ת)
ÏÂÃæÎÒÃÇÀ´¿´¿´Ò»¸ö½ø³ÌÈçºÎÀ´Æô¶¯ÁíÒ»¸ö³ÌÐòµÄÖ´ÐС£ÔÚLinuxÖÐҪʹÓÃexecº¯Êý×塣ϵͳµ÷ÓÃexecve£¨£©¶Ôµ±Ç°½ø³Ì½øÐÐÌæ»»£¬Ìæ»»ÕßΪһ¸öÖ¸¶¨µÄ³ÌÐò£¬Æä²ÎÊý°üÀ¨ÎļþÃû£¨filename£©¡¢²ÎÊýÁÐ±í£¨argv£©ÒÔ¼°»·¾³±äÁ¿£¨envp£©¡£execº¯Êý×嵱Ȼ²»Ö¹Ò»¸ö£¬µ«ËüÃÇ´óÖÂÏàͬ£¬ÔÚ LinuxÖУ¬ËüÃÇ·Ö±ðÊÇ£ºexecl£¬execlp£¬execle£¬execv£¬execveºÍexecvp£¬ÏÂÃæÎÒÖ»ÒÔexeclpΪÀý£¬ÆäËüº¯Êý¾¿¾¹ÓëexeclpÓкÎÇø±ð£¬Çëͨ¹ýmanexecÃüÁîÀ´Á˽âËüÃǵľßÌåÇé¿ö¡£


Ò»¸ö½ø³ÌÒ»µ©µ÷ÓÃexecÀຯÊý£¬Ëü±¾Éí¾Í"ËÀÍö"ÁË£¬ÏµÍ³°Ñ´úÂë¶ÎÌæ»»³ÉеijÌÐòµÄ´úÂ룬·ÏÆúÔ­ÓеÄÊý¾Ý¶ÎºÍ¶ÑÕ»¶Î£¬²¢ÎªÐ³ÌÐò·ÖÅäеÄÊý¾Ý¶ÎÓë¶ÑÕ»¶Î£¬Î¨Ò»ÁôÏµģ¬¾ÍÊǽø³ÌºÅ£¬Ò²¾ÍÊÇ˵£¬¶Ôϵͳ¶øÑÔ£¬»¹ÊÇͬһ¸ö½ø³Ì£¬²»¹ýÒѾ­ÊÇÁíÒ»¸ö³ÌÐòÁË¡££¨²»¹ýexecÀຯÊýÖÐÓеϹÔÊÐí¼Ì³Ð»·¾³±äÁ¿Ö®ÀàµÄÐÅÏ¢¡££©


ÄÇôÈç¹ûÎҵijÌÐòÏëÆô¶¯ÁíÒ»³ÌÐòµÄÖ´Ðе«×Ô¼ºÈÔÏë¼ÌÐøÔËÐеϰ£¬Ôõô°ìÄØ£¿ÄǾÍÊǽáºÏforkÓëexecµÄʹÓᣠÏÂÃæÒ»¶Î´úÂëÏÔʾÈçºÎÆô¶¯ÔËÐÐÆäËü³ÌÐò£º


´Ë³ÌÐò´ÓÖն˶ÁÈëÃüÁî²¢Ö´ÐÐÖ®£¬Ö´ÐÐÍê³Éºó£¬¸¸½ø³Ì¼ÌÐøµÈ´ý´ÓÖն˶ÁÈëÃüÁî¡£ÊìϤDOSºÍWINDOWSϵͳµ÷ÓõÄÅóÓÑÒ»¶¨ÖªµÀ


DOS/WINDOWS Ò²ÓÐexecÀຯÊý£¬ÆäʹÓ÷½·¨ÊÇÀàËÆµÄ£¬µ«DOS/WINDOWS»¹ÓÐspawnÀຯÊý£¬ÒòΪDOSÊǵ¥ÈÎÎñµÄϵͳ£¬ËüÖ»Äܽ«"¸¸½ø³Ì"פÁôÔÚ»úÆ÷ÄÚÔÙÖ´ÐÐ"×Ó½ø³Ì"£¬Õâ¾ÍÊÇspawnÀàµÄº¯Êý¡£WIN32ÒѾ­ÊǶàÈÎÎñµÄϵͳÁË£¬µ«»¹±£ÁôÁËspawnÀຯÊý£¬WIN32ÖÐʵÏÖspawnº¯ÊýµÄ·½·¨Í¬Ç°Êö UNIXÖеķ½·¨²î²»¶à£¬¿ªÉè×Ó½ø³Ìºó¸¸½ø³ÌµÈ´ý×Ó½ø³Ì½áÊøºó²Å¼ÌÐøÔËÐС£UNIXÔÚÆäÒ»¿ªÊ¼¾ÍÊǶàÈÎÎñµÄϵͳ£¬ËùÒÔ´ÓºËÐĽǶÈÉϽ²²»ÐèÒªspawnÀຯÊý¡£


/------------------------------------------------------------------------------------------------------------------------------------------------------


system ÊÇÔÚµ¥¶ÀµÄ½ø³ÌÖÐÖ´ÐÐÃüÁÍêÁË»¹»á»Øµ½ÄãµÄ³ÌÐòÖС£
¶øexecº¯ÊýÊÇÖ±½ÓÔÚÄãµÄ½ø³ÌÖÐÖ´ÐÐеijÌÐò£¬ÐµijÌÐò»á°ÑÄãµÄ³ÌÐò¸²¸Ç£¬³ý·Çµ÷Óóö´í£¬·ñÔòÄãÔÙÒ²»Ø²»µ½execºóÃæµÄ´úÂ룬¾ÍÊÇ˵ÄãµÄ³ÌÐò¾Í±ä³ÉÁËexecµ÷ÓõÄÄǸö³ÌÐòÁË.


/------------------------------------------------------------------------------------------------------------------------------------------------------


/------------------------------------------------------------------------------------------------------------------------------------------------------


³ÌÐòÀïµ÷ÓÃÁË2 ¸öLinux ³£ÓõÄϵͳÃüÁechoºÍenv¡£echo»á°ÑºóÃæ¸úµÄÃüÁîÐвÎÊýÔ­·â²»¶¯µÄ´òÓ¡³öÀ´£¬envÓÃÀ´ÁгöËùÓл·¾³±äÁ¿¡£
ÓÉÓÚ¸÷¸ö×Ó½ø³ÌÖ´ÐеÄ˳ÐòÎÞ·¨¿ØÖÆ£¬ËùÒÔÓпÉÄܳöÏÖÒ»¸ö±È½Ï»ìÂÒµÄÊä³ö¨C¸÷×Ó½ø³Ì´òÓ¡µÄ½á¹û½»ÔÓÔÚÒ»Æð£¬¶ø²»ÊÇÑϸñ°´ÕÕ³ÌÐòÖÐÁгöµÄ´ÎÐò¡£
×î³£¼ûµÄ´íÎó£º
´ó¼ÒÔÚÆ½Ê±µÄ±à³ÌÖУ¬Èç¹ûÓõ½ÁËexec º¯Êý×壬һ¶¨¼ÇµÃÒª¼Ó´íÎóÅжÏÓï¾ä¡£ÒòΪÓëÆäËûϵͳµ÷ÓÃ±ÈÆðÀ´£¬execºÜÈÝÒ×ÊÜÉË£¬±»Ö´ÐÐÎļþµÄλÖã¬È¨Ï޵ȺܶàÒòËØ¶¼Äܵ¼Ö¸õ÷ÓõÄʧ°Ü¡£
×î³£¼ûµÄ´íÎóÊÇ£º
1£©ÕÒ²»µ½Îļþ»ò·¾¶£¬´Ëʱerrno ±»ÉèÖÃΪENOENT£»
2£©Êý×éargvºÍenvpÍü¼ÇÓÃNULL½áÊø£¬´Ëʱerrno±»ÉèÖÃΪEFAULT£»
3£©Ã»ÓжÔÒªÖ´ÐÐÎļþµÄÔËÐÐȨÏÞ£¬´Ëʱerrno±»ÉèÖÃΪEACCES¡£


¡¾´ó ÖРС¡¿¡¾´òÓ¡¡¿ ¡¾·±Ìå¡¿¡¾Í¶¸å¡¿¡¾Êղء¿ ¡¾ÍƼö¡¿¡¾¾Ù±¨¡¿¡¾ÆÀÂÛ¡¿ ¡¾¹Ø±Õ¡¿ ¡¾·µ»Ø¶¥²¿¡¿
·ÖÏíµ½: 
ÉÏһƪ£ºÇ¶ÈëʽLinux½ø³ÌºÍÏ̱߳à³ÌСÊö ÏÂһƪ£ºChromeÔ´ÂëÆÊÎö

ÆÀÂÛ

ÕÊ¡¡¡¡ºÅ: ÃÜÂë: (ÐÂÓû§×¢²á)
Ñé Ö¤ Âë:
±í¡¡¡¡Çé:
ÄÚ¡¡¡¡ÈÝ:

¡¤Spring Boot Java£º (2025-12-26 16:20:19)
¡¤Spring Boot¤ÇHello (2025-12-26 16:20:15)
¡¤Spring ¤Î»ù±¾¤«¤éŒ (2025-12-26 16:20:12)
¡¤C++Ä£°å (template) (2025-12-26 15:49:49)
¡¤C ÓïÑÔÖÐÄ£°åµÄ¼¸ÖÖ (2025-12-26 15:49:47)