$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#2#0#0#4G/#23X4|$G$O!"e$2$F;XDj$5$l$?J}K!$GDs=P(B $B$7$F$/$@$5$$!#(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$3$N
$B%W%m%0%i%`$O!"l=j$K$"$j$^$9!#(B
$B"#%7%'%kMQ9=J82r@O4o(B
$B"#%7%'%kMQ9=J82r@O4o(B
$BMxMQ
~yas/slab-syspro/shell/
cp -rp $B$J$I$G%3%T!<$7$F;H$C$F$/$@$5$$!#I,MW$JItJ,$O!"
command.ccommand.hlexer.clexer.hparser.cparser.hexecuter.cexecuter.hmysh.cparse() $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
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$K
$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?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$BK\3JE*$KD4$Y$k$K$O!"(Bstrace $B%3%^%s%I$r;H$$$^$9!#(B% emacs | ps -l
% emacs | kterm | ps -l
% sh
$ emacs | ps -l
$ emacs | kterm | ps -l
$
![]()
% strace -f -o sh.log sh$B%W%m%;%9$,$ ls
$ ls | head
$ exit
% less sh.log
% egrep 'fork|pie|dup|exec|close|exit|wait' sh.log | less
% egrep 'fork|pie|dup|exec|exit|wait' sh.log | less
%
![]()
$B>\$7$/$O!"(Bman strace $B$r8+$F$/$@$5$$!#(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)
$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 7_8_2.rb $B$H(B fileselection.rb $B$,;29M$K$J$j$^$9!#(B~yas/ruby/gtk/book/program/
$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>