%!PS-Adobe-1.0 %%Creator: devps (Pipeline Associates, Inc.) %%CreationDate: Fri Sep 13 13:06:49 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 /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 (GETTTYENT)591 720 A 1319(\()S 1361(3)S 1419(\))S 2696(Eighth)S (Edition)296 2989 A (GETTTYENT)591 4528 A 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 (getttyent,)377 1080 A (getttynam,)427 1482 A (setttyent,)366 1934 A 2325(endttyent)S 10 R-1 2724(-)S 10 R (interface)354 2806 A 3185(to)S (/etc/ttytab)403 3288 A 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(#include)S 1482()S 1608 V 1080(struct)S 1371(ttyent)S (*getttyent\(void\))684 1662 A 1728 V 1080(struct)S 1371(ttyent)S (*getttynam\(const)745 1662 A 2445(char)S 2679(*)S 10 I 2729(name)S 10 B 2947(\))S 1848 V 1080(int)S (setttyent\(void\))623 1236 A 1968 V 1080(void)S 1302(endttyent\(void\))S 2136 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 2256 V 10 R 1080(The)S 10 B (getttyent)382 1262 A 10 R 1669(functions)S 2068(provide)S 2400(an)S (interface)354 2520 A 2899(to)S 3002(the)S (/etc/ttytab.)428 3150 A 3628(\(See)S 10 B 3833(ttytab)S 10 R 4091(\(5\)\).)S 2424 V 1080(To)S 1218(read)S 1419(one)S 1591(of)S 1702(these)S 1936(\256les)S 2131(one)S 2303(calls)S 10 B (getttyent\(\))450 2515 A 10 R 2992(several)S 3305(times)S 3550(to)S 3655(read)S 3856(the)S 4006(entries)S 4302(in)S 4407(the)S 4557(table)S (until)184 4780 A 4991(NULL)S 2544 V 1080(is)S 1172(returned)S 1533(for)S 1676(end-of-\256le.)S 2712 V 10 B (Getttyname\(\))578 1080 A 10 R 1690(searches)S 2064(the)S 10 B 2219(ttytab)S 10 R 2509(\256le)S 2671(for)S 2822(the)S 2978(given)S 3234(terminal)S 3603(device.)S 3949(It)S 4044(is)S 4144(equivalent)S 4596(to)S 4707(a)S 4785(call)S 4964(to)S 10 B (sett-)186 5075 A 2832 V (tyent\(\),)312 1080 A 10 R 1417(several)S 1728(calls)S 1938(to)S 10 B (getttyent\(\))450 2041 A 10 R 2516(to)S 2619(locate)S 2885(the)S 3033(entry,)S 3290(and)S 3460(a)S 3530(\256nal)S 10 B (endttyent\(\))478 3734 A 10 R 4237(to)S 4340(close)S 4572(the)S 4720(\256le.)S 3000 V 10 B (Setttyent\(\))456 1080 A 10 R 1562(opens)S 1822(or)S 1932(rewinds)S 2277(the)S 2426(ttytab)S 2681(database,)S 3079(and)S 10 B (endttyent\(\))478 3251 A 3756(closes)S 4029(it.)S (Getttyent\(\))478 4143 A 10 R 4648(opens)S 4909(the)S 5059(data-)S 3120 V 1080(base)S 1284(if)S 1371(not)S 1524(already)S 1846(open,)S 2091(but)S 2244(does)S 2453(not)S 2606(close)S 2838(it.)S 3288 V 1080(The)S 1262(struct)S 1511(ttyent)S 1765(is)S 1857(de\256ned)S 2178(by)S 2303()S 2746(as)S 2855(follows:)S 3528 V 1080(struct)S 1329(ttyent)S 1583({)S 3648 V 1280(char)S (*ty_name;)424 1580 A 2330(/*)S 2433(Name)S 2699(of)S 2808(the)S 2956(terminal)S 3317(device.)S 3630(*/)S 3768 V 1280(char)S 1580(*ty_type;)S 2330(/*)S 2433(Terminal)S 2828(type)S 3026(name)S 3269(\(termcap\(3\)\).)S 3830(*/)S 3888 V 1280(char)S (**ty_getty;)457 1580 A 2330(/*)S 2433(Program)S 2805(to)S 2908(run,)S 3092(normally)S 3480(getty.)S 3731(*/)S 4008 V 1280(char)S (**ty_init;)390 1580 A 2330(/*)S (Initialization)515 2433 A 2973(command,)S 3419(normally)S 3807(stty.)S 4002(*/)S 4128 V 1080(};)S 4296 V 1080(A)S 1179(valid)S 1406(entry)S 1639(has)S 1799(at)S 1898(least)S 2109(two)S 2286(strings,)S 2605(so)S 2720(both)S 10 B 2924(ty_name)S 10 R 3319(and)S 10 B 3490(ty_type)S 10 R 3835(are)S 3985(\256lled)S 4219(in.)S 4374(The)S 4558(optional)S 10 B (ty_getty)347 4914 A 4416 V 10 R 1080(and)S 10 B 1254(ty_init)S 10 R 1563(may)S 1765(be)S 1889(NULL)S 2188(\(\256eld)S (omitted\),)366 2430 A 2825(point)S 3060(to)S 3167(a)S 3241(pointer)S 3555(that)S 3735(is)S 3830(NULL)S 4128(\(null)S (lenght)251 4346 A 4625(\256eld,)S 4857(i.e.)S 5008(""\),)S 5177(or)S 4536 V 1080(an)S 1207(array)S 1447(of)S 1563(strings)S 1863(terminated)S 2326(by)S 2459(a)S 2537(NULL)S 2840(\(\256eld)S 3086(present\).)S 3494(For)S 3667(now)S 3873(no)S 4006(useful)S 4285(distinction)S 4742(can)S 4915(be)S 5043(made)S 4656 V 1080(between)S 1441(a)S (omitted)307 1511 A 1843(\256eld)S 2047(and)S 2217(an)S 2337(empty)S 2613(\256eld,)S 2842(so)S 2956(treat)S 3161(both)S 3364(cases)S 3602(as)S 3711(an)S 3831(omission.)S 4824 V 9 R 720(F)S 722(FI)S 774(IL)S 807(LE)S 865(ES)S 923(S)S 4944 V 10 B 1080(/etc/ttytab)S 10 R 1830(The)S 2012(terminal)S 2373(device)S 2661(database)S 5112 V 9 R 720(S)S 722(SE)S 774(EE)S 832(E)S 913(A)S 915(AL)S 983(LS)S 1041(SO)S 1093(O)S 5232 V 10 B 1080(ttyname)S 10 R 1433(\(3\),)S 10 B 1601(ttyslot)S 10 R 1870(\(3\),)S 10 B 2038(ttytab)S 10 R 2296(\(5\),)S 10 B 2464(init)S 10 R 2610(\(8\).)S 5400 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 5520 V 10 B (Setttyent\(\))456 1080 A 10 R 1564(has)S 1726(the)S 1877(same)S 2112(return)S 2381(value)S 2627(and)S 2801(error)S 3027(codes)S 3285(as)S 3398(the)S 10 B 3550(open)S 10 R 3757(\(2\))S 3904(call)S 4079(it)S 4164(uses)S 4366(to)S 4473(open)S 4697(the)S 4849(ttytab)S 5107(\256le.)S 5640 V 1080(The)S 10 B 1273(get)S 10 I (xxx)135 1402 A 10 B 1545(\(\))S 10 R 1649(functions)S 2059(return)S 2336(NULL)S 2642(on)S 2778(end)S 2959(of)S 3079(\256le,)S 3269(entry)S 3512(not)S (found,)259 3676 A 3971(or)S 4091(error.)S 4374(You)S 4583(can)S 4759(set)S 10 B (errno)241 4907 A 10 R 5183(to)S 5760 V 1080(zero)S 1279(before)S 1562(the)S 1710(call)S 1881(and)S 2051(check)S 2311(it)S 2392(after.)S 5928 V 9 R 720(N)S 722(NO)S 790(OT)S 858(TE)S 916(ES)S 974(S)S 6048 V 10 B (Getttyent\(\))478 1080 A 10 R 1583(and)S 10 B (getttynam\(\))505 1753 A 10 R 2283(return)S 2549(a)S 2619(pointer)S 2929(to)S 3032(static)S 3270(storage)S 3586(that)S 3762(is)S (overwritten)465 3854 A 4344(in)S (each)185 4447 A 4657(call.)S 6216 V 1080(The)S 1263(Minix)S 10 B 1534(struct)S 1813(ttyent)S 10 R 2092(has)S 2252(only)S 2456(the)S 10 B 2605(ty_name)S 10 R 3000(and)S 10 B 3172(ty_type)S 10 R 3518(\256elds)S 3763(in)S 3868(common)S 4246(with)S 4452(the)S 4602(BSD)S 4825(implemen-)S 6336 V 1080(tation.)S 1387(This)S 1594(does)S 1806(not)S 1962(seem)S 2197(to)S 2303(be)S 2426(a)S 2499(problem,)S (because)319 2887 A 3234(most)S 3457(third)S 3675(party)S 3910(software)S 4286(that)S 4465(need)S 4683(to)S (know)223 4788 A (about)223 5038 A 6456 V 1080(terminals)S 1480(only)S (look)178 1683 A 1886(at)S 1984(the)S 10 B 2132(ty_name)S 10 R 2526(\256eld.)S 6624 V 9 R 720(A)S 722(AU)S 790(UT)S 858(TH)S 916(HO)S 984(OR)S 1052(R)S 6744 V 10 R 1080(Kees)S 1307(J.)S 1396(Bot)S 1566(\(kjb@cs.vu.nl\))S 7903 V 720(Page)S 941(1)S 4455(September)S 4911(13,)S (1996)200 5061 A 8143 V EP %%Trailer %%DocumentFonts: Times-Roman Times-Bold Times-Italic %%Pages: 1