Ò׽ؽØͼÈí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

LinuxϵĹܵÀ±à³Ì¼¼Êõ dupº¯ÊýºÍdup2º¯Êý

dupºÍdup2Ò²ÊÇÁ½¸ö·Ç³£ÓÐÓõĵ÷Óã¬ËüÃǵÄ×÷Óö¼ÊÇÓÃÀ´¸´ÖÆÒ»¸öÎļþµÄÃèÊö·û¡£ËüÃǾ­³£ÓÃÀ´Öض¨Ïò½ø³ÌµÄstdin¡¢stdoutºÍstderr¡£ÕâÁ½¸öº¯ÊýµÄ Ô­ÐÎÈçÏ£º
#include <unistd.h>
int dup( int oldfd );
int dup2( int oldfd, int targetfd )
    ÀûÓú¯Êýdup£¬ÎÒÃÇ¿ÉÒÔ¸´ÖÆÒ»¸öÃèÊö·û¡£´«¸ø¸Ãº¯ÊýÒ»¸ö¼ÈÓеÄÃèÊö·û£¬Ëü¾Í»á·µ»ØÒ»¸öеÄÃèÊö·û£¬Õâ¸öеÄÃèÊö·ûÊÇ´«¸øËüµÄÃèÊö·ûµÄ¿½±´¡£ÕâÒâζ×Å£¬ÕâÁ½¸öÃèÊö·û¹²Ïíͬһ¸öÊý¾Ý½á¹¹
¡£ÀýÈ磬Èç¹ûÎÒÃǶÔÒ»¸öÎļþÃèÊö·ûÖ´ÐÐlseek²Ù×÷£¬µÃµ½µÄµÚÒ»¸öÎļþµÄλÖú͵ڶþ¸öÊÇÒ»ÑùµÄ¡£ÏÂÃæÊÇÓÃÀ´ËµÃ÷dupº¯ÊýʹÓ÷½·¨µÄ´úÂëƬ¶Î£º
int fd1, fd2;
...
fd2 = dup( fd1 );
    ÐèҪעÒâµÄÊÇ£¬ÎÒÃÇ¿ÉÒÔÔÚµ÷ÓÃfork֮ǰ½¨Á¢Ò»¸öÃèÊö·û£¬ÕâÓëµ÷ÓÃdup½¨Á¢ÃèÊö·ûµÄЧ¹ûÊÇÒ»ÑùµÄ£¬×Ó½ø³ÌҲͬÑù»áÊÕµ½Ò»¸ö¸´ÖƳöÀ´µÄÃèÊö·û¡£
   
dup2º¯Êý¸údupº¯ÊýÏàËÆ£¬µ«dup2º¯ÊýÔÊÐíµ÷ÓÃÕ߹涨һ¸öÓÐЧÃèÊö·ûºÍÄ¿±êÃèÊö·ûµÄid¡£dup2º¯Êý³É¹¦·µ»Øʱ£¬Ä¿±êÃèÊö·û£¨dup2º¯ÊýµÄµÚ
¶þ¸ö²ÎÊý£©½«±ä³ÉÔ´ÃèÊö·û£¨dup2º¯ÊýµÄµÚÒ»¸ö²ÎÊý£©µÄ¸´ÖÆÆ·£¬»»¾ä»°Ëµ£¬Á½¸öÎļþÃèÊö·ûÏÖÔÚ¶¼Ö¸Ïòͬһ¸öÎļþ£¬²¢ÇÒÊǺ¯ÊýµÚÒ»¸ö²ÎÊýÖ¸ÏòµÄÎļþ¡£ÏÂÃæ
ÎÒÃÇÓÃÒ»¶Î´úÂë¼ÓÒÔ˵Ã÷£º
int oldfd;
oldfd = open("app_log", (O_RDWR | O_CREATE), 0644 );
dup2( oldfd, 1 );
close( oldfd );
   
±¾ÀýÖУ¬ÎÒÃÇ´ò¿ªÁËÒ»¸öÐÂÎļþ£¬³ÆΪ“app_log”£¬²¢ÊÕµ½Ò»¸öÎļþÃèÊö·û£¬¸ÃÃèÊö·û½Ð×öfd1¡£ÎÒÃǵ÷ÓÃdup2º¯Êý£¬²ÎÊýΪoldfdºÍ1£¬Õâ»á
µ¼ÖÂÓÃÎÒÃÇдò¿ªµÄÎļþÃèÊö·ûÌæ»»µôÓÉ1´ú±íµÄÎļþÃèÊö·û£¨¼´stdout£¬ÒòΪ±ê×¼Êä³öÎļþµÄidΪ1£©¡£ÈκÎдµ½stdoutµÄ¶«Î÷£¬ÏÖÔÚ¶¼½«¸ÄΪд
ÈëÃûΪ“app_log”µÄÎļþÖС£ÐèҪעÒâµÄÊÇ£¬dup2º¯ÊýÔÚ¸´ÖÆÁËoldfdÖ®ºó£¬»áÁ¢¼´½«Æä¹Ø±Õ£¬µ«²»»á¹Øµôнü´ò¿ªµÄÎļþÃèÊö·û£¬ÒòΪÎļþÃèÊö
·û1ÏÖÔÚÒ²Ö¸ÏòËü¡£ 
    ÏÂÃæÎÒÃǽéÉÜÒ»¸ö¸ü¼ÓÉîÈëµÄʾÀý´úÂë¡£»ØÒäһϱ¾ÎÄÇ°Ãæ½²µÄÃüÁîÐйܵÀ£¬ÔÚÄÇÀÎÒÃǽ«ls –1ÃüÁîµÄ±ê×¼Êä³ö×÷Ϊ±ê×¼ÊäÈëÁ¬½Óµ½wc –lÃüÁî¡£½ÓÏÂÀ´£¬ÎÒÃǾÍÓÃÒ»¸öC³ÌÐòÀ´¼ÓÒÔ˵Ã÷Õâ¸ö¹ý³ÌµÄʵÏÖ¡£´úÂëÈçÏÂÃæµÄʾÀý´úÂë3Ëùʾ¡£ 
   
ÔÚʾÀý´úÂë3ÖУ¬Ê×ÏÈÔÚµÚ9ÐдúÂëÖн¨Á¢Ò»¸ö¹ÜµÀ£¬È»ºó½«Ó¦ÓóÌÐò·Ö³ÉÁ½¸ö½ø³Ì£ºÒ»¸ö×Ó½


Ïà¹ØÎĵµ£º

Linux·þÎñÆ÷ÈÕÖ¾¹ÜÀíÏê½â

ÈÕÖ¾¶ÔÓÚ°²È«À´Ëµ£¬·Ç³£ÖØÒª£¬Ëû¼Ç¼ÁËϵͳÿÌì·¢ÉúµÄ¸÷ÖÖ¸÷ÑùµÄÊÂÇ飬Äã¿ÉÒÔͨ¹ýËûÀ´¼ì²é´íÎó·¢ÉúµÄÔ­Òò£¬»òÕßÊܵ½¹¥»÷ʱ¹¥»÷ÕßÁôϵĺۼ£¡£ÈÕÖ¾Ö÷ÒªµÄ¹¦ÄÜÓУºÉó¼ÆºÍ¼à²â¡£Ëû»¹¿ÉÒÔʵʱµÄ¼à²âϵͳ״̬£¬¼à²âºÍ×·×ÙÇÖÈëÕߵȵȡ£
¡¡¡¡ÔÚLinuxϵͳÖУ¬ÓÐÈý¸öÖ÷ÒªµÄÈÕÖ¾×Óϵͳ£º
¡¡¡¡Á¬½Óʱ¼äÈÕÖ¾--Óɶà¸ö³ÌÐòÖ´ÐУ¬°Ñ¼ ......

ѧϰlinuxµÄºÃÊé¼®

http://docs.linuxtone.org/shell/
¸ß¼¶Bash½Å±¾±à³ÌÖ¸ÄÏ   £ºÒ»±¾ÉîÈëѧϰshell½Å±¾ÒÕÊõµÄÊé¼® 
Õâ±¾Êé¼Ù¶¨ÄãûÓÐÈκιØÓڽű¾»òÒ»°ã³ÌÐòµÄ±à³Ì֪ʶ, µ«ÊÇÈç¹ûÄã¾ß±¸Ïà¹ØµÄ֪ʶ, ÄÇôÄ㽫ºÜÈÝÒ×¾ÍÄܹ»´ïµ½Öи߼¶µÄˮƽ. . . ËùÓÐÕâЩֻÊÇUNIX®ºÆå«ÖªÊ¶µÄһС²¿·Ö. Äã¿ÉÒ԰ѱ¾Êé×÷Ϊ½Ì²Ä, ×ÔѧÊÖ²á, ......

linux 0.11 ÄÚºËѧϰ floppy.c£¬Çý¶¯ÄãµÄÈíÅÌ


/*
 *  linux/kernel/floppy.c
 *
 *  (C) 1991  Linus Torvalds
 */
/*
 * 02.12.91 - Changed to static variables to indicate need for reset
 * and recalibrate. This makes some things easier (output_byte reset
 * checking etc), and means less i ......

linuxÏÂoracleÆô¶¯¹ý³Ì

ÔÚlinuxÏÂÆô¶¯oracle ºÍÔÚwindowsÊÇÓвî±ðµÄ£¬¶ÔÓÚÒ»°ãÔÚwindowsϲÙ×÷Ï°¹ßÈËÓкܶ಻ÊÊÓ¦£¬ËùÒÔÎÒÌرðдÕâÑùÎÄÕ£¬ÒÔ·½±ãÐÂÊÖ½øÐвÙ×÷£¬ÏÂÃæ¾ÍÒ»²½Ò»²½½²½âÆô¶¯¹ý³Ì¡£
1.ͨ¹ýÖÕ¶ËÁ¬½Óµ½linux·þÎñÆ÷,µ±È»ÕâÑùµÄÈí¼þºÜ¶àÀýÈçputty,SecureCRT,²¢ÒÔoracleÓû§½øÐеǼ£¬·ñÔòÆô¶¯oracleʱ»á´íµÄ£¬Ã»ÓÐȨÏÞÆô¶¯.(Ò²¿ÉÓû§root µ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØͼ | ¸ÓICP±¸09004571ºÅ