Newsgroups: fj.archives.answers,fj.lang.c
Path: galaxy.trc.rwcp.or.jp!coconuts.jaist!wnoc-tyo-news!newsgate1.web.ad.jp!newsbase.nisiq.net!news1.nisiq.net!newsfeed.btnis.ad.jp!nspixp!spinnews!spin-hsd0-tky!yhqfm!xeroc!leia!133.140.40.2!kitano
From: kitano@crd.yokogawa.co.jp (Kinichi - Kinchan - Kitano)
Subject: comp.lang.c Answers to Frequently Asked Questions (FAQ List) in Japanese[4/4]
Sender: news@leia.pa.yokogawa.co.jp (Leia news server)
Message-ID: <KITANO.97Jul15023137@crd.yokogawa.co.jp>
Supersedes: <KITANO.96Feb26184429@SDA.crd.Yokogawa.CO.JP>
Date: Mon, 14 Jul 1997 17:31:37 GMT
Reply-To: kitano@crd.yokogawa.co.jp
Organization: Yokogawa Electric Corporation, Tokyo, Japan.
Followup-To: fj.lang.c
Lines: 2097
Xref: galaxy.trc.rwcp.or.jp fj.archives.answers:1283 fj.lang.c:1206
X-originally-archived-at: http://galaxy.rwcp.or.jp/text/cgi-bin/newsarticle2?ng=fj.lang.c&nb=1206&hd=a
X-reformat-date: Mon, 18 Oct 2004 15:18:22 +0900
X-reformat-comment: Tabs were expanded into 4 column tabstops by the Galaxy's archiver. See http://katsu.watanabe.name/ancientfj/galaxy-format.html for more info.

Archive-name: c-faq-j/part4
Last-modified: 14 July. 1997


========================= C FAQ $BF|K\8lLu(B[(B4(J/4](B (J=========================(B

16$B>O(B $B4qL/$JLdBj(B

16.2a:$B$o$1$,$o$+$i$J$$J8K!%(%i!<$,=P$F:$$C$F$$$k!#(B
$B%W%m%0%i%`$NBgItJ,$,%3%s%Q%$%k$5$l$J$$$^$^$N$h$&$K8+$($k!#(B

A:$B%3%a%s%H$rJD$8K:$l$F$J$$$+$H$+!"(B
#if/#ifdef/#ifndef/#else/#endif$B;XNa$,BP1~$9$k$b$N$,H4$1$F$J$$(B
$B$+$r%A%'%C%/$9$k!#%X%C%@%U%!%$%k$b%A%'%C%/$9$k$3$H$rK:$l$F$O$$(B
$B$1$J$$!#(B($B<ALd(B2.18, 10.9, 11.29$B$b;2>H$N$3$H!#(B)

16.2b:$B$I$&$7$F(Bprocedure$B8F=P$7$,$&$^$/$$$+$J$$$N$+!#%3%s%Q%$%i$O$=$3(B
$B$N$H$3$m$rHt$P$7$F$$$k$h$&$K8+$($k!#(B

A:$B$=$N%3!<%I$O0J2<$N$h$&$J$b$N$+!#(B

myprocedure;

C$B$K$O4X?t$7$+$J$$!#$=$N>e!"4X?t8F=P$7$K$O3g8L$G$/$/$i$l$?0z?t(B
$B%j%9%H$,!"0z?t$,$J$/$F$bI,MW$G$"$k!#(B

        myprocedure();

$B$H=q$/!#(B

16.3:$B%W%m%0%i%`$,Av$kA0$K%/%i%C%7%e$9$k(B($B%G%P%C%,$r;H$C$F0l9T$E$D(B
$B%9%F%C%W<B9T$GDI$&$H(Bmain()$B$N:G=i$N9T$r<B9T$9$kA0$K;`$s$G$7$^$&(B)$B!#(B

A:$B$3$N%W%m%0%i%`$O!"Hs>o$KBg$-$J(B(1$B%-%m%P%$%H$+$=$l0J>e$N(B)$B%m!<%+(B
$B%k$JG[Ns$r;}$C$F$$$k$K0c$$$J$$!#B?$/$N%7%9%F%`$G%9%?%C%/$NBg$-$5(B
$B$O8GDj$@$7!"(B(Unix$B$N$h$&$K(B)$B<+F0E*$K%9%?%C%/$rF0E*$K3d$jIU$1$k%7%9(B
$B%F%`$G$b%9%?%C%/$N%5%$%:$,FMA35pBg$K$J$k$H!":.Mp$9$k>l9g$,$"$k!#(B
$BBg$-$JG[Ns$r;H$&$H$-$O(Bstatic$B$H@k8@$7$?$[$&$,$$$$(B($B$b$A$m$s:F5"(B
$B8F$S=P$7$9$k$?$S$K?7$7$$G[Ns$,I,MW$J>l9g$O=|$/!#$3$&$$$&>l9g$O(B
malloc()$B$r;H$C$FF0E*$K3d$jIU$1$k!#<ALd(B1.31$B$r;2>H$N$3$H(B)$B!#(B

($B<ALd(B11.12, 16.4, 16.5, 18.4$B$b;2>H$N$3$H(B)

16.4:$B$3$N%W%m%0%i%`$O@5$7$/F0$$$F$$$k$h$&$K8+$($k$1$l$I!"(Bmain()$B$+$i(B
$BH4$1$k$H$3$m$G!"$D$^$j(Bmain()$B$N:G8e$NJ8$N8e$G!"%/%i%C%7%e$9$k!#(B
$B$J$K$,$3$s$J$3$H$r0z$-5/$3$9$N$+!#(B

A:main()$B$N%W%m%H%?%$%W@k8@$N$*$+$7$/$J$$$+$H$+(B($B<ALd(B2.18, 10.9$B;2(B
$B>H(B)$B!"(Bsetbuf()$B$H$+(Bsetvbuf()$B$K%m!<%+%k$N%P%C%U%!$rEO$7$F$J$$$+$H(B
$B$+!"(Batexit()$B$KEPO?$7$?8eJRIU$1$N4X?t$K4V0c$$$O$J$$$+$rD4$Y$k!#(B
$B<ALd(B7.5$B$d(B11.16$B$b;2>H$N$3$H!#(B

References: CT&P Sec. 5.3 pp. 72-3.

16.5:$B$3$N%W%m%0%i%`!"$"$k%^%7%s$G$O$&$^$/Av$k$N$K!"JL$N%^%7%s$@$HJQ(B
$B$J7k2L$rJV$9!#$b$C$HJQ$J$3$H$K!"%G%P%C%0MQ$N=PNO$rIU$1$?$j30$7(B
$B$?$j$9$k$H>I>u$,0c$C$F$/$k!#(B

A:$B$*$+$7$/$J$k2DG=@-$N$"$k$b$N$O$?$/$5$s$"$k!#0J2<$K2DG=@-$N9b$$(B
$B$b$N$r$$$/$D$+<($9!#(B

$B=i4|2=$7$F$J$$%m!<%+%kJQ?t(B($B<ALd(B7.1$B;2>H(B)

$B@0?t$N%*!<%P!<%U%m!<!"FC$K(B16$B%S%C%H%^%7%s$G!"$H$j$o$1(B
a * b / c$B$N$h$&$J7W;;$NCf4V7k2L$N7e$"$U$l(B($B<ALd(B3.14$B$b;2>H(B
$B$N$3$H(B)

$BL$Dj5A$NI>2A$N=g=x(B($B<ALd(B3.1$B$+$i(B3.4$B$b;2>H$N$3$H(B)

$B30It4X?t$N@k8@$N$7K:$l!"FC$K(Bint$B0J30$d(B"$B69$$(B"$B7?$rJV$94X(B
$B?t$d2DJQ8D?t0z?t$N4X?t$G(B($B<ALd(B1.25, 14.2, 15.1$B;2>H(B)

$B%L%k%]%$%s%?$N4V@\;2>H(B(5$B>O;2>H(B)

$B8m$C$?(Bmalloc/free$B$N;H$$J}!#(Bmalloc$B$7$?%a%b%j$,A4It(B0$B$K$J$C(B
$B$F$k$H$+(Bfree$B$7$?NN0h$,$^$@;H$($k$H;W$$9~$s$@$j!"F1$8$b(B
$B$N$r(B2$B2s(Bfree$B$9$k$3$H(B($B<ALd(B7.20$B$d(B7.19$B$r;2>H$N$3$H(B)

$B%]%$%s%?$NLdBjA4HL(B($B<ALd(B16.8$B$b;2>H$N$3$H(B)

printf()$B$N=q<0$H<B0z?t$NIT0lCW!"FC$K(Blong$B$N@0?t$r(B%d$B$r;H$C(B
$B$F=PNO$7$h$&$H$9$k(B($B<ALd(B12.9$B$b;2>H(B)

unsigned int$B$G?t$($k$3$H$,$G$-$kBg$-$5$h$jBg$-$JNN0h$r(B
$B3d$jIU$1$h$&$H$9$k$3$H!#$H$/$K!"%a%b%j$NNL$,8B$i$l$F$$(B
$B$k%^%7%s$G(B($B<ALd(B7.16$B$H(B19.23$B$b;2>H$N$3$H(B)

$BG[Ns$N6-3&$NLdBj!#FC$K>.$5$J0l;~E*%P%C%U%!$G!"$*$=$i$/(B
sprintf()$B$r;H$C$FJ8;zNs$r9=C[$9$k$N$K(B($B<ALd(B7.1$B$H(B
12.21$B$b;2>H(B)

typedef$B$H<B:]$N%G!<%?7?$NBP1~$N8m$C$?;W$$9~$_!#$H$j$o(B
$B$1(Bsize_t

$BIbF0>.?tE@$NLdBj(B($B<ALd(B14.1$B$H(B14.4$B$r;2>H(B)

$BBP>]$H$J$k6qBNE*$J%7%9%F%`$G(B $B%3!<%I$N@8@.$5$l$+$?$r7h(B
$B$aIU$1$F!"$3$&$$$&;H$$$+$?$r9M$(IU$/$H$O26$C$FF,$,$$$$(B
$B$J$H;W$C$F$$$k$3$H$O$J$s$G$b(B

$B4X?t%W%m%H%?%$%W$rE,@Z$K;H$&$3$H$G!"$3$l$i$NLdBj$N$+$J$j$NItJ,(B
$B$rJa$^$($k$3$H$,$G$-$k!#(Blint$B$r;H$($P$b$C$HB?$/$NLdBj$rJa$^$($k(B
$B$3$H$,$G$-$k!#<ALd(B16.3, 16.4, 18.4$B$b;2>H$N$3$H!#(B

16.6:$B$J$<0J2<$N%3!<%I$O%/%i%C%7%e$9$k$N$+!#(B

char *p = "hello, world!";
p[0] = 'H';

A:$BJ8;zNsDj?t$O!"(B($B$h$&$9$k$K(B)$BG[Ns$N=i4|2=;XDj;R$H$7$F;H$o$l$k$H$-(B
$B$r=|$$$F$O!"I,$:$7$bJQ992DG=$G$O$J$$!#0J2<$NJ}K!$r;n$9$3$H!#(B

char a[] = "hello, world!";

$B<ALd(B1.32$B$b;2>H$N$3$H!#(B

References: ANSI Sec. 3.1.4; ISO Sec. 6.1.4; H&S Sec. 2.7.4 pp.
31-2.

16.8:$B!V%;%0%a%s%F!<%7%g%s0cH?(B(Segmentation violation)$B!W$H$+!V%P%9%((B
$B%i!<(B(Bus error)$B!W$O2?$r0UL#$9$k$N$+!#(B

A:$B$3$l$i$N>I>u$O0lHL$K!"%"%/%;%9$9$Y$-$G$J$$5-21NN0h$K%W%m%0%i%`(B
$B$,%"%/%;%9$7$h$&$H$7$?$3$H$r0UL#$7$F$$$k!#$-$C$H%9%?%C%/$,2u$l(B
$B$?$+%]%$%s%?$N;H$$J}$,E,@Z$G$J$+$C$?$+$i$K0c$$$J$$!#9M$($i$l$k(B
$B860x$H$7$F$O0J2<$N$b$N$,9M$($i$l$k!#(B

$B%m!<%+%k(B("$B<+F0$N(B"$B!"%9%?%C%/$K3d$jIU$1$i$l$k(B)$BJQ?t$N%*!<%P!<%U%m!<!"(B
$B%L%k%]%$%s%?$N8m$C$?;H$$J}(B($B<ALd(B5.2, 5.20$B$b;2>H(B)$B!#=i4|2=$5$l$F(B
$B$$$J$$%]%$%s%?(B/$B6-3&$N9g$C$F$J$$%]%$%s%?(B/$B$=$NB>E,@Z$G$J$$3d$jIU(B
$B$1$N$5$l$+$?$N%]%$%s%?(B($B<ALd(B7.1$B$H(B7.2$B;2>H(B)$B!#(Bmalloc$B$7$?NN0h$,2u$l(B
$B$?(B($B<ALd(B7.19$B;2>H(B)$B!#4X?t0z?t$NIT0lCW!"FC$K%]%$%s%?$,Mm$s$@>l9g!"(B
2$B$D9M$($i$l$k$N$O(Bscanf()($B<ALd(B12.12$B;2>H(B)$B$H(Bfprintf()($B:G=i$N(BFILE
*$B$N0z?t$rEO$5$l$F$$$k$3$H$r3NG'$9$k$3$H(B)$B!#(B

$B<ALd(B16.3$B$H(B16.4$B$b;2>H$N$3$H!#(B

17$B>O(B $B%9%?%$%k(B

17.1:C$B$N%3!<%I$N=q$-J}$G:GNI$N$b$N$O!#(B

A:K&R$B$G$"$k!#$7$P$7$P??;w$i$l$kNI$$Nc$r:\$;$F$$$k$@$1$G$J$/!"Hr(B
$B$1$k$Y$-0-$$Nc$K$O!"N)GI$JM}M3$b:\$;$F$$$k!#(B

$B3g8L$N0LCV$O$?$$$7$F=EMW$G$O$J$$!#$?$@$7?M$O3g8L$N0LCV(B
$B$K6/$$?.G0$r;}$C$F$$$k!#2f!9$O@$$K$"$k$$$/$D$+$NNc$+$i(B
$BA*$s$@$@$1$G$"$k!#<+J,$K8~$$$F$$$k=q$-J}$r<h$jF~$l$F!"(B
$B<sHx0l4S$7$F;H$$B3$1$k$3$H!#(B

$BBg;v$J$N$O%3!<%I$NG[CV$,(B"$B40A4$J(B"$B$3$H$h$j$b!"A*$s$@%3!<%I$NG[CV(B
$B$r<sHx0l4S$7$F;H$&$3$H$G$"$k(B($B$=$l<+?H!"2s$j$N%3!<%I$H!"$"$k$$(B
$B$O6&DLIt$H(B)$B!#$b$77/$,%3!<%G%#%s%0$r9T$&$H$-$N4D6-$,(B($B$?$H$($P?&(B
$B>l$N=,47$d2q<R$NJ}?K(B)$B%3!<%G%#%s%0%9%?%$%k$r<($7$F$$$J$/$F!"<+(B
$BJ,<+?H$N=q$-J}$r:n$j=P$95$$b$J$$$N$J$i!"C1$K(BK&R$B$r$^$M$l$P$h$$!#(B
($B$5$^$6$^$J;z2<$2$d3g8L$N0LCV$N;}$DMxE@$H7gE@$K4X$9$kD4::$O!"(B
$BE0DlE*$+$D:Y$+$/9T$&$3$H$,$G$-$k!#$7$+$7$3$3$G$O5DO@$r7+$jJV$5(B
$B$J$$!#(BIndian Hill$B%9%?%$%k%,%$%I$r;2>H$N$3$H(B)$B!#(B

$BDj5A$7$K$/$$(B"$B$h$$%9%?%$%k(B"$B$,;}$DFC<A$K$O!"%3!<%I$NG[CV$N>\:Y0J(B
$B>e$N$b$N$,$"$k!#$b$C$HBg;v$J%3!<%I$N<A$NLdBj$rH4$-$K$7$FBN:[$r(B
$B@0$($k$N$K;~4V$r3d$+$J$$$3$H!#(B

$B<ALd(B10.6$B$b;2>H$N$3$H!#(B

References: K&R1 Sec. 1.2 p. 10; K&R2 Sec. 1.2 p. 10.

17.3:$B$[$i!"$3$N$o$6$r8+$F!#(B

if(!strcmp(s1, s2))

$B$3$l$O$h$$=q$-J}(B?

A:$B$H$/$K$h$$=q$-J}$H$$$&$3$H$O$J$$!#$?$@$7?M5$$N$"$k=q$-J}$G$O$"(B
$B$k!#$3$N%F%9%H$O!"Fs$D$NJ8;zNs$,F1$8$H$-$K@.8y$9$k!#$7$+$7!V(B!$B!W(B
("...$B$G$J$$(B")$B$r;H$C$F$$$k$3$H$GEy$7$/$J$$$3$H$r%F%9%H$7$F$$$k(B
$B$h$&$K;W$($k!#(B

$B$h$jM%$l$?A*Br;h$H$7$F$O0J2<$N$h$&$J%^%/%m$r;H$&$3$H$,$"$k!#(B

#define Streq(s1, s2) (strcmp((s1), (s2)) == 0)

$B%3!<%G%#%s%0%9%?%$%k$K4X$9$k9M$(J}$O!"=!65$K4X$9$k9M$(J}$HF1$8(B
$B$G!"5DO@$K=*$j$,$J$$!#$h$$=q$-J}$O2ACM$"$kL\I8$G$"$k$7!"$?$$$F(B
$B$$$O8+$l$P$h$$$+0-$$$+$o$+$k$,!"J8>O$K$9$k$3$H$O$G$-$J$$!#<ALd(B
17.10$B$b;2>H$N$3$H!#(B

17.4:$B$I$&$7$F(Bif(x == 0)$B$H=q$/Be$o$j$K!"(Bif(0 == x)$B$H=q$/?M$,$$$k$N$+!#(B

A:$B$3$l$O$h$/0J2<$N$h$&$K=q$$$F$7$^$&$3$H$rKI$0$?$a$N%3%D$G$"$k!#(B

if(x = 0)

$BDj?t$r(B==$B$NA0$K;}$C$F$/$k=,47$rIU$1$F$*$1$P8m$C$F!"(B

if(0 = x)

$B$HBG$A9~$`$H%3%s%Q%$%i$,J86g$rIU$1$k(B

$B$I$&$d$i(B2$B2s(B=$B$rBG$A9~$`$3$H$r3P$($k$h$j$O!"%F%9%H$N%*%Z%i%s%I$N(B
$B=g$r$R$C$/$jJV$9$3$H$r3P$($k$3$H$N$[$&$,$d$5$7$$!#(B

($BLuCm(B:$BK\$N$[$&$K$O!"$3$l$OFC$K$h$$=q$-J}$H$$$&$o$1$G$O$J$$$H=q(B
$B$$$F$"$k!#<B:]$3$l$G$ON>JU$,JQ?t$N>l9g$N(Bif(a = b)$B$H$$$&8m$j$r(B
$BB*$($k$3$H$O$G$-$J$$!#$3$s$J5;$r3P$($k2K$,$"$l$P!"(Blint$B$N;H$$J}(B
$B$r3P$($k$3$H!#(B)

References: H&S Sec. 7.6.5 pp. 209-10.

17.5:printf()$B$r8F$S=P$7$F$$$k$H$3$m$9$Y$F$K!"$$$A$$$A(B(void)$B$N%-%c%9(B
$B%H$rIU$1$F$$$k%3!<%I$r8+$+$1$?!#$J$<$3$s$J$3$H$r$9$k$N$+!#(B

A:printf()$B$OCM$rJV$9!#$?$@$7(Bprintf()$B$NLa$jCM$r$o$6$o$63N$+$a$k%W(B
$B%m%0%i%`$O?t>/$J$$!#%3%s%Q%$%i$K$h$C$F$O(B(lint$B$b(B)$BLa$jCM$rFI$^$:(B
$B$K<N$F$k$H7Y9p$r=P$9$N$G!"(B(void)$B$KL@<(E*$K%-%c%9%H$9$k$3$H$O(B
$B!V$O$$!"$3$N8F$S=P$7$NLa$jCM$rL5;k$9$k$3$H$K$7$^$7$?!#$G$b0z$-(B
$BB3$-$=$NB>$N4X?t$GLa$jCM$r(B($B$&$C$+$j(B)$BL5;k$7$?$iCm0U$7$F$/$@$5$$!#!W(B
$B$H$$$&%3%s%Q%$%i$X$N0MMj$NI=8=$G$"$k!#(Bstrcpy()$B$d(Bstrcat()$B$N8F$S(B
$B=P$7$K$b(Bvoid$B$N%-%c%9%H$O$h$/9T$o$l$k!#$3$l$i$NLa$jCM$,!"$H$s$G(B
$B$b$J$$CM$K$J$k$3$H$O$J$$$+$i!#(B

References: K&R2 Sec. A6.7 p. 199; Rationale Sec. 3.3.4; H&S
Sec. 6.2.9 p. 172, Sec. 7.13 pp. 229-30.

17.8:$B!V%O%s%,%j!<5-K!(B(Hungarian Notation)$B!W$H$O!#;H$&2ACM$,$"$k$+!#(B

A:$B%O%s%,%j!<5-K!$OL>A0$NIU$1$+$?$N<h$j7h$a$G!"(BCharles Simonyi$B$,(B
$BH/L@$7$?!#$3$l$OJQ?t$N7?$r(B($B$*$=$i$/!"$=$N;H$$F;$b(B)$BJQ?t$NL>A0(B
$B$KId9f2=$9$k!#0lIt$N%0%k!<%W$G$O0&$5$l!"$=$NB>$N?MC#$+$i$OMF<O(B
$B$J$/9sI>$5$l$F$$$k!#<g$JMxE@$O!"%G!<%?7?$d0U?^$9$k;H$$J}$,L>A0(B
$B$r8+$l$P$o$+$k$H$$$&$3$H$G$"$k!#<g$J7gE@$O!"%G!<%?7?$OJQ?t$NL>(B
$BA0$KIU$1$F1?$s$G$^$o$k$h$&$JBg;v$J>pJs$G$OI,$:$7$b$J$$$3$H$G$"(B
$B$k!#(B

References: Simonyi and Heller, "The Hungarian Revolution" .

17.9:Indian Hill$B%9%?%$%k%,%$%I$d$=$N$[$+$N%3!<%G%#%s%05,Ls$r$I$3$+(B
$B$i<j$KF~$l$k$3$H$,$G$-$k$N$+!#(B

A:$B$5$^$6$^$J;qNA$,(Banonymous ftp$B$K$h$jF~<j2DG=$G$"$k!#(B

$B>l=j%U%!%$%k$"$k$$$O%G%#%l%/%H%j(B

cs.washington.edupub/cstyle.tar.Z
 ($B%$%s%G%#%"%s%R%k%,%$%I$N2~D{HG(B)

ftp.cs.toronto.edudoc/programming
(Henry Spencer$B$N(B
$B!V(BC$B%W%m%0%i%^$N===?!W$b4^$`(B)

ftp.cs.umd.edupub/style-guide

$B!X%W%m%0%i%`=qK!!Y!"!X(BPlum Hall Programming Guidelines$B!Y!"!X(BC
Style: Standards and Guidelines$B!Y$N$h$&$JK\$b;29M$K$7$?$[$&$,(B
$B$$$$$+$b$7$l$J$$!#;29MJ88%;2>H$N$3$H!#(B($B!X(BC Style: Standards
and Guidelines$B!Y$O<B:]$O%9%?%$%k%,%$%I$G$O$J$$!#$3$l$O%9%?%$%k(B
$B%,%$%I$rA*$s$@$j:n$j>e$2$k:]$N;X?K$r=8$a$?$b$N$G$"$k!#(B)

$B<ALd(B18.9$B$b;2>H$N$3$H!#(B

17.10:goto$B$O0-$G@dBP$K;H$C$F$O$J$i$J$$$H$$$&?M$,$$$k!#$A$g$C$H$3$l$O(B
$B9T$-2a$.$G$O$J$$$+!#(B

A:$B%W%m%0%i%_%s%0$N:nK!$OJ8>O:nK!$HF1$8$G!"$A$g$C$H$7$?5;G=$G$"$C(B
$B$F%,%A%,%A$N5,B'$GL@J82=$9$k$3$H$O$G$-$J$$!#$?$@$7=q$-J}$K$D$$(B
$B$F$N5DO@$O$b$C$Q$i$=$&$$$&5,B'$rCf?4$K2s$k$h$&$G$"$k!#(B

goto$BJ8$K$D$$$F$O!"(Bgoto$B$r9%$->!<j$K;H$&$H$9$0$K%9%Q%2%C%F%#$N$h(B
$B$&$K$b$D$l$?J]<iITG=$J%3!<%I$K$J$k$H@N$+$i$$$o$l$F$$$k!#$7$+$7!"(B
$B@PF,$K(Bgoto$BJ8$r;H$&$3$H$r6X;_$7$F$b$9$0$KH~$7$$%W%m%0%i%_%s%0$K(B
$B7k$SIU$/$H$O8B$i$J$$!#BN7ON)$F$F9M$($J$$%W%m%0%i%^$J$i(Bgoto$BJ8$r(B
$B$^$C$?$/;H$o$J$/$F$bF1$8$h$&$KJ#;(2x4q$K$b$D$l$?%3!<%I$r=q$$$F(B
$B$7$^$&(B($B$?$V$sBe$o$j$KL/$KF~$l;R$K$J$C$?%k!<%W$d%V!<%kCM$N@)8f(B
$BJQ?t$r;H$C$F(B)$B!#(B

$B%W%m%0%i%`$N=q$-J}$K4X$9$k$?$$$F$$$N0U8+$d(B"$B5,B'(B"$B$O5,B'$H$7$F$h(B
$B$j$O;X?K$H$7$F9M$($?$[$&$,$&$^$/$$$/!#%W%m%0%i%^$,!"$3$N;X?K(B
$B$G2?$r@.$7?k$2$?$$$N$+M}2r$9$l$P$b$C$H$&$^$/$$$/!#$"$k<o$N9=J8(B
$B$rL50G$K7I1s$7$?$j!"M}2r$9$k$3$H$J$/5,B'$K=>$&$3$H$O!"5,B'$r;H(B
$B$($PHr$1$i$l$k$3$H$K$J$C$F$$$k$N$HF1$8$/$i$$B?$/$NLdBj$r0z$-5/(B
$B$3$92DG=@-$,$"$k!#(B

$B$5$i$K!"%W%m%0%i%`$N=q$-J}$K4X$9$k8+2r$O=jA'8+2r$K$9$.$J$$!#(B"
$B=q$-J}O@Ah(B(style wars)"$B$K0z$-$:$j9~$^$l$F$b!"$?$$$F$$2?$b;:$_(B
$B=P$5$J$$!#0lIt$NO@E@(B($B<ALd(B9.2, 5.3, 5.9, 10.7$B$G5s$2$?$h$&$J(B)$B$K(B
$B$D$$$F$O$*8_$$Aj<j$N0U8+$rG'$a$?$j!"0U8+$,0c$&$3$H$rG'$a$?$j!"(B
$B5DO@$rBG$A@Z$C$?$j$9$k$3$H$O$J$$$h$&$K8+$($k!#(B

18$B>O(B $BF;6q$H;q8;(B

18.1:$B$3$s$J$N$rA\$7$F$$$k!#(B     A:$B0J2<$NL>A0$r;}$D%W%m%0%i%`$rA\$9$3$H(B
($B<ALd(B18.16$B$b;2>H$N$3$H(B)$B!#(B

$BAj8_;2>H$r@8@.$9$k%D!<%k(Bcflow $B$^$?$O(B cxref, calls, cscope,
xscope, ixfw

$B@07A%D!<%k(B/$B%W%j%F%#%W%j%s%?(Bcb $B$^$?$O(B indent, GNU indent,
vgrind

$B2~D{MzNr4IM}!"9=@.4IM}%D!<%k(BRCS $B$^$?$O(B SCCS

C$B%=!<%9$r2rFIITG=$K$9$k%D!<%k!"(Bobfus $B$^$?$O(B shroud, opqcp
($B%7%e%l%C%@!<(B)

make$B%3%^%s%I$N0MB84X78$r(Bmakedepend, $B$"$k$$$O(Bcc -M$B$^$?$O(B
$B:n$j=P$9%D!<%k(Bcpp -M

$B%3!<%I$N%a%H%j%C%/%9$r5a$a$k(Bccount, Metre, lcount, $B$^$?$O(B
$B%D!<%k(Bcsize, $B$b$7$/$O(B URL
http://www.qucis.queensu.ca:1999/Software-
Engineering/Cmetrics.html$B$r;2>H(B
McCabe and Associates$B$,HNGd$7$F$$$k(B
$B@=IJ$b$"$k!#(B

$B9T?tB,Dj%D!<%kBg$^$+$G$h$1$l$P(BUnix$B$KI8=`$GIU$$$F$/$k(B
wc$B$G!"$^$?(Bgrep -c ";"$B$r;H$($P$b$&>/$7@53N$J(B
$B7k2L$,F@$i$l$k!#(B

C$B$N@k8@$NJd=u%D!<%k<ALd(B1.21$B;2>H(B
(cdecl)

$B%W%m%H%?%$%W@8@.%D!<%k<ALd(B11.31$B;2>H(B

malloc$B$NLdBj$rDI@W$9$k%D!<%k<ALd(B18.2$B;2>H(B

"$BA*BrE*(B"$B%W%j%W%m%;%C%5<ALd(B10.18$B;2>H(B

$BB>$N%W%m%0%i%`8@8l$+$i$N<ALd(B11.31$B$H(B20.26$B;2>H(B
$BJQ49%D!<%k(B

C$B%W%m%0%i%`8!Dj4o(B(lint)$B<ALd(B18.7$B;2>H(B

C$B%3%s%Q%$%i$=$N$b$N<ALd(B18.3$B;2>H(B

($B>e$N%D!<%k$N0lMwI=$O40`z$r5a$a$?$b$N$G$O$J$$!#>e$NI=$K:\$C$F(B
$B$$$J$$%D!<%k$rCN$C$F$$$l$P!"$3$NI=$N4IM}<T$KO"Mm$r<h$C$FM_$7$$!#(B)

$BJL$NJT<T$K$h$k%D!<%k$N0lMwI=!"3F%D!<%k$K4X$9$k5DO@$,(BUsenet$B$N%K%e!<(B
$B%9%0%k!<%W(Bcomp.compilers$B$d(Bcomp.software-eng$B$KEj9F$5$l$F$$$k!#(B

$B<ALd(B18.16$B$H(B18.3$B$b;2>H$N$3$H!#(B

18.2:malloc()$B$NLq2p$JLdBj$O$I$&$d$C$FDI@W$9$l$P$h$$$+!#(B

A:malloc()$B$K$^$D$o$kLdBj$NDI@W$r;Y1g$9$k%G%P%C%0MQ%Q%C%1!<%8$O?t(B
$BB?$/$"$k!#?M5$$,$"$k$N$O(BConor P. Cahill$B:n$N(B"dbmalloc"$B!"$3$l$O(B
comp.sources.misc$B$K(B1992$BG/$KEj9F$5$l$?!#(Bvolume 32$B$KF~$C$F$$$k!#(B
$B$=$N30$K$O(B"leak"$B$H$$$&$N$,(Bcomp.sources.unix$B$N(Bvolume 27$B%"!<%+%$(B
$B%V$+$iF~<j2DG=$G$"$k!#(BJMalloc.c$B$H(BJMalloc.h$B$O(B"Snippets"$B=jB"$G$"(B
$B$k!#(BMEMDEBUG$B$O(Bftp.crpht.lu$B$N(Bpub/sources/memdebug$B$K$"$k!#<ALd(B
18.16$B$b;2>H$N$3$H!#(B

$B>&IJHG$N%G%P%C%0MQ%D!<%k$bB??tB8:_$9$k!#$3$l$i$O(Bmalloc()$B$K4X78(B
$B$7$?LdBj$d!"$=$NB>$N$J$+$J$+2r$1$J$$LdBj$rDI$$5M$a$k$N$KHs>o$K(B
$BLr$K$?$D!#(B

Nu-Mega Technologies$B<R$N(BBounds-Checker for DOS,
P.O. Box 7780, Nashua, NH 03060-7780, USA, 603-889-2386.

Centerline Software$B<R$N(B($B$+$C$F$O(BSaber$B$H$$$&<RL>$@$C$?(B)
CodeCenter($B0JA0$O(BSaber-C$B$H$$$&L>A0$@$C$?(B),
10 Fawcett Street, Cambridge, MA 02138-1110, USA,
617-498-3000.

ParaSoft Corporation$B<R$N(BInsight, 2500 E. Foothill
Blvd., Pasadena, CA 91107, USA, 818-792-9941,
insight@parasoft.com .

Pure Software$B<R$N(BPurify, 1309 S. Mary Ave., Sunnyvale,
CA 94087, USA, 800-224-7873, info-home@pure.com .

PLATINUM Technology$B<R$N(BFinal Exam Memory Advisor ($B0JA0(B
$B$O(BAIB Software$B<R$N(BSentinel$B$H$$$&L>A0$@$C$?(B), 1815
South Meyers Rd., Oakbrook Terrace, IL 60181, USA,
630-620-5000, 800-442-6861, info@platinum.com,
www.platinum.com .

AIB Software$B<R$N(BSENTINEL, 46030 Manekin Plaza, Dulles,
VA 20166, USA, 703-430-9247, 800-296-3000,
info@aib.com .

The Kernel Group$B<R$N(BZeroFault 1250 Capital of Texas
Highway South, Building Three, Suite 601, Austin,
TX 78746, 512-433-3333, http://www.tkg.com, zf@tkg.com .


18.3:$B%U%j!<$^$?$O0B$/<j$KF~$k(BC$B%3%s%Q%$%i$K$O$I$N$h$&$J$b$N$,$"$k$+!#(B

A:$B?M5$$,$"$C$F9bIJ<A$J%3%s%Q%$%i$H$7$F$O(BFSF$B$N(BGNU C$B%3%s%Q%$%i$9$J(B
$B$o$A(Bgcc$B$,5s$2$i$l$k!#$3$l$O(Bprep.ai.mit.edu$B$N%G%#%l%/%H%j(B
pub/gnu$B$b$7$/$O4v$D$+B8:_$9$k(BFSF$B$N%"!<%+%$%V%5%$%H$+$iF~<j2DG=(B
$B$G$"$k!#(BMS-DOS$B$X$N0\?"$G$"$k(Bdjgpp$B$b$"$k!#$3$l$O(Bftp.delorie.com
$B$N(Bpub/djgpp$B$+$iF~<j2DG=$G$"$k!#(BSimtel$B$N%_%i!<%5%$%H(B($BNc(B:
ftp.simtel.net$B$N(Bpub/simtelnet/gnu/djgpp$B$d(Bftp.coast.net$B$N(B
SimTel/vendors/djgpp)$B$+$i$bF~<j2DG=$G$"$k!#(B

PCC$B$H$$$&%7%'%"%&%(%"$N%3%s%Q%$%i$,$"$k!#(BPCC12C.ZIP$B$H$$$&L>(B
$BA0$GF~<j2DG=$G$"$k!#(B

Mix Software$B$N(BPower C$B$OHs>o$K0B2A$J(BMS-DOS$BMQ$N%3%s%Q%$%i$G$"$k!#(B
$BO"Mm@h$O!"(B1132 Commerce Drive, Richardson, TX 75801, USA,
214-783-6001.

$B:G6a3+H/$5$l$?%3%s%Q%$%i$H$7$F$O$=$NB>$K(Blcc$B$,$"$k!#$3$l$O(B
ftp.cs.princeton.edu$B$N(Bpub/lcc$B$+$i(Banother ftp$B$GF~<j2DG=$G$"$k!#(B

MS-DOS$BMQ$N%7%'%"%&%(%"$N(BC$B%3%s%Q%$%i$,(Bftp.hitech.com.au$B$N(B
/hitech/pacific$B$+$iF~<j2DG=$G$"$k!#Hs>&MQ$J$i%l%8%9%H%l!<%7%g(B
$B%s$7$J$/$F$b$h$$!#(B

comp.compilers$B$K4XO"$7$?%"!<%+%$%V$OF~<j2DG=$J(B($BB?$/$N%W%m%0%i(B
$B%`8@8l$N(B)$B%3%s%Q%$%i!"%$%s%?!<%W%j%?!<!"J8K!Ey$K$D$$$F$NBgNL$N(B
$B>pJs$r<}=8$7$F$$$k!#(BJohn R Levine$B$,4IM}$9$k(B(FAQ$B%j%9%H$b4^$`(B)
comp.compilers$B$N%"!<%+%$%V$O(Biecc.com$B$K$"$k!#F~<j2DG=$J%3%s%Q%$(B
$B%i$H4XO"$9$k;q8;$N0lMw$G(BMark Hopkins, Steven Robenalt, David
Muir Sharnoff$B$,J]<i$7$F$$$k$b$N$,!"(Bftp.idiom.com$B$N(B
pub/compilers-list/$B$+$iF~<j2DG=$G$"$k!#(B(rtfm.mit.edu$B$d(B
ftp.uu.net$B$K$"$k(Bnews.answers$B$N%"!<%+%$%V$N(Bcomp.compilers$B$N%G%#(B
$B%l%/%H%j$b;2>H$N$3$H!#<ALd(B20.40$B;2>H!#(B)

$B<ALd(B18.16$B$b;2>H$N$3$H!#(B

18.4:$B%W%m%0%i%`$rBG$A9~$s$@$H$3$m$@$1$l$I!"$3$N%W%m%0%i%`$O4qL/$JF0(B
$B$-$r$9$k!#$I$3$+JQ$J$H$3$m$,$"$k$+!#(B

A:$B$^$:$O(Blint$B$r(B(-a$B!"(B-c$B!"(B-h$B!"(B-p $B$dB>$N%*%W%7%g%s$r$D$1$F(B)$BF0$+$7$F(B
$B$_$k$3$H!#B?$/$N(BC$B%3%s%Q%$%i$O!"<B:]$K$O%3%s%Q%$%i$N;E;v$NH>J,(B
$B$7$+$7$F$$$J$$!#$D$^$j%=!<%9%3!<%I$NLdBjE@$N?GCG$r!"%3!<%I$N@8(B
$B@.$N<YKb$K$J$i$J$$8B$j$7$J$$$3$H$K$J$C$F$$$k!#(B

$B<ALd(B16.5, 16.7, 16.8$B$r;2>H$N$3$H!#(B

References: Ian Darwin, _Checking C Programs with lint_ .

18.5:malloc$B$r8F$V$?$S$K(Blint$B$,=P$9!V7Y9p(B:$B%]%$%s%?$N@09g$KLdBj$N2D(B
$BG=@-$"$j(B(warning:possible pointer alignment problem)$B!W$H$$$&(B
$B%a%C%;!<%8$r>C$9J}K!$O$"$k$+!#(B

A:$BLdBj$O8E$$(Blint$B$,!"(Bmalloc$B$,!V$I$s$J7?$N%*%V%8%'%/%H$b$&$^$/<}$^(B
$B$k$h$&$K@09g$7$?NN0h$X$N%]%$%s%?$rJV$9!W$H$$$&$3$H$rCN$i$J$$$7!"(B
$B65$($k<jCJ$b$J$$$H$$$&$3$H$G$"$k!#(B#ifdef lint$B$N$J$+$G(Bmalloc()
$B$NDj5A$^$,$$$r(B#define$B$7$F$3$N%a%C%;!<%8$r>C$9$3$H$O2DG=$G$"$k(B
$B$,!"$=$s$J$3$H$r$9$l$PK\Ev$K4V0c$C$?;HMQK!$KBP$7$F$bBg;v$J%a%C(B
$B%;!<%8$,=P$J$/$J$C$F$7$^$&!#(Bgrep -v$B$r;H$C$F>!<j$KL5;k$9$k$[$&(B
$B$,$d$5$7$$!#(B(lint$B$N%a%C%;!<%8$r$"$^$jB?$/L5;k$9$k=,47$rIU$1$J(B
$B$$$3$H!#$5$b$J$$$H!"$"$kF|Bg;v$J%a%C%;!<%8$r8+Mn$H$9$3$H$K$J$k!#(B)

18.7:ANSI$B8_49$N(Blint$B$O$I$3$G<j$KF~$k$+!#(B

A:PC-Lint$B$H(BFlexlint$B$H$$$&@=IJ$,(B($B%7%e%l%C%@!<$K$+$1$?$h$&$J%=!<(B
$B%9$GDs6!$5$l$k!#$3$l$O$?$$$F$$$N%7%9%F%`$G%3%s%Q%$%k2DG=$G$"$k(B)$B!"(B

Gimpel Software
3207 Hogarth Lane
Collegeville, PA  19426  USA
(+1) 610 584 4261
gimpel@netaxs.com

$B$+$iF~<j2DG=$G$"$k!#(BSVR4$B$N(Blint$B$O(BANSI$B8_49$G!"(BUNIX Support Labs
$B$"$k$$$O(B SYSTEM V$B$N:FHN6H<T$+$i(B($BB>$N(BC$B8@8l%D!<%k$H6&$K(B)$B9XF~2DG=(B
$B$G$"$k!#(B

$B$b$&0l$D$N(BANSI$B8_49$N(Blint$B$H$7$F$O(BLCLint$B$,$"$k(B($B>eN.9)Dx$N7A<0E*(B
$B;EMM$N8!::$b2DG=$G$"$k(B)$B!#$3$l$O(B
larch.lcs.mit.edu://pub/Larch/lclint/$B$+$i(Banother ftp$B2DG=$G$"$k!#(B

lint$B$,$J$/$F$b!":G6a$N%3%s%Q%$%i$O!"$h$/$G$-$?(Blint$B$HF1$8$/$i$$(B
$B$NB?$/$N<oN`$N?GCG$r$7$h$&$H$9$k!#(B(gcc -Wall -pedantic$B$r?J$a$k(B
$B?M$,B?$$!#(B)

18.8:ANSI$B$N4X?t%W%m%H%?%$%W$,MQ0U$5$l$?$3$H$G(Blint$B$O;~BeCY$l$K$J$C$?(B
$B$N$+!#(B

A:$B$^$5$+!#$^$:%W%m%H%?%$%W$O<B:]$KB8:_$7$F!"$7$+$b@5$7$$$H$-$K(B
$B$@$1L\E*DL$j$K5!G=$9$k!#$&$C$+$j4V0c$C$?%W%m%H%?%$%W$OM-32L51W(B
$B$@!#<!$K(Blint$B$OJ#?t$N%=!<%9%U%!%$%k$KEO$C$F0l4S@-$r8!::$9$k$7!"(B
$B4X?t$@$1$G$J$/%G!<%?$N@k8@$b8!::$9$k!#(Blint$B$N$h$&$KFHN)$7$?%W%m(B
$B%0%i%`$K$J$C$F$$$k$H!"FCDj$N<BAu$K0MB8$7$?M>7W$J5!G=$dM>7W$J3H(B
$BD%$N$D$$$?%3%s%Q%$%i$h$j$b!"8_49@-$,9b$/0\?"@-$N9b$$%3!<%G%#%s(B
$B%0$N=,47$r6/@)$9$k$3$H$K$K5$$rG[$C$F$$$k$@$m$&!#(B

$B%U%!%$%k$r$^$?$,$C$?0l4S@-$N8!::$r$9$k$N$K(Blint$B$NBe$o$j$K!"$I$&(B
$B$7$F$b4X?t%W%m%H%?%$%W$r;H$$$?$$$J$i$P!"%X%C%@%U%!%$%k$G%W%m%H(B
$B%?%$%W$r@5$7$/@_Dj$7$F$$$k$3$H$r3N$+$a$k$3$H!#<ALd(B1.7$B$H(B10.6$B$r(B
$B;2>H$N$3$H!#(B

18.9:C$B$NFH=,=q$d$=$NB>$NCNE*;q8;$r%$%s%?!<%M%C%H$GF~<j$9$k$3$H$O$G$-$k$+!#(B

A:$B$$$/$D$+B8:_$9$k!#(B

Christopher Sawtell$B$N!X(BC$B%W%m%0%i%^$X$N3P$(=q$-(B:Notes for C
programmers$B!Y(Bsvr-ftp.eng.cam.ac.uk$B$N(Bmisc/sawtell_C.shar$B$d(B
garbo.uwasa.fi$B$N(B/pc/c-lang/c-lesson.zip$B$+$iF~<j2DG=$G$"$k!#(B

Tim Love$B$N!X(BC for Programmers$B!Y(Bsvr-ftp.eng.cam.ac.uk$B$N(Bmisc$B%G%#(B
$B%l%/%H%j$+$iF~<j2D!#(BHTML$BHG$O(B
http://club.eng.cam.ac.uk/help/tpl/languages/C/teaching_C/teaching_C.html
$B$K$"$k!#(B

Coronado Enterprises$B$N(BC$BF~Lg$O(BSimtel$B$N%_%i!<%5%$%H$N(B
pub/msdos/c/$B$K$"$k!#(B

Rick Rowe$B$N=q$$$?FH=,=q$O(Bftp.netcom.com$B$N(B
pub/rowe/tutorde.zip$B$d(Bftp.wustl.edu as$B$N(B
pub/MSDOS_UPLOADS/programming/c_language/ctutorde.zip$B$+$iF~<j(B
$B2DG=$G$"$k!#(B

$B$I$&$d$i(BWeb$B$r;H$C$?%A%e!<%H%j%"%k$,(B
http://www.strath.ac.uk/CC/Courses/CCourse/CCourse.html$B$K$"$k(B
$B$h$&$@!#(B

Martin Brown$B$O(BC course material$B$r(Bhttp://www-
isis.ecs.soton.ac.uk/computing/c/Welcome.html$B$GDs6!$7$F$$$k!#(B

Unix$B%^%7%s$NCf$K$O!"%7%'%k$N%W%m%s%W%H$+$i!V(Blearn c$B!W(B
$B$HBG$A9~$`$H%A%e!<%H%j%"%k$,;O$^$k$b$N$b$"$k!#(B

$B:G8e$K!"K\(BFAQ$B$N86Cx<T$O(BC$B8@8l$N%/%i%9$r65$($F$*$j!"$=$N9V5A%N!<%H$r(B
$B%&%(%V$G8x3+$7;O$a$?!#$3$l$O(B
http://www.eskimo.com/~scs/cclass/cclass.html
$B$+$iF~<j2DG=$G$"$k!#(B

[$B@<L@(B(Disclaimer): $B$3$l$i$N%A%e!<%H%j%"%k$r6cL#$7$?$o$1$G$O$J(B
$B$$!#$3$l$i$NCf$N>/$J$/$H$b0l$D$K$OB??t$N4V0c$$$,$"$k$HJ9$$$F$$(B
$B$k!#$^$?!"$3$N<o$N>pJs$O5^B.$K;~BeCY$l$K$J$k!#>e$K5s$2$?%"%I%l(B
$B%9$O!"$3$N(BFAQ$B$rFI$s$G;n$9$3$m$K$O!"L58z$K$J$C$F$$$k$+$b$7$l$J(B
$B$$!#(B

$B$3$l$i$N%A%e!<%H%j%"%k$N$$$/$D$+$H!"(BC$B$K4X$9$kBgNL$N>pJs$,!"(B
http://www.lysator.liu.se/c/index.html$B$+$i(BWEB$B$rDL$7$F%"%/%;%9(B
$B2DG=$G$"$k!#(B

Vinit Carpenter$B$,(BC$B$d(BC++$B$r3X$V:]$K;HMQ2DG=$J;q8;$N0lMw$r4IM}$7(B
$B$F$$$k!#$3$l$O(Bcomp.lang.c$B$d(Bcomp.lang.c++$B$KEj9F$5$l!"$3$N(BFAQ$B$,(B
$B%"!<%+%$%V$5$l$F$$$k$N$HF1$8%5%$%H$K%"!<%+%$%V$5$l$F$$$k(B($B<ALd(B
20.40$B;2>H(B)$B!#(Bhttp://vinny.csd.mu.edu/$B$G(BWeb$B$r;H$C$F1\Mw2DG=$G$"(B
$B$k!#(B

$B0J2<$N<ALd(B18.10$B$b;2>H$N$3$H!#(B

18.10:C$B8@8l$r3X$V$N$K$h$$K\$O(B?

A:C$B$K4X$9$kK\$OB?$9$.$F!"$3$3$GL>A0$rA4It5s$2$k$3$H$OIT2DG=$G$"(B
$B$k!#A4ItI>2A$9$k$3$H$bL5M}$G$"$k!#B?$/$N?M$,:G=i$N;29M=q$,:G>e(B
$B$N$b$N$G$"$C$?$H?.$8$F$$$k!#(BKernighan$B$H(BRitchie$B$K$h$k!X(BC$B%W%m%0(B
$B%i%_%s%08@8l!Y(B("K&R"$B:#$OBhFsHG(B)$B$N$3$H$G$"$k!#%W%m%0%i%_%s%0$N(B
$B:G=i$N652J=q$H$7$F(BK&R$B$,8~$$$F$$$k$+$I$&$+$O0U8+$,J,$+$l$k!#<B(B
$B:]B?$/$N?M$,(BK&R$B$r;H$C$F3X$s$@$7!"$7$C$+$j$H?H$KIU$1$?!#$7$+$7(B
$B$J$,$i%W%m%0%_%s%00lHL$N4pACCN<1$,$"$^$j$J$$?M$N:G=i$N652J=q$H(B
$B$7$F$O$A$g$C$HNd$?$/5R4QE*$G$"$k$H46$8$k?M$b$$$k!#Cm<a$H@58mI=(B
$B$,$$$/$D$+%M%C%H$+$iF~<j2DG=$G$"$k!#(B
http://www.csd.uwo.ca/~jamie/.Refs/.Footnotes/C-annotes.html$B$^$?$O(B
http://www.eskimo.com/~scs/cclass/cclass.html$B$d(B
http://www.lysator.liu.se/c/c-errata.html#main $B!#(B

$BAG@2$i$7$$;2>HMQ%^%K%e%"%k$H$7$F$O(BSamuel P. Harbison$B$H(BGuy
L. Steele$B$K$h$k!X?7!&>\@b(BC$B8@8l(BH&S$B%j%U%!%l%s%9(B H&S$B%j%U%!%l%s%9(B
(C: A Reference Manual)$B!Y$,$"$k!#$3$l$OBh;MHG$^$G=P$F$$$k(B($BLuCm(B:
$BF|K\8lLu$O(B3$BHG$KBP1~$7$?$b$N$^$G=P$F$$$k(B)$B!#(B

$B0l$+$i(BC$B$r3X$V$N$K$O8~$$$F$$$J$$$,!"$3$N(BFAQ$B$O=q@R$N7ABV$G=PHG$5(B
$B$l$F$$$k!#;29MJ88%$r;2>H$N$3$H!#(B

Mitch Wright$B$,(BC$B$H(BUnix$B$NCm<aIU$-$NJ88%0lMw$r4IM}$7$F$$$k!#$3$l(B
$B$O(Bftp.rahul.net $B$N%G%#%l%/%H%j(Bpub/mitch/YABL$B$+$i(Banonymous ftp 
$B$,2DG=$G$"$k!#(B

The Association of C and C++ Users (ACCU)$B$,(BC$B$H(BC++$B$N652J=q$N(B
comprehensive$B$J(Bbibliographic reviews$B$r(Bmaintain$B$7$F$$$k!#(B
$B>l=j$O(Bhttp://bach.cis.temple.edu/accu/bookcase$B$H(B
http://www.accu.org/accu $B!#(B

FAQ$B%j%9%H$NJT<T$O!"$3$N<ALd$N$3$l$^$G$N2sEz$r=8$a$?$b$N$r;}$C(B
$B$F$$$k!#4uK>$,$"$l$PAw$k!#>e$N<ALd(B18.9$B$b;2>H$N$3$H!#(B

18.13:$BI8=`$N(BC$B%i%$%V%i%j$N%=!<%9$O$I$3$K$"$k$N$+!#(B

A:1$B$D$O(B($B%Q%V%j%C%/%I%a%$%s$G$O$J$$$1$l$I(B)$B!"(BP.J. Plauger$B$N!XI8=`(BC
$B%i%$%V%i%j(B(The Standard C Library)$B!Y$K$"$k(B($B;29MJ88%;2>H(B)$B!#(BC$B%i(B
$B%$%V%i%j$NA4BN$^$?$O0lIt$O(BNetBSD$B$d(BGNU$B%W%m%8%'%/%H(B(Linux$B%W%m%8%'(B
$B%/%H$b4^$`(B)$B$N0lIt$H$7$F=q$+$lMF0W$KF~<j2DG=$G$"$k!#<ALd(B18.16$B$r(B
$B;2>H$N$3$H!#(B

18.14:$B<0$r9=J82r@O$7$F!"<0$N1i;;7k2L$rF@$k%3!<%I$,M_$7$$!#(B

A:2$B$D$N%Q%C%1!<%8$,F~<j2DG=$G$"$k!#(B1$B$DL\$O!V(Bdefunc$B!W$H$$$&%Q%C(B
$B%1!<%8!#(Bcomp.source.misc$B$K(B1993$BG/(B12$B7n(B(V41 i32,33)$B$K!"$^$?(B
alt.sources$B$K(B1994$BG/(B1$B7n$K%]%9%H$5$l!"(Bsunsite.unc.edu$B$N%G%#%l%/(B
$B%H%j(Bpub/packages/development/libraries/defunc-1.3.tar.Z$B$+$iF~(B
$B<j2DG=$G$"$k!#$b$&(B1$B$D$O!V(Bparse$B!W$G(Blamont.ldgo.columbia.edu$B$+(B
$B$iF~<j2DG=$G$"$k!#$=$NB>$NA*Br;h$H$7$F$O(BS$B8@8l$N%$%s%?!<%W%j%?!<(B
$B$,$"$k!#$3$l$O(Bamy.tch.harvard.edu$B$N(Bpub/slang$B$+$i(Banonymous ftp
$B$GF~<j2DG=$G$"$k!#$^$?%7%'%"%&%(%"!<$N(BCmm(C-minus-minus$B$^$?$O(BC
$B$+$iFq$7$$$H$3$m$r%^%$%J%9$7$?$b$N(B)$B$b$"$k!#<ALd(B18.16$B$b;2>H$N$3(B
$B$H!#(B

$B9=J82r@O(B/$B<0$NI>2A$N%3!<%I$O!X(BSoftware Solutions in C$B!Y$K$b:\$C(B
$B$F$$$k(B(12$B>O(B, pp. 235-55)$B!#(B

18.15:C$B8@8l$NJ8K!$r(BBNF$B$d(BYACC$B$G=q$$$?$b$N$O!"$I$3$G<j$KF~$k$+!#(B

A:$B:G$b3N$+$JJ8K!$OEvA3(BANSI$B5,3J$NCf$K$"$k!#<ALd(B11.2$B$r;2>H$N$3$H!#(B
$B$=$NB>$K(BJim Roskind$B$K$h$k$b$N$,(Bics.uci.edu$B$N%G%#%l%/%H%j(B
pub/*grammar*$B$KCV$+$l$F$$$k!#(BANSI$BJ8K!$KFyIU$1$7$FF0$/$h$&$K$7(B
$B$?$b$N$,(B(Jeff Lee$B$K$h$k(B) uunet(Q17.12$B$r;2>H(B)$B$N(B
usenet/net.sources/ansi.c.grammar.Z$B$K!"BP1~$9$k;z6g2r@O%D!<%k(B
$B$H$H$b$KCV$+$l$F$$$k!#(BFSF$B$N(BGNU C$B%3%s%Q%$%i$OJ8K!$r4^$s$G$$$k!#(B
K&R$B$NBh(B2$BHG$NIUO?$K$bIU$$$F$$$k!#(B

comp.compilers$B$N%"!<%+%$%V$OJ8K!$K$D$$$F$b$C$H$?$/$5$s$N>pJs$r(B
$BJ]B8$7$F$$$k!#<ALd(B18.3$B$r;2>H$N$3$H!#(B

References: K&R1 Sec. A18 pp. 214-219; K&R2 Sec. A13 pp. 234-
239; ANSI Sec. A.2; ISO Sec. B.2; H&S pp. 423-435 Appendix B.

18.15a:C$B%3%s%Q%$%i$NBEEv@-$r8!::$9$k0lO"$N%F%9%H$r$@$l$+;}$C$F$$$J$$(B
$B$+!#(B

A:Plum Hall($B0JA0$O(BCardiff, NJ$B!"8=:_$O(BHawaii)$B$,Gd$C$F$$$k!#(Bother
$B$=$NB>$N%Q%C%1!<%8$H$7$F$O(BRonald Guilmette$B$N(BRoadTest(tm) Compiler Test
Suites (ftp to netcom.com, pub/rfg/roadtest/announce.txt for
information)$B$d(BNullstone$B$N(BAutomated Compiler Performance
Analysis Tool (http://www.nullstone.com$B;2>H(B)$B$,$"$k!#(BFSF$B$N(B
GNU C(gcc)$B$NG[I[$K$O(Bc-torture-test.tar.Z$B$H$$$&%Q%C%1!<%8$,4^$^(B
$B$l$F$$$k!#$3$l$O%3%s%Q%$%i$N$h$/$"$kLdBjE@$r%A%'%C%/$9$k$b$N$G(B
$B$"$k!#(BKahan$B$N%Q%i%N%$%"!&%F%9%H$O(Bnetlib.att.com$B$N%G%#%l%/%H(B
$B%j(Bnetlib/paranoia$B$+$i<j$KF~$l$k$3$H$,$G$-$k!#$3$l$O(BC$B$NIbF0>.?t(B
$BE@7W;;$N<BAu$K87$7$$%F%9%H$r9T$&!#(B

18.15c:$BM-MQ$J%3!<%I$NCGJR$d%3!<%INc$r=8$a$?$b$N$O$I$3$+$iF~<j2DG=$+!#(B

A:Bob Stout$B$N(B"SNIPPETS"$B%3%l%/%7%g%s$O(Bftp.brokersys.com$B$N%G%#%l%/(B
$B%H%j(Bpub/snippets$B$+%&%(%V$G(Bhttp://www.brokersys.com/snippets/$B$+(B
$B$iF~<j2DG=$G$"$k!#(B

Lars Wirzenius$B$N(B"publib"$B%i%$%V%i%j$,(Bftp.funet.fi$B$N(B
pub/languages/C/Publib/$B$+$iF~<j2DG=$G$"$k!#(B

$B<ALd(B14.12, 18.9, 18.13, 18.16$B$b;2>H$N$3$H!#(B

18.16:$B$I$3$+$i!"$3$l$i$N%Q%V%j%C%/%I%a%$%s$N%W%m%0%i%`$r<j$KF~$l$k$3(B
$B$H$,$G$-$k$N$+!#(B

A:$BF~<j2DG=$J%W%m%0%i%`$N?t$d!"$*$*$C$T$i$K%"%/%;%92DG=$J%"!<%+%$(B
$B%V%5%$%H$N?t$d!"%5%$%H$K%"%/%;%9$7$h$&$H$9$k?M$N?t$,A}$($k$K$D(B
$B$l!"$3$N<ALd$X$N2rEz$O$d$5$7$/$J$k0lJ}$GFq$7$/$b$J$C$F$$$k!#(B

$B<R2q$NLr$KN)$D$3$H$rL\E*$H$7$?Bg$-$J%"!<%+%$%V%5%$%H$,$?$/$5$s(B
$B$"$k!#$?$H$($P(Bftp.uu.net$B$H$+(Barchive.umich.edu$B!"(Boak.oakland.edu$B!"(B
sumex-aim.stanford.edu$B!"(Bwuarchive.wustl.edu$B$J$I$G$"$k!#$3$l$i(B
$B$N%5%$%H$K$OG|Bg$JNL$N%=%U%H%&%(%"$d$=$NB>$N>pJs$rJ]B8$7$F$$$F!"(B
$B$9$Y$F<+M3$KF~<j2DG=$G$"$k!#(BFSF$B$N(BGNU$B%W%m%8%'%/%H$NCf?4$H$J$kG[(B
$BI[$N%5%$%H$O(Bprep.ai.mit.edu$B$G$"$k!#$3$l$i$NM-L>$J%5%$%H$O35$7(B
$B$F:.$s$G$$$F$D$J$,$j$K$/$$!#$=$3$G(B"$B%_%i!<(B(mirror)"$B%5%$%H$,$?$/(B
$B$5$s$"$C$FIi2Y$NJ,;6$KEX$a$F$$$k!#(B

$B%$%s%?!<%M%C%H$K%"%/%;%9$G$-$k?M$K$O!"%"!<%+%$%V%5%$%H$+$i%U%!(B
$B%$%k$r<h$j=P$9@N$+$i$NJ}K!$O(Banonymous ftp$B$G$"$k!#(Bftp$B$,;H$($J$$(B
$B?M$K$O!"%a!<%k$K$h$k(Bftp$B$N%5!<%S%9$r9T$C$F$$$k%5!<%P!<$,$$$/$D(B
$B$+$"$k!#$^$9$^$9%o!<%k%I%o%$%I%&%(%V(B(WWW)$B$,G[I[$N8xI=$d:w0z$@(B
$B$1$G$J$/Bg$-$J%G!<%?%U%!%$%k$NE>Aw$K$^$G;H$o$l$k$h$&$K$J$C$F$-(B
$B$F$$$k!#$-$C$H$b$C$H?7$7$$%"%/%;%9J}K!$,H/I=$5$l$F$$$k$3$H$@$m(B
$B$&!#(B

$B$3$3$^$G$OEz$($d$9$$ItJ,$G$"$k!#Fq$7$$$N$O>\:Y$G$"$k!#$3$N$3$N(B
$B5-;v$O%W%m%0%i%`$rJ]B8$7$F$$$k%5%$%H$N$9$Y$F$d!"%5%$%H$K%"%/%;(B
$B%9$9$kJ}K!$rFM$-;_$a$?$j!"5s$2$k$3$H$O$G$-$J$$!#$=$b$=$b%M%C%H(B
$B$K%"%/%;%9$G$-$k$J$i!"F0$$$F$$$k%5%$%H$dJXMx$J%"%/%;%9J}K!$K$D(B
$B$$$F$N!"$3$N(BFAQ$B$K:\$C$F$k$N$h$j:G?7$N>pJs$K%"%/%;%9$9$k$3$H$,(B
$B$G$-$k!#(B

$B$3$N<ALd$N$=$NB>$N$d$5$7$=$&$GK\Ev$OFq$7$$LL$OEvA3$I$&$d$C$F$I(B
$B$N%5%$%H$,C5$7$F$$$k$b$N$rJ]B8$7$F$$$k$+$r8+$D$1$k$3$H$G$"$k!#(B
$B$3$NJ,Ln$K$OESJ}$b$J$$O+NO$,$D$.9~$^$l$F$$$F!"KhF|$N$h$&$K?7$7(B
$B$$:w0z$D$1$N%5!<%S%9$,8=$l$F$$$k!#$3$&$$$&%5!<%S%9$N:G=i$N$b$N(B
$B$N0l$D$,!V%"!<%A!<(B(archie)$B!W$G$"$k!#%M%C%H>e$GF~<j2DG=$J%W%m%0(B
$B%i%`$d;q8;$GL>A0$,J,$+$C$F$$$k$b$N$J$i!"%"!<%A!<%5!<%P!<$,$I$N(B
anonymous ftp$B%5!<%P!<$K$"$k$+$?$$$F$$65$($F$/$l$k!#%"!<%A!<$N(B
$B%3%^%s%I$,<j85$N%7%9%F%`$K:\$C$F$k$+$b$7$l$J$$$7!"$J$+$C$?$H$7(B
$B$?$i!V(Bhelp$B!W$HK\J8$K=q$$$F(Barchie@archie.cs.mcgill.ca$B$X%a!<%k$r(B
$BAw$l$P$$$$!#(B

Usenet$B$X%"%/%;%9$G$-$k$N$J$i!"(Bcomp.sources.unix$B$d(B
comp.sources.misc$B$H$$$C$?%0%k!<%W$X$NDj4|E*$J%]%9%H$r;2>H$9$k(B
$B$3$H!#$=$3$K$OJ]B8$NJ}?K$d<h$j=P$7$+$?$,5-=R$7$F$"$k!#$3$l$i$N(B
$B%0%k!<%W$KEj9F$5$l$?$b$N$O(B
ftp://gatekeeper.dec.com/pub/usenet/comp.sources.unix/$B$d(B
ftp://ftp.uu.net/usenet/comp.sources.unix/$B$H$$$C$?$H$3$m$K%"!<(B
$B%+%$%V$5$l$F$$$k!#%K%e!<%9%0%k!<%W(Bcomp.archives$B$N5-;v$K$OMM!9(B
$B$J>pJs$N!"(Banonymous ftp$B$K$h$kF~<jJ}K!$N>R2p$,4^$^$l$F$$$k!#:G(B
$B8e$K(Bcomp.souces.wanted$B$,!"$?$$$F$$$O%=!<%9$N$"$j$+$r$?$:$M$k$N(B
$B$K:G$b$U$5$o$7$$%K%e!<%9%0%k!<%W$G$"$k!#$=$N>l9g$G$b%]%9%H$9$k(B
$BA0$K(BFAQ$B$N%j%9%H$G$"$k!V(BHow to find sources($B$I$&$d$C$F%=!<%9$r(B
$B8+$D$+$l$P$h$$$+(B)$B!W$r%A%'%C%/$9$k$3$H!#(B

$B<ALd(B14.12$B$b;2>H$N$3$H!#(B

19$B>O(B $B%7%9%F%`0MB8(B

19.1:Return$B%-!<$,2!$5$l$k$3$H$rBT$D$3$H$J$7$K%-!<%\!<%I$+$i(B1$BJ8;zFI(B
$B$`$N$O$I$&$9$l$P$$$$$N$+!#F~NO$r<u$1IU$1$F$k4V!"J8;z$,2hLL$K(B
$B%(%3!<$5$l$J$$$h$&$K$9$k$K$O$I$&$9$l$P$$$$$N$+!#(B

A:$B$d$l$d$l!"(BC$B$K$O>e$N$h$&$J$3$H$r9T$&I8=`E*$JJ}K!$b0\?"@-$N(B
$B9b$$J}K!$b$J$$!#2hLL$H$+%-!<%\!<%I$H$O$I$&$$$&$b$N$r;X$9$N$+$5(B
$B$(5,3J$NCf$G$O=P$F$3$J$$!#5,3J$O4JC1$J!"J8;z$NF~=PNO%9%H%j!<%`$7(B
$B$+07$C$F$$$J$$!#(B

$B$I$3$+$NAX$G!"%-!<%\!<%I$+$i$NF~NO$ODL>o$$$C$?$s=8$a$i$l0lEY$K(B
1$B9T$:$D!"F~NO$rMW5a$7$F$$$k%W%m%0%i%`$KEO$5$l$k!#$3$l$K$h$C$F(B
$B%*%Z%l!<%F%#%s%0%7%9%F%`$,F~NO9T$NJT=85!G=(B($B%P%C%/%9%Z!<%9(B/$B%G%j!<(B
$B%H(B/rubout$B$J$I(B)$B$r0l4S$7$?J}K!$G!"$7$+$b%W%m%0%i%`$4$H$KAH$_9~$`(B
$BI,MW$J$/MQ0U$9$k$9$k$3$H$,2DG=$H$J$k!#%f!<%6!<$,G<F@$7$F2~9T%-!<(B
($B$"$k$$$ON`;w$N%-!<(B)$B$rC!$$$F=i$a$FF~NO9T$O8F$S=P$7$?B&$N%W%m%0(B
$B%i%`$+$i;H$($k$h$&$K$J$k!#%W%m%0%i%`$,0lEY$K0lJ8;z(B(getchar()$B$N(B
$B$h$&$J%k!<%A%s$r;H$C$F(B)$BF~NO$rFI$s$G$$$k$h$&$K8+$($F$b!":G=i$N(B
$B8F$S=P$7$O%f!<%6!<$,9TA4BN$rF~NO$9$k$^$G%V%m%C%/$5$l$k!#9TA4BN(B
$B$,FI$_9~$^$l$?;~E@$G$O!"B?$/$NJ8;z$,MxMQ2DG=$K$J$j!"Lp7Q$.Aa$N(B
$BJ8;z$N<h$j=P$7MW5a$b(B($BNc(B:getchar()$B$N8F$S=P$7(B)$BK~$?$5$l$k!#(B

$B%W%m%0%i%`$KJ8;z$,E~Ce$9$k$H$9$0$KFI$^$;$?$$$J$i!"=hM}$NN.$l$O(B
$BF~NO%9%H%j!<%`$N$I$3$GF~NO$r(B1$B9TJ,=8$a$F$$$k$+$H!"(B1$B9TJ,=8$a$k$N(B
$B$r$d$a$k$K$O$I$&$9$l$P$h$$$+$K0MB8$9$k!#%7%9%F%`$K$h$C$F$O(B($BNc(B:
MS-DOS, $B$"$k%b!<%I$G$N(BVMS)$B!"%W%m%0%i%`$O0[$J$C$?!"$^$?$O=$@5$5(B
$B$l$?(BOS$B%l%Y%k$NF~NO%3!<%k$N0lAH$r;H$&$3$H$G!"0lEY$K(B1$B9TJ,4]!9=h(B
$BM}$9$k$3$H$r1*2s$9$k$3$H$,$G$-$k!#$=$NB>$N%7%9%F%`$G$O(B($BNc(B:Unix$B!"(B
$BJL$N%b!<%I$G$N(BVMS)$B!"%*%Z%l!<%F%#%s%0%7%9%F%`$N%7%j%"%kF~NO$rC4(B
$BEv$7$F$$$kItJ,(B("$B%?!<%_%J%k%I%i%$%P!<(B"$B$H8F$P$l$k$3$H$,B?$$(B)$B$r!"(B
$B0lEY$K0l9TJ,4]!9$O=hM}$7$J$$%b!<%I$K0\$9!#0\$C$?8e$O!"DL>o$NF~(B
$BNO%k!<%A%s(B($BNc(B:read(), getchar()$B$J$I(B)$B$OJ8;z$rB(:B$KJV$9!#$$$/$D(B
$B$+$N%7%9%F%`$G$O(B($BFC$K8E$$!"%P%C%A=hM}Cf?4$NHFMQ5!$G$O(B)$BF~NO$N=h(B
$BM}$O<~JU$N%W%m%;%C%5$G9T$o$l!"0lEY$K0l9T4]!9=hM}$5$;$k$+$I$&(B
$B$+$7$+L?Na$9$k$3$H$O$G$-$J$$!#(B

$B$h$C$F!"0lEY$K(B1$BJ8;z$rF~NO$9$k$3$H$,I,MW$J$i(B($B$"$k$$$O%-!<%\!<(B
$B%I$+$i$NF~NO;~$N2hLL$X$N%(%3!<$r$H$a$kI,MW$,$"$k$J$i!#$3$l$ON`(B
$B;w$NLdBj$G$"$k(B)$B!";H$C$F$$$k%7%9%F%`$K8GM-$N5;$r;H$&I,MW$,$"$k!#(B
comp.lang.c$B$O(BC$B$G<j$K$*$($kOCBj$,Cf?4$J$N$G!">e$N$h$&$J<ALd$O(B
comp.unix.questions$B$d(Bcomp.os.msdos.programmer$B$H$$$C$?FCDj$N%7(B
$B%9%F%`$N%K%e!<%9%0%k!<%W$GJ9$/$+!"$=$&$$$&%0%k!<%W$N(BFAQ$B$r8+$k(B
$B$[$&$,IaDL$O$h$$2rEz$,JV$C$FMh$k!#%7%9%F%`$,0c$C$F$b2rEz$O6&DL(B
$B$G$"$k$3$H$,B?$$$,!"%7%9%F%`FCM-$N<ALd$KEz$($k$H$-$O!"7/$N%7%9(B
$B%F%`$K$"$F$O$^$k2rEz$,B>$N?MA4It$K$"$F$O$^$k2rEz$G$J$$$+$b$7$l(B
$B$J$$$3$H$KCm0U$9$k$3$H!#(B

$B$7$+$7$J$,$i!"$3$l$i$N<ALd$O$"$^$j$K$b2?EY$bJ9$+$l$k$N$G!"0J2<(B
$B$K$h$/$"$k>u67MQ$N4J7i$J2rEz$r$D$1$k!#(B

curses$B$NCf$K$O4X?t(Bcbreak()$B$rMQ0U$7$F$$$k$b$N$b$"$k!#$3$l$,K>$_(B
$B$N5!G=$r2L$?$9J*$G$"$k!#2hLL$KI=<($9$k$3$H$J$/%Q%9%o!<%I$rFI$_(B
$B$?$$$H$$$&$N$G$"$l$P(Bgetpass()$B$r;n$;$P$h$$!#(BUnix$B$G$O!"%?!<%_%J(B
$B%k%I%i%$%P!<$N%b!<%I$r$$$8$k$N$K(Bioctl$B$r;H$($P$h$$(B($B!V8EE5E*$J!W(B
$B%7%9%F%`$G$O(BCBREAK$B$d(BRAW$B!"(BSYSTEM V$B$d(BPOSIX$B=`5r$N%7%9%F%`$G$O(B
ICANON$B!"(Bc_cc[VMIN]$B!"(Bc_cc[VTIME]$B!"$9$Y$F$N%P!<%8%g%s$G(BECHO)$B!#:G(B
$B8e$N:G8e$NJ}K!$H$7$F$O(Bsystem()$B$H(Bstty$B%3%^%s%I$r;H$&!#(B($B$b$C$H>\(B
$B$7$/CN$j$?$1$l$P!"8EE5E*$J%P!<%8%g%s$G$O(B<sgtty.h>$B$H(Btty(4)$B!"(B
System V$B$G$O(B<termio.h>$B$H(Btermio(4)$B!"(BPOSIX$B$G$O(B<termios.h>$B$H(B
termios(4)$B$r;2>H$;$h!#(B) MS-DOS$B$G$O!"(Bgetch()$B$d(Bgetche()$B$r;H$&$+!"(B
$BBP1~$9$k(BBIOS$B$N3d$j9~$_$r;H$&!#(BVMS$B$G$O!"%9%/%j!<%s4IM}5!G=(B
(SMGZ$)$B$d(Bcurses$B!"0lEY$K0lJ8;zM_$7$$$N$G$"$l$PDc%l%Y%k$N(B$QIO$B$r(B
IO$_READVBLK$B$r(B($B$?$V$s(BIO$M_NOECHO$B$bI,MW$@$m$&(B)$BIU$1$F;n$9$3$H(B
(VMS$B$NC<Kv%I%i%$%P!<$G0lEY$K0lJ8;z!"$9$J$o$A(B"$BAGDL$7(B"$B%b!<%I$r@_(B
$BDj$9$k$3$H$b2DG=$G$"$k(B)$B!#$=$N$[$+$N%7%9%F%`$G$O!"<+J,$G$d$k$7(B
$B$+$J$$!#(B

($B$A$J$_$K!"(Bsetbuf()$B$d(Bsetvbuf()$B$r;H$C$FI8=`F~=PNO$r%P%C%U%!$7$J(B
$B$$$h$&$K$9$k$@$1$G$O0lHL$K$O(B1$BEY$K(B1$BJ8;z$NF~NO$r<B8=$9$k$3$H$,(B
$B$G$-$J$$$3$H$KCm0U!#(B)

$B0\?"@-$N9b$$%W%m%0%i%`$r=q$/$D$b$j$J$i!"$h$$<h$jAH$_$+$?$O(B(1)
$B%?!<%_%J%k%I%i%$%P!<$dF~NO%7%9%F%`$r(B($BI,MW$J$i(B)$B0lEY$K(B1$BJ8;z$:$D(B
$B$N%b!<%I$K0\$94X?t!"(B(2)$BJ8;z$r<hF@$9$k4X?t!"(B(3)$B4X?t$N=hM}$,=*$o$C(B
$B$?$i%?!<%_%J%k%I%i%$%P!<$r:G=i$N>uBV$KLa$94X?t$N(B3$B$D$N4X?t$r0l(B
$BAH$K$7$?$b$N$r<+J,$GDj5A$3$H$G$"$k!#(B($BM}A[$r$$$($P!"$3$N$h$&$J4X(B
$B?t$N=89g$O!"$$$D$+(BC$B5,3J$N0lIt$K$J$k$+$b$7$l$J$$!#(B) $B$3$N(BFAQ$B$N3H(B
$BD%HG$K$O(B($B<ALd(B20.40$B;2>H(B)$B!"$$$/$D$+$NIa5Z$7$F$$$k%7%9%F%`MQ$NNc(B
$B$b:\$C$F$$$k!#(B

$B<ALd(B19.2$B$b;2>H$N$3$H!#(B

References: PCS Sec. 10 pp. 128-9, Sec. 10.1 pp. 130-1; POSIX
Sec. 7.

19.2:$BFI$_9~$`$3$H$,$G$-$kJ8;z$,;D$C$F$$$k$+$I$&$+(B($B$G$-$k$J$i8e$$$/(B
$B$D;D$C$F$$$k$+(B)$BCN$k$3$H$,$G$-$k$+!#$G$-$J$$$H$7$?$i!"J8;z$,F~$C(B
$B$F$3$J$$$H$-$K=hM}$,;_$^$C$F$7$^$o$J$$$h$&$JFI$_9~$_$O$I$&$d$l(B
$B$P$h$$$+!#(B

A:$B$3$l$b!"$^$C$?$/%*%Z%l!<%F%#%s%0%7%9%F%`$K0MB8$7$?LdBj$G$"$k!#(B
curses$B$NCf$K$O!"$=$N$h$&$JL\E*$N$?$a$K4X?t(Bnodelay()$B$rMQ0U$7$F(B
$B$$$k$b$N$b$"$k!#%7%9%F%`$K$h$C$F$O!"!V%V%m%C%/$7$J$$(BI/O$B!W$d(B
$B!V(Bselect$B!W$H$+!V(Bpoll$B!W$H$$$&L>$N%7%9%F%`%3!<%k!"(BFIONREAD ioctl$B!"(B
c_cc[YTIME]$B!"(Bkbhit()$B!"(Brdchk()$B!"$"$k$$$O(Bopen()$B$d(Bfcntl()$B$N(B
O_NDELAY$B%*%W%7%g%s$rMQ0U$7$F$$$k$+$b$7$l$J$$!#<ALd(B19.1$B$b;2>H$N(B
$B$3$H!#(B

19.3:$B=hM}$N2?(B%$B$^$G=*N;$7$?$+$rI=<($7$F!"$=$l$r$=$N>l$G99?7$5$;$k$K(B
$B$O$I$&$9$l$P$h$$$+!#$^$?;E;v$N?J$s$G$$$k$3$H$r(B"$B%P%H%s$r2s$9(B"$B$3(B
$B$H$GCN$i$;$k$N$O$I$&$d$l$P$h$$$N$+!#(B

A:$B$3$&$$$&4JC1$J$3$H$G$"$l$P!"7k9=0\?"@-9b$/9T$&$3$H$,$G$-$k!#J8(B
$B;z(B'\r'$B$r=PNO$9$k$H!"IaDL$O9TAw$j(B(line feed)$B$9$k$3$H$J$/I|5"(B
(carriage return)$B$9$k!#$=$l$G8=:_9T$r>e=q$-$9$k$3$H$,$G$-$k!#(B
$BJ8;z(B'\b'$B$O%P%C%/%9%Z!<%9$rI=$o$7!"IaDL$O%+!<%=%k$r:8$K(B1$BJ8;zF0(B
$B$+$9!#(B

References: ANSI Sec. 2.2.2; ISO Sec. 5.2.2.

19.4:$B$I$&$9$l$P2hLL$KI=<($5$l$F$$$kJ8;z$r0lA]$9$k$3$H$,$G$-$k$+!#(B
$B$I$&$9$l$PH?E>J8;z$G=PNO$9$k$3$H$,$G$-$k$+!#(B
$B$I$&$9$l$P%+!<%=%k$r!";XDj$7$?(Bx,y$B0LCV$KF0$+$9$3$H$,$G$-$k$+!#(B

A:$B$3$N<j$NOC$O!"C<Kv(B($B$dI=<(AuCV(B)$B$N<oN`$K:81&$5$l$k!#$3$&$$$&(B
$B=hM}$K$O(Btermcap$B$d(Bcurses$B$N$h$&$J%i%$%V%i%j!"$"$k$$$O%7%9%F%`(B
$B8GM-$N%k!<%A%s$r;H$o$J$1$l$P$$$1$J$$!#(B

$B2hLL$r%/%j%"$9$k$N$KB?>/$G$b0\?"@-$N9b$$J}K!$O!"MQ;fAw$j(B
(form-feed)$BJ8;z(B('\f')$B$r0u;z$9$k$3$H$G$"$k!#$3$NJ8;z$r0u;z$9$k(B
$B$3$H$GI=<($5$l$F$$$kFbMF$,%/%j%"$5$l$k$b$N$b$"$k!#$b$C$H0\?"@-(B
$B$N9b$$J}K!$O!":#I=<($5$l$F$$$k$b$N$,A4It8+$($J$/$J$k$@$12~9T$r(B
$B0u;z$9$k$3$H$G$"$k!#:G8e$N<jCJ$H$7$F!"(Bsystem() ($B<ALd(B19.27$B;2>H(B)
$B$r;H$C$F%*%Z%l!<%F%#%s%0%7%9%F%`$,MQ0U$7$F$$$k2hLL%/%j%"$NL?Na(B
$B$r8F$S=P$9$3$H$b$G$-$k!#(B

References: PCS Sec. 5.1.4 pp. 54-60, Sec. 5.1.5 pp. 60-62.

19.5:$BLp0u%-!<$rFI$`$K$O$I$&$7$?$i$h$$$+!#%U%!%s%/%7%g%s%-!<$O!#(B

A:terminfo$B$d$$$/$D$+$N(Btermcap$B$d$$$/$D$+$N(Bcurses$B$O!"$3$&$$$&(BASCII
$B%3!<%I$K$J$$%-!<$KBP1~$7$F$$$k!#$h$/$"$k$N$O!"FC<l$J%-!<$OJ#?t(B
$B$NJ8;z$rO"B3$7$FAw$j=P$9(B($BIaDL$O(BESC, '\033'$B$G;O$^$k(B)$B!#$3$&$$$&(B
$BJ8;z$NJB$S$N9=J82r@O$O?5=E$rMW$9$k$b$N$K$J$k2DG=@-$,$"$k(B
(curses$B$J$i!":G=i$K(Bkeypad()$B$r8F$Y$P!"9=J82r@O$^$G$d$C$F$/$l$k(B)$B!#(B

MS-DOS$B$G$O%-!<%\!<%I$+$i$NF~NO$rFI$s$G$$$FCM(B0('0'$B$G$O$J$$(B)$B$r;}(B
$B$DJ8;z$r<u$1<h$C$?$i!"$=$l$O<!$KFI$`J8;z$OFCJL$J%-!<$rI=$o$9Id(B
$B9f$G$"$k$3$H$r0UL#$7$F$$$k!#$I$s$J(BDOS$B$N%W%m%0%_%s%0%,%$%I$G$b(B
$B$$$$$+$i%-!<%\!<%I$N%3!<%I$r;2>H$9$k$3$H!#(B($B4JC1$K@bL@$9$k!#(B
$B>e!":8!"1&!"2<Lp0u%-!<$O$=$l$>$l(B72$B!"(B75$B!"(B77$B!"(B80$B$G$"$k!#%U%!%s%/(B
$B%7%g%s%-!<$O(B59$B$+$i(B68$B$KBP1~$9$k!#LuCm(B: $B$3$l$O(BPC$B8_495!$NOC$G$"$k!#(B
NEC$B$N(B98$B%7%j!<%:$K$OEv$F$O$^$i$J$$(B)

References: PCS Sec. 5.1.4 pp. 56-7.

19.6:$B$I$&$9$l$P%^%&%9$N=PNO$rFI$`$3$H$,$G$-$k$+!#(B

A:$BBP>]$H$9$k%7%9%F%`$N;qNA$r;2>H$9$k$3$H!#$"$k$$$OE,@Z$J%7%9%F%`(B
$B@lLg$N%K%e!<%9%0%k!<%W$G$?$:$M$k$3$H(B($BEvA3(BFAQ$B$r@h$KD4$Y$k$3$H(B)$B!#(B
$B%^%&%9$N<h$j07$$$O!"(BX Window$B$H(BMS-DOS$B$H(BMacintosh$B$G$O$^$C$?$/(B
$B0[$J$k!#$?$V$sB>$N%7%9%F%`$G$b0[$J$k$@$m$&!#(B

19.7:$B%7%j%"%k(B(COM)$B%]!<%H$r;H$C$?(BI/O$B$O$I$&$d$l$P$h$$$+!#(B

A:$B$=$l$O%7%9%F%`<!Bh$G$"$k!#(BUnix$B$G$O$h$/!"(B/dev$B$K$"$k%G%P%$%9$r%*!<(B
$B%W%s$7$?$j(B(open)$B!"FI$s$@$j(B(read)$B!"=q$-9~$s$@$j(B(write)$B$9$k!#$^(B
$B$?%G%P%$%9(B $B%I%i%$%P$N5!G=$r;H$C$F!"(BI/O$B$NFC@-$rD4@0$9$k!#(B($B<ALd(B
19.1$B$H(B19.2$B$r;2>H!#(B) MS-DOS$B$G$O!"$"$i$+$8$aDj5A$5$l$?%9%H%j!<%`(B
$B$G$"$k(Bstdaux$B$d!"(BCOM1$B$N$h$&$J%9%Z%7%c%k%U%!%$%k$d!"86;OE*$J(BBIOS
$B$N3d$j9~$_$d!"(B($B$+$J$j$N@-G=$rMW5a$9$k$H$-$O(B)$B@$$NCf$K$?$/$5$s$"(B
$B$k3d$j9~$_6nF0$N%7%j%"%k(BI/O$B$N%Q%C%1!<%8$r;H$&!#%M%C%H%o!<%/>e(B
$B$G2??M$+$,(BJoe Campbell$B$N=q$$$?!X(BC Programmer's Guide to Serial
Communications$B!Y$r?dA&$7$F$$$k!#(B

19.8:$B=PNO@h$r$I$&$9$l$P%W%j%s%?!<$K@Z$jBX$($k$3$H$,$G$-$k$+!#(B

A:Unix$B$G$O(Bpopen()($B<ALd(B19.30$B;2>H(B)$B$r;H$C$F(Blp$B$d(Blpr$B%W%m%0%i%`$K=q$-(B
$B9~$`$+!"(B/dev/lp$B$N$h$&$J%9%Z%7%c%k%U%!%$%k$r%*!<%W%s$9$k!#(B
MS-DOS$B$G$O!"(B(C$B5,3J$NI8=`$G$O$J$$$,(B)$B$"$i$+$8$aDj5A$5$l$?I8=`F~(B
$B=PNO$N%9%H%j!<%`(Bstdprn$B$K=q$-9~$`$+!"%9%Z%7%c%k%U%!%$%k$G$"$k(B
PRN$B$d(BLPT1$B$r%*!<%W%s$9$k!#(B

References: PCS Sec. 5.3 pp. 72-74.

19.9:$B%(%9%1!<%W%7!<%1%s%9$r;H$C$F!"C<Kv$d$=$NB>$N%G%P%$%9$r@)8f$9$k(B
$B$N$O$I$&$9$l$P$$$$$N$+!#(B

A:$B$=$b$=$b%G%P%$%9$KJ8;z$rAw$j9~$`$N$O$I$&$d$l$P$$$$$+$o$+$C$F$$(B
$B$l$P(B($B>e$N<ALd(B19.8$B;2>H(B)$B!"%(%9%1!<%W%7!<%1%s%9$rAw$j9~$`$N$O2?$G(B
$B$b$J$$!#(BASCII$B$G$O!"(BESC$B$N%3!<%I$O(B033(10$B?J$G$O(B27)$B$J$N$G!"(B

fprintf(ofd, "\033[J");

$B$N$h$&$J%3!<%I$r=q$1$P(BESC [ J$B$H$$$&%7!<%1%s%9$rAw$j=P$9!#(B

19.10:$B%0%i%U%#%C%/$9$k$N$O!#(B

A:$B@N!9!"(BUnix$B$K$O%G%P%$%9$K0MB8$7$J$$!"(Bplot(3)$B$d(B
plot(5)$B$K5-=R$5$l$?!">.$5$/$^$H$^$C$?7k9=$h$/$G$-$??^<(%k!<%A%s$,(B
$BB8:_$7$?!#$7$+$7!"$[$H$s$I;H$o$l$J$/$J$C$F$7$^$C$?!#(B

MS-DOS$B$G%W%m%0%i%`$9$k$H$-$O!"(BVESA$B$d(BBGI$B$K=`5r$7$?%i%$%V%i%j(B
$B$r;H$C$?$[$&$,$$$$$@$m$&!#(B

$B%W%m%C%?$N<oN`$,$O$C$-$j$7$F$k$H$-$O!"3($rIA$+$;$k$3$H$OE,@Z$J(B
$B%(%9%1!<%W%7!<%1%s%9$rAw$kOC$K$J$k!#$7$?$,$C$F<ALd(B19.9$B$r;2>H$N(B
$B$3$H!#%W%m%C%?$N%Y%s%@!<$,(BC$B$+$i8F$Y$k%i%$%V%i%j$rDs6!$7$F$k$+(B
$B$b$7$l$J$$$7!"%$%s%?!<%M%C%H$+$i0z$CD%$C$FMh$k$3$H$,$G$-$k$+$b(B
$B$7$l$J$$!#(B

$BFCDj$N%&%$%s%I%&%7%9%F%`(B(Macintosh$B!"(BX Window$B!"(BMicrosoft
Windows)$BMQ$N%W%m%0%i%`$K$O!"$=$N%7%9%F%`$,;}$D5!G=$r;H$&!#4X(B
$BO"$9$k;qNA$d%K%e!<%9%0%k!<%W$d(BFAQ$B$r;2>H$N$3$H!#(B

References: PCS Sec. 5.4 pp. 75-77.

19.11:$B%U%!%$%k$,B8:_$9$k$+$I$&$+$O$I$&$d$C$FD4$Y$l$P$h$$$+!#;XDj$5$l(B
$B$?=PNO%U%!%$%k$,$9$G$KB8:_$9$k$H$-$K$O%f!<%6!<$KN;2r$r<h$j$?$$!#(B

A:$B$3$NH=Dj$r?.Mj@-$,9b$/0\?"@-$b9b$/<B9T$9$k$3$H$O0U30$K$bFq$7$$!#(B
$B$I$s$J%F%9%H$b!"%F%9%H$r$7$F$+$i%U%!%$%k$r3+$3$&$H$9$k$^$G$N4V(B
$B$K(B($B$=$NB>$N%W%m%;%9$K$h$C$F(B)$B@8@.$5$l$?$j:o=|$5$l$?$j$9$l$P!"L5(B
$B8z$K$J$C$F$7$^$&2DG=@-$,$"$k!#(B

$B2rEz$H$7$F9M$($i$l$k(B3$B$D$O(Bstat()$B$H(Baccess()$B$H(Bfopen()$B$G$"$k!#(B
(fopen()$B$r;H$C$F%U%!%$%k$NB8:_$r$6$C$H%F%9%H$9$k$K$O!"%U%!%$%k(B
$B$r3+$$$FB(:B$KJD$8$l$P$$$$!#(B)$B$3$N(B3$B$D$NCf$G(Bfopen()$B$@$1$,9-$/0\(B
$B?"2DG=$G!"(Baccess()$B$O$b$7B8:_$7$F$b!"(BUnix$B$N(Bset-UID$B5!G=$r;H$C$?(B
$B%W%m%0%i%`$G$OCm0U?<$/;H$&I,MW$,$"$k!#(B

$B%U%!%$%k$r3+$/$h$&$J:n6H$,$&$^$/$$$/$+A0$b$C$FM=B,$7$h$&$H$9$k(B
$B$h$j!"3+$$$F$_$F!"La$jCM$r8+$F!"<:GT$7$F$?$iJ86g$r$D$1$k$[$&$,(B
$BNI$$9M$($G$"$k!#(B($B$9$0$o$+$k$h$&$K!"$3$l$G$O!"%U%!%$%k$,B8:_$9(B
$B$k$H$-$O>e=q$-$7$?$/$J$$$H$-$K$O!"%U%!%$%k$r3+$/$H$-$K(BO_EXCL$B%*(B
$B%W%7%g%s$N$h$&$J$b$N$,$J$$$H$&$^$/$$$+$J$$!#(BO_EXCL$B%*%W%7%g%s$O(B
$B$3$N>l9g$d$C$FM_$7$$$3$H$r$T$C$?$j$d$C$F$/$l$k(B)

References: PCS Sec. 12 pp. 189,213; POSIX Sec. 5.3.1,
Sec. 5.6.2, Sec. 5.6.3.

19.12:$B$I$&$9$l$PFI$`A0$K%U%!%$%k$NBg$-$5$rCN$k$3$H$,$G$-$k$+!#(B

A:$B$b$7$b(B"$B%U%!%$%k$NBg$-$5(B"$B$,!"(BC$B8@8l$r;H$C$F%U%!%$%k$+$iFI$`$3$H(B
$B$N$G$-$kJ8;z$N?t$H$$$&$3$H$G$"$l$P!"0lHL$K$O$3$N?t$rA0$b$C$FCN(B
$B$k$3$H$OIT2DG=$G$"$k!#(B

Unix$B$G$O4X?t(Bstat()$B$,@53N$JEz$($rM?$($F$/$l$k!#B>$N%7%9%F%`$NCf(B
$B$K$b(BUnix$B$N(Bstat()$B$KN`;w$N4X?t$rMQ0U$7$F$$$k$b$N$,$"$C$F!"$=$&$$(B
$B$&>l9g$O6a;wCM$rM?$($F$/$l$k!#(Bfseek()$B$r8F$s$G%U%!%$%k$N:G8e$^(B
$B$G?J$s$G!"(Bftell()$B$r;H$($P$h$$!#$7$+$7$3$l$b(Bstat()$B$,Jz$($F$$$k(B
$B$N$HF1$8LdBj$rJz$($F$$$k!#(Bfstat()$B$O0\?"@-$,9b$/$J$$$7!"$?$$$F(B
$B$$(Bstat()$B$,JV$9$N$HF1$8>pJs$rJV$9!#(Bftell()$B$O%P%$%J%j!<%U%!%$%k(B
$B$r=|$$$F$O@5$7$/%P%$%H?t$rJV$9$H$O8B$i$J$$!#(Bfilesize()$B$H$+(B
filelength()$B$H$$$&%k!<%A%s$rMQ0U$7$F$$$k%7%9%F%`$b$"$k!#$3$l$i(B
$B$N%k!<%A%s$b0\?"@-$,9b$$$o$1$G$O$J$$!#(B

$BK\Ev$K%U%!%$%k$N%5%$%:$rA0$b$C$F7h$a$F$*$+$J$1$l$P$J$i$J$$$N$+!#(B
C$B%W%m%0%i%`$+$i8+$($k%U%!%$%k$N%5%$%:$r7hDj$9$k:G$b@53N$JJ}K!(B
$B$O!"%U%!%$%k$r3+$$$FFI$`$3$H$G$"$k$+$i!"%U%!%$%k$rFI$_$J$,$i%5(B
$B%$%:$rCN$k$h$&$K=q$-49$($?$[$&$,$$$$!#(B

References: ANSI Sec. 4.9.9.4; ISO Sec. 7.9.9.4; H&S
Sec. 15.5.1; PCS Sec. 12 p. 213; POSIX Sec. 5.6.2.

19.12a:$B%U%!%$%k$,$$$DJQ99$5$l$?$+$O$I$&$9$l$P$o$+$k$+!#(B

A:Unix$B$d(BPOSIX$B$K$O(Bstat()$B$H$$$&$N$,$"$k!#(B
$B$3$l$O$=$NB>$NB?$/$N%7%9%F%`$G$bMQ0U$5$l$F$$$k!#(B
($B<ALd(B19.12$B;2>H!#(B)

19.13:$B$^$C$?$/>C$75n$k$3$H$d>e=q$-$9$k$3$H$J$/%U%!%$%k$r$=$N>l$GC;$/(B
$B$9$k$3$H$O$G$-$k$+!#(B

A:BSD$B%7%9%F%`$O(Bftruncate()$B$r!"B>$N$b$N$O(Bchsize()$B$r!"$^$?%7%9%F%`(B
$B$K$h$C$F$O(B($B%I%-%e%a%s%H$K$O=q$+$l$F$$$J$$$@$m$&$1$l$I(B)fcntl$B$N(B
$B%*%W%7%g%s$H$7$F(BF_FREESP$B$rMQ0U$7$F$$$k!#(BMS-DOS$B$G$O(Bwrite(fd,
"", 0)$B$,;H$($k$3$H$,$"$k!#$1$l$IF,$N$[$&$K$"$k%V%m%C%/$r:o=|$9(B
$B$k!"K\Ev$K0\?"@-$N9b$$2r7h:v$bJ}K!$bB8:_$7$J$$!#<ALd(B19.14$B$b;2(B
$B>H$N$3$H!#(B

19.14:$B%U%!%$%k$N??$sCf$K(B1$B9T(B($B$"$k$$$O(B1$B%l%3!<%I(B)$BA^F~$9$k!"$"$k$$$O:o=|(B
$B$9$k$N$O$I$&$d$l$P$h$$$+!#(B

A:$B%U%!%$%k$r=q$-D>$9$N$G$J$1$l$P!"$?$V$sIT2DG=$@$m$&!#IaDL$O!"C1(B
$B=c$K%U%!%$%k$r=q$-D>$9!#(B($B%l%3!<%I$r:o=|$9$kBe$o$j$K!":o=|$7$?$H(B
$B0u$rIU$1$k$@$1$K$9$k<j$b$"$k!#$3$&$9$l$P=q$-D>$7$r$7$J$/$F$b$9(B
$B$`!#(B) $B<ALd(B12.30$B$H(B19.13$B$b;2>H$N$3$H!#(B

19.15:$B%*!<%W%s$7$?%U%!%$%k$N%U%!%$%k<1JL;R$+$i%U%!%$%kL>$rI|3h$9$k$3(B
$B$H$,$G$-$k$+!#(B

A:$B$3$NLdBj$O!"$?$$$F$$2r7hITG=$G$"$k!#$?$H$($P(BUnix$B$G$O%G%#%9%/A4(B
$BBN$rC<$+$iC<$^$GD4$Y$k$3$H$,(B($B$?$V$sFCJL$J5v2D$,I,MW$H$J$k$@$m(B
$B$&$,(B)$BM}6~$N>e$G$OI,MW$G!"%U%!%$%k<1JL;R$,%Q%$%W$d:o=|$5$l$?8e(B
$B$N%U%!%$%k(B($BJ#?t$N%j%s%/$,D%$i$l$F$$$k%U%!%$%k$KBP$7$F$O8m2r$r(B
$B$^$M$/$h$&$JEz$($rJV$9$@$m$&(B)$B$r;X$7$F$$$?$i!"$3$NJ}K!$b$&$^$/(B
$B$$$+$J$$!#%*!<%W%s$7$?%U%!%$%k$NL>A0$r(B($B$?$V$s(Bfopen()$B$K4X?t$r0l(B
$BCJ$+$V$;$F(B)$B<+J,$G3P$($F$*$/$N$,0lHV$h$$!#(B

19.16:$B$I$&$d$l$P%U%!%$%k$r:o=|$9$k$3$H$,$G$-$k$+!#(B

A:$BI8=`(BC$B$N%i%$%V%i%j4X?t$K(Bremove()$B$,$"$k!#(B($B$h$C$F$3$l$O!"$3$N>O(B
$B$N?t>/$J$$!"2rEz$,!V%7%9%F%`0MB8!W$G$J$$<ALd$G$"$k!#(B) $B8E$$!"(B
ANSI$B@)Dj0JA0$N(BUnix$B%7%9%F%`$K$O(Bremove()$B$O$J$$$N$G!"$=$N>l9g$O(B
unlink()$B$r;n$7$F$_$k$3$H!#(B

References: K&R2 Sec. B1.1 p. 242; ANSI Sec. 4.9.4.1; ISO
Sec. 7.9.4.1; H&S Sec. 15.15 p. 382; PCS Sec. 12 pp. 208,220-
221; POSIX Sec. 5.5.1, Sec. 8.2.4.

19.17:$B$I$&$7$FL@<(E*$K%Q%9$r;XDj$7$F%U%!%$%k$,3+$1$J$$$N$+!#(B

fopen("c:\newdir\file.dat", "r")

$B$@$H$&$^$/$$$+$J$$!#(B

A:$B$3$3$G3+$3$&$H$7$F$$$k%U%!%$%k$O!"$D$^$j%U%!%$%kL>$K(B\n$B$d(B\f$B$r4^(B
$B$s$@%U%!%$%k$O!"$?$V$sB8:_$7$J$$$7!"3+$3$&$H$7$F$k$D$b$j$N%U%!(B
$B%$%k$G$b$J$$!#(B

$BJ8;zDj?t$dJ8;zNs%j%F%i%k$G$O!"%P%C%/%9%i%C%7%e(B\$B$O3HD%J8;z(B($B%(%9(B
$B%1!<%W%-%c%i%/%?(B)$B$G$"$j!"<!$KB3$/J8;z$KFCJL$J0UL#$rM?$($k!#(B
$B%P%C%/%9%i%C%7%e$=$N$b$N$r%Q%9L>$N0lIt$H$7$F(Bfopen()($B$=$NB>$N%k!<(B
$B%A%s$G$b(B)$B$K@5$7$/EO$9$K$O!"%P%C%/%9%i%C%7%e$r(B2$B2sB3$1$F=q$+$J$1(B
$B$l$P$$$1$J$$!#(B1$B$D$a$N%P%C%/%9%i%C%7%e$O(B2$B$D$a$N%P%C%/%9%i%C%7%e(B
$B$r%(%9%1!<%W$9$k!#(B

fopen("c:\\newdir\\file.dat", "r");

$BJL$N$d$j$+$?$H$7$F$O!"(BMS-DOS$B$G$O!"%9%i%C%7%e(B'/'$B$b%G%#%l%/%H%j(B
$B$NJ,N%J8;z$K;H$($k$3$H$,$o$+$C$F$$$k!#$=$3$G0J2<$N$h$&$K=q$/$3(B
$B$H$,$G$-$k!#(B

fopen("c:/newdir/file.dat", "r");

($B$H$3$m$G!"%W%j%W%m%;%C%5$N(B#include$BA0=hM};XNa$G=P$F$/$k%X%C(B
$B%@%U%!%$%k$NL>A0$OJ8;zNs%j%F%i%k$G$J$$$N$G!"$=$NCf$G$O%P%C%/(B
$B%9%i%C%7%e$N$3$H$O?4G[$7$J$/$F$h$$!#(B)

19.18:$B!V%U%!%$%k$r3+$-$9$.(B(Too many open files)$B!W$H$$$&%(%i!<$,=P$?!#(B
$BF1;~$K3+$1$k%U%!%$%k$N?t$r$I$&$9$l$PA}$d$;$k$N$+!#(B

A:$BF1;~$K3+$/$3$H$N$G$-$k%U%!%$%k$N?t$K$O!"<B:]$K$O>/$J$/$H$b(B2$B$D(B
$B$N;q8;$N@)8B$,$"$k!#2<0L$NAX$NOC$G$"$k(B"$B%U%!%$%k%G%#%9%/%j%W%?(B"
$B$d(B"$B%U%!%$%k%O%s%I%k(B"$B$r%*%Z%l!<%F%#%s%0%7%9%F%`$,$$$/$D;}$C$F$$(B
$B$k$+$H!"I8=`F~=PNO%i%$%V%i%j$N;}$D(BFILE$B9=B$BN$,$$$/$D$"$k$+$G$"(B
$B$k!#N>J}$H$b==J,$J?t$G$J$1$l$P$J$i$J$$!#(BMS-DOS$B$G$O!"%*%Z%l!<%F%#(B
$B%s%0%7%9%F%`$N%U%!%$%k%O%s%I%k$N?t$r(BCONFIG.SYS$B$K(B1$B9T5-=R$9$k$3(B
$B$H$G@)8f$9$k$3$H$,$G$-$k!#%3%s%Q%$%i$NCf$K$OI8=`F~=PNO$N(BFILE$B9=(B
$BB$BN$N?t$rA}$d$9L?Na(B($B$?$V$s%=!<%9$K$bDI2C$,I,MW(B)$B$r;}$C$F$$$k$b(B
$B$N$b$"$k!#(B


19.20:$B%G%#%l%/%H%j$NFbMF$rFI$`$K$O$I$&$9$l$P$h$$$+!#(B

A:opendir()$B$d(Breaddir()$B$,;H$($k$+$I$&$+D4$Y$k$3$H!#$3$l$i$N%k!<%A(B
$B%s$O(BPOSIX$B$N0lIt$G!"$?$$$F$$$N(BUnix$B%7%9%F%`$K:\$C$F$$$k!#(BMS-DOS$B!"(B
VMS$B!"$=$NB>$N%7%9%F%`MQ$N<BAu$bB8:_$9$k(B(MS-DOS$B$K$O<B<AE*$KF1$8(B
$B;E;v$r$9$k(BFINDFIRST$B!"(BFINDNEXT$B$H$$$&%k!<%A%s$bB8:_$9$k(B)$B!#(B
readdir()$B$O%U%!%$%k$NL>A0$7$+JV$5$J$$!#%U%!%$%k$K$D$$$F$b$C$H(B
$B>pJs$,I,MW$G$"$l$P!"(Bstat()$B$r8F$V!#%U%!%$%kL>$,%o%$%k%I%+!<%I$H(B
$B0lCW$9$k$+$I$&$+$K$D$$$F$O!"<ALd(B13.7$B$r;2>H$N$3$H!#(B

19.22:$B$I$l$@$1%a%b%j$,;H$($k$+$O$I$&$d$l$P$o$+$k$+!#(B

A:$B%*%Z%l!<%F%#%s%0%7%9%F%`$,!"$=$&$$$&>pJs$rJV$9%k!<%A%s$rMQ0U$7(B
$B$F$k$+$b$7$l$J$$!#$?$@$7!"$3$l$O$^$C$?$/%7%9%F%`0MB8$NOC$@!#(B

19.23:$B$I$&$d$l$P(B64K$B$h$jBg$-$JG[Ns$d9=B$BN$r3d$jIU$1$k$3$H$,$G$-$k$N$+!#(B

A:$B$^$C$H$&$J%3%s%T%e!<%?!<$J$i;HMQ2DG=$J$9$Y$F$N%a%b%j$K!"$3$C(B
$B$A$,0U<1$7$J$$$G%"%/%;%9$G$-$k$N$,Ev$?$jA0$G$"$k!#1?0-$/$^$C$H(B
$B$&$G$J$$%3%s%T%e!<%?!<$NAj<j$r$9$k$3$H$K$J$C$?$i!"%W%m%0%i%`Fb(B
$B$N%a%b%j$N;H$$$+$?$r9M$(D>$9$+!"$5$^$6$^$J%7%9%F%`0MB8$N5;$r(B
$B;H$&$+$9$kI,MW$,$"$k!#(B

64K$B$H$$$&$N$O(B($B$=$l$G$b(B)$B$1$C$3$&Bg$-$J%a%b%j$N2t$G$"$k!#$I$s$J(B
$B$K$?$/$5$s%a%b%j$,%3%s%T%e!<%?!<$K:\$C$F$$$F$b!"BgNL$N%a%b%j$r(B
$BO"B3$K@Z$lL\$J$/3d$jIU$1$h$&$H$9$k$N$OM_D%$j$9$.$G$"$k!#(B(C$B5,3J(B
$B$O!"(B1$B$D$N%*%V%8%'%/%H$,(B32K$B$h$jBg$-$/$J$k$3$H$rJ]>Z$7$F$$$J$$!#(B) 
$B%a%b%jA4BN$K@Z$lL\$,$J$$$3$H$rI,MW$H$7$J$$$h$&$J%G!<%?9=B$$r;H(B
$B$&$h$&$K$9$k$[$&$,!"NI$$9M$($G$"$k$3$H$,B?$$!#F0E*$K3d$jIU$1$?(B
$BB?<!85$NG[Ns$K$O!"<ALd(B6.16$B$N$H$3$m$G>R2p$7$?$h$&$K!"%]%$%s%?$X(B
$B$N%]%$%s%?$,;H$($k!#9=B$BN$NBg$-$JG[Ns$r;H$&Be$o$j$K!"@~7A%j%9(B
$B%H$d9=B$BN$X$N%]%$%s%?$NG[Ns$r;H$($P$h$$!#(B

(8086$B%Y!<%9$N(B)PC$B8_49%7%9%F%`$r;H$C$F$$$F(B640K$B$NJI$K$V$D$+$C$?$i!"(B
"$B%R%e!<%8(B(huge)"$B%a%b%j%b%G%k$r;H$&$+!"3HD%%a%b%j(B($BLuCm(B:$BF|K\8l$G(B
$B$O(Bexpanded memory$B$H(Bextende memory$B$r6hJL$9$kMQ8l$,$J$$(B)$B$r;H$&$+!"(B
halloc()$B$d(Bfarmalloc()$B$N$h$&$J(Bmalloc$B$NJQ7A$r;H$&$+!"%;%0%a%s%H(B
$B$r0U<1$5$;$J$$(B32$B%S%C%H$N(B"$BJ?$i$J(B(flat)"$B%3%s%Q%$%i(B($BNc(B: djgpp$B!"<A(B
$BLd(B18.3$B;2>H(B)$B$r;H$&$+!"2?$+$7$i$N(BDOS$B%(%/%9%F%s%@!<$r;H$&$+!"%*%Z(B
$B%l!<%F%#%s%0%7%9%F%`$r<h$jBX$($k!#(B

References: ANSI Sec. 2.2.4.1; ISO Sec. 5.2.4.1.

19.24:$B!V(BDGROUP$B%G!<%?$N3d$jIU$1$,(B64K$B$r1[$($?(B(DGROUP data allocation
exceeds 64K)$B!W$H$$$&%(%i!<%a%C%;!<%8$O2?$rI=$o$7$F$$$k$N$+!#$I(B
$B$&$9$l$P$h$$$N$+!#%i!<%8%b%G%k$r;H$($P(B64K$B0J>e$N%G!<%?$,;H$($k(B
$B$b$N$@$H;W$C$F$$$?!#(B

A:$B%i!<%8%b%G%k$r;H$C$F$b(BMS-DOS$B$N%3%s%Q%$%i$O!"$"$k<o$N%G!<%?(B($BJ8(B
$B;zNs!"=i4|CMIU$-$N%0%m!<%P%kJQ?t$d%9%?%F%#%C%/JQ?t$N0lIt(B)$B$r%G(B
$B%U%)%k%H$N%G!<%?%;%0%a%s%H$K2!$79~$`!#$=$7$F$3$N%;%0%a%s%H$,$"$U(B
$B$l$k!#%0%m!<%P%kJQ?t$N?t$r8:$i$9$+!"$9$G$K$^$"$^$"$NNL$^$GM^$((B
$B$F$$$?$i(B($B$"$k$$$OLdBj$,J8;zNs$N?t$+2?$+$J$i(B)$B!"%3%s%Q%$%i$K%G%U%)(B
$B%k%H$N%G!<%?%;%0%a%s%H$r$=$s$J$K$?$/$5$s;H$o$J$$$h$&$K$5$;$k$3(B
$B$H$,$G$-$k$+$b$7$l$J$$!#(B"$B>.$5$J(B"$B%G!<%?%*%V%8%'%/%H$@$1$r%G%U%)(B
$B%k%H$N%G!<%?%;%0%a%s%H$KCV$-!"(B"$B>.$5$5(B"$B$N$7$-$$CM$r@_Dj$9$k<jCJ(B
($B$?$H$($P%^%$%/%m%=%U%H<R$N%3%s%Q%$%i$G$O(B/Gt$B%*%W%7%g%s(B)$B$rDs6!(B
$B$7$F$$$k%3%s%Q%$%i$b$"$k!#(B

19.25:$B$"$k%"%I%l%9$K0LCV$9$k%a%b%j(B($B%a%b%j%^%C%W$5$l$?%G%P%$%9!"(B
$B$"$k$$$O%0%i%U%#%C%/%a%b%j(B)$B$K$I$&$d$C$F%"%/%;%9$9$l$P$h$$$+!#(B

A:$BE,@Z$J%G!<%?7?$N%]%$%s%?$r!"K>$`%"%I%l%9$NCM$K@_Dj$9$k!#(B
($BL@<(E*$K%-%c%9%H$r$7$F!"%3%s%Q%$%i$K$3$A$i$,0\?"@-$N$J$$JQ49(B
$B$r$9$k5$$,$"$k$3$H$rEA$($k(B)

unsigned int *magicloc = (unsigned int *)0x12345678;

$B$=$&$9$l$P(B*magicloc$B$OK>$`>l=j$r;X$9!#(B(MS-DOS$B$G$O!"%;%0%a%s%H$H(B
$B%*%U%;%C%H$NAj<j$r$9$k$N$K(BMK_FP()$B$N$h$&$J%^%/%m$,JXMx$+$b$7$l(B
$B$J$$!#(B)

References: K&R1 Sec. A14.4 p. 210; K&R2 Sec. A6.6 p. 199; ANSI
Sec. 3.3.4; ISO Sec. 6.3.4; Rationale Sec. 3.3.4; H&S Sec. 6.2.7
pp. 171-2.

19.27:C$B%W%m%0%i%`$NCf$+$iJL$N%3%^%s%I(B($BC1BN$N<B9T2DG=%W%m%0%i%`!"%*%Z(B
$B%l!<%F%#%s%0%7%9%F%`$N%3%^%s%I(B)$B$r5/F0$7$?$$!#$I$&$9$l$P$h$$$+!#(B

A:$B%i%$%V%i%j4X?t$G$"$k(Bsystem()$B$r;H$&!#$3$l$O$^$5$7$/>e5-$r<B9T$9(B
$B$k!#(Bsystem()$B$NLa$jCM$O!"NI$/$F%3%^%s%I$N(Bexit$B$N%9%F!<%?%9$G!"%3(B
$B%^%s%I$N=PNO$H$OIaDL$O$<$s$<$s4X78$J$$!#(Bsystem()$B$O5/F0$9$Y$-%3(B
$B%^%s%I$rI=$o$9J8;zNs$r(B1$B$D$@$10z?t$H$7$F<h$k!#J#;($J%3%^%s%I9T(B
$B$rAH$_N)$F$kI,MW$,$"$l$P(Bsprintf()$B$r;H$&!#<ALd(B19.30$B$r;2>H$N$3$H!#(B

References: K&R II Sec. B6 p. 253; ANSI Sec. 4.10.4.5; H&S
Sec. 21.2; PCS Sec. 11 p. 179;

19.30:$BJL$N%W%m%0%i%`$d%3%^%s%I$r<B9T$7$F!"$=$N=PNO$rJa$^$($k$N$O$I$&(B
$B$9$l$P$h$$$N$+!#(B

A:Unix$B$dB>$N$$$/$D$+$N%7%9%F%`$O(Bpopen()$B%k!<%A%s$rMQ0U$7$F$$$k!#(B
$B$3$N%k!<%A%s$O%3%^%s%I$rAv$i$;$F$$$k%W%m%;%9$K$D$J$2$?%Q%$%W$X(B
$B$NI8=`F~=PNO$N%9%H%j!<%`$r!"=PNO$rFI$_<h$l$k(B($B$"$k$$$OF~NO$rMQ(B
$B0U$9$k(B)$B$h$&$K@_Dj$9$k$b$N$G$"$k!#(B

popen()$B$,;H$($J$$4D6-$J$i!"(Bsystem()$B$r;H$C$F!"=PNO$r%U%!%$%k$K(B
$B=q$-=P$7!"8e$+$i%U%!%$%k$r3+$$$FCf?H$rFI$`$3$H$,$G$-$k$+$b$7$l(B
$B$J$$!#(B

Unix$B$r;H$C$F$$$F(Bpopen()$B$G$OITB-$J$i!"(Bpipe(), dup(), fork(),
exec()$B$H$$$C$?4X?t$rD4$Y$k$3$H!#(B

($B$H$3$m$G!"$R$H$D$@$1$*$=$i$/@dBP$&$^$/$$$+$J$$$N$O!"(Bfreopen()
$B$r$D$+$&$3$H$G$"$k!#(B)

References: PCS Sec. 11 p. 169.

19.31:$B$I$&$9$l$P%W%m%0%i%`$,5/F0$5$l$?$H$-$N@dBP%Q%9$rCN$k$3$H$,$G$-(B
$B$k$+!#(B

A:argv[0]$B$K@dBP%Q%9$d%Q%9$N0lIt$,F~$C$F$$$k$+$b$7$l$J$$$7!"2?$b(B
$BF~$C$F$$$J$$$+$b$7$l$J$$!#(Bargv[0]$B$K%Q%9L>$,F~$C$F$$$k$,40A4$G(B
$B$J$$$H$-$O!"%7%'%k$N$h$&$J%3%^%s%I9T$r2r<a$9$k%=%U%H$,%3%^%s%I(B
$B$rC5$96ZF;$r??;w$l$P$$$$!#$7$+$7$J$,$i3N<B$JJ}K!$OB8:_$7$J$$!#(B

References: K&R1 Sec. 5.11 p. 111; K&R2 Sec. 5.10 p. 115; ANSI
Sec. 2.1.2.2.1; ISO Sec. 5.1.2.2.1; H&S Sec. 20.1 p. 416.

19.32:$B<B9T2DG=%W%m%0%i%`$HF1$8%G%#%l%/%H%j$K$"$k%W%m%0%i%`$N@_Dj%U%!(B
$B%$%k$,$I$3$K$"$k$+$r<+F0E*$KA\$7$?$$!#$I$&$d$l$P$h$$$+!#(B

A:$B$3$l$OFq$7$$!#>e$N<ALd(B19.31$B$b;2>H$N$3$H!#;H$($kJ}K!$r;W$$IU$$(B
$B$?$H$7$F$b%W%m%0%i%`$NJd=u(B($B%i%$%V%i%jMQ$N(B)$B%G%#%l%/%H%j$r!"4D(B
$B6-JQ?t$+$J$K$+$r;H$C$F!"JQ992DG=$K$7$?$$$H;W$&$h$&$K$J$k$+$b$7(B
$B$l$J$$!#(B($B%W%m%0%i%`$N@_Dj%U%!%$%k$rMM!9$J>l=j$KCV$1$k$h$&$K$7(B
$B$F$*$/$N$O!"2??M$+$G$=$N%W%m%0%i%`$r;H$&$H$-$K!"Bg;v$JOC$H$J$k!#(B
$BNc(B:$B%^%k%A%f!<%6%7%9%F%`$G(B)

19.33:$B$I$&$9$l$P%W%m%;%9$,!"5/F0$7$?B&$N4D6-JQ?t$rJQ99$9$k$3$H$,$G$-(B
$B$k$+!#(B

A:$B2DG=$+$b$7$l$J$$$7IT2DG=$+$b$7$l$J$$!#$=$l$>$l$N%*%Z%l!<%F%#%s(B
$B%0%7%9%F%`$,!"(BUnix$B$KN`;w$NJQ?tL>$HCM$r7k$SIU$1$k5!G=$r!"$=$l$>(B
$B$l$NJ}K!$G<BAu$7$F$$$k!#(B"$B4D6-(B"$B$,<B9TCf$N%W%m%0%i%`$K$h$C$FET9g(B
$B$h$/JQ99$G$-$k$+$I$&$+$H!"$G$-$k$H$9$l$P$=$NJ}K!$O!"%7%9%F%`$K(B
$B0MB8$9$k!#(B

Unix$B$N%W%m%;%9$O<+J,$N4D6-$rJQ99$9$k$3$H$,$G$-$k(B(setenv()$B$d(B
putenv()$B$r$3$NL\E*$N$?$a$KMQ0U$7$F$$$k%7%9%F%`$b$"$k(B)$B!#$=$7$F!"(B
$B$=$N4D6-$O$?$$$F$$;R%W%m%;%9$KEO$5$l$k!#$7$+$7?F%W%m%;%9$K$^$G(B
$BLa$k$3$H$O$J$$!#(B

19.36:$B$I$&$9$l$P%*%V%8%'%/%H%U%!%$%k$rFI$_9~$s$G!"$=$NCf$K$"$k%k!<%A(B
$B%s$KHt$S9~$`$3$H$,$G$-$k$+!#(B

A:$B%@%$%J%_%C%/%j%s%+$d%@%$%J%_%C%/%m!<%@!<$,I,MW$G$"$k!#NN0h$r3d(B
$B$jIU$1$F!"$=$NNN0h$K%*%V%8%'%/%H%U%!%$%k$rFI$_9~$`$3$H$O$G$-$k!#(B
$B$7$+$7%*%V%8%'%/%H%U%!%$%k$N%U%)!<%^%C%H$d$=$NG[CV$J$I$K$D$$$F!"(B
$B$+$J$j$NCN<1$,I,MW$H$J$k!#(BBSD$B$G$O(Bsystem()$B$H(Bld -A$B$r;H$C$F%j%s%/(B
$B$5$;$k$3$H$,$G$-$k!#(BSunOS$B$d(BSystem V$B$NB?$/$N%P!<%8%g%s$K$O(B-ldl
$B$H$$$&%i%$%V%i%j$,:\$C$F$$$F!"$3$l$r;H$($P%*%V%8%'%/%H%U%!%$%k(B
$B$rF0E*$K%m!<%I$9$k$3$H$,$G$-$k!#(BVMS$B$G$O(BLIB$FIND_IMAGE_SYMBOL$B$r(B
$B;H$&!#(BGNU$B$N%Q%C%1!<%8$K(Bdld$B$H$$$&$N$,B8:_$9$k!#<ALd(B15.13$B$b;2>H(B
$B$N$3$H!#(B

19.37:1$BIC$h$j:Y$+$$CY$l$d!"%f!<%6$NH?1~$N(B1$BIC$h$j:Y$+$$7WB,$O!"$I$&<B(B
$BAu$9$l$P$h$$$+!#(B

A:$B;DG0$J$,$i0\?"@-$N9b$$J}K!$OB8:_$7$J$$!#(BV7 Unix$B$d$=$3$+$iGI@8(B
$B$7$?%7%9%F%`$O!"$+$J$jLr$KN)$D(Bftime()$B$rMQ0U$7$F$$$?!#$3$N4X?t(B
$B$O%_%jICC10L$N@:EY$r;}$C$F$$$?!#$7$+$7(BSYSTEM V$B$d(BPOSIX$B$+$i>C$((B
$B$F$7$^$C$?!#B>$KC5$9$Y$-4X?t$H$7$F$O(Bclock()$B$d(Bdelay(),
gettimeofday(), msleep(), nap(), napms(), setitimer(),
sleep(), times(), usleep()$B$,$"$k(B($B$7$+$7$J$,$i(Bwait()$B$H$$$&%k!<(B
$B%A%s$O!">/$J$/$H$b(BUnix$B$G$O!"K>$_$N$b$N$G$O$J$$(B)$B!#(Bselect()$B$d(B
poll()$B$O(B($B$b$7<j$KF~$l$P(B)$B!"4JC1$JCY$l$r<BAu$9$k$N$K;H$($k!#(B
MS-DOS$B%^%7%s$G$O!"%7%9%F%`%?%$%^!<$d%?%$%^!<$N3d$j9~$_$r%W%m%0(B
$B%i%`$7$J$*$9$3$H$G<B8=$G$-$k!#(B

$B$3$l$i$N4X?t$NCf$G(Bclock()$B$@$1$,(BANSI$B5,3J$N0lIt$G$"$k!#(Bclock()$B$r(B
2$B2s8F$s$G!"$=$N:9$,7P2a;~4V$rI=$o$9!#$b$7(BCLOCKS_PER_SEC$B$,(B1$B$h$j(B
$BBg$-$1$l$P!":9$OIC0J2<$NJ,2rG=$r;}$D!#$7$+$7$J$,$i!"(Bclock()$B$,(B
$BJV$9$N$O(Bclock()$B$r8F$S=P$7$?%W%m%0%i%`$N%W%m%;%C%5$N;HMQ;~4V$G!"(B
$B%^%k%A%?%9%/$N%7%9%F%`$G$O<B:]$K7P2a$7$?;~4V$H$<$s$<$s0c$&$+$b(B
$B$7$l$J$$!#(B

$BCY$l$r<BAu$9$k$N$K;H$($k$N$,;~4V$rJs9p$9$k4X?t$7$+$J$$>l9g$G$b!"(B
CPU$B%Q%o!<$r0lE@$K=8Cf$7=hM}BT$A$N>uBV$r:n$j=P$7$FCY$l$r<BAu$9(B
$B$k$3$H$,$G$-$k!#$1$l$I$3$l$O%7%s%0%k%f!<%6!<$N%7%s%0%k%?%9%/$N(B
$B%7%9%F%`$G$@$15v$5$l$kA*Br;h$G$"$k!#$H$$$&$N$b!"$3$l$OB>$N%W%m(B
$B%;%9$K$H$C$F$O$^$C$?$/LBOG$JOC$G$"$k$+$i$G$"$k!#%^%k%A%?%9%/$N(B
$B%7%9%F%`$G$O!";XDj$7$?;~4V$@$1%W%m%;%9$rL2$i$;$k4X?t$r;H$&$3$H!#(B
$B$?$H$($P(Bsleep()$B$d(Bselect()$B$d(Bpause()$B$r!"(Balarm()$B$d(Bsetitimer()$B$H6&(B
$B$K;H$&!#(B

$BK\Ev$KC;$$CY$l$J$i!"$J$K$b<B9T$7$J$$%k!<%W$r;H$$$?$$5$$,$7$F$/(B
$B$k!#(B

long int i;
for(i = 0; i < 1000000; i++)
;

$B$1$l$I!"$I$&$d$C$F$G$b$3$NM6OG$rJ'$$$N$1$J$1$l$P$$$1$J$$!#(B1$B$D(B
$B$K$O!"Cm0U?<$/7W;;$7$?$D$b$j$NCY$l$r<B8=$9$k%k!<%W$,!"<!$N7n$K(B
$B$b$C$HB.$$%W%m%;%C%5$,EP>l$7$F$&$^$/F0$+$J$/$J$k$HAj>l$,7h$^$C(B
$B$F$$$k$+$i$G$"$k!#$b$C$H0-$$$3$H$K!"8-$$%3%s%Q%$%i$J$i%k!<%W$O(B
$B2?$b;E;v$r$7$F$J$$$3$H$K5$$,IU$$$F:GE,2=$N:]$K$^$C$?$/<h$j=|$$(B
$B$F$7$^$&$+$b$7$l$J$$!#(B

References: H&S Sec. 18.1 pp. 398-9; PCS Sec. 12 pp. 197-8,215-
6; POSIX Sec. 4.5.2.

19.38:Control-C$B$N$h$&$J%-!<%\!<%I3d$j9~$_$rJa$^$($?$jL5;k$9$k$N(B
$B$O$I$&$9$l$P$h$$$+!#(B

A:$B4pK\E*$J<j=g$O!"(Bsignal()$B$r8F$s$G!"(B

#include <signal.h>
signal(SIGINT, SIG_IGN);

$B$N$h$&$K3d$j9~$_%7%0%J%k$rL5;k$9$k$H$+!"(B

extern void func(int);
signal(SIGINT, func);

$B$H$7$F3d$j9~$_%7%0%J%k$r<u$1<h$C$?$i4X?t(Bfunc()$B$K@)8f$,0\$k$h$&(B
$B$K$9$k!#(B

Unix$B$N$h$&$J%^%k%A%?%9%/$N%7%9%F%`$G$O!"$b$&>/$7<j$N9~$s$@0J2<(B
$B$N$h$&$J5;K!$r;H$&$[$&$,$h$$!#(B

extern void func(int);
if(signal(SIGINT, SIG_IGN) != SIG_IGN)
signal(SIGINT, func);

$B%F%9%H$HM>J,$K(Bsignal()$B$N8F$S=P$7$rMQ0U$9$k$3$H$G%U%)%"%0%i%s%I(B
$B$GBG$A9~$^$l$FH/@8$7$?%-!<%\!<%I3d$j9~$_$,$&$C$+$j%P%C%/%0%i%s(B
$B%I$GAv$C$F$$$k%W%m%0%i%`$K3d$j9~$_$,$+$+$i$J$$$h$&$K$7$F$$$k(B
($B$I$s$J%7%9%F%`$GF0$+$9$K$7$F$b!"$3$N$h$&$K(Bsignal()$B$r8F$V$h$&(B
$B$K%3!<%G%#%s%0$7$F$b0-$$$3$H$K$O$J$i$J$$(B)$B!#(B

$B%7%9%F%`$K$h$C$F$O!"%-!<%\!<%I$N3d$j9~$_$N=hM}$OC<Kv$NF~NO$r=h(B
$BM}$9$k%5%V%7%9%F%`$NFCDj$N%b!<%I$N5!G=$G$"$k!#(B

$B%7%9%F%`$K$h$C$F$O%-!<%\!<%I$N3d$j9~$_$rD4$Y$k$N$O!"%W%m%0%i%`(B
$B$,F~NO$rFI$_9~$s$G$$$k$H$-$K$@$1<B9T$5$l!"$I$NF~NO%k!<%A%s$,8F(B
$B$P$l$F$$$k$+$K$h$C$F%-!<%\!<%I3d$j9~$_$N=hM}$,JQ$o$C$F$7$^$&(B
($B$=$b$=$bF~NO%k!<%A%s$,F0$$$F$$$k$+$I$&$+$K$h$k(B)$B!#(BMS-DOS$B%7%9%F(B
$B%`$G$O(Bsetcbrk()$B$^$?$O(Bctrlbrk()$B$,I,MW$H$J$k$+$b$7$l$J$$!#(B

References: ANSI Secs. 4.7,4.7.1; ISO Secs. 7.7,7.7.1; H&S
Sec. 19.6 pp. 411-3; PCS Sec. 12 pp. 210-2; POSIX
Secs. 3.3.1,3.3.4.

19.39:$BIbF0>.?tE@$NNc30$r07$&5$$NMx$$$?J}K!$O!#(B

A:$BB?$/$N%7%9%F%`$G!"(Bmatherr()$B$H$$$&%k!<%A%s$rDj5A$9$k$3$H$,$G$-(B
$B$k!#$3$N%k!<%A%s$O(B<math.h>$B$NCf$K$"$k?t3X%k!<%A%s$G5/$-$?%(%i!<(B
$B$N$h$&$J!"$"$k<o$NIbF0>.?tE@$N%(%i!<$,H/@8$9$k$H8F$P$l$k!#$^$?!"(B
signal()($B>e$N<ALd(B19.38$B$r;2>H(B)$B$r;H$C$F(BSIGFPE$B$rJa$^$($k$3$H$,$G(B
$B$-$k$@$m$&!#<ALd(B14.9$B$r;2>H$N$3$H!#(B

References: Rationale Sec. 4.5.1.

19.40:$B$(!<$C$H!"$I$&$d$C$F%=%1%C%H$r;H$($P$$$$$N$+!#%M%C%H%o!<%/$O!#(B
$B%/%i%$%"%s%H(B/$B%5!<%P!<$N%"%W%j%1!<%7%g%s$N=q$-J}$O!#(B

A:$B>e$N$9$Y$F$N<ALd$O$3$N(BFAQ$B$NHO0O30$G!"(BC$B8@8l$h$j$O;HMQ$9$k%M%C%H(B
$B%o!<%/$N@_Hw$H$N4X78$N$[$&$,6/$$!#$3$N7o$K4X$9$k$h$$K\$H$7$F$O(B
Douglas Comer$B$N;0It:n$G$"$k(BInternetworking with TCP/IP$B$d(B
W. R. Stevens$B$N(BUNIX Network Programmin$B$,5s$2$i$l$k!#(B($B%M%C%H%o!<(B
$B%/$=$N$b$N$N>e$K$b$?$/$5$s$N>pJs$,N.$l$F$$$k(B)

19.40b:BIOS$B%3!<%k$r$I$&$d$C$F;H$($P$$$$$N$+!#$I$&$9$l$P>oCs%=%U%H$,=q(B
$B$1$k$N$+(B

A:$B$3$&$$$&$N$OFCDj$N%7%9%F%`$KFCM-$JOC$G$"$k(B($B==CfH,6e!"(BMS-DOS$B$,(B
$BAv$C$F$$$k(BPC$B8_495!$@$m$&(B)$B!#(B

$BFCDj$N%7%9%F%`$NOC$r07$&(Bcomp.os.msdos.programmer$B$N$h$&$J%K%e!<(B
$B%9%0%k!<%W$d$=$&$$$&%0%k!<%W$N(BFAQ$B$+$i$N$[$&$,$b$C$H>pJs$,F@$i(B
$B$l$k$@$m$&!#$=$NB>$NAG@2$i$7$$>pJs8;$H$7$F$O(BRalf Brown$B$N3d$j9~(B
$B$_$N0lMwI=$,$"$k!#(B

19.41:$B$=$s$J$3$H$$$C$F$b!"$=$s$JI8=`$G$J$$%7%9%F%`0MB8$N4X?t$r;H$&$o(B
$B$1$K$O$$$+$J$$!#;d$N%W%m%0%i%`$O(BANSI$B5,3J$KE,9g$7$F$J$1$l$P$$$1(B
$B$J$$!#(B

A:$B$D$$$F$J$$$M!#7/$,MW5a;v9`$r8m2r$7$F$k$+!"$=$&$$$&MW5a$rK~$?$9(B
$B$N$OIT2DG=$J$N$+$N$I$A$i$+$@!#(BANSI/ISO$BI8=`(BC$B$O>e$N$h$&$J;vJA$r(B
$B$I$&$d$C$F<B9T$9$k$N$+$rDj5A$9$k$b$N$G$OA4$/$J$$!#$=$l$O8@8l$N(B
$B5,3J$G$"$C$F!"%*%Z%l!<%F%#%s%0%7%9%F%`$N5,3J$G$O$J$$!#(B
$B9q:]E*$J5,3J$G!"$3$&$7$?E@$K$D$$$F<h$jAH$s$G$$$k$N$O(B
POSIX((IEEE 1003.1, ISO/IEC 9945-1)$B$G$"$k!#(B(Unix$B$@$1$G$O$J$/(B)
$BB?$/$N%*%Z%l!<%F%#%s%0%7%9%F%`$,:#$G$O(BPOSIX$B8_49$N%W%m%0%i%_%s%0(B
$B%$%s%?%U%'!<%9$rMQ0U$7$F$$$k!#(B

$B%7%9%F%`0MB8$N5!G=$r!"0\?"$9$k%7%9%F%`$4$H(B
$B$K=q$-D>$9>/?t$N%U%!%$%k$N>/?t$N%k!<%A%s$KG$$;$F!"%W%m%0%i%`$N(B
$B$[$H$s$I$NItJ,$r(BANSI$B5,3JE,9g$K$9$k$3$H$O2DG=$G$"$k$7!"$=$&$9$k(B
$B$3$H$,K>$^$7$$!#(B

20$B>O(B $B$=$NB>(B

20.1:$B4X?t$+$iJ#?t$NCM$rJV$9$3$H$O$G$-$k$+!#(B

A:$BCM$r3JG<$9$kNN0h$r$$$/$D$+5/F0$9$kB&$GMQ0U$7$F!"$=$l$i$NNN0h$r(B
$B;X$9%]%$%s%?$r0z?t$H$7$FEO$7!"4X?t$K%]%$%s%?$N@h$KCM$rKd$a$F$b(B
$B$i$&!#$"$k$$$O!"4X?t$NLa$jCM$r9=B$BN$K$7$F!"$=$N9=B$BN$K4uK>$N(B
$BCM$r@_Dj$7$F$b$i$&!#$"$k$$$O(B($B:G8e$N<jCJ$H$7$F(B)$B%0%m!<%P%kJQ?t$r(B
$B;H$&$3$H$r9M$($k!#<ALd(B2.7, 4.8, 7.5$B$r;2>H$N$3$H!#(B

20.3:$B%3%^%s%I9T$N0z?t$r$I$&$d$C$F<j$K$$$l$k$3$H$,$G$-$k$+!#(B

$B3F0z?t$OG[Ns(Bargv$B$K$h$C$F;X$5$l$F$$$k!#(Bmain()$B$O(Bargv$B$r0z?t$H$7$F(B
$B5/F0$5$l$k!#<ALd(B13.7$B$H(B19.20$B$b;2>H$N$3$H!#(B

References: K&R1 Sec. 5.11 pp. 110-114; K&R2 Sec. 5.10 pp. 114-
118; ANSI Sec. 2.1.2.2.1; ISO Sec. 5.1.2.2.1; H&S Sec. 20.1 p.
416; PCS Sec. 5.6 pp. 81-2, Sec. 11 p. 159, pp. 339-40 Appendix
F; Schumacher, ed., _Software Solutions in C_ Sec. 4 pp. 75-85.

20.5:$B$I$&$9$l$P!"%o!<%I$NBg$-$5$,0[$J$C$?$j!"%P%$%H$NJB$S$+$?$,0[$J$C(B
$B$?$j!"IbF0>.?tE@?t$NFbItI=8=$,0[$J$k$h$&$J%^%7%s$G$bFI$a$k$h$&$K%G!<(B
$B%?%U%!%$%k$K=q$-9~$`$3$H$,$G$-$k$N$+!#(B

A:$B:G$b0\?"@-$,9b$$2r$O%F%-%9%H%U%!%$%k(B($BDL>o$O(BASCII)$B$r;H$&$3$H(B
$B$G$"$k!#(Bfprintf()$B$r;H$C$F=q$-9~$_!"(Bfscanf()$B$NN`$r;H$C$FFI$`(B($BF1(B
$BMM$N=u8@$O%M%C%H%o!<%/$N%W%m%H%3%k$K$b$"$F$O$^$k(B)$B!#!V%F%-%9%H(B
$B%U%!%$%k$OBg$-$9$.$F!"$=$NFI$_=q$-$OCY$9$.$k!W$H$$$&0U8+$O5?$C(B
$B$F$+$+$k$3$H!#$=$N8zN($O$7$P$7$P<BMQ$KBQ$($k$b$N$G$"$k$7!"%^%7(B
$B%s4V$GMF0W$K%G!<%?8r49$G$-$k$3$H$dI8=`E*$JF;6q$@$1$GA`:n$G$-$k(B
$B$H$$$&MxE@$OH]Dj$G$-$J$$;v<B$G$"$k!#(B

$B%P%$%J%j%U%)!<%^%C%H$r;H$o$J$1$l$P$J$i$J$$>l9g$G$b!"(B
$BI8=`2=$5$l$?%U%)!<%^%C%H$rMxMQ$7$F!"0\?"@-$r(B
$B8~>e$5$;$?$j!"4{B8$N(B
I/O$B%i%$%V%i%j$r$&$^$/;H$&$3$H$,2DG=$G$"$k!#I8=`$N%U%)!<%^%C%H(B
$B$H$7$F$O(BSUN$B$N(BXDR(RFC 1014)$B!"(BOSI$B$N(BASN.1(CCITT$B$N(BX.409$B$d(BISO 8825
$B$G!V4pK\Id9f2=B'(B:Basic Encoding Rules$B!W$H$7$F;2>H$5$l$F$$$k(B)$B!"(B
CDF$B!"(BnetCDF$B!"(BHDF$B$,B8:_$9$k!#<ALd(B2.12$B$d(B12.38$B$r;2>H$N$3$H!#(B

References: PCS Sec. 6 pp. 86,88.

20.6:char *$B$NJQ?t$,$"$C$F!"$=$NJQ?t$O4X?t$NL>A0$r;X$7$F$$$k!#$I$&$9(B
$B$l$P$3$N4X?t$r8F$V$3$H$,$G$-$k$+!#(B

A:$B0lHVC1=c$JJ}K!$O!"4X?t$NL>A0$H4X?t$X$N%]%$%s%?$NBP1~I=$rMQ0U(B
$B$9$k$3$H$G$"$k!#(B

int func(), anotherfunc();

struct { char *name; int (*funcptr)(); } symtab[] = {
"func",func,
"anotherfunc",anotherfunc,
};

$B$=$&$7$FL>A0$r5a$a$F%F!<%V%k$rC5$7!"L>A0$KBP1~$9$k4X?t$X$N%]%$(B
$B%s%?$r;H$C$F4X?t$r5/F0$9$l$P$h$$!#<ALd(B2.15$B$H(B19.36$B$b;2>H$N$3(B
$B$H!#(B

References: PCS Sec. 11 p. 168.

20.8:$B%S%C%H$N=89g$dG[Ns$O$I$&$d$C$F<BAu$9$l$P$$$$$N$+!#(B

A:char$B$d(Bint$B$NG[Ns$r;H$&!#%^%/%m$r;H$C$F!"G[Ns$N$7$+$k$Y$-MWAG(B
$B$K$"$kK>$_$N%S%C%H$K%"%/%;%9$G$-$k$h$&$K$9$k!#0J2<$K(Bchar$B$NG[Ns(B
$B$r;H$C$?4JC1$J%^%/%m$NNc$r>R2p$9$k!#(B

#include <limits.h>/* for CHAR_BIT */

#define BITMASK(b) (1 << ((b) % CHAR_BIT))
#define BITSLOT(b) ((b) / CHAR_BIT)
#define BITSET(a, b) ((a)[BITSLOT(b)] |= BITMASK(b))
#define BITTEST(a, b) ((a)[BITSLOT(b)] & BITMASK(b))

(<limits.h>$B$,$J$$$H$-$O(BCHAR_BIT$B$NBe$o$j$K(B8$B$r;H$&(B)

References: H&S Sec. 7.6.7 pp. 211-216.

20.9:$B%^%7%s$NJB$S=g(B(byte order)$B$,%S%C%0%(%s%G%#%"%s$+%j%H%k%(%s%G%#(B
$B%"%s$+$O$I$&$d$C$FD4$Y$l$P$h$$$+!#(B

A:$B%]%$%s%?$r;H$&<j$,$"$k!#(B

int x = 1;
if(*(char *)&x == 1)
printf("little-endian\n");
elseprintf("big-endian\n");

$B6&MQBN$r;H$C$FD4$Y$k$3$H$b2DG=$G$"$k!#(B

$B<ALd(B10.16$B$b;2>H$N$3$H!#(B

References: H&S Sec. 6.1.2 pp. 163-4.


20.10:$B@0?t$r$I$&$d$l$P(B2$B?J?t$d(B16$B?J?t$KJQ49$G$-$k$+!#(B

A:$B<+J,$N<ALd$NFbMF$rK\Ev$KM}2r$7$F$$$k$+!#@0?t$OFbItE*$K$O(B2$B?J?t(B
$B$GJ]B8$5$l$F$$$k!#$@$+$i!"?t$,(B8$B?J$@$H$+(B10$B?J$@$H$+(B16$B?J$J$I<+J,(B
$B$KET9g$$$$(BN$B?JK!$G(B($BDl$G(B)$B$"$k$H9M$($k$N$O$?$$$F$$$N>l9g4V0c$$$G(B
$B$"$k!#$I$NDl$G(B($B2??JK!$G(B)$B?t$rI=$o$9$+$O303&$+$i?t$rFI$s$@$j=q$$(B
$B$?$j$9$k$H$-$K$@$1LdBj$K$J$k!#(B

$B%=!<%9%3!<%I$N>e$G$O!"(B10$B?JK!0J30$N>l9g$O?t$NA0$K(B0$B$d(B0x($B$=$l$>$l(B
8$B?J!"(B16$B?J$rI=$o$9(B)$B$rIU$1$FI=$o$9!#F~=PNOCf$O!"@07A:Q$_$N?t$,2?(B
$B?J?t$+$O!"(Bprintf$B$d(Bscanf$B$NN`$G$O=q<0;XDj;R(B(%d, %o, %x$B$J$I(B)$B$rA*(B
$BBr$9$k$3$H$G!"(Bstrtol()$B$d(Bstrtoul()$B$G$O(B3$BHVL\$N0z?t$G@)8f2DG=$G$"(B
$B$k!#$?$@$7%P%$%J%jF~=PNOCf$O!"$3$3$G$b2??JK!$+$O$I$&$G$b$$$$(B
$B$3$H$K$J$k!#(B

"$B%P%$%J%j(B"$BF~=PNO$K$D$$$F$b$C$HCN$j$?$$$J$i$P!"<ALd(B2.11$B$r;2>H(B
$B$N$3$H!#<ALd(B8.6$B$d(B13.1$B$b;2>H$N$3$H!#(B

References: ANSI Secs. 4.10.1.5,4.10.1.6; ISO
Secs. 7.10.1.5,7.10.1.6.

20.11:2$B?J?t$NDj?t(B(0b101010$B$N$h$&$K(B)$B$r;H$&$3$H$O$G$-$k$+!#(B2$B?J?tMQ$N(B
printf()$B$N=q<0$OB8:_$9$k$+!#(B

A:2$B?J?t$NDj?t$OB8:_$7$J$$$7!"(B2$B?J?tMQ$N=q<0$bB8:_$7$J$$!#Dl(B2$B$N(B(2
$B?J?t$N(B)$BJ8;zNs$K$h$kI=8=$r(Bstrtol()$B$r;H$C$F@0?t$KJQ49$9$k$3$H$O(B
$B2DG=$G$"$k!#(B

20.12:$BCM$NCf$GN)$C$F$$$k%S%C%H$N?t$r?t$($k$b$C$H$b8zN($N$h$$J}K!$r65(B
$B$($FM_$7$$!#(B

A:$B$3$N<j$N(B"$B%S%C%H$r$$$8$kLdBj(B"$B$O;2>HMQ%F!<%V%k(B(lookup table)$B$r;H(B
$B$&$3$H$G!"9bB.$+$DG=N($h$/=hM}$9$k$3$H$,$G$-$k(B($B$?$@$70J2<$N<A(B
$BLd(B20.13$B$r;2>H$N$3$H(B)$B!#(B

20.13:$B$I$&$9$l$P!"$3$N%3!<%I$r$b$C$H8zN(E*$K$9$k$3$H$,$G$-$k$+!#(B

A:$B$h$$%"%k%4%j%:%`$rA*$s$G!"$=$l$rCm0U?<$/<BAu$7$F!"%W%m%0%i%`$,(B
$BM>J,$J$3$H$^$G$7$J$$$h$&$K$9$k!#$?$H$($P!"J8;z$r%3%T!<$9$k%k!<(B
$B%W$r6I=jE*$K$I$s$J$K:GE,2=$7$F$bJ8;z$r$^$C$?$/%3%T!<$7$J$$%3!<(B
$B%I$K$O>!$F$J$$!#(B

$B8zN($K$D$$$F?4G[$9$k$J$i!"$$$/$D$+$N$3$H$,$i$r;kLn$K$$$l$F$*$/(B
$B$3$H$,Bg;v$G$"$k!#$^$:!"8zN($O$H$F$b?M5$$N$"$kOCBj$@$1$l$I!"?M(B
$B$,9M$($F$$$k$[$I!"$?$$$7$?LdBj$G$O$J$$!#$?$$$F$$$N%W%m%0%i%`$N(B
$B$?$$$F$$$N%3!<%I$O=hM}B.EY$rMW5a$5$l$F$$$k$o$1$G$O$J$$!#=hM}B.(B
$BEY$rMW5a$7$J$$%3!<%I$N>l9g!":GBg8B$K8zN(2=$r7W$k$h$j!"$o$+$j$d(B
$B$9$5$d0\?"@-$r9M$($k$[$&$,$:$C$HBg;v$G$"$k(B($B%3%s%T%e!<%?!<$OHs(B
$B>o$K9bB.$G$"$k!#$@$+$i(B"$BG=N($N0-$$(B"$B%3!<%I$bL\N)$C$?CY$l$J$/Av$k(B
$B$+$b$7$l$J$$$H$$$&$3$H$r$*K:$l$J$/(B)$B!#(B

$B%W%m%0%i%`$NCf$G$I$3$,LdBjE@$K$J$k$+M=A[$9$k$3$H$OHs>o$K:$Fq$J(B
$B$3$H$GM-L>$G$"$k!#8zN($K4X?4$,$"$k$N$J$i%W%m%0%i%`$N$I$N>l=j$K(B
$B4X?4$rCV$/$Y$-$+D4$Y$k$?$a$K!"=hM}$NNX3T$r5-O?(B(profiling)$B$9$k(B
$B%=%U%H%&%'%"$r;H$&$3$H$OBg;v$G$"$k!#$?$$$F$$$O!"<B:]$N7W;;;~4V(B
$B$O(BI/O$B$d%a%b%j$N3d$jIU$1$J$I$N<~JUAuCV$NA`:n$K=8Cf$9$k!#$=$7$F(B
$B$3$l$i$N:n6H$O!"%P%C%U%!%j%s%0$d%-%c%C%7%s%0$N5;$r;H$C$F9bB.2=(B
$B$9$k$3$H$,$G$-$k!#(B

$B%3!<%I$N=hM};~4V$N@)Ls$,87$7$$$H$3$m$G$b!"%3!<%I$N>\:Y$r6I=jE*(B
$B$K:GE,2=$7$J$1$l$P$J$i$J$$$[$I=EMW$G$"$k$3$H$O$J$$!#$7$P$7$PDs(B
$B0F$5$l$k(B"$B8zN(E*$J%3!<%G%#%s%0$N5;(B"$B$NB?$/$O(B($B$?$H$($P(B2$B$N$Y$->h$r(B
$B3]$1$k$H$-$K3]$1;;$NBe$o$j$K%7%U%H1i;;;R$r$D$+$&$3$H(B)$B!"C1=c$J%3(B
$B%s%Q%$%i$G$b<+F0E*$K$d$C$F$/$l$k!#IT4oMQ$J(B"$B:GE,2=(B"$B$N;n$_$O%3!<(B
$B%I$r$U$/$i$^$;$k$3$H$G@-G=$r0-2=$5$;$k2DG=@-$5$($"$k$7!"$=$N0\(B
$B?"@-$,9b$$$3$H$O$a$C$?$K$J$$(B($B$9$J$o$A!"$"$k%^%7%s$G$O9bB.2=$5(B
$B$l$+$b$7$l$J$$$1$l$I!"B>$N%^%7%s$G$OCY$/$J$C$F$7$^$&(B)$B!#$$$:$l(B
$B$K$;$h!"%3!<%I$r$$$8$C$F$b$;$$$<$$8zN($,@~7A$K2~A1$5$l$k$@$1$G(B
$B$"$k!#Bg$-$J8+JV$j$O$h$j$h$$%"%k%4%j%:%`$+$iF@$i$l$k!#(B

$B8zN(2=$N%H%l!<%I%*%U$K4X$9$k5DO@$d!"8zN(2=$,K\Ev$K=EMW$J$H$-$N(B
$BNI$$=u8@$K$D$$$F$O(BKernighan$B$H(BPlauger$B$N!X%W%m%0%i%`=qK!!Y$N(B7$B>O(B
$B$d(BJon Bentley$B$N!X%W%m%0%i%`2~NI3X!Y$r;29M$N$3$H!#(B

20.14:$B%]%$%s%?$OK\Ev$KG[Ns$h$j$b9bB.$J$N$+!#4X?t8F$S=P$7$r$9$k$H$I(B
$B$l$@$1CY$/$J$k$N$+!#(B++i$B$O(Bi=i+1$B$h$j$b9bB.$+!#(B

A:$B$3$l$i$N<ALd$dB?$/$NN`;w$N<ALd$X$N@53N$J2rEz$O!"$b$A$m$s;HMQ$7(B
$B$F$$$k%W%m%;%C%5$d%3%s%Q%$%i$K0MB8$9$k!#7k2L$,CN$j$?$1$l$P%F%9(B
$B%H%W%m%0%i%`$GCm0U$7$FB,Dj$9$k$7$+$J$$(B($BB?$/$N>l9g!"$=$N:9$OHs(B
$B>o$K>.$5$$$N$G!":9$rCN$k$N$K2?K|2s$b$/$jJV$7$,I,MW$H$J$k!#$b$7(B
$B<j$KF~$k$N$J$i!"N>J}$N5;$r;H$C$?%3!<%I$,JL$N%3!<%I$r@8@.$7$?$+(B
$B$I$&$+!"%3%s%Q%$%i$N@8@.$7$?%"%;%s%V%i=PNO$r8+Hf$Y$F$_$k$3$H(B)$B!#(B

$B$?$$$F$$$OBg$-$JG[Ns$NCf$r%"%/%;%9$7$F$^$o$k$N$K%]%$%s%?$r;H$&(B
$B$[$&$,!"G[Ns$NE:$(;z$r;H$&$h$j9bB.$G$"$k$,!"$=$NH?BP$N%W%m%;%C(B
$B%5!<$bB8:_$9$k!#(B

$B4X?t8F$S=P$7$O!"%$%s%i%$%s$G5-=R$9$k$h$j$b!"$=$l$@$1L@$i$+$KCY(B
$B$/$J$k$1$l$I!"%b%8%e!<%k2=$d%3!<%I$N$o$+$j$d$9$5$KLr$KN)$C$F$$(B
$B$k$3$H$r9M$($l$P!";H$o$J$$M}M3$J$s$F$a$C$?$KB8:_$7$J$$!#(B

i = i + 1$B$H$$$C$?=q$-J}$r=q$-D>$9A0$K!"Aj<j$O(BC$B%3%s%Q%$%i$G$"$C(B
$B$F%-!<F~NO$r%W%m%0%i%`$G$-$kEEBn$rAj<j$K$7$F$$$k$N$G$O$J$$$3$H(B
$B$r$*K:$l$J$/!#$h$/$G$-$?%3%s%Q%$%i$J$i(Bi++$B!"(B++i$B!"(Bi = i + 1$B!"$I(B
$B$l$K$D$$$F$bF1$8%3!<%I$r@8@.$9$k!#(Bi =i + 1$B$r2!$7$N$1$F(B++i$B$d(Bi
+= 1$B$r;H$&$N$O!"=q$-J}$NLL$+$i$G$"$C$F8zN($rLdBj$K$7$F$$$k$+$i(B
$B$G$O$J$$!#(B($B<ALd(B3.12$B$b;2>H$N$3$H!#(B)

20.17:$BJ8;zNs$NFbMF$K$h$C$F=hM}$r@Z$jBX$($kJ}K!$O$"$k$+!#(B

A:$BD>@\$K$OIT2DG=$G$"$k!#J8;zNs$r@0?t%3!<%I$KBP1~$5$;$kJL$N4X?t$r(B
$BMQ0U$7$F!"$=$N@0?t%3!<%I$r;H$C$F=hM}$r@Z$jBX$($k$N$,E,@Z$J>l9g(B
$B$,$"$k!#$b$A$m$s!"$=$NB>$N<j$H$7$F$O!"(Bstrcmp()$B$KMj$C$FIaDL$K(B
if/else$B$rJB$Y$k$3$H$,9M$($i$l$k!#<ALd(B10.12, 20.18, 20.29$B$r;2>H(B
$B$N$3$H!#(B

References: K&R1 Sec. 3.4 p. 55; K&R2 Sec. 3.4 p. 58; ANSI
Sec. 3.6.4.2; ISO Sec. 6.6.4.2; H&S Sec. 8.7 p. 248.

20.18:case$B$N%i%Y%k$KDj?t0J30(B($BHO0O;XDj$H$+!"$3$A$i$N9%$-$J<0$J$I(B)$B$r;}$C(B
$B$F$/$k$3$H$O$G$-$k$+!#(B

A:$B$G$-$J$$!#(Bswitch$BJ8$O$b$H$b$H$N@_7W$G%3%s%Q%$%i$,%3!<%I$rJQ49$9(B
$B$k$N$,3Z$J$h$&$KC1=c$K$J$C$F$$$k!#$@$+$i(Bcase$B$N%i%Y%k$OC1BN$NDj(B
$B?t$N@0?t<0$K8B$i$l$F$$$k!#0l$D$N<0$KJ#?t$N(Bcase$B$N%i%Y%k$rIU$1$k(B
$B$3$H$O2DG=$G$"$k!#$3$&$9$l$P!"$9$Y$F$N>l9g$r$$$A$$$A5-F~$9$k$3(B
$B$H$rLLE]$K;W$o$J$1$l$P!">.$5$JHO0O$rJ$$&$3$H$,$G$-$k!#(B

$BG$0U$NHO0O;XDj$dDj?t0J30$N<0$r$b$C$F$-$?$$$J$i!"(Bif/else$B$r$:$i(B
$B$:$iJB$Y$k$7$+$J$$!#(B

$B<ALd(B20.17$B$b;2>H$N$3$H!#(B

References: K&R1 Sec. 3.4 p. 55; K&R2 Sec. 3.4 p. 58; ANSI
Sec. 3.6.4.2; ISO Sec. 6.6.4.2; Rationale Sec. 3.6.4.2; H&S
Sec. 8.7 p. 248.

20.19:return$B$N8e$m$KMh$k<0$r$/$/$k3g8L$OK\Ev$K>JN,2DG=$+!#(B

A:$B>JN,2DG=$@!#(B

$BBg@N!"(BC$B$N=i4|$K$O!"I,MW$G$"$C$?!#$=$N$3$m$K(BC$B$r3X$s$@?M$,$?$/$5(B
$B$s$$$k$7!"$=$N$3$m=q$+$l$?%3!<%I$,:#$G$b@$$NCf$K=P$^$o$C$F$$$k!#(B
$B$=$l$G3g8L$,:#$G$bI,MW$G$"$k$H$$$&9M$($,9-$^$C$F$$$k!#(B

($B$A$J$_$K(Bsizeof$B1i;;;R$b!"%*$Z%i%s%I$,JQ?t$+C19`<0$J$i!"3g8L$O(B
$B>JN,2DG=$G$"$k!#(B)

References: K&R1 Sec. A18.3 p. 218; ANSI Sec. 3.3.3, Sec. 3.6.6;
ISO Sec. 6.3.3, Sec. 6.6.6; H&S Sec. 8.9 p. 254.

20.20:$B$J$<(BC$B8@8l$N%3%a%s%H$OF~$l;R$K$9$k$3$H$,$G$-$J$$$N$+!#%3%a%s%H(B
$B$r4^$`%3!<%I$r%3%a%s%H%"%&%H$9$k$N$O$I$&$9$l$P$h$$$+!#0zMQId$G(B
$B$+$3$^$l$?J8;zNs$NCf$K%3%a%s%H$,$"$k$N$OJ8K!>e5v$5$l$k$N$+!#(B

A:C$B$N%3%a%s%H$,F~$l;R$K$G$-$J$$$N$O!"(BPL/I$B$N%3%a%s%H$,F~$l;R$K$G(B
$B$-$J$$$+$i$G$"$k!#(BC$B$O(BPL/I$B$+$i%3%a%s%H$K$D$$$F$N%"%$%G%"$r<ZMQ(B
$B$7$F$$$k!#%3%a%s%H$r4^$`$h$&$JBg$-$JNN0h$r(B"$B%3%a%s%H%"%&%H(B"$B$9$k(B
$B$H$-$O(B#ifdef$B$d(B#if 0$B$r;H$C$?$[$&$,$$$$(B($B$?$@$7!"<ALd(B11.19$B$r;2>H(B)$B!#(B

/*$B$d(B*/$B$OFs=E0zMQ6g$G$/$/$i$l$?J8;zNs$N$J$+$G$OFCJL$J0UL#$r;}$?(B
$B$J$$!#$@$+$i$3$l$i$NJ8;zNs$,%3%a%s%H$r0UL#$9$k;v$O$J$$!#$J$<$J(B
$B$i%W%m%0%i%`$,(B($B$H$/$K$K=PNO$H$7$F(BC$B$N%3!<%I$r@8@.$9$k%W%m%0%i%`(B
$B$,(B)$B!"$3$l$i$NJ8;zNs$r=PNO$7$?$$$+$b$7$l$J$$$+$i!#(B

C++$BIw$N(B//$B$G;O$a$k%3%a%s%H$O8=:_$N$H$3$m(BC$B$G$OJ8K!>e5v$5$l$F$$$J(B
$B$$$3$H$KCm0U!#$@$+$i!"(BC$B%W%m%0%i%`$G;H$&$N$O$h$$9M$($G$O$J$$(B($B$?(B
$B$H$(;HMQCf$N%3%s%Q%$%i$,3HD%5!G=$H$7$FBP1~$7$F$$$k$H$7$F$b(B)$B!#(B

References: K&R1 Sec. A2.1 p. 179; K&R2 Sec. A2.2 p. 192; ANSI
Sec. 3.1.9 (esp. footnote 26), Appendix E; ISO Sec. 6.1.9, Annex
F; Rationale Sec. 3.1.9; H&S Sec. 2.2 pp. 18-9; PCS Sec. 10 p.
130.

20.24:$B$I$&$7$F(BC$B$K$OF~$l;R$N4X?t$,MQ0U$5$l$F$$$J$$$N$+!#(B

A:$B8F$VB&$N4X?t$N%m!<%+%kJQ?t$K@5$7$/%"%/%;%9$9$k$h$&$KF~$l;R$N4X(B
$B?t$rMQ0U$9$k$3$H$O4JC1$JOC$G$O$J$$!#$=$&$$$&$o$1$G!"F~$l;R$N4X(B
$B?t$O(BC$B$,C1=c$5$r<:$o$J$$$h$&$K8N0U$K>JN,$5$l$?!#(B(gcc$B$O3HD%5!G=$H(B
$B$7$FF~$l;R$N4X?t$r5v$7$F$$$k!#(B) $BF~$l;R$N4X?t$,$"$C$?$H$7$?$i;H(B
$B$($=$&$J>u67$NB?$/$N(B($BNc(B:qsort$B$NHf3S$K;H$&4X?t(B)$B>/$7LLE]$@$1$l$I(B
$BMW5a$rK~$?$92r$H$7$F$O!"(Bstatic$B@k8@$7$?NY$j9g$&4X?t$r;H$$!"(B
static$BJQ?t$G>pJs$r$d$j$H$j$9$kJ}K!$,$"$k!#(B($B$=$&$$$&4X?t4V$G>p(B
$BJs$r$d$j$H$j$,I,MW$J>l9g$N$b$C$H$-$l$$$J2r$O!"I,MW$J%3%s%F%-%9(B
$B%H$r4^$s$@9=B$BN$X$N%]%$%s%?$r$d$j$H$j$9$k$3$H$G$"$k!#(B)

20.25:$B$I$&$9$l$P(BC$B$+$i(BFORTRAN($B$"$k$$$O(BC++$B!"(BBASIC$B!"(BPascal$B!"(BAda$B!"(BLISP)
$B$N4X?t$r5/F0$9$k$3$H$,$G$-$k$+(B($B$"$k$$$O$=$NH?BP$O(B)$B!#(B

A:$B2rEz$O!";HMQCf$N%^%7%s$d%3%s%Q%$%i$,4X?t$r5/F0$9$kJ}K!$K0MB8$9(B
$B$k!#$R$g$C$H$7$?$i$^$C$?$/IT2DG=$+$b$7$l$J$$!#%3%s%Q%$%i$N;qNA(B
$B$rCm0U?<$/FI$`$3$H!#$H$-$I$-!VJ#?t$N%W%m%0%i%`8@8l$r;H$C$?%W%m(B
$B%0%i%_%s%0$N<j0z$-!W$,:\$C$F$$$k!#$=$l$G$b0z?t$rEO$9J}K!$d!"<B(B
$B9T;~$NE,@Z$JN)$A>e$,$j$rJ]>Z$9$k$3$H$O!"?@HkE*$G$9$i$"$k!#$=$N(B
$BB>$K(BGlenn Geers$B:n$N(BFORT.Z$B$+$i$b<j3]$+$j$,F@$i$l$k!#$3$N%W%m%0(B
$B%i%`$O(Bsuphys.physics.su.oz.au$B$N(Bsrc$B%G%#%l%/%H%j$KCV$+$l$F$$$k!#(B

cfortran.h$B$H$$$&(BC$B$N%X%C%@%U%!%$%k$O!"@$$NCf$K=P$^$o$C$F$$$k(B
$BB?$/$N%^%7%s>e$G!"(BC/FORTRAN$B4V$N%$%s%?%U%'!<%9$r4JC1$K$9$k!#$3(B
$B$l$O(Bzebra.desy.de(131.169.2.244)$B$h$j(Banonymous ftp$B$G<j$KF~$l$k(B
$B$3$H$,$G$-$k!#(B

C++$B$G$O30It4X?t$N@k8@$K(B"C"$B=$>~;R$rIU$1$k$3$H$G!"(BC$B$N4X?t$N5/F0(B
$BJ}K!$K=>$C$F5/F0$9$k$3$H$r;XDj$9$k$3$H$,$G$-$k!#(B

References: H&S Sec. 4.9.8 pp. 106-7.

20.26:Pascal($B$"$k$$$O(BFORTRAN$B!"(BLISP$B!"(BAda$B!"(Bawk$B!"(B"$B8E$$(BC")$B$r(BC$B$KJQ49$9$k(B
$B%W%m%0%i%`$rCN$i$J$$$+!#(B

A:$B$$$/$D$+$N<+M3$KG[I[2DG=$J%W%m%0%i%`$,B8:_$9$k!#(B

p2cDave Gillespie$B$K$h$C$F=q$+$l!"(Bcomp.sources.unix$B$K(B1990
$BG/(B4$B7n(B(Volume 21)$B$KEj9F$5$l$?!#(Bcsvax.cs.caltech.edu$B$+$i(B
anonymous ftp$B$9$k$3$H$b$G$-$k!#%U%!%$%kL>$O(B
pub/p2c-1.20.tar.Z$B!#(B

ptoc$B$3$l$b(BPascal$B$r(BC$B$KJQ49$9$k%D!<%k!#$3$l$O(BPascal$B$G=q$+$l(B
$B$F$$$k(B(comp.sources.unix$B$N(BVolume 10$B!"%Q%C%A$O(BVolume
13?$B$K$"$k(B)$B!#(B

f2c$B%Y%k8&$H(BBellcore$B$H%+!<%M%.!<%a%m%sBg3X$N6&F13+H/$K$h$k(B
FORTRAN$B$N%W%m%0%i%`$r(BC$B$KJQ49$9$k%=%U%H%&%(%"!#(Bf2c$B$K$D(B
$B$$$FCN$j$?$1$l$P!V(Bsend index from f2c$B!W$H$$$&%a%C%;!<(B
$B%8$H6&$K(Bnetlib@research.att.com$B$"$k$$$O(B
reseach!netlib$B$K%a!<%k$r=P$9$3$H!#(B(research.att.com$B$N(B
$B%G%#%l%/%H%j(Bdist/f2c$B$+$i$N(Banonymous ftp$B$b2DG=$G$"$k!#(B)

$B$3$N(BFAQ$B$NJT<T$O!">&IJ$H$J$C$?JQ49%D!<%k$d!"$3$3$K5s$2$F$$$J$$(B
$B8@8l$H$N4V$NJQ49%D!<%k$N%j%9%H$rMQ0U$7$F$$$k!#(B

$B<ALd(B11.31$B$H(B18.16$B$b;2>H$N$3$H!#(B

20.27:C++$B$O(BC$B$N>e0L=89g$+!#(BC++$B$N%3%s%Q%$%i$r(BC$B$N%3!<%I$N%3%s%Q%$%k$K;H(B
$B$&$3$H$O$G$-$k$+!#(B

A:C++$B$O(BC$B$K5/8;$r;}$A!"BgItJ,(BC$B$K4p$E$/!#$7$+$7(BC$B8@8l$H$7$F$O@5$7$$(B
$B9=B$$G$"$k$,!"(BC++$B$G$OJ8K!0cH?$J$b$N$,$$$/$D$+B8:_$9$k!#5U$K!"(B
ANSI C$B$O%W%m%H%?%$%W$d(Bconst$B$N$h$&$J!"$$$/$D$+$N5!G=$r(BC++$B$+$i<u(B
$B$17Q$$$G$$$k!#$h$C$F$I$A$i$,>e0L=89g$H$+2<0L=89g$H$$$&$3$H$O$$(B
$B$($J$$!#$3$l$i$N0c$$$K$b$+$+$o$i$:!"(BC$B$N%W%m%0%i%`$NB?$/$O(BC++$B$N(B
$B4D6-$G@5$7$/%3%s%Q%$%k$G$-$k$7!":G6a$N%3%s%Q%$%i$NB?$/$O(BC$B$H(BC++
$BN>J}$N%3%s%Q%$%k%b!<%I$rMQ0U$7$F$$$k!#<ALd(B8.9$B$H(B20.20$B$b;2>H$N$3$H!#(B

References: H&S p. xviii, Sec. 1.1.5 p. 6, Sec. 2.8 pp. 36-7,
Sec. 4.9 pp. 104-107.

20.28:"$B6a;w$N(B"strcmp$B$H$G$b$$$&$h$&$J%k!<%A%s$,M_$7$$!#$D$^$jFs$D$NJ8(B
$B;zNs$,6a$$!"$1$l$II,$:$7$b$T$C$?$j$G$J$/$F$b$h$$!"$3$H$rD4$Y$k(B
$B%k!<%A%s$,M_$7$$!#(B

A:$BJ8;zNs$N$*$h$=$N0lCW$K4X$9$k$h$/=q$1$?>pJs$d%"%k%4%j%:%`$,!";2(B
$B9MJ88%$NLr$KN)$D0lMw$H6&$K!"(BSun Wu$B$H(BUdi Manber$B$NO@J8(B"AGREP --
A Fast Approximate Pattern-Matching Tool"$B$K:\$C$F$$$k!#(B

$B$=$NB>$N$d$jJ}$O$H$7$F$O!V(Bsoundex$B!W$,$"$k!#$3$l$OF1$8MM$JH/2;(B
$B$NC18l$rF1$8?tCM$N%3!<%I$K<LA|$9$k!#(Bsoundex$B$OF1$8MM$JH/2;$NL>(B
$BA0$rA\$9$N$K(B($B$A$J$_$KEEOCD"$N=u$1$K$J$k$h$&$K(B)$B@_7W$5$l$?$,!"G$(B
$B0U$NC18l$r=hM}$9$k$h$&$K$9$k$3$H$b$G$-$k!#(B

References: Knuth Sec. 6 pp. 391-2 Volume 3; Wu and Manber,
"AGREP -- A Fast Approximate Pattern-Matching Tool" .

20.29:$B%O%C%7%eK!$H$O!#(B

A:$B%O%C%7%eK!$H$O!"J8;zNs$r@0?t$K<LA|$9$k=hM}$N$3$H$r$$$&!#DL>o!"(B
$B@0?t$OHf3SE*>.$5$JHO0O$N$b$N$r;H$&!#!V%O%C%7%e4X?t!W$OJ8;zNs(B
($B$^$?$O!"$=$NB>$N%G!<%?9=B$$r(B)$B$rM-3&$N@0?t(B("$B%O%C%7%e%P%1%D(B
(hash bucket)")$B$K<LA|$9$k!#$3$N@0?t$OG[Ns$N%$%s%G%C%/%9$H$7$F(B
$B;H$($k$7!"$/$jJV$7$NHf3S$K;H$&$N$bMF0W$G$"$k!#(B($B$9$0$o$+$k$h$&(B
$B$K!"5pBg$K$J$k2DG=@-$N$"$kJ8;zNs$N=89g$r@0?t$N>.$5$J=89g$K<LA|(B
$B$9$l$P0l0U$K$O$J$i$J$$$b$N$G$"$k!#%O%C%7%eK!$r;H$C$?$I$s$J%"%k(B
$B%4%j%:%`$b!"$3$N(B"$B>WFM(B"$B$,5/$3$k$3$H$r9MN8$K$$$l$J$1$l$P$J$i$J$$!#(B)
$B$3$l$^$G$K!"$5$^$6$^$N%O%C%7%e4X?t$d4XO"$9$k%"%k%4%j%:%`$,3+H/(B
$B$5$l$F$-$?!#$3$l$i$rK~B-$KO@$8$k$3$H$O!"$3$N(BFAQ$B$NHO0O$r1[$($F(B
$B$$$k!#(B

References: K&R2 Sec. 6.6; Knuth Sec. 6.4 pp. 506-549 Volume 3;
Sedgewick Sec. 16 pp. 231-244.

20.31:$BF|IU$+$iMKF|$r5a$a$kJ}K!$O!#(B

A:$B%k!<%A%s(Bmktime()$B$+(Blocaltime()$B$r;H$&$+(B(Q12.6$B!"(BQ12.7$B$r;2>H!#$?$@(B
$B$7(Btm_hour$B$,(B0$B$N$H$-$K$O(BDST adjustment$B$KCm0U$9$k$3$H(B)$B!"(BZeller$B$N(B
$B8x<0(B(sci.math$B$N(BFAQ$B$r;2>H(B)$B$r;H$&$+!"$9$k$+!"$"$k$$$O:dK\CRI'$,(B
$B%]%9%H$7$?0J2<$N5$$NMx$$$?%3!<%I$r;n$9$3$H!#(B

dayofweek(y, m, d)/* 0 = Sunday */
int y, m, d;/* 1 <= m <= 12, y > 1752 or so */
{
static int t[] = {0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4};
y -= m < 3;
return (y + y/4 - y/100 + y/400 + t[m-1] + d) % 7;
}
(Copyright 1993, Tomohiko Sakamoto)

$B<ALd(B13.14$B$H(B20.32$B$b;2>H$N$3$H!#(B

References: ANSI Sec. 4.12.2.3; ISO Sec. 7.12.2.3.

20.32:$B5*85(B2000$BG/$O$&$k$&G/$+!#(B(year % 4 == 0)$B$O$&$k$&G/$+$I$&$+$N@5(B
$B3N$J%F%9%H$+!#(B

A:$B0l$D$a$NLdBj$NEz$($O(BYES$B!"Fs$D$a$O(BNO$B$G$"$k!#%0%l%4%j%*Nq$N%+%l(B
$B%s%@!<MQ$N@5$7$$<0$O0J2<$N<0$GI=$o$5$l$k!#(B

year % 4 == 0 && (year % 100 != 0 || year % 400 == 0)

$B>\:Y$K$D$$$F$O!"$^$H$b$JE7J83XG/4U$+$=$NB>$N;29M=q$r8+$k$3$H!#(B
($B1J1s$KB3$/5DO@$rL$A3$KKI$0$?$a$K8@$C$F$*$/!#(B4000$BG/$K(B1$BEY$&$k(B
$B$&G/$,Mh$k$H<gD%$9$kJ88%$O4V0c$C$F$$$k!#(B) $B<ALd(B13.14$B$b;2>H$N$3$H!#(B

20.34:$B$5$FLdBj$G$9!#$I$&$d$l$P=PNO$H$7$F!"<+J,<+?H$N%=!<%9%3!<%I$r;:(B
$B$_=P$9%3!<%I$r$I$&$d$C$?$i=q$1$k$+!#(B

A:$BK\Ev$K0\?"@-$N9b$$<+8J:F@8%W%m%0%i%`$r=q$/$N$OBgJQFq$7$$!#$3$l(B
$B$OFC$K!"0l=E(B/$BFs=E0zMQId$N;H$$J}!"J8;z=89g(B(ASCII, EBCDIC...)
$B$K2?$r;H$&$+$+$i$/$k:$Fq$K$h$k!#(B

$B0J2<$O8EE5E*$JNc$G$"$k(B($BIaDL$O(B1$B9T$G>R2p$5$l$k!#$7$+$7:G=i$KAv$C(B
$B$?$H$-$K<+?H$r(B"$B=$@5(B"$B$9$k(B)

 char*s="char*s=%c%s%c;main(){printf(s,34,s,34);}";
main(){printf(s,34,s,34);}

($B$3$N%W%m%0%i%`$O!"$3$N<o$N%W%m%0%i%`$NB?$/$HF1$8$h$&$KFs=E0z(B
$BMQId(B " $B$,(BASCII$B$N$h$&$K(B34$B$G$"$k$H7h$a$F$+$+$C$F$$$k(B.$B!K(B

20.35:"$B%@%U$N%G%P%$%9(B(Duff's Device)"$B$H$O!#(B

A:$B$H$s$G$b$J$/6J$,$j$/$M$C$FE83+$5$l$?%P%$%H%3%T!<$N4X?t$G$"$k!#(B
$B$3$l$O(BTome Duff$B$,(BLucasfilm$B$K:_@RCf$K9M$(=P$7$?!#(B"$B8EE5E*(B"$B$J7A<0(B
$B$G$O!"0J2<$N$h$&$K$J$k!#(B

register n = (count + 7) / 8;/* count > 0 $B$G$"$k$H2>Dj$9$k(B */
switch (count % 8)
{
case 0:    do { *to = *from++;
case 7:*to = *from++;
case 6:         *to = *from++;
case 5:*to = *from++;
case 4:*to = *from++;
case 3:*to = *from++;
case 2:*to = *from++;
case 1:*to = *from++;
       } while (--n > 0);
}

count$B%P%$%H$@$1(Bfrom$B$K$h$C$F;X$5$l$?G[Ns$+$i(Bto$B$G;X$5$l$?>l=j$^(B
$B$G%3%T!<$9$k(B(to$B$,;X$7$F$$$k@h$O%a%b%j%^%C%W$5$l$?%G%P%$%9$N=P(B
$BNO%l%8%9%?$G$"$k!#$@$+$i(Bincrement$B$5$l$J$$(B)$B!#;D$j$N%P%$%H$N=h(B
$BM}$9$kLdBj$r(B(count$B$,(B8$B$NG\?t$G$J$$$H$-$K(B)$B!"(Bswtich$BJ8$K0lEY$K(B8$B%P(B
$B%$%H%3%T!<$9$k%k!<%W$r:9$79~$`$3$H$G2r7h$7$F$$$k!#6C$/$J$+$l!"(B
swtich$BJ8$KF~$l;R$K$J$C$F$$$k%V%m%C%/$NCf$K(Bcase$B$N%i%Y%k$rKd$a$3(B
$B$`$3$H$O9gK!$G$"$k!#$3$N5;$N(BC$B$G3+H/$9$k?MC#$d@$$NCf$X$NH`$N@<(B
$BL@$K$h$l$P!"$3$N(BC$B$N(Bswtich$B$N9=J8$O!"FC$K(B"$B2<$KMn$A$k(B(fall
through)"$BF0$-$,!"@N$+$iJ*5D$r$+$b$7$F$-$?!#!V$3$N%3!<%I$O$=$&(B
$B$$$&5DO@$KO@5r$r=P$9$3$H$K$J$k!#$?$@$7!";?@.0U8+$J$N$+H?BP0U8+(B
$B$J$N$+$O$h$/$o$+$i$J$$!#!W(B

20.36:$B<!$N9q:]Fq2r(BC$B%3!<%I%3%s%F%9%H(B:International Obfuscated C Code
Contest(IOCCC)$B$O$$$D3+$+$l$k$N$+!#$I$&$9$l$P:#2s$d@N$N<x>^:n$r(B
$B<j$KF~$l$k$3$H$,$G$-$k$N$+!#(B

A:$B%3%s%F%9%H$N%9%1%8%e!<%k$O!"<x>^<T$NH/I=$5$l$k(BUSENIX$B$N2q5D$NF|(B
$BIU$KG{$i$l$F$$$k!#$3$N(BFAQ$B$r=q$$$F$$$k;~E@$G$O!"$3$NG/$K0lEY9T(B
$B$o$l$k%3%s%F%9%H$O(B10$B7n$K3+$+$l$k!#(B $B:G?7$N%k!<%k$d$=$N30$N>pJs(B
$B$rF@$k$K$O(BSubject:$B$K!V(Bsend rules$B!W$H=q$$$F(B

{apple,pyramid,sun,uunet}!hoptoad!judges  or
judges@toad.com

$B$KAw$l$P$h$$(B($B$3$l$i$N%"%I%l%9$O=PE8$N?=$79~$_MQ$G$O$J$$(B)$B!#(B

$B%3%s%F%9%H$N<u>^<T$O(B1$B7n$K9T$o$l$kE_$N(BUSENIX$B$N2q5D$G:G=i$KH/I=(B
$B$5$l!"$=$N8e%M%C%H$KEj9F$5$l$k!#@N$N(B(1984$BG/0J9_$N(B)$B<u>^:nIJ$O(B
uunet$B$N(B~/pub/ioccc$B$H$$$&%G%#%l%/%H%j$+$i<j$KF~$l$k$3$H$,$G$-$k(B
($B<ALd(B18.16$B$r;2>H(B)$B!#(Bhttp://reality.sgi.com/csp/ioccc/$B$b;2>H$N$3$H!#(B

$B$I$&$d$C$F$b<j$KF~$l$i$l$J$1$l$P!"2a5n$N<x>^:n$O>e5-$N%"%I%l%9(B
$B$K(BSubject:$B$H$7$F!V(Bsend YEAR$B!W$rIU$1$?EE;R%a!<%k$rAw$k$3$H$K$h$C(B
$B$FF@$i$l$k!#$3$3$G(BYEAR$B$O(B4$B$1$?$NG/$+!"G/EY$NHO0O;XDj!"$"$k$$$O(B
$B!V(Ball$B!W$G$"$k!#(B

20.37:K&R1$B$G=R$Y$i$l$F$$$?(Bentry$B$H$$$&%-!<%o!<%I$O!#(B

A:$B$3$N%-!<%o!<%I$O(BFORTRAN$B$N$h$&$K!"4X?t$,J#?t$N0[$J$kL>A0$N%(%s%H(B
$B%j!<%]%$%s%H$r;}$D$3$H$r5v$9$3$H$r9M$($FM=Ls$5$l$F$$$?!#$3$N5!(B
$BG=$,<B8=$5$l$?Nc$rCN$C$F$$$k?M$OC/$b$$$J$$(B($B$3$N%-!<%o!<%I$r;H$C(B
$B$F$I$&$$$&9=J8$,9M$($i$l$F$$$?$N$+$b$@$l$bCN$i$J$$(B)$B!#$3$N5!G=(B
$B$OE12s$5$l!"(BANSI C$B$N%-!<%o!<%I$K$O$J$i$J$+$C$?!#(B($B<ALd(B1.12$B$b;2(B
$B>H$N$3$H!#(B)

References: K&R2 p. 259 Appendix C.

20.38:$B$=$b$=$b!"!V(BC$B!W$H$$$&L>A0$NM3Mh$O!#(B

A:C$B$O(BKen Thompson$B$N<B83E*$J%W%m%0%i%_%s%08@8l(BB$B$+$iGI@8$7$?$b$N$G(B
$B$"$k!#(BB$B$O(BMartin Richards$B$N(BBCPL(Basic Combined Programming
Language)$B$+$iCeA[$rF@$F$$$k!#(BBCPL$B$O(BCPL(Cambridge Programming
Language)$B$N;EMM$r5-=R$7$?$b$N$G$"$C$?!#$7$P$i$/!"(BC$B$N8e7Q8@8l$O(B
D$B$G$O$J$/!"(BP(BCPL$B$N(B3$BHVL\$NJ8;z(B)$B$H$$$&L>A0$K$J$k$N$G$O$J$$$+$H(B
$B1=$5$l$F$$$?!#$7$+$7$b$A$m$s:#F|0lHVL\$K$D$/8e7Q8@8l$O(BC++$B$G$"(B
$B$k!#(B

20.39:$B!V(Bchar$B!W$H$$$&$N$O$I$&H/2;$9$k$N$+!#(B

A:C$B8@8l$N%-!<%o!<%I$N!V(Bchar$B!W$NH/2;$N;EJ}$O>/$J$/$H$b(B3$BDL$j$O$"$k!#(B
$B!V(Bchar($B%A%c!<(B)$B!W!"!V(Bcare($B%1%"(B)$B!W!"!V(Bcar($B%+!<(B)$B!W$N$h$&$KH/2;$9(B
$B$k!#(B("$B%-%c%i%/%?!<(B"$B$G$b$h$$(B)$B$I$l$r;H$C$F$b$$$$!#(B
($BLuCm(B:$B%+%?%+%J$GH/2;$rI=5-$7$?!X(BUNIX$BMQ8lM3Mh(B/$BFI$_J}<-=q!Y$,(B
http://www.meitetsu.co.jp/docs/dic/unix-term-dic.html$B$+$i(B
$BF~<j2DG=$G$"$k!#(B)

20.40:$B$3$N%j%9%H$r$b$&0lItM_$7$$$,$I$&$7$?$i$h$$$+!#2a5n$NHG$O$I$&$+!#(B

A:$B:G?7HG$O(Bftp.eskimo.com$B$N%G%#%l%/%H%j(Bu/s/scs/C-faq/$B$+$iF~<j$9$k(B
$B$3$H$,$G$-$k!#%M%C%H$+$i$b0z$CD%$C$F$/$k$3$H$,$G$-$k!#DL>o!"%K%e!<(B
$B%9%0%k!<%W(Bcomp.lang.c$B$K7n$N;O$a$KEj9F$5$l$k!#(BExpires:$B9T$,IU$$(B
$B$F$$$k$N$G0l%v7n4]!9>C$($J$$$G;D$C$F$$$k!#JB9T$7$F!"4J0WHG$bF~(B
$B<j2DG=$G$"$k(B($BEj9F$b$5$l$F$$$k(B)$B!#Bg$-$/99?7$7$?HG$K$OJQ99$N0lMw(B
$B$bMQ0U$7$F$$$k!#(B

$B$3$N(BFAQ$B$O$5$^$6$^$J7A$G%K%e!<%9%0%k!<%W(Bcomp.answers$B$d(B
news.answers$B$KEj9F$5$l$F$$$k!#$$$/$D$b$N%5%$%H$,$3$N(BFAQ$B$b4^$a(B
$B$F!"(Bnews.answers$B$X$NEj9F$d$=$NB>$N(BFAQ$B$rJ]4I$7$F$$$k!#%5%$%H(B
rtfm.mit.edu($B%G%#%l%/%H%j(Bpub/usenet/news.answers/C-faq/$B$H(B
pub/usenet/comp.lang.c/)$B$d%5%$%H(Bftp.uu.net ($B%G%#%l%/%H%j(B
usenet/news.answers/C-faq/) $B$O!"$=$N$h$&$J%5%$%H$N$&$A$N(B2$B$D$G(B
$B$"$k!#(Barchie$B%5!<%P!<(B($B<ALd(B18.16$B;2>H(B)$B$O$=$N$h$&$J%5%$%H$r8+$D$1(B
$B$k=u$1$K$J$k!#(Barchie$B$K(B"prog C-faq"$B$HJ9$$$F$_$m!#(Bftp$B$,;H$($J$$(B
$B4D6-$J$i!"(Brtfm.mit.edu$B$K$"$k%a!<%k%5!<%P!<$r;H$C$F(BFAQ$B$r<j$K$$(B
$B$l$k$3$H$,$G$-$k!#$^$:$O!"K\J8$K!V(Bhelp$B!W$H$@$1=q$$$F(B
mail-server@rtfm.mit.edu$B$KAw$k!#$=$NB>$N>pJs$O(Bnews.answers$B$N(B
meta-FAQ list$B$+$iF@$i$l$k!#(B

$B$3$N(BFAQ$B$NJL$N7ABV$N$b$N$,(BWorld-Wide Web$B$GFI$`$3$H$,$G$-$k!#(B3$B$D(B
$B$N(BURL$B$O(B($B$=$l$>$l7ABV$O0[$J$k(B)$B!"(B
http://www.lysator.liu.se/c/c-faq/index.html$B$H(B
http://www.hut.fi/~jkorpela/CFAQ.html$B$H(Bhttp://www.cis.ohio-
state.edu/hypertext/faq/usenet/C-faq/top.html$B$G$"$k!#(B($B0J2<$G>R(B
$B2p$9$kK\$KBP1~$9$k(B)$B3HBgHG$O$b$&$9$0!"$?$V$s(B1995$BG/$N(B9$B7nH>$P$K;H(B
$B$($k$h$&$K$J$k!#$9$Y$F$N(BFAQ$B$r;X$9(BURL($BOCBj$K$h$k8!:w$,$G$-$k$b(B
$B$N(B)$B$O(Bhttp://www.cis.ohio-
state.edu/hypertext/faq/usenet/FAQ-List.html$B$H(B
http://www.luth.se/wais/$B$K$"$k!#(B

$B$3$N(BFAQ$B$N3HD%$7$?HG$O(BAddison-Wesley$B$h$j!X(BC Programming FAQs:
Frequently Asked Questions$B!Y(B(ISBN 0-201-84519-9)$B$H$7$F(B1995$BG/(B11
$B7n$K=PHG$5$l$F$$$k!#(B

($BLuCm(B: $BF|K\8lHG$O%H%C%Q%s$h$j!X(BC$B%W%m%0%i%_%s%0(BFAQ C$B%W%m%0%i%_(B
$B%s%0$N$h$/?R$M$i$l$k<ALd!Y(B(ISBN 4-8101-8097-2)$B$H$7$F=PHG$5$l$F(B
$B$$$k!#(B)

$B$3$N%j%9%H$OH/E8$7B3$1$k;qNA$G$"$k!#C1$K:#7n$N6=L#?<$$<ALd$X$N(B
$B2sEz$N4s$;=8$a$G$O$J$$!#@N$N%j%9%H$O;~BeCY$l$GBg$7$?>pJs$r;}$C(B
$B$F$$$J$$!#Nc30$O!"$H$-$I$-$"$kF~NO%_%9$G!":#2s$N%j%9%H$K4^$^$l(B
$B$F$$$J$$$b$N$G$"$k!#(B

$B;29MJ88%(B

Americal National Standards Institute, _American National Standard for
Information Systems -- Programming Language -- C_, ANSI X3.159-1989 
($B<ALd(B11.2$B;2>H(B).  [ANSI]

Americal National Standards Institute, _Rationale for American National
Standard for Information Systems -- Programming Language -- C_ 
($B<ALd(B11.2$B;2>H(B).  [Rationale]

Jon Bentley, _Writing Efficient Programs_, Prentice-Hall, 1982, ISBN 0-
13-970244-X.
 ($BK.Lu(B:$B%W%m%0%i%`2~NI3X(B $B6aBe2J3X<R(B ISBN4-7649-0159-5)

G.E.P. Box and Mervin E. Muller, "A Note on the Generation of Random
Normal Deviates," _Annals of Mathematical Statistics_, Vol. 29 #2, June,
1958, pp. 610-611.

David Burki, "Date Conversions," _The C Users Journal_, February 1993,
pp. 29-34.

Ian F. Darwin, _Checking C Programs with lint_, O'Reilly, 1988, ISBN 0-
937175-30-7.

David Goldberg, "What Every Computer Scientist Should Know about
Floating-Point Arithmetic," _ACM Computing Surveys_, Vol. 23 #1, March,
1991, pp. 5-48.

Samuel P. Harbison and Guy L. Steele, Jr., _C: A Reference Manual_,
Fourth Edition, Prentice-Hall, 1995, ISBN 0-13-326224-3.  [H&S]
($BK.Lu!'>\:Y(BC$B8@8l(B:H&S$B%j%U%!%l%s%9(B $BF|K\%=%U%H%P%s%/(B ISBN4-89052-050-3)

Mark R. Horton, _Portable C Software_, Prentice Hall, 1990, ISBN 0-13-
868050-7.  [PCS]
($BK.Lu!'%]!<%?%V%k(BC$B%W%m%0%i%_%s%0(B $B%H%C%Q%s(B)

Institute of Electrical and Electronics Engineers, _Portable Operating
System Interface (POSIX) -- Part 1: System Application Program Interface
(API) [C Language_, IEEE Std. 1003.1, ISO/IEC 9945-1.

International Organization for Standardization, ISO 9899:1990 (see
question 11.2).  [ISO]

Brian W. Kernighan and P.J. Plauger, _The Elements of Programming
Style_, Second Edition, McGraw-Hill, 1978, ISBN 0-07-034207-5.
($BK.Lu!'%W%m%0%i%`=qK!Bh(B2$BHG(B $B6&N)=PHG(B)

Brian W. Kernighan and Dennis M. Ritchie, _The C Programming Language_,
Prentice-Hall, 1978, ISBN 0-13-110163-3.  [K&R1]
($BK.Lu!'%W%m%0%i%_%s%08@8l(BC $B6&N)=PHG(B)

Brian W. Kernighan and Dennis M. Ritchie, _The C Programming Language_,
Second Edition, Prentice Hall, 1988, ISBN 0-13-110362-8, 0-13-110370-9.
[K&R2]
($BK.Lu!'%W%m%0%i%_%s%08@8l(BC $BBh(B2$BHG(B $B6&N)=PHG(B)

Donald E. Knuth, _The Art of Computer Programming_.  Volume 1:
_Fundamental Algorithms_, Second Edition, Addison-Wesley, 1973, ISBN 0-
201-03809-9.  Volume 2: _Seminumerical Algorithms_, Second Edition,
Addison-Wesley, 1981, ISBN 0-201-03822-6.  Volume 3: _Sorting and
Searching_, Addison-Wesley, 1973, ISBN 0-201-03803-X.  [Knuth]
 ($BK.Lu!'4pK\;;K!(B)

Andrew Koenig, _C Traps and Pitfalls_, Addison-Wesley, 1989, ISBN 0-201-
17928-8.  [CT&P]
 ($BK.Lu!'(BC$B$NMn$H$77j(B $B%H%C%Q%s(B)

Stephen K. Park and Keith W. Miller, "Random Number Generators: Good
Ones are Hard to Find," _Communications of the ACM_, Vol. 31 #10,
October, 1988, pp. 1192-1201 (also technical correspondence August,
1989, pp. 1020-1024, and July, 1993, pp. 108-110).

P.J. Plauger, _The Standard C Library_, Prentice Hall, 1992, ISBN 0-13-
131509-9.

Thomas Plum, _C Programming Guidelines_, Second Edition, Plum Hall,
1989, ISBN 0-911537-07-4.

William H. Press, Saul A. Teukolsky, William T. Vetterling, and Brian P.
Flannery, _Numerical Recipes in C_, Second Edition, Cambridge University
Press, 1992, ISBN 0-521-43108-5.

Dale Schumacher, Ed., _Software Solutions in C_, AP Professional, 1994,
ISBN 0-12-632360-7.

Robert Sedgewick, _Algorithms in C_, Addison-Wesley, 1990, ISBN 0-201-
51425-7.

Charles Simonyi and Martin Heller, "The Hungarian Revolution," _Byte_,
August, 1991, pp.131-138.

David Straker, _C Style: Standards and Guidelines_, Prentice Hall, ISBN
0-13-116898-3.

Steve Summit, _C Programming FAQs: Frequently Asked Questions_, Addison-
Wesley, 1995, ISBN 0-201-84519-9.  [The book version of this FAQ list.]

Sun Wu and Udi Manber, "AGREP -- A Fast Approximate Pattern-Matching
Tool," USENIX Conference Proceedings, Winter, 1992, pp. 153-162.

$B2~D{$5$l$?(BIndian Hills$B%9%?%$%k%,%$%I(B($B<ALd(B17.9$B;2>H(B)$B$K$b;29MJ88%$N0l(B
$BMw$,:\$C$F$$$k!#<ALd(B18.10$B$b;2>H$N$3$H!#(B
$B<U<-(B

$BD>@\$K$"$k$$$O4V@\E*$K$3$N(BFAQ$B$K9W8%$7$F$/$l$?0J2<$N3'$5$s$K46<U$9$k!#(B
Jamshid Afshar, David Anderson, Tanner Andrews, Sudheer Apte, Joseph
Arceneaux, Randall Atkinson, Rick Beem, Peter Bennett, Wayne Berke,
Dan Bernstein, Tanmoy Bhattacharya, John Bickers, Gary Blaine, Yuan
Bo, Mark J. Bobak, Dave Boutcher, Alan Bowler, Michael Bresnahan,
Walter Briscoe, Vincent Broman, Stan Brown, John R. Buchan, Joe
Buehler, Kimberley Burchett, Gordon Burditt, Scott Burkett, Burkhard
Burow, Conor P. Cahill, D'Arcy J.M. Cain, Christopher Calabrese, Ian
Cargill, Vinit Carpenter, Paul Carter, Mike Chambers, Billy Chambless,
C. Ron Charlton, Franklin Chen, Jonathan Chen, Raymond Chen, Richard
Cheung, Steve Clamage, Ken Corbin, Ian Cottam, Russ Cox, Jonathan
Coxhead, Lee Crawford, Nick Cropper, Steve Dahmer, Andrew Daviel,
James Davies, John E. Davis, Ken Delong, Norm Diamond, Bob Dinse, Jeff
Dunlop, Ray Dunn, Stephen M. Dunn, Michael J. Eager, Scott Ehrlich,
Arno Eigenwillig, Yoav Eilat, Dave Eisen, Joe English, Bjorn Engsig,
David Evans, Clive D.W.  Feather, Dominic Feeley, Simao Ferraz, Chris
Flatters, Rod Flores, Alexander Forst, Steve Fosdick, Jeff Francis,
Ken Fuchs, Tom Gambill, Dave Gillespie, Samuel Goldstein, Tim Goodwin,
Alasdair Grant, Ron Guilmette, Doug Gwyn, Michael Hafner, Darrel
Hankerson, Tony Hansen, Elliotte Rusty Harold, Joe Harrington, Des
Herriott, Guy Harris, John Hascall, Ger Hobbelt, Jos Horsmeier, Syed
Zaeem Hosain, Blair Houghton, James C. Hu, Chin Huang, David Hurt,
Einar Indridason, Vladimir Ivanovic, Jon Jagger, Ke Jin, Kirk Johnson,
Larry Jones, Arjan Kenter, Bhaktha Keshavachar, James Kew, Darrell
Kindred, Lawrence Kirby, $BKLLn(B $B6V0l(B, Peter Klausler, Andrew
Koenig, Tom Koenig, Adam Kolawa, Jukka Korpela, Ajoy Krishnan T, Jon
Krom, Markus Kuhn, Deepak Kulkarni, Oliver Laumann, John Lauro, Felix
Lee, Mike Lee, Timothy J. Lee, Tony Lee, Marty Leisner, Don Libes,
Brian Liedtke, Philip Lijnzaad, Keith Lindsay, Yen-Wei Liu, Paul Long,
Christopher Lott, Tim Love, Tim McDaniel, J. Scott McKellar, Kevin
McMahon, Stuart MacMartin, John R.  MacMillan, Andrew Main, Bob
Makowski, Evan Manning, Barry Margolin, George Matas, Brad Mears,
Wayne Mery, De Mickey, Rich Miller, Roger Miller, Bill Mitchell, Mark
Moraes, Darren Morby, Bernhard Muenzer, David Murphy, Walter Murray,
Ralf Muschall, Ken Nakata, Todd Nathan, Taed Nelson, Landon Curt Noll,
Tim Norman, Paul Nulsen, David O'Brien, Richard A. O'Keefe, Adam
Kolawa, Keith Edward O'hara, James Ojaste, Hans Olsson, Bob Peck,
Andrew Phillips, Christopher Phillips, Francois Pinard, Nick Pitfield,
Wayne Pollock, Polver@aol.com, Dan Pop, Claudio Potenza, Lutz
Prechelt, Lynn Pye, Kevin D. Quitt, Pat Rankin, Arjun Ray, Eric
S. Raymond, Peter W. Richards, James Robinson, Eric Roode, Manfred
Rosenboom, J. M. Rosenstock, Rick Rowe, Erkki Ruohtula, John Rushford,
Kadda Sahnine, $B:dK\(B $BCRI'(B, Matthew Saltzman, Rich Salz, Chip
Salzenberg, Matthew Sams, Paul Sand, DaviD W. Sanderson, Frank Sandy,
Christopher Sawtell, Jonas Schlein, Paul Schlyter, Doug Schmidt, Rene
Schmit, Russell Schulz, Dean Schulze, Chris Sears, Peter Seebach,
Patricia Shanahan, Aaron Sherman, Raymond Shwake, Peter da Silva,
Joshua Simons, Ross Smith, Henri Socha, Leslie J. Somos, Henry
Spencer, David Spuler, Frederic Stark, James Stern, Zalman Stern,
Michael Sternberg, Alan Stokes, Bob Stout, Steve Sullivan, Melanie
Summit, Erik Talvola, Dave Taylor, Clarke Thatcher, Wayne Throop,
Chris Torek, Steve Traugott, Ilya Tsindlekht, Andrew Tucker, Goran
Uddeborg, Rodrigo Vanegas, Jim Van Zandt, Wietse Venema, Tom Verhoeff,
Ed Vielmetti, Larry Virden, Chris Volpe, Mark Warren, Alan Watson,
Kurt Watzka, Larry Weiss, Martin Weitzel, Howard West, Tom White,
Freek Wiedijk, Tim Wilson, Dik T.  Winter, Lars Wirzenius, Dave
Wolverton, Mitch Wright, Conway Yee, Ozan S. Yigit, and Zhuo Zang$B!#(B


, who
have contributed, directly or indirectly, to this article.  Thanks to
the reviewers of the book-length version: Mark Brader, Vinit
Carpenter, Stephen Clamage, Jutta Degener, Doug Gwyn, Karl Heuer, and
Joseph Kent$B!#(B

$B=q@RHG$N(Breviewer$B$N(BMark Brader, Vinit
Carpenter, Stephen Clamage, Jutta Degener, Doug Gwyn, Karl Heuer, and
Joseph Kent$B$K46<U$9$k!#(B
$BFC$K(BKarl Heuer$B$H(BJutta Degener$B$H(BMark Brader$B$K!"$h$j$h$$(BFAQ$B$N%j%9%H$r:n(B
$B$k$H$$$&=*$o$j$N$J$$L\E*DI5a$N$?$a$K;d$N9%$_$rJ*$H$b$;$:!"$H$-$K$O;d$N(B
$B2fK}$r1[$($??e@h0FFb$r$7$F$/$l$?$3$H$K46<U$9$k!#(B
Special thanks to Karl Heuer, Jutta
Degener, and particularly to Mark Brader, who (to borrow a line from
Steve Johnson) have goaded me beyond my inclination, and occasionally
beyond my endurance, in relentless pursuit of a better FAQ list.

Steve Summit
scs@eskimo.com

$B$3$N5-;v$NCx:n8"$O(B1990$BG/$+$i(B1996$BG/$KEO$C$F(BSteve Summit$B$K5"B0$9(B
$B$k!#=q@R!X(BC Programming FAQs: Frequently Asked Questions$B!Y$NFbMF$rCx<T(B
$B$H=PHG<R$N5v2D$N85!"<R2q$X$N9W8%$N$?$a$K;HMQ$7$F$$$k!#$3$N(BFAQ$B$O=q@RHG(B
$B$rJdB-$9$k$3$H$r0U?^$H$7$F$$$k!#FbMF$O3F9q$NCx:n8"K!$K$h$C$F<i$i$l$k!#(B
($BLuCm(B:$BF|K\8lHG$NCx:n8"$OKLLn(B $B6V0l$K5"B0$9$k!#(B)
The
content is made available here and may be accessed freely for personal
use but may not be republished without permission.
Except as noted otherwise, the C code in this article is public domain
and may be used without restriction.
$B$3$N(BFAQ$BFb$N(BC$B$N%3!<%I(B(vstrcat(), error()$B$J$I(B)$B$O%Q%V%j%C%/%I%a%$%s$G!"2?(B
$B$N@)8B$b$J$/;HMQ$7$F$h$$!#(B

This article is Copyright 1990-1996 by Steve Summit.
Content from the book _C Programming FAQs: Frequently Asked Questions_
is made available here by permission of the author and the publisher as
a service to the community.  It is intended to complement the use of the
published text and is protected by international copyright laws.  The
content is made available here and may be accessed freely for personal
use but may not be republished without permission.
Except as noted otherwise, the C code in this article is public domain
and may be used without restriction.

$BF|K\8lHG$N<U<-(B

$BF|K\8lHG$r=P$9$K$"$?$C$F0J2<$NJ}$K!"MM!9$J7A$G=u$1$F$b$i$$$^$7$?!#46(B
$B<U$7$F$^$9!#(B

void$B$5$s!"@n2<(B $B7IG7$5$s!"Ln8}(B $B63;R$5$s!"MZL4$5$s!"HS4V(B $B>:$5$s!"@1Ln(B $B9@(B
$B;V$5$s!"7k>k(B $B5A7I$5$s!"EDJU(B $BNIB'$5$s!":dK\(B $BCRI'$5$s!"%U%#%s%m!<%@!<$5(B
$B$s!"@DLZ(B $BOBKcO$$5$s!"B@ED(B $B=c$5$s!"7'C+(B $BE5Bg$5$s(B($B=gITF1(B)

$B:G8e$K86Cx<T$N(BSteve Summit$B$5$s$K!";d$N:Y$+$$<ALd$K0l!9CzG+$KEz$($F$b(B
$B$i$C$?$3$H$r46<U$7$^$9!#(B
