linux pipe() ÍÁÎÊ
ÍøÉÏ¿´ÁËһϣ¬´ó²¿·ÖµÄpipe()¶¼ÊǺÍfork£¨£©Í¬Ê±³öÏÖµÄ
ÏëÎÊÎʸßÊÖ£¬ÓÐûÓÐʲô·½·¨¿ÉÒÔ²»ÓÃpipe()+fork()
¶øÓÃpipe() read() write() dup2() system ()ʵÏÖpopen() µÄ¹¦ÄÜ
Èç¹ûÓиßÊÖÄܸ½ÉÏ´úÂë½²½âµÄ»°~~»á¸ø¼Ó·Ö~~~
×øµÈ±¯¾ç¡£
¸ÒÎÊÄãÊÇÏëʵÏÖʲô¹¦ÄÜÄØ£¿
ÊǹØÓÚIPCµÄ¹¦ÄÜÂð£¿
Èç¹ûÊǵϰ£¬Ã²ËÆÃ»·¨ÊµÏÖ£¬ÎҼǵá¶unixÍøÂç±à³Ì¡·Ìáµ½¹ý£¬½ø³Ì¼äͨѶÈç¹ûÏëʹÓÃpipe½øÐУ¬Ôò±ØÐëÊǸ¸×Ó½ø³Ì
system Ö®ºó¸¸½ø³ÌÒѾ¿ªÊ¼ËÀµÈÁË£¬ÔõôͨÐÅ£¿
system = fork + exec + wait
pipe() read() write() dup2() system ()ʵÏÖpopen()
×öÃΰÉ
±ÈÈç˵£ºÎÒÏëÓÃsystem()µ÷ÓÃÒ»¸öshell ÃüÁî£à£à£à±ÈÈç˵cal system("cal") ÎÒÏëÏÈÓÃÒ»¸ö int pdfs[2] µ±¹ÜµÀ£¬È»ºóµ÷ÓÃdup2£¨pdfs[1],1)ÕâÑù¾Í¿ÉÒÔ½«system("cal")Êä³öµÄ¹ÜµÀµÄдÈë¶Ë£¬È»ºóÔÙÔÚÁíÍâÒ»¸öº¯ÊýÖÐͬÑùµ÷Óà readº¯ÊýÀ´¶Ápdfs[0]ÖеÄÄÚÈÝ£¬È»ºó½øÐд¦Àí£à£à£àµ«ÊÇÿ´Î³ÌÐò×ßµ½dup2(pdfs[1],1)µÄʱºò¾Í±¨¸æËµÊÇbroken pipe````ÎҾͺܲ»Ã÷°×£à£à£à£à¸Ð¾õÓ¦¸ÃûÎÊÌâ°¢£à£à£à£à
Ïà¹ØÎÊ´ð£º
LinuxÐÂÊÖ£¬Çë´ó¸ç´ó½ã²»Òª¼ûЦ¡£
ÎÒÓÃrootÓû§µÇ¼µ½Linuxϵͳ¡£ÔÚ¸ùĿ¼ÏÂÃæ½¨ÁËĿ¼dir1£¬ºóÓÃÃüÁîcd /dir1½øÈëµ½dir1Ŀ¼Ï£¬È»ºóÔÙÓÃmkdir dir2½¨Á¢ÁËĿ¼dir2 £¬ÔÙºóÀ´ÓÃÃüÁîcd /dir2ÊÇ£¬ÌáʾΪ£º-bush ......
ÔÏȵÄGCC°æ±¾Îª4.1.2,ÎÒÖØÐ±àÒë°²×°ÁËGCC4.3.2£¬µ«ÊDZàÒëÍê³ÌÐòÔËÐгÌÐòʱ»á³öÏÖversion `GLIBCXX_3.4.9' not found Õâ¸öÎÊÌ⣬ÎÒ²»Ì«Ã÷°×Ôõô»ØÊ£¬Çë¸÷λ´óϺָµãһϡ£
ÊÖ¶¯ÔÙ×°Ò»´Îglibc*_3.4.9
ÕâÊÇÎ ......
ÎÒµÄÒâ˼ÊÇ£º
ÔÚ²»¸ü¸ÄÔÀ´µÄÎļþ¼ÐËùÓÐÈË£¬ËùÓÐ×飬ÆäËûÈËȨÏÞµÄÇé¿öÏ£¬µ¥¶À¸øÎļþ¼ÐÊÚȨijÓû§
±ÈÈç/var/www Õâ¸öÎļþ¼Ð£¬ÔÀ´ÏµÍ³ÓÐĬÈϵÄÊôÖ÷ºÍÊô×飬ÎÒÏÖÔÚ²»ÏëÈ¥¸ÄËüÔÀ´µÄÉ趨£¬Ö»ÊÇÏë¸øËüÔö¼ ......
linux Ͻø³Ì´´½¨¡£
ʹÓÃvfork() º¯Êý´´½¨ÁË×Ó½ø³Ìºó£¬×Ó½ø³ÌÏÈÐÐÖ´ÐУ¬ÔÚ×Ó½ø³Ìµ÷ÓÃexit»òexec֮ǰ¸¸½ø³Ì´¦ÓÚʲô״̬£¿£¿
²»ÖªµÀ£»Ê×ÏÈδ±ØÊÇ×Ó½ø³ÌÏÈÖ´ÐУ»µÚ2¸¸½ø³ÌÒ²´¦ÓÚÖ´ÐÐ״̬£»ÖÁÓÚ¸¸½ø³Ìµ½µ××öʲô£»¿´´ ......
Ó¦ÓÃϵͳÊǰ²×°ÔÚ /opt Ŀ¼Ï£¬/opt Ŀ¼ÊÇÊôÓÚ¸ùĿ¼ / ϵġ£ÁíÍâÒ»¸öÎļþϵͳµÄ¹ÒÔØµãÊÇÔÚ/aaaĿ¼Ï£¬¿É·ñ½«/optĿ¼ÏµÄËùÓÐÎļþcopyµ½/aaaĿ¼Ï£¬umount ÔÚ/aaaĿ¼ÏµĹÒÔØµã£¬½«/aaa¸ÄÃû/optĿ¼£¬ÔÙ½«ÔÀ ......