%!PS-Adobe-1.0 %%Creator: devps (Pipeline Associates, Inc.) %%CreationDate: Fri Sep 13 13:06:46 1996 %%Pages: (atend) %%DocumentFonts: (atend) /devps 180 dict def devps begin /res 10.000000 def /y_offset 843 def /X{exch}bind def /mm {transform round X round X itransform} bind def /r{rmoveto}bind def /m{moveto}bind def /l{lineto}bind def /rl{rlineto}bind def /st{stroke}bind def /gs{gsave}bind def /gr{grestore}bind def /cp{currentpoint}bind def /np{newpath}bind def /ct{curveto}bind def systemdict /setpacking known { /savepacking currentpacking def true setpacking } if /m0{0 0 moveto}bind def /xc{//res div}bind def /yc{//res neg div //y_offset add}bind def /lc{yc X xc X l st}bind def /mc{yc X xc X m}bind def /el{gs /a X def a div 1 X scale cp np a xc 2 div 0 360 arc st gr}bind def /ar{cp 7 2 roll np xc 5 1 roll atan 3 1 roll atan X arc st}bind def /sp{yc X xc X 6 2 roll yc X xc X 6 2 roll yc X xc X 6 2 roll ct}bind def /V{//res neg div //y_offset add currentpoint pop X m}bind def /H{//res div 0 transform X round X itransform pop currentpoint X pop moveto}bind def /h{//res div 0 r}bind def /v{//res neg div 0 X r}bind def /S{X H show}bind def /A{H //res div 1 index stringwidth pop sub 1 index length div 0 3 2 roll ashow}bind def /psize 10 def /height 0 def /cheight { height 0 ne { height } { psize } ifelse } bind def /slant 0 def /FF{findfont X dup 30 div 0 mm pop setlinewidth /psize X def [psize 0 cheight slant sin slant cos div mul cheight 0 0] makefont setfont}bind def /shade{gs /dy X def /dx X def np m 0 /dy rl /dx 0 rl 0 /dy neg rl /dx neg 0 rl closepath .9 setgray fill gr}bind def 1 setlinecap /resolution res 72 mul def /startFig { /SavedState save def userdict maxlength dict begin currentpoint transform DocumentInitState setmiterlimit setgray setdash setlinejoin setlinecap setlinewidth setmatrix itransform moveto /ury exch def /urx exch def /lly exch def /llx exch def /y exch 72 mul resolution div def /x exch 72 mul resolution div def currentpoint /cy exch def /cx exch def /sx x urx llx sub div def /sy y ury lly sub div def sx sy scale cx sx div llx sub cy sy div ury sub translate /DefFigCTM matrix currentmatrix def /initmatrix { DefFigCTM setmatrix } def /defaultmatrix { DefFigCTM exch copy } def /initgraphics { DocumentInitState setmiterlimit setgray setdash setlinejoin setlinecap setlinewidth setmatrix DefFigCTM setmatrix } def /showpage { initgraphics } def }bind def /clipFig { currentpoint 6 2 roll newpath 4 copy 4 2 roll moveto 6 -1 roll exch lineto exch lineto exch lineto closepath clip newpath moveto }bind def /doclip { llx lly urx ury clipFig } def /endFig { end SavedState restore }bind def /globalstart { fontnum psize slant height resolution currentpoint pagesave restore gsave }bind def /globalend { grestore moveto /resolution exch def /height exch def /slant exch def /psize exch def /fontnum exch def F /pagesave save def }bind def /fontnum 1 def systemdict /setpacking known { savepacking setpacking} if end /BP{ save mark devps begin m0 /DocumentInitState [ matrix currentmatrix currentlinewidth currentlinecap currentlinejoin currentdash currentgray currentmiterlimit ] cvx def }bind def /EP{ end cleartomark restore showpage}def /Encoding-1 256 array def 0 1 255 {Encoding-1 exch /.notdef put} for Encoding-1 8#301 StandardEncoding 8#101 26 getinterval putinterval %A-B Encoding-1 8#341 StandardEncoding 8#141 26 getinterval putinterval %a-b Encoding-1 8#241 StandardEncoding 8#301 16 getinterval putinterval %accents Encoding-1 8#373 StandardEncoding 8#365 1 getinterval putinterval %dotlessi Encoding-1 dup 8#41 /copyright put dup 8#42 /registered put dup 8#43 /trademark put dup 8#44 /logicalnot put dup 8#45 /Eth put dup 8#46 /eth put dup 8#47 /Thorn put dup 8#50 /thorn put dup 8#51 /brokenbar put dup 8#52 /degree put dup 8#53 /divide put dup 8#54 /multiply put dup 8#55 /minus put dup 8#56 /onehalf put dup 8#57 /onequarter put dup 8#60 /threequarters put dup 8#101 /Aacute put dup 8#102 /Acircumflex put dup 8#103 /Adieresis put dup 8#104 /Agrave put dup 8#105 /Aring put dup 8#106 /Atilde put dup 8#107 /Ccedilla put dup 8#110 /Eacute put dup 8#111 /Ecircumflex put dup 8#112 /Edieresis put dup 8#113 /Egrave put dup 8#114 /Iacute put dup 8#115 /Icircumflex put dup 8#116 /Idieresis put dup 8#117 /Igrave put dup 8#120 /Ntilde put dup 8#121 /Oacute put dup 8#122 /Ocircumflex put dup 8#123 /Odieresis put dup 8#124 /Ograve put dup 8#125 /Otilde put dup 8#126 /Scaron put dup 8#127 /Uacute put dup 8#130 /Ucircumflex put dup 8#131 /Udieresis put dup 8#132 /Ugrave put dup 8#133 /Ydieresis put dup 8#134 /Zcaron put dup 8#135 /aacute put dup 8#136 /acircumflex put dup 8#137 /adieresis put dup 8#140 /agrave put dup 8#141 /aring put dup 8#142 /atilde put dup 8#143 /ccedilla put dup 8#144 /eacute put dup 8#145 /ecircumflex put dup 8#146 /edieresis put dup 8#147 /egrave put dup 8#150 /iacute put dup 8#151 /icircumflex put dup 8#152 /idieresis put dup 8#153 /igrave put dup 8#154 /ntilde put dup 8#155 /oacute put dup 8#156 /ocircumflex put dup 8#157 /odieresis put dup 8#160 /ograve put dup 8#161 /otilde put dup 8#162 /scaron put dup 8#163 /uacute put dup 8#164 /ucircumflex put dup 8#165 /udieresis put dup 8#166 /ugrave put dup 8#167 /ydieresis put dup 8#170 /zcaron put pop /Enc-dict 30 dict def Enc-dict /tmpstr1 50 string put Enc-dict /tmpstr2 50 string put Enc-dict /tmpstr3 50 string dup (Encoding-) exch cvs pop put /AEnc-def { % arguments: the original font's name, encoding nr Enc-dict begin tmpstr2 cvs /Enc-no exch def % Remember the number in a string dup /OrigName exch def % remember the name findfont dup maxlength dict /newdict exch def % get dictionary for new font { exch dup /FID ne { exch newdict 3 1 roll put } { pop pop } % Ignore FID ifelse } forall newdict begin /Encoding tmpstr3 9 Enc-no putinterval tmpstr3 0 9 Enc-no length add getinterval cvn load def % Replace encoding currentdict /UniqueID known { /UniqueID UniqueID Enc-no cvi 49999 mul add def } if % Derive New UniqueID end % newdict /FNlength OrigName tmpstr1 cvs length def % convert name, remember length FNlength 1 add Enc-no length add string dup 0 OrigName tmpstr1 cvs putinterval dup FNlength (-) putinterval dup FNlength 1 add Enc-no putinterval dup 0 tmpstr1 0 FNlength getinterval putinterval % Add old name cvn dup newdict /FontName 3 2 roll put newdict definefont end % Enc-dict } def /Times-Roman 1 AEnc-def pop /R-1{/Times-Roman-1 FF}def /Times-Bold 1 AEnc-def pop /B-1{/Times-Bold-1 FF}def /R{/Times-Roman FF}def /B{/Times-Bold FF}def /I{/Times-Italic FF}def %%EndProlog %%Page: 1 1 BP /slant 0 def /height 0 def 480 V 10 R 720(GETOPT)S 1116(\()S 1158(3)S 1216(\))S 2696(Eighth)S (Edition)296 2989 A 4731(GETOPT)S 5127(\()S 5169(3)S 5227(\))S 960 V 9 R 720(N)S 722(NA)S 790(AM)S 858(ME)S 940(E)S 1080 V 10 R 1080(getopt)S 10 R-1 1356(-)S 10 R 1438(get)S 1586(option)S 1867(letter)S 2100(from)S 2321(argv)S 1248 V 9 R 720(S)S 722(SY)S 774(YN)S 842(NO)S 910(OP)S 978(PS)S 1030(SI)S 1082(IS)S 1115(S)S 1368 V 10 B 1080(int)S 1236(getopt\(argc,)S 1792(argv,)S 2050(optstring\))S 1488 V 1080(int)S 1236(argc;)S 1608 V 1080(char)S (**argv;)329 1314 A 1728 V 1080(char)S 1314(*optstring;)S 1968 V 1080(extern)S 1393(char)S 1627(*optarg;)S 2088 V 1080(extern)S 1393(int)S 1549(optind;)S 2256 V 9 R 720(D)S 722(DE)S 790(ES)S 848(SC)S 900(CR)S 962(RI)S 1024(IP)S 1057(PT)S 1109(TI)S 1167(IO)S 1200(ON)S 1268(N)S 2376 V 10 I 1080(Getopt)S 10 R 1385(returns)S 1696(the)S 1850(next)S 2054(option)S 2341(letter)S 2580(in)S 10 I 2689(argv)S 10 R 2904(that)S 3086(matches)S 3447(a)S 3523(letter)S 3762(in)S 10 I 3871(optstring)S 10 R 4241(.)S 10 I 4323(Optstring)S 10 R 4740(is)S 4839(a)S 4916(string)S 5177(of)S 2496 V (recognized)442 1080 A 1552(option)S 1838(letters;)S 2143(if)S 2235(a)S 2310(letter)S 2548(is)S 2644(followed)S 3031(by)S 3160(a)S 3234(colon,)S 3511(the)S 3663(option)S 3948(is)S 4044(expected)S 4431(to)S 4538(have)S 4757(an)S 4881(argument)S 2616 V 1080(that)S 1256(may)S 1454(or)S 1563(may)S 1761(not)S 1914(be)S 2034(separated)S 2440(from)S 2661(it)S 2742(by)S 2867(white)S (space.)249 3116 A 10 I 3415(Optarg)S 10 R 3730(is)S 3822(set)S 3959(to)S 4062(point)S 4293(to)S 4397(the)S 4546(start)S 4746(of)S 4856(the)S 5005(option)S 2736 V 1080(argument)S 1485(on)S 1610(return)S 1876(from)S 10 I 2097(getopt)S 10 R 2356(.)S 2904 V 10 I 1080(Getopt)S 10 R (places)252 1384 A 1666(in)S 10 I 1774(optind)S 10 R 2060(the)S 10 I 2213(argv)S 10 R 2427(index)S 2680(of)S 2794(the)S 2947(next)S 3150(argument)S 3560(to)S 3669(be)S 3795(processed.)S (Because)336 4273 A 10 I 4640(optind)S 10 R 4927(is)S 5025(exter-)S 3024 V 1080(nal,)S 1253(it)S 1334(is)S 1426(normally)S (initialized)403 1814 A 2242(to)S 2345(zero)S 2544(automatically)S 3117(before)S 3400(the)S 3548(\256rst)S 3730(call)S 3901(to)S 10 I 4004(getopt)S 10 R 4263(.)S 3192 V 1080(When)S 1352(all)S 1485(options)S 1812(have)S 2034(been)S 2256(processed)S 2685(\(i.e.,)S 2899(up)S 3031(to)S 3141(the)S 3297(\256rst)S (non-option)440 3487 A 3960(argument\),)S 10 I 4432(getopt)S 10 R 4716(returns)S 10 B 5029(EOF)S 10 R 5236(.)S 3312 V 1080(The)S 1264(special)S 1571(option)S 10 B-1 1854(--)S 10 R 1995(may)S 2195(be)S 2316(used)S 2526(to)S 2630(delimit)S 2941(the)S 3090(end)S 3261(of)S 3371(the)S 3520(options;)S 10 B 3869(EOF)S 10 R (will)157 4102 A 4285(be)S 4406(returned,)S 4793(and)S 10 B-1 4964(--)S 10 R (will)157 5104 A 3432 V 1080(be)S 1200(skipped.)S 3600 V 9 R 720(D)S 722(DI)S 790(IA)S 823(AG)S 891(GN)S 959(NO)S 1027(OS)S 1095(ST)S 1147(TI)S 1205(IC)S 1238(CS)S 1300(S)S 3720 V 10 I 1080(Getopt)S 10 R 1382(prints)S 1639(an)S 1762(error)S 1987(message)S 2356(on)S 10 I 2484(stderr)S 10 R 2752(and)S 2925(returns)S 3233(a)S 3307(question)S 3676(mark)S 3912(\()S 10 B 3946(?)S 10 R 3996(\))S 4084(when)S 4331(it)S (encounters)436 4416 A 4881(an)S 5005(option)S 3840 V 1080(letter)S 1313(not)S 1466(included)S 1837(in)S 10 I 1940(optstring)S 10 R 2310(.)S 4008 V 9 R 720(E)S 722(EX)S 780(XA)S 848(AM)S 916(MP)S 998(PL)S 1050(LE)S 1108(E)S 4128 V 10 R 1080(The)S 1262(following)S 1678(code)S 1894(fragment)S 2284(shows)S 2561(how)S 2760(one)S 2931(might)S 3191(process)S 3519(the)S 3668(arguments)S 4113(for)S 4257(a)S 4328(command)S 4750(that)S 4927(can)S 5093(take)S 4248 V 1080(the)S 1228(mutually)S 1610(exclusive)S 2015(options)S 10 B 2335(a)S 10 R 2410(and)S 10 B 2580(b)S 10 R 2636(,)S 2686(and)S 2856(the)S 3004(options)S 10 B 3324(f)S 10 R 3383(and)S 10 B 3553(o)S 10 R 3603(,)S 3653(both)S 3856(of)S 3965(which)S 4236(require)S 4547(arguments:)S 4416 V 1440(main\(argc,)S 1899(argv\))S 4536 V 1440(int)S 1571(argc;)S 4656 V 1440(char)S 1639(**argv;)S 4776 V 1440({)S 4896 V 1800(int)S 1931(c;)S 5016 V 1800(extern)S 2077(int)S 2208(optind;)S 5136 V 1800(extern)S 2077(char)S (*optarg;)335 2276 A 5256 V 1800(.)S 5376 V 1800(.)S 5496 V 1800(.)S 5616 V 1800(while)S 2049(\(\(c)S 2187(=)S 2269(getopt\(argc,)S 2778(argv,)S 3007("abf:o:"\)\))S 3417(!=)S 3533(EOF\))S 5736 V 2160(switch)S 2448(\(c\))S 2586({)S 5856 V 2160(case)S 2359(`a':)S 5976 V 2520(if)S 2607(\(b\257g\))S 6096 V 2880(err\257g++;)S 6216 V 2520(else)S 6336 V 2880(a\257g++;)S 6456 V 2520(break;)S 6576 V 2160(case)S 2359(`b':)S 6696 V 2520(if)S 2607(\(a\257g\))S 6816 V 2880(err\257g++;)S 6936 V 2520(else)S 7056 V 2880(bproc\(\);)S 7176 V 2520(break;)S 7296 V 2160(case)S (`f':)130 2359 A 7416 V 2520(i\256le)S 2702(=)S 2784(optarg;)S 7536 V 2520(break;)S 7903 V 720(Page)S 941(1)S 2669(\()S 2711(May)S 2920(27,)S (1986)200 3070 A 3278(\))S 4455(September)S 4911(13,)S (1996)200 5061 A 8143 V EP %%Page: 2 2 BP /slant 0 def /height 0 def 480 V 10 R 720(GETOPT)S 1116(\()S 1158(3)S 1216(\))S 2696(Eighth)S (Edition)296 2989 A 4731(GETOPT)S 5127(\()S 5169(3)S 5227(\))S 960 V 2160(case)S 2359(`o':)S 1080 V 2520(o\256le)S 2724(=)S 2806(optarg;)S 1200 V 2520(break;)S 1320 V 2160(case)S 2359(`?':)S 1440 V (default:)308 2160 A 1560 V 2520(err\257g++;)S 1680 V 2520(break;)S 1800 V 2160(})S 1920 V 1800(if)S 1887(\(err\257g\))S 2199({)S 2040 V 2160(fprintf\(stderr,)S 2732("Usage:)S (..."\);)178 3078 A 2160 V 2160(exit\(2\);)S 2280 V 1800(})S 2400 V 1800(for)S 1943(\(;)S 2030(optind)S 2311(<)S 2393(argc;)S 2620(optind++\))S 3049({)S 2520 V 2160(.)S 2640 V 2160(.)S 2760 V 2160(.)S 2880 V 1800(})S 3000 V 1800(.)S 3120 V 1800(.)S 3240 V 1800(.)S 3360 V 1440(})S 3528 V 9 R 720(H)S 722(HI)S 790(IS)S 823(ST)S 875(TO)S 933(OR)S 1001(RY)S 1063(Y)S 3648 V 10 R (Written)308 1080 A 1432(by)S 1576(Henry)S 1872(Spencer,)S 2266(working)S 2645(from)S 2885(a)S 2974(Bell)S 3187(Labs)S 3428(manual)S 3769(page.)S 4054(Modi\256ed)S 4467(by)S 4612(Keith)S 4881(Bostic)S 5183(to)S 3768 V 1080(behave)S 1390(more)S 1622(like)S 1798(the)S 1946(System)S 2267(V)S 2365(version.)S 3936 V 9 R 720(B)S 722(BU)S 784(UG)S 852(GS)S 920(S)S 4056 V 10 R 1080(It)S 1173(is)S 1271(not)S (obvious)317 1430 A 1778(how)S 1982(`)S 10 R-1 2016(-)S 10 R 2073(')S 2138(standing)S 2509(alone)S (should)267 2758 A 3056(be)S 3182(treated;)S 3541(this)S 3717(version)S 4044(treats)S 4295(it)S 4383(as)S 4499(a)S (non-option)440 4576 A 5048(argu-)S 4176 V 1080(ment,)S 1331(which)S 1602(is)S 1694(not)S 1847(always)S 2152(right.)S 4344 V 1080(Option)S 1397(arguments)S 1855(are)S 2018(allowed)S 2376(to)S 2493(begin)S 2755(with)S 2973(`)S 10 R-1 3007(-)S 10 R 3064(';)S 3165(this)S 3349(is)S 3455(reasonable)S 3925(but)S 4092(reduces)S 4439(the)S (amount)301 4601 A 4941(of)S 5064(error)S 4464 V 1080(checking)S 1468(possible.)S 4632 V 10 I 1080(Getopt)S 10 R 1379(is)S 1471(quite)S 1697(\257exible)S 2024(but)S 2177(the)S (obvious)317 2325 A 2667(price)S 2894(must)S 3114(be)S 3234(paid:)S 3485(there)S 3712(is)S 3804(much)S 4052(it)S 4133(could)S 4381(do)S 4506(that)S 4682(it)S 4763(doesn't,)S 5110(like)S 4752 V 1080(checking)S 1468(mutually)S 1850(exclusive)S 2255(options,)S 2600(checking)S 2988(type)S 3186(of)S 3295(option)S 3576(arguments,)S 4045(etc.)S 7903 V 720(September)S 1176(13,)S (1996)200 1326 A 2669(\()S 2711(May)S 2920(27,)S (1986)200 3070 A 3278(\))S 4990(Page)S 5211(2)S 8143 V EP %%Trailer %%DocumentFonts: Times-Roman Times-Bold Times-Italic %%Pages: 2