ºìÁªLinuxÃÅ»§
Linux°ïÖú

½ø³ÌÇл»µÄÎÊÌâ

·¢²¼Ê±¼ä:2010-11-09 13:54:25À´Ô´:ºìÁª×÷Õß:wucongdonglai
×î½ü¿´¡¶linux³ÌÐòÉè¼Æ¡·Ò»Ê飬±ÈÈç˵ÔÚ½ø³ÌaÖУ¬Í¨¹ýfreopen£¨£©º¯Êý£¬´ò¿ªÁËfile.txt£¬²¢Ïà¹ØÁªÒ»¸öÎļþÁ÷£¬ÔÚ´ËÖ®ºóÓÖµ÷ÓÃexecl£¨£©º¯Êý£¬°Ñµ±Ç°½ø³ÌÇл»µ½½ø³Ì2£¬Äǽø³Ì2¶Ô֮ǰµÄÎļþÁ÷µÄ¹ØÏµÊÇÔõôÑùµÄ£¿ÊÇÊôÓÚ½ø³Ì1»¹Êǽø³Ì2?Èç¹ûÒª¹Ø±ÕÎļþÁ÷£¬¸ÃÔÚÄĹرգ¬Òª¶ÁÈ¡ÎļþÁ÷µÄÊý¾Ý£¬ÊDz»ÊDz»ÓÃÖ¸Ã÷ÎļþÁ÷£¿
ÁíÍâ½ø³Ì1»¹ÓÐûÓÐÖØÐ¼ÌÐøÖ´ÐеĻú»á£¿ÎÒÔÚ½ø³Ì2ÀïÓÃexecl£¨£©º¯ÊýÖØÐÂÇе½½ø³Ì1£¬·¢ÏÖËüÊÇ´ÓÍ·¿ªÊ¼ÔËÐеġ£
ÎÄÕÂÆÀÂÛ

¹²ÓÐ 3 ÌõÆÀÂÛ

  1. deepwhite ÓÚ 2010-11-10 21:33:36·¢±í:

    (o):tx

  2. wucongdonglai ÓÚ 2010-11-10 11:20:44·¢±í:

    2# deepwhite
    »¹ÕæÈçwhiteÐÖËù˵µÄ£¬¸¸½ø³ÌºÍ×Ó½ø³ÌID¶¼ÏàͬµÄ£¬ºÇºÇ£¬ºóÃæµÄÎÒҲʵÑéÁË£¬whiteÐָ߼û

  3. deepwhite ÓÚ 2010-11-09 19:13:27·¢±í:

    ÒýÓÃ:
    ½ø³Ì2¶Ô֮ǰµÄÎļþÁ÷µÄ¹ØÏµÊÇÔõôÑùµÄ£¿ÊÇÊôÓÚ½ø³Ì1»¹Êǽø³Ì2?

    execv Õâ¸ö¼Ò×åµÄϵͳµ÷Ó㬻áÓòÎÊýÖÐÖ¸¶¨µÄ¿ÉÖ´ÐÐÎļþµÄ¾µÏñÀ´´úÌæÕýÔÚÖ´ÐеÄÎļþ£¬Ò²¾ÍÊÇ˵£¬Ö»ÓÐÒ»¸ö½ø³Ì£¬Õâ¸ö½ø³ÌÏÈÖ´ÐгÌÐòA£¬ºóÖ´ÐгÌÐòB£¬Ö´Ðйý³ÌÖнø³ÌµÄ PID ºÍ PPID ʼÖÕÊÇÒ»ÑùµÄ£¬Ò²¾ÍÊÇ˵£¬²»´æÔÚÄã˵µÄ ¡° ½ø³Ì 1 ºÍ½ø³Ì 2¡±£¬Ö»ÓÐÒ»¸ö½ø³Ì¡£

    Äã¿ÉÒÔд¸öС³ÌÐòÖ¤Ã÷ÕâÒ»µã¡£

    ÒýÓÃ:

    Èç¹ûÒª¹Ø±ÕÎļþÁ÷£¬¸ÃÔÚÄĹرգ¬Òª¶ÁÈ¡ÎļþÁ÷µÄÊý¾Ý£¬ÊDz»ÊDz»ÓÃÖ¸Ã÷ÎļþÁ÷£¿

    ÓÉÓÚÁ½¸ö¾µÏñ(¼ÙÉèΪ A ºÍ B)ʹÓõÄÊÇͬһ¸ö½ø³Ì£¬Ç°Ò»¸ö¾µÏñ£¨A£©´ò¿ªµÄÎļþÁ÷£¨ÔÚ Linux ÖпÉÒÔÓÃfdÀ´±íʾ£©ÈÔÈ»´æÔÚÄÚºËÖУ¬Äã¿ÉÒÔͨ¹ýÔÚÖ´ÐÐexecl() µÄʱºò½« fd ×÷Ϊ²ÎÊý´«¸ø B £¬È»ºóÔÚ B ÖдӲÎÊýÖлñÈ¡ fd £¬ÔÙ¶Ô fd ½øÐвÙ×÷¡£

    Ç°ÃæÄã˵ÁË¡±ÎļþÁ÷¡° £¬ Õâ¸ö¶«Î÷Ó¦¸ÃÊDZê×¼ C ÖÐÓõ½µÄ£¬ÎļþÁ÷ºÍ fd ²¢²»µÈͬ£¬Ö®¼äÐèÒª×ö¸öת»»£¬µ«ÎÒû½Ó´¥¹ýÕâÖÖת»»£¬Ò»°ãÇé¿öÏÂÎÒÖ±½ÓÓà Linux ϵͳµ÷ÓÃÖÐµÄ open À´»ñÈ¡ÎļþÃèÊö·û£¬¶ø²»Óà fopen() À´»ñÈ¡ FILE *£¬ ¾¡¹ÜºóÕߵĿÉÒÆÖ²ÐÔ¸üºÃһЩ¡£

    ÒýÓÃ:

    ÁíÍâ½ø³Ì1»¹ÓÐûÓÐÖØÐ¼ÌÐøÖ´ÐеĻú»á£¿ÎÒÔÚ½ø³Ì2ÀïÓÃexecl£¨£©º¯ÊýÖØÐÂÇе½½ø³Ì1£¬·¢ÏÖËüÊÇ´ÓÍ·¿ªÊ¼ÔËÐеġ£


    ÎÒ¾õµÃÊÇûÓÐÁË¡£