Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
$B>pJs3XN`<g@l96<B83!?%7%9%F%`%W%m%0%i%`(B (2004$BG/(B)
[go: Go Back, main page]

$B>pJs3XN`

$B:G=*99?7(B: 2004/12/17 14:40:00

$B$3$N%Z!<%8$O!"(B$BC^GHBg3X(B $B>pJs3XN`(B $B#3G/@8$rBP>]$H$7$?(B $B>pJs3XN`$B$N!"(B $B%F!<%^(B K-3 ($B%7%9%F%`!&%W%m%0%i%`(B) $B$N$?$a$N%Z!<%8(B($B?7>kC4EvItJ,(B)$B$G$9!#$3$N

  • $B%7%'%k!"$^$?$O!"%G%#%l%/%H%j!&%V%i%&%6!J$I$A$i$+#1$DA*Br!K(B
  • MiniFtp $B$3$N%Z!<%8$G$O!"%7%'%k!"$^$?$O!"%G%#%l%/%H%j!&%V%i%&%6$K4XO"$7$?DI2C>p(B $BJs$r7G:\$7$^$9!#(B

    $B

  • $B35MW(B
  • $B>\:Y(B

    $B"#O"Mm;v9`(B

    $BI,$:EE;R%a!<%k$rFI$s$G2<$5$$!#(B

    $B"!@bL@2q(B

    2003$BG/EY(B2$B3X4|$O!":G=i$N;~4V!"(B9$B7n(B1$BF|?eMKF|(B 12:15 $B$+$i!"@bL@$r$d$j$^$9!#(B 3C113$BC

    $B"!Cf4VJs9p(B

    $B$3$N2]Bj$G$O!"2?2s$+Cf4VJs9p$r=P$7$F$b$i$$$^$9!#(B

    $B#2#0#0#4G/#23X4|$G$O!"e$2$F;XDj$5$l$?J}K!$GDs=P(B $B$7$F$/$@$5$$!#(B

    $B#97n#8F|?eMKF|(B 17:00:00
    $B2]Bj#1!]#1!"$^$?$O!"2]Bj#2!]#1$r9T$$!"EE;R%a!<%k$G?7>k$^$GDs=P$9(B $B$k!#EE;R%a!<%k?^$K$D$$$F$O!"IU$1$J$/$F$b$h$$!#!J:G=*E*$J%l%]!<%H$K$OI,(B $B$:?^$r$D$1$k!#!K(B
    $B#1#07n#1F|6bMKF|(B 17:00:00
    $B;D$j2]Bj$r9T$$!"2]Bj#1!]#1!"$^$?$O!"2]Bj#2!]#1$b4^$a$FA4$F;f$K0u(B $B:~$7$F=jDj$N%l%]!<%HDs=PH"$KDs=P$9$k!JEE;R%a!<%k$OIT2D!K!#(B
            July                  August                September      
    Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa 
                 1  2  3    1  2  3  4  5  6  7             1  2  3  4
     4  5  6  7  8  9 10    8  9 10 11 12 13 14    5  6  7  8  9 10 11
    11 12 13 14 15 16 17   15 16 17 18 19 20 21   12 13 14 15 16 17 18
    18 19 20 21 22 23 24   22 23 24 25 26 27 28   19 20 21 22 23 24 25
    25 26 27 28 29 30 31   29 30 31               26 27 28 29 30
    
           October               November               December       
    Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa 
                    1  2       1  2  3  4  5  6             1  2  3  4
     3  4  5  6  7  8  9    7  8  9 10 11 12 13    5  6  7  8  9 10 11
    10 11 12 13 14 15 16   14 15 16 17 18 19 20   12 13 14 15 16 17 18
    17 18 19 20 21 22 23   21 22 23 24 25 26 27   19 20 21 22 23 24 25
    24 25 26 27 28 29 30   28 29 30               26 27 28 29 30 31
    

    $B"#Cm0U(B

    $B$3$N$B4XO"$7$?9V5A(B$B$r

    $B"#%7%'%kMQ9=J82r@O4o(B

    $B"#%7%'%kMQ9=J82r@O4o(B

    $BMxMQ$C$F2r@O$7!"2r@OLZ$r=PNO$9$k$h(B $B$&$J%W%m%0%i%`$rMQ0U$7$^$7$?!#$3$N

    $B%W%m%0%i%`$O!"l=j$K$"$j$^$9!#(B

    ~yas/slab-syspro/shell/

    cp -rp $B$J$I$G%3%T!<$7$F;H$C$F$/$@$5$$!#I,MW$JItJ,$O!"

    command.c
    command$B9=B$BNA`:n(B
    command.h
    command$B9=B$BN%G!<%?9=B$(B
    lexer.c
    $B;z6g2r@O4o(B
    lexer.h
    $B;z6g2r@O4o%G!<%?9=B$(B
    parser.c
    $B9=J82r@O4o(B
    parser.h
    $B9=J82r@O4o%G!<%?9=B$(B
    executer.c
    $B%W%m%0%i%`$Nexecuter.h
    $B$=$N%$%s%?%U%'!<%9(B
    mysh.c
    $B%7%'%k$N(Bmain$B%W%m%0%i%`(B mysh.c $B$G$O!"#19TFI$_9~$_!"(Bparse() $B$rFI$s$G2r@O$7$F$$$^$9!#(B $B4X?t$O!"(Bparse() $B9=J82r@O4o$G!"0z?t$GM?$($i$l$?#19T$r2r@O(B $B$7!"(Bpl_list, pipe_line, single_command $B$H$$$&9=B$BN$+$i$J$kLZ9=B$$rJV(B $B$7$^$9!#(B

    parse() $B$,JV$7$?LZ9=B$$r2r@O$7$F

    $B

  • $B#19T$H$7$F4JC1$J$b$N!J%Q%$%W$bF~=PNO$N@Z$jBX$($b$J$7!K$rM?$($?$H(B $B$-$K!"$I$N$h$&$JLZ9=B$$K$J$k$+D4$Y$k!#(Bid $B$,$I$&$J$k$+!"(Bargc, argv $B$,$I(B $B$&$J$k$+!"(Bsinfile, soutfile, out_mode $B$,$I$&$J$k$+$rD4$Y$k!#(B
  • execute_single_command() $B$G%3%^%s%I$r fork() $B$7$?>l9g!"?F%W%m%;%9B&$O!"?F$O!"(Bwait(0), wait3() $B$J$I$G;R(B $B6!$,=*N;$9$k$3$H$rBT$?$J$1$l$P$J$i$J$$!#$I$3$G(B wait $B$9$Y$-$+$r$h$/9M$((B $B$k!#I,$:$7$b(B fork() $B$r$7$?4X?t$d%k!<%W$G(B wait $B$7$J$1$l$P$J$i$$$3$H$O$J$$!#(B
  • $BI8=`F~NO$N@Z$jBX$(!J(B<$B!K$rM?$($?;~$K(B command $B9=B$BN$,(B $B$I$&$J$k$+$rD4$Y$k!#(B
  • $BI8=`F~NO$r@Z$jBX$($r $BI8=`=PNO$N@Z$jBX$(!J(B>$B!K!"I8=`%(%i!<$N@Z$jBX$((B $B!J(B>&$B!K$K$D$$$F!"I8=`F~NO$N@Z$jBX$($HF1MM$N$3$H$r9T$&!#(B out_mode $B$K$bCm0U$9$k!#(B
  • $B%Q%$%W!J(B|)$B$,BG$A9~$^$l$?;~$K(B command $B9=B$BN$,$I$&$J$k$+$rD4$Y$k!#(B
  • $B%Q%$%W!J(B|)$B$r $B%Q%$%W%i%$%s$G$O!"0lHV:G8e$N%3%^%s%I$@$1$r(B wait $B$9$l$P$h$$!#(B $B$3$l$i$N4X?t$K$O!"0z?t$rDI2C$9$kI,MW$,$G$F$/$k$G$7$g$&!#%U%!%$%k5-=R;R(B $B!JI8=`F~NO!"I8=`=PNO$J$I!K$rIU$12C$($?$j!"(Bfork $B$9$Y$-$+$I$&$+$N%U%i%0(B $B$rIU$12C$($?$j$9$kI,MW$,$G$F$/$k$G$7$g$&!#(B

    fork() $B$N%?%$%_%s%0$K$OCm0U$7$F$/$@$5$$!#FbIt%3%^%s%I$N>l9g!"(Bfork() $B$r(B $B$7$F$O$$$1$^$;$s!#$?$@$7!"I8=`=PNO$,%Q%$%W$N>l9g!"$^$:%Q%$%W$r:n@.$7$F(B $B$+$i(Bfork() $B$9$kI,MW$,$"$j$^$9!#(Bfork() $B$9$Y$-$+$I$&$+$r!"LZ$r@hFI$_$7$F(B $BD4$Y$kJ}K!$b$"$j$^$9!#(B

    $BG[Ns$HLZ9=B$$NC5:w$K$D$$$F$O!"#2G/@8$N652J=q$rFI$_JV$7$FI|=,$7$F2<$5$$!#(B $BG[Ns$N>l9g$K$O!"!V%k!<%W!W$9$k$3$H$,4pK\$G$9!#%Q%$%W%i%$%s$O!":F5"$G$O(B $B$J$/%k!<%W$r;H$C$?J}$,4JC1$Kl9g$K$O!"(B $B4X?t8F$S=P$7!J>l9g$K$h$C$F$O:F5"8F$S=P$7!K$r;H$$$^$9!#(B fork() $B$9$k;~$K$O!"#2=E$K8!:w

    $B%k!<%W$N?t$O!"#1$D$H$O8B$j$^$;$s!##2$D$N%k!<%W$r;H$C$?J}$,4JC1$J>l9g$b(B $B$"$j$^$9!##2$D$N%k!<%W$H$O!"#2=E%k!<%W$G$O$J$/$F!"#1$D$N%k!<%W$r#22s$d(B $B$k$b$N$G$9!#(B

        for( i=0 ; i < n; i++ )
        {
        }
        ...
        for( i=0 ; i < n; i++ )
        {
        }
    

    $B"#%Q%$%W%i%$%s$N:n$jJ}(B

    $B2]Bj#1!]#1$G$O!"%W%m%;%9$N?F;R4X78$rCf?4$KD4$Y$J$5$$!#$3$l$rD4$Y$k$K$O!"(B $B<+J,$,:n@.$9$k%7%'%k$N;29M$K$9$k$?$a$G$9!#F1$8J}K!$r;H$C$F$b$h$$$7!"FH(B $B<+$NJ}K!$r;H$C$F$b$+$^$$$^$;$s!#(B

    $B?F;R4X78$rD4$Y$k$K$O!"(Bps $B%3%^%s%I$r;H$$$^$9!#$3$N;~!"0UL#$O$"$j$^$;$s(B $B$,!"(Bps $B%3%^%s%I$K$O!"(BX $B%&%$%s%I%&4X78$N%W%m%0%i%`!J$9$0$K$O=*N;$7$J$$!K(B $B$r;H$&$H$h$$$h$&$G$9!#(B

    % csh [$B
    % emacs | ps -l [$B
    % emacs | kterm | ps -l [$B
    % sh [$B
    $ emacs | ps -l[$B
    $ emacs | kterm | ps -l[$B
    $ []
    
    $BK\3JE*$KD4$Y$k$K$O!"(Bstrace $B%3%^%s%I$r;H$$$^$9!#(B
    % strace -f -o sh.log sh [$B
    $ ls[$B
    $ ls | head[$B
    $ exit[$B
    % less sh.log [$B
    % egrep 'fork|pie|dup|exec|close|exit|wait' sh.log | less [$B
    % egrep 'fork|pie|dup|exec|exit|wait' sh.log | less [$B
    % []
    
    $B%W%m%;%9$,

    $B>\$7$/$O!"(Bman strace $B$r8+$F$/$@$5$$!#(B

    $B"#%G%#%l%/%H%j!&%V%i%&%6(B

    $B"!(BRuby/GTK$BHG(B

    Ruby/GTK $B$GESCf$^$G5-=R$7$?$b$N$,!"l=j$K$"$j$^$9!#(B
    ~yas/slab-syspro/dir/dir-browser.rb
    $B#C8@8l$G(B GTK+ (Gimp ToolKit) $B$rD>@\;H$C$F$b;w$?$h$&$J304Q$K$J$j$^$9!#(B GTK+ $B0J30$N(B Tool Kit $B$r;H$C$F$b$+$^$$$^$;$s!#(B

    $B%&%$%s%I%&$N?F;R4X78!#(Btable $B$r;H$C$F%l%$%"%&%H$7$F$$$k!#(B @table.attach() $B$N0z?t$O!"%0%j%C%I$N:8!"1&!">e!"2<$N:BI8!#(B

    window (DirListLong < Gtk::Window)
          table (Gtk::Table)
    	    scrollClist (Gtk::ScrolledWindow)
    	       clist (DirListLongClist < Gtk::CList)
    	    label (Gtk::Label)
    	    entry (Gtk::Entry)
    	    open_button (Gtk::Button)
    	    quit_button (Gtk::Button)
    

    class DirListLongClist < Gtk::CList
    Gtk::CList $B$r7Q>5$7$F!"(Bls -l $BIw$NFbMF$rJ]B8$9$k$?$a$N(B Clist $B$r$D$/$k!#(B
    Dir.new(".")
    $B%G%#%l%/%H%j$r3+$/(B
    dir.each
    $B%G%#%l%/%H%j$N3FFbMF$K$D$$$F$N=hM}(B
    File.lstat
    lstat() $B%7%9%F%`%3!<%k!#%j%s%/$N@h$r$?$I$i$J$$!#(Bls -l $B$G(B lrwxrwxrwx $B$H(B $BI=<($9$k$K$O!"I,MW!#(B
    clist.signal_connect
    $B%/%j%C%/$5$l$?;~$N=hM}$r5-=R$9$k!#(Bset_text $B$G!"(B $B%F%-%9%H$r@_Dj$7$F$$$k!#(B
    open_button.signal_connect
    Open $B%\%?%s$,2!$5$l$?;~$N=hM}!#$3$3$G?7$7$$%G%#%l%/%H%j$r(B $B3+$/$h$&$K$9$l$P$h$$!#(B
    Ruby/GTK $B$K$D$$$F$O!"\$7$/5-=R$5$l$F$$$^$9!#(B
    $B;0JB(B $B7D:4(B: Ruby/GTK$B%W%m%0%i%_%s%0F~Lg(B,$B5;=QI>O@ $B$3$NK\$N%5%s%W%k!&%W%m%0%i%`$,l=j$K$"$j$^$9!#(B
    ~yas/ruby/gtk/book/program/
    7_8_2.rb $B$H(B fileselection.rb $B$,;29M$K$J$j$^$9!#(B

    $B"!(Bjava$BHG(B

    Java $B$GESCf$^$G5-=R$7$?$b$N$,!"l=j$K$"$j$^$9!#(B
    ~yas/slab-syspro/dir/DirBrowser.java

    $B%&%$%s%I%&$N?F;R4X78$O0J2<$N$h$&$K$J$C$F$$$k!#(Bwindow (JPanel) $B$K=DJ}8~(B $B$KN.$79~$s$G%l%$%"%&%H$7$F$$$k!#%\%?%s$r2#$KJB$Y$F$$$k=j$O!"(BbuttonPart $B$G%0%k!<%W2=$7$F$$$k!#(B

    this (DirBrowser extends JFrame)
    	window (JPanel)
    		scrollTable (JScrollPane)
    			table (JTable)
    		textField
    		dirInfoBar (JLabel)
    		buttonPart (JPanel)
    			openButton (JButton)
    			quitButton (JButton)
    

    class DirBrowser extends JFrame
    File dir=new File(location); String[] fileList=dir.list();
    $B%G%#%l%/%H%j$NFbMF0lMw$rF@$k(B
    file.isDirectory(), file.isFile()
    $B%U%!%$%k$N7?$rD4$Y$k!#(B
    file.canRead(), file.canWrite()
    $B%U%!%$%k$,FI$_=q$-$G$-$k$+$rD4$Y$k!#(B
    table.addMouseListener()
    $B%U%!%$%kL>$N9T$,%/%j%C%/$5$l$?;~$N=hM}$r5-=R$9$k!#(B textField.setText() $B$G!"(BtextField $B$K%F%-%9%H$r@_Dj$7$F$$$k!#(B
    openButton.addActionListener()
    Open $B%\%?%s$,2!$5$l$?;~$N=hM}!#$3$3$G?7$7$$%G%#%l%/%H%j$r3+$/$h$&(B $B$K$9$l$P$h$$!#(B

    $B"#4XO"%Z!<%8(B


    Last updated: 2004/12/17 14:40:00
    Yasushi Shinjo / <yas@is.tsukuba.ac.jp>