From owner-FreeBSD-users-jp@jp.freebsd.org  Fri Mar 24 10:44:40 2000
Received: (from daemon@localhost)
	by castle.jp.freebsd.org (8.9.3+3.2W/8.7.3) id KAA75442;
	Fri, 24 Mar 2000 10:44:40 +0900 (JST)
	(envelope-from owner-FreeBSD-users-jp@jp.FreeBSD.org)
Received: from mist.nintendo.co.jp (firewall-user@mist.nintendo.co.jp [202.214.242.34])
	by castle.jp.freebsd.org (8.9.3+3.2W/8.7.3) with ESMTP id KAA75437
	for <FreeBSD-users-jp@jp.freebsd.org>; Fri, 24 Mar 2000 10:44:39 +0900 (JST)
	(envelope-from shirai@pon.nintendo.co.jp)
Received: by mist.nintendo.co.jp; id KAA03998; Fri, 24 Mar 2000 10:44:34 +0900 (JST)
Received: from unknown(172.16.1.9) by mist.nintendo.co.jp via smap (V4.2)
	id xma003951; Fri, 24 Mar 00 10:44:27 +0900
Received: from pon.nintendo.co.jp (pon [172.16.1.1])
	by yellow.nintendo.co.jp (8.9.3/3.7W/2000030115) with ESMTP id KAA03790
	for <FreeBSD-users-jp@jp.freebsd.org>; Fri, 24 Mar 2000 10:43:06 +0900 (JST)
Received: from pon (IDENT:shirai@localhost [127.0.0.1])
	by pon.nintendo.co.jp (8.9.3/3.7W/2000010715) with ESMTP id KAA03286
	for <FreeBSD-users-jp@jp.freebsd.org>; Fri, 24 Mar 2000 10:44:26 +0900
Message-Id: <200003240144.KAA03286@pon.nintendo.co.jp>
To: FreeBSD-users-jp@jp.freebsd.org
In-reply-to: Your message of 24 Mar 2000 10:02:42 JST.
             <803dph5gel.fsf@kurishna.tri.asanuma.co.jp> 
Date: Fri, 24 Mar 2000 10:44:26 +0900
From: Takashi SHIRAI <shirai@pon.nintendo.co.jp>
Reply-To: FreeBSD-users-jp@jp.freebsd.org
Precedence: list
X-Distribute: distribute version 2.1 (Alpha) patchlevel 24e+000315
X-Sequence: FreeBSD-users-jp 50758
Subject: [FreeBSD-users-jp 50758] Re: tail -f
 =?ISO-2022-JP?B?GyRCJE5GYk1GJHIlUCVDJS8lOSUvJW0hPCVrJDcbKEI=?= 
 =?ISO-2022-JP?B?GyRCJD8kJCEjGyhC?= 
Errors-To: owner-FreeBSD-users-jp@jp.freebsd.org
Sender: owner-FreeBSD-users-jp@jp.freebsd.org
X-Originator: shirai@pon.nintendo.co.jp

$B!!#N#e#c#o$G$9!#(B

$B!!(Bshell $B$NCN<1$O$3$3?t%u7nDxEY$NIU$1>F$-?O$J$s$GOCH>J,$KJ9$$(B
$B$H$$$F2<$5$$!#C1$K:G6a(B shell $B:n$C$?$C$F$@$1$J$s$G!#(B

In Message-Id <803dph5gel.fsf@kurishna.tri.asanuma.co.jp> 
        Mori Kouji <mori@tri.asanuma.co.jp> $B$5$s(Bwrites:
> > ^C$B$r2!$9$H!"(B
> > tail -f /var/log/httpd-access.log
> > $B$NJ}$N%W%m%;%9$,=*N;$7$F$7$^$&$?$a$K4uK>$NF0:n$K$J$j$^$;$s$G$7$?!#(B
> 
> $B%^%H%b$J%7%'%k$r;H$C$F$$$l$P(B ^C $B$G(B tail $B$NJ}$K%7%0%J%k$,$$$/$3$H$O(B
> $B$J$$$H;W$$$^$9!#(Bless $B$,=*N;$7$F$k$C$F$3$H$O$J$$$G$7$g$&$+(B?

$B!!$s!<$H!"(Bjob control $BIU$N(B shell $B$J$i(B process group $B$r;H$C$F(B
$BC<Kv@)8f$7$F$$$k$s$G!"IaDL$O(B pipeline $BA4BN$GC<Kv$r;}$C$F$^$9!#(B
$B;n$7$K<B83$7$F$_$^$7$g$&!#(B

$ cat filter1.c
#include <stdio.h>

main()
{
	int c;

	while ((c = fgetc(stdin)) != EOF) fputc(c, stdout);
}
$ cat filter2.c
#include <stdio.h>
#include <signal.h>

main()
{
	int c;

	signal(SIGINT, SIG_IGN);
	while ((c = fgetc(stdin)) != EOF) fputc(c, stdout);
}
$ cc -o filter1 filter1.c
$ cc -o filter2 filter2.c
$ ./filter1 | ./filter2
^C	<- $B$3$3$G(B ^C $BF~NO$9$k$H=*N;(B
$ ./filter2 | ./filter2
	<- $B$3$3$G(B ^C $BF~NO$7$F$bB39T(B


> $B$3$A$i$G$O(B ^C $B$G(B less $B$K3d$j9~$_$,F~$C$F%3%^%s%I$r<u$1IU$1$k>uBV$K(B
> $B$J$j$^$9!#%P!<%8%g%s$O(B

$B!!(Bless $B<+?H$bC<Kv@)8f$7$F$k$s$G>e$N$h$&$JC1=c$JNc$H$OHf3S=P(B
$BMh$^$;$s$1$I!"$3$l$OC1$K(B pipeline $B$N@hF,(B process $B$,=*N;$7$?(B
$B$s$G(B less $B$,FI9~$_F0:n$r40N;$7$?$@$1$@$H;W$$$^$9!#(B
$B!!(Btail $B$G<h=P$99T?t$rC<Kv$N9T?t$h$jB?$/$9$k$H!"(Bless $B$O:G=i$N(B
$B$&$A%-!<F~NO<uIU$1$k$1$I!"%Z!<%8Aw$j$9$k$H%-!<F~NO$,8z$+$J$/(B
$B$J$k$H;W$$$^$9!#(B
$B!!(B1 $B%Z!<%8J,$NF~NO$,=*N;$7$J$$$N$G!"$=$N40N;$rBT$C$F$$$k4V$O(B
$B%-!<$,8z$+$J$$$s$G$9$M!#(B

$B!!>e$N<B83$G$O!"(Bfilter1 $B$O(B ^C $B$G=*N;$7!"(Bfilter2 $B$O(B ^C $B$rL5;k(B
$B$9$k;EMM$K$J$C$F$$$^$9!#(B
$B!!$3$l$O$I$C$A$,(B pipeline $B$N@hF,$K$"$C$F$bF1$8$3$H$G$9$,!"A0(B
$B<T$N;n9T$G(B ^C $BCfCG$,8z$$$F$$$k$N$O!"C1$K(B filter1 $B$NJ}$,;`$s(B
$B$G$7$^$C$?$s$G(B filter2 $B$NF~NO$,L5$/$J$C$?$?$a$G$9$M!#(B

$B!!>e$N<B83$b!"(Bps $B$G8+$k$H$I$N(B process $B$,@8$-$F$k$N$+;`$s$G$k(B
$B$N$+H=$k$N$G$h$jH=$j0W$$$H;W$$$^$9!#J#?tC<Kv$r5/F0=PMh$k4D6-(B
$B$G;n$7$F$_$F2<$5$$!#(B
$B!!(BLinux $B$N(B ps $B$G$9$H(B -j option $B$GC<Kv$r;}$C$F$k(B pgid $B$,I=<((B
$B$5$l$k$s$G8!>Z$70W$$$s$G$9$,!"(BFreeBSD $B$@$H(B pid, ppid $B$/$i$$(B
$B$7$+I=<($5$l$J$$$G$9$M!<!#(B


> $B$G$9!#(B(3.4 $B$N(B sh, csh, bash-2.03 $B$G3NG'$7$^$7$?!#(B)

$B!!!V(Bsh$B!W$C$F$N$O3N$+@53N$K$O!V(Bash$B!W$G$7$?$C$1!)K\J*$N(B bourne
shell $B$@$H(B job control $B5!G=$,$J$$$s$G!"(Bprocess group $B$K$h$k(B
$BC<Kv@)8f$b$J$/!"(B^C $B$OL5;k$5$l$k$+(B shell $B$4$H=*$o$k$+$@$H;W$$(B
$B$^$9!#(B

                                       $BGr0f(B $BN4(B (as $B#N#e#c#o(B)
