From e20d687e86500a9dbe7bf8711a8c82313d4ba20d Mon Sep 17 00:00:00 2001 From: David Brownlee Date: Tue, 3 Jan 2017 20:37:03 +0000 Subject: [PATCH] Original 4.3BSD-Quasijarus0a release notes 4.3BSD-Quasijarus0a was released on 1999-10-10. As you can read on the Quasijarus Project History page, this release does what 4.3BSD-Quasijarus0 was intended but unfortunately failed to do: provide a demark between CSRG and Quasijarus. It is the UNIX operating system in its state at the point of its transition from CSRG to Quasijarus. In preparing this release, I have sweated for 9 months to reconstruct, stabilize, shape up, and package up the system I have inherited from CSRG, but very carefully avoided any changes of my own. In particular, the VAX hardware support in this release consists of all CPUs and devices that CSRG supported or tried to support. This support has been highly polished, i.e., all of it works as expected and as advertised, which at CSRG was not the case in some areas. However, no all-new hardware support has been added. This release has been carefully polished and shined for both users and developers. For users I have been extremely careful to make this release of full production quality not less than that of the very original 4.3BSD. In the system as distributed, the system header files are copied to /usr/include rather than symlinked, so that a production site can run without any sources installed and still give users the full functionality, including the ability to compile their own programs. For developers, the source tree has been fully SCCS-reconstructed, polished, and shined. The system fully rebuilds from the source like a charm. 4.3BSD-Quasijarus0 and 4.3BSD-Quasijarus0a contain a serious bug in c2, the peephole optimiser, which causes it under certain circumstances to throw out instructions loading registers which are later used in deferred or indexed addressing modes. The resulting misoptimised code thus dereferences bogus addresses, dumping core or even worse, behaving unpredictably. Since all system binaries are compiled with -O this potentially affects every binary in the system. This bug has been fixed in 4.3BSD-Quasijarus0b. @(#)0a.html 1.1 03/12/18 Michael Sokolov msokolov@ivan.Harhan.ORG --- Makefile | 6 +- bin/adb/adb.tahoe/Makefile | 44 +- bin/adb/adb.tahoe/format.c | 2 +- bin/adb/adb.tahoe/instrs | 9 +- bin/adb/adb.vax/Makefile | 4 +- bin/adb/adb.vax/format.c | 10 +- bin/adb/adb.vax/opset.c | 8 +- bin/as/as.tahoe/asparse.c | 2 +- bin/awk/test/Compare | 11 + bin/awk/test/t.0 | 1 + bin/awk/test/t.1.x | 1 + bin/awk/test/t.2.x | 1 + bin/awk/test/t.3 | 1 + bin/awk/test/t.3.x | 7 + bin/awk/test/t.4 | 1 + bin/awk/test/t.4.x | 1 + bin/awk/test/t.5.x | 1 + bin/awk/test/t.6 | 8 + bin/awk/test/t.6.x | 1 + bin/awk/test/t.6a | 5 + bin/awk/test/t.6b | 5 + bin/awk/test/t.8.x | 1 + bin/awk/test/t.a | 6 + bin/awk/test/t.aeiou | 1 + bin/awk/test/t.aeiouy | 1 + bin/awk/test/t.arith | 1 + bin/awk/test/t.array | 13 + bin/awk/test/t.array1 | 10 + bin/awk/test/t.array2 | 4 + bin/awk/test/t.avg | 5 + bin/awk/test/t.b.x | 1 + bin/awk/test/t.be | 2 + bin/awk/test/t.break | 7 + bin/awk/test/t.break1 | 10 + bin/awk/test/t.break2 | 10 + bin/awk/test/t.break3 | 7 + bin/awk/test/t.bug1 | 3 + bin/awk/test/t.cat | 4 + bin/awk/test/t.cat1 | 1 + bin/awk/test/t.cat2 | 1 + bin/awk/test/t.cmp | 1 + bin/awk/test/t.coerce | 4 + bin/awk/test/t.comment | 5 + bin/awk/test/t.comment1 | 7 + bin/awk/test/t.contin | 9 + bin/awk/test/t.count | 1 + bin/awk/test/t.cum | 4 + bin/awk/test/t.d.x | 2 + bin/awk/test/t.e | 1 + bin/awk/test/t.else | 3 + bin/awk/test/t.exit | 2 + bin/awk/test/t.f | 1 + bin/awk/test/t.f.x | 1 + bin/awk/test/t.f0 | 1 + bin/awk/test/t.f1 | 1 + bin/awk/test/t.f2 | 1 + bin/awk/test/t.f3 | 1 + bin/awk/test/t.f4 | 1 + bin/awk/test/t.for | 3 + bin/awk/test/t.for1 | 9 + bin/awk/test/t.for2 | 7 + bin/awk/test/t.format4 | 9 + bin/awk/test/t.func | 1 + bin/awk/test/t.getline | 10 + bin/awk/test/t.i.x | 2 + bin/awk/test/t.if | 1 + bin/awk/test/t.in | 8 + bin/awk/test/t.in1 | 7 + bin/awk/test/t.in2 | 4 + bin/awk/test/t.in3 | 7 + bin/awk/test/t.incr | 2 + bin/awk/test/t.incr2 | 5 + bin/awk/test/t.incr3 | 5 + bin/awk/test/t.index | 8 + bin/awk/test/t.j.x | 2 + bin/awk/test/t.longstr | 5 + bin/awk/test/t.makef | 1 + bin/awk/test/t.match | 1 + bin/awk/test/t.max | 2 + bin/awk/test/t.mod | 1 + bin/awk/test/t.monotone | 1 + bin/awk/test/t.nameval | 7 + bin/awk/test/t.next | 2 + bin/awk/test/t.not | 4 + bin/awk/test/t.null0 | 15 + bin/awk/test/t.ofmt | 2 + bin/awk/test/t.ofs | 2 + bin/awk/test/t.pipe | 1 + bin/awk/test/t.pp | 1 + bin/awk/test/t.pp1 | 3 + bin/awk/test/t.pp2 | 3 + bin/awk/test/t.printf | 5 + bin/awk/test/t.quote | 1 + bin/awk/test/t.re1 | 2 + bin/awk/test/t.rec | 1 + bin/awk/test/t.redir | 2 + bin/awk/test/t.roff | 23 + bin/awk/test/t.sep | 2 + bin/awk/test/t.seqno | 1 + bin/awk/test/t.split | 2 + bin/awk/test/t.split2 | 1 + bin/awk/test/t.split9 | 8 + bin/awk/test/t.split9a | 9 + bin/awk/test/t.stately | 1 + bin/awk/test/t.strcmp | 1 + bin/awk/test/t.strcmp1 | 1 + bin/awk/test/t.substr | 2 + bin/awk/test/t.time | 13 + bin/awk/test/t.vf | 3 + bin/awk/test/t.vf1 | 7 + bin/awk/test/t.vf3 | 2 + bin/awk/test/t.x | 1 + bin/awk/test/test.data | 138 + bin/awk/test/testall | 1 + bin/cpio/Makefile | 12 +- doc/index/README | 187 + doc/index/Title | 36 + doc/index/index.macs | 54 + doc/index/index.merged | 46330 ++++++++++++++++ doc/index/index.version6.reduced.troffinput | 21431 +++++++ doc/index/misc/fixpagenums.sed | 1 + doc/index/misc/jove.macros | Bin 0 -> 103 bytes doc/index/misc/macs/index.ms.footers | 38 + doc/index/misc/macs/index.ms.headers.bad | 118 + doc/index/misc/macs/index.ms.leftfooter | 39 + doc/index/misc/macs/index.ms.ps10.vs12.1c | 15 + doc/index/misc/macs/index.ms.ps10.vs12.2c | 17 + .../misc/macs/index.ms.ps10.vs12.2c.wide | 16 + doc/index/misc/macs/index.ms.ps8.vs9.2c | 14 + doc/index/misc/troff.mail | 47 + doc/index/print.sh | 1 + doc/index/src/Makefile | 38 + doc/index/src/duphead.y | 308 + doc/index/src/index.l | 110 + doc/index/src/pagesizes.h | 884 + doc/index/src/reduce.h | 15 + doc/index/src/reduce.y | 496 + doc/index/src/splitindex.sh | 9 + doc/index/src/unduphead.y | 326 + doc/misc/berknet/coverpage.n | 45 + doc/misc/berknet/distrib | 6 + doc/misc/berknet/makefile | 24 + doc/misc/berknet/makefile.doc | 24 + doc/misc/berknet/masters.n | 1181 + doc/misc/berknet/netintro.n | 1068 + doc/misc/berknet/refcard.n | 127 + doc/misc/berknet/systemmanual.n | 346 + doc/misc/comments.t | 522 + doc/misc/ctour/cdoc0 | 23 + doc/misc/ctour/cdoc1 | 260 + doc/misc/ctour/cdoc2 | 200 + doc/misc/ctour/cdoc3 | 812 + doc/misc/ctour/cdoc4 | 163 + doc/misc/ctour/ios.r | 417 + doc/misc/ctour/newstuff | 443 + doc/misc/diskperf/Makefile | 18 + doc/misc/diskperf/abs.ms | 149 + doc/misc/diskperf/appendix.ms | 71 + doc/misc/diskperf/conclusions.ms | 100 + doc/misc/diskperf/equip.ms | 150 + doc/misc/diskperf/methodology.ms | 84 + doc/misc/diskperf/motivation.ms | 66 + doc/misc/diskperf/results.ms | 310 + doc/misc/diskperf/tests.ms | 81 + doc/misc/gprof/Makefile | 32 + doc/misc/gprof/abstract.me | 51 + doc/misc/gprof/gathering.me | 199 + doc/misc/gprof/header.me | 5 + doc/misc/gprof/intro.me | 50 + doc/misc/gprof/postp.me | 159 + doc/misc/gprof/postp1.pic | 27 + doc/misc/gprof/postp2.pic | 29 + doc/misc/gprof/postp3.pic | 24 + doc/misc/gprof/pres1.pic | 29 + doc/misc/gprof/pres2.pic | 25 + doc/misc/gprof/present.me | 275 + doc/misc/gprof/profiling.me | 83 + doc/misc/gprof/refs.me | 31 + doc/misc/kchanges.4.1 | 1491 + doc/misc/kchanges.4.2/0.t | 63 + doc/misc/kchanges.4.2/1.t | 58 + doc/misc/kchanges.4.2/2.t | 42 + doc/misc/kchanges.4.2/3.0.t | 7 + doc/misc/kchanges.4.2/3.1.t | 198 + doc/misc/kchanges.4.2/3.2.t | 289 + doc/misc/kchanges.4.2/3.3.t | 27 + doc/misc/kchanges.4.2/3.4.t | 123 + doc/misc/kchanges.4.2/3.5.t | 87 + doc/misc/kchanges.4.2/3.6.t | 24 + doc/misc/kchanges.4.2/4.t | 72 + doc/misc/kernmalloc/Makefile | 32 + doc/misc/kernmalloc/alloc.fig | 83 + doc/misc/kernmalloc/appendix.t | 105 + doc/misc/kernmalloc/kernmalloc.t | 602 + doc/misc/kernmalloc/usage.tbl | 43 + doc/misc/kerntune/0.t | 96 + doc/misc/kerntune/1.t | 15 + doc/misc/kerntune/2.t | 201 + doc/misc/kerntune/3.t | 257 + doc/misc/kerntune/4.t | 66 + doc/misc/kerntune/Makefile | 20 + doc/misc/kerntune/fig2.pic | 24 + doc/misc/px/fig1.1.n | 38 + doc/misc/px/fig1.2.n | 35 + doc/misc/px/fig1.3.n | 27 + doc/misc/px/fig2.3.n | 103 + doc/misc/px/fig2.3.raw | 103 + doc/misc/px/fig2.4.n | 24 + doc/misc/px/fig3.2.n | 23 + doc/misc/px/fig3.3.n | 24 + doc/misc/px/makefile | 13 + doc/misc/px/pxin0.n | 107 + doc/misc/px/pxin1.n | 505 + doc/misc/px/pxin2.n | 890 + doc/misc/px/pxin3.n | 564 + doc/misc/px/pxin4.n | 34 + doc/misc/px/table2.1.n | 50 + doc/misc/px/table2.2.n | 52 + doc/misc/px/table2.3.n | 12 + doc/misc/px/table3.1.n | 14 + doc/misc/px/tmac.p | 80 + doc/misc/regen | 491 + doc/misc/sdb/app1 | 49 + doc/misc/sdb/sdbrp.n | 543 + doc/misc/sdb/sdbsymtab.n | 371 + doc/misc/sysperf/0.t | 236 + doc/misc/sysperf/1.t | 54 + doc/misc/sysperf/2.t | 231 + doc/misc/sysperf/3.t | 667 + doc/misc/sysperf/4.t | 753 + doc/misc/sysperf/5.t | 258 + doc/misc/sysperf/6.t | 43 + doc/misc/sysperf/7.t | 137 + doc/misc/sysperf/Makefile | 33 + doc/misc/sysperf/a1.t | 641 + doc/misc/sysperf/a2.t | 90 + doc/misc/uchanges.4.1 | 808 + doc/misc/uchanges.4.2/0.t | 22 + doc/misc/uchanges.4.2/1.t | 129 + doc/misc/uchanges.4.2/2.t | 453 + doc/misc/uchanges.4.2/3.t | 337 + doc/misc/uchanges.4.2/4.t | 110 + doc/misc/uchanges.4.2/5.t | 95 + doc/misc/uchanges.4.2/6.t | 56 + doc/misc/uchanges.4.2/7.t | 49 + doc/misc/uchanges.4.2/8.t | 25 + doc/misc/uchanges.4.2/9.t | 286 + doc/misc/ukchanges.4.0 | 1057 + doc/ps1/00.contents | 145 + doc/ps1/01.Clang/Clang.ms | 4540 ++ doc/ps1/01.Clang/Clib.ms | 1162 + doc/ps1/01.Clang/Makefile | 27 + doc/ps1/01.Clang/cmac1 | 882 + doc/ps1/02.f77/Makefile | 27 + doc/ps1/02.f77/f77.ms | 2435 + doc/ps1/03.f77io/Makefile | 25 + doc/ps1/03.f77io/f77IO.ms | 922 + doc/ps1/04.pascal/Makefile | 106 + doc/ps1/04.pascal/bigger.p | 24 + doc/ps1/04.pascal/bigger4.p | 26 + doc/ps1/04.pascal/bigger5.p | 26 + doc/ps1/04.pascal/bigger7.p | 26 + doc/ps1/04.pascal/clash.p | 9 + doc/ps1/04.pascal/comments.p | 18 + doc/ps1/04.pascal/copydata.p | 15 + doc/ps1/04.pascal/csfix.c | 191 + doc/ps1/04.pascal/data | 3 + doc/ps1/04.pascal/digits.p | 9 + doc/ps1/04.pascal/expr.p | 21 + doc/ps1/04.pascal/first.p | 4 + doc/ps1/04.pascal/fixcomments | 6 + doc/ps1/04.pascal/fixkatscript | 6 + doc/ps1/04.pascal/kat.p | 13 + doc/ps1/04.pascal/kat2.p | 23 + doc/ps1/04.pascal/kat3.p | 23 + doc/ps1/04.pascal/katin | 2 + doc/ps1/04.pascal/mism.p | 5 + doc/ps1/04.pascal/primes.p | 30 + doc/ps1/04.pascal/primes2.p | 30 + doc/ps1/04.pascal/puman0.n | 127 + doc/ps1/04.pascal/puman1.n | 422 + doc/ps1/04.pascal/puman2.n | 831 + doc/ps1/04.pascal/puman3.n | 726 + doc/ps1/04.pascal/puman4.n | 582 + doc/ps1/04.pascal/puman5.n | 913 + doc/ps1/04.pascal/pumanA.n | 938 + doc/ps1/04.pascal/sin1.p | 13 + doc/ps1/04.pascal/sin2.p | 13 + doc/ps1/04.pascal/synerr.p | 9 + doc/ps1/04.pascal/synerr2.p | 7 + doc/ps1/04.pascal/tmac.p | 79 + doc/ps1/04.pascal/typequ.p | 10 + doc/ps1/05.as/Makefile | 47 + doc/ps1/05.as/as.man.1 | 98 + doc/ps1/05.as/asdocs0.me | 27 + doc/ps1/05.as/asdocs1.me | 444 + doc/ps1/05.as/asdocs2.me | 310 + doc/ps1/05.as/asdocs3.me | 608 + doc/ps1/05.as/asdocs4.me | 324 + doc/ps1/06.sysman/0.t | 265 + doc/ps1/06.sysman/1.0.t | 29 + doc/ps1/06.sysman/1.1.t | 188 + doc/ps1/06.sysman/1.2.t | 245 + doc/ps1/06.sysman/1.3.t | 227 + doc/ps1/06.sysman/1.4.t | 110 + doc/ps1/06.sysman/1.5.t | 198 + doc/ps1/06.sysman/1.6.t | 108 + doc/ps1/06.sysman/1.7.t | 73 + doc/ps1/06.sysman/2.0.t | 56 + doc/ps1/06.sysman/2.1.t | 111 + doc/ps1/06.sysman/2.2.t | 443 + doc/ps1/06.sysman/2.3.t | 385 + doc/ps1/06.sysman/2.4.t | 147 + doc/ps1/06.sysman/2.5.t | 12 + doc/ps1/06.sysman/Makefile | 27 + doc/ps1/06.sysman/a.t | 215 + doc/ps1/06.sysman/spell.ok | 332 + doc/ps1/07.ipctut/Makefile | 32 + doc/ps1/07.ipctut/accept.grn | 480 + doc/ps1/07.ipctut/dgramread.c | 56 + doc/ps1/07.ipctut/dgramsend.c | 53 + doc/ps1/07.ipctut/gremlins | 23 + doc/ps1/07.ipctut/pipe.c | 47 + doc/ps1/07.ipctut/pipe.grn | 405 + doc/ps1/07.ipctut/socketpair.c | 50 + doc/ps1/07.ipctut/socketpair.grn | 407 + doc/ps1/07.ipctut/strchkread.c | 79 + doc/ps1/07.ipctut/streamread.c | 75 + doc/ps1/07.ipctut/streamwrite.c | 54 + doc/ps1/07.ipctut/tutor.me | 922 + doc/ps1/07.ipctut/udgramread.c | 53 + doc/ps1/07.ipctut/udgramsend.c | 41 + doc/ps1/07.ipctut/ustreamread.c | 69 + doc/ps1/07.ipctut/ustreamwrite.c | 44 + doc/ps1/08.ipc/0.t | 65 + doc/ps1/08.ipc/1.t | 81 + doc/ps1/08.ipc/2.t | 683 + doc/ps1/08.ipc/3.t | 381 + doc/ps1/08.ipc/4.t | 484 + doc/ps1/08.ipc/5.t | 1187 + doc/ps1/08.ipc/Makefile | 27 + doc/ps1/08.ipc/spell.ok | 347 + doc/ps1/09.lint/Makefile | 26 + doc/ps1/09.lint/lint.ms | 1067 + doc/ps1/10.adb/Makefile | 28 + doc/ps1/10.adb/adb.ms | 2257 + doc/ps1/11.dbx/Makefile | 27 + doc/ps1/11.dbx/dbx.ms | 455 + doc/ps1/11.dbx/spell.ok | 24 + doc/ps1/12.make/Makefile | 25 + doc/ps1/12.make/make.ms | 817 + doc/ps1/13.rcs/Makefile | 30 + doc/ps1/13.rcs/man/Makefile | 34 + doc/ps1/13.rcs/man/ci.1 | 197 + doc/ps1/13.rcs/man/co.1 | 267 + doc/ps1/13.rcs/man/ident.1 | 68 + doc/ps1/13.rcs/man/merge.1 | 45 + doc/ps1/13.rcs/man/rcs.1 | 165 + doc/ps1/13.rcs/man/rcsdiff.1 | 61 + doc/ps1/13.rcs/man/rcsfile.5 | 143 + doc/ps1/13.rcs/man/rcsintro.1 | 23 + doc/ps1/13.rcs/man/rcsmerge.1 | 71 + doc/ps1/13.rcs/man/rlog.1 | 131 + doc/ps1/13.rcs/man/sccstorcs.1 | 51 + doc/ps1/13.rcs/rcs.man | 35 + doc/ps1/13.rcs/rcs.ms | 311 + doc/ps1/14.sccs/Makefile | 25 + doc/ps1/14.sccs/sccs.me | 1581 + doc/ps1/14.sccs/spell.ok | 77 + doc/ps1/15.yacc/Makefile | 26 + doc/ps1/15.yacc/ss.. | 56 + doc/ps1/15.yacc/ss0 | 201 + doc/ps1/15.yacc/ss1 | 138 + doc/ps1/15.yacc/ss2 | 151 + doc/ps1/15.yacc/ss3 | 104 + doc/ps1/15.yacc/ss4 | 330 + doc/ps1/15.yacc/ss5 | 302 + doc/ps1/15.yacc/ss6 | 146 + doc/ps1/15.yacc/ss7 | 124 + doc/ps1/15.yacc/ss8 | 93 + doc/ps1/15.yacc/ss9 | 169 + doc/ps1/15.yacc/ssA | 184 + doc/ps1/15.yacc/ssB | 26 + doc/ps1/15.yacc/ssa | 113 + doc/ps1/15.yacc/ssb | 110 + doc/ps1/15.yacc/ssc | 311 + doc/ps1/15.yacc/ssd | 40 + doc/ps1/16.lex/Makefile | 26 + doc/ps1/16.lex/lex.ms | 2305 + doc/ps1/17.m4/Makefile | 25 + doc/ps1/17.m4/m4.ms | 933 + doc/ps1/18.curses/Makefile | 77 + doc/ps1/18.curses/Master | 27 + doc/ps1/18.curses/appen.A | 164 + doc/ps1/18.curses/appen.B | 174 + doc/ps1/18.curses/appen.C | 83 + doc/ps1/18.curses/c_macros | 43 + doc/ps1/18.curses/doc.I | 322 + doc/ps1/18.curses/doc.II | 115 + doc/ps1/18.curses/doc.III | 316 + doc/ps1/18.curses/doc.IV | 83 + doc/ps1/18.curses/intro.0 | 69 + doc/ps1/18.curses/intro.1 | 254 + doc/ps1/18.curses/intro.2 | 63 + doc/ps1/18.curses/intro.3 | 203 + doc/ps1/18.curses/intro.4 | 222 + doc/ps1/18.curses/intro.5 | 33 + doc/ps1/18.curses/life.c | 140 + doc/ps1/18.curses/macros | 83 + doc/ps1/18.curses/twinkle1.c | 134 + doc/ps1/18.curses/twinkle2.c | 73 + doc/ps1/18.curses/win_st.c | 33 + doc/ps1/Title | 71 + doc/ps2/00.contents | 88 + doc/ps2/01.cacm/Makefile | 27 + doc/ps2/01.cacm/p.mac | 26 + doc/ps2/01.cacm/p1 | 562 + doc/ps2/01.cacm/p2 | 443 + doc/ps2/01.cacm/p3 | 185 + doc/ps2/01.cacm/p4 | 519 + doc/ps2/01.cacm/p5 | 230 + doc/ps2/01.cacm/p6 | 67 + doc/ps2/02.summary/Makefile | 27 + doc/ps2/02.summary/vhel.mac | 17 + doc/ps2/02.summary/vhel0 | 99 + doc/ps2/02.summary/vhel1 | 759 + doc/ps2/02.summary/vhel2 | 190 + doc/ps2/02.summary/vhel3 | 206 + doc/ps2/02.summary/vhel4 | 99 + doc/ps2/02.summary/vhel5 | 26 + doc/ps2/02.summary/vhel6 | 36 + doc/ps2/03.uprog/Makefile | 26 + doc/ps2/03.uprog/p.mac | 36 + doc/ps2/03.uprog/p0 | 43 + doc/ps2/03.uprog/p1 | 50 + doc/ps2/03.uprog/p2 | 237 + doc/ps2/03.uprog/p3 | 431 + doc/ps2/03.uprog/p4 | 562 + doc/ps2/03.uprog/p5 | 539 + doc/ps2/03.uprog/p6 | 323 + doc/ps2/03.uprog/p8 | 24 + doc/ps2/03.uprog/p9 | 642 + doc/ps2/04.implement/Makefile | 29 + doc/ps2/04.implement/fig1.pic | 64 + doc/ps2/04.implement/fig2.pic | 74 + doc/ps2/04.implement/implement | 1241 + doc/ps2/05.iosys/Makefile | 25 + doc/ps2/05.iosys/iosys | 1048 + doc/ps2/06.efl/Makefile | 27 + doc/ps2/06.efl/efl | 2972 + doc/ps2/07.fp/Makefile | 29 + doc/ps2/07.fp/manApp.rno | 304 + doc/ps2/07.fp/manCh0.rno | 49 + doc/ps2/07.fp/manCh1.rno | 162 + doc/ps2/07.fp/manCh2.rno | 544 + doc/ps2/07.fp/manCh3.rno | 41 + doc/ps2/07.fp/manCh4.rno | 292 + doc/ps2/07.fp/manCh5.rno | 434 + doc/ps2/07.fp/manCh6.rno | 322 + doc/ps2/07.fp/manCh7.rno | 22 + doc/ps2/07.fp/manDefs.rno | 106 + doc/ps2/07.fp/refs.rno | 35 + doc/ps2/08.ratfor/Makefile | 25 + doc/ps2/08.ratfor/m.mac | 57 + doc/ps2/08.ratfor/m0 | 118 + doc/ps2/08.ratfor/m1 | 86 + doc/ps2/08.ratfor/m2 | 1381 + doc/ps2/08.ratfor/m3 | 190 + doc/ps2/08.ratfor/m4 | 136 + doc/ps2/08.ratfor/m5 | 68 + doc/ps2/08.ratfor/m9 | 50 + doc/ps2/08.ratfor/m99 | 114 + doc/ps2/Title | 63 + doc/run/Ind.ia | Bin 0 -> 7984 bytes doc/run/Ind.ib | Bin 0 -> 3204 bytes doc/run/Ind.ic | 45 + doc/run/REFS | 405 + doc/run/tmac.sU | 948 + doc/smm/00.contents | 150 + doc/smm/01.setup/Makefile | 27 + doc/smm/01.setup/common/3.t | 690 + doc/smm/01.setup/common/4.t | 1326 + doc/smm/01.setup/common/5.t | 585 + doc/smm/01.setup/common/6.t | 619 + doc/smm/01.setup/tahoe/0.t | 66 + doc/smm/01.setup/tahoe/1.t | 336 + doc/smm/01.setup/tahoe/2.t | 569 + doc/smm/01.setup/tahoe/Makefile | 40 + doc/smm/01.setup/tahoe/a.t | 454 + doc/smm/01.setup/tahoe/b.t | 112 + doc/smm/01.setup/tahoe/tip.record | 136 + doc/smm/01.setup/vax/0.t | 74 + doc/smm/01.setup/vax/1.t | 395 + doc/smm/01.setup/vax/2.t | 898 + doc/smm/01.setup/vax/Makefile | 46 + doc/smm/01.setup/vax/a.t | 380 + doc/smm/01.setup/vax/b.t | 265 + doc/smm/01.setup/vax/c.t | 227 + doc/smm/01.setup/vax/spell.ok | 671 + doc/smm/01.setup/vax/vaxhints.t | 307 + doc/smm/02.config/0.t | 60 + doc/smm/02.config/1.t | 34 + doc/smm/02.config/2.t | 161 + doc/smm/02.config/3.t | 272 + doc/smm/02.config/4.t | 415 + doc/smm/02.config/5.t | 244 + doc/smm/02.config/6.t | 714 + doc/smm/02.config/Makefile | 26 + doc/smm/02.config/a.t | 135 + doc/smm/02.config/b.t | 110 + doc/smm/02.config/c.t | 82 + doc/smm/02.config/d.t | 245 + doc/smm/02.config/e.t | 96 + doc/smm/02.config/spell.ok | 306 + doc/smm/03.kdebug/Makefile | 26 + doc/smm/03.kdebug/kdebug.ms | 815 + doc/smm/04.quotas/Makefile | 25 + doc/smm/04.quotas/quotas.ms | 291 + doc/smm/05.fsck/0.t | 123 + doc/smm/05.fsck/1.t | 56 + doc/smm/05.fsck/2.t | 238 + doc/smm/05.fsck/3.t | 412 + doc/smm/05.fsck/4.t | 1397 + doc/smm/05.fsck/Makefile | 20 + doc/smm/06.lpd/0.t | 41 + doc/smm/06.lpd/1.t | 50 + doc/smm/06.lpd/2.t | 114 + doc/smm/06.lpd/3.t | 46 + doc/smm/06.lpd/4.t | 179 + doc/smm/06.lpd/5.t | 89 + doc/smm/06.lpd/6.t | 67 + doc/smm/06.lpd/7.t | 199 + doc/smm/06.lpd/Makefile | 27 + doc/smm/06.lpd/spell.ok | 70 + doc/smm/07.sendmailop/Makefile | 29 + doc/smm/07.sendmailop/op.me | 3925 ++ doc/smm/07.sendmailop/spell.ok | 263 + doc/smm/08.timedop/Makefile | 25 + doc/smm/08.timedop/timed.ms | 252 + doc/smm/09.uucpimpl/Makefile | 26 + doc/smm/09.uucpimpl/implement.ms | 2097 + doc/smm/09.uucpimpl/spell.ok | 0 doc/smm/10.newsop/Makefile | 26 + doc/smm/10.newsop/install.mn | 3145 ++ doc/smm/10.newsop/standard.mn | 1423 + doc/smm/10.newsop/tmac.n | 650 + doc/smm/11.named/00macs.me | 45 + doc/smm/11.named/00title.me | 30 + doc/smm/11.named/Makefile | 37 + doc/smm/11.named/build.me | 86 + doc/smm/11.named/files.me | 420 + doc/smm/11.named/intro.me | 24 + doc/smm/11.named/manage.me | 198 + doc/smm/11.named/named.boot.cache | 29 + doc/smm/11.named/named.boot.primary | 30 + doc/smm/11.named/named.boot.secondary | 29 + doc/smm/11.named/named.ca | 29 + doc/smm/11.named/named.local | 21 + doc/smm/11.named/resolv.conf | 16 + doc/smm/11.named/setup.me | 44 + doc/smm/11.named/spell.ok | 153 + doc/smm/11.named/types.me | 49 + doc/smm/11.named/ucbhosts | 63 + doc/smm/11.named/ucbhosts.rev | 32 + doc/smm/12.uchanges/0.t | 101 + doc/smm/12.uchanges/1.t | 1083 + doc/smm/12.uchanges/2.t | 105 + doc/smm/12.uchanges/3.t | 227 + doc/smm/12.uchanges/4.t | 93 + doc/smm/12.uchanges/5.t | 43 + doc/smm/12.uchanges/6.t | 35 + doc/smm/12.uchanges/7.t | 39 + doc/smm/12.uchanges/8.t | 369 + doc/smm/12.uchanges/Makefile | 24 + doc/smm/12.uchanges/a.t | 75 + doc/smm/12.uchanges/spell.ok | 420 + doc/smm/13.kchanges/Makefile | 29 + doc/smm/13.kchanges/gen.t | 81 + doc/smm/13.kchanges/h.t | 182 + doc/smm/13.kchanges/intro.t | 110 + doc/smm/13.kchanges/net.t | 125 + doc/smm/13.kchanges/netinet.t | 484 + doc/smm/13.kchanges/netns.t | 134 + doc/smm/13.kchanges/spell.ok | 629 + doc/smm/13.kchanges/stand.t | 26 + doc/smm/13.kchanges/sys.kern.t | 223 + doc/smm/13.kchanges/sys.t | 129 + doc/smm/13.kchanges/sys.tty.t | 85 + doc/smm/13.kchanges/sys.ufs.t | 174 + doc/smm/13.kchanges/sys.uipc.t | 232 + doc/smm/13.kchanges/sys.vm.t | 181 + doc/smm/13.kchanges/vax.t | 245 + doc/smm/13.kchanges/vaxif.t | 134 + doc/smm/13.kchanges/vaxmba.t | 94 + doc/smm/13.kchanges/vaxuba.t | 139 + doc/smm/14.fastfs/0.t | 128 + doc/smm/14.fastfs/1.t | 85 + doc/smm/14.fastfs/2.t | 116 + doc/smm/14.fastfs/3.t | 567 + doc/smm/14.fastfs/4.t | 225 + doc/smm/14.fastfs/5.t | 266 + doc/smm/14.fastfs/6.t | 132 + doc/smm/14.fastfs/Makefile | 28 + doc/smm/15.net/0.t | 154 + doc/smm/15.net/1.t | 39 + doc/smm/15.net/2.t | 58 + doc/smm/15.net/3.t | 32 + doc/smm/15.net/4.t | 40 + doc/smm/15.net/5.t | 157 + doc/smm/15.net/6.t | 637 + doc/smm/15.net/7.t | 229 + doc/smm/15.net/8.t | 139 + doc/smm/15.net/9.t | 97 + doc/smm/15.net/Makefile | 26 + doc/smm/15.net/a.t | 192 + doc/smm/15.net/b.t | 118 + doc/smm/15.net/c.t | 124 + doc/smm/15.net/d.t | 46 + doc/smm/15.net/e.t | 102 + doc/smm/15.net/f.t | 90 + doc/smm/15.net/spell.ok | 307 + doc/smm/16.sendmail/Makefile | 26 + doc/smm/16.sendmail/intro.me | 1463 + doc/smm/17.security/Makefile | 25 + doc/smm/17.security/security.ms | 355 + doc/smm/18.password/Makefile | 27 + doc/smm/18.password/password.ms | 562 + doc/smm/19.porttour/Makefile | 28 + doc/smm/19.porttour/porttour1.ms | 1593 + doc/smm/19.porttour/porttour2.ms | 1693 + doc/smm/20.termdesc/Makefile | 25 + doc/smm/20.termdesc/termdesc.me | 677 + doc/smm/21.uucpnet/Makefile | 27 + doc/smm/21.uucpnet/network.ms | 731 + doc/smm/22.timed/Makefile | 27 + doc/smm/22.timed/date | 26 + doc/smm/22.timed/loop | 27 + doc/smm/22.timed/spell.ok | 34 + doc/smm/22.timed/time | 26 + doc/smm/22.timed/timed.ms | 477 + doc/smm/22.timed/unused | 26 + doc/smm/Title | 123 + doc/usd/00.contents | 220 + doc/usd/01.begin/u.mac | 49 + doc/usd/01.begin/u0 | 47 + doc/usd/01.begin/u1 | 625 + doc/usd/01.begin/u2 | 1194 + doc/usd/01.begin/u3 | 328 + doc/usd/01.begin/u4 | 293 + doc/usd/01.begin/u5 | 185 + doc/usd/02.learn/Makefile | 41 + doc/usd/02.learn/Refs | 44 + doc/usd/02.learn/Refs.ig | 5 + doc/usd/02.learn/p0 | 72 + doc/usd/02.learn/p1 | 85 + doc/usd/02.learn/p2 | 256 + doc/usd/02.learn/p3 | 221 + doc/usd/02.learn/p4 | 58 + doc/usd/02.learn/p5 | 587 + doc/usd/02.learn/p6 | 161 + doc/usd/02.learn/p7 | 26 + doc/usd/03.shell/t.mac | 31 + doc/usd/03.shell/t1 | 448 + doc/usd/03.shell/t2 | 830 + doc/usd/03.shell/t3 | 821 + doc/usd/03.shell/t4 | 136 + doc/usd/04.csh/csh.1 | 985 + doc/usd/04.csh/csh.2 | 1278 + doc/usd/04.csh/csh.3 | 623 + doc/usd/04.csh/csh.4 | 151 + doc/usd/04.csh/csh.a | 68 + doc/usd/04.csh/csh.g | 1695 + doc/usd/04.csh/tabs | 7 + doc/usd/05.dc/dc | 713 + doc/usd/06.bc/bc | 1138 + doc/usd/07.Mail/Makefile | 28 + doc/usd/07.Mail/mail0.nr | 40 + doc/usd/07.Mail/mail1.nr | 65 + doc/usd/07.Mail/mail2.nr | 590 + doc/usd/07.Mail/mail3.nr | 106 + doc/usd/07.Mail/mail4.nr | 385 + doc/usd/07.Mail/mail5.nr | 961 + doc/usd/07.Mail/mail6.nr | 98 + doc/usd/07.Mail/mail7.nr | 80 + doc/usd/07.Mail/mail8.nr | 48 + doc/usd/07.Mail/mail9.nr | 163 + doc/usd/07.Mail/maila.nr | 6 + doc/usd/08.mh/ADMIN.me | 765 + doc/usd/08.mh/MH.me | 2287 + doc/usd/08.mh/Makefile | 691 + doc/usd/08.mh/ali.me | 52 + doc/usd/08.mh/anno.me | 52 + doc/usd/08.mh/ap.me | 75 + doc/usd/08.mh/bbaka.me | 26 + doc/usd/08.mh/bbc.me | 140 + doc/usd/08.mh/bbexp.me | 29 + doc/usd/08.mh/bbl.me | 200 + doc/usd/08.mh/bbleader.me | 104 + doc/usd/08.mh/bboards.me | 83 + doc/usd/08.mh/bboards5.me | 50 + doc/usd/08.mh/bboards8.me | 45 + doc/usd/08.mh/bbtar.me | 45 + doc/usd/08.mh/burst.me | 100 + doc/usd/08.mh/comp.me | 117 + doc/usd/08.mh/conflict.me | 50 + doc/usd/08.mh/dist.me | 146 + doc/usd/08.mh/dp.me | 58 + doc/usd/08.mh/folder.me | 171 + doc/usd/08.mh/forw.me | 202 + doc/usd/08.mh/inc.me | 143 + doc/usd/08.mh/install-mh.me | 38 + doc/usd/08.mh/mark.me | 112 + doc/usd/08.mh/mf.me | 59 + doc/usd/08.mh/mh-alias.me | 201 + doc/usd/08.mh/mh-chart.me | 408 + doc/usd/08.mh/mh-format.me | 216 + doc/usd/08.mh/mh-hack.me | 66 + doc/usd/08.mh/mh-mail.me | 214 + doc/usd/08.mh/mh-mts.me | 100 + doc/usd/08.mh/mh-profile.me | 470 + doc/usd/08.mh/mh-tailor.me | 151 + doc/usd/08.mh/mh.me | 209 + doc/usd/08.mh/mhl.me | 246 + doc/usd/08.mh/mhmail.me | 56 + doc/usd/08.mh/mhook.me | 319 + doc/usd/08.mh/mhpath.me | 126 + doc/usd/08.mh/msgchk.me | 27 + doc/usd/08.mh/msh.me | 212 + doc/usd/08.mh/news.me | 100 + doc/usd/08.mh/next.me | 48 + doc/usd/08.mh/packf.me | 40 + doc/usd/08.mh/pick.me | 265 + doc/usd/08.mh/pop5.me | 69 + doc/usd/08.mh/pop8.me | 33 + doc/usd/08.mh/popaka.me | 23 + doc/usd/08.mh/popd.me | 34 + doc/usd/08.mh/popwrd.me | 32 + doc/usd/08.mh/post.me | 102 + doc/usd/08.mh/prev.me | 48 + doc/usd/08.mh/prompter.me | 100 + doc/usd/08.mh/rcvstore.me | 76 + doc/usd/08.mh/refile.me | 106 + doc/usd/08.mh/repl.me | 219 + doc/usd/08.mh/rmail.me | 34 + doc/usd/08.mh/rmf.me | 60 + doc/usd/08.mh/rmm.me | 53 + doc/usd/08.mh/scan.me | 132 + doc/usd/08.mh/send.me | 162 + doc/usd/08.mh/show.me | 124 + doc/usd/08.mh/sortm.me | 64 + doc/usd/08.mh/tmac.h | 68 + doc/usd/08.mh/tmac.me | 3 + doc/usd/08.mh/version.rf | 1 + doc/usd/08.mh/vmh.me | 104 + doc/usd/08.mh/whatnow.me | 114 + doc/usd/08.mh/whom.me | 51 + doc/usd/09.newsread/Makefile | 16 + doc/usd/09.newsread/copyright.mn | 608 + doc/usd/09.newsread/howto.mn | 1342 + doc/usd/09.newsread/tmac.n | 650 + doc/usd/10.etiq/Makefile | 13 + doc/usd/10.etiq/manner.mn | 1342 + doc/usd/10.etiq/tmac.n | 650 + doc/usd/11.notes/0.long | 36 + doc/usd/11.notes/0.short | 37 + doc/usd/11.notes/1 | 66 + doc/usd/11.notes/2.1 | 599 + doc/usd/11.notes/2.2 | 337 + doc/usd/11.notes/3.1 | 578 + doc/usd/11.notes/3.2 | 328 + doc/usd/11.notes/4.0 | 12 + doc/usd/11.notes/4.1 | 22 + doc/usd/11.notes/4.2 | 14 + doc/usd/11.notes/4.3 | 94 + doc/usd/11.notes/4.4 | 46 + doc/usd/11.notes/4.5 | 28 + doc/usd/11.notes/4.6 | 31 + doc/usd/11.notes/4.7 | 49 + doc/usd/11.notes/5 | 122 + doc/usd/11.notes/Makefile | 88 + doc/usd/11.notes/a.checklist | 473 + doc/usd/11.notes/acks | 32 + doc/usd/11.notes/b.interface | 431 + doc/usd/11.notes/c.changes | 381 + doc/usd/11.notes/macros | 289 + doc/usd/11.notes/vtoc | 45 + doc/usd/12.edtut/e.mac | 39 + doc/usd/12.edtut/e0 | 35 + doc/usd/12.edtut/e1 | 245 + doc/usd/12.edtut/e2 | 429 + doc/usd/12.edtut/e3 | 385 + doc/usd/12.edtut/e4 | 269 + doc/usd/12.edtut/e5 | 276 + doc/usd/12.edtut/e6 | 245 + doc/usd/12.edtut/e7 | 193 + doc/usd/13.edadv/ae.mac | 53 + doc/usd/13.edadv/ae0 | 65 + doc/usd/13.edadv/ae1 | 74 + doc/usd/13.edadv/ae2 | 1017 + doc/usd/13.edadv/ae3 | 470 + doc/usd/13.edadv/ae4 | 184 + doc/usd/13.edadv/ae5 | 325 + doc/usd/13.edadv/ae6 | 494 + doc/usd/13.edadv/ae7 | 186 + doc/usd/13.edadv/ae9 | 24 + doc/usd/14.edit/Makefile | 34 + doc/usd/14.edit/edit.vindex | 88 + doc/usd/14.edit/edittut.ms | 2295 + doc/usd/15.vi/Makefile | 34 + doc/usd/15.vi/vi.apwh.ms | 1052 + doc/usd/15.vi/vi.chars | 617 + doc/usd/15.vi/vi.in | 2037 + doc/usd/15.vi/vi.summary | 441 + doc/usd/16.ex/Makefile | 30 + doc/usd/16.ex/ex.rm | 2203 + doc/usd/16.ex/ex.summary | 707 + doc/usd/17.jove/Makefile | 25 + doc/usd/17.jove/jove.1 | 1159 + doc/usd/17.jove/jove.2 | 1125 + doc/usd/17.jove/jove.3 | 408 + doc/usd/17.jove/jove.4 | 1444 + doc/usd/18.sed/sed | 1263 + doc/usd/19.awk/awk | 1408 + doc/usd/20.msmacros/ms | 926 + doc/usd/20.msmacros/refcard | 1255 + doc/usd/21.msdiffs/Makefile | 25 + doc/usd/21.msdiffs/ms.diffs | 260 + doc/usd/22.memacros/Makefile | 24 + doc/usd/22.memacros/intro.me | 2318 + doc/usd/23.meref/Makefile | 24 + doc/usd/23.meref/ref.me | 2356 + doc/usd/24.troff/Makefile | 55 + doc/usd/24.troff/add | 101 + doc/usd/24.troff/m.mac | 247 + doc/usd/24.troff/m0 | 243 + doc/usd/24.troff/m0a | 564 + doc/usd/24.troff/m1 | 709 + doc/usd/24.troff/m2 | 363 + doc/usd/24.troff/m3 | 484 + doc/usd/24.troff/m4 | 375 + doc/usd/24.troff/m5 | 424 + doc/usd/24.troff/table1 | 91 + doc/usd/24.troff/table2 | 221 + doc/usd/25.trofftut/tt.mac | 70 + doc/usd/25.trofftut/tt00 | 74 + doc/usd/25.trofftut/tt01 | 181 + doc/usd/25.trofftut/tt02 | 203 + doc/usd/25.trofftut/tt03 | 199 + doc/usd/25.trofftut/tt04 | 148 + doc/usd/25.trofftut/tt05 | 89 + doc/usd/25.trofftut/tt06 | 310 + doc/usd/25.trofftut/tt07 | 83 + doc/usd/25.trofftut/tt08 | 158 + doc/usd/25.trofftut/tt09 | 281 + doc/usd/25.trofftut/tt10 | 215 + doc/usd/25.trofftut/tt11 | 192 + doc/usd/25.trofftut/tt12 | 123 + doc/usd/25.trofftut/tt13 | 58 + doc/usd/25.trofftut/tt14 | 114 + doc/usd/25.trofftut/ttack | 59 + doc/usd/25.trofftut/ttcharset | 93 + doc/usd/25.trofftut/ttindex | 159 + doc/usd/26.eqn/e.mac | 51 + doc/usd/26.eqn/e0 | 59 + doc/usd/26.eqn/e1 | 68 + doc/usd/26.eqn/e2 | 43 + doc/usd/26.eqn/e3 | 134 + doc/usd/26.eqn/e4 | 439 + doc/usd/26.eqn/e5 | 217 + doc/usd/26.eqn/e6 | 175 + doc/usd/26.eqn/e7 | 79 + doc/usd/27.eqnguide/g.mac | 28 + doc/usd/27.eqnguide/g0 | 85 + doc/usd/27.eqnguide/g1 | 607 + doc/usd/27.eqnguide/g2 | 532 + doc/usd/27.eqnguide/g3 | 224 + doc/usd/27.eqnguide/g4 | 251 + doc/usd/27.eqnguide/g5 | 118 + doc/usd/28.tbl/tbl | 1890 + doc/usd/29.refer/Makefile | 27 + doc/usd/29.refer/biblio | 25 + doc/usd/29.refer/biblio.ig | 2 + doc/usd/29.refer/refer.bib | 827 + doc/usd/29.refer/refer.mac | 204 + doc/usd/30.invert/pubuse | 668 + doc/usd/30.invert/refer | 1527 + doc/usd/31.bib/INDEX | 181 + doc/usd/31.bib/Makefile | 26 + doc/usd/31.bib/bibdoc.ms | 1242 + doc/usd/31.bib/testrefs | 165 + doc/usd/32.diction/ap1 | 57 + doc/usd/32.diction/ap2 | 488 + doc/usd/32.diction/rm0 | 41 + doc/usd/32.diction/rm1 | 883 + doc/usd/32.diction/rm2 | 94 + doc/usd/33.rogue/Makefile | 26 + doc/usd/33.rogue/rogue.me | 808 + doc/usd/34.trek/Makefile | 26 + doc/usd/34.trek/spell.ok | 72 + doc/usd/34.trek/trek.me | 940 + doc/usd/Title | 65 + etc/Makefile | 4 +- etc/XNSrouted/tools/query.c | 2 +- etc/disklabel.c | 2 +- etc/diskpart.c | 62 +- etc/dump/dumptraverse.c | 23 +- etc/etc.tahoe/dlmpcc/Makefile | 2 +- etc/etc.tahoe/dlmpcc/dlmpcc.c | 2 +- etc/etc.tahoe/dlmpcc/scnhdr.h | 2 +- etc/etc.tahoe/enpload.c | 2 +- etc/ftpd/Makefile | 11 +- etc/ftpd/ftpd.c | 5 +- etc/named/Makefile | 19 +- etc/named/newvers.sh | 12 +- etc/named/tools/Makefile | 13 +- etc/named/tools/nslookup/Makefile | 19 +- etc/named/tools/nslookup/main.c | 4 +- etc/named/tools/nsquery.c | 37 +- etc/newfs/Makefile | 2 +- etc/termcap/Makefile | 4 +- etc/termcap/tck | 59 + etc/timed/Makefile | 2 +- etc/tzone/Makefile | 8 +- etc/vipw.c | 4 +- files.txt | 8332 ++- games/Makefile | 2 +- games/atc/input.c | 2 +- games/atc/log.c | 2 +- games/atc/update.c | 2 +- games/fortune/rnd.c | 2 +- games/fortune/strfile.c | 2 +- games/fortune/strfile.h | 2 +- games/fortune/unstr.c | 2 +- games/games.vax/compat/Makefile | 10 +- games/games.vax/zork/Makefile | 1 - games/hack/Makefile | 2 +- games/phantasia/Makefile | 20 +- games/ppt.c | 2 +- include/Makefile | 11 +- include/Makefile.install | 15 +- include/protocols/routed.h | 2 +- include/zconf.h | 59 + include/zlib.h | 732 + lib/libc/compat-sys5/memccpy.c | 1 + lib/libc/net/res_mkquery.c | 4 +- lib/libc/net/res_query.c | 4 +- lib/libc/tahoe/DEFS.h | 2 +- lib/libc/tahoe/Makefile | 2 +- man/Makefile | 5 +- man/man1/Makefile | 105 +- man/man1/admin.1 | 563 + man/man1/bc.1 | 2 +- man/man1/bdiff.1 | 128 + man/man1/checknr.1 | 2 +- man/man1/chghist.1 | 138 + man/man1/cmp.1 | 2 +- man/man1/comb.1 | 165 + man/man1/cpio.1 | 118 + man/man1/delta.1 | 363 + man/man1/deroff.1 | 2 +- man/man1/diction.1 | 8 +- man/man1/ed.1 | 5 +- man/man1/eqn.1 | 6 +- man/man1/get.1 | 1406 + man/man1/graph.1 | 2 +- man/man1/help.1 | 70 + man/man1/newaliases.1 | 21 +- man/man1/nslookup.1 | 228 + man/man1/plot.1 | 2 +- man/man1/prt.1 | 487 + man/man1/rlogin.1 | 2 +- man/man1/rmdel.1 | 126 + man/man1/rsh.1 | 2 +- man/man1/ruptime.1 | 2 +- man/man1/rwho.1 | 2 +- man/man1/sccsdiff.1 | 127 + man/man1/spline.1 | 2 +- man/man1/telnet.1 | 2 +- man/man1/tftp.1 | 2 +- man/man1/tip.1 | 2 +- man/man1/uucp.1 | 2 +- man/man1/uuencode.1 | 2 +- man/man1/uulog.1 | 2 +- man/man1/uuname.1 | 2 +- man/man1/uuq.1 | 2 +- man/man1/uusend.1 | 2 +- man/man1/uux.1 | 2 +- man/man1/what.1 | 93 +- man/man2/Makefile | 6 +- man/man2/rename.2 | 2 +- man/man2/vadvise.2 | 53 + man/man3/alarm.3 | 2 +- man/man3/asinh.3 | 2 +- man/man3/byteorder.3 | 2 +- man/man3/curses.3 | 2 +- man/man3/dbm.3 | 2 +- man/man3/erf.3 | 2 +- man/man3/fclose.3 | 2 +- man/man3/ferror.3 | 2 +- man/man3/floor.3 | 2 +- man/man3/fopen.3 | 2 +- man/man3/fread.3 | 2 +- man/man3/getc.3 | 2 +- man/man3/getdiskbyname.3 | 2 +- man/man3/getnetent.3 | 2 +- man/man3/getprotoent.3 | 2 +- man/man3/getpw.3 | 2 +- man/man3/gets.3 | 2 +- man/man3/getservent.3 | 2 +- man/man3/hypot.3 | 2 +- man/man3/ieee.3 | 2 +- man/man3/infnan.3 | 2 +- man/man3/j0.3 | 2 +- man/man3/lgamma.3 | 2 +- man/man3/lib2648.3 | 2 +- man/man3/math.3 | 4 +- man/man3/mp.3 | 2 +- man/man3/nice.3 | 2 +- man/man3/ns.3 | 2 +- man/man3/pause.3 | 2 +- man/man3/plot.3 | 2 +- man/man3/putc.3 | 2 +- man/man3/puts.3 | 2 +- man/man3/rand.3 | 2 +- man/man3/rcmd.3 | 2 +- man/man3/scanf.3 | 2 +- man/man3/signal.3 | 2 +- man/man3/sin.3 | 2 +- man/man3/sinh.3 | 2 +- man/man3/sqrt.3 | 2 +- man/man3/stdio.3 | 2 +- man/man3/stty.3 | 2 +- man/man3/time.3 | 2 +- man/man3/times.3 | 2 +- man/man3/ungetc.3 | 2 +- man/man3/utime.3 | 2 +- man/man3/valloc.3 | 2 +- man/man3/vlimit.3 | 2 +- man/man3/vtimes.3 | 2 +- man/man3f/abort.3 | 2 +- man/man3f/access.3 | 2 +- man/man3f/alarm.3 | 2 +- man/man3f/bessel.3 | 2 +- man/man3f/bit.3 | 2 +- man/man3f/chdir.3 | 2 +- man/man3f/chmod.3 | 2 +- man/man3f/etime.3 | 2 +- man/man3f/exit.3 | 2 +- man/man3f/fdate.3 | 2 +- man/man3f/flmin.3 | 2 +- man/man3f/flush.3 | 2 +- man/man3f/fork.3 | 2 +- man/man3f/fseek.3 | 2 +- man/man3f/getarg.3 | 2 +- man/man3f/getc.3 | 2 +- man/man3f/getcwd.3 | 2 +- man/man3f/getenv.3 | 2 +- man/man3f/getlog.3 | 2 +- man/man3f/getpid.3 | 2 +- man/man3f/getuid.3 | 2 +- man/man3f/hostnm.3 | 2 +- man/man3f/idate.3 | 2 +- man/man3f/index.3 | 2 +- man/man3f/intro.3 | 2 +- man/man3f/ioinit.3 | 2 +- man/man3f/kill.3 | 2 +- man/man3f/link.3 | 2 +- man/man3f/loc.3 | 2 +- man/man3f/long.3 | 2 +- man/man3f/malloc.3 | 2 +- man/man3f/perror.3 | 2 +- man/man3f/plot.3 | 2 +- man/man3f/putc.3 | 2 +- man/man3f/qsort.3 | 2 +- man/man3f/rand.3 | 2 +- man/man3f/random.3 | 2 +- man/man3f/rename.3 | 2 +- man/man3f/signal.3 | 2 +- man/man3f/sleep.3 | 2 +- man/man3f/stat.3 | 2 +- man/man3f/system.3 | 2 +- man/man3f/time.3 | 2 +- man/man3f/topen.3 | 2 +- man/man3f/traper.3 | 2 +- man/man3f/trapov.3 | 2 +- man/man3f/trpfpe.3 | 2 +- man/man3f/ttynam.3 | 2 +- man/man3f/unlink.3 | 2 +- man/man3f/wait.3 | 2 +- man/man4/arp.4 | 2 +- man/man4/idp.4 | 2 +- man/man4/imp.4 | 2 +- man/man4/inet.4 | 2 +- man/man4/ip.4 | 2 +- man/man4/ns.4 | 2 +- man/man4/spp.4 | 2 +- man/man4/tcp.4 | 2 +- man/man4/udp.4 | 2 +- man/man4/vax/Makefile | 6 +- man/man4/vax/uda.4 | 2 +- man/man5/Makefile | 16 +- man/man5/aliases.5 | 21 +- man/man5/cpio.5 | 48 + man/man5/resolver.5 | 2 +- man/man5/sccsfile.5 | 212 + man/man5/shells.5 | 2 +- man/man6/Makefile | 15 +- man/man6/atc.6 | 2 +- man/man6/battlestar.6 | 21 +- man/man6/bcd.6 | 2 +- man/man6/hack.6 | 2 +- man/man6/hangman.6 | 2 +- man/man6/phantasia.6 | 1241 + man/man6/rogue.6 | 2 +- man/man6/worm.6 | 2 +- man/man8/Makefile | 14 +- man/man8/XNSrouted.8 | 2 +- man/man8/acucntrl.8 | 132 + man/man8/arp.8 | 2 +- man/man8/bugfiler.8 | 5 + man/man8/comsat.8 | 2 +- man/man8/disklabel.8 | 2 +- man/man8/fingerd.8 | 2 +- man/man8/fsdb.8 | 2 +- man/man8/fstat.8 | 4 +- man/man8/ftpd.8 | 2 +- man/man8/gettable.8 | 2 +- man/man8/implogd.8 | 2 +- man/man8/rdump.8 | 2 +- man/man8/rexecd.8 | 2 +- man/man8/rlogind.8 | 2 +- man/man8/rmt.8 | 2 +- man/man8/route.8 | 2 +- man/man8/routed.8 | 2 +- man/man8/rrestore.8 | 2 +- man/man8/rwhod.8 | 2 +- man/man8/sendmail.8 | 29 +- man/man8/slattach.8 | 2 +- man/man8/tahoe/crash.8 | 4 +- man/man8/tahoe/enpload.8 | 4 +- man/man8/talkd.8 | 2 +- man/man8/telnetd.8 | 2 +- man/man8/tftpd.8 | 2 +- man/man8/trpt.8 | 2 +- man/man8/trsp.8 | 2 +- man/man8/uucico.8 | 2 +- man/man8/uuclean.8 | 2 +- man/man8/uupoll.8 | 2 +- man/man8/uusnap.8 | 2 +- man/man8/uuxqt.8 | 2 +- man/man8/vax/Makefile | 6 +- man/man8/vax/arff.8 | 2 +- man/man8/vax/crash.8 | 2 +- man/man8/vax/format.8 | 2 +- man/man8/vax/rxformat.8 | 2 +- old/berknet/BUGLIST | 107 + old/berknet/Paths.h | 77 + old/berknet/READ_ME | 73 + old/berknet/TODO | 73 + old/berknet/berkmap | 103 + old/berknet/chktroff.c | 443 + old/berknet/config.h | 564 + old/berknet/defs.h | 260 + old/berknet/environ.c | 132 + old/berknet/header.c | 122 + old/berknet/initfile | 16 + old/berknet/interact.c | 23 + old/berknet/listen.c | 29 + old/berknet/local.h | 5 + old/berknet/mach.c | 584 + old/berknet/mach.h | 473 + old/berknet/makefile | 188 + old/berknet/mmail.c | 169 + old/berknet/mwrite.c | 169 + old/berknet/nbs.c | 536 + old/berknet/net.c | 555 + old/berknet/netcp.c | 141 + old/berknet/netdaemon.c | 1168 + old/berknet/netlog.sh | 6 + old/berknet/netlogin.c | 56 + old/berknet/netlpr.c | 165 + old/berknet/netmail.c | 142 + old/berknet/netq.c | 334 + old/berknet/netrc.c | 328 + old/berknet/netrm.c | 125 + old/berknet/netstart.c | 47 + old/berknet/nettest.c | 45 + old/berknet/nettroff.sh | 59 + old/berknet/nsh.c | 113 + old/berknet/prmail.c | 242 + old/berknet/prot.c | 521 + old/berknet/receive.c | 55 + old/berknet/sendberkmail.c | 150 + old/berknet/setlength.sh | 15 + old/berknet/setmode.c | 36 + old/berknet/setup.c | 239 + old/berknet/speedr.c | 37 + old/berknet/speeds.c | 36 + old/berknet/start | 17 + old/berknet/store.c | 45 + old/berknet/sub.c | 499 + old/berknet/v6mail.c | 929 + old/catman.c | 259 + old/configttys.c | 560 + old/dnd.c | 6 +- old/gets.c | 25 + old/libm/libm.4.3/IEEE/Makefile | 44 + old/libm/libm.4.3/IEEE/atan2.c | 239 + old/libm/libm.4.3/IEEE/cabs.c | 202 + old/libm/libm.4.3/IEEE/cbrt.c | 97 + old/libm/libm.4.3/IEEE/support.c | 472 + old/libm/libm.4.3/IEEE/trig.c | 391 + old/libm/libm.4.3/Makefile | 108 + old/libm/libm.4.3/README | 264 + old/libm/libm.4.3/VAX/Makefile | 24 + old/libm/libm.4.3/VAX/argred.s | 762 + old/libm/libm.4.3/VAX/atan2.s | 196 + old/libm/libm.4.3/VAX/cabs.s | 110 + old/libm/libm.4.3/VAX/cbrt.s | 77 + old/libm/libm.4.3/VAX/infnan.s | 36 + old/libm/libm.4.3/VAX/mcount.sed | 7 + old/libm/libm.4.3/VAX/sincos.s | 86 + old/libm/libm.4.3/VAX/sqrt.s | 99 + old/libm/libm.4.3/VAX/support.s | 202 + old/libm/libm.4.3/VAX/tan.s | 74 + old/libm/libm.4.3/acosh.c | 83 + old/libm/libm.4.3/asincos.c | 149 + old/libm/libm.4.3/asinh.c | 83 + old/libm/libm.4.3/atan.c | 67 + old/libm/libm.4.3/atanh.c | 62 + old/libm/libm.4.3/cosh.c | 114 + old/libm/libm.4.3/erf.c | 115 + old/libm/libm.4.3/exp.c | 126 + old/libm/libm.4.3/exp__E.c | 120 + old/libm/libm.4.3/expm1.c | 149 + old/libm/libm.4.3/floor.c | 75 + old/libm/libm.4.3/j0.c | 197 + old/libm/libm.4.3/j1.c | 203 + old/libm/libm.4.3/jn.c | 117 + old/libm/libm.4.3/lgamma.c | 141 + old/libm/libm.4.3/log.c | 146 + old/libm/libm.4.3/log10.c | 76 + old/libm/libm.4.3/log1p.c | 154 + old/libm/libm.4.3/log__L.c | 97 + old/libm/libm.4.3/pow.c | 226 + old/libm/libm.4.3/sinh.c | 102 + old/libm/libm.4.3/tanh.c | 79 + old/libm/liboldnm/Makefile | 44 + old/libm/liboldnm/README | 13 + old/libm/liboldnm/acos.c | 34 + old/libm/liboldnm/asin.s | 51 + old/libm/liboldnm/atan.s | 114 + old/libm/liboldnm/badtan.s | 66 + old/libm/liboldnm/cbrt.s | 62 + old/libm/liboldnm/exp.s | 88 + old/libm/liboldnm/log.s | 76 + old/libm/liboldnm/mcount.sed | 14 + old/libm/liboldnm/pow.c | 47 + old/libm/liboldnm/sin.s | 65 + old/libm/liboldnm/sinh.s | 57 + old/libm/liboldnm/sqrt.s | 77 + old/libm/liboldnm/sqrt.s.old | 47 + old/libm/liboldnm/tan.s | 67 + old/libm/liboldnm/tanh.s | 57 + old/libm/libom/Makefile | 73 + old/libm/libom/asin.c | 50 + old/libm/libom/atan.c | 113 + old/libm/libom/erf.c | 118 + old/libm/libom/exp.c | 47 + old/libm/libom/floor.c | 32 + old/libm/libom/gamma.c | 118 + old/libm/libom/hypot.c | 43 + old/libm/libom/j0.c | 189 + old/libm/libom/j1.c | 195 + old/libm/libom/jn.c | 109 + old/libm/libom/log.c | 64 + old/libm/libom/man/exp.3 | 76 + old/libm/libom/man/floor.3 | 33 + old/libm/libom/man/gamma.3 | 32 + old/libm/libom/man/hypot.3 | 29 + old/libm/libom/man/j0.3 | 39 + old/libm/libom/man/l3tol.3 | 40 + old/libm/libom/man/sin.3 | 67 + old/libm/libom/man/sinh.3 | 25 + old/libm/libom/pow.c | 41 + old/libm/libom/sin.c | 76 + old/libm/libom/sinh.c | 69 + old/libm/libom/sqrt.c | 58 + old/libm/libom/tan.c | 75 + old/libm/libom/tanh.c | 29 + old/man/aliens.6 | 17 + old/man/apl.1 | 208 + old/man/call.1 | 22 + old/man/catman.8 | 115 + old/man/chase.6 | 33 + old/man/cifplot.1 | 443 + old/man/cxref.1 | 4 +- old/man/diffdir.1 | 9 + old/man/dumpdir.8 | 44 + old/man/gets.1 | 61 + old/man/greek.7 | 44 + old/man/iul.1 | 8 + old/man/jobs.3 | 354 + old/man/mail.4 | 24 + old/man/mklost+found.8 | 27 + old/man/mpx.2 | 505 + old/man/mpxio.5 | 189 + old/man/newcsh.1 | 372 + old/man/newgrp.1 | 30 + old/man/newtty.4 | 96 + old/man/num.1 | 29 + old/man/old.8 | 63 + old/man/rewind.1 | 27 + old/man/rv.4 | 78 + old/man/see.1 | 28 + old/man/sigset.3 | 143 + old/man/ssp.1 | 8 + old/man/tra.1 | 13 + old/man/uuclean.1 | 53 + old/man/uudiff.1 | 84 + old/man/vread.2 | 124 + old/man/vwrite.2 | 57 + old/man/wait3.2 | 75 + old/mklost+found.sh | 23 + old/rogue/Makefile | 28 + old/rogue/README | 13 + old/rogue/machdep.c | 452 + old/rogue/machdep.h | 66 + old/rogue/main.obj | Bin 0 -> 125368 bytes old/talk/look_up.c | 2 +- old/vpr/vplot.c | 484 + old/vpr/vtools/Makefile | 4 +- sys/GENERIC/Makefile | 38 +- sys/GENERIC/autoconf.o | Bin 14573 -> 14585 bytes sys/GENERIC/kdb.o | Bin 14177 -> 15119 bytes sys/GENERIC/locore.c | 2 +- sys/GENERIC/locore.o | Bin 80671 -> 80707 bytes sys/GENERIC/param.o | Bin 2179 -> 2179 bytes sys/GENERIC/uda.o | Bin 19311 -> 19357 bytes sys/GENERIC/vers.c | 4 +- sys/GENERIC/vers.o | Bin 275 -> 275 bytes sys/GENERIC/vm_sw.o | Bin 2708 -> 2708 bytes sys/GENERIC/vmunix | Bin 483328 -> 484352 bytes sys/cassette/Makefile | 39 +- sys/cassette/boot | Bin 0 -> 34680 bytes sys/cassette/copy | Bin 0 -> 38952 bytes sys/cassette/drtest | Bin 0 -> 27224 bytes sys/cassette/format | Bin 0 -> 32400 bytes sys/conf/GENERIC.allvax | 5 +- sys/conf/GENERIC.vax | 4 +- sys/conf/LUTHIEN | 28 + sys/conf/MICROVAXII | 3 +- sys/conf/devices.tahoe | 1 - sys/conf/files.tahoe | 2 - sys/conf/newvers.sh | 2 +- sys/consolerl/Makefile | 18 +- sys/consolerl/boot | Bin 34492 -> 34680 bytes sys/consolerl/copy | Bin 38812 -> 38952 bytes sys/consolerl/drtest | Bin 27212 -> 27224 bytes sys/consolerl/format | Bin 32388 -> 32400 bytes sys/floppy/3tracks | Bin 0 -> 9984 bytes sys/floppy/Makefile | 9 +- sys/floppy/boot | Bin 34492 -> 34680 bytes sys/floppy/copy | Bin 38812 -> 38952 bytes sys/floppy/drtest | Bin 27212 -> 27224 bytes sys/floppy/format | Bin 32388 -> 32400 bytes sys/h/bkmac.h | 12 +- sys/h/resource.h | 2 +- sys/h/seg.h | 19 +- sys/mdec/Makefile | 30 +- sys/mdec/a.out | Bin 800 -> 136 bytes sys/mdec/kraboot | Bin 0 -> 512 bytes sys/mdec/kraboot.c | 82 + sys/mdec/tmscpboot | Bin 1024 -> 1024 bytes sys/mdec/tmscpboot.c | 4 +- sys/netns/ns_ip.c | 4 +- sys/stand/cat.c | 14 +- sys/stand/copy.c | 62 +- sys/stand/docopy.c | 14 +- sys/stand/gets.c | 14 +- sys/stand/saerrno.h | 14 +- sys/stand/saioctl.h | 14 +- sys/sys/ufs_subr.c | 4 +- sys/sys/vm_sw.c | 4 +- sys/tahoe/autoconf.c | 5 +- sys/tahoe/conf.c | 25 +- sys/tahoe/genassym.c | 3 +- sys/tahoe/kdb_instrs | 9 +- sys/tahoe/locore.s | 81 +- sys/tahoe/swapgeneric.c | 54 +- sys/tahoedist/MAKEHOSTS | 49 +- sys/tahoedist/buildboot | 0 sys/tahoedist/buildmini | 0 sys/tahoedist/group | 10 +- sys/tahoedist/inetd.conf | 26 +- sys/tahoedist/maketape | 0 sys/tahoedist/netstart | 11 +- sys/tahoedist/passwd | 37 +- sys/tahoedist/printcap | 3 +- sys/tahoedist/rc | 124 +- sys/tahoedist/rc.local | 17 +- sys/tahoedist/services | 65 +- sys/tahoedist/shells | 6 +- sys/tahoedist/syslog.conf | 11 +- sys/tahoemath/Kaddd.s | Bin 2789 -> 2789 bytes sys/tahoemath/Kaddf.s | Bin 2771 -> 2771 bytes sys/tahoemath/Katanf.s | Bin 3282 -> 3282 bytes sys/tahoemath/Kcmpd.s | 79 + sys/tahoemath/fpe.c | Bin 3693 -> 3693 bytes sys/tahoestand/Makefile | 87 +- sys/tahoestand/boot.c | 34 +- sys/tahoestand/hdc.c | 340 + sys/tahoevba/cyreg.h | 2 +- sys/tahoevba/vba.c | 65 +- sys/tahoevba/vbavar.h | 4 +- sys/tahoevba/vd.c | 7 +- sys/tahoevba/vx.c | 15 +- sys/vax/autoconf.c | 3 +- sys/vax/clock.h | 11 +- sys/vax/emulate.s | 14 +- sys/vax/frame.h | 11 +- sys/vax/inline/inline | Bin 26624 -> 26624 bytes sys/vax/inline/inline.h | 11 +- sys/vax/inline/libcpats.c | 13 +- sys/vax/inline/machdep.c | 13 +- sys/vax/inline/machpats.c | 13 +- sys/vax/inline/main.c | 17 +- sys/vax/ioa.h | 9 +- sys/vax/ka630.h | 11 +- sys/vax/ka650.c | 14 +- sys/vax/ka650.h | 14 +- sys/vax/ka820.c | 14 +- sys/vax/ka820.h | 14 +- sys/vax/ka860.c | 14 +- sys/vax/locore.s | 2 +- sys/vax/mscp.c | 14 +- sys/vax/mscp.h | 14 +- sys/vax/mscpvar.h | 14 +- sys/vax/mtpr.h | 11 +- sys/vax/nexus.h | 11 +- sys/vax/pcb.h | 11 +- sys/vax/psl.h | 11 +- sys/vax/reg.h | 11 +- sys/vax/rsp.h | 11 +- sys/vax/rx50reg.h | 14 +- sys/vax/trap.h | 11 +- sys/vaxbi/bi.c | 14 +- sys/vaxbi/bireg.h | 14 +- sys/vaxbi/bivar.h | 14 +- sys/vaxbi/kdb.c | 186 +- sys/vaxbi/kdbreg.h | 14 +- sys/vaxbi/nireg.h | 14 +- sys/vaxdist/MAKEDEV | 4 +- sys/vaxdist/MAKEHOSTS | 2 +- sys/vaxdist/buildmini | 9 +- sys/vaxdist/disktab | 150 +- sys/vaxdist/get | 25 +- sys/vaxdist/maketape | 28 +- sys/vaxdist/motd | 4 +- sys/vaxdist/netstart | 10 +- sys/vaxdist/services | 2 - sys/vaxdist/tp/boot | Bin 39704 -> 39892 bytes sys/vaxdist/tp/copy | Bin 38812 -> 38952 bytes sys/vaxdist/tp/format | Bin 32384 -> 32396 bytes sys/vaxif/if_accreg.h | 14 +- sys/vaxif/if_cssreg.h | 14 +- sys/vaxif/if_dereg.h | 14 +- sys/vaxif/if_dmc.h | 30 +- sys/vaxif/if_dmv.h | 26 +- sys/vaxif/if_en.h | 14 +- sys/vaxif/if_enreg.h | 14 +- sys/vaxif/if_exreg.h | 14 +- sys/vaxif/if_hdhreg.h | 14 +- sys/vaxif/if_hy.h | 14 +- sys/vaxif/if_hyreg.h | 16 +- sys/vaxif/if_il.h | 14 +- sys/vaxif/if_ilreg.h | 14 +- sys/vaxif/if_ix.h | 14 +- sys/vaxif/if_pclreg.h | 14 +- sys/vaxif/if_qereg.h | 14 +- sys/vaxif/if_uba.h | 14 +- sys/vaxif/raw_hy.c | 14 +- sys/vaxmba/hpreg.h | 11 +- sys/vaxmba/htreg.h | 11 +- sys/vaxmba/mbareg.h | 11 +- sys/vaxmba/mbavar.h | 11 +- sys/vaxmba/mtreg.h | 11 +- sys/vaxstand/Makefile | 106 +- sys/vaxstand/autoconf.c | 3 +- sys/vaxstand/autoconf.o | Bin 3683 -> 3695 bytes sys/vaxstand/boot | Bin 41984 -> 41984 bytes sys/vaxstand/boothk | Bin 6644 -> 6560 bytes sys/vaxstand/boothp | Bin 7692 -> 7608 bytes sys/vaxstand/bootkra | Bin 6452 -> 6596 bytes sys/vaxstand/bootra | Bin 7200 -> 7460 bytes sys/vaxstand/bootrl | Bin 6852 -> 6768 bytes sys/vaxstand/bootup | Bin 7672 -> 7588 bytes sys/vaxstand/cat | Bin 47104 -> 47104 bytes sys/vaxstand/confhp.c | 14 +- sys/vaxstand/confkra.c | 14 +- sys/vaxstand/confra.c | 14 +- sys/vaxstand/confrk.c | 14 +- sys/vaxstand/confrl.c | 14 +- sys/vaxstand/confup.c | 14 +- sys/vaxstand/confxx.c | 14 +- sys/vaxstand/copy | Bin 47104 -> 48128 bytes sys/vaxstand/copy.o | Bin 791 -> 727 bytes sys/vaxstand/drtest | Bin 32768 -> 32768 bytes sys/vaxstand/format | Bin 38912 -> 38912 bytes sys/vaxstand/kdb.c | 24 +- sys/vaxstand/kdb.o | Bin 2120 -> 2349 bytes sys/vaxstand/kra_autoconf.o | Bin 0 -> 829 bytes sys/vaxstand/libsa.a | Bin 70722 -> 71126 bytes sys/vaxstand/ls | Bin 47104 -> 48128 bytes sys/vaxstand/pcs750.bin | Bin 11264 -> 11264 bytes sys/vaxstand/qfont.c | 14 +- sys/vaxstand/ra_autoconf.o | Bin 0 -> 1328 bytes sys/vaxstand/sm_autoconf.o | Bin 852 -> 625 bytes sys/vaxstand/tpboot | Bin 39704 -> 39892 bytes sys/vaxstand/tpcopy | Bin 38812 -> 38952 bytes sys/vaxstand/tpformat | Bin 32384 -> 32396 bytes sys/vaxstand/uda.c | 22 +- sys/vaxstand/uda.o | Bin 2825 -> 2911 bytes sys/vaxuba/dmx.c | 2 +- sys/vaxuba/dmx.h | 2 +- sys/vaxuba/dmxreg.h | 2 +- sys/vaxuba/pdma.h | 11 +- sys/vaxuba/psreg.h | 11 +- sys/vaxuba/qdreg.h | 11 +- sys/vaxuba/qevent.h | 12 +- sys/vaxuba/qfont.c | 18 +- sys/vaxuba/qvreg.h | 13 +- sys/vaxuba/tmscpreg.h | 9 +- sys/vaxuba/ubareg.h | 16 +- sys/vaxuba/ubavar.h | 14 +- sys/vaxuba/uda.c | 195 +- sys/vaxuba/udareg.h | 12 +- ucb/20b.c | 60 + ucb/Makefile | 14 +- ucb/compress/Makefile | 30 +- ucb/compress/compress.c | 142 +- ucb/compress/gzcompat.c | 188 + ucb/ctags/C.c | 2 +- ucb/ctags/Makefile | 2 +- ucb/ctags/ctags.c | 2 +- ucb/ctags/fortran.c | 2 +- ucb/ctags/lisp.c | 2 +- ucb/ctags/print.c | 2 +- ucb/ctags/tree.c | 2 +- ucb/ctags/yacc.c | 2 +- ucb/dbx/ops.vax.c | 2 +- ucb/man/man.c | 2 +- ucb/pascal/pi/Makefile | 6 +- ucb/sccs.c | 5 +- ucb/tn3270/ascii/map3270.ext | 2 +- ucb/tn3270/ascii/termin.ext | 2 +- ucb/tn3270/ctlr/inbound.ext | 2 +- ucb/tn3270/ctlr/options.ext | 2 +- ucb/tn3270/ctlr/outbound.ext | 2 +- ucb/tn3270/general/bsubs.ext | 2 +- ucb/tn3270/sys_curses/termout.ext | 2 +- ucb/tn3270/sys_dos/termout.ext | 2 +- ucb/tn3270/telnet.ext | 2 +- ucb/tn3270/telnet/Makefile | 2 +- ucb/vgrind/vgrindefs.src | 2 +- usr.bin/Makefile | 5 +- usr.bin/diction/README | 63 + usr.bin/f77/Makefile | 2 +- usr.bin/f77/f77.vax/f77/f77.c | 4 +- usr.bin/f77/f77.vax/f77pass1/tokdefs.h | 8 - usr.bin/file.c | 10 +- usr.bin/m4/Makefile | 2 +- usr.bin/roff/troff_font/chars.c | 26 + usr.bin/roff/troff_font/ftB.c | 140 + usr.bin/roff/troff_font/ftBC.c | 141 + usr.bin/roff/troff_font/ftC.c | 141 + usr.bin/roff/troff_font/ftCE.c | 140 + usr.bin/roff/troff_font/ftCI.c | 144 + usr.bin/roff/troff_font/ftCK.c | 140 + usr.bin/roff/troff_font/ftCS.c | 144 + usr.bin/roff/troff_font/ftCW.c | 141 + usr.bin/roff/troff_font/ftG.c | 140 + usr.bin/roff/troff_font/ftGI.c | 139 + usr.bin/roff/troff_font/ftGM.c | 140 + usr.bin/roff/troff_font/ftGR.c | 141 + usr.bin/roff/troff_font/ftI.c | 140 + usr.bin/roff/troff_font/ftL.c | 142 + usr.bin/roff/troff_font/ftLI.c | 142 + usr.bin/roff/troff_font/ftPA.c | 140 + usr.bin/roff/troff_font/ftPB.c | 140 + usr.bin/roff/troff_font/ftPI.c | 140 + usr.bin/roff/troff_font/ftR.c | 140 + usr.bin/roff/troff_font/ftS.c | 139 + usr.bin/roff/troff_font/ftSB.c | 142 + usr.bin/roff/troff_font/ftSI.c | 142 + usr.bin/roff/troff_font/ftSM.c | 142 + usr.bin/roff/troff_font/ftUD.c | 140 + usr.bin/roff/troff_font/ftXM.c | 142 + usr.bin/sccscmds/Makefile | 18 + usr.bin/sccscmds/Shell | 22 + usr.bin/sccscmds/cmd/admin.c | 780 + usr.bin/sccscmds/cmd/alloc.c | 13 + usr.bin/sccscmds/cmd/bdiff.c | 377 + usr.bin/sccscmds/cmd/cmt.c | 368 + usr.bin/sccscmds/cmd/comb.c | 251 + usr.bin/sccscmds/cmd/delta.c | 722 + usr.bin/sccscmds/cmd/get.c | 729 + usr.bin/sccscmds/cmd/help.c | 155 + usr.bin/sccscmds/cmd/makefile | 134 + usr.bin/sccscmds/cmd/prs.c | 797 + usr.bin/sccscmds/cmd/prt.c | 424 + usr.bin/sccscmds/cmd/rmchg.c | 400 + usr.bin/sccscmds/cmd/sccsdiff.sh | 36 + usr.bin/sccscmds/cmd/scv.c | 891 + usr.bin/sccscmds/cmd/snull.c | 581 + usr.bin/sccscmds/cmd/stree.c | 294 + usr.bin/sccscmds/cmd/val.c | 688 + usr.bin/sccscmds/cmd/vc.c | 659 + usr.bin/sccscmds/cmd/what.c | 63 + usr.bin/sccscmds/com/Compile | 54 + usr.bin/sccscmds/com/Makefile | 39 + usr.bin/sccscmds/com/auxf.c | 39 + usr.bin/sccscmds/com/chkid.c | 19 + usr.bin/sccscmds/com/chksid.c | 14 + usr.bin/sccscmds/com/date_ab.c | 107 + usr.bin/sccscmds/com/date_ba.c | 22 + usr.bin/sccscmds/com/del_ab.c | 39 + usr.bin/sccscmds/com/del_ba.c | 41 + usr.bin/sccscmds/com/dodelt.c | 130 + usr.bin/sccscmds/com/dofile.c | 55 + usr.bin/sccscmds/com/dohist.c | 163 + usr.bin/sccscmds/com/doie.c | 21 + usr.bin/sccscmds/com/dolist.c | 80 + usr.bin/sccscmds/com/eqsid.c | 15 + usr.bin/sccscmds/com/flushto.c | 19 + usr.bin/sccscmds/com/fmterr.c | 11 + usr.bin/sccscmds/com/getline.c | 45 + usr.bin/sccscmds/com/newstats.c | 14 + usr.bin/sccscmds/com/permiss.c | 87 + usr.bin/sccscmds/com/pf_ab.c | 60 + usr.bin/sccscmds/com/putline.c | 92 + usr.bin/sccscmds/com/rdmod.c | 163 + usr.bin/sccscmds/com/setup.c | 81 + usr.bin/sccscmds/com/sid_ab.c | 18 + usr.bin/sccscmds/com/sid_ba.c | 20 + usr.bin/sccscmds/com/sidtoser.c | 21 + usr.bin/sccscmds/com/sinit.c | 38 + usr.bin/sccscmds/com/stats_ab.c | 19 + usr.bin/sccscmds/com/xfmterr.c | 10 + usr.bin/sccscmds/com/xnewstats.c | 14 + usr.bin/sccscmds/hdr/defines.h | 212 + usr.bin/sccscmds/hdr/fatal.h | 17 + usr.bin/sccscmds/hdr/had.h | 26 + usr.bin/sccscmds/hdr/macros.h | 28 + usr.bin/sccscmds/sccs.hf | 1008 + usr.bin/sccscmds/util/Makefile | 34 + usr.bin/sccscmds/util/OLD/alloca.s | 13 + usr.bin/sccscmds/util/OLD/sbrk.s | 38 + usr.bin/sccscmds/util/OLD/syswrite.s | 17 + usr.bin/sccscmds/util/any.c | 14 + usr.bin/sccscmds/util/anystr.c | 20 + usr.bin/sccscmds/util/bal.c | 34 + usr.bin/sccscmds/util/cat.c | 21 + usr.bin/sccscmds/util/clean.c | 10 + usr.bin/sccscmds/util/curdir.c | 88 + usr.bin/sccscmds/util/dname.c | 29 + usr.bin/sccscmds/util/fatal.c | 92 + usr.bin/sccscmds/util/giveup.c | 18 + usr.bin/sccscmds/util/imatch.c | 15 + usr.bin/sccscmds/util/lockit.c | 83 + usr.bin/sccscmds/util/logname.c | 23 + usr.bin/sccscmds/util/mksyswrite.sh | 5 + usr.bin/sccscmds/util/patoi.c | 18 + usr.bin/sccscmds/util/patol.c | 21 + usr.bin/sccscmds/util/pexec.c | 1 + usr.bin/sccscmds/util/rename.c | 22 + usr.bin/sccscmds/util/repeat.c | 18 + usr.bin/sccscmds/util/repl.c | 12 + usr.bin/sccscmds/util/satoi.c | 15 + usr.bin/sccscmds/util/setsig.c | 88 + usr.bin/sccscmds/util/sname.c | 29 + usr.bin/sccscmds/util/substr.c | 27 + usr.bin/sccscmds/util/trnslat.c | 21 + usr.bin/sccscmds/util/userdir.c | 36 + usr.bin/sccscmds/util/userexit.c | 10 + usr.bin/sccscmds/util/username.c | 31 + usr.bin/sccscmds/util/verify.c | 18 + usr.bin/sccscmds/util/write.c | 22 + usr.bin/sccscmds/util/xalloc.c | 24 + usr.bin/sccscmds/util/xcreat.c | 32 + usr.bin/sccscmds/util/xlink.c | 27 + usr.bin/sccscmds/util/xmsg.c | 46 + usr.bin/sccscmds/util/xopen.c | 34 + usr.bin/sccscmds/util/xpipe.c | 16 + usr.bin/sccscmds/util/xunlink.c | 13 + usr.bin/sccscmds/util/xxcreat.c | 28 + usr.bin/sccscmds/util/zeropad.c | 15 + usr.bin/tty.c | 2 +- usr.lib/Makefile | 4 +- usr.lib/learn/Makefile | 4 +- usr.lib/libF77/Version | Bin 4731 -> 4731 bytes usr.lib/libF77/Version.c | 2 +- usr.lib/libF77/profiled/Version | Bin 4731 -> 4731 bytes usr.lib/libI77/Version | Bin 1319 -> 1319 bytes usr.lib/libI77/Version.c | 2 +- usr.lib/libI77/profiled/Version | Bin 1319 -> 1319 bytes usr.lib/libU77/Version | Bin 1963 -> 1963 bytes usr.lib/libU77/Version.c | 2 +- usr.lib/libU77/profiled/Version | Bin 1963 -> 1963 bytes usr.lib/libz/Makefile | 97 + usr.lib/libz/Origzlib/ChangeLog | 239 + usr.lib/libz/Origzlib/README | 99 + usr.lib/libz/Origzlib/algorithm.doc | 105 + usr.lib/libz/adler32.c | 50 + usr.lib/libz/compress.c | 59 + usr.lib/libz/compressio.c | 368 + usr.lib/libz/crc32.c | 164 + usr.lib/libz/deflate.c | 1200 + usr.lib/libz/deflate.h | 277 + usr.lib/libz/gzio.c | 525 + usr.lib/libz/infblock.c | 404 + usr.lib/libz/infblock.h | 39 + usr.lib/libz/infcodes.c | 249 + usr.lib/libz/infcodes.h | 29 + usr.lib/libz/inffast.c | 170 + usr.lib/libz/inffast.h | 19 + usr.lib/libz/inflate.c | 339 + usr.lib/libz/inftrees.c | 472 + usr.lib/libz/inftrees.h | 61 + usr.lib/libz/infutil.c | 89 + usr.lib/libz/infutil.h | 101 + usr.lib/libz/trees.c | 1143 + usr.lib/libz/uncompr.c | 60 + usr.lib/libz/zutil.c | 213 + usr.lib/libz/zutil.h | 123 + usr.lib/me/Makefile | 4 +- usr.lib/me/strip.sed | 0 usr.lib/sendmail/cf/KEY | 18 +- usr.lib/sendmail/cf/M4_KEY | 9 + usr.lib/sendmail/cf/README | 397 +- usr.lib/sendmail/cf/cf/Makefile | 66 +- usr.lib/sendmail/cf/cf/README | 36 +- usr.lib/sendmail/cf/cf/cad.mc | 18 +- usr.lib/sendmail/cf/cf/cadgroup.mc | 13 +- usr.lib/sendmail/cf/cf/cc.mc | 15 + usr.lib/sendmail/cf/cf/cchem.mc | 15 + usr.lib/sendmail/cf/cf/cogsci.mc | 17 +- usr.lib/sendmail/cf/cf/ic.mc | 18 + usr.lib/sendmail/cf/cf/okeeffe.mc | 16 +- usr.lib/sendmail/cf/cf/proto.mc | 121 + usr.lib/sendmail/cf/cf/tcpproto.mc | 14 + usr.lib/sendmail/cf/cf/tcpuucpproto.mc | 15 + usr.lib/sendmail/cf/cf/ucbarpa.mc | 17 +- usr.lib/sendmail/cf/cf/ucbtcp.mc | 15 + usr.lib/sendmail/cf/cf/ucbvax.mc | 40 +- usr.lib/sendmail/cf/cf/uucpproto.mc | 14 + usr.lib/sendmail/cf/m4/README | 6 + usr.lib/sendmail/cf/m4/boilerplate.m4 | 27 +- usr.lib/sendmail/cf/m4/fake_domains.m4 | 12 +- usr.lib/sendmail/cf/m4/localm.m4 | 22 +- usr.lib/sendmail/cf/m4/nsclasses.m4 | 25 +- usr.lib/sendmail/cf/m4/nsmacros.m4 | 52 +- usr.lib/sendmail/cf/m4/nstcpldm.m4 | 42 +- usr.lib/sendmail/cf/m4/nstcpm.m4 | 45 +- usr.lib/sendmail/cf/m4/postwriterule.m4 | 35 +- usr.lib/sendmail/cf/m4/prewriterule.m4 | 22 +- usr.lib/sendmail/cf/m4/rule0.m4 | 27 +- usr.lib/sendmail/cf/m4/rule3.m4 | 28 +- usr.lib/sendmail/cf/m4/rule5.m4 | 22 +- usr.lib/sendmail/cf/m4/smtpuucpm.m4 | 22 +- usr.lib/sendmail/cf/m4/suucpm.m4 | 27 +- usr.lib/sendmail/cf/m4/uucpm.m4 | 23 +- usr.lib/sendmail/cf/m4/version.m4 | 25 +- usr.lib/sendmail/cf/sitedep/README | 19 + usr.lib/sendmail/cf/sitedep/nicregistered.m4 | 46 + usr.lib/sendmail/cf/sitedep/smtpuucp.cad.m4 | 11 + .../sendmail/cf/sitedep/smtpuucp.ucbvax.m4 | 35 + usr.lib/sendmail/cf/sitedep/uucp.cad.m4 | 36 + usr.lib/sendmail/cf/sitedep/uucp.cogsci.m4 | 14 + usr.lib/sendmail/cf/sitedep/uucp.ic.m4 | 8 + usr.lib/sendmail/cf/sitedep/uucp.okeeffe.m4 | 12 + usr.lib/sendmail/cf/sitedep/uucp.proto.m4 | 12 + usr.lib/sendmail/cf/sitedep/uucp.ucbarpa.m4 | 12 + usr.lib/sendmail/cf/sitedep/uucp.ucbvax.m4 | 86 + usr.lib/sendmail/doc/intro.me | 2 +- usr.lib/sendmail/doc/op.me | 2 +- usr.lib/sendmail/md/c.vmunix.m4 | 4 +- usr.lib/sendmail/md/config.m4 | 4 +- usr.lib/sendmail/src/Makefile | 9 +- usr.lib/sendmail/src/Version.c | 83 +- usr.lib/sendmail/src/alias.c | 16 +- usr.lib/sendmail/src/conf.h | 13 +- usr.lib/sendmail/src/daemon.c | 17 +- usr.lib/sendmail/src/deliver.c | 28 +- usr.lib/sendmail/src/domain.c | 77 +- usr.lib/sendmail/src/main.c | 4 +- usr.lib/sendmail/src/readcf.c | 6 +- usr.lib/sendmail/src/sendmail.h | 5 +- usr.lib/sendmail/src/version.c | 4 +- 1799 files changed, 348364 insertions(+), 7050 deletions(-) create mode 100755 bin/awk/test/Compare create mode 100644 bin/awk/test/t.0 create mode 100644 bin/awk/test/t.1.x create mode 100644 bin/awk/test/t.2.x create mode 100644 bin/awk/test/t.3 create mode 100644 bin/awk/test/t.3.x create mode 100644 bin/awk/test/t.4 create mode 100644 bin/awk/test/t.4.x create mode 100644 bin/awk/test/t.5.x create mode 100644 bin/awk/test/t.6 create mode 100644 bin/awk/test/t.6.x create mode 100644 bin/awk/test/t.6a create mode 100644 bin/awk/test/t.6b create mode 100644 bin/awk/test/t.8.x create mode 100644 bin/awk/test/t.a create mode 100644 bin/awk/test/t.aeiou create mode 100644 bin/awk/test/t.aeiouy create mode 100644 bin/awk/test/t.arith create mode 100644 bin/awk/test/t.array create mode 100644 bin/awk/test/t.array1 create mode 100644 bin/awk/test/t.array2 create mode 100644 bin/awk/test/t.avg create mode 100644 bin/awk/test/t.b.x create mode 100644 bin/awk/test/t.be create mode 100644 bin/awk/test/t.break create mode 100644 bin/awk/test/t.break1 create mode 100644 bin/awk/test/t.break2 create mode 100644 bin/awk/test/t.break3 create mode 100644 bin/awk/test/t.bug1 create mode 100644 bin/awk/test/t.cat create mode 100644 bin/awk/test/t.cat1 create mode 100644 bin/awk/test/t.cat2 create mode 100644 bin/awk/test/t.cmp create mode 100644 bin/awk/test/t.coerce create mode 100644 bin/awk/test/t.comment create mode 100644 bin/awk/test/t.comment1 create mode 100644 bin/awk/test/t.contin create mode 100644 bin/awk/test/t.count create mode 100644 bin/awk/test/t.cum create mode 100644 bin/awk/test/t.d.x create mode 100644 bin/awk/test/t.e create mode 100644 bin/awk/test/t.else create mode 100644 bin/awk/test/t.exit create mode 100644 bin/awk/test/t.f create mode 100644 bin/awk/test/t.f.x create mode 100644 bin/awk/test/t.f0 create mode 100644 bin/awk/test/t.f1 create mode 100644 bin/awk/test/t.f2 create mode 100644 bin/awk/test/t.f3 create mode 100644 bin/awk/test/t.f4 create mode 100644 bin/awk/test/t.for create mode 100644 bin/awk/test/t.for1 create mode 100644 bin/awk/test/t.for2 create mode 100644 bin/awk/test/t.format4 create mode 100644 bin/awk/test/t.func create mode 100644 bin/awk/test/t.getline create mode 100644 bin/awk/test/t.i.x create mode 100644 bin/awk/test/t.if create mode 100644 bin/awk/test/t.in create mode 100644 bin/awk/test/t.in1 create mode 100644 bin/awk/test/t.in2 create mode 100644 bin/awk/test/t.in3 create mode 100644 bin/awk/test/t.incr create mode 100644 bin/awk/test/t.incr2 create mode 100644 bin/awk/test/t.incr3 create mode 100644 bin/awk/test/t.index create mode 100644 bin/awk/test/t.j.x create mode 100644 bin/awk/test/t.longstr create mode 100644 bin/awk/test/t.makef create mode 100644 bin/awk/test/t.match create mode 100644 bin/awk/test/t.max create mode 100644 bin/awk/test/t.mod create mode 100644 bin/awk/test/t.monotone create mode 100644 bin/awk/test/t.nameval create mode 100644 bin/awk/test/t.next create mode 100644 bin/awk/test/t.not create mode 100644 bin/awk/test/t.null0 create mode 100644 bin/awk/test/t.ofmt create mode 100644 bin/awk/test/t.ofs create mode 100644 bin/awk/test/t.pipe create mode 100644 bin/awk/test/t.pp create mode 100644 bin/awk/test/t.pp1 create mode 100644 bin/awk/test/t.pp2 create mode 100644 bin/awk/test/t.printf create mode 100644 bin/awk/test/t.quote create mode 100644 bin/awk/test/t.re1 create mode 100644 bin/awk/test/t.rec create mode 100644 bin/awk/test/t.redir create mode 100644 bin/awk/test/t.roff create mode 100644 bin/awk/test/t.sep create mode 100644 bin/awk/test/t.seqno create mode 100644 bin/awk/test/t.split create mode 100644 bin/awk/test/t.split2 create mode 100644 bin/awk/test/t.split9 create mode 100644 bin/awk/test/t.split9a create mode 100644 bin/awk/test/t.stately create mode 100644 bin/awk/test/t.strcmp create mode 100644 bin/awk/test/t.strcmp1 create mode 100644 bin/awk/test/t.substr create mode 100644 bin/awk/test/t.time create mode 100644 bin/awk/test/t.vf create mode 100644 bin/awk/test/t.vf1 create mode 100644 bin/awk/test/t.vf3 create mode 100644 bin/awk/test/t.x create mode 100644 bin/awk/test/test.data create mode 100755 bin/awk/test/testall create mode 100644 doc/index/README create mode 100644 doc/index/Title create mode 100644 doc/index/index.macs create mode 100644 doc/index/index.merged create mode 100644 doc/index/index.version6.reduced.troffinput create mode 100644 doc/index/misc/fixpagenums.sed create mode 100644 doc/index/misc/jove.macros create mode 100644 doc/index/misc/macs/index.ms.footers create mode 100644 doc/index/misc/macs/index.ms.headers.bad create mode 100644 doc/index/misc/macs/index.ms.leftfooter create mode 100644 doc/index/misc/macs/index.ms.ps10.vs12.1c create mode 100644 doc/index/misc/macs/index.ms.ps10.vs12.2c create mode 100644 doc/index/misc/macs/index.ms.ps10.vs12.2c.wide create mode 100644 doc/index/misc/macs/index.ms.ps8.vs9.2c create mode 100644 doc/index/misc/troff.mail create mode 100644 doc/index/print.sh create mode 100644 doc/index/src/Makefile create mode 100644 doc/index/src/duphead.y create mode 100644 doc/index/src/index.l create mode 100644 doc/index/src/pagesizes.h create mode 100644 doc/index/src/reduce.h create mode 100644 doc/index/src/reduce.y create mode 100755 doc/index/src/splitindex.sh create mode 100644 doc/index/src/unduphead.y create mode 100644 doc/misc/berknet/coverpage.n create mode 100644 doc/misc/berknet/distrib create mode 100644 doc/misc/berknet/makefile create mode 100644 doc/misc/berknet/makefile.doc create mode 100644 doc/misc/berknet/masters.n create mode 100644 doc/misc/berknet/netintro.n create mode 100644 doc/misc/berknet/refcard.n create mode 100644 doc/misc/berknet/systemmanual.n create mode 100644 doc/misc/comments.t create mode 100644 doc/misc/ctour/cdoc0 create mode 100644 doc/misc/ctour/cdoc1 create mode 100644 doc/misc/ctour/cdoc2 create mode 100644 doc/misc/ctour/cdoc3 create mode 100644 doc/misc/ctour/cdoc4 create mode 100644 doc/misc/ctour/ios.r create mode 100644 doc/misc/ctour/newstuff create mode 100644 doc/misc/diskperf/Makefile create mode 100644 doc/misc/diskperf/abs.ms create mode 100644 doc/misc/diskperf/appendix.ms create mode 100644 doc/misc/diskperf/conclusions.ms create mode 100644 doc/misc/diskperf/equip.ms create mode 100644 doc/misc/diskperf/methodology.ms create mode 100644 doc/misc/diskperf/motivation.ms create mode 100644 doc/misc/diskperf/results.ms create mode 100644 doc/misc/diskperf/tests.ms create mode 100644 doc/misc/gprof/Makefile create mode 100644 doc/misc/gprof/abstract.me create mode 100644 doc/misc/gprof/gathering.me create mode 100644 doc/misc/gprof/header.me create mode 100644 doc/misc/gprof/intro.me create mode 100644 doc/misc/gprof/postp.me create mode 100644 doc/misc/gprof/postp1.pic create mode 100644 doc/misc/gprof/postp2.pic create mode 100644 doc/misc/gprof/postp3.pic create mode 100644 doc/misc/gprof/pres1.pic create mode 100644 doc/misc/gprof/pres2.pic create mode 100644 doc/misc/gprof/present.me create mode 100644 doc/misc/gprof/profiling.me create mode 100644 doc/misc/gprof/refs.me create mode 100644 doc/misc/kchanges.4.1 create mode 100644 doc/misc/kchanges.4.2/0.t create mode 100644 doc/misc/kchanges.4.2/1.t create mode 100644 doc/misc/kchanges.4.2/2.t create mode 100644 doc/misc/kchanges.4.2/3.0.t create mode 100644 doc/misc/kchanges.4.2/3.1.t create mode 100644 doc/misc/kchanges.4.2/3.2.t create mode 100644 doc/misc/kchanges.4.2/3.3.t create mode 100644 doc/misc/kchanges.4.2/3.4.t create mode 100644 doc/misc/kchanges.4.2/3.5.t create mode 100644 doc/misc/kchanges.4.2/3.6.t create mode 100644 doc/misc/kchanges.4.2/4.t create mode 100644 doc/misc/kernmalloc/Makefile create mode 100644 doc/misc/kernmalloc/alloc.fig create mode 100644 doc/misc/kernmalloc/appendix.t create mode 100644 doc/misc/kernmalloc/kernmalloc.t create mode 100644 doc/misc/kernmalloc/usage.tbl create mode 100644 doc/misc/kerntune/0.t create mode 100644 doc/misc/kerntune/1.t create mode 100644 doc/misc/kerntune/2.t create mode 100644 doc/misc/kerntune/3.t create mode 100644 doc/misc/kerntune/4.t create mode 100644 doc/misc/kerntune/Makefile create mode 100644 doc/misc/kerntune/fig2.pic create mode 100644 doc/misc/px/fig1.1.n create mode 100644 doc/misc/px/fig1.2.n create mode 100644 doc/misc/px/fig1.3.n create mode 100644 doc/misc/px/fig2.3.n create mode 100644 doc/misc/px/fig2.3.raw create mode 100644 doc/misc/px/fig2.4.n create mode 100644 doc/misc/px/fig3.2.n create mode 100644 doc/misc/px/fig3.3.n create mode 100644 doc/misc/px/makefile create mode 100644 doc/misc/px/pxin0.n create mode 100644 doc/misc/px/pxin1.n create mode 100644 doc/misc/px/pxin2.n create mode 100644 doc/misc/px/pxin3.n create mode 100644 doc/misc/px/pxin4.n create mode 100644 doc/misc/px/table2.1.n create mode 100644 doc/misc/px/table2.2.n create mode 100644 doc/misc/px/table2.3.n create mode 100644 doc/misc/px/table3.1.n create mode 100644 doc/misc/px/tmac.p create mode 100644 doc/misc/regen create mode 100644 doc/misc/sdb/app1 create mode 100644 doc/misc/sdb/sdbrp.n create mode 100644 doc/misc/sdb/sdbsymtab.n create mode 100644 doc/misc/sysperf/0.t create mode 100644 doc/misc/sysperf/1.t create mode 100644 doc/misc/sysperf/2.t create mode 100644 doc/misc/sysperf/3.t create mode 100644 doc/misc/sysperf/4.t create mode 100644 doc/misc/sysperf/5.t create mode 100644 doc/misc/sysperf/6.t create mode 100644 doc/misc/sysperf/7.t create mode 100644 doc/misc/sysperf/Makefile create mode 100644 doc/misc/sysperf/a1.t create mode 100644 doc/misc/sysperf/a2.t create mode 100644 doc/misc/uchanges.4.1 create mode 100644 doc/misc/uchanges.4.2/0.t create mode 100644 doc/misc/uchanges.4.2/1.t create mode 100644 doc/misc/uchanges.4.2/2.t create mode 100644 doc/misc/uchanges.4.2/3.t create mode 100644 doc/misc/uchanges.4.2/4.t create mode 100644 doc/misc/uchanges.4.2/5.t create mode 100644 doc/misc/uchanges.4.2/6.t create mode 100644 doc/misc/uchanges.4.2/7.t create mode 100644 doc/misc/uchanges.4.2/8.t create mode 100644 doc/misc/uchanges.4.2/9.t create mode 100644 doc/misc/ukchanges.4.0 create mode 100644 doc/ps1/00.contents create mode 100644 doc/ps1/01.Clang/Clang.ms create mode 100644 doc/ps1/01.Clang/Clib.ms create mode 100644 doc/ps1/01.Clang/Makefile create mode 100644 doc/ps1/01.Clang/cmac1 create mode 100644 doc/ps1/02.f77/Makefile create mode 100644 doc/ps1/02.f77/f77.ms create mode 100644 doc/ps1/03.f77io/Makefile create mode 100644 doc/ps1/03.f77io/f77IO.ms create mode 100644 doc/ps1/04.pascal/Makefile create mode 100644 doc/ps1/04.pascal/bigger.p create mode 100644 doc/ps1/04.pascal/bigger4.p create mode 100644 doc/ps1/04.pascal/bigger5.p create mode 100644 doc/ps1/04.pascal/bigger7.p create mode 100644 doc/ps1/04.pascal/clash.p create mode 100644 doc/ps1/04.pascal/comments.p create mode 100644 doc/ps1/04.pascal/copydata.p create mode 100644 doc/ps1/04.pascal/csfix.c create mode 100644 doc/ps1/04.pascal/data create mode 100644 doc/ps1/04.pascal/digits.p create mode 100644 doc/ps1/04.pascal/expr.p create mode 100644 doc/ps1/04.pascal/first.p create mode 100644 doc/ps1/04.pascal/fixcomments create mode 100644 doc/ps1/04.pascal/fixkatscript create mode 100644 doc/ps1/04.pascal/kat.p create mode 100644 doc/ps1/04.pascal/kat2.p create mode 100644 doc/ps1/04.pascal/kat3.p create mode 100644 doc/ps1/04.pascal/katin create mode 100644 doc/ps1/04.pascal/mism.p create mode 100644 doc/ps1/04.pascal/primes.p create mode 100644 doc/ps1/04.pascal/primes2.p create mode 100644 doc/ps1/04.pascal/puman0.n create mode 100644 doc/ps1/04.pascal/puman1.n create mode 100644 doc/ps1/04.pascal/puman2.n create mode 100644 doc/ps1/04.pascal/puman3.n create mode 100644 doc/ps1/04.pascal/puman4.n create mode 100644 doc/ps1/04.pascal/puman5.n create mode 100644 doc/ps1/04.pascal/pumanA.n create mode 100644 doc/ps1/04.pascal/sin1.p create mode 100644 doc/ps1/04.pascal/sin2.p create mode 100644 doc/ps1/04.pascal/synerr.p create mode 100644 doc/ps1/04.pascal/synerr2.p create mode 100644 doc/ps1/04.pascal/tmac.p create mode 100644 doc/ps1/04.pascal/typequ.p create mode 100644 doc/ps1/05.as/Makefile create mode 100644 doc/ps1/05.as/as.man.1 create mode 100644 doc/ps1/05.as/asdocs0.me create mode 100644 doc/ps1/05.as/asdocs1.me create mode 100644 doc/ps1/05.as/asdocs2.me create mode 100644 doc/ps1/05.as/asdocs3.me create mode 100644 doc/ps1/05.as/asdocs4.me create mode 100644 doc/ps1/06.sysman/0.t create mode 100644 doc/ps1/06.sysman/1.0.t create mode 100644 doc/ps1/06.sysman/1.1.t create mode 100644 doc/ps1/06.sysman/1.2.t create mode 100644 doc/ps1/06.sysman/1.3.t create mode 100644 doc/ps1/06.sysman/1.4.t create mode 100644 doc/ps1/06.sysman/1.5.t create mode 100644 doc/ps1/06.sysman/1.6.t create mode 100644 doc/ps1/06.sysman/1.7.t create mode 100644 doc/ps1/06.sysman/2.0.t create mode 100644 doc/ps1/06.sysman/2.1.t create mode 100644 doc/ps1/06.sysman/2.2.t create mode 100644 doc/ps1/06.sysman/2.3.t create mode 100644 doc/ps1/06.sysman/2.4.t create mode 100644 doc/ps1/06.sysman/2.5.t create mode 100644 doc/ps1/06.sysman/Makefile create mode 100644 doc/ps1/06.sysman/a.t create mode 100644 doc/ps1/06.sysman/spell.ok create mode 100644 doc/ps1/07.ipctut/Makefile create mode 100644 doc/ps1/07.ipctut/accept.grn create mode 100644 doc/ps1/07.ipctut/dgramread.c create mode 100644 doc/ps1/07.ipctut/dgramsend.c create mode 100644 doc/ps1/07.ipctut/gremlins create mode 100644 doc/ps1/07.ipctut/pipe.c create mode 100644 doc/ps1/07.ipctut/pipe.grn create mode 100644 doc/ps1/07.ipctut/socketpair.c create mode 100644 doc/ps1/07.ipctut/socketpair.grn create mode 100644 doc/ps1/07.ipctut/strchkread.c create mode 100644 doc/ps1/07.ipctut/streamread.c create mode 100644 doc/ps1/07.ipctut/streamwrite.c create mode 100644 doc/ps1/07.ipctut/tutor.me create mode 100644 doc/ps1/07.ipctut/udgramread.c create mode 100644 doc/ps1/07.ipctut/udgramsend.c create mode 100644 doc/ps1/07.ipctut/ustreamread.c create mode 100644 doc/ps1/07.ipctut/ustreamwrite.c create mode 100644 doc/ps1/08.ipc/0.t create mode 100644 doc/ps1/08.ipc/1.t create mode 100644 doc/ps1/08.ipc/2.t create mode 100644 doc/ps1/08.ipc/3.t create mode 100644 doc/ps1/08.ipc/4.t create mode 100644 doc/ps1/08.ipc/5.t create mode 100644 doc/ps1/08.ipc/Makefile create mode 100644 doc/ps1/08.ipc/spell.ok create mode 100644 doc/ps1/09.lint/Makefile create mode 100644 doc/ps1/09.lint/lint.ms create mode 100644 doc/ps1/10.adb/Makefile create mode 100644 doc/ps1/10.adb/adb.ms create mode 100644 doc/ps1/11.dbx/Makefile create mode 100644 doc/ps1/11.dbx/dbx.ms create mode 100644 doc/ps1/11.dbx/spell.ok create mode 100644 doc/ps1/12.make/Makefile create mode 100644 doc/ps1/12.make/make.ms create mode 100644 doc/ps1/13.rcs/Makefile create mode 100644 doc/ps1/13.rcs/man/Makefile create mode 100644 doc/ps1/13.rcs/man/ci.1 create mode 100644 doc/ps1/13.rcs/man/co.1 create mode 100644 doc/ps1/13.rcs/man/ident.1 create mode 100644 doc/ps1/13.rcs/man/merge.1 create mode 100644 doc/ps1/13.rcs/man/rcs.1 create mode 100644 doc/ps1/13.rcs/man/rcsdiff.1 create mode 100644 doc/ps1/13.rcs/man/rcsfile.5 create mode 100644 doc/ps1/13.rcs/man/rcsintro.1 create mode 100644 doc/ps1/13.rcs/man/rcsmerge.1 create mode 100644 doc/ps1/13.rcs/man/rlog.1 create mode 100644 doc/ps1/13.rcs/man/sccstorcs.1 create mode 100644 doc/ps1/13.rcs/rcs.man create mode 100644 doc/ps1/13.rcs/rcs.ms create mode 100644 doc/ps1/14.sccs/Makefile create mode 100644 doc/ps1/14.sccs/sccs.me create mode 100644 doc/ps1/14.sccs/spell.ok create mode 100644 doc/ps1/15.yacc/Makefile create mode 100644 doc/ps1/15.yacc/ss.. create mode 100644 doc/ps1/15.yacc/ss0 create mode 100644 doc/ps1/15.yacc/ss1 create mode 100644 doc/ps1/15.yacc/ss2 create mode 100644 doc/ps1/15.yacc/ss3 create mode 100644 doc/ps1/15.yacc/ss4 create mode 100644 doc/ps1/15.yacc/ss5 create mode 100644 doc/ps1/15.yacc/ss6 create mode 100644 doc/ps1/15.yacc/ss7 create mode 100644 doc/ps1/15.yacc/ss8 create mode 100644 doc/ps1/15.yacc/ss9 create mode 100644 doc/ps1/15.yacc/ssA create mode 100644 doc/ps1/15.yacc/ssB create mode 100644 doc/ps1/15.yacc/ssa create mode 100644 doc/ps1/15.yacc/ssb create mode 100644 doc/ps1/15.yacc/ssc create mode 100644 doc/ps1/15.yacc/ssd create mode 100644 doc/ps1/16.lex/Makefile create mode 100644 doc/ps1/16.lex/lex.ms create mode 100644 doc/ps1/17.m4/Makefile create mode 100644 doc/ps1/17.m4/m4.ms create mode 100644 doc/ps1/18.curses/Makefile create mode 100644 doc/ps1/18.curses/Master create mode 100644 doc/ps1/18.curses/appen.A create mode 100644 doc/ps1/18.curses/appen.B create mode 100644 doc/ps1/18.curses/appen.C create mode 100644 doc/ps1/18.curses/c_macros create mode 100644 doc/ps1/18.curses/doc.I create mode 100644 doc/ps1/18.curses/doc.II create mode 100644 doc/ps1/18.curses/doc.III create mode 100644 doc/ps1/18.curses/doc.IV create mode 100644 doc/ps1/18.curses/intro.0 create mode 100644 doc/ps1/18.curses/intro.1 create mode 100644 doc/ps1/18.curses/intro.2 create mode 100644 doc/ps1/18.curses/intro.3 create mode 100644 doc/ps1/18.curses/intro.4 create mode 100644 doc/ps1/18.curses/intro.5 create mode 100644 doc/ps1/18.curses/life.c create mode 100644 doc/ps1/18.curses/macros create mode 100644 doc/ps1/18.curses/twinkle1.c create mode 100644 doc/ps1/18.curses/twinkle2.c create mode 100644 doc/ps1/18.curses/win_st.c create mode 100644 doc/ps1/Title create mode 100644 doc/ps2/00.contents create mode 100644 doc/ps2/01.cacm/Makefile create mode 100644 doc/ps2/01.cacm/p.mac create mode 100644 doc/ps2/01.cacm/p1 create mode 100644 doc/ps2/01.cacm/p2 create mode 100644 doc/ps2/01.cacm/p3 create mode 100644 doc/ps2/01.cacm/p4 create mode 100644 doc/ps2/01.cacm/p5 create mode 100644 doc/ps2/01.cacm/p6 create mode 100644 doc/ps2/02.summary/Makefile create mode 100644 doc/ps2/02.summary/vhel.mac create mode 100644 doc/ps2/02.summary/vhel0 create mode 100644 doc/ps2/02.summary/vhel1 create mode 100644 doc/ps2/02.summary/vhel2 create mode 100644 doc/ps2/02.summary/vhel3 create mode 100644 doc/ps2/02.summary/vhel4 create mode 100644 doc/ps2/02.summary/vhel5 create mode 100644 doc/ps2/02.summary/vhel6 create mode 100644 doc/ps2/03.uprog/Makefile create mode 100644 doc/ps2/03.uprog/p.mac create mode 100644 doc/ps2/03.uprog/p0 create mode 100644 doc/ps2/03.uprog/p1 create mode 100644 doc/ps2/03.uprog/p2 create mode 100644 doc/ps2/03.uprog/p3 create mode 100644 doc/ps2/03.uprog/p4 create mode 100644 doc/ps2/03.uprog/p5 create mode 100644 doc/ps2/03.uprog/p6 create mode 100644 doc/ps2/03.uprog/p8 create mode 100644 doc/ps2/03.uprog/p9 create mode 100644 doc/ps2/04.implement/Makefile create mode 100644 doc/ps2/04.implement/fig1.pic create mode 100644 doc/ps2/04.implement/fig2.pic create mode 100644 doc/ps2/04.implement/implement create mode 100644 doc/ps2/05.iosys/Makefile create mode 100644 doc/ps2/05.iosys/iosys create mode 100644 doc/ps2/06.efl/Makefile create mode 100644 doc/ps2/06.efl/efl create mode 100644 doc/ps2/07.fp/Makefile create mode 100644 doc/ps2/07.fp/manApp.rno create mode 100644 doc/ps2/07.fp/manCh0.rno create mode 100644 doc/ps2/07.fp/manCh1.rno create mode 100644 doc/ps2/07.fp/manCh2.rno create mode 100644 doc/ps2/07.fp/manCh3.rno create mode 100644 doc/ps2/07.fp/manCh4.rno create mode 100644 doc/ps2/07.fp/manCh5.rno create mode 100644 doc/ps2/07.fp/manCh6.rno create mode 100644 doc/ps2/07.fp/manCh7.rno create mode 100644 doc/ps2/07.fp/manDefs.rno create mode 100644 doc/ps2/07.fp/refs.rno create mode 100644 doc/ps2/08.ratfor/Makefile create mode 100644 doc/ps2/08.ratfor/m.mac create mode 100644 doc/ps2/08.ratfor/m0 create mode 100644 doc/ps2/08.ratfor/m1 create mode 100644 doc/ps2/08.ratfor/m2 create mode 100644 doc/ps2/08.ratfor/m3 create mode 100644 doc/ps2/08.ratfor/m4 create mode 100644 doc/ps2/08.ratfor/m5 create mode 100644 doc/ps2/08.ratfor/m9 create mode 100644 doc/ps2/08.ratfor/m99 create mode 100644 doc/ps2/Title create mode 100644 doc/run/Ind.ia create mode 100644 doc/run/Ind.ib create mode 100644 doc/run/Ind.ic create mode 100644 doc/run/REFS create mode 100644 doc/run/tmac.sU create mode 100644 doc/smm/00.contents create mode 100644 doc/smm/01.setup/Makefile create mode 100644 doc/smm/01.setup/common/3.t create mode 100644 doc/smm/01.setup/common/4.t create mode 100644 doc/smm/01.setup/common/5.t create mode 100644 doc/smm/01.setup/common/6.t create mode 100644 doc/smm/01.setup/tahoe/0.t create mode 100644 doc/smm/01.setup/tahoe/1.t create mode 100644 doc/smm/01.setup/tahoe/2.t create mode 100644 doc/smm/01.setup/tahoe/Makefile create mode 100644 doc/smm/01.setup/tahoe/a.t create mode 100644 doc/smm/01.setup/tahoe/b.t create mode 100644 doc/smm/01.setup/tahoe/tip.record create mode 100644 doc/smm/01.setup/vax/0.t create mode 100644 doc/smm/01.setup/vax/1.t create mode 100644 doc/smm/01.setup/vax/2.t create mode 100644 doc/smm/01.setup/vax/Makefile create mode 100644 doc/smm/01.setup/vax/a.t create mode 100644 doc/smm/01.setup/vax/b.t create mode 100644 doc/smm/01.setup/vax/c.t create mode 100644 doc/smm/01.setup/vax/spell.ok create mode 100644 doc/smm/01.setup/vax/vaxhints.t create mode 100644 doc/smm/02.config/0.t create mode 100644 doc/smm/02.config/1.t create mode 100644 doc/smm/02.config/2.t create mode 100644 doc/smm/02.config/3.t create mode 100644 doc/smm/02.config/4.t create mode 100644 doc/smm/02.config/5.t create mode 100644 doc/smm/02.config/6.t create mode 100644 doc/smm/02.config/Makefile create mode 100644 doc/smm/02.config/a.t create mode 100644 doc/smm/02.config/b.t create mode 100644 doc/smm/02.config/c.t create mode 100644 doc/smm/02.config/d.t create mode 100644 doc/smm/02.config/e.t create mode 100644 doc/smm/02.config/spell.ok create mode 100644 doc/smm/03.kdebug/Makefile create mode 100644 doc/smm/03.kdebug/kdebug.ms create mode 100644 doc/smm/04.quotas/Makefile create mode 100644 doc/smm/04.quotas/quotas.ms create mode 100644 doc/smm/05.fsck/0.t create mode 100644 doc/smm/05.fsck/1.t create mode 100644 doc/smm/05.fsck/2.t create mode 100644 doc/smm/05.fsck/3.t create mode 100644 doc/smm/05.fsck/4.t create mode 100644 doc/smm/05.fsck/Makefile create mode 100644 doc/smm/06.lpd/0.t create mode 100644 doc/smm/06.lpd/1.t create mode 100644 doc/smm/06.lpd/2.t create mode 100644 doc/smm/06.lpd/3.t create mode 100644 doc/smm/06.lpd/4.t create mode 100644 doc/smm/06.lpd/5.t create mode 100644 doc/smm/06.lpd/6.t create mode 100644 doc/smm/06.lpd/7.t create mode 100644 doc/smm/06.lpd/Makefile create mode 100644 doc/smm/06.lpd/spell.ok create mode 100644 doc/smm/07.sendmailop/Makefile create mode 100644 doc/smm/07.sendmailop/op.me create mode 100644 doc/smm/07.sendmailop/spell.ok create mode 100644 doc/smm/08.timedop/Makefile create mode 100644 doc/smm/08.timedop/timed.ms create mode 100644 doc/smm/09.uucpimpl/Makefile create mode 100644 doc/smm/09.uucpimpl/implement.ms create mode 100644 doc/smm/09.uucpimpl/spell.ok create mode 100644 doc/smm/10.newsop/Makefile create mode 100644 doc/smm/10.newsop/install.mn create mode 100644 doc/smm/10.newsop/standard.mn create mode 100644 doc/smm/10.newsop/tmac.n create mode 100644 doc/smm/11.named/00macs.me create mode 100644 doc/smm/11.named/00title.me create mode 100644 doc/smm/11.named/Makefile create mode 100644 doc/smm/11.named/build.me create mode 100644 doc/smm/11.named/files.me create mode 100644 doc/smm/11.named/intro.me create mode 100644 doc/smm/11.named/manage.me create mode 100644 doc/smm/11.named/named.boot.cache create mode 100644 doc/smm/11.named/named.boot.primary create mode 100644 doc/smm/11.named/named.boot.secondary create mode 100644 doc/smm/11.named/named.ca create mode 100644 doc/smm/11.named/named.local create mode 100644 doc/smm/11.named/resolv.conf create mode 100644 doc/smm/11.named/setup.me create mode 100644 doc/smm/11.named/spell.ok create mode 100644 doc/smm/11.named/types.me create mode 100644 doc/smm/11.named/ucbhosts create mode 100644 doc/smm/11.named/ucbhosts.rev create mode 100644 doc/smm/12.uchanges/0.t create mode 100644 doc/smm/12.uchanges/1.t create mode 100644 doc/smm/12.uchanges/2.t create mode 100644 doc/smm/12.uchanges/3.t create mode 100644 doc/smm/12.uchanges/4.t create mode 100644 doc/smm/12.uchanges/5.t create mode 100644 doc/smm/12.uchanges/6.t create mode 100644 doc/smm/12.uchanges/7.t create mode 100644 doc/smm/12.uchanges/8.t create mode 100644 doc/smm/12.uchanges/Makefile create mode 100644 doc/smm/12.uchanges/a.t create mode 100644 doc/smm/12.uchanges/spell.ok create mode 100644 doc/smm/13.kchanges/Makefile create mode 100644 doc/smm/13.kchanges/gen.t create mode 100644 doc/smm/13.kchanges/h.t create mode 100644 doc/smm/13.kchanges/intro.t create mode 100644 doc/smm/13.kchanges/net.t create mode 100644 doc/smm/13.kchanges/netinet.t create mode 100644 doc/smm/13.kchanges/netns.t create mode 100644 doc/smm/13.kchanges/spell.ok create mode 100644 doc/smm/13.kchanges/stand.t create mode 100644 doc/smm/13.kchanges/sys.kern.t create mode 100644 doc/smm/13.kchanges/sys.t create mode 100644 doc/smm/13.kchanges/sys.tty.t create mode 100644 doc/smm/13.kchanges/sys.ufs.t create mode 100644 doc/smm/13.kchanges/sys.uipc.t create mode 100644 doc/smm/13.kchanges/sys.vm.t create mode 100644 doc/smm/13.kchanges/vax.t create mode 100644 doc/smm/13.kchanges/vaxif.t create mode 100644 doc/smm/13.kchanges/vaxmba.t create mode 100644 doc/smm/13.kchanges/vaxuba.t create mode 100644 doc/smm/14.fastfs/0.t create mode 100644 doc/smm/14.fastfs/1.t create mode 100644 doc/smm/14.fastfs/2.t create mode 100644 doc/smm/14.fastfs/3.t create mode 100644 doc/smm/14.fastfs/4.t create mode 100644 doc/smm/14.fastfs/5.t create mode 100644 doc/smm/14.fastfs/6.t create mode 100644 doc/smm/14.fastfs/Makefile create mode 100644 doc/smm/15.net/0.t create mode 100644 doc/smm/15.net/1.t create mode 100644 doc/smm/15.net/2.t create mode 100644 doc/smm/15.net/3.t create mode 100644 doc/smm/15.net/4.t create mode 100644 doc/smm/15.net/5.t create mode 100644 doc/smm/15.net/6.t create mode 100644 doc/smm/15.net/7.t create mode 100644 doc/smm/15.net/8.t create mode 100644 doc/smm/15.net/9.t create mode 100644 doc/smm/15.net/Makefile create mode 100644 doc/smm/15.net/a.t create mode 100644 doc/smm/15.net/b.t create mode 100644 doc/smm/15.net/c.t create mode 100644 doc/smm/15.net/d.t create mode 100644 doc/smm/15.net/e.t create mode 100644 doc/smm/15.net/f.t create mode 100644 doc/smm/15.net/spell.ok create mode 100644 doc/smm/16.sendmail/Makefile create mode 100644 doc/smm/16.sendmail/intro.me create mode 100644 doc/smm/17.security/Makefile create mode 100644 doc/smm/17.security/security.ms create mode 100644 doc/smm/18.password/Makefile create mode 100644 doc/smm/18.password/password.ms create mode 100644 doc/smm/19.porttour/Makefile create mode 100644 doc/smm/19.porttour/porttour1.ms create mode 100644 doc/smm/19.porttour/porttour2.ms create mode 100644 doc/smm/20.termdesc/Makefile create mode 100644 doc/smm/20.termdesc/termdesc.me create mode 100644 doc/smm/21.uucpnet/Makefile create mode 100644 doc/smm/21.uucpnet/network.ms create mode 100644 doc/smm/22.timed/Makefile create mode 100644 doc/smm/22.timed/date create mode 100644 doc/smm/22.timed/loop create mode 100644 doc/smm/22.timed/spell.ok create mode 100644 doc/smm/22.timed/time create mode 100644 doc/smm/22.timed/timed.ms create mode 100644 doc/smm/22.timed/unused create mode 100644 doc/smm/Title create mode 100644 doc/usd/00.contents create mode 100644 doc/usd/01.begin/u.mac create mode 100644 doc/usd/01.begin/u0 create mode 100644 doc/usd/01.begin/u1 create mode 100644 doc/usd/01.begin/u2 create mode 100644 doc/usd/01.begin/u3 create mode 100644 doc/usd/01.begin/u4 create mode 100644 doc/usd/01.begin/u5 create mode 100644 doc/usd/02.learn/Makefile create mode 100644 doc/usd/02.learn/Refs create mode 100644 doc/usd/02.learn/Refs.ig create mode 100644 doc/usd/02.learn/p0 create mode 100644 doc/usd/02.learn/p1 create mode 100644 doc/usd/02.learn/p2 create mode 100644 doc/usd/02.learn/p3 create mode 100644 doc/usd/02.learn/p4 create mode 100644 doc/usd/02.learn/p5 create mode 100644 doc/usd/02.learn/p6 create mode 100644 doc/usd/02.learn/p7 create mode 100644 doc/usd/03.shell/t.mac create mode 100644 doc/usd/03.shell/t1 create mode 100644 doc/usd/03.shell/t2 create mode 100644 doc/usd/03.shell/t3 create mode 100644 doc/usd/03.shell/t4 create mode 100644 doc/usd/04.csh/csh.1 create mode 100644 doc/usd/04.csh/csh.2 create mode 100644 doc/usd/04.csh/csh.3 create mode 100644 doc/usd/04.csh/csh.4 create mode 100644 doc/usd/04.csh/csh.a create mode 100644 doc/usd/04.csh/csh.g create mode 100644 doc/usd/04.csh/tabs create mode 100644 doc/usd/05.dc/dc create mode 100644 doc/usd/06.bc/bc create mode 100644 doc/usd/07.Mail/Makefile create mode 100644 doc/usd/07.Mail/mail0.nr create mode 100644 doc/usd/07.Mail/mail1.nr create mode 100644 doc/usd/07.Mail/mail2.nr create mode 100644 doc/usd/07.Mail/mail3.nr create mode 100644 doc/usd/07.Mail/mail4.nr create mode 100644 doc/usd/07.Mail/mail5.nr create mode 100644 doc/usd/07.Mail/mail6.nr create mode 100644 doc/usd/07.Mail/mail7.nr create mode 100644 doc/usd/07.Mail/mail8.nr create mode 100644 doc/usd/07.Mail/mail9.nr create mode 100644 doc/usd/07.Mail/maila.nr create mode 100644 doc/usd/08.mh/ADMIN.me create mode 100644 doc/usd/08.mh/MH.me create mode 100644 doc/usd/08.mh/Makefile create mode 100644 doc/usd/08.mh/ali.me create mode 100644 doc/usd/08.mh/anno.me create mode 100644 doc/usd/08.mh/ap.me create mode 100644 doc/usd/08.mh/bbaka.me create mode 100644 doc/usd/08.mh/bbc.me create mode 100644 doc/usd/08.mh/bbexp.me create mode 100644 doc/usd/08.mh/bbl.me create mode 100644 doc/usd/08.mh/bbleader.me create mode 100644 doc/usd/08.mh/bboards.me create mode 100644 doc/usd/08.mh/bboards5.me create mode 100644 doc/usd/08.mh/bboards8.me create mode 100644 doc/usd/08.mh/bbtar.me create mode 100644 doc/usd/08.mh/burst.me create mode 100644 doc/usd/08.mh/comp.me create mode 100644 doc/usd/08.mh/conflict.me create mode 100644 doc/usd/08.mh/dist.me create mode 100644 doc/usd/08.mh/dp.me create mode 100644 doc/usd/08.mh/folder.me create mode 100644 doc/usd/08.mh/forw.me create mode 100644 doc/usd/08.mh/inc.me create mode 100644 doc/usd/08.mh/install-mh.me create mode 100644 doc/usd/08.mh/mark.me create mode 100644 doc/usd/08.mh/mf.me create mode 100644 doc/usd/08.mh/mh-alias.me create mode 100644 doc/usd/08.mh/mh-chart.me create mode 100644 doc/usd/08.mh/mh-format.me create mode 100644 doc/usd/08.mh/mh-hack.me create mode 100644 doc/usd/08.mh/mh-mail.me create mode 100644 doc/usd/08.mh/mh-mts.me create mode 100644 doc/usd/08.mh/mh-profile.me create mode 100644 doc/usd/08.mh/mh-tailor.me create mode 100644 doc/usd/08.mh/mh.me create mode 100644 doc/usd/08.mh/mhl.me create mode 100644 doc/usd/08.mh/mhmail.me create mode 100644 doc/usd/08.mh/mhook.me create mode 100644 doc/usd/08.mh/mhpath.me create mode 100644 doc/usd/08.mh/msgchk.me create mode 100644 doc/usd/08.mh/msh.me create mode 100644 doc/usd/08.mh/news.me create mode 100644 doc/usd/08.mh/next.me create mode 100644 doc/usd/08.mh/packf.me create mode 100644 doc/usd/08.mh/pick.me create mode 100644 doc/usd/08.mh/pop5.me create mode 100644 doc/usd/08.mh/pop8.me create mode 100644 doc/usd/08.mh/popaka.me create mode 100644 doc/usd/08.mh/popd.me create mode 100644 doc/usd/08.mh/popwrd.me create mode 100644 doc/usd/08.mh/post.me create mode 100644 doc/usd/08.mh/prev.me create mode 100644 doc/usd/08.mh/prompter.me create mode 100644 doc/usd/08.mh/rcvstore.me create mode 100644 doc/usd/08.mh/refile.me create mode 100644 doc/usd/08.mh/repl.me create mode 100644 doc/usd/08.mh/rmail.me create mode 100644 doc/usd/08.mh/rmf.me create mode 100644 doc/usd/08.mh/rmm.me create mode 100644 doc/usd/08.mh/scan.me create mode 100644 doc/usd/08.mh/send.me create mode 100644 doc/usd/08.mh/show.me create mode 100644 doc/usd/08.mh/sortm.me create mode 100644 doc/usd/08.mh/tmac.h create mode 100644 doc/usd/08.mh/tmac.me create mode 100644 doc/usd/08.mh/version.rf create mode 100644 doc/usd/08.mh/vmh.me create mode 100644 doc/usd/08.mh/whatnow.me create mode 100644 doc/usd/08.mh/whom.me create mode 100644 doc/usd/09.newsread/Makefile create mode 100644 doc/usd/09.newsread/copyright.mn create mode 100644 doc/usd/09.newsread/howto.mn create mode 100644 doc/usd/09.newsread/tmac.n create mode 100644 doc/usd/10.etiq/Makefile create mode 100644 doc/usd/10.etiq/manner.mn create mode 100644 doc/usd/10.etiq/tmac.n create mode 100644 doc/usd/11.notes/0.long create mode 100644 doc/usd/11.notes/0.short create mode 100644 doc/usd/11.notes/1 create mode 100644 doc/usd/11.notes/2.1 create mode 100644 doc/usd/11.notes/2.2 create mode 100644 doc/usd/11.notes/3.1 create mode 100644 doc/usd/11.notes/3.2 create mode 100644 doc/usd/11.notes/4.0 create mode 100644 doc/usd/11.notes/4.1 create mode 100644 doc/usd/11.notes/4.2 create mode 100644 doc/usd/11.notes/4.3 create mode 100644 doc/usd/11.notes/4.4 create mode 100644 doc/usd/11.notes/4.5 create mode 100644 doc/usd/11.notes/4.6 create mode 100644 doc/usd/11.notes/4.7 create mode 100644 doc/usd/11.notes/5 create mode 100644 doc/usd/11.notes/Makefile create mode 100644 doc/usd/11.notes/a.checklist create mode 100644 doc/usd/11.notes/acks create mode 100644 doc/usd/11.notes/b.interface create mode 100644 doc/usd/11.notes/c.changes create mode 100644 doc/usd/11.notes/macros create mode 100644 doc/usd/11.notes/vtoc create mode 100644 doc/usd/12.edtut/e.mac create mode 100644 doc/usd/12.edtut/e0 create mode 100644 doc/usd/12.edtut/e1 create mode 100644 doc/usd/12.edtut/e2 create mode 100644 doc/usd/12.edtut/e3 create mode 100644 doc/usd/12.edtut/e4 create mode 100644 doc/usd/12.edtut/e5 create mode 100644 doc/usd/12.edtut/e6 create mode 100644 doc/usd/12.edtut/e7 create mode 100644 doc/usd/13.edadv/ae.mac create mode 100644 doc/usd/13.edadv/ae0 create mode 100644 doc/usd/13.edadv/ae1 create mode 100644 doc/usd/13.edadv/ae2 create mode 100644 doc/usd/13.edadv/ae3 create mode 100644 doc/usd/13.edadv/ae4 create mode 100644 doc/usd/13.edadv/ae5 create mode 100644 doc/usd/13.edadv/ae6 create mode 100644 doc/usd/13.edadv/ae7 create mode 100644 doc/usd/13.edadv/ae9 create mode 100644 doc/usd/14.edit/Makefile create mode 100644 doc/usd/14.edit/edit.vindex create mode 100644 doc/usd/14.edit/edittut.ms create mode 100644 doc/usd/15.vi/Makefile create mode 100644 doc/usd/15.vi/vi.apwh.ms create mode 100644 doc/usd/15.vi/vi.chars create mode 100644 doc/usd/15.vi/vi.in create mode 100644 doc/usd/15.vi/vi.summary create mode 100644 doc/usd/16.ex/Makefile create mode 100644 doc/usd/16.ex/ex.rm create mode 100644 doc/usd/16.ex/ex.summary create mode 100644 doc/usd/17.jove/Makefile create mode 100644 doc/usd/17.jove/jove.1 create mode 100644 doc/usd/17.jove/jove.2 create mode 100644 doc/usd/17.jove/jove.3 create mode 100644 doc/usd/17.jove/jove.4 create mode 100644 doc/usd/18.sed/sed create mode 100644 doc/usd/19.awk/awk create mode 100644 doc/usd/20.msmacros/ms create mode 100644 doc/usd/20.msmacros/refcard create mode 100644 doc/usd/21.msdiffs/Makefile create mode 100644 doc/usd/21.msdiffs/ms.diffs create mode 100644 doc/usd/22.memacros/Makefile create mode 100644 doc/usd/22.memacros/intro.me create mode 100644 doc/usd/23.meref/Makefile create mode 100644 doc/usd/23.meref/ref.me create mode 100644 doc/usd/24.troff/Makefile create mode 100644 doc/usd/24.troff/add create mode 100644 doc/usd/24.troff/m.mac create mode 100644 doc/usd/24.troff/m0 create mode 100644 doc/usd/24.troff/m0a create mode 100644 doc/usd/24.troff/m1 create mode 100644 doc/usd/24.troff/m2 create mode 100644 doc/usd/24.troff/m3 create mode 100644 doc/usd/24.troff/m4 create mode 100644 doc/usd/24.troff/m5 create mode 100644 doc/usd/24.troff/table1 create mode 100644 doc/usd/24.troff/table2 create mode 100644 doc/usd/25.trofftut/tt.mac create mode 100644 doc/usd/25.trofftut/tt00 create mode 100644 doc/usd/25.trofftut/tt01 create mode 100644 doc/usd/25.trofftut/tt02 create mode 100644 doc/usd/25.trofftut/tt03 create mode 100644 doc/usd/25.trofftut/tt04 create mode 100644 doc/usd/25.trofftut/tt05 create mode 100644 doc/usd/25.trofftut/tt06 create mode 100644 doc/usd/25.trofftut/tt07 create mode 100644 doc/usd/25.trofftut/tt08 create mode 100644 doc/usd/25.trofftut/tt09 create mode 100644 doc/usd/25.trofftut/tt10 create mode 100644 doc/usd/25.trofftut/tt11 create mode 100644 doc/usd/25.trofftut/tt12 create mode 100644 doc/usd/25.trofftut/tt13 create mode 100644 doc/usd/25.trofftut/tt14 create mode 100644 doc/usd/25.trofftut/ttack create mode 100644 doc/usd/25.trofftut/ttcharset create mode 100644 doc/usd/25.trofftut/ttindex create mode 100644 doc/usd/26.eqn/e.mac create mode 100644 doc/usd/26.eqn/e0 create mode 100644 doc/usd/26.eqn/e1 create mode 100644 doc/usd/26.eqn/e2 create mode 100644 doc/usd/26.eqn/e3 create mode 100644 doc/usd/26.eqn/e4 create mode 100644 doc/usd/26.eqn/e5 create mode 100644 doc/usd/26.eqn/e6 create mode 100644 doc/usd/26.eqn/e7 create mode 100644 doc/usd/27.eqnguide/g.mac create mode 100644 doc/usd/27.eqnguide/g0 create mode 100644 doc/usd/27.eqnguide/g1 create mode 100644 doc/usd/27.eqnguide/g2 create mode 100644 doc/usd/27.eqnguide/g3 create mode 100644 doc/usd/27.eqnguide/g4 create mode 100644 doc/usd/27.eqnguide/g5 create mode 100644 doc/usd/28.tbl/tbl create mode 100644 doc/usd/29.refer/Makefile create mode 100644 doc/usd/29.refer/biblio create mode 100644 doc/usd/29.refer/biblio.ig create mode 100644 doc/usd/29.refer/refer.bib create mode 100644 doc/usd/29.refer/refer.mac create mode 100644 doc/usd/30.invert/pubuse create mode 100644 doc/usd/30.invert/refer create mode 100644 doc/usd/31.bib/INDEX create mode 100644 doc/usd/31.bib/Makefile create mode 100644 doc/usd/31.bib/bibdoc.ms create mode 100644 doc/usd/31.bib/testrefs create mode 100644 doc/usd/32.diction/ap1 create mode 100644 doc/usd/32.diction/ap2 create mode 100644 doc/usd/32.diction/rm0 create mode 100644 doc/usd/32.diction/rm1 create mode 100644 doc/usd/32.diction/rm2 create mode 100644 doc/usd/33.rogue/Makefile create mode 100644 doc/usd/33.rogue/rogue.me create mode 100644 doc/usd/34.trek/Makefile create mode 100644 doc/usd/34.trek/spell.ok create mode 100644 doc/usd/34.trek/trek.me create mode 100644 doc/usd/Title create mode 100644 etc/termcap/tck create mode 100644 include/zconf.h create mode 100644 include/zlib.h create mode 100644 man/man1/admin.1 create mode 100644 man/man1/bdiff.1 create mode 100644 man/man1/chghist.1 create mode 100644 man/man1/comb.1 create mode 100644 man/man1/cpio.1 create mode 100644 man/man1/delta.1 create mode 100644 man/man1/get.1 create mode 100644 man/man1/help.1 create mode 100644 man/man1/nslookup.1 create mode 100644 man/man1/prt.1 create mode 100644 man/man1/rmdel.1 create mode 100644 man/man1/sccsdiff.1 create mode 100644 man/man2/vadvise.2 create mode 100644 man/man5/cpio.5 create mode 100644 man/man5/sccsfile.5 create mode 100644 man/man6/phantasia.6 create mode 100644 man/man8/acucntrl.8 create mode 100644 old/berknet/BUGLIST create mode 100644 old/berknet/Paths.h create mode 100644 old/berknet/READ_ME create mode 100644 old/berknet/TODO create mode 100644 old/berknet/berkmap create mode 100644 old/berknet/chktroff.c create mode 100644 old/berknet/config.h create mode 100644 old/berknet/defs.h create mode 100644 old/berknet/environ.c create mode 100644 old/berknet/header.c create mode 100644 old/berknet/initfile create mode 100644 old/berknet/interact.c create mode 100644 old/berknet/listen.c create mode 100644 old/berknet/local.h create mode 100644 old/berknet/mach.c create mode 100644 old/berknet/mach.h create mode 100644 old/berknet/makefile create mode 100644 old/berknet/mmail.c create mode 100644 old/berknet/mwrite.c create mode 100644 old/berknet/nbs.c create mode 100644 old/berknet/net.c create mode 100644 old/berknet/netcp.c create mode 100644 old/berknet/netdaemon.c create mode 100644 old/berknet/netlog.sh create mode 100644 old/berknet/netlogin.c create mode 100644 old/berknet/netlpr.c create mode 100644 old/berknet/netmail.c create mode 100644 old/berknet/netq.c create mode 100644 old/berknet/netrc.c create mode 100644 old/berknet/netrm.c create mode 100644 old/berknet/netstart.c create mode 100644 old/berknet/nettest.c create mode 100644 old/berknet/nettroff.sh create mode 100644 old/berknet/nsh.c create mode 100644 old/berknet/prmail.c create mode 100644 old/berknet/prot.c create mode 100644 old/berknet/receive.c create mode 100644 old/berknet/sendberkmail.c create mode 100644 old/berknet/setlength.sh create mode 100644 old/berknet/setmode.c create mode 100644 old/berknet/setup.c create mode 100644 old/berknet/speedr.c create mode 100644 old/berknet/speeds.c create mode 100644 old/berknet/start create mode 100644 old/berknet/store.c create mode 100644 old/berknet/sub.c create mode 100644 old/berknet/v6mail.c create mode 100644 old/catman.c create mode 100644 old/configttys.c create mode 100644 old/gets.c create mode 100644 old/libm/libm.4.3/IEEE/Makefile create mode 100644 old/libm/libm.4.3/IEEE/atan2.c create mode 100644 old/libm/libm.4.3/IEEE/cabs.c create mode 100644 old/libm/libm.4.3/IEEE/cbrt.c create mode 100644 old/libm/libm.4.3/IEEE/support.c create mode 100644 old/libm/libm.4.3/IEEE/trig.c create mode 100644 old/libm/libm.4.3/Makefile create mode 100644 old/libm/libm.4.3/README create mode 100644 old/libm/libm.4.3/VAX/Makefile create mode 100644 old/libm/libm.4.3/VAX/argred.s create mode 100644 old/libm/libm.4.3/VAX/atan2.s create mode 100644 old/libm/libm.4.3/VAX/cabs.s create mode 100644 old/libm/libm.4.3/VAX/cbrt.s create mode 100644 old/libm/libm.4.3/VAX/infnan.s create mode 100644 old/libm/libm.4.3/VAX/mcount.sed create mode 100644 old/libm/libm.4.3/VAX/sincos.s create mode 100644 old/libm/libm.4.3/VAX/sqrt.s create mode 100644 old/libm/libm.4.3/VAX/support.s create mode 100644 old/libm/libm.4.3/VAX/tan.s create mode 100644 old/libm/libm.4.3/acosh.c create mode 100644 old/libm/libm.4.3/asincos.c create mode 100644 old/libm/libm.4.3/asinh.c create mode 100644 old/libm/libm.4.3/atan.c create mode 100644 old/libm/libm.4.3/atanh.c create mode 100644 old/libm/libm.4.3/cosh.c create mode 100644 old/libm/libm.4.3/erf.c create mode 100644 old/libm/libm.4.3/exp.c create mode 100644 old/libm/libm.4.3/exp__E.c create mode 100644 old/libm/libm.4.3/expm1.c create mode 100644 old/libm/libm.4.3/floor.c create mode 100644 old/libm/libm.4.3/j0.c create mode 100644 old/libm/libm.4.3/j1.c create mode 100644 old/libm/libm.4.3/jn.c create mode 100644 old/libm/libm.4.3/lgamma.c create mode 100644 old/libm/libm.4.3/log.c create mode 100644 old/libm/libm.4.3/log10.c create mode 100644 old/libm/libm.4.3/log1p.c create mode 100644 old/libm/libm.4.3/log__L.c create mode 100644 old/libm/libm.4.3/pow.c create mode 100644 old/libm/libm.4.3/sinh.c create mode 100644 old/libm/libm.4.3/tanh.c create mode 100644 old/libm/liboldnm/Makefile create mode 100644 old/libm/liboldnm/README create mode 100644 old/libm/liboldnm/acos.c create mode 100644 old/libm/liboldnm/asin.s create mode 100644 old/libm/liboldnm/atan.s create mode 100644 old/libm/liboldnm/badtan.s create mode 100644 old/libm/liboldnm/cbrt.s create mode 100644 old/libm/liboldnm/exp.s create mode 100644 old/libm/liboldnm/log.s create mode 100644 old/libm/liboldnm/mcount.sed create mode 100644 old/libm/liboldnm/pow.c create mode 100644 old/libm/liboldnm/sin.s create mode 100644 old/libm/liboldnm/sinh.s create mode 100644 old/libm/liboldnm/sqrt.s create mode 100644 old/libm/liboldnm/sqrt.s.old create mode 100644 old/libm/liboldnm/tan.s create mode 100644 old/libm/liboldnm/tanh.s create mode 100644 old/libm/libom/Makefile create mode 100644 old/libm/libom/asin.c create mode 100644 old/libm/libom/atan.c create mode 100644 old/libm/libom/erf.c create mode 100644 old/libm/libom/exp.c create mode 100644 old/libm/libom/floor.c create mode 100644 old/libm/libom/gamma.c create mode 100644 old/libm/libom/hypot.c create mode 100644 old/libm/libom/j0.c create mode 100644 old/libm/libom/j1.c create mode 100644 old/libm/libom/jn.c create mode 100644 old/libm/libom/log.c create mode 100644 old/libm/libom/man/exp.3 create mode 100644 old/libm/libom/man/floor.3 create mode 100644 old/libm/libom/man/gamma.3 create mode 100644 old/libm/libom/man/hypot.3 create mode 100644 old/libm/libom/man/j0.3 create mode 100644 old/libm/libom/man/l3tol.3 create mode 100644 old/libm/libom/man/sin.3 create mode 100644 old/libm/libom/man/sinh.3 create mode 100644 old/libm/libom/pow.c create mode 100644 old/libm/libom/sin.c create mode 100644 old/libm/libom/sinh.c create mode 100644 old/libm/libom/sqrt.c create mode 100644 old/libm/libom/tan.c create mode 100644 old/libm/libom/tanh.c create mode 100644 old/man/aliens.6 create mode 100644 old/man/apl.1 create mode 100644 old/man/call.1 create mode 100644 old/man/catman.8 create mode 100644 old/man/chase.6 create mode 100644 old/man/cifplot.1 create mode 100644 old/man/diffdir.1 create mode 100644 old/man/dumpdir.8 create mode 100644 old/man/gets.1 create mode 100644 old/man/greek.7 create mode 100644 old/man/iul.1 create mode 100644 old/man/jobs.3 create mode 100644 old/man/mail.4 create mode 100644 old/man/mklost+found.8 create mode 100644 old/man/mpx.2 create mode 100644 old/man/mpxio.5 create mode 100644 old/man/newcsh.1 create mode 100644 old/man/newgrp.1 create mode 100644 old/man/newtty.4 create mode 100644 old/man/num.1 create mode 100644 old/man/old.8 create mode 100644 old/man/rewind.1 create mode 100644 old/man/rv.4 create mode 100644 old/man/see.1 create mode 100644 old/man/sigset.3 create mode 100644 old/man/ssp.1 create mode 100644 old/man/tra.1 create mode 100644 old/man/uuclean.1 create mode 100644 old/man/uudiff.1 create mode 100644 old/man/vread.2 create mode 100644 old/man/vwrite.2 create mode 100644 old/man/wait3.2 create mode 100644 old/mklost+found.sh create mode 100644 old/rogue/Makefile create mode 100644 old/rogue/README create mode 100644 old/rogue/machdep.c create mode 100644 old/rogue/machdep.h create mode 100644 old/rogue/main.obj create mode 100644 old/vpr/vplot.c create mode 100644 sys/cassette/boot create mode 100644 sys/cassette/copy create mode 100644 sys/cassette/drtest create mode 100644 sys/cassette/format create mode 100644 sys/conf/LUTHIEN create mode 100644 sys/floppy/3tracks create mode 100644 sys/mdec/kraboot create mode 100644 sys/mdec/kraboot.c mode change 100755 => 120000 sys/tahoedist/MAKEHOSTS mode change 100644 => 100755 sys/tahoedist/buildboot mode change 100644 => 100755 sys/tahoedist/buildmini mode change 100644 => 120000 sys/tahoedist/group mode change 100644 => 120000 sys/tahoedist/inetd.conf mode change 100644 => 100755 sys/tahoedist/maketape mode change 100755 => 100644 sys/tahoedist/netstart mode change 100644 => 120000 sys/tahoedist/passwd mode change 100644 => 120000 sys/tahoedist/printcap mode change 100644 => 120000 sys/tahoedist/rc mode change 100644 => 120000 sys/tahoedist/rc.local mode change 100644 => 120000 sys/tahoedist/services mode change 100644 => 120000 sys/tahoedist/shells mode change 100644 => 120000 sys/tahoedist/syslog.conf create mode 100644 sys/tahoemath/Kcmpd.s create mode 100644 sys/tahoestand/hdc.c mode change 100644 => 100755 sys/vaxdist/MAKEDEV mode change 100755 => 100644 sys/vaxdist/MAKEHOSTS mode change 100755 => 100644 sys/vaxdist/netstart create mode 100644 sys/vaxstand/kra_autoconf.o create mode 100644 sys/vaxstand/ra_autoconf.o create mode 100644 ucb/20b.c create mode 100644 ucb/compress/gzcompat.c create mode 100644 usr.bin/diction/README create mode 100644 usr.bin/roff/troff_font/chars.c create mode 100644 usr.bin/roff/troff_font/ftB.c create mode 100644 usr.bin/roff/troff_font/ftBC.c create mode 100644 usr.bin/roff/troff_font/ftC.c create mode 100644 usr.bin/roff/troff_font/ftCE.c create mode 100644 usr.bin/roff/troff_font/ftCI.c create mode 100644 usr.bin/roff/troff_font/ftCK.c create mode 100644 usr.bin/roff/troff_font/ftCS.c create mode 100644 usr.bin/roff/troff_font/ftCW.c create mode 100644 usr.bin/roff/troff_font/ftG.c create mode 100644 usr.bin/roff/troff_font/ftGI.c create mode 100644 usr.bin/roff/troff_font/ftGM.c create mode 100644 usr.bin/roff/troff_font/ftGR.c create mode 100644 usr.bin/roff/troff_font/ftI.c create mode 100644 usr.bin/roff/troff_font/ftL.c create mode 100644 usr.bin/roff/troff_font/ftLI.c create mode 100644 usr.bin/roff/troff_font/ftPA.c create mode 100644 usr.bin/roff/troff_font/ftPB.c create mode 100644 usr.bin/roff/troff_font/ftPI.c create mode 100644 usr.bin/roff/troff_font/ftR.c create mode 100644 usr.bin/roff/troff_font/ftS.c create mode 100644 usr.bin/roff/troff_font/ftSB.c create mode 100644 usr.bin/roff/troff_font/ftSI.c create mode 100644 usr.bin/roff/troff_font/ftSM.c create mode 100644 usr.bin/roff/troff_font/ftUD.c create mode 100644 usr.bin/roff/troff_font/ftXM.c create mode 100644 usr.bin/sccscmds/Makefile create mode 100644 usr.bin/sccscmds/Shell create mode 100644 usr.bin/sccscmds/cmd/admin.c create mode 100644 usr.bin/sccscmds/cmd/alloc.c create mode 100644 usr.bin/sccscmds/cmd/bdiff.c create mode 100644 usr.bin/sccscmds/cmd/cmt.c create mode 100644 usr.bin/sccscmds/cmd/comb.c create mode 100644 usr.bin/sccscmds/cmd/delta.c create mode 100644 usr.bin/sccscmds/cmd/get.c create mode 100644 usr.bin/sccscmds/cmd/help.c create mode 100644 usr.bin/sccscmds/cmd/makefile create mode 100644 usr.bin/sccscmds/cmd/prs.c create mode 100644 usr.bin/sccscmds/cmd/prt.c create mode 100644 usr.bin/sccscmds/cmd/rmchg.c create mode 100644 usr.bin/sccscmds/cmd/sccsdiff.sh create mode 100644 usr.bin/sccscmds/cmd/scv.c create mode 100644 usr.bin/sccscmds/cmd/snull.c create mode 100644 usr.bin/sccscmds/cmd/stree.c create mode 100644 usr.bin/sccscmds/cmd/val.c create mode 100644 usr.bin/sccscmds/cmd/vc.c create mode 100644 usr.bin/sccscmds/cmd/what.c create mode 100755 usr.bin/sccscmds/com/Compile create mode 100644 usr.bin/sccscmds/com/Makefile create mode 100644 usr.bin/sccscmds/com/auxf.c create mode 100644 usr.bin/sccscmds/com/chkid.c create mode 100644 usr.bin/sccscmds/com/chksid.c create mode 100644 usr.bin/sccscmds/com/date_ab.c create mode 100644 usr.bin/sccscmds/com/date_ba.c create mode 100644 usr.bin/sccscmds/com/del_ab.c create mode 100644 usr.bin/sccscmds/com/del_ba.c create mode 100644 usr.bin/sccscmds/com/dodelt.c create mode 100644 usr.bin/sccscmds/com/dofile.c create mode 100644 usr.bin/sccscmds/com/dohist.c create mode 100644 usr.bin/sccscmds/com/doie.c create mode 100644 usr.bin/sccscmds/com/dolist.c create mode 100644 usr.bin/sccscmds/com/eqsid.c create mode 100644 usr.bin/sccscmds/com/flushto.c create mode 100644 usr.bin/sccscmds/com/fmterr.c create mode 100644 usr.bin/sccscmds/com/getline.c create mode 100644 usr.bin/sccscmds/com/newstats.c create mode 100644 usr.bin/sccscmds/com/permiss.c create mode 100644 usr.bin/sccscmds/com/pf_ab.c create mode 100644 usr.bin/sccscmds/com/putline.c create mode 100644 usr.bin/sccscmds/com/rdmod.c create mode 100644 usr.bin/sccscmds/com/setup.c create mode 100644 usr.bin/sccscmds/com/sid_ab.c create mode 100644 usr.bin/sccscmds/com/sid_ba.c create mode 100644 usr.bin/sccscmds/com/sidtoser.c create mode 100644 usr.bin/sccscmds/com/sinit.c create mode 100644 usr.bin/sccscmds/com/stats_ab.c create mode 100644 usr.bin/sccscmds/com/xfmterr.c create mode 100644 usr.bin/sccscmds/com/xnewstats.c create mode 100644 usr.bin/sccscmds/hdr/defines.h create mode 100644 usr.bin/sccscmds/hdr/fatal.h create mode 100644 usr.bin/sccscmds/hdr/had.h create mode 100644 usr.bin/sccscmds/hdr/macros.h create mode 100644 usr.bin/sccscmds/sccs.hf create mode 100644 usr.bin/sccscmds/util/Makefile create mode 100644 usr.bin/sccscmds/util/OLD/alloca.s create mode 100644 usr.bin/sccscmds/util/OLD/sbrk.s create mode 100644 usr.bin/sccscmds/util/OLD/syswrite.s create mode 100644 usr.bin/sccscmds/util/any.c create mode 100644 usr.bin/sccscmds/util/anystr.c create mode 100644 usr.bin/sccscmds/util/bal.c create mode 100644 usr.bin/sccscmds/util/cat.c create mode 100644 usr.bin/sccscmds/util/clean.c create mode 100644 usr.bin/sccscmds/util/curdir.c create mode 100644 usr.bin/sccscmds/util/dname.c create mode 100644 usr.bin/sccscmds/util/fatal.c create mode 100644 usr.bin/sccscmds/util/giveup.c create mode 100644 usr.bin/sccscmds/util/imatch.c create mode 100644 usr.bin/sccscmds/util/lockit.c create mode 100644 usr.bin/sccscmds/util/logname.c create mode 100644 usr.bin/sccscmds/util/mksyswrite.sh create mode 100644 usr.bin/sccscmds/util/patoi.c create mode 100644 usr.bin/sccscmds/util/patol.c create mode 100644 usr.bin/sccscmds/util/pexec.c create mode 100644 usr.bin/sccscmds/util/rename.c create mode 100644 usr.bin/sccscmds/util/repeat.c create mode 100644 usr.bin/sccscmds/util/repl.c create mode 100644 usr.bin/sccscmds/util/satoi.c create mode 100644 usr.bin/sccscmds/util/setsig.c create mode 100644 usr.bin/sccscmds/util/sname.c create mode 100644 usr.bin/sccscmds/util/substr.c create mode 100644 usr.bin/sccscmds/util/trnslat.c create mode 100644 usr.bin/sccscmds/util/userdir.c create mode 100644 usr.bin/sccscmds/util/userexit.c create mode 100644 usr.bin/sccscmds/util/username.c create mode 100644 usr.bin/sccscmds/util/verify.c create mode 100644 usr.bin/sccscmds/util/write.c create mode 100644 usr.bin/sccscmds/util/xalloc.c create mode 100644 usr.bin/sccscmds/util/xcreat.c create mode 100644 usr.bin/sccscmds/util/xlink.c create mode 100644 usr.bin/sccscmds/util/xmsg.c create mode 100644 usr.bin/sccscmds/util/xopen.c create mode 100644 usr.bin/sccscmds/util/xpipe.c create mode 100644 usr.bin/sccscmds/util/xunlink.c create mode 100644 usr.bin/sccscmds/util/xxcreat.c create mode 100644 usr.bin/sccscmds/util/zeropad.c create mode 100644 usr.lib/libz/Makefile create mode 100644 usr.lib/libz/Origzlib/ChangeLog create mode 100644 usr.lib/libz/Origzlib/README create mode 100644 usr.lib/libz/Origzlib/algorithm.doc create mode 100644 usr.lib/libz/adler32.c create mode 100644 usr.lib/libz/compress.c create mode 100644 usr.lib/libz/compressio.c create mode 100644 usr.lib/libz/crc32.c create mode 100644 usr.lib/libz/deflate.c create mode 100644 usr.lib/libz/deflate.h create mode 100644 usr.lib/libz/gzio.c create mode 100644 usr.lib/libz/infblock.c create mode 100644 usr.lib/libz/infblock.h create mode 100644 usr.lib/libz/infcodes.c create mode 100644 usr.lib/libz/infcodes.h create mode 100644 usr.lib/libz/inffast.c create mode 100644 usr.lib/libz/inffast.h create mode 100644 usr.lib/libz/inflate.c create mode 100644 usr.lib/libz/inftrees.c create mode 100644 usr.lib/libz/inftrees.h create mode 100644 usr.lib/libz/infutil.c create mode 100644 usr.lib/libz/infutil.h create mode 100644 usr.lib/libz/trees.c create mode 100644 usr.lib/libz/uncompr.c create mode 100644 usr.lib/libz/zutil.c create mode 100644 usr.lib/libz/zutil.h mode change 100755 => 100644 usr.lib/me/strip.sed create mode 100644 usr.lib/sendmail/cf/cf/cc.mc create mode 100644 usr.lib/sendmail/cf/cf/cchem.mc create mode 100644 usr.lib/sendmail/cf/cf/ic.mc create mode 100644 usr.lib/sendmail/cf/cf/proto.mc create mode 100644 usr.lib/sendmail/cf/cf/tcpproto.mc create mode 100644 usr.lib/sendmail/cf/cf/tcpuucpproto.mc create mode 100644 usr.lib/sendmail/cf/cf/ucbtcp.mc create mode 100644 usr.lib/sendmail/cf/cf/uucpproto.mc create mode 100644 usr.lib/sendmail/cf/m4/README create mode 100644 usr.lib/sendmail/cf/sitedep/README create mode 100644 usr.lib/sendmail/cf/sitedep/nicregistered.m4 create mode 100644 usr.lib/sendmail/cf/sitedep/smtpuucp.cad.m4 create mode 100644 usr.lib/sendmail/cf/sitedep/smtpuucp.ucbvax.m4 create mode 100644 usr.lib/sendmail/cf/sitedep/uucp.cad.m4 create mode 100644 usr.lib/sendmail/cf/sitedep/uucp.cogsci.m4 create mode 100644 usr.lib/sendmail/cf/sitedep/uucp.ic.m4 create mode 100644 usr.lib/sendmail/cf/sitedep/uucp.okeeffe.m4 create mode 100644 usr.lib/sendmail/cf/sitedep/uucp.proto.m4 create mode 100644 usr.lib/sendmail/cf/sitedep/uucp.ucbarpa.m4 create mode 100644 usr.lib/sendmail/cf/sitedep/uucp.ucbvax.m4 diff --git a/Makefile b/Makefile index 4bc3642e..b8b7d8b7 100644 --- a/Makefile +++ b/Makefile @@ -14,7 +14,7 @@ # IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED # WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. # -# @(#)Makefile 4.18 (Berkeley) 6/30/88 +# @(#)Makefile 4.19 (Berkeley) 1/14/99 # # This makefile is designed to be run in one of three ways: # @@ -59,11 +59,11 @@ LIBCDEFS= HOSTLOOKUP=${HOSTLOOKUP} DFLMON=${DFLMON} DEFS="${DEFS}" # DESTDIR= CFLAGS= -O -SRC_MFLAGS= -k +SRC_MFLAGS= LIBDIR= lib usr.lib # order is important, old and man must be #1 and #2 -SRCDIR= old man bin usr.bin etc ucb new games local +SRCDIR= old man bin usr.bin etc ucb games all: ${LIBDIR} ${SRCDIR} diff --git a/bin/adb/adb.tahoe/Makefile b/bin/adb/adb.tahoe/Makefile index 69fa1a63..67ede9da 100644 --- a/bin/adb/adb.tahoe/Makefile +++ b/bin/adb/adb.tahoe/Makefile @@ -3,7 +3,7 @@ # All rights reserved. The Berkeley software License Agreement # specifies the terms and conditions for redistribution. # -# @(#)Makefile 1.3 (Berkeley) 6/2/87 +# @(#)Makefile 5.3 (Berkeley) 6/2/87 # CFLAGS= -O LIBC= /lib/libc.a @@ -44,8 +44,7 @@ FRC: # DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY. access.o: access.c defs.h /usr/include/sys/param.h /usr/include/sys/types.h -access.o: /usr/include/signal.h /usr/include/machine/trap.h -access.o: /usr/include/machine/machparam.h /usr/include/machine/endian.h +access.o: /usr/include/signal.h /usr/include/machine/machparam.h access.o: /usr/include/sys/dir.h /usr/include/machine/psl.h access.o: /usr/include/machine/pte.h /usr/include/sys/user.h access.o: /usr/include/machine/pcb.h /usr/include/sys/dmap.h @@ -57,8 +56,7 @@ access.o: /usr/include/sys/vm.h /usr/include/sys/vmparam.h access.o: /usr/include/machine/vmparam.h /usr/include/sys/vmmac.h access.o: /usr/include/sys/vmmeter.h /usr/include/sys/vmsystm.h head.h command.o: command.c defs.h /usr/include/sys/param.h /usr/include/sys/types.h -command.o: /usr/include/signal.h /usr/include/machine/trap.h -command.o: /usr/include/machine/machparam.h /usr/include/machine/endian.h +command.o: /usr/include/signal.h /usr/include/machine/machparam.h command.o: /usr/include/sys/dir.h /usr/include/machine/psl.h command.o: /usr/include/machine/pte.h /usr/include/sys/user.h command.o: /usr/include/machine/pcb.h /usr/include/sys/dmap.h @@ -70,8 +68,7 @@ command.o: /usr/include/sys/vm.h /usr/include/sys/vmparam.h command.o: /usr/include/machine/vmparam.h /usr/include/sys/vmmac.h command.o: /usr/include/sys/vmmeter.h /usr/include/sys/vmsystm.h head.h expr.o: expr.c defs.h /usr/include/sys/param.h /usr/include/sys/types.h -expr.o: /usr/include/signal.h /usr/include/machine/trap.h -expr.o: /usr/include/machine/machparam.h /usr/include/machine/endian.h +expr.o: /usr/include/signal.h /usr/include/machine/machparam.h expr.o: /usr/include/sys/dir.h /usr/include/machine/psl.h expr.o: /usr/include/machine/pte.h /usr/include/sys/user.h expr.o: /usr/include/machine/pcb.h /usr/include/sys/dmap.h @@ -82,8 +79,7 @@ expr.o: mode.h machine.h /usr/include/sys/vm.h /usr/include/sys/vmparam.h expr.o: /usr/include/machine/vmparam.h /usr/include/sys/vmmac.h expr.o: /usr/include/sys/vmmeter.h /usr/include/sys/vmsystm.h head.h format.o: format.c defs.h /usr/include/sys/param.h /usr/include/sys/types.h -format.o: /usr/include/signal.h /usr/include/machine/trap.h -format.o: /usr/include/machine/machparam.h /usr/include/machine/endian.h +format.o: /usr/include/signal.h /usr/include/machine/machparam.h format.o: /usr/include/sys/dir.h /usr/include/machine/psl.h format.o: /usr/include/machine/pte.h /usr/include/sys/user.h format.o: /usr/include/machine/pcb.h /usr/include/sys/dmap.h @@ -95,8 +91,7 @@ format.o: /usr/include/sys/vm.h /usr/include/sys/vmparam.h format.o: /usr/include/machine/vmparam.h /usr/include/sys/vmmac.h format.o: /usr/include/sys/vmmeter.h /usr/include/sys/vmsystm.h head.h input.o: input.c defs.h /usr/include/sys/param.h /usr/include/sys/types.h -input.o: /usr/include/signal.h /usr/include/machine/trap.h -input.o: /usr/include/machine/machparam.h /usr/include/machine/endian.h +input.o: /usr/include/signal.h /usr/include/machine/machparam.h input.o: /usr/include/sys/dir.h /usr/include/machine/psl.h input.o: /usr/include/machine/pte.h /usr/include/sys/user.h input.o: /usr/include/machine/pcb.h /usr/include/sys/dmap.h @@ -108,8 +103,7 @@ input.o: /usr/include/sys/vm.h /usr/include/sys/vmparam.h input.o: /usr/include/machine/vmparam.h /usr/include/sys/vmmac.h input.o: /usr/include/sys/vmmeter.h /usr/include/sys/vmsystm.h head.h main.o: main.c defs.h /usr/include/sys/param.h /usr/include/sys/types.h -main.o: /usr/include/signal.h /usr/include/machine/trap.h -main.o: /usr/include/machine/machparam.h /usr/include/machine/endian.h +main.o: /usr/include/signal.h /usr/include/machine/machparam.h main.o: /usr/include/sys/dir.h /usr/include/machine/psl.h main.o: /usr/include/machine/pte.h /usr/include/sys/user.h main.o: /usr/include/machine/pcb.h /usr/include/sys/dmap.h @@ -124,8 +118,7 @@ message.o: /usr/include/sys/vmparam.h /usr/include/machine/vmparam.h message.o: /usr/include/sys/vmmac.h /usr/include/sys/vmmeter.h message.o: /usr/include/sys/vmsystm.h opset.o: opset.c defs.h /usr/include/sys/param.h /usr/include/sys/types.h -opset.o: /usr/include/signal.h /usr/include/machine/trap.h -opset.o: /usr/include/machine/machparam.h /usr/include/machine/endian.h +opset.o: /usr/include/signal.h /usr/include/machine/machparam.h opset.o: /usr/include/sys/dir.h /usr/include/machine/psl.h opset.o: /usr/include/machine/pte.h /usr/include/sys/user.h opset.o: /usr/include/machine/pcb.h /usr/include/sys/dmap.h @@ -137,8 +130,7 @@ opset.o: /usr/include/sys/vm.h /usr/include/sys/vmparam.h opset.o: /usr/include/machine/vmparam.h /usr/include/sys/vmmac.h opset.o: /usr/include/sys/vmmeter.h /usr/include/sys/vmsystm.h head.h optab.h optab.o: optab.c defs.h /usr/include/sys/param.h /usr/include/sys/types.h -optab.o: /usr/include/signal.h /usr/include/machine/trap.h -optab.o: /usr/include/machine/machparam.h /usr/include/machine/endian.h +optab.o: /usr/include/signal.h /usr/include/machine/machparam.h optab.o: /usr/include/sys/dir.h /usr/include/machine/psl.h optab.o: /usr/include/machine/pte.h /usr/include/sys/user.h optab.o: /usr/include/machine/pcb.h /usr/include/sys/dmap.h @@ -151,8 +143,7 @@ optab.o: /usr/include/machine/vmparam.h /usr/include/sys/vmmac.h optab.o: /usr/include/sys/vmmeter.h /usr/include/sys/vmsystm.h head.h optab.h optab.o: instrs output.o: output.c defs.h /usr/include/sys/param.h /usr/include/sys/types.h -output.o: /usr/include/signal.h /usr/include/machine/trap.h -output.o: /usr/include/machine/machparam.h /usr/include/machine/endian.h +output.o: /usr/include/signal.h /usr/include/machine/machparam.h output.o: /usr/include/sys/dir.h /usr/include/machine/psl.h output.o: /usr/include/machine/pte.h /usr/include/sys/user.h output.o: /usr/include/machine/pcb.h /usr/include/sys/dmap.h @@ -164,8 +155,7 @@ output.o: /usr/include/sys/vm.h /usr/include/sys/vmparam.h output.o: /usr/include/machine/vmparam.h /usr/include/sys/vmmac.h output.o: /usr/include/sys/vmmeter.h /usr/include/sys/vmsystm.h head.h pcs.o: pcs.c defs.h /usr/include/sys/param.h /usr/include/sys/types.h -pcs.o: /usr/include/signal.h /usr/include/machine/trap.h -pcs.o: /usr/include/machine/machparam.h /usr/include/machine/endian.h +pcs.o: /usr/include/signal.h /usr/include/machine/machparam.h pcs.o: /usr/include/sys/dir.h /usr/include/machine/psl.h pcs.o: /usr/include/machine/pte.h /usr/include/sys/user.h pcs.o: /usr/include/machine/pcb.h /usr/include/sys/dmap.h @@ -176,8 +166,7 @@ pcs.o: mode.h machine.h /usr/include/sys/vm.h /usr/include/sys/vmparam.h pcs.o: /usr/include/machine/vmparam.h /usr/include/sys/vmmac.h pcs.o: /usr/include/sys/vmmeter.h /usr/include/sys/vmsystm.h head.h print.o: print.c defs.h /usr/include/sys/param.h /usr/include/sys/types.h -print.o: /usr/include/signal.h /usr/include/machine/trap.h -print.o: /usr/include/machine/machparam.h /usr/include/machine/endian.h +print.o: /usr/include/signal.h /usr/include/machine/machparam.h print.o: /usr/include/sys/dir.h /usr/include/machine/psl.h print.o: /usr/include/machine/pte.h /usr/include/sys/user.h print.o: /usr/include/machine/pcb.h /usr/include/sys/dmap.h @@ -189,8 +178,7 @@ print.o: /usr/include/sys/vm.h /usr/include/sys/vmparam.h print.o: /usr/include/machine/vmparam.h /usr/include/sys/vmmac.h print.o: /usr/include/sys/vmmeter.h /usr/include/sys/vmsystm.h head.h runpcs.o: runpcs.c defs.h /usr/include/sys/param.h /usr/include/sys/types.h -runpcs.o: /usr/include/signal.h /usr/include/machine/trap.h -runpcs.o: /usr/include/machine/machparam.h /usr/include/machine/endian.h +runpcs.o: /usr/include/signal.h /usr/include/machine/machparam.h runpcs.o: /usr/include/sys/dir.h /usr/include/machine/psl.h runpcs.o: /usr/include/machine/pte.h /usr/include/sys/user.h runpcs.o: /usr/include/machine/pcb.h /usr/include/sys/dmap.h @@ -202,8 +190,7 @@ runpcs.o: /usr/include/sys/vm.h /usr/include/sys/vmparam.h runpcs.o: /usr/include/machine/vmparam.h /usr/include/sys/vmmac.h runpcs.o: /usr/include/sys/vmmeter.h /usr/include/sys/vmsystm.h head.h setup.o: setup.c defs.h /usr/include/sys/param.h /usr/include/sys/types.h -setup.o: /usr/include/signal.h /usr/include/machine/trap.h -setup.o: /usr/include/machine/machparam.h /usr/include/machine/endian.h +setup.o: /usr/include/signal.h /usr/include/machine/machparam.h setup.o: /usr/include/sys/dir.h /usr/include/machine/psl.h setup.o: /usr/include/machine/pte.h /usr/include/sys/user.h setup.o: /usr/include/machine/pcb.h /usr/include/sys/dmap.h @@ -217,8 +204,7 @@ setup.o: /usr/include/sys/vmmeter.h /usr/include/sys/vmsystm.h head.h setup.o: /usr/include/frame.h /usr/include/ctype.h /usr/include/sys/stat.h setup.o: /usr/include/sys/file.h /usr/include/machine/rpb.h sym.o: sym.c defs.h /usr/include/sys/param.h /usr/include/sys/types.h -sym.o: /usr/include/signal.h /usr/include/machine/trap.h -sym.o: /usr/include/machine/machparam.h /usr/include/machine/endian.h +sym.o: /usr/include/signal.h /usr/include/machine/machparam.h sym.o: /usr/include/sys/dir.h /usr/include/machine/psl.h sym.o: /usr/include/machine/pte.h /usr/include/sys/user.h sym.o: /usr/include/machine/pcb.h /usr/include/sys/dmap.h diff --git a/bin/adb/adb.tahoe/format.c b/bin/adb/adb.tahoe/format.c index 6375c441..2be812b0 100644 --- a/bin/adb/adb.tahoe/format.c +++ b/bin/adb/adb.tahoe/format.c @@ -1,5 +1,5 @@ #ifndef lint -static char sccsid[] = "@(#)format.c 1.4 (Berkeley) 4/1/87"; +static char sccsid[] = "@(#)format.c 1.6 (Berkeley) 6/9/99"; #endif /* * diff --git a/bin/adb/adb.tahoe/instrs b/bin/adb/adb.tahoe/instrs index dedfc62c..10118885 100644 --- a/bin/adb/adb.tahoe/instrs +++ b/bin/adb/adb.tahoe/instrs @@ -1,5 +1,10 @@ -/* %WW% (Berkeley) 11/20/86 */ -/* Copyright(c) 1980 Regents of the University of California */ +/* + * Copyright (c) 1980 The Regents of the University of California + * All rights reserved. + * + * @(#)instrs 1.1 (Berkeley) 11/20/86 + */ + OP("adda",0x8e,2,ACCR+TYPL,ACCM+TYPL,0,0,0,0), OP("addb2",0x08,2,ACCR+TYPB,ACCM+TYPB,0,0,0,0), OP("addb3",0x18,3,ACCR+TYPB,ACCR+TYPB,ACCW+TYPB,0,0,0), diff --git a/bin/adb/adb.vax/Makefile b/bin/adb/adb.vax/Makefile index a391cc27..1ec5bfe8 100644 --- a/bin/adb/adb.vax/Makefile +++ b/bin/adb/adb.vax/Makefile @@ -3,7 +3,7 @@ # All rights reserved. The Berkeley software License Agreement # specifies the terms and conditions for redistribution. # -# @(#)Makefile 4.7 (Berkeley) 6/5/87 +# @(#)Makefile 5.1 (Berkeley) 6/5/87 # LIBC= /lib/libc.a DFLAGS= -DADB @@ -30,7 +30,7 @@ optab.o: instrs.adb ${CC} ${CFLAGS} -c -R -I. -I${AS} optab.c instrs.adb: ${AS}/instrs - {echo FLAVOR ADB; cat ${AS}/instrs) | awk -f ${AS}/instrs > instrs.adb + (echo FLAVOR ADB; cat ${AS}/instrs) | awk -f ${AS}/instrs > instrs.adb clean: FRC rm -f ${OBJS} core adb diff --git a/bin/adb/adb.vax/format.c b/bin/adb/adb.vax/format.c index 2771d8ce..5f43d4b5 100644 --- a/bin/adb/adb.vax/format.c +++ b/bin/adb/adb.vax/format.c @@ -1,5 +1,5 @@ #ifndef lint -static char sccsid[] = "@(#)format.c 4.5 4/24/88"; +static char sccsid[] = "@(#)format.c 4.6 7/18/88"; #endif /* * @@ -227,16 +227,16 @@ STRING ifp; * fw.sa = wx; */ (*(struct bad_programming *)&fw).sa = wx; - IF (wx & ~0xFFFF00FF) == 0x8000 - THEN printf("(reserved oprnd)"); + IF (wx & ~0xFFFF007F) == 0x8000 + THEN printf("(reserved operand)"); ELSE printf("%-16.9f", fw); FI dotinc=4; break; case 'F': (*(struct bad_programming *)&fw).sa = wx; - IF (wx & ~0xFFFF00FF) == 0x8000 - THEN printf("%-32s", "(reserved oprnd)"); + IF (wx & ~0xFFFF007F) == 0x8000 + THEN printf("%-32s", "(reserved operand)"); ELSE printf("%-32.18F", fw); FI dotinc=8; break; diff --git a/bin/adb/adb.vax/opset.c b/bin/adb/adb.vax/opset.c index a0bbcc70..8216c3fd 100644 --- a/bin/adb/adb.vax/opset.c +++ b/bin/adb/adb.vax/opset.c @@ -1,5 +1,5 @@ #ifndef lint -static char sccsid[] = "@(#)opset.c 4.6 1/10/88"; +static char sccsid[] = "@(#)opset.c 4.7 7/18/88"; #endif /* lint */ /* * UNIX debugger @@ -475,9 +475,15 @@ bignumprint(nbytes, optype) valuep = snarf(nbytes); switch(A_TYPEXT(optype)){ case TYPF: + if ((valuep->num_num.numFf_float.Ff_ushort[0] & 0xff80) == 0x8000) { + printf("0f::"); goto qprint; + } printf("0f%f", valuep->num_num.numFf_float.Ff_value); break; case TYPD: + if ((valuep->num_num.numFd_float.Fd_ushort[0] & 0xff80) == 0x8000) { + printf("0d::"); goto qprint; + } printf("0d%f", valuep->num_num.numFd_float.Fd_value); break; case TYPG: diff --git a/bin/as/as.tahoe/asparse.c b/bin/as/as.tahoe/asparse.c index 193b8424..25fd6cff 100644 --- a/bin/as/as.tahoe/asparse.c +++ b/bin/as/as.tahoe/asparse.c @@ -2,7 +2,7 @@ * Copyright (c) 1982 Regents of the University of California */ #ifndef lint -static char sccsid[] = "$W$ (Berkeley) 5/31/88"; +static char sccsid[] = "@(#)asparse.c 1.7 (Berkeley) 6/10/99"; #endif not lint #include diff --git a/bin/awk/test/Compare b/bin/awk/test/Compare new file mode 100755 index 00000000..d6142865 --- /dev/null +++ b/bin/awk/test/Compare @@ -0,0 +1,11 @@ +for i +do + echo $i: + awk -f $i foo >junk1 + a.out -f $i foo >junk2 + if cmp -s junk1 junk2 + then echo $i: good + else echo $i: BAD + fi + diff -b junk1 junk2 | ind +done diff --git a/bin/awk/test/t.0 b/bin/awk/test/t.0 new file mode 100644 index 00000000..b4705e94 --- /dev/null +++ b/bin/awk/test/t.0 @@ -0,0 +1 @@ +{i = i+1; print i, NR} diff --git a/bin/awk/test/t.1.x b/bin/awk/test/t.1.x new file mode 100644 index 00000000..89549506 --- /dev/null +++ b/bin/awk/test/t.1.x @@ -0,0 +1 @@ +{i="count" $1 $2; print i , $0} diff --git a/bin/awk/test/t.2.x b/bin/awk/test/t.2.x new file mode 100644 index 00000000..700aee34 --- /dev/null +++ b/bin/awk/test/t.2.x @@ -0,0 +1 @@ +{i=2; j=$3; $1=i;print i,j,$1} diff --git a/bin/awk/test/t.3 b/bin/awk/test/t.3 new file mode 100644 index 00000000..8abbecc7 --- /dev/null +++ b/bin/awk/test/t.3 @@ -0,0 +1 @@ +$1 == "5" || $1 == "4" diff --git a/bin/awk/test/t.3.x b/bin/awk/test/t.3.x new file mode 100644 index 00000000..a5be10be --- /dev/null +++ b/bin/awk/test/t.3.x @@ -0,0 +1,7 @@ +{ +x = $1 +while (x > 1) { + print x + x = x / 10 +} +} diff --git a/bin/awk/test/t.4 b/bin/awk/test/t.4 new file mode 100644 index 00000000..d2785f1b --- /dev/null +++ b/bin/awk/test/t.4 @@ -0,0 +1 @@ +$1 ~ /5/ || $1 ~ /4/ diff --git a/bin/awk/test/t.4.x b/bin/awk/test/t.4.x new file mode 100644 index 00000000..9ff09e8a --- /dev/null +++ b/bin/awk/test/t.4.x @@ -0,0 +1 @@ +{i=$(1); print i} diff --git a/bin/awk/test/t.5.x b/bin/awk/test/t.5.x new file mode 100644 index 00000000..d5c305c7 --- /dev/null +++ b/bin/awk/test/t.5.x @@ -0,0 +1 @@ +{$(1) = "xxx"; print $1,$0} diff --git a/bin/awk/test/t.6 b/bin/awk/test/t.6 new file mode 100644 index 00000000..177d01e5 --- /dev/null +++ b/bin/awk/test/t.6 @@ -0,0 +1,8 @@ +/a|b|c/ { + i = $1 + print + while (i >= 1) { + print " ", i + i = i / 10 + } +} diff --git a/bin/awk/test/t.6.x b/bin/awk/test/t.6.x new file mode 100644 index 00000000..9f796621 --- /dev/null +++ b/bin/awk/test/t.6.x @@ -0,0 +1 @@ +{print NF,$0} diff --git a/bin/awk/test/t.6a b/bin/awk/test/t.6a new file mode 100644 index 00000000..1cb90c5f --- /dev/null +++ b/bin/awk/test/t.6a @@ -0,0 +1,5 @@ +/a|b|c/ { + print + for (i = $1; i >= 1; ) + print " ", i /= 10 +} diff --git a/bin/awk/test/t.6b b/bin/awk/test/t.6b new file mode 100644 index 00000000..5e36e7da --- /dev/null +++ b/bin/awk/test/t.6b @@ -0,0 +1,5 @@ +/a|b|c/ { + print + for (i = $1; (i /= 10)>= 1; ) + print " ", i +} diff --git a/bin/awk/test/t.8.x b/bin/awk/test/t.8.x new file mode 100644 index 00000000..e08dd478 --- /dev/null +++ b/bin/awk/test/t.8.x @@ -0,0 +1 @@ +{$2=$1; print} diff --git a/bin/awk/test/t.a b/bin/awk/test/t.a new file mode 100644 index 00000000..baa41fb8 --- /dev/null +++ b/bin/awk/test/t.a @@ -0,0 +1,6 @@ + {if (amount[$2] "" == "") item[num++] = $2; + amount[$2] += $1 + } +END {for (i=0; i $1 diff --git a/bin/awk/test/t.coerce b/bin/awk/test/t.coerce new file mode 100644 index 00000000..ff87d79f --- /dev/null +++ b/bin/awk/test/t.coerce @@ -0,0 +1,4 @@ +END { print i, NR + if (i < NR) + print i, NR +} diff --git a/bin/awk/test/t.comment b/bin/awk/test/t.comment new file mode 100644 index 00000000..0b549566 --- /dev/null +++ b/bin/awk/test/t.comment @@ -0,0 +1,5 @@ +# this is a comment line +# so is this +/#/ { print "this one has a # in it: " $0 # comment + print "again:" $0 + } diff --git a/bin/awk/test/t.comment1 b/bin/awk/test/t.comment1 new file mode 100644 index 00000000..599225fc --- /dev/null +++ b/bin/awk/test/t.comment1 @@ -0,0 +1,7 @@ +#comment + # +BEGIN { x = 1 } +/abc/ { print $0 } +#comment +END { print NR } +#comment diff --git a/bin/awk/test/t.contin b/bin/awk/test/t.contin new file mode 100644 index 00000000..66669ee0 --- /dev/null +++ b/bin/awk/test/t.contin @@ -0,0 +1,9 @@ +{ +for (i = 1; i <= NF; i++) { + if ($i ~ /^[0-9]+$/) + continue; + print $i, " is non-numeric" + next +} +print $0, "is all numeric" +} diff --git a/bin/awk/test/t.count b/bin/awk/test/t.count new file mode 100644 index 00000000..5734d149 --- /dev/null +++ b/bin/awk/test/t.count @@ -0,0 +1 @@ +END { print NR } diff --git a/bin/awk/test/t.cum b/bin/awk/test/t.cum new file mode 100644 index 00000000..1f4b4fea --- /dev/null +++ b/bin/awk/test/t.cum @@ -0,0 +1,4 @@ +{i = i + $1; print i} +END { +print i +} diff --git a/bin/awk/test/t.d.x b/bin/awk/test/t.d.x new file mode 100644 index 00000000..38e0fea4 --- /dev/null +++ b/bin/awk/test/t.d.x @@ -0,0 +1,2 @@ +BEGIN {FS=":" ; OFS=":"} +{print NF " ",$0} diff --git a/bin/awk/test/t.e b/bin/awk/test/t.e new file mode 100644 index 00000000..5f243e28 --- /dev/null +++ b/bin/awk/test/t.e @@ -0,0 +1 @@ +$1 < 10 || $2 ~ /bwk/ diff --git a/bin/awk/test/t.else b/bin/awk/test/t.else new file mode 100644 index 00000000..391a4ae4 --- /dev/null +++ b/bin/awk/test/t.else @@ -0,0 +1,3 @@ +{ if($1>1000) print "yes" + else print "no" +} diff --git a/bin/awk/test/t.exit b/bin/awk/test/t.exit new file mode 100644 index 00000000..21b9f4fd --- /dev/null +++ b/bin/awk/test/t.exit @@ -0,0 +1,2 @@ +{ print } +$1 < 5000 { exit NR } diff --git a/bin/awk/test/t.f b/bin/awk/test/t.f new file mode 100644 index 00000000..eddf15fe --- /dev/null +++ b/bin/awk/test/t.f @@ -0,0 +1 @@ +{print $2, $1} diff --git a/bin/awk/test/t.f.x b/bin/awk/test/t.f.x new file mode 100644 index 00000000..3efd8615 --- /dev/null +++ b/bin/awk/test/t.f.x @@ -0,0 +1 @@ +$1>0 {print $1, sqrt($1)} diff --git a/bin/awk/test/t.f0 b/bin/awk/test/t.f0 new file mode 100644 index 00000000..a2ba2ad8 --- /dev/null +++ b/bin/awk/test/t.f0 @@ -0,0 +1 @@ +$1 ~ /x/ {print $0} diff --git a/bin/awk/test/t.f1 b/bin/awk/test/t.f1 new file mode 100644 index 00000000..209554f7 --- /dev/null +++ b/bin/awk/test/t.f1 @@ -0,0 +1 @@ +{$1 = 1; print} diff --git a/bin/awk/test/t.f2 b/bin/awk/test/t.f2 new file mode 100644 index 00000000..59cccde5 --- /dev/null +++ b/bin/awk/test/t.f2 @@ -0,0 +1 @@ +{$1 = 1; print $0} diff --git a/bin/awk/test/t.f3 b/bin/awk/test/t.f3 new file mode 100644 index 00000000..3fb4910e --- /dev/null +++ b/bin/awk/test/t.f3 @@ -0,0 +1 @@ +{$1 = NR; print} diff --git a/bin/awk/test/t.f4 b/bin/awk/test/t.f4 new file mode 100644 index 00000000..27714778 --- /dev/null +++ b/bin/awk/test/t.f4 @@ -0,0 +1 @@ +{$1 = NR; print $0} diff --git a/bin/awk/test/t.for b/bin/awk/test/t.for new file mode 100644 index 00000000..625d73e5 --- /dev/null +++ b/bin/awk/test/t.for @@ -0,0 +1,3 @@ +{ for (i=1; i<=NF; i++) + print i, $i +} diff --git a/bin/awk/test/t.for1 b/bin/awk/test/t.for1 new file mode 100644 index 00000000..022aa520 --- /dev/null +++ b/bin/awk/test/t.for1 @@ -0,0 +1,9 @@ +{ + i = 1 + for (;;) { + if (i > NF) + next + print i, $i + i++ + } +} diff --git a/bin/awk/test/t.for2 b/bin/awk/test/t.for2 new file mode 100644 index 00000000..c3dd8bcc --- /dev/null +++ b/bin/awk/test/t.for2 @@ -0,0 +1,7 @@ +{ + for (i=1;;i++) { + if (i > NF) + next + print i, $i + } +} diff --git a/bin/awk/test/t.format4 b/bin/awk/test/t.format4 new file mode 100644 index 00000000..c273d8b0 --- /dev/null +++ b/bin/awk/test/t.format4 @@ -0,0 +1,9 @@ +BEGIN { +text=sprintf ("%125s", "x") +print length (text) +print text +xxx=substr (text,1,105) +print length (xxx) +print xxx +exit +} diff --git a/bin/awk/test/t.func b/bin/awk/test/t.func new file mode 100644 index 00000000..0250db9d --- /dev/null +++ b/bin/awk/test/t.func @@ -0,0 +1 @@ +{ print $1, length($1), log($1), sqrt($1), int(sqrt($1)), exp($1 % 10) } diff --git a/bin/awk/test/t.getline b/bin/awk/test/t.getline new file mode 100644 index 00000000..d85fe9bf --- /dev/null +++ b/bin/awk/test/t.getline @@ -0,0 +1,10 @@ +{ x = $1 + for (i = 1; i <= 3; i++) + if (getline) + x = x " " $1 + print x + x = "" +} +END { + if (x != "") print x +} diff --git a/bin/awk/test/t.i.x b/bin/awk/test/t.i.x new file mode 100644 index 00000000..858a60a4 --- /dev/null +++ b/bin/awk/test/t.i.x @@ -0,0 +1,2 @@ +{i=i+log($1); print i,log($1)} +END {print exp(i),i} diff --git a/bin/awk/test/t.if b/bin/awk/test/t.if new file mode 100644 index 00000000..123d4119 --- /dev/null +++ b/bin/awk/test/t.if @@ -0,0 +1 @@ +{if($1 || $2) print} diff --git a/bin/awk/test/t.in b/bin/awk/test/t.in new file mode 100644 index 00000000..9be5df1f --- /dev/null +++ b/bin/awk/test/t.in @@ -0,0 +1,8 @@ +BEGIN { + x["apple"] = 1; + x["orange"] = 2; + x["lemon"] = 3; + for (i in x) + print i, x[i] + exit +} diff --git a/bin/awk/test/t.in1 b/bin/awk/test/t.in1 new file mode 100644 index 00000000..d640dc68 --- /dev/null +++ b/bin/awk/test/t.in1 @@ -0,0 +1,7 @@ + { if (amount[$2] == "") + name[++n] = $2 + amount[$2] += $1 + } +END { for (i in name) + print i, name[i], amount[name[i]] + } diff --git a/bin/awk/test/t.in2 b/bin/awk/test/t.in2 new file mode 100644 index 00000000..8c7316d8 --- /dev/null +++ b/bin/awk/test/t.in2 @@ -0,0 +1,4 @@ + { x[substr($2, 1, 1)] += $1 } +END { for (i in x) + print i, x[i] +} diff --git a/bin/awk/test/t.in3 b/bin/awk/test/t.in3 new file mode 100644 index 00000000..1332981f --- /dev/null +++ b/bin/awk/test/t.in3 @@ -0,0 +1,7 @@ + { x[NR] = $0 } +END { + for (i in x) + if (x[i] ~ /shen/) + break + print i, x[i] +} diff --git a/bin/awk/test/t.incr b/bin/awk/test/t.incr new file mode 100644 index 00000000..d8103cd7 --- /dev/null +++ b/bin/awk/test/t.incr @@ -0,0 +1,2 @@ +{ ++i; --j; k++; l-- } +END { print NR, i, j, k, l } diff --git a/bin/awk/test/t.incr2 b/bin/awk/test/t.incr2 new file mode 100644 index 00000000..fdb4adaa --- /dev/null +++ b/bin/awk/test/t.incr2 @@ -0,0 +1,5 @@ +{ s = 0 + for (i=1; i <= NF; ) + s += $(i++) + print s +} diff --git a/bin/awk/test/t.incr3 b/bin/awk/test/t.incr3 new file mode 100644 index 00000000..5a572bf1 --- /dev/null +++ b/bin/awk/test/t.incr3 @@ -0,0 +1,5 @@ +{ s = 0 + for (i=1; i <= NF; s += $(i++)) + ; + print s +} diff --git a/bin/awk/test/t.index b/bin/awk/test/t.index new file mode 100644 index 00000000..73463be8 --- /dev/null +++ b/bin/awk/test/t.index @@ -0,0 +1,8 @@ +{ n = length + d = 0 + for (i = 1; i <= n; i++) + if ((k = index($0, substr($0, i))) != i) + d = 1 + if (d) + print $0, "has duplicate letters" +} diff --git a/bin/awk/test/t.j.x b/bin/awk/test/t.j.x new file mode 100644 index 00000000..291fec56 --- /dev/null +++ b/bin/awk/test/t.j.x @@ -0,0 +1,2 @@ +{i=i+sqrt($1); print i,sqrt($1)} +END {print sqrt(i),i} diff --git a/bin/awk/test/t.longstr b/bin/awk/test/t.longstr new file mode 100644 index 00000000..d2dbeaaf --- /dev/null +++ b/bin/awk/test/t.longstr @@ -0,0 +1,5 @@ +BEGIN{ +x = "111111111122222222233333333334444444444555555555566666666667777777777888888888899999999990000000000" +printf "%s\n", x +exit +} diff --git a/bin/awk/test/t.makef b/bin/awk/test/t.makef new file mode 100644 index 00000000..b0613f5f --- /dev/null +++ b/bin/awk/test/t.makef @@ -0,0 +1 @@ +{$3 = 2*$1; print $1, $2, $3} diff --git a/bin/awk/test/t.match b/bin/awk/test/t.match new file mode 100644 index 00000000..c85876f8 --- /dev/null +++ b/bin/awk/test/t.match @@ -0,0 +1 @@ +$2 ~ /ava|bwk/ diff --git a/bin/awk/test/t.max b/bin/awk/test/t.max new file mode 100644 index 00000000..1e16af35 --- /dev/null +++ b/bin/awk/test/t.max @@ -0,0 +1,2 @@ +length > max { max = length; x = $0} +END { print max, x } diff --git a/bin/awk/test/t.mod b/bin/awk/test/t.mod new file mode 100644 index 00000000..906a0acf --- /dev/null +++ b/bin/awk/test/t.mod @@ -0,0 +1 @@ +NR % 2 == 1 diff --git a/bin/awk/test/t.monotone b/bin/awk/test/t.monotone new file mode 100644 index 00000000..8c42ca9b --- /dev/null +++ b/bin/awk/test/t.monotone @@ -0,0 +1 @@ +/^a?b?c?d?e?f?g?h?i?j?k?l?m?n?o?p?q?r?s?t?u?v?w?x?y?z?$|^z?y?x?w?v?u?t?s?r?q?p?o?n?m?l?k?j?i?h?g?f?e?d?c?b?a?$/ diff --git a/bin/awk/test/t.nameval b/bin/awk/test/t.nameval new file mode 100644 index 00000000..b1852b6c --- /dev/null +++ b/bin/awk/test/t.nameval @@ -0,0 +1,7 @@ + { if (amount[$2] == "") + name[++n] = $2 + amount[$2] += $1 + } +END { for (i = 1; i <= n; i++) + print name[i], amount[name[i]] + } diff --git a/bin/awk/test/t.next b/bin/awk/test/t.next new file mode 100644 index 00000000..6a31d43f --- /dev/null +++ b/bin/awk/test/t.next @@ -0,0 +1,2 @@ +$1 > 5000 { next } +{ print } diff --git a/bin/awk/test/t.not b/bin/awk/test/t.not new file mode 100644 index 00000000..6fd7fc65 --- /dev/null +++ b/bin/awk/test/t.not @@ -0,0 +1,4 @@ +$2 !~ /ava|bwk/ +!($1 < 2000) +!($2 ~ /bwk/) +!$2 ~ /bwk/ diff --git a/bin/awk/test/t.null0 b/bin/awk/test/t.null0 new file mode 100644 index 00000000..f6870f43 --- /dev/null +++ b/bin/awk/test/t.null0 @@ -0,0 +1,15 @@ +BEGIN { FS = ":" } +{ if (a) print "a", a + if (b == 0) print "b", b + if ( c == "0") print "c", c + if (d == "") print "d", d + if (e == 1-1) print "e", e +} +$1 == 0 {print "$1 = 0"} +$1 == "0" {print "$1 = quoted 0"} +$1 == "" {print "$1 = null string"} +$5 == 0 {print "$5 = 0"} +$5 == "0" {print "$5 = quoted 0"} +$5 == "" {print "$5 = null string"} +$1 == $3 {print "$1 = $3"} +$5 == $6 {print "$5 = $6"} diff --git a/bin/awk/test/t.ofmt b/bin/awk/test/t.ofmt new file mode 100644 index 00000000..375b65b9 --- /dev/null +++ b/bin/awk/test/t.ofmt @@ -0,0 +1,2 @@ +BEGIN {OFMT="%.5g"} + {print $1+0} diff --git a/bin/awk/test/t.ofs b/bin/awk/test/t.ofs new file mode 100644 index 00000000..fc9c5cef --- /dev/null +++ b/bin/awk/test/t.ofs @@ -0,0 +1,2 @@ +BEGIN { OFS = " %% "; ORS = "##" } + { print $1, $2; print "#x\n" } diff --git a/bin/awk/test/t.pipe b/bin/awk/test/t.pipe new file mode 100644 index 00000000..2f934813 --- /dev/null +++ b/bin/awk/test/t.pipe @@ -0,0 +1 @@ +BEGIN {print "read /usr/bwk/awk/t.pipe" | "mail bwk"} diff --git a/bin/awk/test/t.pp b/bin/awk/test/t.pp new file mode 100644 index 00000000..ac9e8bc3 --- /dev/null +++ b/bin/awk/test/t.pp @@ -0,0 +1 @@ +/a/,/b/ diff --git a/bin/awk/test/t.pp1 b/bin/awk/test/t.pp1 new file mode 100644 index 00000000..268d0a28 --- /dev/null +++ b/bin/awk/test/t.pp1 @@ -0,0 +1,3 @@ +/bwk/,/bwk/ { print $2, $1 } +/ava/,/ava/ { print $2, $1 } +/pjw/,/pjw/ { print $2, $1 } diff --git a/bin/awk/test/t.pp2 b/bin/awk/test/t.pp2 new file mode 100644 index 00000000..b2e0c7cd --- /dev/null +++ b/bin/awk/test/t.pp2 @@ -0,0 +1,3 @@ +/bwk/,/scj/ { print "1: ", $0 } +/bwk/, /bsb/ { print "2: ", $0 } +/mel/, /doug/ { print "3: ", $0 } diff --git a/bin/awk/test/t.printf b/bin/awk/test/t.printf new file mode 100644 index 00000000..4a808314 --- /dev/null +++ b/bin/awk/test/t.printf @@ -0,0 +1,5 @@ +{ + printf "%%: %s ... %s \t", $2, $1 +x = sprintf "%8d %10.10s", $1, $2 + print x +} diff --git a/bin/awk/test/t.quote b/bin/awk/test/t.quote new file mode 100644 index 00000000..3d0f83c0 --- /dev/null +++ b/bin/awk/test/t.quote @@ -0,0 +1 @@ +{print "\"" $1 "\""} diff --git a/bin/awk/test/t.re1 b/bin/awk/test/t.re1 new file mode 100644 index 00000000..805ee6c5 --- /dev/null +++ b/bin/awk/test/t.re1 @@ -0,0 +1,2 @@ +/[a-cg-j1-3]/ { print $0 " matches /[a-cg-j1-3]/" } +/[^aeiou]/ { print $0 " matches /[^aeiou]/" } diff --git a/bin/awk/test/t.rec b/bin/awk/test/t.rec new file mode 100644 index 00000000..2931df81 --- /dev/null +++ b/bin/awk/test/t.rec @@ -0,0 +1 @@ +{ print sqrt($1) } diff --git a/bin/awk/test/t.redir b/bin/awk/test/t.redir new file mode 100644 index 00000000..475329b8 --- /dev/null +++ b/bin/awk/test/t.redir @@ -0,0 +1,2 @@ +$1%2==1 {print >"oddtemp"} +$1%2==0 {print >"eventemp"} diff --git a/bin/awk/test/t.roff b/bin/awk/test/t.roff new file mode 100644 index 00000000..c3cc12e5 --- /dev/null +++ b/bin/awk/test/t.roff @@ -0,0 +1,23 @@ +NF > 0 { + for (i = 1; i <= NF; i++) { + n = length($i) + if (n + olen >= 60) { + print oline + olen = n + oline = $i + } else { + oline = oline " " $i + olen += n + } + } +} + +NF == 0 { + print oline + olen = 0 +} + +END { + if (olen > 0) + print oline +} diff --git a/bin/awk/test/t.sep b/bin/awk/test/t.sep new file mode 100644 index 00000000..df6865ad --- /dev/null +++ b/bin/awk/test/t.sep @@ -0,0 +1,2 @@ +BEGIN { FS = "1"; print "field separator is", FS } +NF>1 { print $0 " has " NF " fields" } diff --git a/bin/awk/test/t.seqno b/bin/awk/test/t.seqno new file mode 100644 index 00000000..4f6f1e9c --- /dev/null +++ b/bin/awk/test/t.seqno @@ -0,0 +1 @@ +{print NR, $0} diff --git a/bin/awk/test/t.split b/bin/awk/test/t.split new file mode 100644 index 00000000..f1c3bb59 --- /dev/null +++ b/bin/awk/test/t.split @@ -0,0 +1,2 @@ +BEGIN { z = "stuff" } +{ split ($0, x); print x[3], x[2], x[1] } diff --git a/bin/awk/test/t.split2 b/bin/awk/test/t.split2 new file mode 100644 index 00000000..05aef2e5 --- /dev/null +++ b/bin/awk/test/t.split2 @@ -0,0 +1 @@ +{ split ($0, x); print x[2], x[1] } diff --git a/bin/awk/test/t.split9 b/bin/awk/test/t.split9 new file mode 100644 index 00000000..bc62ac85 --- /dev/null +++ b/bin/awk/test/t.split9 @@ -0,0 +1,8 @@ +{ + n = split ($0, x, FS) + if (n != NF) + print "botch at ", NR, n, NF + for (i=1; i<=n; i++) + if ($i != x[i]) + print "diff at ", i, x[i], $i +} diff --git a/bin/awk/test/t.split9a b/bin/awk/test/t.split9a new file mode 100644 index 00000000..b7d8d854 --- /dev/null +++ b/bin/awk/test/t.split9a @@ -0,0 +1,9 @@ +BEGIN { FS = "a" } +{ + n = split ($0, x, FS) + if (n != NF) + print "botch at ", NR, n, NF + for (i=1; i<=n; i++) + if ($i != x[i]) + print "diff at ", i, x[i], $i +} diff --git a/bin/awk/test/t.stately b/bin/awk/test/t.stately new file mode 100644 index 00000000..654458d5 --- /dev/null +++ b/bin/awk/test/t.stately @@ -0,0 +1 @@ +/^(al|ak|az|ar|ca|co|ct|de|fl|ga|hi|io|il|in|ia|ks|ky|la|me|md|ma|mi|mn|ms|mo|mt|nb|nv|nh|nj|nm|ny|nc|nd|oh|ok|or|pa|ri|sc|sd|tn|tx|ut|vt|va|wa|wv|wi|-|wy)*$/ diff --git a/bin/awk/test/t.strcmp b/bin/awk/test/t.strcmp new file mode 100644 index 00000000..4772bf4c --- /dev/null +++ b/bin/awk/test/t.strcmp @@ -0,0 +1 @@ +$2 >= "ava" && $2 <= "bwk" || $2 >= "pjw" diff --git a/bin/awk/test/t.strcmp1 b/bin/awk/test/t.strcmp1 new file mode 100644 index 00000000..d5ff2c6a --- /dev/null +++ b/bin/awk/test/t.strcmp1 @@ -0,0 +1 @@ +$1 != 1 && $1 != 2 && $1 != 3 && $1 != 4 && $1 != 5 diff --git a/bin/awk/test/t.substr b/bin/awk/test/t.substr new file mode 100644 index 00000000..1a595f02 --- /dev/null +++ b/bin/awk/test/t.substr @@ -0,0 +1,2 @@ +substr($2, 1, 1) ~ /[abc]/ +substr($2, length($2)) !~ /[a-z]/ diff --git a/bin/awk/test/t.time b/bin/awk/test/t.time new file mode 100644 index 00000000..c218d8fa --- /dev/null +++ b/bin/awk/test/t.time @@ -0,0 +1,13 @@ +BEGIN { + FS = "-" +} + +/ing$/ { + n++ + s += length($NF) + print +} + +END { + print n, s, s/n >"glop" +} diff --git a/bin/awk/test/t.vf b/bin/awk/test/t.vf new file mode 100644 index 00000000..0df38936 --- /dev/null +++ b/bin/awk/test/t.vf @@ -0,0 +1,3 @@ +BEGIN { i = 1 } +{print $(i+i)} +{print $(1)} diff --git a/bin/awk/test/t.vf1 b/bin/awk/test/t.vf1 new file mode 100644 index 00000000..6c4ce336 --- /dev/null +++ b/bin/awk/test/t.vf1 @@ -0,0 +1,7 @@ +{ print + i = 1 + while (i <= NF) { + print " " $i + i = i + 1 + } +} diff --git a/bin/awk/test/t.vf3 b/bin/awk/test/t.vf3 new file mode 100644 index 00000000..b45ea988 --- /dev/null +++ b/bin/awk/test/t.vf3 @@ -0,0 +1,2 @@ +BEGIN { i=1; j=2 } +{$i = $j; print} diff --git a/bin/awk/test/t.x b/bin/awk/test/t.x new file mode 100644 index 00000000..dca77306 --- /dev/null +++ b/bin/awk/test/t.x @@ -0,0 +1 @@ +/x/ diff --git a/bin/awk/test/test.data b/bin/awk/test/test.data new file mode 100644 index 00000000..3632a65e --- /dev/null +++ b/bin/awk/test/test.data @@ -0,0 +1,138 @@ +/dev/rrp3: +17379 mel +16693 bwk +16116 ken +15713 srb +11895 lem +10409 scj +10252 rhm + 9853 shen + 9748 a68 + 9492 sif + 9190 pjw + 8912 nls + 8895 dmr + 8491 cda + 8372 bs + 8252 llc + 7450 mb + 7360 ava + 7273 jrv + 7080 bin + 7063 greg + 6567 dict + 6462 lck + 6291 rje + 6211 lwf + 5671 dave + 5373 jhc + 5220 agf + 5167 doug + 5007 valerie + 3963 jca + 3895 bbs + 3796 moh + 3481 xchar + 3200 tbl + 2845 s + 2774 tgs + 2641 met + 2566 jck + 2511 port + 2479 sue + 2127 root + 1989 bsb + 1989 jeg + 1933 eag + 1801 pdj + 1590 tpc + 1385 cvw + 1370 rwm + 1316 avg + 1205 eg + 1194 jam + 1153 dl + 1150 lgm + 1031 cmb + 1018 jwr + 950 gdb + 931 marc + 898 usg + 865 ggr + 822 daemon + 803 mihalis + 700 honey + 624 tad + 559 acs + 541 uucp + 523 raf + 495 adh + 456 kec + 414 craig + 386 donmac + 375 jj + 348 ravi + 344 drw + 327 stars + 288 mrg + 272 jcb + 263 ralph + 253 tom + 251 sjb + 248 haight + 224 sharon + 222 chuck + 213 dsj + 201 bill + 184 god + 176 sys + 166 meh + 163 jon + 144 dan + 143 fox + 123 dale + 116 kab + 95 buz + 80 asc + 79 jas + 79 trt + 64 wsb + 62 dwh + 56 ktf + 54 lr + 47 dlc + 45 dls + 45 jwf + 44 mash + 43 ars + 43 vgl + 37 jfo + 32 rab + 31 pd + 29 jns + 25 spm + 22 rob + 15 egb + 10 hm + 10 mhb + 6 aed + 6 cpb + 5 evp + 4 ber + 4 men + 4 mitch + 3 ast + 3 jfr + 3 lax + 3 nel + 2 blue + 2 jfk + 2 njas + 1 122sec + 1 ddwar + 1 gopi + 1 jk + 1 learn + 1 low + 1 nac + 1 sidor diff --git a/bin/awk/test/testall b/bin/awk/test/testall new file mode 100755 index 00000000..3deebe4a --- /dev/null +++ b/bin/awk/test/testall @@ -0,0 +1 @@ +Compare t.* >test.out 2>&1 diff --git a/bin/cpio/Makefile b/bin/cpio/Makefile index a0b72252..917a83c0 100644 --- a/bin/cpio/Makefile +++ b/bin/cpio/Makefile @@ -14,20 +14,12 @@ # IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED # WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. # -# @(#)Makefile 5.3 (Berkeley) 7/9/88 +# @(#)Makefile 5.4 (Berkeley) 9/27/99 # CFLAGS= -O LIBC= /lib/libc.a SRCS= cpio.c OBJS= -MAN= cpio.0 cpio_format.0 - -.SUFFIXES: .5 .1 .0 - -.1.0: - ${DESTDIR}/usr/man/manroff $*.1 > $*.0 -.5.0: - ${DESTDIR}/usr/man/manroff $*.5 > $*.0 all: cpio @@ -42,8 +34,6 @@ depend: FRC install: ${MAN} FRC install -s -o bin -g bin -m 755 cpio ${DESTDIR}/bin/cpio - install -c -o bin -g bin -m 444 cpio.0 ${DESTDIR}/usr/man/cat1/cpio.0 - install -c -o bin -g bin -m 444 cpio_format.0 ${DESTDIR}/usr/man/cat5/cpio.0 lint: FRC lint ${CFLAGS} ${SRCS} diff --git a/doc/index/README b/doc/index/README new file mode 100644 index 00000000..06e864c7 --- /dev/null +++ b/doc/index/README @@ -0,0 +1,187 @@ +The process of putting together the index: + +A. For the 4.3 distribution and the first Usenix printing: + +1. The Indexer (a hairy lisp program) was run on the inputs, +which consisted of troff -a documents and troff -a man pages (many files) +which were specially marked up mechanically -- the page numbers +had TeX-like tags. The run took more than a day for 3500 pages... + +(The program runs on a Symbolics lisp machine; it was a collaborative +effort among several programmers at Thinking Machines Corporation in +Cambridge, MA.) There are a few knobs to adjust the sort of indexing +considered significant, but several passes over the index and over the +documents eliminating badly chosen examples of index-worthy occurrences +of terms were necessary. This took weeks of human time. + +After that there was a final pass of sed/emacs editing to make things barely +reasonable enough to publish, resulting in a file with this content: +Each line contains an example of an index term considered worthy of +indexing, the name of the file containing it, a not-too-useful +percentage-within-the file of the occurrence, and the page number within +document. + +For example (some blanks compressed out for readability): +"here" shell scripts CSH.1: 40% CSH(1)-8 +#define CC.1: 46% CC(1)-2 + " F77.1: 28% F77(1)-1 + " SMM.19: 96% SMM:19-26 + " PS1.01: 77% PS1:1-26 +#else PS1.01: 82% PS1:1-27 +#endif PS1.01: 82% PS1:1-28 +#if PS1.01: 80% PS1:1-27 +#if !defined PS1.01: 81% PS1:1-27 +#ifdef CTAGS.1: 94% + " PS1.01: 81% PS1:1-27 +#ifdefs, removing UNIFDEF.1: 2% UNIFDEF(1)-1 +#ifndef PS1.01: 81% PS1:1-27 +#include F77.1: 29% F77(1)-1 + " PS1.01: 79% PS1:1-27 +#include files HIER.7: 46% HIER(7)-4 +#include path CC.1: 50% CC(1)-2 +#line PS1.01: 82% PS1:1-28 +#undef PS1.01: 79% PS1:1-26 + +Wrong page numbers can result from initial pages with the page number in a +footer (usually only on the first page of -me documents, so these references +appear to be on page 0). Bad page numbers can also result in the +unfortunate case that, for some reason, the ASCII approximation that was +indexed is not exactly what ended up being printed (or was printed on a +different printer). In this case, they're often "almost right", +usually off by a page approaching the end of the document. + +It was also necessary to index documents in several batches, because the +volumes would freeze individually, even though this would involve duplicate +human work. The result is several output files which must be consolidated by +sorting and merging. Notice that the presence of the ditto marks +(representing additional occurences of duplicate index terms, and intended +as a convenience to the reader) makes sorting and merging difficult. + +2. The duphead program replaces the ditto marks in any indexes +with headers duplicated from the header line above them. + +3. The resulting form of the index is then split (according to the first +character of index term) into 27 files (one for each letter and one for +everything else) then sorted, then merged, using splitindex.sh. (This +strategem is useful for shortening the sorting time). + +4. The unduphead program replaces the duplicated heads with ditto marks again. + +One unsolved problem with this coalescing procedure: +The indexer has some knowledge about singular and plural rules in English, +and tries to reduce all plurals to their singular form which has caused some +amusing bugs (e.g. /sys is obviously a plural term, the singular of which +it believes must be /sie...). The unduphead procedure has no such knowledge, +so if an entry is listed as both "filesystem" and "filesystems", or, even +worse "file systems" these are separate entries. Anyway, such entries need to +be combined manually. + +So now the index looks like this: + +"here" shell scripts CSH.1: 40% CSH(1)-8 +#define CC.1: 46% CC(1)-2 + " F77.1: 28% F77(1)-1 + " PS1.01: 77% PS1:1-26 + " PS1.02: 7% PS1:2-5 + " PS1.18: 31% PS1:18-8 + " SMM.19: 96% SMM:19-26 +#else PS1.01: 82% PS1:1-27 +#endif PS1.01: 82% PS1:1-27 +#if PS1.01: 80% PS1:1-27 +#if !defined PS1.01: 81% PS1:1-27 +#ifdef CTAGS.1: 94% + " PS1.01: 81% PS1:1-27 +#ifdefs, removing UNIFDEF.1: 2% UNIFDEF(1)-1 +#ifndef PS1.01: 81% PS1:1-27 +#include F77.1: 29% F77(1)-1 + " PS1.01: 79% PS1:1-27 + " PS1.04: 79% PS1:4-40 +#include files HIER.7: 46% HIER(7)-4 + +5. The reduce program condenses the information in consecutive entries with +the same index term using heuristically-derived rules and some knowledge about +the documents. For example, references to most of a document's pages +will be reduced to a single reference to the entire document; +individual references to contiguous pages will be reduced to a reference to +a range of pages, and ranges will be combined even across single-page gaps, +etc. (The guiding belief is that if there are many references to a term in +a document it is probably "about" that term in a global sense.) +Reduce also groups together the references within published volumes and +outputs them in volume order (User man pages together, User supplementary +docs together, etc.) Reduce also inserts troff macros, which are +defined in index.macs. + +Macro and defined symbol usage: +.L is used for large headings, which appear only at the beginning of a +letter or other index category. +.X is used for each index entry. +The aliased symbol \*(tx is a dash; this hack is the only way we could think +of to have a dash appear but not cause it to be recognized by troff's +hyphenation routines, which would normally break index entries across +the dash. This way an individual entry will always be within the same +line. + +6. The output now looks something like, and is now ready to print using +print.sh (which merely supplies the right troff argument magic): +.L "4.3BSD System Index" +.L "special characters and numbers" +.X "#define" +cc(1)\*(tx2, f77(1)\*(tx1, \s-1PS1\s0:1\*(tx26, \s-1PS1\s0:2\*(tx5, \s-1PS1\s0:18\*(tx8, \s-1SMM\s0:19\*(tx26 +.X "#else" +\s-1PS1\s0:1\*(tx27 +.X "#endif" +\s-1PS1\s0:1\*(tx27 +.X "#if" +\s-1PS1\s0:1\*(tx27 +.X "#if !defined" +\s-1PS1\s0:1\*(tx27 +.X "#ifdef" +ctags(1), \s-1PS1\s0:1\*(tx27 +.X "#ifdefs, removing" +unifdef(1) +.X "#ifndef" +\s-1PS1\s0:1\*(tx27 +.X "#include" +f77(1)\*(tx1, \s-1PS1\s0:1\*(tx27, \s-1PS1\s0:4\*(tx40 +.X "#include files" +hier(7)\*(tx4 +.X "#include path" +cc(1)\*(tx2 +.X "#line" +\s-1PS1\s0:1\*(tx28 +.X "#undef" +\s-1PS1\s0:1\*(tx26 + +B. The future. +1. The index terms need to be inserted back into the troff sources +for the documents. The current scheme is to use a macro which outputs +the index term and the current output byte count and page offset (output to a +separate file descriptor). This will enable documents to evolve without +losing the indexing work. + +2. An index of page numbers and byte offsets in troff -a needs to be +made. This can be used for fast access to individual pages of the +formatted documents for browsing. + +3. A browser needs to be written to take advantage of the possible views +of documents. + +At least these views should be accomodated: +- index view +- table of contents view +- apropos view + +What is a view? It's an editable (at least searchable and scrollable) list +of index terms (and how it's organized is a matter of taste and religion) +and a list of pointers to places in documents. The browser needs to +understand only the pointers, not how the index is organized. + +Other requirements: +The browser should keep a list of places in the index where the user has +been, as well as a list of places documents. It should be easy to return +to places been to recently. + +The browser should run on bitmap displays with full function, and on +curses-supporting asynch terminals with reduced function. + + diff --git a/doc/index/Title b/doc/index/Title new file mode 100644 index 00000000..6ba236af --- /dev/null +++ b/doc/index/Title @@ -0,0 +1,36 @@ +.\" Copyright (c) 1986 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)Title 6.2 (Berkeley) 10/11/86 +.\" +.\" run this off with NO macro package. +.ps 20 +.vs 24 +.sp 2.75i +.ft B +.ce 1 +Master Index +.ps 14 +.vs 16 +.sp |4i +.ce 2 +4.3 Berkeley Software Distribution +Virtual VAX\-11 Version +.sp |5.75i +.ft R +.pt 12 +.vs 16 +.ce +April, 1986 +.sp |8.2i +.bp +.ll 5.3i +.in 1.25i +.hy 0 +.ps 10 +.vs 12p +.sp |4i +This index is in the public domain. +It may be freely copied provided that the acknowledgement +in the introduction is included. diff --git a/doc/index/index.macs b/doc/index/index.macs new file mode 100644 index 00000000..63fd1d04 --- /dev/null +++ b/doc/index/index.macs @@ -0,0 +1,54 @@ +.\" @(#)index 6.1 (Berkeley) 5/23/86 +.\" +.SH +.EH '%''4.3BSD System Index' +.OH '4.3BSD System Index''%' +.nr LL 6.64i +.nr TL 6.64i +.nr PO .9i +.\".MC 3.125i +.2C +.\" .tr -\(mi +.\" translating still results in hyphenation +.\".ds RU \v'5p'\(rn\v'-5p' +.ds tx \(mi +.ds LF +.na +.ps 10 +.vs 12p +.in .35i +.\" .X is for formatting an index entry +.de X +.br +.if e .if \\*(LF .ds LF \\$1 \" first entry on page for footer +.if o .if \\*(RF .ds RF \\$1 \" first entry on page for footer +.nh +.ti -.5i +\&\\fB\\$1\\fP \ +.. +.\" .L is for head letters +.de L +.sp 1i +\&\\fB\s+4\\$1\s0\\fP +.sp 1 +.. +. \" BT - bottom title +.de BT +.nr PF \\n(.f +.nr PX \\n(.s +.ft 1 +.ps \\n(PS +.lt \\n(LTu +.po \\n(POu +.if \\n(TM .if \\n(CT \{\ +. tl ''\\n(PN'' +. nr CT 0 +.\} +.if \\n% .if !\\n(EF .if !\\n(OF .tl \\*(LF\\*(CF\\*(RF +.if \\n% .if \\n(OF .if o .tl \\*(O3 +.if \\n% .if \\n(EF .if e .tl \\*(E4 +.ft \\n(PF +.ps \\n(PX +.ds LF \" undefine it +.ds RF \" undefine it +.. diff --git a/doc/index/index.merged b/doc/index/index.merged new file mode 100644 index 00000000..685a0957 --- /dev/null +++ b/doc/index/index.merged @@ -0,0 +1,46330 @@ + +"here" shell scripts CSH.1: 40% CSH(1)-8 +#define CC.1: 46% CC(1)-2 + " F77.1: 28% F77(1)-1 + " PS1.01: 77% PS1:1-26 + " PS1.02: 7% PS1:2-5 + " PS1.18: 31% PS1:18-8 + " SMM.19: 96% SMM:19-26 +#else PS1.01: 82% PS1:1-27 +#endif PS1.01: 82% PS1:1-27 +#if PS1.01: 80% PS1:1-27 +#if !defined PS1.01: 81% PS1:1-27 +#ifdef CTAGS.1: 94% + " PS1.01: 81% PS1:1-27 +#ifdefs, removing UNIFDEF.1: 2% UNIFDEF(1)-1 +#ifndef PS1.01: 81% PS1:1-27 +#include F77.1: 29% F77(1)-1 + " PS1.01: 79% PS1:1-27 + " PS1.04: 79% PS1:4-40 +#include files HIER.7: 46% HIER(7)-4 +#include path CC.1: 50% CC(1)-2 +#line PS1.01: 82% PS1:1-28 +#undef PS1.01: 79% PS1:1-26 +$* PS1.12: 51% PS1:12-4 + " PS1.12: 95% PS1:12-9 +$, dollar-sign USD.12: 84% USD:12-9 +$< PS1.12: 51% PS1:12-4 + " PS1.12: 95% PS1:12-9 +$? PS1.12: 51% PS1:12-4 +$@ - name of the file to be made by make PS1.12: 50% PS1:12-4 +$Author PS1.13: 50% PS1:13-9 +$Date PS1.13: 50% PS1:13-9 +$Header PS1.13: 16% PS1:13-3 +$Log PS1.13: 18% PS1:13-4 +%% delimiter PS1.16: 10% PS1:16-2 + " PS1.16: 61% PS1:16-8 + " PS1.16: 63% PS1:16-8 + " PS1.16: 64% PS1:16-8 +%A - Author's name USD.29: 10% USD:29-2 +%B - Book containing article USD.29: 10% USD:29-2 +%C - City where published USD.29: 11% USD:29-2 +%D - Date of publication USD.29: 11% USD:29-2 +%E - Editor of book containing article USD.29: 11% USD:29-2 +%H - Header commentary, printed before reference USD.29: 10% USD:29-2 +%I - Issuer (publisher) USD.29: 11% USD:29-2 +%J - Journal containing article USD.29: 10% USD:29-2 +%K - Keywords used to locate reference USD.29: 11% USD:29-2 +%L - Label used by -k option of refer USD.29: 11% USD:29-2 +%N - Number within volume USD.29: 11% USD:29-2 +%O - Other commentary, printed at end of reference USD.29: 11% USD:29-2 +%P - Page number(s) USD.29: 11% USD:29-2 +%Q - Corporate or foreign author (unreversed) USD.29: 10% USD:29-2 +%R - Report, paper, or thesis (for unpublished material) USD.29: 10% USD:29-2 +%S - Series title USD.29: 10% USD:29-2 +%T - Title of article or book USD.29: 10% USD:29-2 +%V - Volume USD.29: 11% USD:29-2 +%X - Abstract (used by roffbib, not by refer) USD.29: 12% USD:29-2 +-ms, Number registers used in USD.20: 95% USD:20-7 +-ms, refer and USD.30: 85% USD:30-10 +-ms, Revised Version of USD.21: 0% USD:21-1 +-ms, String registers used in USD.20: 96% USD:20-7 +-me, Predefined String in USD.23: 68% USD:23-9 +-me, Writing Papers with NROFF using USD.22: 0% USD:22-1 +-me macros, strings, register names, list of USD.23: 75% USD:23-10 +-me macro package USD.22: 0% USD:22-1 +-me macros, list of ME.7: 22% ME(7)-1 +-me reference manual USD.23: 0% USD:23-1 +-ms and eqn USD.27: 52% USD:27-6 +-ms macro package USD.25: 63% USD:25-10 + " USD.29: 83% USD:29-9 +-ms macros and register name[s], list of USD.20: 89% USD:20-7 +-ms Macros with Troff and Nroff, Using the USD.20: 0% USD:20-1 +.../files/dayfile7 - INGRES login message PS2.10: 73% PS2:10-64 +.../files/dbtmplt7 - database template PS2.10: 74% PS2:10-65 +.../files/error7_? - files with INGRES error[s] PS2.10: 75% PS2:10-66 +.../files/grafile7 - GEO-QUEL login message PS2.10: 75% PS2:10-67 +.../files/proctab7 - INGRES runtime configuration information PS2.10: 78% PS2:10-70 +.../files/startup - INGRES startup file PS2.10: 80% PS2:10-72 +.ABORT PS1.05: 53% PS1:5-8 +. INTRO.2: 83% INTRO(2)-6 + " MKDIR.1: 50% MKDIR(1)-1 + " NCHECK.8: 51% NCHECK(8)-1 + " USD.03: 15% USD:3-3 + " USD.04: 68% USD:4-34 + " SMM.05: 37% SMM:5-8 +. (current line) USD.12: 37% USD:12-4 +. (in regular expressions) USD.13: 12% USD:13-2 +. - Bourne shell command SH.1: 69% SH(1)-4 +.$0 - called automatically after each call to .$p USD.23: 20% USD:23-3 +.$1 - .$6 Traps called just before printing that depth section USD.23: 21% USD:23-3 +.$c, .$C macro called by USD.23: 66% USD:23-8 +.$C - macro called by .$c USD.23: 66% USD:23-8 +.$c - Print chapter number USD.23: 65% USD:23-8 +.$f - Print footer USD.23: 27% USD:23-4 +.$h - Called at every page to print the header USD.23: 26% USD:23-4 +.$H - called at the top of every page USD.23: 27% USD:23-4 +.$p, .$0 called automatically after each call to USD.23: 20% USD:23-3 +.$p - Print section heading USD.23: 18% USD:23-3 +.$s - output the footnote separator USD.23: 37% USD:23-5 +.(b - Begin block USD.23: 31% USD:23-4 +.(c - Begin centered block USD.23: 34% USD:23-5 +.(d - Begin delayed text USD.23: 35% USD:23-5 +.(f - Begin footnote USD.23: 36% USD:23-5 +.(l - Begin list USD.23: 29% USD:23-4 +.(q - Begin major quote USD.23: 31% USD:23-4 +.(x - Begin index entry USD.23: 38% USD:23-5 +.(z - Begin floating keep USD.23: 33% USD:23-4 +.)b - End block USD.23: 33% USD:23-4 +.)c - End centered block USD.23: 35% USD:23-5 +.)d - End delayed text USD.23: 35% USD:23-5 +.)f - End footnote USD.23: 37% USD:23-5 +.)l - End list USD.23: 31% USD:23-4 +.)q - End major quote USD.23: 31% USD:23-4 +.)x - End index entry USD.23: 39% USD:23-5 +.)z - End floating keep USD.23: 34% USD:23-5 +.++ - section definition USD.23: 60% USD:23-8 +.+c - Begin chapter with title USD.23: 63% USD:23-8 +.. INTRO.2: 83% INTRO(2)-6 + " MKDIR.1: 59% MKDIR(1)-1 + " NCHECK.8: 51% NCHECK(8)-1 + " USD.03: 15% USD:3-3 + " USD.04: 68% USD:4-34 + " USD.24: 49% USD:24-16 + " SMM.05: 37% SMM:5-8 +.1c - Revert to single-column mode USD.23: 41% USD:23-6 +.2c - Enter two-column mode USD.23: 40% USD:23-5 +.ab USD.24: 81% USD:24-26 +.ac - ACM mode USD.23: 66% USD:23-8 +.ad USD.24: 36% USD:24-13 +.af USD.24: 53% USD:24-17 +.am USD.24: 49% USD:24-16 +.ar - Set page number in Arabic USD.23: 48% USD:23-6 +.as USD.24: 50% USD:24-16 +.b - bold font USD.23: 44% USD:23-6 +.ba - Set the base indent USD.23: 55% USD:23-7 +.bc - Begin column USD.23: 41% USD:23-6 +.bd USD.24: 28% USD:24-10 +.bi - bold italic[s] USD.23: 46% USD:23-6 +.bl - Leave contiguous white space USD.23: 48% USD:23-6 +.bp USD.24: 31% USD:24-11 +.bp, .pa Equivalent to USD.23: 48% USD:23-6 +.br USD.24: 36% USD:24-12 +.bu - paragraphs with bullet[s] USD.23: 13% USD:23-2 +.bx - set in a box USD.23: 47% USD:23-6 +.c2 USD.24: 61% USD:24-20 +.cc USD.24: 61% USD:24-20 +.ce USD.24: 37% USD:24-13 +.ch USD.24: 51% USD:24-17 +.cs USD.24: 27% USD:24-10 +.cshrc TSET.1: 37% TSET(1)-2 + " WHICH.1: 53% WHICH(1)-1 + " USD.04: 23% USD:4-11 + " USD.04: 74% USD:4-36 + " SU.1: 83% SU(1)-1 + " CSH.1: 92% CSH(1)-19 + " CSH.1: 84% CSH(1)-18 + " CSH.1: 79% CSH(1)-17 + " CSH.1: 1% CSH(1)-1 + " RCP.1C: 95% unknown + " USD.04: 95% USD:4-43 + " USD.07: 2% USD:7-2 +.cu USD.24: 60% USD:24-19 +.da USD.24: 50% USD:24-17 +.data PS1.05: 57% PS1:5-8 +.DEFAULT PS1.12: 52% PS1:12-4 + " PS1.14: 79% PS1:14-11 +.IGNORE PS1.12: 48% PS1:12-4 +.de USD.24: 49% USD:24-16 +.di USD.24: 50% USD:24-17 + " USD.25: 85% USD:25-12 +.ds USD.24: 49% USD:24-16 + " USD.25: 45% USD:25-7 +.dt USD.24: 51% USD:24-17 +.ec USD.24: 58% USD:24-19 +.ef - Define footer USD.23: 24% USD:23-3 +.eh - Define header USD.23: 24% USD:23-3 +.el USD.24: 75% USD:24-24 +.em USD.24: 51% USD:24-17 +.EN USD.27: 10% USD:27-2 +.EN - End equation USD.23: 51% USD:23-7 +.eo USD.24: 58% USD:24-19 +.ep - End this page, but do not begin the next page USD.23: 26% USD:23-4 +.EQ USD.27: 10% USD:27-2 +.EQ - Begin equation USD.23: 50% USD:23-7 +.ev USD.24: 77% USD:24-24 + " USD.25: 82% USD:25-12 +.ex USD.24: 78% USD:24-25 +.exrc USD.16: 3% USD:16-1 + " SMM.12A: 17% SMM:12-5 +.fc USD.24: 57% USD:24-18 +.fi USD.24: 36% USD:24-12 +.fl USD.24: 81% USD:24-26 +.fo - Define footer USD.23: 24% USD:23-3 +.forward VACATION.1: 16% VACATION(1)-1 + " SMM.16: 47% SMM:16-7 +.forward File SMM.07A: 21% SMM:07-11 +.fp USD.24: 29% USD:24-11 +.ft USD.24: 29% USD:24-10 +.fz USD.24: 27% USD:24-10 +.GE - End gremlin picture USD.23: 54% USD:23-7 +.GF - End gremlin picture (alternate form) USD.23: 54% USD:23-7 +.GS - Begin gremlin picture USD.23: 54% USD:23-7 +.hc USD.24: 70% USD:24-22 +.he - Define three-part header USD.23: 24% USD:23-3 +.hl - Draws a horizontal line the length of the page USD.23: 56% USD:23-7 +.hw USD.24: 70% USD:24-22 +.hx - Suppress headers and footers on the next page USD.23: 25% USD:23-4 +.i - italic font USD.23: 44% USD:23-6 +.ie USD.24: 75% USD:24-24 +.IE - End ideal picture USD.23: 54% USD:23-7 +.if USD.24: 74% USD:24-24 + " USD.25: 77% USD:25-11 +.IF - End ideal picture (alternate form) USD.23: 54% USD:23-7 +.ig USD.24: 80% USD:24-25 +.in USD.24: 42% USD:24-14 + " USD.25: 25% USD:25-4 +.ip - Indented paragraph with hanging tag USD.23: 11% USD:23-2 +.IS - Begin ideal picture USD.23: 54% USD:23-7 +.it USD.24: 51% USD:24-17 +.ix - Indent, no break USD.23: 48% USD:23-6 +.joverc USD.17: 53% USD:17-23 + " JOVE.N: 69% JOVE(1)-2 + " USD.17: 55% USD:17-24 + " USD.17: 93% USD:17-45 + " USD.17: 96% USD:17-46 +.lc USD.24: 57% USD:24-18 +.lg USD.24: 59% USD:24-19 +.lh - Print a letterhead at the current position USD.23: 57% USD:23-8 +.line PS1.05: 55% PS1:5-8 +.ll USD.24: 42% USD:24-14 + " USD.25: 24% USD:25-4 +.ll - Set line length in all environment[s] USD.23: 56% USD:23-7 +.lo - load local macro[s] USD.23: 58% USD:23-8 +.login TSET.1: 11% TSET(1)-1 + " TSET.1: 36% TSET(1)-2 + " TSET.1: 67% TSET(1)-3 + " USD.01: 69% USD:1-10 + " USD.04: 24% USD:4-11 + " USD.15: 4% USD:15-2 + " USD.11: 76% USD:11-11 + " USD.09: 51% USD:9-6 + " USD.09: 50% USD:9-6 + " USD.09: 15% USD:9-2 + " USD.04: 98% USD:4-44 + " USD.04: 84% USD:4-39 + " USD.04: 82% USD:4-39 + " USD.04: 44% USD:4-20 + " USD.04: 29% USD:4-13 + " USD.04: 28% USD:4-13 + " USD.04: 25% USD:4-11 + " TSET.1: 36% TSET(1)-2 + " MSGS.1: 68% MSGS(1)-1 + " MSET.1: 32% MSET(1)-1 + " CSH.1: 1% CSH(1)-1 + " USD.04: 84% USD:4-39 + " USD.15: 48% USD:15-14 +.logout USD.04: 26% USD:4-11 + " USD.04: 84% USD:4-39 + " USD.04: 84% USD:4-40 +.lp - Begin left-justified paragraph USD.23: 9% USD:23-2 +.ls USD.24: 39% USD:24-13 +.lt USD.24: 72% USD:24-23 +.m1 - Set the space between the top of the page and the header USD.23: 25% USD:23-4 +.m2 - Set the space between the header and the first line of text USD.23: 25% USD:23-4 +.m3 - Set the space between the bottom of the text and the footer USD.23: 26% USD:23-4 +.m4 - Set the space between the footer and the bottom of the page USD.23: 26% USD:23-4 +.mailcf SMM.16: 57% SMM:16-8 +.mailrc USD.07: 18% USD:7-5 + " MAIL.1: 21% MAIL(1)-2 + " USD.07: 54% USD:7-13 + " USD.07: 25% USD:7-6 + " MAIL.1: 96% MAIL(1)-6 + " MAIL.1: 25% MAIL(1)-2 + " USD.07: 68% USD:7-16 +.mc USD.24: 79% USD:24-25 +.mhprofile USD.08: 71% USD:8-87 +.mhprofile - user customization for MH message system USD.08: 69% USD:8-85 + " USD.08: 2% USD:8-2 + " USD.08: 7% USD:8-6 + " USD.08: 22% USD:8-24 + " USD.08: 63% USD:8-77 + " USD.08: 69% USD:8-85 +.mhsequence USD.08: 70% USD:8-85 +.mk USD.24: 32% USD:24-11 +.n2 - Number lines from N, stop if N = 0 USD.23: 49% USD:23-6 +.na USD.24: 37% USD:24-13 +.ne USD.24: 31% USD:24-11 +.newsrc USD.09: 40% USD:9-5 + " USD.09: 40% USD:9-5 + " USD.09: 29% USD:9-4 + " SMM.10: 80% SMM:10-20 + " SMM.10: 76% SMM:10-19 + " USD.09: 26% USD:9-3 +.nf USD.24: 36% USD:24-12 + " USD.25: 30% USD:25-5 +.nh USD.24: 70% USD:24-22 +.nm USD.24: 73% USD:24-23 +.nn USD.24: 73% USD:24-23 +.np - numbered paragraph USD.23: 12% USD:23-2 +.nr USD.24: 53% USD:24-17 + " USD.25: 62% USD:25-9 + " USD.25: 69% USD:25-10 +.ns USD.24: 41% USD:24-14 +.nx USD.24: 79% USD:24-25 +.os USD.24: 40% USD:24-14 +.o - register USD.24: 31% USD:24-11 +.of - Define footer USD.23: 25% USD:23-3 +.oh - Define header USD.23: 24% USD:23-3 +.pa - Equivalent to .bp USD.23: 48% USD:23-6 +.pc USD.24: 72% USD:24-23 +.pd - Print delayed text USD.23: 36% USD:23-5 +.PE - End pic picture USD.23: 54% USD:23-7 +.pi USD.24: 79% USD:24-25 +.pl USD.24: 30% USD:24-11 +.plan SMM.12A: 32% SMM:12-7 +.pm USD.24: 80% USD:24-26 +.pn USD.24: 31% USD:24-11 +.po USD.24: 31% USD:24-11 + " USD.25: 25% USD:25-4 +.pp - paragraph macro USD.23: 11% USD:23-2 +.profile TSET.1: 11% TSET(1)-1 + " TSET.1: 67% TSET(1)-3 + " USD.01: 65% USD:1-10 + " USD.15: 4% USD:15-2 + " SMM.12A: 32% SMM:12-7 + " USD.03: 19% USD:3-4 + " USD.03: 92% USD:3-22 + " SH.1: 91% SH(1)-6 + " RCP.1C: 95% unknown + " ENVIRON.7: 89% ENVIRON(7)-1 + " USD.09: 15% USD:9-2 +.PS - Begin pic picture USD.23: 54% USD:23-7 +.ps USD.24: 27% USD:24-10 + " USD.25: 9% USD:25-2 +.q - directed quote mark USD.23: 46% USD:23-6 +.r roman font USD.23: 43% USD:23-6 +.rb bold font USD.23: 45% USD:23-6 +.rd USD.24: 78% USD:24-25 +.re Reset tab[s] USD.23: 55% USD:23-7 +.rhost PS1.08: 77% PS1:8-31 +.rhost SMM.01: 71% SMM:1-42 + " SMM.01: 71% SMM:1-42 + " RLOGIN.1C: 40% RLOGIN(1C)-1 + " RCMD.3: 69% RCMD(3)-1 +.rm USD.24: 50% USD:24-16 +.rn USD.24: 50% USD:24-17 +.ro - Set page number in roman numeral[s] USD.23: 48% USD:23-6 +.rr USD.24: 54% USD:24-18 +.rs USD.24: 41% USD:24-14 +.rt USD.24: 32% USD:24-12 +.sc - Define special characters and diacritical mark[s] USD.23: 72% USD:23-9 +.sh - begin numbered section USD.23: 14% USD:23-2 +.signature USD.08: 54% USD:8-64 +.sk - Leave next page blank, but for headers and footer USD.23: 49% USD:23-6 +.sm - smaller pointsize USD.23: 47% USD:23-6 +.so USD.24: 79% USD:24-25 +.sp USD.24: 41% USD:24-14 + " USD.24: 33% USD:24-12 + " USD.24: 40% USD:24-14 + " USD.25: 15% USD:25-3 +.ss USD.24: 27% USD:24-10 +.SUFFIX PS1.12: 92% PS1:12-9 +.sv USD.24: 40% USD:24-14 +.sx - new paragraph within section USD.23: 18% USD:23-3 +.syslinelock SYSLINE.1: 78% SYSLINE(1)-2 +.sz - set pointsize (and line spacing) USD.23: 42% USD:23-6 +.ta USD.24: 56% USD:24-18 + " USD.25: 30% USD:25-5 +.tc USD.24: 57% USD:24-18 + " USD.25: 31% USD:25-5 +.TE USD.28: 5% USD:28-1 +.TE - Table end USD.23: 53% USD:23-7 +.text PS1.05: 57% PS1:5-8 +.th - Set thesis mode USD.23: 59% USD:23-8 +.TH - With .TS H, ends the header portion of the table USD.23: 53% USD:23-7 +.ti USD.24: 42% USD:24-14 + " USD.25: 27% USD:25-5 +.tl USD.24: 71% USD:24-22 +.tm USD.24: 80% USD:24-25 +.tp - Begin title page USD.23: 58% USD:23-8 +.tr USD.24: 62% USD:24-20 + " USD.25: 23% USD:25-4 +.TS - Table start USD.23: 52% USD:23-7 +.TS USD.28: 5% USD:28-1 +.u - underline USD.23: 45% USD:23-6 +.uf USD.24: 61% USD:24-20 +.uh - Unnumbered section heading USD.23: 18% USD:23-3 +.ul USD.24: 60% USD:24-19 + " USD.25: 13% USD:25-3 +.vacation.msg VACATION.1: 29% VACATION(1)-1 +.vs USD.24: 39% USD:24-13 +.wh USD.24: 50% USD:24-17 + " USD.25: 54% USD:25-8 +.who SYSLINE.1: 26% SYSLINE(1)-1 +.windowrc WINDOW.1: 9% WINDOW(1)-1 +.xl - Set the line length USD.23: 56% USD:23-7 +.xp print index USD.23: 39% USD:23-5 +.[ USD.29: 39% USD:29-4 + " USD.30: 80% USD:30-9 +.[] USD.31: 6% USD:31-1 +.] USD.29: 39% USD:29-4 + " USD.30: 80% USD:30-9 +.]< USD.30: 88% USD:30-11 +.]> USD.30: 88% USD:30-11 +.][ USD.29: 72% USD:29-8 + " USD.30: 80% USD:30-9 +/* ARGSUSED */ PS1.09: 83% PS1:9-9 +/* LINTLIBRARY */ PS1.09: 84% PS1:9-9 +/* NOSTRICT */ PS1.09: 82% PS1:9-8 +/* NOTREACHED */ PS1.09: 81% PS1:9-8 +/* VARARGS */ PS1.09: 83% PS1:9-9 +/*/quotas - file system quota file[s] SMM.01: 28% SMM:1-20 +/.cshrc - root csh startup script SMM.01: 26% SMM:1-18 +/.login - root csh login script SMM.01: 26% SMM:1-19 +/.profile SMM.01: 18% SMM:1-13 +/.profile - root sh startup script SMM.01: 26% SMM:1-19 +/.rhosts SMM.01: 71% SMM:1-42 +/.rhosts - for trusted machines and user[s] SMM.01: 26% SMM:1-19 +/bin HIER.7: 6% HIER(7)-1 + " USD.04: 27% USD:4-12 +/dev HIER.7: 3% HIER(7)-1 + " SMM.01: 6% SMM:1-4 + " SMM.01: 40% SMM:1-26 +/dev/console SYSLOG.3: 36% SYSLOG(3)-1 +/dev/drum PS.1: 58% PS(1)-2 +/dev/klog SYSLOGD.8: 14% SYSLOGD(8)-1 +/dev/kmem MEM.4: 94% unknown + " SMM.01: 31% SMM:1-21 +/dev/kUmem MEM.4: 95% unknown +/dev/log SYSLOGD.8: 12% SYSLOGD(8)-1 +/dev/MAKEDEV SMM.01: 26% SMM:1-19 + " SMM.01: 40% SMM:1-26 +/dev/MAKEDEV.local - for making local device[s] SMM.01: 26% SMM:1-19 +/dev/mem MEM.4: 93% unknown + " SMM.01: 31% SMM:1-21 +/dev/mt? MTIO.4: 94% MTIO(4)-2 +/dev/null NULL.4: 83% NULL(4)-1 + " SH.1: 53% SH(1)-4 +/dev/printer - socket on which lpd listen[s] SMM.06: 5% SMM:6-2 +/dev/pty[p-r][0-9a-f] PTY.4: 96% PTY(4)-2 +/dev/rmt12 MT.1: 24% unknown +/dev/rmt? MTIO.4: 94% MTIO(4)-2 +/dev/tty TTY.4: 0% TTY(4)-1 + " VHANGUP.2: 83% VHANGUP(2)-1 +/dev/tty[p-r][0-9a-f] PTY.4: 97% PTY(4)-2 +/etc HIER.7: 10% HIER(7)-1 +/etc/disktab DISKPART.8: 21% DISKPART(8)-1 + " GETDISK.3: 46% GETDISKBYNAME(3) + " NEWFS.8: 11% NEWFS(8)-1 + " SMM.01: 43% SMM:1-28 + " SMM.01: 44% SMM:1-29 +/etc/disktab - contains disk partition size[s] SMM.01: 26% SMM:1-19 +/etc/dumpdates DUMP.8: 17% DUMP(8)-1 +/etc/fstab DUMP.8: 33% DUMP(8)-1 + " FSCK.8: 8% FSCK(8)-1 + " FSTAB.5: 5% FSTAB(5)-1 + " MOUNT.8: 49% MOUNT(8)-1 + " SWAPON.8: 57% SWAPON(8)-1 +/etc/fstab - disk configuration data SMM.01: 26% SMM:1-19 +/etc/ftpusers FTPD.8C: 59% FTPD(8C)-2 + " SMM.01: 26% SMM:1-19 + " SMM.01: 72% SMM:1-43 +/etc/gateways ROUTED.8C: 60% ROUTED(8C)-2 +/etc/gateways - routing daemon database SMM.01: 27% SMM:1-19 +/etc/getty INIT.8: 28% INIT(8)-1 + " SMM.01: 52% SMM:1-33 +/etc/gettytab GETTY.8: 30% GETTY(8)-1 + " SMM.01: 52% SMM:1-33 + " SMM.12A: 81% SMM:12-19 +/etc/gettytab - getty database SMM.01: 27% SMM:1-19 +/etc/group FIND.1: 41% FIND(1)-1 + " GETGRENT.3: 84% GETGRENT(3)-1 + " GROUP.5: 77% unknown + " GROUPS.1: 49% unknown + " INITGROUPS.3: 57% unknown + " SMM.01: 31% SMM:1-21 +/etc/group - group data base SMM.01: 27% SMM:1-19 +/etc/hosts PS1.08: 32% PS1:8-11 +/etc/hosts GETHOSTBYNAME.3N: 19% GETHOSTBYNAME(3) +/etc/hosts and /etc/network, Regenerating SMM.01: 69% SMM:1-42 +/etc/hosts - host information SMM.01: 27% SMM:1-19 +/etc/hosts.equiv LPD.8: 20% LPD(8)-1 + " PS1.08: 76% PS1:8-31 + " RCMD.3: 68% RCMD(3)-1 + " RLOGIN.1C: 13% RLOGIN(1C)-1 + " SMM.01: 70% SMM:1-42 + " SMM.06: 56% SMM:6-4 +/etc/hosts.equiv - host equivalence information SMM.01: 27% SMM:1-19 +/etc/hosts.equiv - list of ``trusted'' hosts SMM.01: 68% SMM:1-41 +/etc/hosts.lpd LPD.8: 20% LPD(8)-1 + " SMM.06: 56% SMM:6-4 +/etc/hosts.lpd - list of host allowed to use the printer SMM.01: 54% SMM:1-34 +/etc/inetd.conf INETD.8: 18% INETD(8)-1 + " PS1.08: 98% PS1:8-41 + " SMM.01: 68% SMM:1-41 +/etc/init CRASH.8V: 26% CRASH(8V)-1 +/etc/map3270 MSET.1: 15% MSET(1)-1 +/etc/motd - message of the day SMM.01: 84% SMM:1-51 +/etc/mtab MOUNT.8: 63% MOUNT(8)-1 + " MTAB.5: 93% unknown + " QUOTAON.8: 84% QUOTAON(8)-1 +/etc/named.boot NAMED.8: 7% NAMED(8)-1 +/etc/networks PS1.08: 35% PS1:8-13 +/etc/networks GETNETENT.3N: 28% GETNETENT(3N)-1 +/etc/networks, Regenerating /etc/hosts and SMM.01: 69% SMM:1-42 +/etc/networks network information SMM.01: 27% SMM:1-19 +/etc/nologin LOGIN.1: 59% LOGIN(1)-1 + " SHUTDOWN.8: 45% SHUTDOWN(8)-1 +/etc/passwd FIND.1: 38% FIND(1)-1 + " FTPD.8C: 55% FTPD(8C)-2 + " GROUPS.1: 39% unknown + " MKPASSWD.8: 57% unknown + " PASSWD.5: 82% unknown + " VIPW.8: 18% VIPW(8)-1 + " USD.04: 77% USD:4-37 + " SMM.01: 53% SMM:1-34 +/etc/passwd file PS2.10: 72% PS2:10-63 + " PS2.10: 72% PS2:10-63 + " PS2.10: 72% PS2:10-63 + " PS2.10: 81% PS2:10-74 + " PS2.10: 81% PS2:10-74 +/etc/passwd - user data base SMM.01: 27% SMM:1-19 +/etc/phones PHONES.5: 11% PHONES(5)-1 + " REMOTE.5: 83% REMOTE(5)-1 + " TIP.1C: 95% TIP(1)-4 +/etc/printcap PRINTCAP.5: 2% PRINTCAP(5)-1 +/etc/printcap line printer database SMM.01: 27% SMM:1-19 +/etc/printcap - printer configuration and capability data base SMM.01: 54% SMM:1-34 + " SMM.06: 4% SMM:6-2 +/etc/protocols GETPROTOENT.3N: 34% GETPROTOENT(3N) + " INETD.8: 40% INETD(8)-1 + " PROTOCOLS.5: 81% PROTOCOLS(5)-1 + " PS1.08: 36% PS1:8-14 + " SMM.01: 27% SMM:1-19 +/etc/protocols - protocol names SMM.01: 68% SMM:1-41 +/etc/psdatabase PS.1: 96% PS(1)-3 +/etc/rc CRON.8: 29% CRON(8)-1 + " FASTBOOT.8: 71% + " FSCK.8: 7% FSCK(8)-1 + " INIT.8: 17% INIT(8)-1 + " RC.8: 7% RC(8)-1 + " SMM.07A: 10% SMM:07-7 +/etc/rc.local HOSTID.1: 82% unknown + " HOSTNAME.1: 77% unknown + " INETD.8: 4% INETD(8)-1 + " RC.8: 8% RC(8)-1 + " SMM.01: 54% SMM:1-34 + " SMM.07A: 10% SMM:07-7 +/etc/rc.local - site specific system startup command[s] SMM.01: 27% SMM:1-19 +/etc/remote TIP.1C: 29% TIP(1C)-2 + " REMOTE.5: 97% REMOTE(5)-1 +/etc/remote - auto-dialer configuration SMM.01: 27% SMM:1-19 +/etc/resolv.conf RESOLVER.5: 91% RESOLVER(5)-1 +/etc/securettys - list of ttys where root can log in SMM.01: 27% SMM:1-19 +/etc/services GETSERVENT.3N: 29% GETSERVENT(3N)- + " INETD.8: 30% INETD(8)-1 + " PS1.08: 37% PS1:8-14 + " SERVICES.5: 84% SERVICES(5)-1 + " SYSLOGD.8: 13% SYSLOGD(8)-1 +/etc/shells GETUSERSHELL.3: 39% unknown + " PASSWD.1: 40% PASSWD(1)-1 +/etc/syslog.conf SYSLOGD.8: 6% SYSLOGD(8)-1 +/etc/syslog.conf - system logger configuration SMM.01: 27% SMM:1-19 +/etc/syslog.pid SYSLOGD.8: 95% SYSLOGD(8)-2 +/etc/termcap TERMCAP.5: 98% TERMCAP(5)-14 + " UL.1: 34% UL(1)-1 +/etc/ttys INIT.8: 25% INIT(8)-1 + " TSET.1: 6% TSET(1)-1 + " TTYNAME.3: 80% TTYNAME(3)-1 + " TTYS.5: 95% TTYS(5)-1 + " SMM.01: 51% SMM:1-32 + " SMM.01: 51% SMM:1-33 + " SMM.12A: 80% SMM:12-19 +/etc/ttys - terminal line configuration data SMM.01: 27% SMM:1-19 +/etc/ttytype - terminal line to terminal type mapping data SMM.01: 27% SMM:1-19 +/etc/utmp GETLOGIN.3: 21% GETLOGIN(3)-1 + " UTMP.5: 93% UTMP(5)-1 + " WHO.1: 26% WHO(1)-1 +/fastboot FASTBOOT.8: 59% +/genvmunix SMM.01: 41% SMM:1-27 +/lib HIER.7: 8% HIER(7)-1 + " LD.1: 50% LD(1)-1 +/lost+found HIER.7: 2% HIER(7)-1 +/sys SMM.01: 80% SMM:1-48 + " SMM.01: 86% SMM:1-52 +/sys/conf SMM.02: 9% SMM:2-4 +/sys/conf - site configuration files and basic template[s] SMM.01: 39% SMM:1-26 +/sys/conf/ SMM.01: 28% SMM:1-19 +/sys/conf/GENERIC SMM.02: 10% SMM:2-4 +/sys/dist SMM.01: 86% SMM:1-52 +/sys/GENERIC SMM.02: 10% SMM:2-4 +/sys/h - machine independent include file[s] SMM.01: 39% SMM:1-26 +/sys/net - network independent, but network related code SMM.01: 39% SMM:1-26 +/sys/netimp - IMP support code SMM.01: 39% SMM:1-26 +/sys/netinet 0 DARPA Internet code SMM.01: 39% SMM:1-26 +/sys/netns - Xerox NS support code SMM.01: 39% SMM:1-26 +/sys/stand SMM.01: 78% SMM:1-48 +/sys/sys - machine independent kernel source SMM.01: 39% SMM:1-26 +/sys/vax - VAX specific mainline code SMM.01: 39% SMM:1-26 +/sys/vaxif - VAX network interface code SMM.01: 39% SMM:1-26 +/sys/vaxmba - VAX MASSBUS device drivers and related code SMM.01: 39% SMM:1-26 +/sys/vaxuba - VAX UNIBUS device drivers and related code SMM.01: 39% SMM:1-26 +/tmp HIER.7: 35% HIER(7)-4 +/usr HIER.7: 37% HIER(7)-4 +/usr file system, check the consistency of the SMM.01: 23% SMM:1-16 +/usr/adm/acct LASTCOMM.1: 92% unknown + " SA.8: 15% SA(8)-1 + " SMM.01: 82% SMM:1-50 +/usr/adm/messages INTRO.4: 10% INTRO(4)-1 + " INTRO.4N: 26% INTRO(4N)-1 + " SMM.01: 75% SMM:1-46 +/usr/adm/savacct SA.8: 16% SA(8)-1 +/usr/adm/shutdownlog SMM.01: 75% SMM:1-46 +/usr/adm/timed.log TIMED.8: 47% TIMED(8)-1 + " TIMEDC.8: 66% TIMEDC(8)-1 +/usr/adm/timed.masterlog TIMED.8: 91% TIMED(8)-1 +/usr/adm/tracct TROFF.1: 90% TROFF(1)-1 +/usr/adm/wtmp HALT.8: 67% HALT(8)-1 + " INIT.8: 39% INIT(8)-1 + " REBOOT.8: 17% REBOOT(8)-1 + " UTMP.5: 93% UTMP(5)-1 + " WHO.1: 38% WHO(1)-1 + " SMM.01: 82% SMM:1-50 +/usr/bin USD.04: 27% USD:4-12 +/usr/dict/papers/Ind. REFER.1: 45% REFER(1)-1 +/usr/dict/papers/INDEX INVERT.N: 29% INVERT(1)-1 +/usr/dict/words HANGMAN.6: 79% unknown + " LOOK.1: 86% unknown + " SMM.12A: 80% SMM:12-19 +/usr/hosts RSH.1C: 69% RSH(1C)-1 +/usr/include SMM.01: 39% SMM:1-26 +/usr/include/protocols SMM.12A: 76% SMM:12-18 +/usr/ingres SMM.01: 24% SMM:1-17 + " SMM.01: 86% SMM:1-52 +/usr/lib LD.1: 50% LD(1)-1 +/usr/lib/alias MSGS.1: 57% MSGS(1)-1 + " NEWALIASES.1: 54% NEWALIASES(1)-1 +/usr/lib/aliases MAIL.1: 22% MAIL(1)-2 +/usr/lib/aliases - mail forwarding data base SMM.01: 27% SMM:1-19 +/usr/lib/aliases - mail forwarding information SMM.01: 56% SMM:1-35 +/usr/lib/aliases* SMM.07A: 8% SMM:07-6 +/usr/lib/crontab CRON.8: 13% CRON(8)-1 + " MSGS.1: 61% MSGS(1)-1 + " SMM.01: 32% SMM:1-21 + " SMM.12A: 84% SMM:12-20 +/usr/lib/crontab - cron daemon data base SMM.01: 27% SMM:1-19 +/usr/lib/eign PTX.1: 73% PTX(1)-1 +/usr/lib/libmp.a MP.3X: 85% MP(3X)-2 +/usr/lib/lint/ LINT.1: 85% LINT(1)-2 +/usr/lib/Mail.rc USD.07: 18% USD:7-5 +/usr/lib/me/letterhead.me USD.23: 57% USD:23-8 +/usr/lib/me/local.me USD.23: 58% USD:23-8 +/usr/lib/sendmail.cf SENDMAIL.8: 90% SENDMAIL(8)-3 + " SMM.07A: 88% SMM:07-38 +/usr/lib/sendmail.cf - sendmail configuration SMM.01: 27% SMM:1-19 +/usr/lib/sendmail.fc SMM.07A: 9% SMM:07-6 + " SMM.07A: 88% SMM:07-38 +/usr/lib/sendmail.st SMM.07A: 88% SMM:07-38 +/usr/lib/tabset/* - tab setting file[s] SMM.01: 27% SMM:1-19 +/usr/lib/tmac/tmac.s USD.21: 98% USD:21-3 +/usr/lib/tmac/tmac.* NROFF.1: 86% NROFF(1)-1 + " TROFF.1: 84% TROFF(1)-1 +/usr/lib/tmac/tmac.bib ROFFBIB.1: 87% ROFFBIB(1)-1 + " USD.29: 30% USD:29-3 + " USD.29: 84% USD:29-9 +/usr/lib/units UNITS.1: 92% UNITS(1)-1 +/usr/lib/uucp/ - UUCP internal files/utility[s] UUCICO.8C: 73% UUCICO(8C)-2 +/usr/lib/uucp/L-devices L-DEVICES.5: 95% L-DEVICES(5)-2 +/usr/lib/uucp/L-devices - list of dialers and hard-wired line[s] SMM.01: 58% SMM:1-36 +/usr/lib/uucp/L-devices - Local device description[s] UUCICO.8C: 74% UUCICO(8C)-2 +/usr/lib/uucp/L-dialcodes L-DIALCODES.5: 90% L-DIALCODES(5)- +/usr/lib/uucp/L-dialcodes - dialcode abbreviation[s] SMM.01: 58% SMM:1-36 +/usr/lib/uucp/L-dialcodes - Phone numbers and prefix[s] UUCICO.8C: 75% UUCICO(8C)-2 +/usr/lib/uucp/L.aliases L_ALIASES.5: 85% unknown +/usr/lib/uucp/L.aliases - Hostname aliases UUCICO.8C: 76% UUCICO(8C)-2 +/usr/lib/uucp/L.cmds - commands remote sites may execute SMM.01: 58% SMM:1-36 +/usr/lib/uucp/L.cmds - Remote command permissions list UUCICO.8C: 77% UUCICO(8C)-2 +/usr/lib/uucp/L.sys - Host connection specification[s] UUCICO.8C: 78% UUCICO(8C)-2 +/usr/lib/uucp/SEQF - sequence numbering control file SMM.01: 58% SMM:1-36 +/usr/lib/uucp/USERFILE USERFILE.5: 63% unknown +/usr/lib/uucp/USERFILE - Remote directory tree permissions list UUCICO.8C: 79% UUCICO(8C)-2 +/usr/lib/uucp/USERFILE - remote site pathname access specification[s] SMM.01: 58% SMM:1-36 +/usr/lib/vfont SMM.01: 23% SMM:1-17 + " SMM.01: 86% SMM:1-52 +/usr/local USD.04: 27% USD:4-12 + " SMM.01: 82% SMM:1-50 +/usr/local/lib LD.1: 50% LD(1)-1 +/usr/man/manl - manual pages for locally developed program[s] SMM.01: 27% SMM:1-19 +/usr/man/whatis WHATIS.1: 83% unknown +/usr/mdec/ REBOOT.8: 93% REBOOT(8)-2 +/usr/msgs, cleanup on MSGS.1: 59% MSGS(1)-1 +/usr/msgs - for current msg[s] SMM.01: 27% SMM:1-19 +/usr/msgs/bounds MSGS.1: 46% MSGS(1)-1 +/usr/new USD.04: 28% USD:4-12 +/usr/new/lib/bmac/common INVERT.N: 44% INVERT(1)-1 +/usr/new/lib/mh/MailAlias USD.08: 61% USD:8-75 +/usr/new/lib/mh/MailAliases MH-ALIAS.N: 3% MH-ALIAS(5)-1 +/usr/new/lib/mh/maildelivery MHOOK.N: 56% MHOOK(1)-3 +/usr/spool/* - for current mail, news, uucp files, etc. SMM.01: 28% SMM:1-19 +/usr/spool/mail - mail spooling directory SMM.01: 55% SMM:1-35 +/usr/spool/mqueue SMM.07A: 8% SMM:07-6 + " SMM.07A: 88% SMM:07-38 +/usr/spool/mqueue/df* SMM.07A: 88% SMM:07-38 +/usr/spool/mqueue/lf* SMM.07A: 89% SMM:07-38 +/usr/spool/mqueue/nf* SMM.07A: 89% SMM:07-38 +/usr/spool/mqueue/qf* SMM.07A: 88% SMM:07-38 +/usr/spool/mqueue/tf* SMM.07A: 89% SMM:07-38 +/usr/spool/mqueue/xf* SMM.07A: 89% SMM:07-38 +/usr/spool/secretmail - secure mail directory SMM.01: 55% SMM:1-35 +/usr/spool/uucp UUCICO.8C: 9% unknown +/usr/spool/uucp/ - Spool directory UUCICO.8C: 80% UUCICO(8C)-2 +/usr/spool/uucp/AUDIT/\(** - Debugging audit trail[s] UUCICO.8C: 80% UUCICO(8C)-2 +/usr/spool/uucp/C./ - Control files directory UUCICO.8C: 81% UUCICO(8C)-2 +/usr/spool/uucp/CORRUPT/ - Place for corrupted C. and D. file[s] UUCICO.8C: 85% UUCICO(8C)-2 +/usr/spool/uucp/D./ - Incoming data file directory UUCICO.8C: 82% UUCICO(8C)-2 +/usr/spool/uucp/D.hostname/ - Outgoing data file directory UUCICO.8C: 83% UUCICO(8C)-2 +/usr/spool/uucp/D.hostnameX/ - Outgoing execution file directory UUCICO.8C: 84% UUCICO(8C)-2 +/usr/spool/uucp/ERRLOG - UUCP internal error log UUCICO.8C: 86% UUCICO(8C)-2 +/usr/spool/uucp/LCK/LCK..\(** - Device lock file[s] UUCICO.8C: 88% UUCICO(8C)-2 +/usr/spool/uucp/LOGFILE UULOG.1C: 47% UULOG(1C)-1 +/usr/spool/uucp/LOGFILE - UUCP system activity log UUCICO.8C: 87% UUCICO(8C)-2 +/usr/spool/uucp/STST/\(** - System status file[s] UUCICO.8C: 90% UUCICO(8C)-2 +/usr/spool/uucp/SYSLOG - log file of uucp file transfer[s] SMM.01: 58% SMM:1-36 +/usr/spool/uucp/TM./ - File transfer temp directory UUCICO.8C: 91% UUCICO(8C)-2 +/usr/spool/uucp/X./ - Incoming execution file directory UUCICO.8C: 92% UUCICO(8C)-2 +/usr/spool/uucppublic SMM.09: 98% SMM:9-21 +/usr/spool/uucppublic - Public access directory UUCICO.8C: 93% UUCICO(8C)-2 +/usr/src SMM.01: 80% SMM:1-48 + " SMM.01: 86% SMM:1-52 +/usr/src/lib/libc SMM.01: 80% SMM:1-48 +/usr/src/local - for source for locally developed program[s] SMM.01: 28% SMM:1-19 +/usr/src/Makefile SMM.01: 80% SMM:1-48 +/usr/src/new SMM.01: 24% SMM:1-17 +/usr/src/usr.lib/libF77 SMM.01: 80% SMM:1-48 +/usr/src/usr.lib/libI77 SMM.01: 80% SMM:1-48 +/usr/src/usr.lib/sendmail SMM.07A: 3% SMM:07-4 +/usr/ucb USD.04: 27% USD:4-12 +)-1 + " PS.1: 56% PS(1)-2 +/vmunix HIER.7: 2% HIER(7)-1 + " NLIST.3: 67% NLIST(3)-1 + " PS.1: 55% PS(1)-2 + " SYMORDER.1: 87% SYMORDER(1)-1 + " SMM.02: 16% SMM:2-5 +1/432 inch (1/6 point) USD.25: 17% USD:25-3 +11/730 SMM.01: 91% SMM:1-59 +11/750 SMM.01: 99% SMM:1-65 +11/750 boot procedure REBOOT.8: 62% REBOOT(8)-2 +11/750 TU58 console cassette, VAX 11/730 and TU.4: 7% TU(4)-1 +11/780 boot procedure REBOOT.8: 24% REBOOT(8)-1 +1600 bpi tape[s] MT.4: 97% MT(4)-1 + " MTIO.4: 10% MTIO(4)-1 +3/4 em dash in TROFF USD.23: 72% USD:23-9 +32/V, UNIX PS2.02: 0% + " PS2.02: 24% PS2:2-2 + " PS2.02: 29% PS2:2-2 + " PS2.02: 37% PS2:2-2 + " PS2.02: 42% PS2:2-3 + " PS2.02: 48% PS2:2-3 + " PS2.02: 56% PS2:2-5 + " PS2.02: 61% PS2:2-7 + " PS2.02: 69% PS2:2-7 + " PS2.02: 73% PS2:2-9 + " PS2.02: 82% PS2:2-9 + " PS2.02: 85% PS2:2-11 + " PS2.02: 94% PS2:2-11 +3B, AT&T PS1.01: 6% PS1:1-3 +3B 20 PS1.01: 50% PS1:1-16 +4.1 BSD interrupt handling SIGINTERRUPT.3: 47% SIGINTERRUPT(3) +4.1BSD SMM.01: 9% SMM:1-7 +4.1BSD binary[s] SMM.01: 24% SMM:1-17 + " SMM.01: 24% SMM:1-17 + " SMM.01: 26% SMM:1-18 + " SMM.02: 22% SMM:2-7 +4.1BSD binary image SMM.01: 25% SMM:1-18 +4.1BSD compatibility mode SMM.01: 25% SMM:1-18 + " SMM.01: 26% SMM:1-18 + " SMM.02: 45% SMM:2-14 +4.1BSD system SMM.01: 25% SMM:1-17 + " SMM.07A: 78% SMM:07-34 +4.2 BSD signal handling semantics SIGINTERRUPT.3: 50% SIGINTERRUPT(3) +4.2BSD SMM.01: 9% SMM:1-7 +4.2BSD, EGP implementation for SMM.01: 67% SMM:1-41 +4.2BSD, TCP connections to SMM.02: 97% SMM:2-33 +4.2BSD compatibility option SMM.02: 98% SMM:2-33 +4.2BSD file system SMM.01: 29% SMM:1-20 + " SMM.01: 29% SMM:1-20 + " SMM.05: 71% SMM:5-15 + " SMM.05: 85% SMM:5-19 +4.2BSD kernel SMM.01: 36% SMM:1-23 +4.2BSD signal model SMM.13: 12% SMM:13-5 +4.2BSD system[s] SMM.01: 1% SMM:1-2 + " SMM.01: 9% SMM:1-7 + " SMM.01: 25% SMM:1-18 + " SMM.02: 99% SMM:2-33 + " SMM.13: 76% SMM:13-26 +4.2BSD SYSTEM, UPGRADING A SMM.01: 25% SMM:1-18 +4.2BSD to 4.3BSD, converting from SMM.01: 34% SMM:1-22 +4.2BSD UDP implementation SMM.13: 79% SMM:13-27 +4.3 BSD kernel facility[s], summary of PS1.06: 94% PS1:6-41 +4.3BSD Architecture Manual PS1.06: 1% PS1:6-2 + " PS1.06: 4% PS1:6-4 + " PS1.06: 4% PS1:6-4 + " PS1.06: 6% PS1:6-6 + " PS1.06: 7% PS1:6-6 + " PS1.06: 9% PS1:6-8 + " PS1.06: 12% PS1:6-8 + " PS1.06: 14% PS1:6-10 + " PS1.06: 16% PS1:6-10 + " PS1.06: 20% PS1:6-12 + " PS1.06: 22% PS1:6-12 + " PS1.06: 27% PS1:6-14 + " PS1.06: 30% PS1:6-14 + " PS1.06: 32% PS1:6-16 + " PS1.06: 34% PS1:6-16 + " PS1.06: 35% PS1:6-18 + " PS1.06: 38% PS1:6-18 + " PS1.06: 42% PS1:6-20 + " PS1.06: 43% PS1:6-20 + " PS1.06: 46% PS1:6-22 + " PS1.06: 47% PS1:6-22 + " PS1.06: 49% PS1:6-24 + " PS1.06: 51% PS1:6-24 + " PS1.06: 54% PS1:6-26 + " PS1.06: 56% PS1:6-26 + " PS1.06: 59% PS1:6-28 + " PS1.06: 62% PS1:6-28 + " PS1.06: 65% PS1:6-30 + " PS1.06: 68% PS1:6-30 + " PS1.06: 71% PS1:6-32 + " PS1.06: 73% PS1:6-32 + " PS1.06: 76% PS1:6-34 + " PS1.06: 80% PS1:6-34 + " PS1.06: 82% PS1:6-36 + " PS1.06: 85% PS1:6-36 + " PS1.06: 88% PS1:6-38 + " PS1.06: 92% PS1:6-38 + " PS1.06: 94% PS1:6-40 + " PS1.06: 94% PS1:6-40 + " PS1.06: 96% PS1:6-42 + " PS1.06: 98% PS1:6-42 +4.3BSD, Adding device drivers to SMM.02: 50% SMM:2-15 +4.3BSD, Bug Fixes and Changes in SMM.12A: 0% SMM:12-2 + " SMM.12A: 2% SMM:12-2 + " SMM.12A: 6% SMM:12-2 + " SMM.12A: 12% SMM:12-4 + " SMM.12A: 16% SMM:12-4 + " SMM.12A: 21% SMM:12-6 + " SMM.12A: 27% SMM:12-6 + " SMM.12A: 32% SMM:12-8 + " SMM.12A: 36% SMM:12-8 + " SMM.12A: 41% SMM:12-10 + " SMM.12A: 46% SMM:12-10 + " SMM.12A: 50% SMM:12-12 + " SMM.12A: 54% SMM:12-12 + " SMM.12A: 58% SMM:12-14 + " SMM.12A: 62% SMM:12-14 + " SMM.12A: 67% SMM:12-16 + " SMM.12A: 71% SMM:12-16 + " SMM.12A: 75% SMM:12-18 + " SMM.12A: 79% SMM:12-18 + " SMM.12A: 83% SMM:12-20 + " SMM.12A: 87% SMM:12-20 + " SMM.12A: 92% SMM:12-22 + " SMM.12A: 96% SMM:12-22 +4.3BSD, converting from 4.2BSD to SMM.01: 34% SMM:1-22 +4.3BSD, disk partitions in SMM.01: 29% SMM:1-20 +4.3BSD, hardware supported by SMM.01: 1% SMM:1-2 +4.3BSD, signal usage in SMM.13: 13% SMM:13-6 +4.3BSD file system SMM.01: 9% SMM:1-7 + " SMM.01: 10% SMM:1-7 + " SMM.01: 30% SMM:1-20 +4.3BSD Line Printer Spooler Manual SMM.06: 0% unknown +6250 bpi tape[s] MT.4: 15% MT(4)-1 + " MTIO.4: 11% MTIO(4)-1 +800 bpi tape[s] MT.4: 90% MT(4)-1 + " MTIO.4: 9% MTIO(4)-1 +822-format, official AP.N: 24% AP(8)-1 + " USD.08: 75% USD:8-91 + " USD.08: 76% USD:8-94 +8600, Bootstrapping an 8650 or SMM.01: 11% SMM:1-7 +> (redirection operator) USD.13: 75% USD:13-12 +a.out ADB.1: 3% ADB(1)-1 + " CC.1: 44% CC(1)-2 + " F77.1: 75% F77(1)-2 + " LD.1: 7% LD(1)-1 + " NLIST.3: 56% unknown + " NM.1: 28% NM(1)-1 + " PS1.10: 3% PS1:10-2 + " USD.04: 68% USD:4-34 +a.out - assembler and link editor output A_OUT.5: 0% A.OUT(5)-1 +aardvark SMM.12A: 78% SMM:12-18 +aardvark - yet another exploration game AARDVARK.6: 9% AARDVARK(6)-1 +abbreviate USD.16: 28% USD:16-5 +Abbreviation[s] USD.15: 59% USD:15-17 + " USD.27: 70% USD:27-8 + " USD.31: 78% USD:31-13 +Abbreviation[s], Word USD.15: 58% USD:15-17 + " USD.15: 59% USD:15-17 + " USD.17: 52% USD:17-23 + " USD.17: 57% USD:17-25 + " USD.17: 60% USD:17-27 +abbreviation definition USD.17: 88% USD:17-42 +abnormal termination PS1.02: 11% PS1:2-6 + " PS1.04: 27% PS1:4-15 + " PS2.10: 68% PS2:10-60 +abnormal termination ABORT.3F: 6% ABORT(3F)-1 + " F77.1: 18% F77(1)-1 + " F77.1: 76% F77(1)-2 + " F77.1: 78% F77(1)-2 + " SMM.09: 19% SMM:9-5 + " SMM.15: 54% SMM:15-16 + " USD.08: 32% USD:8-36 + " WAIT.1: 34% WAIT(1)-1 +ABOR command FTP.1C: 75% FTP(1C)-6 + " FTPD.8C: 44% FTPD(8C)-1 + " SMM.12A: 85% SMM:12-20 +ABORT L_SYS.5: 94% L.SYS(5)-4 + " L_SYS.5: 95% L.SYS(5)-4 + " L_SYS.5: 96% L.SYS(5)-4 + " STDIO.3S: 60% STDIO(3S)-1 + " SMM.12A: 62% SMM:12-14 +ABORT routine ABORT.3: 10% ABORT(3)-1 + " ABORT.3F: 5% ABORT(3F)-1 +abs - integer absolute value ABS.3: 11% ABS(3)-1 +absolute file offset PS1.06: 68% PS1:6-31 +absolute pathname SMM.14: 87% SMM:14-13 + " SMM.14: 88% SMM:14-13 + " SMM.14: 88% SMM:14-13 + " TERMCAP.5: 32% TERMCAP(5)-6 + " USD.04: 11% USD:4-6 + " USD.04: 12% USD:4-6 + " USD.04: 45% USD:4-20 + " USD.04: 69% USD:4-34 + " USD.04: 93% USD:4-43 + " USD.07: 76% USD:7-18 +absolute position indicator USD.24: 21% USD:24-8 +absolute value ABS.3: 33% ABS(3)-1 + " FLOOR.3M: 5% FLOOR(3M)-1 + " FLOOR.3M: 22% FLOOR(3M)-1 + " HYPOT.3M: 6% HYPOT(3M)-1 + " PS2.06: 69% PS2:6-24 + " PS2.09: 22% PS2:9-44 + " PS2.09: 23% PS2:9-45 + " PS2.10: 41% PS2:10-36 +abstraction, DGRAM INET.4F: 45% INET(4F)-1 + " NS.4F: 80% NS(4F)-2 + " UDP.4P: 14% UDP(4P)-1 +abstraction, socket INTRO.4N: 12% INTRO(4N)-1 + " INTRO.4N: 13% INTRO(4N)-1 + " INTRO.4N: 17% INTRO(4N)-1 + " SMM.15: 15% SMM:15-6 + " SMM.15: 16% SMM:15-6 +abstraction, STREAM INTRO.4N: 19% INTRO(4N)-1 + " SPP.4P: 9% SPP(4P)-1 + " TCP.4P: 9% TCP(4P)-1 +ac command AC.8: 4% AC(8)-1 +acc - ACC LH/DH IMP interface ACC.4: 2% ACC(4)-1 +ACC ACP625 X.25 board DDN.4: 14% DDN(4)-1 +accent, acute MS.7: 92% MS(7)-3 + " USD.21: 79% USD:21-3 + " USD.22: 96% USD:22-18 + " USD.22: 96% USD:22-18 + " USD.24: 18% USD:24-8 + " USD.25: 44% USD:25-7 + " USD.23: 73% USD:23-9 +accent, grave MS.7: 92% MS(7)-3 + " USD.03: 63% USD:3-16 + " USD.21: 79% USD:21-3 + " USD.23: 73% USD:23-9 + " USD.22: 96% USD:22-18 +accent mark USD.20: 74% USD:20-6 + " USD.21: 75% USD:21-3 + " USD.29: 62% USD:29-6 + " MS.7: 20% MS(7)-1 +ACCEPT system call ACCEPT.2: 2% ACCEPT(2)-1 +accept() PS1.07a: 64% PS1:7-14 +accept(s, name, anamelen) PS1.06: 78% PS1:6-34 +accepting a connection from another socket PS1.06: 77% PS1:6-34 +Accepting connections PS1.06: 50% PS1:6-24 + " PS1.06: 78% PS1:6-34 +access ACCESS.3F: 6% ACCESS(3F)-1 +access, execute CSH.1: 47% CSH(1)-9 +access, File UMASK.2: 60% UMASK(2)-1 +access, file PS2.01: 27% PS2:1-4 + " PS2.03: 11% PS2:3-3 +access, Sequential PS1.03: 7% PS1:3-3 + " PS1.03: 22% PS1:3-4 + " PS1.03: 71% PS1:3-9 + " PS2.01: 90% PS2:1-13 +access and modify times on a file PS1.06: 65% PS1:6-30 +access conflict PS1.13: 4% PS1:13-1 +access function PS2.09: 64% PS2:9-108 + " PS2.09: 64% PS2:9-108 + " PS2.09: 64% PS2:9-108 + " PS2.09: 64% PS2:9-108 + " PS2.09: 64% PS2:9-108 + " PS2.09: 64% PS2:9-108 + " PS2.09: 65% PS2:9-111 + " PS2.09: 65% PS2:9-111 + " PS2.09: 65% PS2:9-111 +access group PS1.06: 10% PS1:6-8 + " PS1.06: 11% PS1:6-8 + " PS1.06: 11% PS1:6-8 +access list PS1.13: 24% PS1:13-5 + " PS1.13: 24% PS1:13-5 + " PS1.13: 27% PS1:13-5 + " PS1.13: 40% PS1:13-8 + " PS1.13: 61% PS1:13-13 + " PS1.13: 62% PS1:13-13 + " PS1.13: 62% PS1:13-13 + " PS1.13: 63% PS1:13-13 + " PS1.13: 64% PS1:13-13 + " PS1.13: 89% PS1:13-20 + " PS1.13: 90% PS1:13-20 +access list of the RCS file PS1.13: 40% PS1:13-8 + " PS1.13: 63% PS1:13-13 + " PS1.13: 63% PS1:13-13 + " PS1.13: 63% PS1:13-13 +access protection PS2.04: 94% PS2:4-9 + " PS1.06: 65% PS1:6-29 +access rights PS1.06: 50% PS1:6-24 + " PS1.06: 60% PS1:6-28 + " PS1.06: 60% PS1:6-28 + " PS1.06: 60% PS1:6-28 + " PS1.06: 82% PS1:6-35 + " PS1.06: 82% PS1:6-35 + " PS1.06: 83% PS1:6-36 +Access rights transmission PS1.06: 86% PS1:6-37 + " PS1.06: 87% PS1:6-37 +access time PS1.06: 48% PS1:6-23 + " PS1.06: 64% PS1:6-29 + " PS1.10: 58% PS1:10-11 + " PS2.09: 5% PS2:9-9 +access(path, how) PS1.06: 69% PS1:6-31 +access, printer LPD.8: 94% unknown +access, read CSH.1: 47% CSH(1)-9 +access, Write CSH.1: 47% CSH(1)-9 +access - determine accessibility of a file ACCESS.3F: 6% ACCESS(3F)-1 + " ACCESS.2: 1% ACCESS(2)-1 +Access check ACCESS.3F: 22% ACCESS(3F)-1 + " INTRO.2: 73% INTRO(2)-6 + " INTRO.2: 90% INTRO(2)-7 +access control CORE.5: 35% CORE(5)-1 + " LPD.8: 18% LPD(8)-1 + " SMM.06: 25% SMM:6-3 + " SMM.06: 54% SMM:6-4 +access group EXECVE.2: 47% EXECVE(2)-1 +access list CI.N: 17% CI(1)-1 + " CI.N: 17% CI(1)-1 + " CI.N: 34% CI(1)-1 + " CO.N: 18% CO(1)-1 + " RCS.N: 4% RCS(1)-1 + " RCS.N: 6% RCS(1)-1 + " RCS.N: 7% RCS(1)-1 + " RCS.N: 19% RCS(1)-1 + " RCS.N: 23% RCS(1)-1 + " RLOG.N: 13% RLOG(1)-1 + " RLOG.N: 31% RLOG(1)-1 +access method[s] SMM.14: 2% SMM:14-2 +access mode FCNTL.2: 17% FCNTL(2)-1 +access permission EXECVE.2: 82% EXECVE(2)-2 + " GETGID.2: 65% GETGID(2)-1 + " INTRO.2: 86% INTRO(2)-7 + " INTRO.2: 87% INTRO(2)-7 + " INTRO.2: 89% INTRO(2)-7 + " SMM.09: 55% SMM:9-12 + " SMM.21: 29% SMM:21-2 +access rights RECV.2: 62% RECV(2)-1 + " RECV.2: 74% RECV(2)-2 + " RECV.2: 77% RECV(2)-2 + " SMM.13: 5% SMM:13-3 + " SMM.13: 5% SMM:13-3 + " SMM.13: 35% SMM:13-13 + " SMM.13: 36% SMM:13-13 + " SMM.13: 39% SMM:13-14 + " SMM.13: 39% SMM:13-14 + " SMM.13: 41% SMM:13-15 + " SMM.13: 41% SMM:13-15 + " SMM.15: 24% SMM:15-8 + " SMM.15: 24% SMM:15-8 + " SMM.15: 25% SMM:15-8 + " SMM.15: 25% SMM:15-8 + " SMM.15: 27% SMM:15-9 + " SMM.15: 28% SMM:15-9 + " SMM.15: 28% SMM:15-9 +access time MOUNT.2: 22% MOUNT(2)-1 + " MOUNT.8: 75% MOUNT(8)-1 + " SMM.01: 48% SMM:1-31 + " SMM.14: 10% SMM:14-3 + " STAT.2: 28% STAT(2)-1 + " USD.29: 4% USD:29-1 + " FIND.1: 45% FIND(1)-1 +accessibility of a file ACCESS.3F: 8% ACCESS(3F)-1 +account, anonymous FTPD.8C: 88% FTPD(8C)-2 + " FTPD.8C: 90% FTPD(8C)-2 + " SMM.01: 72% SMM:1-43 + " SMM.01: 72% SMM:1-43 + " SMM.01: 73% SMM:1-44 +account[s], user SMM.01: 0% SMM:1-1 +accounting file PS1.06: 49% PS1:6-23 + " PS1.06: 97% PS1:6-42 + " PS2.01: 24% PS2:1-4 +accounting group id PS1.06: 10% PS1:6-8 + " PS1.06: 11% PS1:6-8 + " PS1.06: 12% PS1:6-9 +accounting record PS1.06: 49% PS1:6-23 +accounting, connect time SMM.01: 82% SMM:1-50 +accounting, phototypesetter TROFF.1: 78% TROFF(1)-1 +accounting, printer/plotter PAC.8: 12% PAC(8)-1 +accounting, sa, accton - system SA.8: 1% SA(8)-1 +accounting, system CONFLICT.N: 73% CONFLICT(8)-1 + " SA.8: 1% SA(8)-1 + " USD.08: 76% USD:8-93 +accounting file ACCT.2: 9% ACCT(2)-1 + " ACCT.2: 32% ACCT(2)-1 + " ACCT.5: 8% ACCT(5)-1 + " ACCT.5: 11% ACCT(5)-1 + " LOGIN.1: 25% LOGIN(1)-1 + " PAC.8: 70% PAC(8)-1 + " SA.8: 13% SA(8)-1 + " SA.8: 23% SA(8)-1 + " SA.8: 27% SA(8)-1 + " SMM.06: 66% SMM:6-5 + " AC.8: 54% + " LASTCOMM.1: 24% LASTCOMM(1)-1 + " UTMP.5: 3% UTMP(5)-1 +accounting information PAC.8: 63% PAC(8)-1 + " SMM.01: 82% SMM:1-50 + " VTIMES.3C: 11% VTIMES(3C)-1 +acct - execution accounting file ACCT.5: 2% ACCT(5)-1 +ACCT command ACCT.2: 2% ACCT(2)-1 +Acknowledgment Message SMM.22: 27% SMM:22-3 +ACM mode, .ac USD.23: 66% USD:23-8 +acos - trigonometric function SIN.3M: 1% SIN(3M)-1 +acosh ASINH.3M: 6% ASINH(3M)-1 +acquire a lock PS1.06: 21% PS1:6-12 +Action[s] PS1.15: 99% PS1:15-33 +action statements USD.19: 44% USD:19-4 + " USD.19: 44% USD:19-4 +action[s], default PS1.06: 23% PS1:6-13 + " PS1.06: 27% PS1:6-14 + " PS1.15: 28% PS1:15-8 + " PS1.15: 48% PS1:15-14 + " PS1.16: 36% PS1:16-5 + " PS1.16: 39% PS1:16-5 + " PS1.16: 40% PS1:16-5 + " PS2.03: 66% PS2:3-10 + " PS2.03: 66% PS2:3-10 + " PS2.03: 67% PS2:3-10 + " PS2.03: 72% PS2:3-11 + " PS2.10: 39% PS2:10-34 +actions, parser PS1.15: 32% PS1:15-9 + " PS1.15: 46% PS1:15-14 + " PS1.15: 65% PS1:15-18 +action function PS2.07: 54% PS2:7-27 + " PS2.07: 54% PS2:7-27 + " PS2.07: 54% PS2:7-27 + " PS2.07: 55% PS2:7-27 + " PS2.07: 57% PS2:7-28 + " PS2.07: 57% PS2:7-28 +ADB PS1.10: 0% + " PS1.10: 0% + " PS1.10: 1% + " PS1.10: 1% + " PS1.10: 1% + " PS1.10: 3% + " PS1.10: 4% PS1:10-2 + " PS1.10: 4% PS1:10-2 + " PS1.10: 4% PS1:10-2 + " PS1.10: 6% PS1:10-2 + " PS1.10: 7% PS1:10-2 + " PS1.10: 9% PS1:10-2 + " PS1.10: 10% PS1:10-3 + " PS1.10: 10% PS1:10-3 + " PS1.10: 11% PS1:10-3 + " PS1.10: 13% PS1:10-3 + " PS1.10: 14% PS1:10-4 + " PS1.10: 15% PS1:10-4 + " PS1.10: 17% PS1:10-4 + " PS1.10: 17% PS1:10-4 + " PS1.10: 19% PS1:10-4 + " PS1.10: 25% PS1:10-5 + " PS1.10: 26% PS1:10-6 + " PS1.10: 30% PS1:10-6 + " PS1.10: 30% PS1:10-6 + " PS1.10: 30% PS1:10-6 + " PS1.10: 32% PS1:10-7 + " PS1.10: 34% PS1:10-7 + " PS1.10: 36% PS1:10-8 + " PS1.10: 40% PS1:10-8 + " PS1.10: 41% PS1:10-8 + " PS1.10: 43% PS1:10-9 + " PS1.10: 44% PS1:10-9 + " PS1.10: 46% PS1:10-9 + " PS1.10: 47% PS1:10-9 + " PS1.10: 48% PS1:10-9 + " PS1.10: 49% PS1:10-10 + " PS1.10: 49% PS1:10-10 + " PS1.10: 50% PS1:10-10 + " PS1.10: 52% PS1:10-10 + " PS1.10: 53% PS1:10-10 + " PS1.10: 56% PS1:10-11 + " PS1.10: 59% PS1:10-12 + " PS1.10: 59% PS1:10-12 + " PS1.10: 60% PS1:10-12 + " PS1.10: 62% PS1:10-12 + " PS1.10: 64% PS1:10-12 + " PS1.10: 64% PS1:10-12 + " PS1.10: 66% PS1:10-13 + " PS1.10: 68% PS1:10-14 + " PS1.10: 70% PS1:10-14 + " PS1.10: 72% PS1:10-16 + " PS1.10: 73% PS1:10-16 + " PS1.10: 75% PS1:10-18 + " PS1.10: 77% PS1:10-18 + " PS1.10: 79% PS1:10-20 + " PS1.10: 81% PS1:10-20 + " PS1.10: 84% PS1:10-22 + " PS1.10: 86% PS1:10-22 + " PS1.10: 88% PS1:10-24 + " PS1.10: 89% PS1:10-24 + " PS1.10: 93% PS1:10-26 + " PS1.10: 95% PS1:10-26 + " PS1.11a: 2% PS1:11-1 +ADB address map PS1.10: 84% PS1:10-22 +active file system RESTORE.8: 96% RESTORE(8)-3 +active socket NETSTAT.1: 10% NETSTAT(1)-1 + " SPP.4P: 12% SPP(4P)-1 + " TCP.4P: 19% TCP(4P)-1 +activity, I/O GETRUSAGE.2: 63% GETRUSAGE(2)-2 + " GETRUSAGE.2: 63% GETRUSAGE(2)-2 + " GETRUSAGE.2: 67% GETRUSAGE(2)-2 +activity, swapping SMM.01: 78% SMM:1-48 + " SMM.01: 79% SMM:1-48 + " SWAPON.8: 45% SWAPON(8)-1 + " SYSTAT.1: 47% SYSTAT(1)-3 +ACU devices L-DEVICES.5: 54% L-DEVICES(5)-1 +acucntrl SMM.09: 40% SMM:9-9 +acute accent MS.7: 92% MS(7)-3 + " USD.21: 79% USD:21-3 + " USD.22: 96% USD:22-18 + " USD.22: 96% USD:22-18 + " USD.24: 18% USD:24-8 + " USD.24: 24% USD:24-9 + " USD.25: 44% USD:25-7 + " USD.23: 73% USD:23-9 +ad - Data Translation A/D converter AD.4: 6% AD(4)-1 +adapter, MASSBUS AUTOCONF.4: 46% AUTOCONF(4)-1 + " AUTOCONF.4: 48% AUTOCONF(4)-1 + " AUTOCONF.4: 51% AUTOCONF(4)-1 + " SMM.01: 2% SMM:1-2 + " SMM.01: 4% SMM:1-3 + " SMM.01: 5% SMM:1-4 + " SMM.01: 5% SMM:1-4 + " SMM.02: 32% SMM:2-9 +adapter, UNIBUS AUTOCONF.4: 52% AUTOCONF(4)-1 + " SMM.01: 5% SMM:1-4 + " SMM.02: 30% SMM:2-9 + " SMM.02: 30% SMM:2-9 + " SMM.02: 32% SMM:2-9 + " SMM.02: 32% SMM:2-9 + " SMM.02: 54% SMM:2-17 + " SMM.02: 67% SMM:2-21 + " SMM.02: 68% SMM:2-21 + " SMM.12A: 72% SMM:12-17 +ADB CRASH.8V: 98% CRASH(8V)-3 + " SMM.03: 0% SMM:3-1 + " ADB.1: 0% ADB(1)-1 + " CRASH.8V: 90% CRASH(8V)-3 + " GCORE.1: 45% GCORE(1)-1 + " SMM.12A: 4% SMM:12-2 +adb - debugger ADB.1: 0% ADB(1)-1 +adb command, summary of PS1.10: 95% PS1:10-26 +ADB output PS1.10: 70% PS1:10-14 + " PS1.10: 73% PS1:10-16 + " PS1.10: 77% PS1:10-18 + " PS1.10: 79% PS1:10-20 + " PS1.10: 81% PS1:10-20 +ADB output illustrating fancy format[s] PS1.10: 89% PS1:10-25 +adb command[s] SMM.03: 27% SMM:3-1 + " ADB.1: 31% ADB(1)-2 +add a route ROUTE.8C: 11% ROUTE(8C)-1 +Addbib USD.29: 18% USD:29-3 + " USD.29: 26% USD:29-3 + " USD.29: 61% USD:29-6 + " REFER.1: 87% REFER(1)-2 +addbib command ADDBIB.1: 1% ADDBIB(1)-1 +addbib program USD.29: 18% USD:29-3 + " USD.29: 3% USD:29-1 +Adding device drivers to 4.3BSD SMM.02: 50% SMM:2-15 +Adding more text to the file USD.14: 30% USD:14-8 +addch PS1.18: 32% PS1:18-8 +addch() PS1.18: 10% PS1:18-4 + " PS1.18: 18% PS1:18-5 +addch(ch) PS1.18: 32% PS1:18-8 +Additive Operators PS1.01: 18% PS1:1-6 + " PS1.01: 22% PS1:1-7 + " PS1.01: 26% PS1:1-8 + " PS1.01: 29% PS1:1-9 + " PS1.01: 29% PS1:1-9 + " PS1.01: 38% PS1:1-12 +adding new users ADDUSER.8: 2% ADDUSER(8)-1 +Adding non-standard system facility[s] SMM.02: 47% SMM:2-15 +Adding Something to the End of a File USD.13: 74% USD:13-12 +Adding user[s] SMM.01: 53% SMM:1-34 +address, base READ.2: 25% READ(2)-1 +addresses, block BADSECT.8: 72% BADSECT(8)-1 + " SMM.05: 9% SMM:5-3 + " SMM.14: 11% SMM:14-3 +addresses, broadcast IDP.4P: 29% IDP(4P)-1 + " INET.4F: 34% INET(4F)-1 + " INTRO.4N: 79% INTRO(4N)-3 + " ROUTED.8C: 38% ROUTED(8C)-1 + " SMM.01: 63% SMM:1-39 + " SMM.01: 64% SMM:1-40 + " SMM.01: 64% SMM:1-40 + " SMM.01: 64% SMM:1-40 + " SMM.01: 67% SMM:1-41 + " SMM.13: 8% SMM:13-4 + " SMM.13: 60% SMM:13-21 + " SMM.13: 64% SMM:13-22 + " SMM.13: 64% SMM:13-22 + " SMM.13: 66% SMM:13-23 + " SMM.13: 80% SMM:13-27 + " SMM.15: 35% SMM:15-11 + " SMM.15: 39% SMM:15-12 + " UDP.4P: 50% UDP(4P)-1 + " VV.4: 37% VV(4)-1 + " IFCONFIG.8C: 83% IFCONFIG(8C)-2 + " INTRO.4N: 84% INTRO(4N)-3 +address, DARPA Internet GETHOSTID.2: 52% GETHOSTID(2)-1 + " IFCONFIG.8C: 19% IFCONFIG(8C)-1 + " IFCONFIG.8C: 55% IFCONFIG(8C)-1 +address, destination PS1.06: 82% PS1:6-36 + " PS1.07a: 87% PS1:7-22 + " PS1.08: 22% PS1:8-8 + " PS1.08: 24% PS1:8-9 + " PS1.08: 24% PS1:8-9 + " PS1.08: 80% PS1:8-32 + " PS1.08: 83% PS1:8-34 + " PS1.08: 84% PS1:8-34 + " PS1.08: 91% PS1:8-38 + " PS1.08: 92% PS1:8-38 + " PS1.06: 79% PS1:6-34 +address, device PS2.01: 40% PS2:1-6 + " PS2.01: 41% PS2:1-6 + " PS2.01: 41% PS2:1-6 + " PS2.04: 45% PS2:4-5 +address, disk TYPES.5: 83% TYPES(5)-2 +address, ethernet ARP.8C: 56% ARP(8C)-1 + " DE.4: 21% DE(4)-1 + " EC.4: 29% EC(4)-1 + " EX.4: 28% EX(4)-1 + " IL.4: 24% IL(4)-1 + " IX.4: 34% IX(4)-1 + " QE.4: 53% QE(4)-1 + " SMM.02: 44% SMM:2-13 + " SMM.13: 80% SMM:13-27 + " SMM.13: 90% SMM:13-30 +address, file PS1.10: 46% PS1:10-9 + " PS1.10: 47% PS1:10-9 + " PS1.10: 47% PS1:10-9 +address, foreign IDP.4P: 86% IDP(4P)-2 + " PS1.06: 79% PS1:6-34 + " PS1.08: 10% PS1:8-4 + " PS1.08: 73% PS1:8-30 + " PS1.08: 73% PS1:8-30 + " PS1.08: 78% PS1:8-32 + " SMM.15: 81% SMM:15-23 + " SMM.15: 83% SMM:15-23 +address, gateway ROUTE.8C: 71% ROUTE(8C)-1 + " ROUTE.8C: 74% ROUTE(8C)-1 + " SMM.13: 62% SMM:13-22 + " IP.4P: 33% IP(4P)-1 +address, hardware ARP.4P: 39% ARP(4P)-1 + " VV.4: 20% VV(4)-1 + " VV.4: 27% VV(4)-1 +address, function PS2.09: 78% PS2:9-128 + " PS2.09: 79% PS2:9-128 + " PS2.09: 79% PS2:9-128 +address, host ARP.8C: 73% ARP(8C)-1 + " GETHOSTBYNAME.3N: 42% GETHOSTBYNAME(3) + " NAMED.8: 67% NAMED(8)-2 + " NETSTAT.1: 50% NETSTAT(1)-1 + " PS1.07a: 45% PS1:7-11 + " PS1.07a: 49% PS1:7-11 + " PS1.08: 33% PS1:8-12 +address, Internet PS1.06: 87% PS1:6-37 + " PS1.07a: 45% PS1:7-11 + " PS1.07a: 47% PS1:7-11 + " PS1.08: 13% PS1:8-5 + " PS1.08: 45% PS1:8-17 + " PS1.08: 50% PS1:8-20 + " PS1.08: 99% PS1:8-41 +address, machine PS1.07a: 47% PS1:7-11 + " PS1.07a: 47% PS1:7-11 + " PS1.07a: 47% PS1:7-11 + " PS1.07a: 48% PS1:7-11 +address, host RSHD.8C: 29% RSHD(8C)-1 + " SMM.01: 61% SMM:1-38 + " SMM.01: 65% SMM:1-40 + " SMM.11: 13% SMM:11-2 + " SMM.13: 82% SMM:13-28 + " SMM.12A: 47% SMM:12-11 +address, interface IFCONFIG.8C: 2% IFCONFIG(8C)-1 + " SMM.01: 69% SMM:1-42 + " SMM.13: 23% SMM:13-9 + " SMM.13: 86% SMM:13-29 + " SMM.15: 35% SMM:15-11 + " SMM.15: 38% SMM:15-12 + " INTRO.4N: 81% INTRO(4N)-3 +address, Internet ARP.4P: 87% ARP(4P)-2 + " HOSTID.1: 57% HOSTID(1)-1 + " IMP.4: 70% IMP(4)-1 + " INET.3N: 30% INET(3N)-1 + " INET.3N: 36% INET(3N)-1 + " INET.3N: 41% INET(3N)-1 + " INET.3N: 48% INET(3N)-1 + " INET.3N: 49% INET(3N)-1 + " INET.4F: 14% INET(4F)-1 + " MH-MAIL.N: 42% MH-MAIL(5)-1 + " RESOLVER.3: 51% RESOLVER(3)-2 + " ROUTE.8C: 32% ROUTE(8C)-1 + " SMM.01: 63% SMM:1-39 + " SMM.01: 64% SMM:1-39 + " SMM.11: 37% SMM:11-5 + " SMM.11: 37% SMM:11-5 + " SMM.13: 65% SMM:13-23 + " SMM.13: 66% SMM:13-23 + " SMM.13: 68% SMM:13-24 + " TCP.4P: 14% TCP(4P)-1 + " USD.08: 67% USD:8-82 + " SMM.12A: 34% SMM:12-8 + " HOSTS.5: 17% HOSTS(5)-1 +address, invalid CONNECT.2: 33% CONNECT(2)-1 +address, IP GETHOSTBYNAME.3N: 74% GETHOSTBYNAME(3) + " NSIP.4: 27% NSIP(4)-1 + " SMM.13: 80% SMM:13-27 +address, kernel virtual ADB.1: 12% ADB(1)-1 + " MEM.4: 40% MEM(4)-1 + " SMM.15: 42% SMM:15-13 +address, local SMM.16: 43% SMM:16-6 +address, mailing SMM.10: 35% SMM:10-10 + " SMM.10: 35% SMM:10-10 + " SMM.11: 49% SMM:11-7 +address, network PS1.07a: 48% PS1:7-11 + " PS1.07a: 49% PS1:7-11 + " PS1.07a: 49% PS1:7-11 + " PS1.07a: 56% PS1:7-13 + " PS1.08: 29% PS1:8-11 + " PS1.08: 30% PS1:8-11 + " PS1.08: 38% PS1:8-14 + " PS1.08: 39% PS1:8-15 + " PS1.08: 77% PS1:8-31 +Address binding PS1.08: 73% PS1:8-30 +Address Format UNIX PS1.07a: 29% PS1:7-8 +address mapping, Internet host name to PS1.08: 31% PS1:8-11 +address space PS1.01: 33% PS1:1-10 + " PS1.04: 93% PS1:4-47 + " PS1.06: 8% PS1:6-7 + " PS1.10: 38% PS1:10-8 + " PS2.01: 91% PS2:1-14 + " PS2.01: 91% PS2:1-14 +addresses, Multiple MH-MAIL.N: 45% MH-MAIL(5)-1 + " USD.08: 67% USD:8-82 + " SMM.12A: 50% SMM:12-12 + " SMM.12A: 65% SMM:12-15 + " SMM.12A: 91% SMM:12-21 +address, name server RESOLVER.3: 27% RESOLVER(3)-1 +address, network DE.4: 13% DE(4)-1 + " EC.4: 23% EC(4)-1 + " EN.4: 17% EN(4)-1 + " EN.4: 27% EN(4)-1 + " EX.4: 17% EX(4)-1 + " GETHOSTBYNAME.3N: 41% GETHOSTBYNAME(3) + " HOSTS.5: 73% HOSTS(5)-1 + " ICMP.4P: 90% ICMP(4P)-1 + " IDP.4P: 49% IDP(4P)-1 + " IFCONFIG.8C: 7% IFCONFIG(8C)-1 + " IL.4: 15% IL(4)-1 + " IMP.4P: 92% IMP(4P)-1 + " INET.3N: 29% INET(3N)-1 + " INET.3N: 34% INET(3N)-1 + " INET.3N: 59% INET(3N)-1 + " INET.3N: 67% INET(3N)-1 + " INET.3N: 69% INET(3N)-1 + " INET.3N: 72% INET(3N)-1 + " IX.4: 27% IX(4)-1 + " NETSTAT.1: 50% NETSTAT(1)-1 + " NETSTAT.1: 63% NETSTAT(1)-2 + " SMM.11: 29% SMM:11-4 + " SMM.11: 35% SMM:11-5 + " SMM.11: 53% SMM:11-7 + " SMM.13: 70% SMM:13-24 + " SMM.15: 38% SMM:15-12 + " TIMED.8: 70% TIMED(8)-1 + " TIMED.8: 80% TIMED(8)-1 + " USD.08: 61% USD:8-73 + " VV.4: 10% VV(4)-1 + " VV.4: 17% VV(4)-1 + " WHOM.N: 89% WHOM(1)-1 +address, NS NS.4F: 23% NS(4F)-1 + " NS.4F: 34% NS(4F)-1 + " NSIP.4: 29% NSIP(4)-1 +addresses, parse AP.N: 2% AP(8)-1 +address, physical SMM.13: 83% SMM:13-28 + " SMM.13: 88% SMM:13-30 +address, physical ethernet DE.4: 69% DE(4)-1 + " IL.4: 58% IL(4)-1 + " IX.4: 67% IX(4)-1 +address, point to point INTRO.4N: 83% INTRO(4N)-3 +address, recipient SENDMAIL.8: 41% SENDMAIL(8)-2 + " SMM.16: 26% SMM:16-4 + " SMM.16: 29% SMM:16-4 + " SMM.16: 50% SMM:16-7 + " SMM.07A: 15% SMM:07-9 + " SMM.07A: 50% SMM:07-23 + " SMM.07A: 53% SMM:07-23 + " SMM.07A: 53% SMM:07-23 + " SMM.07A: 64% SMM:07-27 +address, return MAILADDR.7: 66% MAILADDR(7)-2 + " MHOOK.N: 24% MHOOK(1)-2 + " POST.N: 34% POST(8)-1 + " SMM.19: 42% SMM:19-12 + " USD.08: 32% USD:8-36 + " USD.08: 78% USD:8-96 + " SMM.07A: 76% SMM:07-32 +address, sender SMM.07A: 40% SMM:07-19 + " SMM.07A: 42% SMM:07-19 + " SMM.07A: 66% SMM:07-28 +address, Symbolic DBX.1: 86% DBX(1)-6 +address, Unibus EC.4: 21% EC(4)-1 + " SMM.02: 64% SMM:2-20 + " SMM.13: 98% SMM:13-33 +address, verify mail WHOM.N: 14% WHOM(1)-1 + " USD.08: 60% USD:8-73 +address, virtual PS.4: 22% PS(4)-1 +address, XNS NS.3N: 15% NS(3N)-1 +address class SMM.11: 40% SMM:11-6 + " SMM.11: 55% SMM:11-8 + " SMM.11: 55% SMM:11-8 +address family ARP.4P: 47% ARP(4P)-1 + " BIND.2: 15% BIND(2)-1 + " CONNECT.2: 48% CONNECT(2)-1 + " IFCONFIG.8C: 16% IFCONFIG(8C)-1 + " INTRO.2: 98% INTRO(2)-7 + " INTRO.2: 99% INTRO(2)-7 + " LO.4: 31% LO(4)-1 + " NETSTAT.1: 39% NETSTAT(1)-1 + " NETSTAT.1: 40% NETSTAT(1)-1 + " NETSTAT.1: 56% NETSTAT(1)-1 + " SMM.13: 7% SMM:13-4 + " SMM.13: 8% SMM:13-4 + " SMM.13: 58% SMM:13-20 + " SMM.13: 59% SMM:13-21 + " SMM.13: 60% SMM:13-21 + " SMM.13: 60% SMM:13-21 + " SMM.15: 7% SMM:15-4 + " SMM.15: 7% SMM:15-4 + " SMM.15: 27% SMM:15-8 + " SMM.15: 33% SMM:15-10 + " SMM.15: 71% SMM:15-21 + " SOCKET.2: 9% SOCKET(2)-1 + " SMM.12A: 86% SMM:12-20 + " INTRO.2: 95% INTRO(2)-7 + " SMM.13: 1% SMM:13-2 +address list DIST.N: 10% DIST(1)-1 + " DIST.N: 33% DIST(1)-1 + " FORW.N: 22% FORW(1)-1 + " REPL.N: 50% REPL(1)-2 + " USD.08: 17% USD:8-18 + " USD.08: 17% USD:8-18 + " USD.08: 21% USD:8-23 + " USD.08: 48% USD:8-58 + " USD.08: 62% USD:8-76 + " USD.08: 62% USD:8-76 + " USD.16: 26% USD:16-5 +address mapping ARP.4P: 15% ARP(4P)-1 + " SMM.01: 70% SMM:1-42 + " SMM.01: 70% SMM:1-42 + " SMM.01: 70% SMM:1-42 + " SMM.16: 0% SMM:16-1 +address match USD.18: 35% USD:18-4 + " USD.18: 47% USD:18-5 + " USD.18: 51% USD:18-5 +address of an object LOC.3F: 25% USD:12-10 +Address Resolution Protocol (see also ARP) ARP.4P: 1% ARP(4P)-1 + " ARP.8C: 21% ARP(8C)-1 + " DE.4: 17% DE(4)-1 + " EC.4: 26% EC(4)-1 + " EX.4: 23% EX(4)-1 + " IFCONFIG.8C: 44% IFCONFIG(8C)-1 + " IL.4: 20% IL(4)-1 + " IX.4: 31% IX(4)-1 + " QE.4: 43% QE(4)-1 + " SMM.02: 36% SMM:2-10 + " SMM.02: 44% SMM:2-13 + " SMM.13: 59% SMM:13-21 + " SMM.13: 79% SMM:13-27 + " SMM.13: 79% SMM:13-27 + " SMM.15: 38% SMM:15-12 +address rewriting rule[s] SMM.16: 61% SMM:16-8 +address space BRK.2: 22% BRK(2)-1 + " PTRACE.2: 27% PTRACE(2)-1 + " PTRACE.2: 38% PTRACE(2)-1 + " SMM.02: 89% SMM:2-31 + " SMM.10: 27% SMM:10-8 + " SMM.13: 54% SMM:13-19 + " SMM.14: 70% SMM:14-10 + " SMM.14: 70% SMM:14-10 + " SMM.14: 70% SMM:14-10 + " SMM.19: 5% SMM:19-2 + " VFORK.2: 12% VFORK(2)-1 +address type INET.4F: 81% INET(4F)-1 +addressing, line USD.13: 3% USD:13-2 + " USD.13: 40% USD:13-7 + " USD.12: 1% USD:12-1 +addressing, mail MAILADDR.7: 1% MAILADDR(7)-1 +addressing, subnet INET.4F: 72% INET(4F)-1 +addressing, subnetwork SMM.13: 63% SMM:13-22 +addressing, wildcard SPP.4P: 24% SPP(4P)-1 + " TCP.4P: 33% TCP(4P)-1 +addstr PS1.18: 33% PS1:18-8 +addstr() PS1.18: 19% PS1:18-6 +addstr(str) PS1.18: 33% PS1:18-8 +adduser SMM.01: 53% SMM:1-34 +adduser - procedure for adding new users ADDUSER.8: 1% ADDUSER(8)-1 +adduser command ADDUSER.8: 2% ADDUSER(8)-1 +Adjective[s], Nouns and USD.32: 39% USD:32-6 +ADJTIME SMM.12A: 56% SMM:12-13 +Adjtime Message SMM.22: 30% SMM:22-3 + " SMM.22: 23% SMM:22-3 +adjtime system call ADJTIME.2: 2% ADJTIME(2)-1 +adjusted line[s] NROFF.1: 74% NROFF(1)-1 +adjusted line[s], equally-spaced words in USD.24: 3% USD:24-2 +Adjusting USD.24: 7% USD:24-3 + " USD.24: 33% USD:24-12 +adjustment, Line USD.24: 36% USD:24-13 +Administering the quota system SMM.04: 40% SMM:4-2 +admin, sccs PS1.14: 15% PS1:14-2 + " PS1.14: 62% PS1:14-9 +Admin Command PS1.14: 61% PS1:14-9 + " PS1.14: 61% PS1:14-9 + " PS1.14: 65% PS1:14-9 +Administrator, Database PS2.10: 52% PS2:10-47 + " PS2.10: 54% PS2:10-47 + " PS2.10: 55% PS2:10-48 + " PS2.10: 55% PS2:10-49 + " PS2.10: 67% PS2:10-59 +Advanced 4.3BSD Interprocess Communication PS1.08: 0% unknown +administration, uucp SMM.09: 91% SMM:9-19 +administrative information HIER.7: 38% HIER(7)-4 +administrator, site SMM.10: 11% SMM:10-3 + " SMM.10: 70% SMM:10-18 + " SMM.11: 20% SMM:11-3 +administrator, system USD.09: 74% USD:9-9 +administrator, USENET USD.10: 2% USD:10-1 + " USD.10: 8% USD:10-2 + " USD.10: 8% USD:10-2 + " USD.10: 8% USD:10-2 + " USD.10: 9% USD:10-2 + " USD.10: 10% USD:10-2 + " USD.10: 15% USD:10-2 + " USD.10: 19% USD:10-3 + " USD.10: 19% USD:10-3 + " USD.10: 46% USD:10-5 +Administrator, UUCP L_SYS.5: 3% L.SYS(5)-1 + " SMM.09: 81% SMM:9-17 + " SMM.09: 88% SMM:9-19 + " SMM.09: 88% SMM:9-19 + " SMM.09: 88% SMM:9-19 + " USERFILE.5: 29% USERFILE(5)-1 + " UUCP.1C: 80% UUCP(1C)-2 + " UUXQT.8C: 46% UUXQT(8C)-1 +Advanced Editing on UNIX USD.13: 0% unknown +advanced file handling script USD.02: 39% USD:2-5 +Adverb[s] USD.32: 37% USD:32-6 +advisory lock CLOSE.2: 27% CLOSE(2)-1 + " FLOCK.2: 3% FLOCK(2)-1 + " FLOCK.2: 16% FLOCK(2)-1 + " FLOCK.2: 26% FLOCK(2)-1 + " FLOCK.2: 32% FLOCK(2)-1 + " SMM.14: 1% SMM:14-2 + " SMM.14: 80% SMM:14-12 + " SMM.14: 81% SMM:14-12 + " SMM.14: 81% SMM:14-12 + " SMM.14: 81% SMM:14-12 + " SMM.14: 81% SMM:14-12 + " SMM.14: 82% SMM:14-12 +advisory read or write lock on a file PS1.06: 70% PS1:6-31 +AF_INET PS1.06: 73% PS1:6-33 + " PS1.07a: 29% PS1:7-8 +AF_UNIX PS1.06: 73% PS1:6-33 + " PS1.07a: 29% PS1:7-8 +ae ligature USD.21: 84% USD:21-3 + " USD.21: 84% USD:21-3 +AED 512 color graphics terminal PLOT.1G: 49% PLOT(1G)-1 + " PLOT.3X: 58% PLOT(3X)-1 +affixes, filename BASENAME.1: 11% BASENAME(1)-1 +Aho, A. V. AWK.1: 93% AWK(1)-2 + " YACC.1: 71% YACC(1)-1 +Alarm LEAVE.1: 56% CSH(1)-12 +aggregate PS1.01: 84% PS1:1-28 +aggregate function PS2.10: 38% PS2:10-34 + " PS2.10: 42% PS2:10-36 + " PS2.10: 42% PS2:10-36 + " PS2.10: 42% PS2:10-36 + " PS2.10: 43% PS2:10-36 + " PS2.10: 43% PS2:10-37 + " PS2.10: 92% PS2:10-83 + " PS2.10: 92% PS2:10-83 + " PS2.10: 93% PS2:10-83 + " PS2.10: 93% PS2:10-83 + " PS2.10: 93% PS2:10-83 + " PS2.10: 93% PS2:10-83 + " PS2.10: 93% PS2:10-83 +alarm clock ALARM.3C: 50% ALARM(3C)-1 + " ALARM.3C: 84% ALARM(3C)-1 + " UALARM.3: 84% UALARM(3)-1 + " SIGNAL.3C: 26% SIGNAL(3C)-1 +alarm routine ALARM.3C: 5% ALARM(3C)-1 + " ALARM.3F: 7% SMM:12-15 +alarm system call PS1.06: 35% PS1:6-17 +alert condition SYSLOG.3: 24% SYSLOG(3)-1 +algorithm, adaptive SMM.07A: 71% SMM:07-32 +algorithm, DES CRYPT.3: 35% CRYPT(3)-1 + " CRYPT.3: 54% CRYPT(3)-1 + " CRYPT.3: 83% CRYPT(3)-1 + " SMM.18: 68% SMM:18-4 +algorithm, encryption SMM.17: 77% SMM:17-3 + " SMM.18: 36% SMM:18-3 + " SMM.18: 42% SMM:18-3 +algorithm, exponential backoff EC.4: 42% EC(4)-1 + " EC.4: 71% EC(4)-1 + " EN.4: 29% EN(4)-1 + " EN.4: 69% EN(4)-1 +ali - list mail aliases ALI.N: 2% ALI(1)-1 + " USD.08: 12% unknown +ali command ALI.N: 2% ALI(1)-1 +alias list PS1.08: 31% PS1:8-11 + " PS1.08: 35% PS1:8-13 + " PS1.08: 36% PS1:8-14 + " PS1.08: 37% PS1:8-14 +aliases WHICH.1: 59% WHICH(1)-1 + " USD.04: 69% USD:4-34 + " USD.08: 74% USD:8-90 +aliases, command DBX.1: 64% DBX(1)-5 +aliases, local HTABLE.8: 42% HTABLE(8)-1 +aliases, remove USD.04: 52% USD:4-24 +alias command MAIL.1: 60% MAIL(1)-4 + " USD.04: 34% USD:4-16 + " USD.04: 49% USD:4-22 + " USD.07: 17% USD:7-5 + " USD.07: 45% USD:7-11 + " USD.07: 46% USD:7-11 + " CSH.1: 24% CSH(1)-5 +alias database SENDMAIL.8: 17% SENDMAIL(8)-1 + " SENDMAIL.8: 52% SENDMAIL(8)-2 + " SENDMAIL.8: 89% SENDMAIL(8)-3 + " SMM.16: 50% SMM:16-7 + " SMM.07A: 11% SMM:07-7 + " SMM.07A: 18% SMM:07-10 + " SMM.07A: 18% SMM:07-10 + " SMM.07A: 19% SMM:07-10 + " SMM.07A: 19% SMM:07-10 + " SMM.07A: 20% SMM:07-11 + " SMM.07A: 21% SMM:07-11 + " SMM.07A: 33% SMM:07-16 + " SMM.07A: 33% SMM:07-16 + " SMM.07A: 34% SMM:07-16 + " SMM.07A: 67% SMM:07-28 + " SMM.07A: 69% SMM:07-30 + " SMM.07A: 70% SMM:07-30 + " SMM.07A: 70% SMM:07-30 + " SMM.07A: 88% SMM:07-38 +alias definition MH-ALIAS.N: 16% MH-ALIAS(5)-1 + " SEND.N: 85% SEND(1)-2 + " USD.04: 34% USD:4-15 + " USD.08: 55% USD:8-65 + " USD.08: 61% USD:8-73 + " WHOM.N: 43% WHOM(1)-1 +alias file MH-ALIAS.N: 0% MH-ALIAS(5)-1 + " MH-ALIAS.N: 5% MH-ALIAS(5)-1 + " MH-ALIAS.N: 17% MH-ALIAS(5)-1 + " SMM.16: 49% SMM:16-7 + " USD.08: 61% USD:8-75 + " USD.08: 61% USD:8-75 + " USD.08: 61% USD:8-75 + " USD.08: 62% USD:8-76 + " USD.08: 62% USD:8-76 + " SMM.07A: 19% SMM:07-11 + " SMM.07A: 69% SMM:07-30 + " SMM.07A: 88% SMM:07-38 + " SMM.07A: 88% SMM:07-38 + " SMM.12A: 93% SMM:12-22 + " SMM.12A: 95% SMM:12-22 +alias macro[s] WINDOW.1: 63% WINDOW(1)-5 + " WINDOW.1: 65% WINDOW(1)-5 + " WINDOW.1: 71% WINDOW(1)-5 +alias mechanism USD.04: 33% USD:4-15 + " USD.04: 34% USD:4-15 + " USD.07: 54% USD:7-13 +alias shell command CSH.1: 50% CSH(1)-10 +Alias substitution[s] CSH.1: 24% CSH(1)-5 + " CSH.1: 90% CSH(1)-19 + " CSH.1: 96% CSH(1)-20 + " USD.08: 37% USD:8-43 +aliases - aliases file for sendmail ALIASES.5: 3% ALIASES(5)-1 +aliases file ALIASES.5: 4% ALIASES(5)-1 +Aliasing SMM.16: 45% SMM:16-6 +aliasing facility USD.08: 4% USD:8-4 +aliasing in MH MH-ALIAS.N: 68% MH-ALIAS(5)-2 + " MH-ALIAS.N: 77% MH-ALIAS(5)-3 + " USD.08: 63% USD:8-76 + " USD.08: 63% USD:8-77 +aliasing loop SMM.07A: 79% SMM:07-34 + " SMM.07A: 83% SMM:07-37 +allbox - enclose each item in the table in a box USD.28: 9% USD:28-2 +Allman, Eric SCCS.1: 95% SCCS(1)-2 + " SMM.16: 0% SMM:16-1 + " TREK.6: 66% TREK(6)-1 +alloc CSH.1: 50% CSH(1)-10 +alloca MALLOC.3: 2% MALLOC(3)-1 +allocate an mbuf SMM.15: 11% SMM:15-5 +allocating blocks NEWFS.8: 52% NEWFS(8)-1 + " SMM.14: 66% SMM:14-10 + " SMM.14: 66% SMM:14-10 + " SMM.14: 66% SMM:14-10 + " TUNEFS.8: 32% TUNEFS(8)-1 + " TUNEFS.8: 66% TUNEFS(8)-1 +allocation, block SMM.14: 53% SMM:14-8 + " SMM.14: 55% SMM:14-8 + " SMM.14: 74% SMM:14-11 + " SMM.14: 74% SMM:14-11 +allocation, buffer SMM.13: 37% SMM:13-13 + " SMM.15: 23% SMM:15-8 + " SMM.15: 23% SMM:15-8 + " SMM.15: 23% SMM:15-8 +allocation, memory SMM.13: 23% SMM:13-9 + " SMM.13: 34% SMM:13-13 +allocation, register SMM.19: 50% SMM:19-14 + " SMM.19: 59% SMM:19-17 + " SMM.19: 66% SMM:19-19 + " SMM.19: 67% SMM:19-19 + " SMM.19: 70% SMM:19-20 + " SMM.19: 82% SMM:19-23 + " SMM.19: 83% SMM:19-23 + " SMM.19: 91% SMM:19-25 + " SMM.19: 97% SMM:19-27 +Allocation, Storage SMM.19: 20% SMM:19-6 +allocation policy[s] SMM.14: 0% SMM:14-2 +allocation routines SMM.14: 43% SMM:14-7 + " SMM.14: 48% SMM:14-8 + " SMM.14: 53% SMM:14-8 + " SMM.14: 53% SMM:14-8 + " SMM.14: 54% SMM:14-8 +allocation/deallocation strategy SMM.14: 2% SMM:14-2 +allocator, dynamic storage USD.05: 24% USD:5-3 + " USD.05: 85% USD:5-7 + " USD.06: 2% USD:6-1 +allocator, memory CSH.1: 51% CSH(1)-10 + " FOPEN.3S: 92% FOPEN(3S)-1 + " MALLOC.3: 3% MALLOC(3)-1 + " MALLOC.3F: 2% MALLOC(3F)-1 + " SMM.01: 34% SMM:1-23 + " VALLOC.3C: 9% VALLOC(3C)-1 +allow-bad-filenames (variable) USD.17: 56% USD:17-25 +allow-^S-and-^Q USD.17: 56% USD:17-25 +alphabetical order PS2.07: 32% PS2:7-15 + " PS2.09: 9% PS2:9-16 + " PS2.09: 9% PS2:9-16 + " PS2.09: 20% PS2:9-39 + " PS2.09: 20% PS2:9-39 + " SORT.1: 74% SORT(1)-1 + " USD.01: 28% USD:1-5 + " USD.01: 40% USD:1-6 + " USD.01: 41% USD:1-7 +alphanumeric character CTYPE.3: 49% CTYPE(3)-1 +alphasort - scan a directory SCANDIR.3: 3% SCANDIR(3)-1 +alter priority RENICE.8: 3% RENICE(8)-1 +alternate accounting file SMM.12A: 92% SMM:12-22 +alternate alias file SENDMAIL.8: 47% SENDMAIL(8)-2 +alternate manual directory SMM.12A: 39% SMM:12-9 +alternate password file GETPWENT.3: 74% GETPWENT(3)-2 +alternate return PS1.02: 40% PS1:2-14 + " PS1.02: 53% PS1:2-18 + " PS1.02: 53% PS1:2-18 + " PS1.02: 64% PS1:2-21 + " PS1.02: 64% PS1:2-21 +Ambiguity and Conflict PS1.15: 37% PS1:15-11 +alternate super block FSCK.8: 62% FSCK(8)-2 +Alternate-Mailbox USD.08: 70% USD:8-86 +alternates command MAIL.1: 32% MAIL(1)-2 + " MAIL.1: 33% MAIL(1)-2 + " USD.07: 53% USD:7-13 +Ampersand USD.12: 91% USD:12-10 + " USD.13: 32% USD:13-6 +AMPEX 9300 partitions HP.4: 58% HP(4)-3 +AMPEX Capricorn HP.4: 20% HP(4)-1 + " SMM.14: 60% SMM:14-9 + " UP.4: 24% UP(4)-1 +AMPEX Capricorn 330M drive partition[s] UP.4: 43% UP(4)-2 +AMPEX Capricorn partitions HP.4: 48% HP(4)-3 +AMPEX DM980 UP.4: 24% UP(4)-1 +AMPEX DM980 partition[s] UP.4: 34% UP(4)-1 +Amulet of Yendor ROGUE.6: 35% ROGUE(6)-1 +ambiguous specification[s] PS1.16: 51% PS1:16-7 + " PS1.16: 2% PS1:16-1 +Analysis, Lexical PS1.15: 21% PS1:15-6 + " PS1.15: 92% PS1:15-28 + " PS1.15: 95% PS1:15-31 +analog-digital conversion AD.4: 47% AD(4)-1 +Analysis, Lexical SMM.19: 6% SMM:19-3 + " SMM.19: 11% SMM:19-4 + " SMM.19: 16% SMM:19-5 + " SMM.19: 47% SMM:19-13 + " USD.19: 83% USD:19-6 +analyzer, lexical PS1.15: 3% PS1:15-1 + " PS1.15: 4% PS1:15-2 + " PS1.15: 5% PS1:15-2 + " PS1.15: 5% PS1:15-2 + " PS1.15: 5% PS1:15-2 + " PS1.15: 5% PS1:15-2 + " PS1.15: 6% PS1:15-2 + " PS1.15: 7% PS1:15-2 + " PS1.15: 9% PS1:15-3 + " PS1.15: 10% PS1:15-3 + " PS1.15: 16% PS1:15-5 + " PS1.15: 17% PS1:15-5 + " PS1.15: 20% PS1:15-6 + " PS1.15: 21% PS1:15-6 + " PS1.15: 21% PS1:15-6 + " PS1.15: 21% PS1:15-6 + " PS1.15: 22% PS1:15-6 + " PS1.15: 22% PS1:15-6 + " PS1.15: 23% PS1:15-7 + " PS1.15: 23% PS1:15-7 + " PS1.15: 24% PS1:15-7 + " PS1.15: 25% PS1:15-7 + " PS1.15: 25% PS1:15-7 + " PS1.15: 31% PS1:15-9 + " PS1.15: 62% PS1:15-18 + " PS1.15: 69% PS1:15-20 + " PS1.15: 69% PS1:15-20 + " PS1.15: 71% PS1:15-20 + " PS1.15: 74% PS1:15-21 + " PS1.15: 75% PS1:15-21 + " PS1.15: 82% PS1:15-24 + " PS1.15: 92% PS1:15-28 + " PS1.15: 99% PS1:15-33 + " PS1.16: 15% PS1:16-2 + " PS1.16: 85% PS1:16-11 + " SMM.19: 10% SMM:19-4 + " SMM.19: 12% SMM:19-4 + " SMM.19: 16% SMM:19-5 + " SMM.19: 17% SMM:19-6 + " SMM.19: 34% SMM:19-10 + " USD.26: 90% USD:26-7 +angle bracket[s] SMM.16: 42% SMM:16-6 + " SMM.07A: 71% SMM:07-32 +angstrom USD.21: 82% USD:21-3 +Ann Arbor Ambassador SYSLINE.1: 8% SYSLINE(1)-1 +anno - annotate message[s] ANNO.N: 3% ANNO(1)-1 + " USD.08: 13% USD:8-13 +anno command USD.08: 4% USD:8-4 + " USD.08: 86% USD:8-104 + " ANNO.N: 3% ANNO(1)-1 +annobib USD.29: 70% USD:29-7 +annotate messages ANNO.N: 3% ANNO(1)-1 +annotated bibliography PS1.04: 2% PS1:4-2 +ANSI PS1.03: 1% PS1:3-1 + " PS1.03: 15% PS1:3-3 + " PS1.03: 45% PS1:3-6 + " PS1.03: 52% PS1:3-7 + " PS1.03: 80% PS1:3-10 + " PS1.03: 83% PS1:3-11 +ANSI Fortran PS2.08: 8% PS2:8-2 + " PS2.08: 18% PS2:8-3 + " PS2.08: 34% PS2:8-5 +APL PS2.01: 6% PS2:1-2 + " PS2.07: 8% PS2:7-5 +annotated message DIST.N: 41% DIST(1)-1 + " FORW.N: 28% FORW(1)-1 + " REPL.N: 55% REPL(1)-2 + " USD.08: 13% USD:8-13 + " USD.08: 17% USD:8-18 + " USD.08: 21% USD:8-23 + " USD.08: 48% USD:8-58 +annotated UNIX bibliography USD.01: 1% USD:1-1 +Annotation[s] MH-MAIL.N: 91% MH-MAIL(5)-3 + " MH-MAIL.N: 92% MH-MAIL(5)-3 + " MH-MAIL.N: 93% MH-MAIL(5)-3 + " USD.08: 13% USD:8-13 + " USD.08: 68% USD:8-84 + " USD.08: 68% USD:8-84 + " USD.08: 69% USD:8-84 + " USD.22: 38% USD:22-7 + " USD.23: 35% USD:23-5 + " USD.29: 31% USD:29-3 +annotation paragraph[s] REFER.1: 64% REFER(1)-2 + " ROFFBIB.1: 36% ROFFBIB(1)-1 + " USD.29: 35% USD:29-4 + " USD.29: 70% USD:29-7 +Annotations Inside Keep[s] USD.22: 82% USD:22-16 +anonymous account FTPD.8C: 88% FTPD(8C)-2 + " FTPD.8C: 90% FTPD(8C)-2 + " SMM.01: 72% SMM:1-43 + " SMM.01: 72% SMM:1-43 + " SMM.01: 73% SMM:1-44 +anonymous ftp FTPD.8C: 62% FTPD(8C)-2 +anonymous ftp account SMM.01: 72% SMM:1-43 +ANSEL VAX (a picture perfect machine) SMM.02: 38% SMM:2-11 +ANSI C SMM.19: 93% SMM:19-26 + " SMM.19: 94% SMM:19-26 + " SMM.19: 96% SMM:19-27 + " SMM.12A: 6% SMM:12-2 +ANSI format, tapes in SMM.12A: 97% SMM:12-23 +ansitape SMM.12A: 97% SMM:12-23 +Answers to Frequently Asked Question[s] USD.10: 78% USD:10-10 +ap - parse addresses 822-style AP.N: 2% AP(8)-1 + " USD.08: 75% USD:8-91 +ap command AP.N: 2% AP(8)-1 +Append[s] MAIL.1: 79% MAIL(1)-5 + " USD.07: 73% USD:7-17 + " USD.16: 28% USD:16-5 +append - append tuples to a relation PS2.10: 4% PS2:10-7 +append a message MHOOK.N: 17% MHOOK(1)-1 +append command PS2.10: 30% PS2:10-29 + " PS2.10: 83% PS2:10-76 + " PS2.10: 86% PS2:10-77 +append command ED.1: 41% ED(1)-3 + " USD.12: 7% USD:12-1 + " USD.12: 14% USD:12-2 + " USD.12: 72% USD:12-8 + " USD.13: 49% USD:13-9 + " USD.14: 30% USD:14-8 + " USD.14: 30% USD:14-8 + " USD.14: 31% USD:14-8 + " USD.15: 23% USD:15-7 + " USD.15: 27% USD:15-8 +append line[s] USD.18: 44% USD:18-4 +append mode DUP.2: 46% DUP(2)-1 + " USD.14: 19% USD:14-6 + " USD.14: 20% USD:14-6 + " USD.14: 20% USD:14-6 + " USD.14: 20% USD:14-6 + " USD.14: 21% USD:14-6 + " USD.14: 22% USD:14-6 + " USD.14: 30% USD:14-8 + " USD.14: 31% USD:14-8 + " USD.14: 31% USD:14-8 + " USD.14: 63% USD:14-16 +Append string USD.24: 50% USD:24-16 +append on each write PS1.06: 59% PS1:6-28 +Architecture Manual, 4.3BSD PS1.06: 1% PS1:6-2 + " PS1.06: 4% PS1:6-4 + " PS1.06: 4% PS1:6-4 + " PS1.06: 6% PS1:6-6 + " PS1.06: 7% PS1:6-6 + " PS1.06: 9% PS1:6-8 + " PS1.06: 12% PS1:6-8 + " PS1.06: 14% PS1:6-10 + " PS1.06: 16% PS1:6-10 + " PS1.06: 20% PS1:6-12 + " PS1.06: 22% PS1:6-12 + " PS1.06: 27% PS1:6-14 + " PS1.06: 30% PS1:6-14 + " PS1.06: 32% PS1:6-16 + " PS1.06: 34% PS1:6-16 + " PS1.06: 35% PS1:6-18 + " PS1.06: 38% PS1:6-18 + " PS1.06: 42% PS1:6-20 + " PS1.06: 43% PS1:6-20 + " PS1.06: 46% PS1:6-22 + " PS1.06: 47% PS1:6-22 + " PS1.06: 49% PS1:6-24 + " PS1.06: 51% PS1:6-24 + " PS1.06: 54% PS1:6-26 + " PS1.06: 56% PS1:6-26 + " PS1.06: 59% PS1:6-28 + " PS1.06: 62% PS1:6-28 + " PS1.06: 65% PS1:6-30 + " PS1.06: 68% PS1:6-30 + " PS1.06: 71% PS1:6-32 + " PS1.06: 73% PS1:6-32 + " PS1.06: 76% PS1:6-34 + " PS1.06: 80% PS1:6-34 + " PS1.06: 82% PS1:6-36 + " PS1.06: 85% PS1:6-36 + " PS1.06: 88% PS1:6-38 + " PS1.06: 92% PS1:6-38 + " PS1.06: 94% PS1:6-40 + " PS1.06: 94% PS1:6-40 + " PS1.06: 96% PS1:6-42 + " PS1.06: 98% PS1:6-42 +Arguments PS1.02: 4% PS1:2-4 + " PS1.02: 4% PS1:2-4 + " PS1.02: 4% PS1:2-4 + " PS1.02: 51% PS1:2-17 +append to file FCNTL.2: 57% FCNTL(2)-1 + " OPEN.2: 22% OPEN(2)-1 +Append to macro USD.24: 49% USD:24-16 +append-only directory[s], sticky - persistent text and STICKY.8: 3% STICKY(8)-1 +append-region USD.17: 56% USD:17-25 +appending, Divert, USD.24: 50% USD:24-17 +Appending Kill[s] USD.17: 17% USD:17-8 +appending text MAIL.1: 75% MAIL(1)-5 + " USD.14: 20% USD:14-6 +appending to a file SH.1: 47% SH(1)-3 +appending to files CSH.1: 42% CSH(1)-9 + " FOPEN.3S: 26% FOPEN(3S)-1 +appends a copy of string STRING.3: 45% STRING(3)-1 +Apple Macintosh EXP.3M: 48% EXP(3M)-2 +apply command APPLY.1: 3% APPLY(1)-1 +apply command examples APPLY.1: 55% APPLY(1)-1 +apropo[s] USD.17: 7% USD:17-3 + " USD.17: 56% USD:17-25 +apropos command (see also man command) APROPOS.1: 5% APROPOS(1)-1 +APS-5 phototypesetter USD.24: 95% USD:24-32 +ar - archive (library) file format AR.5: 2% AR(5)-1 +ar - archive and library maintainer AR.1: 1% AR(1)-1 +ar command AR.1: 1% AR(1)-1 +Arabic, .ar Set page number in USD.23: 48% USD:23-6 +arabic format USD.24: 54% USD:24-18 +arbitrary precision arithmetic DC.1: 3% DC(1)-1 +Arbitrary Precision Desk-Calculator Language USD.06: 0% USD:6-1 + " USD.06: 0% USD:6-1 + " USD.06: 8% USD:6-2 + " USD.06: 16% USD:6-2 + " USD.06: 28% USD:6-4 + " USD.06: 38% USD:6-4 + " USD.06: 47% USD:6-6 + " USD.06: 52% USD:6-6 + " USD.06: 60% USD:6-8 + " USD.06: 62% USD:6-8 + " USD.06: 68% USD:6-10 + " USD.06: 76% USD:6-10 + " USD.06: 83% USD:6-12 + " USD.06: 89% USD:6-12 + " USD.06: 95% USD:6-14 +arc PLOT.3F: 26% PLOT(3F)-1 + " PLOT.3X: 12% PLOT(3X)-1 +architecture, machine SMM.19: 59% SMM:19-16 + " SMM.19: 73% SMM:19-20 + " SMM.19: 78% SMM:19-22 +architectures, network SMM.12A: 73% SMM:12-17 +architecture, VAX SMM.15: 92% SMM:15-26 + " TRPFPE.3F: 79% TRPFPE(3F)-1 +archival storage of message[s] SMM.16: 43% SMM:16-6 +archive[s] NM.1: 19% NM(1)-1 + " RANLIB.1: 6% RANLIB(1)-1 +archive, tp - manipulate tape TP.1: 1% TP(1)-1 +archive file[s] AR.1: 6% AR(1)-1 + " AR.1: 19% AR(1)-1 + " AR.1: 21% AR(1)-1 + " AR.1: 24% AR(1)-1 + " AR.1: 25% AR(1)-1 + " AR.1: 29% AR(1)-1 + " AR.5: 81% AR(5)-1 +archive file format AR.5: 2% AR(5)-1 +archive notesfile USD.11: 62% USD:11-10 + " USD.11: 62% USD:11-10 +archiver, tar - tape TAR.1: 0% TAR(1)-1 +arctangent BC.1: 42% BC(1)-1 +arcv SMM.12A: 4% SMM:12-2 +Are You There TELNET.1C: 41% TELNET(1C)-2 + " SMM.12A: 51% SMM:12-12 +area, plotting PLOT.5: 73% PLOT(5)-1 + " PLOT.5: 80% PLOT(5)-1 + " PLOT.5: 85% PLOT(5)-1 + " PLOT.5: 86% PLOT(5)-1 +area, primary swap CRASH.8V: 87% CRASH(8V)-3 + " SMM.01: 29% SMM:1-20 + " SMM.13: 48% SMM:13-17 +arff SMM.12A: 81% SMM:12-19 +arff, flcopy - archiver and copier for floppy ARFF.8V: 1% ARFF(8V)-1 +arff command ARFF.8V: 1% ARFF(8V)-1 +arg[s] USD.16: 30% USD:16-6 +arg count EXECVE.2: 57% EXECVE(2)-2 + " SMM.12A: 40% SMM:12-9 +argc EXECL.3: 51% EXECL(3)-1 + " EXECVE.2: 56% EXECVE(2)-2 +ARGSUSED LINT.1: 78% LINT(1)-2 +Argument[s] USD.24: 44% USD:24-15 + " USD.24: 44% USD:24-15 + " USD.24: 46% USD:24-15 + " USD.04: 69% USD:4-34 +argument[s], command FIND.1: 49% FIND(1)-1 + " FTP.1C: 73% FTP(1C)-6 + " PS.1: 27% PS(1)-1 + " CSH.1: 29% CSH(1)-6 +argument[s], command line GETARG.3F: 72% GETARG(3F)-1 + " GETARG.3F: 15% GETARG(3F)-1 + " PS1.04: 65% PS1:4-34 + " PS2.09: 76% PS2:9-125 +argument[s], default USD.03: 22% USD:3-5 + " USD.04: 33% USD:4-15 + " USD.04: 34% USD:4-15 + " USD.08: 7% USD:8-6 +argument[s], flag USD.04: 5% USD:4-4 +argument[s], formal SMM.19: 94% SMM:19-26 +argument, format USD.20: 80% USD:20-6 + " USD.20: 80% USD:20-6 +argument[s], function BC.1: 46% BC(1)-2 + " BC.1: 66% BC(1)-2 + " SMM.19: 51% SMM:19-15 + " USD.06: 72% USD:6-10 + " USD.06: 73% USD:6-10 +argument[s], functional FP.1: 31% FP(1)-1 + " FP.1: 36% FP(1)-1 +argument[s], Macros with USD.25: 69% USD:25-10 +argument[s], option GETOPT.3: 20% GETOPT(3)-1 +arguments, dummy PS1.02: 25% PS1:2-9 + " PS1.02: 59% PS1:2-20 + " PS1.02: 59% PS1:2-20 +argument[s], flag PS1.12: 55% PS1:12-5 + " PS1.12: 66% PS1:12-6 + " PS2.01: 29% PS2:1-5 +argument[s], formal PS1.01: 23% PS1:1-7 + " PS2.06: 21% PS2:6-8 + " PS2.06: 26% PS2:6-10 + " PS2.06: 26% PS2:6-10 + " PS2.06: 41% PS2:6-15 + " PS2.06: 44% PS2:6-16 + " PS2.06: 44% PS2:6-16 + " PS2.06: 66% PS2:6-23 + " PS2.06: 67% PS2:6-23 + " PS2.06: 67% PS2:6-23 + " PS2.06: 67% PS2:6-23 + " PS2.06: 67% PS2:6-23 + " PS2.06: 68% PS2:6-23 +argument[s], function PS1.01: 93% PS1:1-31 + " PS1.09: 36% PS1:9-4 + " PS1.09: 55% PS1:9-6 + " PS2.09: 59% PS2:9-103 +argument[s], functional PS2.07: 2% PS2:7-4 + " PS2.07: 33% PS2:7-15 + " PS2.07: 33% PS2:7-15 + " PS2.07: 37% PS2:7-17 +argument[s], macro PS1.17: 45% PS1:17-3 +argument[s], procedure PS1.02: 41% PS1:2-14 + " PS2.06: 21% PS2:6-8 + " PS2.06: 24% PS2:6-10 +argument list[s] PS1.02: 37% PS1:2-13 + " PS1.02: 40% PS1:2-14 + " PS2.01: 70% PS2:1-11 + " PS2.03: 49% PS2:3-8 + " PS2.09: 7% PS2:9-10 + " PS2.09: 26% PS2:9-51 + " PS2.09: 26% PS2:9-51 + " PS2.09: 29% PS2:9-55 + " PS2.09: 33% PS2:9-60 + " PS2.09: 33% PS2:9-60 + " PS2.09: 33% PS2:9-60 + " PS2.09: 33% PS2:9-60 + " PS2.09: 71% PS2:9-116 + " PS2.09: 95% PS2:9-150 + " PS2.10: 57% PS2:10-50 +arguments, variable numbers of LINT.1: 70% LINT(1)-1 +argument expansion, Braces { ... } in USD.04: 66% USD:4-32 +argument list EXECVE.2: 89% EXECVE(2)-2 +argument list, varargs - variable VARARGS.3: 2% VARARGS(3)-1 +Argument list processing CSH.1: 90% CSH(1)-19 +Arguments to JOVE Command, Numeric USD.17: 11% USD:17-5 +argv EXECL.3: 52% EXECL(3)-1 + " EXECVE.2: 57% EXECVE(2)-2 + " USD.04: 69% USD:4-34 +argv, getopt - get option letter from GETOPT.3: 1% GETOPT(3)-1 +argv shell variable CSH.1: 27% CSH(1)-6 + " CSH.1: 78% CSH(1)-17 + " CSH.1: 79% CSH(1)-17 +argv variable USD.04: 53% USD:4-25 +arithmetic, arbitrary precision DC.1: 3% DC(1)-1 +arithmetic, floating point PS1.01: 92% PS1:1-31 + " PS1.04: 89% PS1:4-45 + " PS1.04: 89% PS1:4-45 +Arithmetic Conversion PS1.01: 16% PS1:1-5 + " PS1.01: 16% PS1:1-5 + " PS1.01: 25% PS1:1-8 + " PS1.01: 26% PS1:1-8 + " PS1.01: 28% PS1:1-9 + " PS1.01: 29% PS1:1-9 + " PS1.01: 31% PS1:1-9 + " PS1.01: 31% PS1:1-9 + " PS1.01: 33% PS1:1-10 + " PS1.01: 34% PS1:1-10 + " PS1.01: 34% PS1:1-10 + " PS1.01: 35% PS1:1-11 + " PS1.01: 36% PS1:1-11 + " PS1.01: 65% PS1:1-22 +arithmetic expression PS1.15: 9% PS1:15-3 + " PS1.15: 38% PS1:15-11 + " PS1.15: 48% PS1:15-14 + " PS1.15: 48% PS1:15-14 + " PS1.15: 81% PS1:15-24 +arithmetic operations PS1.04: 93% PS1:4-47 + " PS1.15: 88% PS1:15-28 + " PS2.09: 0% PS2:9-3 +arithmetic operators PS1.15: 50% PS1:15-15 + " PS2.07: 7% PS2:7-5 + " PS2.10: 37% PS2:10-33 + " PS2.10: 37% PS2:10-33 + " PS2.10: 38% PS2:10-34 +arithmetic type PS1.01: 10% PS1:1-4 + " PS1.01: 26% PS1:1-8 + " PS1.01: 56% PS1:1-18 + " PS2.06: 28% PS2:6-11 + " PS2.06: 29% PS2:6-11 + " PS2.06: 31% PS2:6-11 +Arrays PS1.01: 22% PS1:1-7 + " PS1.01: 85% PS1:1-29 + " PS2.09: 1% PS2:9-3 + " PS2.09: 5% PS2:9-9 + " PS2.09: 15% PS2:9-28 + " PS2.09: 63% PS2:9-108 + " PS2.09: 63% PS2:9-108 +arithmetic, floating point SMM.19: 72% SMM:19-20 + " SMM.19: 86% SMM:19-24 + " IEEE.3M: 15% IEEE(3M)-1 + " MATH.3M: 37% MATH(3M)-3 + " MATH.3M: 96% MATH(3M)-6 +arithmetic, Single precision SMM.19: 93% SMM:19-26 +arithmetic - provide drill in number facts ARITHMETIC.6: 3% ARITHMETIC(6)-1 +Arithmetic Conversion SMM.19: 71% SMM:19-20 + " SMM.19: 85% SMM:19-24 +arithmetic drill ARITHMETIC.6: 3% ARITHMETIC(6)-1 +arithmetic error, traper - trap TRAPER.3F: 5% TRAPER(3F)-1 +arithmetic exceptions TRAPOV.3F: 31% TRAPOV(3F)-1 + " TRAPOV.3F: 81% TRAPOV(3F)-1 + " TRPFPE.3F: 26% TRPFPE(3F)-1 +arithmetic expression AWK.1: 70% AWK(1)-2 + " M4.1: 71% M4(1)-2 + " SMM.19: 95% SMM:19-26 + " SMM.19: 95% SMM:19-26 + " USD.06: 8% USD:6-2 + " USD.25: 66% USD:25-10 +arithmetic operation BC.1: 55% BC(1)-2 + " SMM.19: 70% SMM:19-20 + " USD.05: 42% USD:5-4 + " USD.05: 45% USD:5-4 + " USD.06: 23% USD:6-3 +arithmetic operators USD.19: 53% USD:19-5 + " USD.25: 66% USD:25-10 +armor protection USD.33: 19% USD:33-3 +ARP ARP.8C: 3% ARP(8C)-1 + " SMM.12A: 73% SMM:12-17 + " SMM.12A: 82% SMM:12-19 +ARP (see also protocols, ...) ARP.4P: 3% ARP(4P)-1 + " ARP.4P: 17% ARP(4P)-1 + " ARP.4P: 64% ARP(4P)-2 + " DE.4: 29% DE(4)-1 + " EC.4: 36% EC(4)-1 + " EN.4: 58% EN(4)-1 + " EX.4: 39% EX(4)-1 + " IL.4: 34% IL(4)-1 + " IX.4: 41% IX(4)-1 + " QE.4: 47% QE(4)-1 + " QE.4: 74% QE(4)-1 + " QE.4: 94% QE(4)-1 + " SMM.01: 62% SMM:1-38 + " SMM.02: 44% SMM:2-13 + " SMM.13: 59% SMM:13-21 + " SMM.13: 59% SMM:13-21 + " SMM.13: 80% SMM:13-27 + " SMM.13: 80% SMM:13-27 +arp - Address Resolution Protocol ARP.4P: 1% ARP(4P)-1 +ARP entry[s] ARP.4P: 31% ARP(4P)-1 + " ARP.4P: 32% ARP(4P)-1 + " ARP.4P: 33% ARP(4P)-1 + " ARP.8C: 27% ARP(8C)-1 + " ARP.8C: 36% ARP(8C)-1 + " ARP.8C: 51% ARP(8C)-1 +ARP server ARP.4P: 60% ARP(4P)-1 + " ARP.8C: 70% ARP(8C)-1 + " SMM.12A: 73% SMM:12-17 +ARP table[s] ARP.8C: 85% ARP(8C)-1 + " SMM.13: 59% SMM:13-21 + " SMM.13: 80% SMM:13-27 +ARPA SMM.07A: 70% SMM:07-30 +ARPA domain SMM.11: 36% SMM:11-5 + " SMM.11: 36% SMM:11-5 + " SMM.11: 60% SMM:11-8 +ARPA Internet AP.N: 13% AP(8)-1 + " DP.N: 13% DP(8)-1 + " USD.08: 75% USD:8-91 + " USD.08: 76% USD:8-94 +ARPA Internet Text Messages, Format of DP.N: 75% DP(8)-1 + " MAILADDR.7: 98% MAILADDR(7)-3 + " MH-MAIL.N: 97% MH-MAIL(5)-3 + " POST.N: 85% POST(8)-1 + " USD.08: 69% USD:8-84 + " USD.08: 75% USD:8-91 + " USD.08: 77% USD:8-94 + " USD.08: 78% USD:8-97 +ARPANET SMM.07A: 4% SMM:07-4 + " SMM.07A: 67% SMM:07-28 +array, associative USD.19: 66% USD:19-5 +array, character PS1.01: 59% PS1:1-19 + " PS1.02: 54% PS1:2-18 + " PS1.02: 65% PS1:2-22 + " PS2.03: 88% PS2:3-14 + " PS2.03: 89% PS2:3-14 + " PS2.03: 94% PS2:3-15 +array, flonum-block PS2.09: 15% PS2:9-28 + " PS2.09: 61% PS2:9-105 + " PS2.09: 61% PS2:9-105 + " PS2.09: 65% PS2:9-111 +array, multidimensional F77.1: 53% F77(1)-2 +array bounds F77.1: 52% F77(1)-2 +array element[s] AWK.1: 35% AWK(1)-1 + " USD.06: 39% USD:6-5 + " USD.19: 3% USD:19-1 + " USD.19: 60% USD:19-5 + " USD.19: 62% USD:19-5 +array identifier[s] USD.06: 64% USD:6-9 + " USD.06: 64% USD:6-9 +array name[s] BC.1: 69% BC(1)-2 + " USD.06: 39% USD:6-5 + " USD.06: 41% USD:6-5 + " USD.06: 41% USD:6-5 + " USD.06: 42% USD:6-5 +array[s], multidimensional PS1.01: 45% PS1:1-15 + " PS1.01: 46% PS1:1-15 + " PS1.01: 86% PS1:1-30 + " PS1.02: 7% PS1:2-5 +array, two-dimensional PS1.01: 59% PS1:1-19 + " PS1.02: 39% PS1:2-13 + " PS1.16: 59% PS1:16-8 +array access function PS2.09: 64% PS2:9-108 + " PS2.09: 64% PS2:9-108 + " PS2.09: 64% PS2:9-108 + " PS2.09: 64% PS2:9-108 + " PS2.09: 65% PS2:9-111 + " PS2.09: 65% PS2:9-111 +array attribute[s] PS2.06: 40% PS2:6-14 + " PS2.06: 41% PS2:6-15 + " PS2.06: 45% PS2:6-16 +Array Declaration[s] PS1.02: 55% PS1:2-19 +array element[s] PS1.02: 25% PS1:2-9 + " PS1.02: 74% PS1:2-25 + " PS1.03: 11% PS1:3-3 + " PS1.03: 58% PS1:3-7 + " PS2.06: 24% PS2:6-10 + " PS2.06: 26% PS2:6-10 + " PS2.06: 29% PS2:6-11 + " PS2.06: 31% PS2:6-11 + " PS2.06: 36% PS2:6-13 + " PS2.06: 37% PS2:6-13 + " PS2.06: 46% PS2:6-16 + " PS2.06: 61% PS2:6-21 + " PS2.06: 67% PS2:6-23 + " PS2.09: 16% PS2:9-30 + " PS2.09: 65% PS2:9-111 +Array name[s] PS1.01: 22% PS1:1-7 + " PS1.01: 23% PS1:1-7 + " PS1.02: 26% PS1:2-10 + " PS1.02: 27% PS1:2-10 + " PS1.02: 28% PS1:2-10 + " PS2.06: 21% PS2:6-8 + " PS2.06: 24% PS2:6-10 + " PS2.06: 64% PS2:6-22 +array object PS2.09: 15% PS2:9-29 + " PS2.09: 15% PS2:9-29 + " PS2.09: 15% PS2:9-29 + " PS2.09: 16% PS2:9-30 + " PS2.09: 45% PS2:9-81 + " PS2.09: 60% PS2:9-104 + " PS2.09: 60% PS2:9-104 + " PS2.09: 63% PS2:9-108 + " PS2.09: 63% PS2:9-108 + " PS2.09: 64% PS2:9-108 + " PS2.09: 64% PS2:9-108 + " PS2.09: 64% PS2:9-108 + " PS2.09: 65% PS2:9-111 + " PS2.09: 65% PS2:9-111 + " PS2.09: 65% PS2:9-111 + " PS2.09: 65% PS2:9-111 + " PS2.09: 65% PS2:9-111 + " PS2.09: 65% PS2:9-111 +array reference[s] PS2.06: 21% PS2:6-8 + " PS2.09: 29% PS2:9-55 + " PS2.09: 63% PS2:9-108 +AS PS1.12: 67% PS1:12-6 +ASCII PS1.01: 13% PS1:1-5 +arrow key[s] TERMCAP.5: 71% TERMCAP(5)-10 + " TERMCAP.5: 72% TERMCAP(5)-11 + " TERMCAP.5: 72% TERMCAP(5)-11 + " TERMCAP.5: 73% TERMCAP(5)-11 + " USD.15: 6% USD:15-3 + " USD.15: 15% USD:15-5 + " USD.15: 23% USD:15-7 + " USD.15: 96% USD:15-27 + " USD.15: 96% USD:15-27 + " USD.15: 96% USD:15-27 + " USD.15: 96% USD:15-27 + " USD.17: 0% USD:17-1 +Article USD.09: 41% USD:9-5 +article[s], journal USD.21: 46% USD:21-2 + " USD.30: 73% USD:30-8 + " USD.30: 73% USD:30-8 + " USD.31: 32% USD:31-5 + " USD.31: 32% USD:31-5 + " USD.31: 33% USD:31-5 + " USD.31: 35% USD:31-5 +Article in book USD.31: 36% USD:31-6 +as ERROR.1: 30% ERROR(1)-1 + " SMM.12A: 4% SMM:12-2 +as - VAX-11 assembler AS.1: 2% AS(1)-1 +ascending order BAD144.8: 23% BAD144(8)-1 +Ascii CTIME.3: 4% CTIME(3)-1 + " FDATE.3F: 11% FDATE(3F)-1 + " FTP.1C: 7% FTP(1C)-1 + " FTP.1C: 68% FTP(1C)-5 + " INET.3N: 25% INET(3N)-1 +ASCII, convert EBCDIC to DD.1: 30% DD(1)-1 +ASCII, date and time to CTIME.3: 4% CTIME(3)-1 +ascii - map of ASCII character set ASCII.7: 2% ASCII(7)-1 +ASCII approximation, printable TROFF.1: 62% TROFF(1)-2 +ASCII code[s] TR.1: 38% TR(1)-1 +ascii dump OD.1: 2% OD(1)-1 +ASCII terminal[s], window - window environment on WINDOW.1: 0% WINDOW(1)-1 +ASCII to EBCDIC, convert DD.1: 31% DD(1)-1 +Asctime CTIME.3: 33% CTIME(3)-1 +asin - trigonometric function SIN.3M: 1% SIN(3M)-1 +asinh ASINH.3M: 5% ASINH(3M)-1 +Ask MAIL.1: 80% MAIL(1)-5 + " USD.07: 74% USD:7-17 +Askcc USD.07: 74% USD:7-18 + " MAIL.1: 80% MAIL(1)-5 + " USD.07: 74% USD:7-18 +assembler output PS1.02: 9% PS1:2-5 + " PS1.02: 9% PS1:2-5 + " PS1.05: 43% PS1:5-6 +Assembler Reference Manual, Berkeley VAX/UNIX PS1.05: 0% unknown +assembler, as - VAX-11 AS.1: 2% AS(1)-1 +assembler code SMM.19: 4% SMM:19-2 + " SMM.19: 5% SMM:19-2 + " SMM.19: 50% SMM:19-14 +assembler output LISZT.1: 57% LISZT(1)-1 + " LISZT.1: 70% LISZT(1)-1 + " SMM.19: 64% SMM:19-18 +assembler-language output CC.1: 36% CC(1)-1 + " F77.1: 34% F77(1)-1 + " LISZT.1: 64% LISZT(1)-1 + " PC.1: 44% PC(1)-1 +assembly language AS.1: 32% AS(1)-1 + " PS1.04: 72% PS1:4-37 + " PS2.01: 9% PS2:1-2 + " PS2.09: 1% PS2:9-4 +assert - program verification ASSERT.3: 8% ASSERT(3)-1 +assert call[s] PC.1: 49% PC(1)-1 +Assign format to register USD.24: 53% USD:24-17 +assignment, character PS1.02: 60% PS1:2-20 + " PS1.02: 60% PS1:2-20 + " PS1.02: 60% PS1:2-20 +assignment, structure SMM.13: 67% SMM:13-23 + " SMM.19: 29% SMM:19-9 + " SMM.19: 46% SMM:19-13 + " SMM.19: 75% SMM:19-21 + " SMM.19: 86% SMM:19-24 +assignment operator[s] CSH.1: 77% CSH(1)-16 + " SMM.19: 30% SMM:19-9 + " SMM.19: 53% SMM:19-15 + " SMM.19: 74% SMM:19-21 + " SMM.19: 77% SMM:19-22 + " USD.19: 54% USD:19-5 +assignment operator expression[s] SMM.19: 68% SMM:19-19 + " SMM.19: 84% SMM:19-23 + " SMM.19: 84% SMM:19-23 + " SMM.19: 86% SMM:19-24 +assignment statement[s] FP.1: 17% FP(1)-1 + " USD.06: 52% USD:6-7 + " USD.06: 53% USD:6-7 +assignment[s], value PS1.02: 25% PS1:2-9 + " PS1.02: 26% PS1:2-10 + " PS1.02: 27% PS1:2-10 +Assignment Operator[s] PS1.01: 26% PS1:1-8 + " PS1.01: 37% PS1:1-11 + " PS1.01: 37% PS1:1-11 + " PS1.01: 95% PS1:1-33 + " PS1.09: 56% PS1:9-6 + " PS2.06: 36% PS2:6-13 + " PS2.06: 36% PS2:6-13 + " PS2.06: 36% PS2:6-13 +assignment statement[s] PS1.04: 45% PS1:4-24 + " PS2.06: 47% PS2:6-16 +assoc list PS2.09: 17% PS2:9-32 + " PS2.09: 17% PS2:9-32 + " PS2.09: 17% PS2:9-32 + " PS2.09: 17% PS2:9-33 + " PS2.09: 59% PS2:9-103 + " PS2.09: 98% PS2:9-154 +associated terminal SMM.12A: 48% SMM:12-11 +associations of UNIX file names with Pascal file variable[s] PS1.04: 60% PS1:4-31 +associative array[s] USD.19: 66% USD:19-5 + " USD.19: 66% USD:19-5 +Asynchronous I/O SMM.12A: 60% SMM:12-14 + " DUP.2: 48% DUP(2)-1 +asymmetric protocol PS1.08: 43% PS1:8-17 +asynchronous error report[s] PS1.06: 79% PS1:6-34 +asynchronous notification of I/O events SOCKET.2: 76% unknown +asynchronous notification of I/O request[s] PS1.08: 65% PS1:8-26 +AT&T 3B PS1.01: 6% PS1:1-3 +AT&T 3B 20 PS1.01: 0% + " PS1.01: 2% +asynchronous processes KILL.1: 69% KILL(1)-1 + " SH.1: 98% SH(1)-6 +at MHMAIL.N: 69% MHMAIL(1)-1 + " SMM.12A: 4% SMM:12-2 +at - execute commands at a later time AT.1: 1% AT(1)-1 +atan - trigonometric function SIN.3M: 2% SIN(3M)-1 +atan2 - trigonometric function SIN.3M: 2% SIN(3M)-1 +atanh ASINH.3M: 7% ASINH(3M)-1 +atofs, atois, atol - convert ASCII to number ATOF.3: 6% ATOF(3)-1 +atom, literal PS2.09: 89% PS2:9-143 + " PS2.09: 89% PS2:9-143 + " PS2.09: 98% PS2:9-153 +atomic command PS2.09: 94% PS2:9-149 + " PS2.09: 95% PS2:9-150 + " PS2.09: 95% PS2:9-150 + " PS2.09: 96% PS2:9-150 + " PS2.09: 96% PS2:9-151 +atq - print the queue of jobs waiting to be run ATQ.1: 6% ATQ(1)-1 +atrm - remove jobs spooled by at ATRM.1: 5% ATRM(1)-1 +attach routine SMM.02: 62% SMM:2-19 +attribute[s], array PS2.06: 40% PS2:6-14 + " PS2.06: 41% PS2:6-15 + " PS2.06: 45% PS2:6-16 +attributes of variable[s] USD.04: 55% USD:4-25 +Australia SMM.10: 96% SMM:10-24 +attributes, character PS2.10: 5% PS2:10-7 + " PS2.10: 40% PS2:10-35 + " PS2.10: 84% PS2:10-76 +attribute[s], rcs - change RCS file PS1.13: 61% PS1:13-12 +attribute name[s] PS2.10: 74% PS2:10-65 + " PS2.10: 83% PS2:10-76 + " PS2.10: 94% PS2:10-84 +attributes of a file PS1.06: 64% PS1:6-29 +authenticate client[s] RCMD.3: 20% RCMD(3)-1 +authenticating client[s] PS1.08: 48% PS1:8-19 +authentication SMM.01: 39% SMM:1-26 +authentication procedure RLOGIND.8C: 87% RLOGIND(8C)-1 + " RSHD.8C: 83% RSHD(8C)-2 + " RSHD.8C: 92% RSHD(8C)-2 + " REXECD.8C: 7% REXECD(8C)-1 + " RLOGIND.8C: 8% RLOGIND(8C)-1 +authors, multiple USD.20: 11% USD:20-2 + " USD.29: 12% USD:29-2 + " USD.29: 21% USD:29-3 +Author, Searching for USD.11: 57% USD:11-9 +author name REFER.1: 25% REFER(1)-1 + " REFER.1: 27% REFER(1)-1 + " USD.11: 58% USD:11-9 + " USD.29: 51% USD:29-5 + " USD.30: 98% USD:30-12 +authorization system message SYSLOG.3: 76% SYSLOG(3)-2 +Auto Fill mode USD.17: 3% USD:17-2 + " USD.17: 27% USD:17-12 + " USD.17: 27% USD:17-12 + " USD.17: 52% USD:17-23 + " USD.17: 58% USD:17-26 + " USD.17: 89% USD:17-43 + " USD.17: 98% USD:17-47 +Auto Indent USD.17: 52% USD:17-23 +Auto Indent mode USD.17: 3% USD:17-2 + " USD.17: 58% USD:17-26 + " USD.17: 77% USD:17-36 + " USD.17: 82% USD:17-39 +auto speed selection GETTYTAB.5: 35% GETTYTAB(5)-2 +auto-case-abbrev (variable) USD.17: 57% USD:17-25 +auto-configure NETSTAT.1: 25% NETSTAT(1)-1 +auto-execute-command USD.17: 57% USD:17-25 +auto-execute-macro USD.17: 57% USD:17-26 +auto-fill-mode USD.17: 57% USD:17-26 +auto-indent-mode USD.17: 58% USD:17-26 +auto-login process FTP.1C: 53% FTP(1C)-4 + " FTP.1C: 90% FTP(1C)-7 + " FTP.1C: 93% FTP(1C)-7 + " FTP.1C: 94% FTP(1C)-7 + " FTP.1C: 94% FTP(1C)-7 + " FTP.1C: 95% FTP(1C)-7 + " FTP.1C: 96% FTP(1C)-7 +auto-reboot RC.8: 5% RC(8)-1 +AUTOBOOT REBOOT.2: 30% REBOOT(2)-1 +autoconf SMM.01: 17% SMM:1-12 +autoconf - diagnostics from the autoconfiguration code AUTOCONF.4: 1% AUTOCONF(4)-1 +autoconfiguration INTRO.4: 35% INTRO(4)-1 + " SMM.01: 19% SMM:1-13 + " SMM.01: 98% SMM:1-64 + " SMM.13: 49% SMM:13-17 +Autoconfiguration on the VAX SMM.02: 53% SMM:2-16 +autoconfiguration process SMM.02: 0% SMM:2-2 + " SMM.02: 1% SMM:2-2 + " SMM.02: 7% SMM:2-3 + " SMM.02: 29% SMM:2-8 +Autoconfiguration requirement[s] SMM.02: 73% SMM:2-23 +autodialing modem L-DEVICES.5: 16% L-DEVICES(5)-1 + " L-DEVICES.5: 76% L-DEVICES(5)-2 + " L-DEVICES.5: 81% L-DEVICES(5)-2 + " L-DEVICES.5: 85% L-DEVICES(5)-2 + " SMM.09: 60% SMM:9-13 + " SMM.09: 60% SMM:9-13 + " SMM.09: 60% SMM:9-13 +autoindent USD.15: 55% USD:15-16 + " USD.15: 79% USD:15-22 + " USD.15: 88% USD:15-25 + " USD.15: 52% USD:15-15 + " USD.15: 54% USD:15-15 + " USD.16: 30% USD:16-6 + " USD.16: 30% USD:16-6 + " USD.16: 39% USD:16-7 + " USD.16: 80% USD:16-15 +Autologic APS- Micro5 CT.4: 35% CT(4)-1 +Automated Readability Index USD.32: 16% USD:32-3 + " USD.32: 18% USD:32-3 + " USD.32: 22% USD:32-4 +autoloading PS2.09: 1% PS2:9-3 +Automatic variables PS1.01: 8% PS1:1-4 + " PS1.01: 9% PS1:1-4 + " PS1.02: 16% PS1:2-7 +automatic call unit SMM.01: 57% SMM:1-35 + " L-DEVICES.5: 33% L-DEVICES(5)-1 + " L_SYS.5: 40% L.SYS(5)-2 +automatic calling unit SMM.09: 95% SMM:9-20 + " SMM.21: 2% SMM:21-1 + " SMM.21: 15% SMM:21-2 + " SMM.21: 20% SMM:21-2 + " DN.4: 15% DN(4)-1 + " SMM.01: 59% SMM:1-36 + " SMM.01: 59% SMM:1-36 +automatic consistency check REBOOT.2: 38% REBOOT(2)-1 + " REBOOT.8: 21% REBOOT(8)-1 + " REBOOT.8: 37% REBOOT(8)-1 +automatic hyphenation USD.01: 66% USD:1-10 + " USD.24: 69% USD:24-22 + " USD.24: 70% USD:24-22 + " USD.24: 70% USD:24-22 +automatic logging USD.11: 90% USD:11-14 +automatic reboot FSCK.8: 7% FSCK(8)-1 + " FSCK.8: 31% FSCK(8)-1 + " FSCK.8: 41% FSCK(8)-1 + " RC.8: 13% RC(8)-1 + " RC.8: 21% RC(8)-1 + " CRASH.8V: 6% CRASH(8V)-1 +Automatic Sequencing USD.11: 74% USD:11-11 +automatic variables BC.1: 67% BC(1)-2 + " LINT.1: 11% LINT(1)-1 + " SMM.19: 39% SMM:19-11 + " USD.06: 34% USD:6-4 + " USD.06: 35% USD:6-4 + " USD.06: 35% USD:6-4 + " ADB.1: 69% ADB(1)-4 +automatically numbered footnote[s] USD.21: 13% USD:21-1 +automaton, finite USD.19: 83% USD:19-6 +Autoprint USD.07: 75% USD:7-18 + " MAIL.1: 81% MAIL(1)-5 + " USD.07: 75% USD:7-18 + " USD.16: 81% USD:16-15 +autowrite USD.16: 81% USD:16-15 +auxiliary printer TERMCAP.5: 90% TERMCAP(5)-13 +auxiliary verbs USD.32: 26% USD:32-4 + " USD.32: 34% USD:32-5 + " USD.32: 59% USD:32-9 +average seek time IOSTAT.1: 53% IOSTAT(1)-1 + " SYSTAT.1: 74% SYSTAT(1)-3 +Awk AWK.1: 3% AWK(1)-1 + " AWK.1: 94% AWK(1)-2 + " SMM.12A: 5% SMM:12-2 +Awk - A Pattern Scanning and Processing Language USD.19: 0% USD:19-1 +awk - pattern scanning and processing language AWK.1: 0% SENDMAIL(8)-2 +awk action USD.19: 44% USD:19-4 +awk examples AWK.1: 84% AWK(1)-2 +AWK Pattern[s] USD.19: 3% USD:19-1 + " USD.19: 38% USD:19-3 +awk performance comparison, wc, grep, egrep, fgrep, sed, lex, USD.19: 85% USD:19-6 +awk program[s] USD.19: 2% USD:19-1 + " USD.19: 8% USD:19-1 + " USD.19: 9% USD:19-2 + " USD.19: 10% USD:19-2 + " USD.19: 19% USD:19-2 + " USD.19: 31% USD:19-3 + " USD.19: 33% USD:19-3 + " USD.19: 62% USD:19-5 + " USD.19: 70% USD:19-6 + " USD.19: 83% USD:19-6 + " USD.19: 90% USD:19-7 + " USD.19: 90% USD:19-7 +awk variable, FILENAME USD.19: 18% USD:19-2 +axis[s], Logarithmic GRAPH.1G: 61% unknown +B. W. Kernighan AWK.1: 94% AWK(1)-2 +back quote[s] SH.1: 19% SH(1)-2 +backgammon - the game BACKGAMMON.6: 23% +Background USD.04: 36% USD:4-16 + " CSH.1: 76% CSH(1)-16 + " USD.04: 69% USD:4-34 +background, commands in the USD.01: 63% USD:1-10 +background command[s] SH.1: 30% SH(1)-2 + " USD.03: 5% USD:3-2 +background execution CSH.1: 4% CSH(1)-1 +Background job[s] CSH.1: 7% CSH(1)-2 + " CSH.1: 8% CSH(1)-2 + " CSH.1: 10% CSH(1)-2 + " CSH.1: 10% CSH(1)-2 + " STTY.1: 76% STTY(1)-2 + " USD.04: 36% USD:4-16 + " USD.04: 37% USD:4-17 + " USD.04: 37% USD:4-17 + " USD.04: 38% USD:4-17 + " USD.04: 38% USD:4-17 + " USD.04: 39% USD:4-17 + " USD.04: 39% USD:4-17 + " USD.04: 39% USD:4-17 + " USD.04: 40% USD:4-18 + " USD.04: 40% USD:4-18 + " USD.04: 42% USD:4-19 + " USD.04: 42% USD:4-19 + " USD.04: 42% USD:4-19 + " USD.04: 42% USD:4-19 + " USD.04: 43% USD:4-20 + " USD.04: 44% USD:4-20 + " USD.04: 44% USD:4-20 + " USD.04: 45% USD:4-20 + " USD.04: 45% USD:4-20 + " USD.04: 48% USD:4-22 + " USD.04: 48% USD:4-22 + " USD.04: 49% USD:4-22 + " USD.04: 87% USD:4-41 + " USD.04: 88% USD:4-41 + " USD.04: 96% USD:4-43 + " USD.04: 97% USD:4-44 + " W.1: 94% W(1)-1 + " W.1: 96% W(1)-1 +background processes W.1: 80% W(1)-1 +background read attempted from control terminal SIGNAL.3C: 31% SIGNAL(3C)-1 +background write attempted to control terminal SIGNAL.3C: 32% SIGNAL(3C)-1 +backquote USD.04: 65% USD:4-32 +backquote character CSH.1: 35% CSH(1)-7 +backquote character macro PS2.09: 7% PS2:9-10 + " PS2.09: 57% PS2:9-99 + " PS2.09: 57% PS2:9-99 +backquote macro PS2.09: 57% PS2:9-99 + " PS2.09: 57% PS2:9-99 + " PS2.09: 57% PS2:9-99 + " PS2.09: 57% PS2:9-99 +backquoting USD.08: 41% USD:8-48 +BackSlash JOVE.N: 78% JOVE(1)-3 + " USD.13: 15% USD:13-3 + " CSH.1: 4% CSH(1)-1 + " USD.01: 14% USD:1-3 + " USD.25: 65% USD:25-10 + " USD.29: 62% USD:29-6 +backslash character USD.12: 83% USD:12-9 + " USD.18: 45% USD:18-5 + " USD.22: 53% USD:22-10 + " USD.25: 9% USD:25-2 +Backslash escapes L_SYS.5: 74% L.SYS(5)-3 + " L_SYS.5: 96% L.SYS(5)-4 + " SMM.09: 74% SMM:9-16 +Backspace TSET.1: 47% TSET(1)-2 + " TTY.4: 88% TTY(4)-9 + " USD.04: 94% USD:4-43 +Backspace character EXPAND.1: 29% EXPAND(1)-1 + " SMM.20: 23% SMM:20-2 + " TSET.1: 49% TSET(1)-2 +Backspacing USD.24: 59% USD:24-19 +backslash escapes PS1.02: 19% PS1:2-8 + " PS1.02: 19% PS1:2-8 + " PS2.10: 28% PS2:10-27 +backtrace, C PS1.10: 12% PS1:10-3 + " PS1.10: 12% PS1:10-3 + " PS1.10: 23% PS1:10-5 +backtrace, C stack ADB.1: 67% ADB(1)-4 +backtrace, post-mortem PS1.04: 71% PS1:4-36 + " PS1.04: 71% PS1:4-36 + " PS1.04: 79% PS1:4-41 + " PX.1: 26% PX(1)-1 +Backus, John FP.1: 10% FP(1)-1 + " FP.1: 81% FP(1)-1 +backup tapes (see instead dump) DUMP.5: 5% DUMP(5)-1 +backups and disaster recovery SMM.01: 75% SMM:1-46 +backward compatibility SIGINTERRUPT.3: 85% unknown +backward scanning SMM.12A: 40% SMM:12-9 +backward-character (C-B) USD.17: 58% USD:17-26 +backward-paragraph (ESC [) USD.17: 58% USD:17-26 +backward-s-expression (ESC C-B) USD.17: 58% USD:17-26 +backward-sentence (ESC A) USD.17: 59% USD:17-27 +backward-word (ESC B) USD.17: 59% USD:17-27 +bad argument to system call SIGNAL.3C: 25% SIGNAL(3C)-1 +bad block[s] BADSECT.8: 26% BADSECT(8)-1 + " BADSECT.8: 34% BADSECT(8)-1 +bad block forwarding BADSECT.8: 18% BADSECT(8)-1 + " BADSECT.8: 24% BADSECT(8)-1 + " SMM.12A: 84% SMM:12-20 +Bad sector BAD144.8: 22% BAD144(8)-1 + " BADSECT.8: 7% BADSECT(8)-1 + " FORMAT.8V: 7% FORMAT(8V)-1 +bad sector forwarding SMM.12A: 77% SMM:12-18 + " SMM.12A: 64% SMM:12-15 + " SMM.01: 12% SMM:1-8 + " DISKTAB.5: 81% DISKTAB(5)-1 + " BAD144.8: 8% BAD144(8)-1 +bad sector forwarding information SMM.01: 6% SMM:1-4 +bad sector forwarding table SMM.01: 42% SMM:1-28 + " FORMAT.8V: 16% FORMAT(8V)-1 + " DISKPART.8: 52% DISKPART(8)-1 + " DISKPART.8: 28% DISKPART(8)-1 +bad sector table BAD144.8: 20% BAD144(8)-1 + " BADSECT.8: 30% BADSECT(8)-1 + " FORMAT.8V: 29% FORMAT(8V)-1 + " FORMAT.8V: 31% FORMAT(8V)-1 + " FORMAT.8V: 34% FORMAT(8V)-1 + " FORMAT.8V: 99% FORMAT(8V)-3 + " SMM.01: 14% SMM:1-10 + " SMM.12A: 81% SMM:12-19 + " SMM.12A: 82% SMM:12-19 +bad-filename-extensions (variable) USD.17: 59% USD:17-27 +bad144 DISKPART.8: 23% DISKPART(8)-1 + " SMM.12A: 82% SMM:12-19 +bad144 - read/write dec standard 144 bad sector information BAD144.8: 1% BAD144(8)-1 +badsect - create files to contain bad sectors BADSECT.8: 1% BADSECT(8)-1 +bandwidth, disk SMM.14: 7% SMM:14-2 + " SMM.14: 15% SMM:14-3 + " SMM.14: 65% SMM:14-10 +banner - print large banner on printer BANNER.6: 4% BANNER(6)-1 +Bar USD.10: 81% USD:10-10 +bar, vertical PS1.04: 31% PS1:4-18 + " PS1.04: 31% PS1:4-18 + " PS1.15: 13% PS1:15-4 + " PS1.15: 13% PS1:15-4 + " PS2.09: 14% PS2:9-26 + " PS2.10: 78% PS2:10-70 +base USD.04: 70% USD:4-34 +base, input DC.1: 5% DC(1)-1 + " DC.1: 63% DC(1)-1 + " USD.05: 4% USD:5-1 + " USD.05: 20% USD:5-3 + " USD.05: 67% USD:5-6 + " USD.05: 68% USD:5-6 + " USD.05: 68% USD:5-6 + " USD.05: 69% USD:5-6 + " USD.06: 16% USD:6-3 + " USD.06: 18% USD:6-3 + " USD.06: 18% USD:6-3 +base, net data GETPROTOENT.3N: 64% GETPROTOENT(3N) + " GETSERVENT.3N: 64% GETSERVENT(3N)- +base address ADB.1: 88% ADB(1)-5 + " READ.2: 25% READ(2)-1 + " WRITE.2: 21% WRITE(2)-1 +base indent USD.23: 15% USD:23-2 + " USD.23: 17% USD:23-3 + " USD.23: 30% USD:23-4 + " USD.23: 33% USD:23-4 + " USD.23: 55% USD:23-7 + " USD.23: 55% USD:23-7 +base indent, .ba Set the USD.23: 55% USD:23-7 +base line USD.24: 68% USD:24-22 +base name USD.04: 78% USD:4-37 + " USD.30: 36% USD:30-4 +base note USD.11: 2% USD:11-2 + " USD.11: 3% USD:11-2 + " USD.11: 3% USD:11-2 + " USD.11: 32% USD:11-5 + " USD.11: 45% USD:11-7 + " USD.11: 46% USD:11-7 + " USD.11: 49% USD:11-8 + " USD.11: 49% USD:11-8 + " USD.11: 51% USD:11-8 + " USD.11: 52% USD:11-8 + " USD.11: 54% USD:11-9 + " USD.11: 66% USD:11-10 +Base-line spacing USD.24: 37% USD:24-13 + " USD.24: 85% USD:24-28 + " USD.24: 86% USD:24-28 + " USD.24: 86% USD:24-28 + " USD.24: 87% USD:24-29 +basename - strip filename affixes BASENAME.1: 8% BASENAME(1)-1 +basic file handling script USD.02: 40% USD:2-5 +Basic unit[s] USD.24: 20% USD:24-8 + " USD.23: 3% USD:23-1 + " USD.24: 19% USD:24-8 +Basics of Text Processing USD.22: 2% unknown + " USD.22: 6% USD:22-2 +bases, output USD.05: 71% USD:5-6 + " USD.05: 92% USD:5-7 + " USD.06: 19% USD:6-3 + " USD.06: 20% USD:6-3 +BATCH SMM.10: 14% SMM:10-4 + " SMM.10: 84% SMM:10-21 + " SMM.10: 84% SMM:10-21 +batch facility AT.1: 5% AT(1)-1 +battlestar - a tropical adventure game BATTLESTAR.6: 1% BATTLESTAR(6)-1 +BBN bitgraph graphics terminal PLOT.1G: 52% PLOT(1G)-1 + " PLOT.3X: 60% PLOT(3X)-1 +BBoard MH-PROFILE.N: 24% MH-PROFILE(5)-2 + " MSH.N: 44% MSH(1)-2 + " MSH.N: 47% MSH(1)-2 + " MSH.N: 53% MSH(1)-2 + " USD.08: 37% USD:8-43 + " USD.08: 37% USD:8-43 + " USD.08: 37% USD:8-43 + " USD.08: 70% USD:8-86 + " USD.08: 37% USD:8-43 +BBoard reader MSH.N: 0% MSH(1)-1 + " USD.08: 36% USD:8-42 +Bc BC.1: 5% BC(1)-1 + " BC.1: 82% BC(1)-2 + " BC.1: 92% BC(1)-2 + " USD.05: 4% USD:5-1 + " DC.1: 86% DC(1)-2 + " MP.3X: 87% MP(3X)-2 + " SMM.12A: 5% SMM:12-2 +BC - An Arbitrary Precision Desk-Calculator Language USD.06: 0% USD:6-1 +baudrate() PS1.18: 47% PS1:18-13 +Berkeley FP User's Manual, Rev. 4.1 PS2.07: 0% unknown +Berkeley Pascal, nonstandard functions and procedures in PS1.04: 96% PS1:4-49 +Berkeley Pascal User's Manual PS1.04: 0% unknown +Berkeley VAX/UNIX Assembler Reference Manual PS1.05: 0% unknown +bc - arbitrary-precision arithmetic language BC.1: 1% BC(1)-1 +bc language formal grammar USD.06: 62% USD:6-9 +Bcc: SMM.07A: 67% SMM:07-28 + " SMM.07A: 67% SMM:07-28 + " SMM.07A: 23% SMM:07-12 + " USD.08: 78% USD:8-96 + " USD.08: 78% USD:8-96 + " USD.08: 78% USD:8-96 + " USD.08: 68% USD:8-83 + " USD.08: 68% USD:8-83 + " USD.08: 68% USD:8-83 + " USD.08: 54% USD:8-64 + " USD.08: 54% USD:8-64 + " USD.08: 53% USD:8-64 + " USD.08: 48% USD:8-58 + " SENDMAIL.8: 41% SENDMAIL(8)-2 + " SENDMAIL.8: 40% SENDMAIL(8)-2 + " SEND.N: 41% SEND(1)-1 + " SEND.N: 39% SEND(1)-1 + " SEND.N: 9% SEND(1)-1 + " REPL.N: 58% REPL(1)-2 + " POST.N: 80% POST(8)-1 + " POST.N: 41% POST(8)-1 + " POST.N: 39% POST(8)-1 + " POST.N: 23% POST(8)-1 + " MH-MAIL.N: 85% MH-MAIL(5)-2 + " MH-MAIL.N: 68% MH-MAIL(5)-2 + " MH-MAIL.N: 67% MH-MAIL(5)-2 +bcd - convert to antique media BCD.6: 19% BCD(6)-1 +bcopies, bcmps, bzeros, ffs - bit and byte string operation BSTRING.3: 5% BSTRING(3)-1 +beautify USD.16: 82% USD:16-15 +BEGIN, pattern USD.19: 28% USD:19-3 +Begin left-justified paragraph, .lp USD.23: 9% USD:23-2 +Begin page MAN.7: 81% MAN(7)-2 + " USD.24: 31% USD:24-11 + " USD.25: 53% USD:25-8 +Begin paragraph MAN.7: 51% MAN(7)-1 + " MAN.7: 63% MAN(7)-1 +Beginners, UNIX For USD.01: 0% USD:1-1 + " USD.01: 0% USD:1-1 + " USD.01: 5% USD:1-2 + " USD.01: 12% USD:1-2 + " USD.01: 19% USD:1-4 + " USD.01: 27% USD:1-4 + " USD.01: 34% USD:1-6 + " USD.01: 41% USD:1-6 + " USD.01: 47% USD:1-8 + " USD.01: 54% USD:1-8 + " USD.01: 61% USD:1-10 + " USD.01: 69% USD:1-10 + " USD.01: 76% USD:1-12 +beginning of a line USD.12: 84% USD:12-9 +beginning-of-file (ESC <) USD.17: 59% USD:17-27 +beginning-of-line (C-A) USD.17: 59% USD:17-27 +beginning-of-window (ESC ,) USD.17: 59% USD:17-27 +bell, terminal CSH.1: 13% CSH(1)-3 + " TTY.4: 17% TTY(4)-2 +Bell, Visible TERMCAP.5: 61% TERMCAP(5)-9 +Bell 212-compatible modems L-DEVICES.5: 48% L-DEVICES(5)-1 + " L_SYS.5: 50% L.SYS(5)-2 + " SMM.09: 69% SMM:9-15 +Benson Varian printer-plotter PLOT.1G: 71% PLOT(1G)-1 +Benson-Varian SMM.06: 50% SMM:6-4 + " SMM.06: 50% SMM:6-4 + " SMM.06: 53% SMM:6-4 + " SMM.06: 59% SMM:6-5 + " VA.4: 14% VA(4)-1 + " VFONT.5: 4% VFONT(5)-1 +Berkeley mail program USD.01: 19% USD:1-3 +Berknet MAIL.1: 24% MAIL(1)-2 +Bessel function BC.1: 43% BC(1)-1 + " BESSEL.3F: 5% BESSEL(3F)-1 + " BESSEL.3F: 65% BESSEL(3F)-1 + " J0.3M: 11% J0(3M)-1 + " J0.3M: 55% J0(3M)-1 + " USD.06: 3% USD:6-1 + " USD.06: 58% USD:6-7 +bg CSH.1: 51% CSH(1)-10 +bg command CSH.1: 6% CSH(1)-2 + " USD.04: 40% USD:4-18 + " USD.04: 97% USD:4-44 + " USD.04: 70% USD:4-34 +bib INVERT.N: 9% INVERT(1)-1 +bib, list of names of journals, publishers, known to USD.31: 88% USD:31-16 +BIB - A Program for Formatting Bibliography[s] USD.31: 0% USD:31-1 +bib - bibliographic formatter BIB.N: 1% BIB(1)-1 +bib option[s] USD.31: 19% USD:31-3 +bibliographic database BIB.N: 11% BIB(1)-1 + " ADDBIB.1: 2% ADDBIB(1)-1 +bibliographic reference[s] LOOKBIB.1: 13% LOOKBIB(1)-1 + " LOOKBIB.1: 16% LOOKBIB(1)-1 + " LOOKBIB.1: 49% LOOKBIB(1)-1 +Bibliography[s] USD.22: 75% USD:22-14 + " USD.22: 75% USD:22-14 + " USD.29: 26% USD:29-3 + " BIB.N: 6% BIB(1)-1 +Bibliographies, Formatting USD.31: 0% USD:31-1 +bibliography, annotated PS1.04: 2% PS1:4-2 +Bignum[s] PS1.05: 68% PS1:5-10 +bibliography, indxbib - build inverted index for a LOOKBIB.1: 2% LOOKBIB(1)-1 +bibliography, lookbib - find references in a LOOKBIB.1: 2% LOOKBIB(1)-1 +Bibliography, Printing the USD.29: 26% USD:29-3 +bibliography, sorting a USD.29: 3% USD:29-1 +bibliography, sorting the USD.29: 27% USD:29-3 +bibliography[s], stand-alone REFER.1: 85% REFER(1)-2 + " USD.29: 32% USD:29-4 + " USD.29: 84% USD:29-9 + " REFER.1: 8% REFER(1)-1 +bibliography entry[s] USD.21: 38% USD:21-2 +bibliography file[s] ADDBIB.1: 48% ADDBIB(1)-1 + " USD.29: 27% USD:29-3 + " USD.29: 86% USD:29-9 +Bibliography System USD.29: 0% USD:29-1 + " USD.29: 0% USD:29-1 + " USD.29: 0% USD:29-1 + " USD.29: 8% USD:29-2 + " USD.29: 18% USD:29-2 + " USD.29: 31% USD:29-4 + " USD.29: 41% USD:29-4 + " USD.29: 53% USD:29-6 + " USD.29: 63% USD:29-6 + " USD.29: 68% USD:29-7 + " USD.29: 72% USD:29-8 + " USD.29: 81% USD:29-8 + " USD.29: 91% USD:29-10 + " USD.29: 94% USD:29-10 +biff INETD.8: 54% INETD(8)-1 +biff - be notified if mail arrives BIFF.1: 6% BIFF(1)-1 +big bracket[s] USD.27: 53% USD:27-6 +bin directory[s] USD.04: 70% USD:4-35 +binary, foreign PS2.09: 55% PS2:9-97 + " PS2.09: 55% PS2:9-97 + " PS2.09: 55% PS2:9-97 + " PS2.09: 55% PS2:9-97 + " PS2.09: 56% PS2:9-97 + " PS2.09: 56% PS2:9-97 + " PS2.09: 56% PS2:9-97 +binary, type PS2.09: 3% PS2:9-7 + " PS2.09: 10% PS2:9-19 + " PS2.09: 33% PS2:9-61 +binary data PS2.09: 14% PS2:9-27 + " PS2.09: 61% PS2:9-105 + " PS2.09: 67% PS2:9-113 +binary object PS2.09: 19% PS2:9-37 + " PS2.09: 19% PS2:9-37 + " PS2.09: 19% PS2:9-37 + " PS2.09: 37% PS2:9-66 + " PS2.09: 37% PS2:9-66 + " PS2.09: 55% PS2:9-95 + " PS2.09: 60% PS2:9-104 + " PS2.09: 60% PS2:9-104 + " PS2.09: 60% PS2:9-104 + " PS2.09: 84% PS2:9-136 +binary operator[s] PS1.01: 91% PS1:1-31 + " PS1.01: 95% PS1:1-32 + " PS1.15: 49% PS1:15-14 + " PS1.15: 51% PS1:15-15 + " PS2.06: 31% PS2:6-12 + " PS2.06: 32% PS2:6-12 +binary[s], 4.1BSD SMM.01: 24% SMM:1-17 + " SMM.01: 24% SMM:1-17 + " SMM.01: 26% SMM:1-18 + " SMM.02: 22% SMM:2-7 +binary[s], system CRASH.8V: 25% CRASH(8V)-1 + " SMM.01: 1% SMM:1-2 + " SMM.01: 1% SMM:1-2 + " SMM.01: 45% SMM:1-29 + " SMM.09: 50% SMM:9-11 +Binary comparison RDIST.1: 33% RDIST(1)-2 + " RDIST.1: 33% RDIST(1)-2 +binary data SMM.16: 32% SMM:16-5 + " USD.08: 67% USD:8-82 +Binary file[s] DIFF.1: 7% DIFF(1)-1 + " FTP.1C: 99% FTP(1C)-7 + " LPR.1: 88% LPR(1)-2 + " SMM.09: 52% SMM:9-11 + " STRINGS.1: 28% STRINGS(1)-1 + " USD.04: 72% USD:4-35 + " USD.16: 34% USD:16-6 + " UUENCODE.1C: 5% UUENCODE(1C)-1 + " UUENCODE.1C: 15% UUENCODE(1C)-1 + " UUSEND.1C: 85% UUSEND(1C)-1 +binary image SMM.01: 80% SMM:1-49 + " SMM.02: 15% SMM:2-5 + " SMM.02: 91% SMM:2-31 +BIND NAMED.8: 98% NAMED(8)-2 + " RESOLVER.3: 98% RESOLVER(3)-2 + " RESOLVER.5: 97% RESOLVER(5)-1 + " SMM.11: 0% SMM:11-2 + " SMM.11: 2% SMM:11-2 + " SMM.11: 6% SMM:11-2 + " SMM.11: 15% SMM:11-2 + " SMM.11: 23% SMM:11-4 + " SMM.11: 30% SMM:11-4 + " SMM.11: 38% SMM:11-6 + " SMM.11: 47% SMM:11-6 + " SMM.11: 54% SMM:11-8 + " SMM.11: 61% SMM:11-8 + " SMM.11: 69% SMM:11-10 + " SMM.11: 73% SMM:11-10 + " SMM.11: 76% SMM:11-12 + " SMM.11: 80% SMM:11-12 + " SMM.11: 86% SMM:11-14 + " SMM.11: 94% SMM:11-14 + " SMM.11: 95% SMM:11-16 + " SMM.11: 99% SMM:11-16 + " SMM.15: 49% SMM:15-15 +bind - bind a name to a socket BIND.2: 2% BIND(2)-1 +bind system call PS1.08: 12% PS1:8-5 +bind(s, name, namelen) PS1.06: 77% PS1:6-34 +bind-macro-to-key USD.17: 60% USD:17-27 +bind-macro-to-word-abbrev USD.17: 60% USD:17-27 +bind-to-key USD.17: 59% USD:17-27 +BINDINGS, KEY JOVE.N: 58% JOVE(1)-2 + " JOVE.N: 70% JOVE(1)-2 + " USD.17: 19% USD:17-9 + " USD.17: 55% USD:17-24 + " USD.17: 64% USD:17-29 +BINDIR SMM.10: 26% SMM:10-8 + " SMM.10: 26% SMM:10-8 + " SMM.10: 88% SMM:10-21 +binding, function PS2.09: 2% PS2:9-4 + " PS2.09: 2% PS2:9-4 + " PS2.09: 2% PS2:9-4 + " PS2.09: 11% PS2:9-21 + " PS2.09: 12% PS2:9-22 + " PS2.09: 15% PS2:9-29 + " PS2.09: 31% PS2:9-58 + " PS2.09: 31% PS2:9-58 + " PS2.09: 34% PS2:9-62 + " PS2.09: 35% PS2:9-63 + " PS2.09: 39% PS2:9-70 + " PS2.09: 73% PS2:9-120 + " PS2.09: 75% PS2:9-124 + " PS2.09: 84% PS2:9-136 +binding[s], lambda PS2.09: 26% PS2:9-51 + " PS2.09: 28% PS2:9-54 + " PS2.09: 30% PS2:9-56 + " PS2.09: 30% PS2:9-56 + " PS2.09: 30% PS2:9-56 + " PS2.09: 31% PS2:9-57 + " PS2.09: 31% PS2:9-57 + " PS2.09: 48% PS2:9-85 +binding addresses to sockets in the Internet and NS domain[s] PS1.08: 73% PS1:8-30 +Binding local name[s] PS1.08: 10% PS1:8-4 +binding names PS1.07a: 39% PS1:7-9 + " PS1.08: 11% PS1:8-5 + " PS1.08: 12% PS1:8-5 + " PS1.08: 12% PS1:8-5 +binding object[s] PS2.09: 32% PS2:9-59 + " PS2.09: 32% PS2:9-59 + " PS2.09: 32% PS2:9-59 + " PS2.09: 32% PS2:9-59 +binding stream socket PS1.07a: 70% PS1:7-16 + " PS1.07a: 74% PS1:7-18 + " PS1.07a: 81% PS1:7-21 +binding to a name (or address) within the communications domain PS1.06: 77% PS1:6-34 +binmail RMAIL.1: 44% unknown +binmail - send or receive mail among users BINMAIL.1: 2% BINMAIL(1)-1 +bits, protection SMM.17: 25% SMM:17-1 +bits, relocation LD.1: 7% LD(1)-1 + " LD.1: 62% LD(1)-2 + " LD.1: 67% LD(1)-2 + " STRIP.1: 16% STRIP(1)-1 + " STRIP.1: 37% STRIP(1)-1 +bits, significant MATH.3M: 18% MATH(3M)-2 +bit - ands, ors, xors, nots, rshifts, lshift bitwise function BIT.3F: 3% BIT(3F)-1 +bit string operations BSTRING.3: 7% BSTRING(3)-1 +BITNET MAILADDR.7: 76% MAILADDR(7)-2 + " SMM.11: 21% SMM:11-3 + " SMM.11: 24% SMM:11-4 + " SMM.11: 24% SMM:11-4 + " SMM.11: 25% SMM:11-4 + " USD.07: 41% USD:7-10 +BIZCOMP 1030 PHONES.5: 70% PHONES(5)-1 +bk - line discipline for machine-machine communication (obsolete) BK.4: 1% BK(4)-1 +SMM:13-5 +blanks, initial SED.1: 39% SED(1)-1 + " USD.24: 50% USD:24-16 +blanks, trailing AR.5: 92% AR(5)-1 + " DD.1: 56% DD(1)-1 + " PS1.02: 79% PS1:2-26 + " PS1.04: 63% PS1:4-32 + " PS1.04: 96% PS1:4-48 + " PS2.04: 75% PS2:4-7 + " PS2.10: 23% PS2:10-23 + " PS2.10: 45% PS2:10-38 +Blank Line[s] PS1.02: 50% PS1:2-17 + " PS1.02: 50% PS1:2-17 + " PS2.08: 43% PS2:8-6 + " PS2.10: 74% PS2:10-65 + " PS2.10: 74% PS2:10-65 + " PS2.10: 78% PS2:10-70 +blanks, trailing USD.29: 61% USD:29-6 +blank character USD.16: 39% USD:16-7 +blank interpretation SH.1: 33% SH(1)-2 + " USD.03: 41% USD:3-10 + " USD.03: 67% USD:3-17 + " USD.03: 67% USD:3-17 + " USD.03: 85% USD:3-21 +blank line[s] SMM.07A: 82% SMM:07-37 +blank-padding PRINTF.3S: 49% PRINTF(3S)-1 +Blau, Ricki USD.14: 0% USD:14-1 +blinking WINDOW.1: 74% WINDOW(1)-5 +block, .(b m f Begin USD.23: 31% USD:23-4 +block, .(c Begin centered USD.23: 34% USD:23-5 +block, .)b End USD.23: 33% USD:23-4 +blocks, allocating FS.5: 65% FS(5)-3 + " NEWFS.8: 52% NEWFS(8)-1 + " SMM.14: 66% SMM:14-10 + " SMM.14: 66% SMM:14-10 + " SMM.14: 66% SMM:14-10 + " TUNEFS.8: 32% TUNEFS(8)-1 + " TUNEFS.8: 66% TUNEFS(8)-1 +block[s], bad BADSECT.8: 26% BADSECT(8)-1 + " BADSECT.8: 34% BADSECT(8)-1 +block[s], centered USD.22: 38% USD:22-7 + " USD.22: 38% USD:22-7 + " USD.22: 36% USD:22-7 +block[s], control SMM.15: 79% SMM:15-23 + " SMM.15: 80% SMM:15-23 + " SMM.15: 80% SMM:15-23 + " SMM.15: 81% SMM:15-23 + " SMM.15: 81% SMM:15-23 + " SMM.15: 81% SMM:15-23 + " SMM.15: 83% SMM:15-23 +block[s], data FS.5: 12% FS(5)-1 + " FS.5: 50% FS(5)-2 + " FS.5: 50% FS(5)-2 + " FS.5: 86% FS(5)-3 + " SMM.05: 7% SMM:5-3 + " SMM.05: 8% SMM:5-3 + " SMM.05: 11% SMM:5-4 + " SMM.05: 33% SMM:5-7 + " SMM.05: 33% SMM:5-7 + " SMM.05: 33% SMM:5-7 + " SMM.05: 33% SMM:5-7 + " SMM.05: 34% SMM:5-7 + " SMM.05: 35% SMM:5-7 + " SMM.05: 35% SMM:5-7 + " SMM.05: 35% SMM:5-7 + " SMM.05: 35% SMM:5-7 + " SMM.14: 10% SMM:14-3 + " SMM.14: 11% SMM:14-3 + " SMM.14: 12% SMM:14-3 + " SMM.14: 19% SMM:14-4 + " SMM.14: 22% SMM:14-4 + " SMM.14: 44% SMM:14-7 + " SMM.14: 47% SMM:14-7 + " SMM.14: 48% SMM:14-8 + " SMM.14: 51% SMM:14-8 + " SMM.14: 52% SMM:14-8 + " SMM.14: 52% SMM:14-8 + " SMM.14: 55% SMM:14-8 + " SMM.14: 68% SMM:14-10 +block[s], directory DIR.5: 44% DIR(5)-1 + " DIR.5: 55% DIR(5)-1 + " ICHECK.8: 26% ICHECK(8)-1 +block[s], directory data SMM.05: 35% SMM:5-7 + " SMM.05: 35% SMM:5-7 + " SMM.05: 35% SMM:5-7 + " SMM.05: 35% SMM:5-7 + " SMM.05: 37% SMM:5-8 + " SMM.05: 37% SMM:5-8 + " SMM.05: 37% SMM:5-8 + " SMM.05: 37% SMM:5-8 + " SMM.05: 37% SMM:5-8 +block[s], duplicate ICHECK.8: 69% ICHECK(8)-1 + " ICHECK.8: 84% ICHECK(8)-1 + " SMM.05: 28% SMM:5-6 + " SMM.05: 31% SMM:5-7 + " SMM.05: 31% SMM:5-7 + " SMM.05: 61% SMM:5-13 +block[s], File system FS.5: 48% FS(5)-2 + " FS.5: 60% FS(5)-3 + " SMM.05: 9% SMM:5-3 + " SMM.05: 9% SMM:5-3 + " SMM.05: 14% SMM:5-4 + " SMM.05: 14% SMM:5-4 + " SMM.05: 15% SMM:5-4 + " SMM.14: 18% SMM:14-4 + " SMM.14: 18% SMM:14-4 + " SMM.14: 23% SMM:14-4 + " SMM.14: 27% SMM:14-5 + " SMM.14: 27% SMM:14-5 + " SMM.14: 30% SMM:14-5 + " SMM.14: 37% SMM:14-6 +block[s], free FS.5: 15% FS(5)-1 + " FS.5: 61% FS(5)-3 + " FSCK.8: 38% FSCK(8)-1 + " FSCK.8: 83% FSCK(8)-2 + " ICHECK.8: 27% ICHECK(8)-1 + " SMM.05: 25% SMM:5-6 + " SMM.05: 26% SMM:5-6 + " SMM.05: 26% SMM:5-6 + " SMM.05: 27% SMM:5-6 + " SMM.05: 42% SMM:5-9 + " SMM.14: 10% SMM:14-3 + " SMM.14: 36% SMM:14-6 + " SMM.14: 45% SMM:14-7 + " SMM.14: 53% SMM:14-8 + " SMM.14: 54% SMM:14-8 + " SMM.14: 57% SMM:14-9 + " SMM.14: 57% SMM:14-9 +block[s], indirect LS.1: 88% LS(1)-2 + " SMM.05: 9% SMM:5-3 +block[s], rotationally optimal SMM.14: 44% SMM:14-7 +block, Save a contiguous vertical USD.24: 40% USD:24-14 +block[s], text USD.28: 26% USD:28-4 + " USD.28: 28% USD:28-5 + " USD.28: 35% USD:28-6 + " USD.28: 36% USD:28-6 + " USD.28: 36% USD:28-6 + " USD.28: 37% USD:28-6 + " USD.28: 38% USD:28-6 + " USD.28: 38% USD:28-6 +block addresses BADSECT.8: 72% BADSECT(8)-1 + " SMM.05: 9% SMM:5-3 + " SMM.14: 11% SMM:14-3 +block allocation SMM.14: 53% SMM:14-8 + " SMM.14: 55% SMM:14-8 + " SMM.14: 74% SMM:14-11 + " SMM.14: 74% SMM:14-11 +block allocation map SMM.05: 26% SMM:5-6 +block and character device driver[s] SMM.02: 51% SMM:2-16 +block buffered stream SETBUF.3S: 21% SETBUF(3S)-1 +block chaining SMM.14: 73% SMM:14-11 +block comment[s] INDENT.1: 84% INDENT(1)-1 + " PMERGE.1: 80% PMERGE(1)-1 + " SMM.12A: 5% SMM:12-2 +block device[s] INTRO.2: 20% INTRO(2)-2 + " MOUNT.2: 50% MOUNT(2)-1 + " MOUNT.2: 84% MOUNT(2)-2 + " RX.4: 43% RX(4)-1 + " SMM.01: 8% SMM:1-5 + " SWAPON.2: 10% SWAPON(2)-1 + " SMM.01: 8% SMM:1-5 +block device driver[s] INTRO.4: 20% INTRO(4)-1 +block files HK.4: 41% HK(4)-1 + " HP.4: 68% HP(4)-3 +block I/O SYNC.2: 45% SYNC(2)-1 + " TU.4: 10% TU(4)-1 + " UU.4: 13% UU(4)-1 +block layout policy[s] SMM.01: 49% SMM:1-31 +block level[s] SMM.19: 25% SMM:19-8 + " SMM.19: 25% SMM:19-8 + " SMM.19: 25% SMM:19-8 + " SMM.19: 26% SMM:19-8 + " SMM.19: 26% SMM:19-8 +block map SMM.05: 11% SMM:5-4 + " SMM.05: 14% SMM:5-4 + " SMM.14: 28% SMM:14-5 + " SMM.14: 44% SMM:14-7 + " SMM.14: 45% SMM:14-7 +block number[s] GREP.1: 27% GREP(1)-1 + " ICHECK.8: 56% ICHECK(8)-1 + " ICHECK.8: 75% ICHECK(8)-1 + " ICHECK.8: 79% ICHECK(8)-1 + " SMM.05: 31% SMM:5-7 + " SMM.05: 31% SMM:5-7 + " SMM.05: 31% SMM:5-7 + " SMM.05: 31% SMM:5-7 + " SMM.05: 33% SMM:5-7 + " SMM.05: 33% SMM:5-7 + " SMM.05: 33% SMM:5-7 + " SMM.05: 33% SMM:5-7 + " SMM.05: 33% SMM:5-7 +block of text as a table entry USD.28: 35% USD:28-6 +block pointer[s] SMM.01: 47% SMM:1-31 + " SMM.01: 47% SMM:1-31 + " SMM.01: 48% SMM:1-31 + " SMM.14: 74% SMM:14-11 +block signal delivery[s] SIGBLOCK.2: 9% SIGBLOCK(2)-1 +block size[s] CAT.1: 31% CAT(1)-1 + " FS.5: 3% FS(5)-1 + " FS.5: 65% FS(5)-3 + " FS.5: 90% FS(5)-3 + " NDBM.3: 87% NDBM(3)-2 + " NEWFS.8: 35% NEWFS(8)-1 + " SMM.01: 46% SMM:1-30 + " SMM.01: 46% SMM:1-30 + " SMM.01: 47% SMM:1-31 + " SMM.01: 47% SMM:1-31 + " SMM.01: 48% SMM:1-31 + " SMM.01: 48% SMM:1-31 + " SMM.01: 48% SMM:1-31 + " SMM.01: 48% SMM:1-31 + " SMM.01: 49% SMM:1-31 + " SMM.01: 49% SMM:1-31 + " SMM.05: 10% SMM:5-3 + " SMM.05: 10% SMM:5-3 + " SMM.05: 10% SMM:5-3 + " SMM.05: 10% SMM:5-3 + " SMM.05: 14% SMM:5-4 + " SMM.14: 1% SMM:14-2 + " SMM.14: 13% SMM:14-3 + " SMM.14: 14% SMM:14-3 + " SMM.14: 14% SMM:14-3 + " SMM.14: 18% SMM:14-4 + " SMM.14: 18% SMM:14-4 + " SMM.14: 19% SMM:14-4 + " SMM.14: 23% SMM:14-4 + " SMM.14: 24% SMM:14-5 + " SMM.14: 26% SMM:14-5 + " SMM.14: 26% SMM:14-5 + " SMM.14: 29% SMM:14-5 + " SMM.14: 34% SMM:14-6 + " SMM.14: 35% SMM:14-6 + " SMM.14: 37% SMM:14-6 + " SMM.14: 66% SMM:14-10 + " TAR.1: 66% TAR(1)-2 +block special file FIND.1: 32% FIND(1)-1 + " MKNOD.2: 20% MKNOD(2)-1 + " MOUNT.2: 8% MOUNT(2)-1 +block structure SMM.19: 26% SMM:19-8 +block-type special file LS.1: 59% LS(1)-2 +Blocked signals EXECVE.2: 35% EXECVE(2)-1 + " SIGSETMASK.2: 43% unknown +blocked signal, release SIGPAUSE.2: 8% SIGPAUSE(2)-1 +Blocks of vertical space USD.24: 39% USD:24-13 +Bloom, James M. SMM.01: 0% SMM:1-1 + " SMM.08: 0% SMM:8-2 + " SMM.22: 0% SMM:22-2 +blocks, disk PS2.01: 40% PS2:1-6 + " PS2.04: 67% PS2:4-7 + " PS2.04: 67% PS2:4-7 +block device[s] PS1.06: 93% PS1:6-39 + " PS1.06: 94% PS1:6-39 + " PS2.04: 45% PS2:4-5 + " PS2.04: 54% PS2:4-6 + " PS2.04: 92% PS2:4-9 + " PS2.04: 92% PS2:4-9 + " PS2.04: 93% PS2:4-9 + " PS2.04: 93% PS2:4-9 + " PS2.05: 4% PS2:5-1 + " PS2.05: 53% PS2:5-4 + " PS2.05: 56% PS2:5-4 + " PS2.05: 82% PS2:5-6 +block device driver[s] PS2.04: 45% PS2:4-5 + " PS2.05: 82% PS2:5-6 + " PS2.05: 82% PS2:5-6 + " PS2.05: 83% PS2:5-6 + " PS2.05: 94% PS2:5-7 +block I/O system PS2.04: 41% PS2:4-4 + " PS2.04: 44% PS2:4-5 + " PS2.04: 64% PS2:4-6 + " PS2.05: 70% PS2:5-5 +Block If[s] PS1.02: 63% PS1:2-21 + " PS1.02: 63% PS1:2-21 + " PS1.02: 63% PS1:2-21 + " PS1.02: 64% PS1:2-21 + " PS1.02: 64% PS1:2-21 +Block in C PS1.01: 62% PS1:1-21 +block number[s] PS2.05: 17% PS2:5-2 + " PS2.05: 57% PS2:5-4 + " PS2.05: 59% PS2:5-4 + " PS2.05: 84% PS2:5-6 +blocked signal[s], mask of PS1.06: 29% PS1:6-14 +blocking PS1.06: 40% PS1:6-19 +Boolean[s] PS1.04: 43% PS1:4-23 + " PS1.04: 44% PS1:4-23 + " PS1.04: 44% PS1:4-23 + " PS1.04: 84% PS1:4-43 + " PS1.04: 88% PS1:4-45 +Bootstrap operation[s] PS1.06: 47% PS1:6-23 +boggle - play the game of boggle BOGGLE.6: 2% BOGGLE(6)-1 +bold face USD.22: 91% USD:22-17 + " USD.22: 91% USD:22-17 + " USD.22: 91% USD:22-17 +bold font[s] USD.22: 86% USD:22-16 + " USD.22: 91% USD:22-17 + " USD.23: 2% USD:23-1 + " USD.25: 21% USD:25-4 + " USD.22: 85% USD:22-16 + " USD.24: 25% USD:24-9 + " USD.24: 95% USD:24-32 +bold italics USD.22: 89% USD:22-17 +boldface USD.20: 47% USD:20-4 +bomb, slime HUNT.6: 29% HUNT(6)-1 + " HUNT.6: 30% HUNT(6)-1 + " HUNT.6: 36% HUNT(6)-1 + " HUNT.6: 36% HUNT(6)-1 +book, Article in USD.31: 36% USD:31-6 +Boolean combination[s] USD.19: 3% USD:19-1 + " USD.19: 40% USD:19-4 +boolean option[s] USD.16: 51% USD:16-10 +boot file[s] SMM.01: 20% SMM:1-14 + " SMM.11: 25% SMM:11-4 + " SMM.11: 26% SMM:11-4 + " SMM.11: 27% SMM:11-4 + " SMM.11: 31% SMM:11-5 + " SMM.11: 31% SMM:11-5 + " SMM.11: 34% SMM:11-5 + " SMM.11: 35% SMM:11-5 + " SMM.11: 36% SMM:11-5 + " SMM.11: 70% SMM:11-10 + " SMM.11: 70% SMM:11-10 + " SMM.11: 70% SMM:11-10 + " SMM.11: 71% SMM:11-10 + " SMM.11: 72% SMM:11-10 +boot floppy SMM.01: 18% SMM:1-13 + " SMM.01: 19% SMM:1-14 + " SMM.01: 19% SMM:1-14 +boot media, creating SMM.01: 36% SMM:1-24 +boot program INIT.8: 12% INIT(8)-1 + " REBOOT.8: 40% REBOOT(8)-1 + " REBOOT.8: 55% REBOOT(8)-2 + " REBOOT.8: 56% REBOOT(8)-2 + " SMM.01: 74% SMM:1-45 + " SMM.01: 97% SMM:1-63 + " SMM.01: 97% SMM:1-64 +boot time AUTOCONF.4: 39% AUTOCONF(4)-1 + " DE.4: 14% DE(4)-1 + " EC.4: 24% EC(4)-1 + " EN.4: 19% EN(4)-1 + " EX.4: 19% EX(4)-1 + " FSTAB.5: 61% FSTAB(5)-1 + " GETHOSTID.2: 68% GETHOSTID(2)-1 + " HOSTS.5: 48% HOSTS(5)-1 + " HY.4: 11% HY(4)-1 + " IFCONFIG.8C: 7% IFCONFIG(8C)-1 + " IL.4: 17% IL(4)-1 + " IMP.4: 19% IMP(4)-1 + " INETD.8: 4% INETD(8)-1 + " IX.4: 28% IX(4)-1 + " LPD.8: 4% LPD(8)-1 + " NETSTAT.1: 26% NETSTAT(1)-1 + " QE.4: 36% QE(4)-1 + " QUOTACHECK.8: 75% QUOTACHECK(8)-1 + " QUOTAON.8: 59% QUOTAON(8)-1 + " ROUTED.8C: 2% ROUTED(8C)-1 + " SMM.01: 17% SMM:1-12 + " SMM.01: 61% SMM:1-38 + " SMM.01: 61% SMM:1-38 + " SMM.01: 71% SMM:1-43 + " SMM.02: 5% SMM:2-3 + " SMM.02: 28% SMM:2-8 + " SMM.02: 29% SMM:2-8 + " SMM.02: 29% SMM:2-8 + " SMM.02: 30% SMM:2-9 + " SMM.02: 34% SMM:2-10 + " SMM.02: 53% SMM:2-16 + " SMM.02: 58% SMM:2-17 + " SMM.02: 71% SMM:2-22 + " SMM.02: 81% SMM:2-26 + " SMM.02: 85% SMM:2-30 + " SMM.02: 89% SMM:2-31 + " SMM.02: 90% SMM:2-31 + " SMM.06: 9% SMM:6-2 + " SMM.11: 16% SMM:11-3 + " SMM.13: 49% SMM:13-17 + " SMM.13: 55% SMM:13-19 + " SMM.13: 81% SMM:13-28 + " SMM.13: 98% SMM:13-33 + " SMM.15: 27% SMM:15-9 + " SMM.15: 33% SMM:15-10 + " SMM.15: 44% SMM:15-14 + " SMM.15: 84% SMM:15-24 + " SMM.15: 85% SMM:15-24 + " SYSTAT.1: 59% SYSTAT(1)-3 + " SYSTAT.1: 65% SYSTAT(1)-3 + " TIMED.8: 8% TIMED(8)-1 + " VP.4: 83% VP(4)-1 +bootable image[s] SMM.02: 15% SMM:2-5 + " SMM.02: 15% SMM:2-5 + " SMM.02: 15% SMM:2-5 +booting a new kernel SMM.01: 36% SMM:1-23 +Booting from tape SMM.01: 10% SMM:1-7 +booting from the console SMM.01: 74% SMM:1-45 +booting from the mini-root file system SMM.01: 16% SMM:1-11 +Bootstrap SMM.01: 73% SMM:1-45 +bootstrap a new file system MKPROTO.8: 7% MKPROTO(8)-1 +bootstrap code SMM.13: 99% SMM:13-34 +BOOTSTRAP DETAIL[s] SMM.01: 85% SMM:1-52 +bootstrap monitor SMM.01: 13% SMM:1-8 + " SMM.01: 13% SMM:1-9 + " SMM.01: 15% SMM:1-10 + " SMM.01: 91% SMM:1-59 + " SMM.01: 85% SMM:1-52 +Bootstrap operation[s] SMM.13: 99% SMM:13-34 +bootstrap procedure[s] CRASH.8V: 28% CRASH(8V)-1 + " SMM.01: 8% SMM:1-5 + " SMM.01: 9% SMM:1-7 + " SMM.01: 9% SMM:1-7 + " SMM.01: 41% SMM:1-27 +bootstrap program NEWFS.8: 18% NEWFS(8)-1 + " NEWFS.8: 21% NEWFS(8)-1 + " REBOOT.2: 16% REBOOT(2)-1 + " REBOOT.2: 50% REBOOT(2)-1 + " REBOOT.8: 64% REBOOT(8)-2 + " SMM.01: 16% SMM:1-11 + " SMM.01: 16% SMM:1-12 + " SMM.01: 95% SMM:1-62 + " SMM.14: 23% SMM:14-4 +Bootstrapping an 8650 or 8600 SMM.01: 11% SMM:1-7 +bootstrapping programs FS.5: 4% FS(5)-1 +botch, longjmp SETJMP.3: 83% SETJMP(3)-1 + " SMM.12A: 66% SMM:12-15 +bottom margin, FM USD.20: 72% USD:20-5 +bottom title MS.7: 23% MS(7)-1 +bottom-up parser SMM.19: 10% SMM:19-4 + " SMM.19: 18% SMM:19-6 + " SMM.19: 18% SMM:19-6 +boundaries, message PS1.07a: 33% PS1:7-8 + " PS1.07a: 59% PS1:7-14 +boundaries, record PS1.06: 75% PS1:6-33 + " PS1.08: 5% PS1:8-3 + " PS1.08: 6% PS1:8-3 + " PS1.08: 7% PS1:8-3 +boundaries, word PS1.02: 34% PS1:2-12 + " PS1.02: 34% PS1:2-12 + " PS1.09: 53% PS1:9-6 +bounds, array F77.1: 52% F77(1)-2 +boundary, Section USD.15: 33% USD:15-10 + " USD.15: 85% USD:15-24 + " USD.15: 93% USD:15-26 + " USD.15: 93% USD:15-26 + " USD.15: 99% USD:15-28 +boundary, sentence USD.15: 33% USD:15-10 + " USD.32: 70% USD:32-10 +boundary, word SMM.19: 65% SMM:19-18 +Bourne, S. R. USD.03: 0% USD:3-1 +Bourne Shell JOVE.N: 12% JOVE(1)-1 + " MHOOK.N: 22% MHOOK(1)-2 + " TSET.1: 34% TSET(1)-2 + " USD.08: 32% USD:8-36 + " USD.15: 4% USD:15-2 + " SH.1: 1% SH(1)-1 + " TSET.1: 39% TSET(1)-2 +bourne shell formal grammar USD.03: 96% USD:3-22 +Bourne shell Meta-characters and Reserved Word[s] USD.03: 98% USD:3-24 +Bourne shell script FALSE.1: 34% FALSE(1)-1 + " TRUE.1: 35% TRUE(1)-1 + " SMM.12A: 32% SMM:12-8 +box PLOT.3F: 18% PLOT(3F)-1 +box(win, vert, hor) PS1.18: 34% PS1:18-8 +box, .bx set in a USD.23: 47% USD:23-6 +box, words in a USD.22: 89% USD:22-17 +box - enclose the table in a box USD.28: 9% USD:28-2 +boxes, large USD.24: 68% USD:24-22 +boxed table[s] USD.28: 10% USD:28-2 +boxed text MS.7: 22% MS(7)-1 +Boxing words or line[s] USD.20: 57% USD:20-5 +Brace[s] USD.26: 39% USD:26-3 +Braces { ... } in argument expansion USD.04: 66% USD:4-32 +Bracket[s] USD.13: 29% USD:13-6 + " USD.24: 65% USD:24-21 +bracket[s], big USD.27: 53% USD:27-6 +bracket[s], square SMM.19: 7% SMM:19-3 + " SMM.19: 7% SMM:19-3 + " USD.06: 64% USD:6-9 + " USD.18: 29% USD:18-3 +brackets, square PS1.01: 21% PS1:1-7 + " PS2.06: 5% PS2:6-3 + " PS2.09: 7% PS2:9-10 +branch, Creating a PS1.14: 67% PS1:14-10 +branch instructions PS1.05: 87% PS1:5-12 + " PS1.05: 96% PS1:5-14 + " PS1.05: 97% PS1:5-14 +branch number PS1.13: 28% PS1:13-5 + " PS1.13: 68% PS1:13-14 + " PS1.13: 69% PS1:13-14 +branch statement[s] PS2.06: 16% PS2:6-7 + " PS2.06: 55% PS2:6-19 + " PS2.10: 29% PS2:10-28 +branch, conditional SMM.19: 35% SMM:19-10 + " USD.03: 46% USD:3-11 +branch number CI.N: 42% CI(1)-1 + " RCS.N: 58% RCS(1)-2 + " RCS.N: 67% RCS(1)-2 +branch to label USD.18: 94% USD:18-10 +BREAK L_SYS.5: 75% L.SYS(5)-3 + " L_SYS.5: 76% L.SYS(5)-3 + " L_SYS.5: 97% L.SYS(5)-4 + " SMM.09: 74% SMM:9-16 + " SMM.09: 74% SMM:9-16 + " TELNET.1C: 37% TELNET(1C)-2 + " TIP.1C: 23% TIP(1C)-1 + " END.3: 59% + " GETTYTAB.5: 58% GETTYTAB(5)-2 + " USD.04: 70% USD:4-35 + " USD.22: 8% USD:22-2 +break loop PS2.09: 24% PS2:9-46 + " PS2.09: 46% PS2:9-81 + " PS2.09: 70% PS2:9-116 + " PS2.09: 86% PS2:9-139 +Break Statement PS1.01: 67% PS1:1-22 + " PS1.01: 67% PS1:1-22 + " PS1.09: 24% PS1:9-3 + " PS2.06: 56% PS2:6-20 +Breakpoint PS1.10: 21% PS1:10-5 + " PS1.10: 22% PS1:10-5 + " PS1.10: 2% + " PS1.10: 22% PS1:10-5 + " PS1.11a: 40% PS1:11-3 + " PS1.10: 96% PS1:10-27 +break, cause a USD.24: 36% USD:24-12 + " USD.25: 56% USD:25-9 +break - Bourne shell command SH.1: 0% SH(1)-1 +break character STTY.1: 38% STTY(1)-2 +break condition TTY.4: 44% TTY(4)-4 + " TTY.4: 44% TTY(4)-4 + " TTY.4: 70% TTY(4)-7 +break function USD.24: 8% USD:24-3 + " USD.24: 32% USD:24-11 +break key CONS.4: 41% CONS(4)-1 + " GETTY.8: 49% GETTY(8)-1 +break shell command CSH.1: 51% CSH(1)-10 +Break Statement USD.06: 95% USD:6-13 +breaking a revision lock RCS.N: 38% RCS(1)-1 +Breakpoint DBX.1: 28% DBX(1)-2 + " PTRACE.2: 7% PTRACE(2)-1 + " PTRACE.2: 64% unknown +breakpoint, delete PS1.10: 96% PS1:10-27 +breakpoint, delete a PS1.10: 26% PS1:10-6 +BROADCAST PS1.08: 55% PS1:8-22 + " PS1.08: 55% PS1:8-22 + " PS1.08: 79% PS1:8-32 + " PS1.08: 79% PS1:8-32 + " PS1.08: 80% PS1:8-32 + " PS1.08: 83% PS1:8-34 + " PS1.08: 83% PS1:8-34 +Broadcast message PS1.08: 78% PS1:8-32 + " PS1.08: 79% PS1:8-32 + " PS1.08: 84% PS1:8-34 + " PS1.08: 84% PS1:8-34 + " PS2.10: 79% PS2:10-70 +Broadcasting PS1.08: 78% PS1:8-32 +BSD kernel facility[s], summary of 4.3 PS1.06: 94% PS1:6-41 +breakpoint, set ADB.1: 75% ADB(1)-5 +breaksw USD.04: 70% USD:4-35 +breaksw shell command CSH.1: 51% CSH(1)-10 +Bringing text into the buffer USD.14: 49% USD:14-13 +brk END.3: 67% +brk, sbrk - change data segment size BRK.2: 2% BRK(2)-1 +Broadcast GETSOCKOPT.2: 72% GETSOCKOPT(2)-2 + " SMM.12A: 66% SMM:12-15 +broadcast addresses IDP.4P: 29% IDP(4P)-1 + " INET.4F: 34% INET(4F)-1 + " INTRO.4N: 79% INTRO(4N)-3 + " ROUTED.8C: 38% ROUTED(8C)-1 + " SMM.01: 63% SMM:1-39 + " SMM.01: 64% SMM:1-40 + " SMM.01: 64% SMM:1-40 + " SMM.01: 64% SMM:1-40 + " SMM.01: 67% SMM:1-41 + " SMM.13: 8% SMM:13-4 + " SMM.13: 60% SMM:13-21 + " SMM.13: 64% SMM:13-22 + " SMM.13: 64% SMM:13-22 + " SMM.13: 66% SMM:13-23 + " SMM.13: 80% SMM:13-27 + " SMM.15: 35% SMM:15-11 + " SMM.15: 39% SMM:15-12 + " UDP.4P: 50% UDP(4P)-1 + " VV.4: 37% VV(4)-1 + " IFCONFIG.8C: 83% IFCONFIG(8C)-2 + " INTRO.4N: 84% INTRO(4N)-3 +broadcast capability[s] SMM.08: 49% SMM:8-2 +Broadcast message WALL.1: 38% WALL(1)-1 + " RWHOD.8C: 8% RWHOD(8C)-1 +broadcast packet IDP.4P: 26% IDP(4P)-1 + " ROUTED.8C: 13% ROUTED(8C)-1 + " SMM.15: 37% SMM:15-11 + " SMM.15: 37% SMM:15-12 + " SMM.15: 60% SMM:15-18 + " SMM.15: 89% SMM:15-25 + " SMM.15: 90% SMM:15-25 + " UDP.4P: 45% UDP(4P)-1 + " VV.4: 26% VV(4)-1 + " XNSROUTED.8C: 23% XNSROUTED(8C)-1 +broadcasting signals KILL.2: 37% KILL(2)-1 +Browsing through Old News USD.09: 39% USD:9-5 +BSS A_OUT.5: 7% A.OUT(5)-1 +bss segment LD.1: 91% LD(1)-2 + " PS1.05: 7% PS1:5-2 + " PS1.05: 26% PS1:5-4 + " PS1.05: 29% PS1:5-4 + " PS1.05: 44% PS1:5-6 + " PS1.05: 72% PS1:5-10 + " PS1.05: 73% PS1:5-11 + " SIZE.1: 54% SIZE(1)-1 +Budd, Timothy A. BIB.N: 95% BIB(1)-2 + " INVERT.N: 75% INVERT(1)-2 + " USD.31: 0% USD:31-1 +bss symbol PS1.05: 44% PS1:5-6 + " PS1.05: 45% PS1:5-6 + " PS1.05: 45% PS1:5-6 + " PS1.05: 45% PS1:5-6 +buddy system USD.05: 37% USD:5-4 +Buffer USD.14: 9% USD:14-3 +buffer, Bringing text into the USD.14: 49% USD:14-13 +Buffer, Creating and Selecting USD.17: 35% USD:17-16 +buffer, current location in the USD.14: 37% USD:14-10 +buffer, input PS1.08: 61% PS1:8-24 + " PS2.09: 41% PS2:9-72 + " PS2.09: 49% PS2:9-87 +buffer, query PS2.10: 17% PS2:10-19 + " PS2.10: 17% PS2:10-19 + " PS2.10: 17% PS2:10-19 + " PS2.10: 26% PS2:10-26 + " PS2.10: 26% PS2:10-26 + " PS2.10: 26% PS2:10-26 + " PS2.10: 26% PS2:10-26 + " PS2.10: 26% PS2:10-26 + " PS2.10: 26% PS2:10-26 + " PS2.10: 26% PS2:10-26 + " PS2.10: 26% PS2:10-26 + " PS2.10: 26% PS2:10-26 + " PS2.10: 27% PS2:10-26 + " PS2.10: 27% PS2:10-26 + " PS2.10: 27% PS2:10-26 + " PS2.10: 27% PS2:10-27 + " PS2.10: 27% PS2:10-27 + " PS2.10: 27% PS2:10-27 + " PS2.10: 27% PS2:10-27 + " PS2.10: 28% PS2:10-27 + " PS2.10: 28% PS2:10-27 + " PS2.10: 28% PS2:10-27 + " PS2.10: 28% PS2:10-27 + " PS2.10: 30% PS2:10-29 + " PS2.10: 30% PS2:10-29 + " PS2.10: 30% PS2:10-29 + " PS2.10: 91% PS2:10-82 + " PS2.10: 91% PS2:10-82 +buffer header PS2.05: 55% PS2:5-4 + " PS2.05: 57% PS2:5-4 + " PS2.05: 59% PS2:5-4 + " PS2.05: 70% PS2:5-5 + " PS2.05: 74% PS2:5-5 + " PS2.05: 75% PS2:5-5 + " PS2.05: 83% PS2:5-6 + " PS2.05: 84% PS2:5-6 + " PS2.05: 84% PS2:5-6 + " PS2.05: 86% PS2:5-6 + " PS2.05: 87% PS2:5-6 + " PS2.05: 94% PS2:5-7 + " PS2.05: 96% PS2:5-7 +buffer overflow PS2.10: 89% PS2:10-79 + " PS2.10: 91% PS2:10-82 +buffer space PS2.10: 83% PS2:10-76 + " PS2.10: 84% PS2:10-76 + " PS2.10: 93% PS2:10-83 + " PS2.10: 93% PS2:10-83 + " PS2.10: 93% PS2:10-83 + " PS2.10: 93% PS2:10-83 + " PS2.10: 93% PS2:10-83 + " PS2.10: 93% PS2:10-83 +buffer, data SMM.13: 39% SMM:13-14 + " SMM.15: 25% SMM:15-8 +buffer, editing USD.14: 88% USD:14-21 + " USD.16: 47% USD:16-9 + " USD.16: 64% USD:16-12 +buffer, editor USD.15: 36% USD:15-10 + " USD.16: 22% USD:16-4 + " USD.16: 32% USD:16-6 + " USD.16: 34% USD:16-6 + " USD.16: 45% USD:16-9 +buffer, Filtering portions of the USD.15: 53% USD:15-15 +buffer, Finding things in the USD.14: 35% USD:14-9 +buffer, Flush output USD.24: 81% USD:24-26 +Buffer, I-process USD.17: 47% USD:17-20 + " USD.17: 47% USD:17-20 + " USD.17: 48% USD:17-21 +buffer, I/O ABORT.3: 88% ABORT(3)-1 + " ABORT.3F: 19% ABORT(3F)-1 + " SMM.01: 8% SMM:1-5 +buffer, input GETSOCKOPT.2: 78% GETSOCKOPT(2)-2 + " SMM.13: 88% SMM:13-30 +buffer, JOVE JOVE.N: 21% JOVE(1)-1 + " JOVE_RECOVER.N: 1% JOVE_RECOVER(1) + " JOVE_RECOVER.N: 9% JOVE_RECOVER(1) + " USD.17: 4% USD:17-2 + " USD.17: 46% USD:17-20 + " USD.17: 51% USD:17-22 + " USD.17: 78% USD:17-37 +buffer, last line in USD.12: 31% USD:12-4 +buffer, Listing what's in the USD.14: 32% USD:14-9 +buffer, message INTRO.2: 40% INTRO(2)-3 + " SMM.13: 21% SMM:13-8 +buffer, Moving around in the USD.14: 64% USD:14-16 +buffer, named USD.15: 34% USD:15-10 + " USD.16: 9% USD:16-2 +buffer, network CRASH.8V: 79% CRASH(8V)-2 + " SMM.13: 53% SMM:13-19 + " SMM.12A: 91% SMM:12-21 +buffer, output SMM.15: 47% SMM:15-14 + " GETSOCKOPT.2: 78% GETSOCKOPT(2)-2 +buffer, Printing the contents of the USD.12: 28% USD:12-3 +buffering, Output PS1.04: 59% PS1:4-30 +buffers, profile KGMON.8: 6% KGMON(8)-1 + " KGMON.8: 45% KGMON(8)-1 + " KGMON.8: 49% KGMON(8)-1 +buffer, status SMM.15: 55% SMM:15-17 +buffer, Writing parts of the USD.14: 86% USD:14-21 +buffer allocation SMM.13: 37% SMM:13-13 + " SMM.15: 23% SMM:15-8 + " SMM.15: 23% SMM:15-8 + " SMM.15: 23% SMM:15-8 +buffer cache SMM.02: 89% SMM:2-31 + " SMM.02: 90% SMM:2-31 + " SMM.02: 90% SMM:2-31 + " SMM.02: 90% SMM:2-31 + " SMM.02: 90% SMM:2-31 + " SMM.02: 91% SMM:2-31 + " SMM.02: 91% SMM:2-31 + " SMM.13: 31% SMM:13-12 + " TUNEFS.8: 88% TUNEFS(8)-1 + " SMM.01: 8% SMM:1-5 +buffer header SMM.02: 90% SMM:2-31 + " SMM.02: 90% SMM:2-31 + " SMM.02: 91% SMM:2-31 + " SMM.02: 92% SMM:2-31 + " SMM.02: 92% SMM:2-31 +buffer line USD.14: 67% USD:14-17 + " USD.14: 68% USD:14-17 +buffer modifying command ED.1: 77% ED(1)-5 + " ED.1: 78% ED(1)-5 + " ED.1: 78% ED(1)-5 +buffer name USD.15: 34% USD:15-10 + " USD.15: 48% USD:15-14 + " USD.15: 93% USD:15-26 + " USD.16: 62% USD:16-12 + " USD.17: 37% USD:17-16 + " USD.17: 43% USD:17-19 + " USD.17: 75% USD:17-35 + " USD.17: 81% USD:17-38 + " USD.17: 91% USD:17-44 +buffer number USD.17: 37% USD:17-16 + " USD.17: 75% USD:17-35 + " USD.17: 81% USD:17-38 +buffer page[s] SMM.02: 91% SMM:2-31 + " SMM.13: 55% SMM:13-19 + " SMM.13: 55% SMM:13-19 + " SMM.15: 47% SMM:15-14 +buffer size GETSOCKOPT.2: 78% GETSOCKOPT(2)-2 + " GETSOCKOPT.2: 79% GETSOCKOPT(2)-2 + " MTIO.4: 89% MTIO(4)-2 + " SMM.13: 38% SMM:13-14 + " SMM.13: 71% SMM:13-25 + " SMM.15: 55% SMM:15-16 +buffer space INTRO.2: 51% INTRO(2)-4 + " SMM.13: 8% SMM:13-4 + " SMM.13: 36% SMM:13-13 + " SMM.15: 60% SMM:15-18 +buffer-position USD.17: 60% USD:17-27 +buffered data path SMM.02: 54% SMM:2-16 +buffering, types of SETBUF.3S: 13% SETBUF(3S)-1 +buffering mechanism HK.4: 12% HK(4)-1 + " HP.4: 6% HP(4)-1 + " UDA.4: 15% UDA(4)-1 + " UP.4: 12% UP(4)-1 +buffering policy SMM.15: 84% SMM:15-24 + " SMM.15: 83% SMM:15-24 +BUFSIZ SETBUF.3S: 49% SETBUF(3S)-1 + " SETBUF.3S: 51% SETBUF(3S)-1 +bug, compiler SMM.19: 91% SMM:19-25 +bugs, kernel CRASH.8V: 70% CRASH(8V)-2 +bug fixes SMM.13: 0% SMM:13-2 + " SMM.13: 58% SMM:13-20 + " SMM.13: 81% SMM:13-27 + " SMM.13: 86% SMM:13-29 + " SMM.13: 90% SMM:13-31 + " SMM.21: 62% SMM:21-5 + " SMM.12A: 4% SMM:12-2 + " SMM.12A: 6% SMM:12-2 + " SMM.12A: 6% SMM:12-2 + " SMM.12A: 15% SMM:12-4 + " SMM.12A: 17% SMM:12-5 + " SMM.12A: 24% SMM:12-6 + " SMM.12A: 51% SMM:12-12 +Bug Fixes and Changes in 4.3BSD SMM.12A: 0% SMM:12-2 + " SMM.12A: 2% SMM:12-2 + " SMM.12A: 6% SMM:12-2 + " SMM.12A: 12% SMM:12-4 + " SMM.12A: 16% SMM:12-4 + " SMM.12A: 21% SMM:12-6 + " SMM.12A: 27% SMM:12-6 + " SMM.12A: 32% SMM:12-8 + " SMM.12A: 36% SMM:12-8 + " SMM.12A: 41% SMM:12-10 + " SMM.12A: 46% SMM:12-10 + " SMM.12A: 50% SMM:12-12 + " SMM.12A: 54% SMM:12-12 + " SMM.12A: 58% SMM:12-14 + " SMM.12A: 62% SMM:12-14 + " SMM.12A: 67% SMM:12-16 + " SMM.12A: 71% SMM:12-16 + " SMM.12A: 75% SMM:12-18 + " SMM.12A: 79% SMM:12-18 + " SMM.12A: 83% SMM:12-20 + " SMM.12A: 87% SMM:12-20 + " SMM.12A: 92% SMM:12-22 + " SMM.12A: 96% SMM:12-22 +Bug report BUGFILER.8: 30% BUGFILER(8)-1 + " BUGFILER.8: 61% BUGFILER(8)-1 + " SENDBUG.1: 17% SENDBUG(1)-1 + " SENDBUG.1: 27% SENDBUG(1)-1 + " USD.08: 92% USD:8-112 + " USD.09: 6% USD:9-1 + " USD.09: 81% USD:9-10 + " BUGFILER.8: 6% BUGFILER(8)-1 +bug reports and fix[s] USD.09: 62% USD:9-8 +bugfiler - file bug reports in folders automatically BUGFILER.8: 1% BUGFILER(8)-1 +bugs in mh, reporting USD.08: 79% USD:8-97 +build a bootable system SMM.02: 8% SMM:2-4 +Building 4.3BSD UNIX System[s] CONFIG.8: 91% CONFIG(8)-1 +building a compiler USD.01: 90% USD:1-13 +Building Berkeley UNIX Kernels with Config SMM.02: 0% unknown +building file system[s] FORMAT.8V: 50% FORMAT(8V)-2 + " NEWFS.8: 14% NEWFS(8)-1 +Building Kernels SMM.02: 2% SMM:2-2 + " SMM.02: 5% SMM:2-2 + " SMM.02: 8% SMM:2-4 + " SMM.02: 12% SMM:2-4 + " SMM.02: 16% SMM:2-6 + " SMM.02: 21% SMM:2-6 + " SMM.02: 25% SMM:2-8 + " SMM.02: 29% SMM:2-8 + " SMM.02: 33% SMM:2-10 + " SMM.02: 36% SMM:2-10 + " SMM.02: 39% SMM:2-12 + " SMM.02: 41% SMM:2-12 + " SMM.02: 44% SMM:2-14 + " SMM.02: 47% SMM:2-14 + " SMM.02: 50% SMM:2-16 + " SMM.02: 54% SMM:2-16 + " SMM.02: 58% SMM:2-18 + " SMM.02: 61% SMM:2-18 + " SMM.02: 64% SMM:2-20 + " SMM.02: 67% SMM:2-20 + " SMM.02: 70% SMM:2-22 + " SMM.02: 73% SMM:2-22 + " SMM.02: 76% SMM:2-24 + " SMM.02: 77% SMM:2-24 + " SMM.02: 79% SMM:2-26 + " SMM.02: 83% SMM:2-26 + " SMM.02: 83% SMM:2-28 + " SMM.02: 84% SMM:2-28 + " SMM.02: 85% SMM:2-30 + " SMM.02: 88% SMM:2-30 + " SMM.02: 92% SMM:2-32 + " SMM.02: 95% SMM:2-32 + " SMM.02: 99% SMM:2-34 +Building new system image[s] SMM.01: 40% SMM:1-27 +Building profiled system[s] SMM.02: 19% SMM:2-6 +building the system CONFIG.8: 52% CONFIG(8)-1 + " SMM.02: 14% SMM:2-5 +buildmini shell script SMM.01: 86% SMM:1-52 +built-in command[s] GETRLIMIT.2: 63% GETRLIMIT(2)-1 + " TIME.1: 83% TIME(1)-1 + " USD.03: 75% USD:3-18 + " USD.04: 49% USD:4-22 + " USD.04: 49% USD:4-22 + " CSH.1: 34% CSH(1)-7 + " CSH.1: 44% CSH(1)-9 + " CSH.1: 49% CSH(1)-10 + " CSH.1: 49% CSH(1)-10 + " CSH.1: 49% CSH(1)-10 + " CSH.1: 55% CSH(1)-11 + " CSH.1: 80% CSH(1)-17 + " CSH.1: 86% CSH(1)-18 + " CSH.1: 87% CSH(1)-18 + " USD.04: 71% USD:4-35 + " USD.04: 72% USD:4-35 + " CD.1: 50% +built-in function[s] PS1.04: 92% PS1:4-47 + " PS1.17: 54% PS1:17-4 + " PS1.17: 62% PS1:17-4 + " PS2.09: 54% PS2:9-95 + " USD.19: 44% USD:19-4 + " USD.19: 47% USD:19-4 + " USD.04: 2% USD:4-3 + " WINDOW.1: 65% WINDOW(1)-5 + " WINDOW.1: 70% WINDOW(1)-5 +built-in macro[s] PS1.17: 15% PS1:17-2 + " PS1.17: 14% PS1:17-2 +built-in macros M4.1: 28% M4(1)-1 +built-in procedure PS1.04: 20% PS1:4-11 + " PS1.04: 42% PS1:4-22 + " PS1.04: 88% PS1:4-45 + " PS1.04: 95% PS1:4-48 +built-in rule PS1.12: 20% PS1:12-2 + " PS1.12: 35% PS1:12-3 + " PS1.12: 46% PS1:12-4 + " PS1.12: 57% PS1:12-5 + " PS1.12: 60% PS1:12-5 +bulk-data transfer SMM.13: 73% SMM:13-25 + " SMM.13: 73% SMM:13-25 +bullet[s] USD.22: 59% USD:22-12 +bullet[s], .bu paragraphs with USD.23: 13% USD:23-2 +bulletin board system USD.10: 0% USD:10-1 +burst - explode digests into message[s] BURST.N: 0% BURST(1)-1 + " USD.08: 14% USD:8-14 +burst page LPD.8: 39% LPD(8)-1 + " LPR.1: 49% LPR(1)-1 +bus error PS2.09: 46% PS2:9-81 + " PS1.11a: 37% PS1:11-3 + " PS1.11a: 38% PS1:11-3 + " PS1.11a: 63% PS1:11-4 +bus error CORE.5: 24% CORE(5)-1 + " SIGNAL.3C: 6% SIGNAL(3C)-1 + " USD.03: 74% USD:3-18 + " SIGNAL.3C: 24% SIGNAL(3C)-1 +byte offset PS2.03: 95% PS2:3-15 + " PS2.04: 84% PS2:4-8 +byte order PS1.08: 40% PS1:8-15 + " PS1.08: 40% PS1:8-15 + " PS1.08: 40% PS1:8-15 + " PS1.08: 40% PS1:8-15 +byteorder PS1.07a: 58% PS1:7-14 +C, equel - Embedded QUEL interface to PS2.10: 56% PS2:10-50 +C, operator precedence in PS1.01: 95% PS1:1-32 +C backtrace PS1.10: 12% PS1:10-3 + " PS1.10: 12% PS1:10-3 + " PS1.10: 23% PS1:10-5 +C code PS1.09: 3% PS1:9-1 + " PS1.15: 99% PS1:15-33 + " PS2.10: 57% PS2:10-50 +C compiler PS1.01: 77% PS1:1-26 + " PS1.02: 0% + " PS1.09: 0% PS1:9-1 + " PS1.09: 2% PS1:9-1 + " PS1.09: 5% PS1:9-1 + " PS1.09: 57% PS1:9-6 + " PS1.09: 92% PS1:9-9 + " PS1.10: 23% PS1:10-5 + " PS1.12: 67% PS1:12-6 + " PS2.03: 9% PS2:3-2 + " PS2.08: 77% PS2:8-11 + " PS2.09: 36% PS2:9-65 + " PS2.10: 57% PS2:10-50 +C function PS2.09: 41% PS2:9-75 + " PS2.09: 56% PS2:9-97 + " PS2.09: 60% PS2:9-104 + " PS2.09: 60% PS2:9-104 +C language PS1.02: 2% PS1:2-4 + " PS1.06: 4% PS1:6-5 + " PS1.06: 5% PS1:6-5 + " PS1.09: 74% PS1:9-8 + " PS2.10: 61% PS2:10-52 +C library PS1.10: 23% PS1:10-5 + " PS2.03: 80% PS2:3-13 + " PS2.09: 36% PS2:9-63 +C portability issue[s] PS1.09: 63% PS1:9-7 +C preprocessor PS1.02: 7% PS1:2-5 +C procedure[s] PS1.02: 12% PS1:2-6 + " PS1.02: 37% PS1:2-13 + " PS1.02: 37% PS1:2-13 +C program[s] PS1.11a: 10% PS1:11-1 +C Program Checker, Lint, a PS1.09: 0% +C routine[s] PS1.02: 20% PS1:2-8 + " PS1.02: 39% PS1:2-13 + " PS1.02: 39% PS1:2-13 + " PS2.09: 61% PS2:9-104 + " PS2.09: 61% PS2:9-104 +C save routine PS1.10: 23% PS1:10-5 + " PS1.10: 24% PS1:10-5 + " PS1.10: 65% PS1:10-13 +bytes, swap every pair of DD.1: 39% DD(1)-1 +byte stream[s] SOCKET.2: 19% SOCKET(2)-1 + " SOCKET.2: 41% SOCKET(2)-1 +byte string operations BSTRING.3: 8% BSTRING(3)-1 +C, ANSI SMM.19: 93% SMM:19-26 + " SMM.19: 94% SMM:19-26 + " SMM.19: 96% SMM:19-27 + " SMM.12A: 6% SMM:12-2 +C, Programming in USD.01: 1% USD:1-1 + " USD.01: 84% USD:1-13 +C code USD.17: 58% USD:17-26 + " USD.17: 71% USD:17-33 + " SMM.12A: 28% SMM:12-7 +C comment[s] USD.17: 70% USD:17-33 +C compilation error[s] USD.17: 83% USD:17-40 +C compiler CC.1: 0% CC(1)-1 + " JOVE.N: 34% JOVE(1)-1 + " SMM.19: 0% SMM:19-2 + " SMM.19: 0% SMM:19-2 + " SMM.19: 4% SMM:19-2 + " SMM.19: 9% SMM:19-3 + " SMM.19: 12% SMM:19-4 + " USD.03: 6% USD:3-2 + " USD.17: 45% USD:17-20 + " USD.17: 63% USD:17-28 + " YACC.1: 22% YACC(1)-1 + " SMM.12A: 5% SMM:12-2 + " SMM.12A: 12% SMM:12-4 + " SMM.12A: 24% SMM:12-6 + " CC.1: 2% CC(1)-1 + " SMM.19: 0% SMM:19-2 + " INTRO.3: 2% INTRO(3)-1 +C Compiler, Tour Through the Portable SMM.19: 0% unknown +C escapes OD.1: 24% OD(1)-1 +C language CSH.1: 5% CSH(1)-1 + " SMM.19: 1% SMM:19-2 + " SMM.19: 43% SMM:19-12 + " USD.06: 7% USD:6-1 +C language standard USD.09: 88% USD:9-11 +C library CC.1: 32% CC(1)-1 + " INTRO.3: 2% INTRO(3)-1 + " INTRO.3: 3% INTRO(3)-1 + " INTRO.3: 17% INTRO(3)-1 + " SMM.01: 80% SMM:1-48 + " SMM.01: 81% SMM:1-49 + " SMM.11: 4% SMM:11-2 + " SMM.11: 4% SMM:11-2 + " SMM.11: 7% SMM:11-2 + " SMM.12A: 2% SMM:12-2 + " SMM.12A: 65% SMM:12-15 + " SMM.01: 32% SMM:1-22 +C library functions INTRO.3: 0% INTRO(3)-1 + " INTRO.3: 5% INTRO(3)-1 + " SMM.12A: 90% SMM:12-21 +C mode USD.17: 27% USD:17-12 + " USD.17: 51% USD:17-22 + " USD.17: 73% USD:17-34 + " USD.17: 98% USD:17-47 + " USD.17: 73% USD:17-34 +C operator[s] AWK.1: 33% AWK(1)-1 + " DBX.1: 45% DBX(1)-3 + " SMM.19: 48% SMM:19-14 +C preprocessor F77.1: 8% F77(1)-1 + " F77.1: 27% F77(1)-1 + " F77.1: 54% F77(1)-2 + " SMM.19: 96% SMM:19-27 + " XSTR.1: 61% XSTR(1)-1 + " XSTR.1: 72% XSTR(1)-1 + " SMM.12A: 6% SMM:12-2 + " SMM.12A: 10% SMM:12-3 + " CC.1: 40% CC(1)-2 + " DIFF.1: 73% DIFF(1)-2 + " UNIFDEF.1: 12% UNIFDEF(1)-1 +C program[s] CTAGS.1: 69% CTAGS(1)-1 + " EXECL.3: 48% EXECL(3)-1 + " FILE.1: 83% FILE(1)-1 + " INDENT.1: 33% INDENT(1)-1 + " PERROR.3: 30% PERROR(3)-1 + " SMM.19: 93% SMM:19-26 + " USD.04: 12% USD:4-6 + " USD.15: 53% USD:15-15 + " USD.15: 93% USD:15-26 + " USD.17: 27% USD:17-12 + " USD.17: 49% USD:17-21 + " USD.17: 51% USD:17-22 + " USD.17: 62% USD:17-28 + " XSTR.1: 3% XSTR(1)-1 + " YACC.1: 68% YACC(1)-1 + " CTAGS.1: 5% CTAGS(1)-1 +C program[s], editing USD.15: 53% USD:15-15 + " USD.17: 48% USD:17-21 +C program verifier, lint - a LINT.1: 1% LINT(1)-1 +C programming language USD.02: 1% USD:2-1 + " USD.02: 5% USD:2-1 +C routine[s] SMM.12A: 71% SMM:12-16 +C runtime library HIER.7: 86% HIER(7)-6 +C shell CSH.1: 97% CSH(1)-20 + " TSET.1: 35% TSET(1)-2 + " USD.04: 0% USD:4-1 + " USD.04: 0% USD:4-1 + " USD.04: 2% USD:4-2 + " USD.04: 2% USD:4-2 + " USD.04: 5% USD:4-4 + " USD.04: 8% USD:4-4 + " USD.04: 10% USD:4-6 + " USD.04: 13% USD:4-6 + " USD.04: 16% USD:4-8 + " USD.04: 18% USD:4-8 + " USD.04: 21% USD:4-10 + " USD.04: 23% USD:4-10 + " USD.04: 26% USD:4-12 + " USD.04: 28% USD:4-12 + " USD.04: 31% USD:4-14 + " USD.04: 32% USD:4-14 + " USD.04: 34% USD:4-16 + " USD.04: 37% USD:4-16 + " USD.04: 40% USD:4-18 + " USD.04: 41% USD:4-18 + " USD.04: 43% USD:4-20 + " USD.04: 45% USD:4-20 + " USD.04: 48% USD:4-22 + " USD.04: 50% USD:4-22 + " USD.04: 51% USD:4-24 + " USD.04: 52% USD:4-24 + " USD.04: 55% USD:4-26 + " USD.04: 56% USD:4-26 + " USD.04: 60% USD:4-28 + " USD.04: 61% USD:4-30 + " USD.04: 63% USD:4-30 + " USD.04: 64% USD:4-32 + " USD.04: 66% USD:4-32 + " USD.04: 67% USD:4-34 + " USD.04: 70% USD:4-34 + " USD.04: 72% USD:4-36 + " USD.04: 75% USD:4-36 + " USD.04: 78% USD:4-38 + " USD.04: 81% USD:4-38 + " USD.04: 84% USD:4-40 + " USD.04: 87% USD:4-40 + " USD.04: 90% USD:4-42 + " USD.04: 93% USD:4-42 + " USD.04: 96% USD:4-44 + " USD.04: 99% USD:4-44 +C shell, Introduction to the USD.04: 0% USD:4-1 +C stack SETJMP.3: 63% SETJMP(3)-1 +c-list SMM.02: 87% SMM:2-30 +c-mode USD.17: 60% USD:17-27 +C-X USD.17: 56% USD:17-25 +cabs - complex absolute value HYPOT.3M: 5% HYPOT(3M)-1 +cache, buffer SMM.02: 89% SMM:2-31 + " SMM.02: 90% SMM:2-31 + " SMM.02: 90% SMM:2-31 + " SMM.02: 90% SMM:2-31 + " SMM.02: 90% SMM:2-31 + " SMM.02: 91% SMM:2-31 + " SMM.02: 91% SMM:2-31 + " SMM.13: 31% SMM:13-12 + " TUNEFS.8: 88% TUNEFS(8)-1 + " SMM.01: 8% SMM:1-5 +cache, name SMM.13: 30% SMM:13-11 + " SMM.13: 30% SMM:13-11 + " SMM.13: 31% SMM:13-11 + " SMM.13: 32% SMM:13-12 + " SMM.13: 33% SMM:13-12 + " SMM.12A: 53% SMM:12-12 +cache, name translation SMM.13: 16% SMM:13-6 + " SMM.13: 27% SMM:13-10 + " SYSTAT.1: 45% SYSTAT(1)-2 +cache, text SMM.13: 56% SMM:13-20 + " SMM.12A: 54% SMM:12-12 +Caching Only Server SMM.11: 17% SMM:11-3 + " SMM.11: 17% SMM:11-3 + " SMM.11: 30% SMM:11-5 + " SMM.11: 72% SMM:11-10 +CAI script[s] USD.02: 3% USD:2-1 + " USD.02: 7% USD:2-2 + " USD.02: 0% USD:2-1 +cache[s], clean all system buffer PS1.06: 48% PS1:6-23 +caddr_t PS1.06: 6% PS1:6-5 +cal - print calendar CAL.1: 8% CAL(1)-1 +Calculator, DC - An Interactive Desk USD.05: 0% USD:5-1 +calculator, desk BC.1: 90% BC(1)-2 + " DC.1: 1% DC(1)-1 +Calculator, Interactive Desk USD.05: 0% USD:5-1 + " USD.05: 0% USD:5-1 + " USD.05: 3% USD:5-1 + " USD.05: 10% USD:5-2 + " USD.05: 19% USD:5-2 + " USD.05: 31% USD:5-4 + " USD.05: 50% USD:5-4 + " USD.05: 65% USD:5-6 + " USD.05: 79% USD:5-6 + " USD.05: 98% USD:5-8 +calculator, desk PS1.15: 81% PS1:15-24 + " PS1.15: 81% PS1:15-24 + " PS1.15: 82% PS1:15-24 + " PS1.15: 87% PS1:15-28 + " PS1.15: 88% PS1:15-28 +calendar CAL.1: 22% CAL(1)-1 + " LEAVE.1: 95% unknown + " SMM.12A: 5% SMM:12-2 +calendar - reminder service CALENDAR.1: 4% CALENDAR(1)-1 +calendars, shared CALENDAR.1: 69% +call, function PS1.01: 17% PS1:1-6 + " PS1.01: 22% PS1:1-7 + " PS1.01: 22% PS1:1-7 + " PS1.01: 62% PS1:1-21 + " PS1.01: 91% PS1:1-31 + " PS1.04: 74% PS1:4-38 + " PS1.09: 55% PS1:9-6 + " PS1.10: 65% PS1:10-13 + " PS2.09: 26% PS2:9-51 + " PS2.09: 29% PS2:9-55 + " PS2.09: 38% PS2:9-67 + " PS2.09: 72% PS2:9-119 + " PS2.09: 79% PS2:9-128 + " PS2.09: 83% PS2:9-133 + " PS2.09: 85% PS2:9-136 + " PS1.11a: 45% PS1:11-3 + " PS1.11a: 45% PS1:11-3 +call, inline expansion of SMM.13: 3% SMM:13-2 +call counts GPROF.1: 17% GPROF(1)-1 + " GPROF.1: 31% GPROF(1)-1 + " GPROF.1: 42% GPROF(1)-1 + " GPROF.1: 69% GPROF(1)-2 + " MONITOR.3: 86% MONITOR(3)-1 + " PROF.1: 80% PROF(1)-1 +call graph GPROF.1: 19% GPROF(1)-1 + " GPROF.1: 84% GPROF(1)-2 + " SMM.02: 19% SMM:2-6 +call unit[s] REMOTE.5: 49% REMOTE(5)-1 +call UNIX - log in to a remote system TIP.1C: 6% TIP(1C)-1 +call, procedure PS1.04: 32% PS1:4-18 + " PS1.08: 95% PS1:8-40 + " PS2.06: 29% PS2:6-11 +call, subroutine PS1.02: 64% PS1:2-21 + " PS2.01: 56% PS2:1-8 + " PS2.06: 47% PS2:6-16 + " PS2.06: 47% PS2:6-16 + " PS2.06: 72% PS2:6-25 + " PS2.09: 97% PS2:9-152 +callback USERFILE.5: 17% USERFILE(5)-1 +Called at every page to print the header, .$h USD.23: 26% USD:23-4 +Calling convention[s] PC.1: 32% PC(1)-1 + " SMM.13: 30% SMM:13-11 + " SMM.15: 58% SMM:15-17 + " SMM.15: 61% SMM:15-18 +calling program SMM.21: 52% SMM:21-4 +calling routine VARARGS.3: 74% VARARGS(3)-1 +calling sequence PS1.02: 0% + " PS1.02: 2% PS1:2-4 + " PS2.01: 28% PS2:1-5 +Carriage Control PS1.02: 36% PS1:2-12 + " PS1.02: 36% PS1:2-12 + " PS1.03: 60% PS1:3-7 + " PS1.03: 61% PS1:3-8 + " PS1.03: 81% PS1:3-11 + " PS1.03: 82% PS1:3-11 + " PS1.04: 92% PS1:4-47 +calling sequence RANDOM.3: 20% RANDOM(3)-1 + " SMM.19: 4% SMM:19-2 + " SMM.19: 42% SMM:19-12 +calloc FOPEN.3S: 88% FOPEN(3S)-1 + " MALLOC.3: 2% MALLOC(3)-1 +callout SMM.02: 87% SMM:2-30 +Canada SMM.10: 50% SMM:10-13 + " SMM.12A: 62% SMM:12-14 +Candidature Rejection Message SMM.22: 53% SMM:22-6 +canfield, cfscores - the solitaire card game canfield CANFIELD.6: 1% CANFIELD(6)-1 +Capricorn, AMPEX HP.4: 20% HP(4)-1 + " SMM.14: 60% SMM:14-9 + " UP.4: 24% UP(4)-1 +carbon copy MAIL.1: 68% MAIL(1)-4 + " USD.07: 11% USD:7-3 + " USD.07: 35% USD:7-9 + " USD.07: 35% USD:7-9 + " USD.09: 22% USD:9-3 +carbon copy recipients MAIL.1: 67% MAIL(1)-4 + " MAIL.1: 68% MAIL(1)-4 + " MAIL.1: 81% MAIL(1)-5 + " USD.07: 75% USD:7-18 +cards, punch BCD.6: 26% BCD(6)-1 +card, reference JOVE.N: 50% JOVE(1)-2 +Caret USD.23: 73% USD:23-9 +carriage control IOINIT.3F: 18% IOINIT(3F)-1 + " IOINIT.3F: 20% IOINIT(3F)-1 + " IOINIT.3F: 67% IOINIT(3F)-1 + " IOINIT.3F: 76% IOINIT(3F)-1 + " IOINIT.3F: 97% IOINIT(3F)-2 + " FPR.1: 19% FPR(1)-1 +carriage return SMM.12A: 51% SMM:12-12 + " SMM.12A: 86% SMM:12-20 +carriage return stripping FTP.1C: 11% FTP(1C)-2 +carriers, X.25 L_SYS.5: 24% L.SYS(5)-1 +carrier drop[s] SMM.13: 25% SMM:13-10 + " STTY.1: 87% STTY(1)-3 + " STTY.1: 89% STTY(1)-3 + " STTY.1: 90% STTY(1)-3 +carrier transition[s] SMM.13: 95% SMM:13-32 + " STTY.1: 85% STTY(1)-3 +case - Bourne shell command SH.1: 0% SH(1)-1 + " USD.03: 26% USD:3-6 + " SH.1: 12% SH(1)-1 + " USD.03: 27% USD:3-6 + " USD.03: 29% USD:3-7 +case command USD.04: 71% USD:4-35 +Case Conversion Command[s] USD.17: 28% USD:17-13 + " USD.17: 28% USD:17-12 +case constants PS1.01: 66% PS1:1-22 + " PS1.01: 66% PS1:1-22 + " PS2.06: 50% PS2:6-18 +case label[s] CSH.1: 51% CSH(1)-10 + " CSH.1: 52% CSH(1)-10 + " CSH.1: 72% CSH(1)-15 + " CSH.1: 72% CSH(1)-15 + " CSH.1: 72% CSH(1)-15 +case-character-capitalize USD.17: 60% USD:17-27 +case-ignore-search (variable) USD.17: 60% USD:17-27 +case-region-lower USD.17: 61% USD:17-27 +case-region-upper USD.17: 61% USD:17-27 +case-word-capitalize (ESC C) USD.17: 61% USD:17-27 +case-word-lower (ESC L) USD.17: 61% USD:17-28 +case-word-upper (ESC U) USD.17: 61% USD:17-28 +cassette, console SMM.01: 38% SMM:1-25 + " SMM.01: 38% SMM:1-25 +cassette, creating a boot floppy or SMM.01: 19% SMM:1-14 +cassette[s], TU58 SMM.01: 13% SMM:1-9 + " TU.4: 11% TU(4)-1 + " UU.4: 13% UU(4)-1 +casts LINT.1: 51% LINT(1)-1 +Casts, Type SMM.19: 30% SMM:19-9 +cat SMM.12A: 5% SMM:12-2 +cat - catenate and print CAT.1: 3% CAT(1)-1 +cat command USD.03: 27% USD:3-6 + " USD.04: 17% USD:4-8 + " USD.04: 18% USD:4-9 + " USD.04: 18% USD:4-9 + " CAT.1: 14% CAT(1)-1 + " CATMAN.8: 3% CATMAN(8)-1 + " USD.02: 15% USD:2-3 + " USD.02: 60% USD:2-7 + " USD.13: 71% USD:13-12 + " CAT.1: 17% CAT(1)-1 + " USD.13: 71% USD:13-12 + " USD.13: 72% USD:13-12 +cat command, example USD.01: 33% USD:1-5 +Catching interrupt[s] USD.04: 63% USD:4-31 +catman SMM.12A: 82% SMM:12-19 +catman - create the cat files for the manual CATMAN.8: 2% CATMAN(8)-1 +caught signals EXECVE.2: 34% EXECVE(2)-1 +cause a break USD.24: 36% USD:24-12 + " USD.25: 56% USD:25-9 +cb USD.17: 71% USD:17-33 + " SMM.12A: 5% SMM:12-2 +cb - C program beautifier CB.1: 16% +cbreak mode PS1.06: 89% PS1:6-38 + " PS1.18: 21% PS1:18-6 + " TTY.4: 35% TTY(4)-4 + " TTY.4: 45% TTY(4)-4 + " TTY.4: 48% TTY(4)-5 + " TTY.4: 69% TTY(4)-7 + " TTY.4: 69% TTY(4)-7 + " LIB2648.3X: 80% LIB2648(3X)-4 + " TSET.1: 62% TSET(1)-3 + " TTY.4: 12% TTY(4)-2 + " TTY.4: 16% TTY(4)-2 + " TTY.4: 71% TTY(4)-7 + " STTY.1: 17% STTY(1)-1 +cbreak() PS1.18: 43% PS1:18-12 +CC PS1.12: 67% PS1:12-6 + " PS1.12: 67% PS1:12-6 + " PS1.12: 98% PS1:12-9 + " PS1.12: 98% PS1:12-9 + " PS1.12: 99% PS1:12-9 +cbrt - cube root SQRT.3M: 6% SQRT(3M)-1 +Cc ERROR.1: 30% ERROR(1)-1 + " MH-MAIL.N: 66% MH-MAIL(5)-2 + " SMM.12A: 5% SMM:12-2 +Cc (see also carbon copies) MAIL.1: 67% MAIL(1)-4 + " SENDMAIL.8: 40% SENDMAIL(8)-2 + " USD.07: 10% USD:7-3 + " USD.07: 11% USD:7-3 + " USD.07: 35% USD:7-9 + " USD.07: 35% USD:7-9 + " USD.07: 37% USD:7-9 + " USD.07: 42% USD:7-11 + " USD.07: 43% USD:7-11 + " USD.09: 22% USD:9-3 + " SMM.07A: 23% SMM:07-12 + " SMM.07A: 67% SMM:07-28 +cc - C compiler CC.1: 0% CC(1)-1 +CC environment variable TERMCAP.5: 87% TERMCAP(5)-12 +cc: USD.08: 68% USD:8-83 +CCITT modems L-DEVICES.5: 50% L-DEVICES(5)-1 + " L_SYS.5: 51% L.SYS(5)-2 + " SMM.09: 69% SMM:9-15 +ccom ERROR.1: 30% ERROR(1)-1 +cd - Bourne shell command SH.1: 0% SH(1)-1 +cd - change working directory CD.1: 6% +cd command SH.1: 30% SH(1)-2 + " USD.03: 38% USD:3-9 + " USD.03: 39% USD:3-9 + " USD.04: 46% USD:4-21 + " USD.04: 48% USD:4-22 + " USD.04: 71% USD:4-35 + " CSH.1: 51% CSH(1)-10 +CDC 9730 partitions HP.4: 44% HP(4)-2 +CDC 9775 partitions HP.4: 41% HP(4)-2 +cdpath shell variable CSH.1: 52% CSH(1)-10 + " CSH.1: 79% CSH(1)-17 + " CD.1: 83% +Cedilla USD.23: 73% USD:23-9 + " MS.7: 94% MS(7)-3 + " USD.21: 80% USD:21-3 +ceil - ceiling function FLOOR.3M: 4% FLOOR(3M)-1 +cell, cons PS2.09: 7% PS2:9-10 + " PS2.09: 8% PS2:9-14 + " PS2.09: 50% PS2:9-88 +cell, function PS2.09: 63% PS2:9-108 + " PS2.09: 64% PS2:9-108 + " PS2.09: 64% PS2:9-108 + " PS2.09: 64% PS2:9-108 + " PS2.09: 65% PS2:9-111 +cell, list PS2.09: 3% PS2:9-7 + " PS2.09: 4% PS2:9-8 + " PS2.09: 5% PS2:9-9 + " PS2.09: 5% PS2:9-9 + " PS2.09: 5% PS2:9-9 + " PS2.09: 5% PS2:9-9 + " PS2.09: 7% PS2:9-10 + " PS2.09: 7% PS2:9-10 + " PS2.09: 7% PS2:9-10 + " PS2.09: 8% PS2:9-13 + " PS2.09: 8% PS2:9-14 + " PS2.09: 8% PS2:9-15 + " PS2.09: 9% PS2:9-15 + " PS2.09: 9% PS2:9-15 + " PS2.09: 10% PS2:9-17 + " PS2.09: 10% PS2:9-18 + " PS2.09: 10% PS2:9-19 + " PS2.09: 17% PS2:9-32 + " PS2.09: 18% PS2:9-35 + " PS2.09: 18% PS2:9-35 + " PS2.09: 19% PS2:9-37 + " PS2.09: 30% PS2:9-57 + " PS2.09: 53% PS2:9-93 + " PS2.09: 53% PS2:9-93 +cell, value PS2.09: 5% PS2:9-9 + " PS2.09: 5% PS2:9-9 + " PS2.09: 5% PS2:9-9 + " PS2.09: 10% PS2:9-19 + " PS2.09: 16% PS2:9-30 + " PS2.09: 19% PS2:9-38 + " PS2.09: 62% PS2:9-106 + " PS2.09: 64% PS2:9-108 + " PS2.09: 65% PS2:9-111 + " PS2.09: 65% PS2:9-111 + " PS2.09: 65% PS2:9-111 +CFLAGS PS1.12: 31% PS1:12-3 + " PS1.12: 68% PS1:12-6 + " PS1.12: 98% PS1:12-9 + " PS1.12: 98% PS1:12-9 + " PS1.12: 99% PS1:12-9 + " PS1.12: 68% PS1:12-6 +center - center the table USD.28: 9% USD:28-2 +center input line USD.24: 37% USD:24-13 +centered, list USD.22: 34% USD:22-6 +centered block USD.22: 38% USD:22-7 + " USD.22: 38% USD:22-7 + " USD.22: 36% USD:22-7 +centered block, .(c Begin USD.23: 34% USD:23-5 +centered column entry USD.28: 13% USD:28-3 +centered text USD.22: 22% USD:22-4 +Centering USD.24: 33% USD:24-12 + " USD.24: 7% USD:24-3 + " USD.26: 43% USD:26-4 +cf file LPD.8: 35% LPD(8)-1 + " SMM.07A: 74% SMM:07-32 +CFLAGS MAKE.1: 55% MAKE(1)-2 +cgram.y SMM.19: 20% SMM:19-6 +CH center heading USD.20: 72% USD:20-5 +chaining, block SMM.14: 73% SMM:14-11 +change[s], history of PS1.13: 2% PS1:13-1 +change history PS1.13: 6% PS1:13-2 +changequote PS1.17: 40% PS1:17-3 +changes, discarding USD.15: 63% USD:15-18 + " USD.15: 64% USD:15-18 + " USD.16: 47% USD:16-9 +change[s], Font USD.24: 29% USD:24-10 +change[s], line speed TIP.1C: 24% TIP(1C)-1 +change[s], Size USD.20: 47% USD:20-4 +change[s], uucp implementation SMM.09: 35% SMM:9-8 +change command ED.1: 43% ED(1)-3 + " USD.12: 69% USD:12-7 + " USD.14: 68% USD:14-17 + " USD.14: 69% USD:14-17 + " USD.14: 69% USD:14-17 + " USD.16: 36% USD:16-7 +Change directory USD.04: 45% USD:4-20 +change line[s] USD.18: 49% USD:18-5 +change log CO.N: 73% CO(1)-3 + " RCS.N: 4% RCS(1)-1 +change mode CHMOD.1: 2% CHMOD(1)-1 + " CHMOD.2: 1% CHMOD(2)-1 + " CHMOD.3F: 9% CHMOD(3F)-1 +change size USD.27: 37% USD:27-5 +change the size of a file system RESTORE.8: 15% RESTORE(8)-1 +Change the trap position USD.24: 51% USD:24-17 +Changes in 4.3BSD, Bug Fixes and SMM.12A: 0% SMM:12-2 + " SMM.12A: 2% SMM:12-2 + " SMM.12A: 6% SMM:12-2 + " SMM.12A: 12% SMM:12-4 + " SMM.12A: 16% SMM:12-4 + " SMM.12A: 21% SMM:12-6 + " SMM.12A: 27% SMM:12-6 + " SMM.12A: 32% SMM:12-8 + " SMM.12A: 36% SMM:12-8 + " SMM.12A: 41% SMM:12-10 + " SMM.12A: 46% SMM:12-10 + " SMM.12A: 50% SMM:12-12 + " SMM.12A: 54% SMM:12-12 + " SMM.12A: 58% SMM:12-14 + " SMM.12A: 62% SMM:12-14 + " SMM.12A: 67% SMM:12-16 + " SMM.12A: 71% SMM:12-16 + " SMM.12A: 75% SMM:12-18 + " SMM.12A: 79% SMM:12-18 + " SMM.12A: 83% SMM:12-20 + " SMM.12A: 87% SMM:12-20 + " SMM.12A: 92% SMM:12-22 + " SMM.12A: 96% SMM:12-22 +Changes in Interprocess Communication SMM.13: 33% SMM:13-12 +Changes in terminal multiplexor handling SMM.13: 94% SMM:13-32 +Changes in the filesystem SMM.13: 27% SMM:13-10 +changes in the kernel network support SMM.13: 58% SMM:13-20 +Changes in the terminal line discipline SMM.13: 24% SMM:13-9 +Changes to the Kernel in 4.3BSD SMM.13: 0% unknown +Changes to uucico SMM.09: 43% SMM:9-10 +Changing line[s] USD.14: 68% USD:14-17 +Changing the Name of a File USD.13: 66% USD:13-12 +channel[s], wait SMM.15: 19% SMM:15-7 + " SMM.12A: 43% SMM:12-10 +chapter, references at the end of a USD.29: 44% USD:29-5 +chapter name USD.22: 69% USD:22-13 +chapter number[s] USD.22: 69% USD:22-13 + " USD.23: 18% USD:23-3 + " USD.23: 62% USD:23-8 + " USD.23: 64% USD:23-8 +chapter title[s] ME.7: 43% ME(7)-2 + " MS.7: 24% MS(7)-1 + " USD.21: 35% USD:21-2 + " USD.23: 65% USD:23-8 +Character[s] USD.17: 81% USD:17-38 +character[s], ASCII PS2.03: 99% PS2:3-16 + " PS2.04: 60% PS2:4-6 + " PS2.09: 48% PS2:9-85 + " PS2.10: 36% PS2:10-32 +character, comment PS2.07: 27% PS2:7-14 + " PS2.09: 26% PS2:9-50 + " PS2.09: 41% PS2:9-73 + " PS2.09: 53% PS2:9-93 +character[s], alphabetic USD.08: 26% USD:8-28 +character[s], alphanumeric CTYPE.3: 49% CTYPE(3)-1 +character[s], ASCII CTYPE.3: 78% CTYPE(3)-1 + " OD.1: 22% OD(1)-1 + " TTY.4: 41% TTY(4)-4 + " USD.17: 4% USD:17-2 + " USD.24: 24% USD:24-9 + " USD.24: 24% USD:24-9 +character, backslash USD.12: 83% USD:12-9 + " USD.18: 45% USD:18-5 + " USD.22: 53% USD:22-10 + " USD.25: 9% USD:25-2 +character, Backspace EXPAND.1: 29% EXPAND(1)-1 + " SMM.20: 23% SMM:20-2 + " TSET.1: 49% TSET(1)-2 +character, break STTY.1: 38% STTY(1)-2 +character, comment SMM.12A: 47% SMM:12-11 +character[s], control PS1.03: 23% PS1:3-4 + " PS1.06: 91% PS1:6-38 + " PS1.16: 29% PS1:16-4 + " PS2.03: 99% PS2:3-16 + " PS2.03: 99% PS2:3-16 + " PS2.04: 60% PS2:4-6 + " PS2.10: 36% PS2:10-32 + " PS2.10: 89% PS2:10-79 + " PS2.10: 89% PS2:10-79 + " SMM.12A: 31% SMM:12-7 +character[s], conversion PRINTF.3S: 63% PRINTF(3S)-2 + " SCANF.3S: 23% SCANF(3S)-1 + " SCANF.3S: 30% SCANF(3S)-1 + " SCANF.3S: 33% SCANF(3S)-1 + " SCANF.3S: 71% SCANF(3S)-2 + " SCANF.3S: 74% SCANF(3S)-2 + " SCANF.3S: 77% SCANF(3S)-2 +character, default erase TSET.1: 47% TSET(1)-2 +character, delayed suspend process STTY.1: 94% STTY(1)-3 +character, delimiting USD.18: 58% USD:18-6 + " USD.18: 59% USD:18-6 + " USD.18: 59% USD:18-6 +character, end of file STTY.1: 37% STTY(1)-2 +character, eof TELNET.1C: 70% TELNET(1C)-3 + " TELNET.1C: 70% TELNET(1C)-3 + " TELNET.1C: 98% TELNET(1C)-4 +Character, Erase TELNET.1C: 42% TELNET(1C)-2 + " GETTYTAB.5: 94% GETTYTAB(5)-3 + " STTY.1: 26% STTY(1)-1 + " TSET.1: 3% TSET(1)-1 + " TSET.1: 48% TSET(1)-2 + " TTY.4: 22% TTY(4)-3 + " USD.01: 15% USD:1-3 +character[s], escape CSH.1: 11% CSH(1)-2 + " MAIL.1: 66% MAIL(1)-4 + " MAIL.1: 77% MAIL(1)-5 + " PS1.15: 11% PS1:15-3 + " PS1.15: 12% PS1:15-3 + " PS2.08: 62% PS2:8-9 + " PS2.09: 13% PS2:9-25 + " PS2.09: 13% PS2:9-25 + " PS2.09: 25% PS2:9-50 + " PS2.09: 25% PS2:9-50 + " PS2.09: 25% PS2:9-50 + " PS2.09: 26% PS2:9-50 + " PS2.09: 39% PS2:9-69 + " RLOGIN.1C: 74% RLOGIN(1C)-1 + " RLOGIN.1C: 87% RLOGIN(1C)-1 + " TIP.1C: 69% TIP(1C)-3 + " TN3270.1: 73% TN3270(1)-1 + " USD.07: 39% USD:7-10 + " USD.07: 76% USD:7-18 + " USD.07: 76% USD:7-18 + " USD.24: 18% USD:24-8 + " USD.24: 58% USD:24-19 + " USD.24: 58% USD:24-19 + " USD.24: 58% USD:24-19 + " USD.24: 58% USD:24-19 + " USD.24: 58% USD:24-19 + " WINDOW.1: 11% WINDOW(1)-1 + " WINDOW.1: 20% WINDOW(1)-2 + " WINDOW.1: 77% WINDOW(1)-6 + " WINDOW.1: 77% WINDOW(1)-6 + " SMM.12A: 45% SMM:12-10 + " SMM.12A: 50% SMM:12-12 +character, field USD.31: 78% USD:31-12 +character[s], flush TELNET.1C: 61% TELNET(1C)-3 + " TELNET.1C: 61% TELNET(1C)-3 +character, flush output STTY.1: 96% STTY(1)-3 +character[s], greek USD.24: 97% USD:24-33 +character[s], Interrupt STTY.1: 32% STTY(1)-1 + " TSET.1: 52% TSET(1)-2 + " TTY.4: 47% TTY(4)-5 +character[s], input PS1.04: 58% PS1:4-30 + " PS1.04: 58% PS1:4-30 + " PS1.04: 58% PS1:4-30 + " PS1.04: 58% PS1:4-30 + " PS1.06: 30% PS1:6-14 + " PS1.06: 91% PS1:6-38 + " PS1.15: 54% PS1:15-16 + " PS1.16: 47% PS1:16-6 + " PS1.16: 58% PS1:16-7 + " PS2.03: 4% PS2:3-2 + " PS2.03: 91% PS2:3-15 + " PS2.08: 45% PS2:8-7 +character, kill GETTYTAB.5: 94% GETTYTAB(5)-3 + " MAIL.1: 71% MAIL(1)-5 + " MORE.1: 65% MORE(1)-2 + " STTY.1: 26% STTY(1)-1 + " TELNET.1C: 67% TELNET(1C)-3 + " TELNET.1C: 68% TELNET(1C)-3 + " TELNET.1C: 74% TELNET(1C)-3 + " TSET.1: 3% TSET(1)-1 + " TSET.1: 51% TSET(1)-2 + " TTY.4: 22% TTY(4)-3 + " TTY.4: 25% TTY(4)-3 + " USD.04: 4% USD:4-3 + " USD.04: 5% USD:4-3 + " USD.04: 5% USD:4-3 + " USD.04: 97% USD:4-44 + " USD.15: 5% USD:15-2 + " USD.15: 70% USD:15-20 + " USD.15: 89% USD:15-25 +character, leader repetition USD.24: 57% USD:24-18 +characters, Interrupt PS1.06: 89% PS1:6-38 + " PS1.06: 89% PS1:6-38 + " PS1.06: 90% PS1:6-38 +character[s], literal PS1.06: 91% PS1:6-38 + " PS1.13: 16% PS1:13-3 + " PS1.15: 6% PS1:15-2 + " PS1.15: 24% PS1:15-7 + " PS2.10: 28% PS2:10-27 +character, macro PS2.09: 53% PS2:9-94 + " PS2.09: 53% PS2:9-94 + " PS2.09: 53% PS2:9-94 + " PS2.09: 53% PS2:9-94 + " PS2.09: 54% PS2:9-95 +character, new-line PS1.01: 5% PS1:1-2 + " PS1.04: 58% PS1:4-30 + " PS1.04: 58% PS1:4-30 +character, null PS1.02: 20% PS1:2-8 + " PS2.03: 84% PS2:3-14 + " PS2.03: 88% PS2:3-14 +character, quote PS1.01: 6% PS1:1-3 + " PS1.17: 39% PS1:17-3 + " PS1.17: 39% PS1:17-3 +character[s], significant PS2.10: 27% PS2:10-26 +character, tab PS1.02: 17% PS1:2-7 + " PS1.03: 56% PS1:3-7 + " PS1.16: 21% PS1:16-3 + " PS2.10: 74% PS2:10-65 + " PS2.10: 82% PS2:10-75 +character, type PS1.02: 35% PS1:2-12 + " PS1.02: 41% PS1:2-14 + " PS1.02: 59% PS1:2-20 + " PS1.02: 74% PS1:2-25 +character array[s] PS1.01: 59% PS1:1-19 + " PS1.02: 54% PS1:2-18 + " PS1.02: 65% PS1:2-22 + " PS2.03: 88% PS2:3-14 + " PS2.03: 89% PS2:3-14 + " PS2.03: 94% PS2:3-15 +character assignment PS1.02: 60% PS1:2-20 + " PS1.02: 60% PS1:2-20 + " PS1.02: 60% PS1:2-20 +character attributes PS2.10: 5% PS2:10-7 + " PS2.10: 40% PS2:10-35 + " PS2.10: 84% PS2:10-76 +character class PS1.16: 11% PS1:16-2 + " PS1.16: 27% PS1:16-4 + " PS1.16: 28% PS1:16-4 + " PS2.09: 48% PS2:9-85 + " PS2.09: 49% PS2:9-87 + " PS2.09: 49% PS2:9-87 + " PS2.09: 49% PS2:9-87 + " PS2.09: 49% PS2:9-87 + " PS2.09: 49% PS2:9-87 + " PS2.09: 49% PS2:9-87 + " PS2.09: 51% PS2:9-90 + " PS2.09: 51% PS2:9-90 +Character classes PS1.16: 26% PS1:16-4 + " PS1.16: 28% PS1:16-4 + " PS1.16: 32% PS1:16-4 + " PS1.16: 94% PS1:16-12 + " PS2.09: 48% PS2:9-85 + " PS2.09: 50% PS2:9-87 + " PS2.09: 54% PS2:9-95 +Character Constants PS1.01: 4% PS1:1-2 + " PS1.01: 6% PS1:1-3 + " PS1.01: 20% PS1:1-7 + " PS1.01: 78% PS1:1-26 + " PS1.01: 78% PS1:1-26 + " PS1.01: 91% PS1:1-31 + " PS1.01: 93% PS1:1-31 + " PS1.02: 17% PS1:2-7 + " PS1.02: 55% PS1:2-19 + " PS1.02: 58% PS1:2-19 + " PS1.02: 66% PS1:2-22 + " PS1.02: 66% PS1:2-22 + " PS1.02: 67% PS1:2-22 + " PS1.04: 33% PS1:4-18 + " PS1.09: 70% PS1:9-8 + " PS2.10: 43% PS2:10-37 +character device[s] PS1.06: 61% PS1:6-28 + " PS2.04: 51% PS2:4-5 + " PS2.04: 54% PS2:4-6 + " PS2.04: 59% PS2:4-6 + " PS2.04: 62% PS2:4-6 + " PS2.05: 8% PS2:5-1 + " PS2.05: 23% PS2:5-2 + " PS2.05: 27% PS2:5-2 + " PS2.05: 82% PS2:5-6 +character domain[s] PS2.10: 7% PS2:10-8 + " PS2.10: 8% PS2:10-9 + " PS2.10: 83% PS2:10-76 +character expression[s] PS1.02: 59% PS1:2-20 + " PS1.02: 65% PS1:2-22 + " PS2.06: 28% PS2:6-11 + " PS2.06: 28% PS2:6-11 +character fields PS2.10: 23% PS2:10-23 + " PS2.10: 91% PS2:10-82 + " PS2.10: 91% PS2:10-82 +character I/O system PS2.04: 41% PS2:4-4 + " PS2.04: 50% PS2:4-5 + " PS2.04: 50% PS2:4-5 +character macro[s] PS2.09: 1% PS2:9-3 + " PS2.09: 49% PS2:9-87 + " PS2.09: 52% PS2:9-92 + " PS2.09: 52% PS2:9-92 + " PS2.09: 52% PS2:9-92 + " PS2.09: 52% PS2:9-92 + " PS2.09: 52% PS2:9-92 + " PS2.09: 54% PS2:9-95 + " PS2.09: 57% PS2:9-99 +character pointer PS1.06: 6% PS1:6-5 + " PS1.09: 36% PS1:9-4 + " PS1.09: 37% PS1:9-4 + " PS2.03: 32% PS2:3-6 + " PS2.03: 88% PS2:3-14 +character position[s] PS1.03: 45% PS1:3-6 +character queue[s] PS2.04: 57% PS2:4-6 + " PS2.04: 59% PS2:4-6 + " PS2.05: 39% PS2:5-3 +character set PS1.01: 4% PS1:1-2 + " PS1.01: 9% PS1:1-4 + " PS1.01: 9% PS1:1-4 + " PS1.01: 13% PS1:1-5 + " PS1.04: 88% PS1:4-45 + " PS1.04: 88% PS1:4-45 + " PS1.15: 24% PS1:15-7 + " PS1.16: 48% PS1:16-6 + " PS1.16: 49% PS1:16-6 + " PS1.16: 89% PS1:16-12 + " PS2.04: 96% PS2:4-9 + " PS2.06: 32% PS2:6-12 + " PS2.08: 65% PS2:8-9 +Character value[s] PS2.10: 5% PS2:10-7 + " PS2.10: 5% PS2:10-7 + " PS2.10: 39% PS2:10-34 + " PS2.10: 39% PS2:10-34 + " PS2.10: 45% PS2:10-38 + " PS2.10: 45% PS2:10-38 + " PS2.10: 45% PS2:10-38 + " PS2.10: 58% PS2:10-50 + " PS2.10: 84% PS2:10-77 + " PS2.10: 84% PS2:10-77 + " PS2.10: 84% PS2:10-77 + " PS2.10: 84% PS2:10-77 + " PS2.10: 84% PS2:10-77 + " PS2.10: 92% PS2:10-82 + " PS2.10: 92% PS2:10-82 + " PS2.10: 92% PS2:10-82 +character variables PS1.01: 9% PS1:1-4 + " PS1.02: 53% PS1:2-18 + " PS1.02: 54% PS1:2-18 + " PS1.02: 54% PS1:2-18 + " PS1.02: 72% PS1:2-24 + " PS2.06: 80% PS2:6-28 +characteristics, terminal PS1.18: 15% PS1:18-5 + " PS1.18: 59% PS1:18-17 +characters, line editing PROMPTER.N: 65% PROMPTER(1)-1 + " REBOOT.8: 75% REBOOT(8)-2 + " USD.08: 44% USD:8-52 + " WINDOW.1: 40% WINDOW(1)-3 +character, line kill MORE.1: 84% MORE(1)-3 + " TSET.1: 50% TSET(1)-2 + " TSET.1: 98% TSET(1)-4 + " USD.04: 25% USD:4-11 + " USD.13: 19% USD:13-4 +character[s], list of vi control USD.15: 77% USD:15-22 +character, literal next STTY.1: 97% STTY(1)-3 +character[s], macro USD.15: 83% USD:15-23 + " USD.15: 88% USD:15-25 +character[s], new-line CRON.8: 88% CRON(8)-1 + " MKSTR.1: 56% MKSTR(1)-1 + " MKSTR.1: 61% MKSTR(1)-1 + " USD.05: 8% USD:5-1 + " USD.16: 72% USD:16-14 +character, nobreak control USD.24: 61% USD:24-20 +characters, Non-ascii CAT.1: 69% CAT(1)-1 + " ED.1: 95% ED(1)-5 + " USD.10: 88% USD:10-11 + " USD.16: 33% USD:16-6 + " USD.24: 96% USD:24-33 +characters, non-graphic ED.1: 58% ED(1)-4 + " LS.1: 53% LS(1)-1 + " OD.1: 23% OD(1)-1 +character[s], non-printing COL.1: 89% COL(1)-1 + " USD.14: 34% USD:14-9 + " USD.14: 34% USD:14-9 + " USD.16: 45% USD:16-9 + " USD.28: 15% USD:28-3 +character[s], non-white USD.15: 41% USD:15-12 + " USD.15: 41% USD:15-12 + " USD.15: 84% USD:15-24 + " USD.15: 85% USD:15-24 + " USD.15: 90% USD:15-25 + " USD.15: 90% USD:15-25 + " USD.16: 66% USD:16-13 + " USD.16: 79% USD:16-15 +character[s], nonprinting USD.13: 7% USD:13-2 + " USD.15: 31% USD:15-9 +character[s], output SMM.20: 46% SMM:20-4 + " TTY.4: 10% TTY(4)-2 + " USD.01: 15% USD:1-3 +character[s], pad TERMCAP.3X: 91% TERMCAP(3X)-2 + " TERMCAP.5: 88% TERMCAP(5)-12 +Character[s], Prefix USD.17: 6% USD:17-3 + " USD.17: 6% USD:17-3 + " USD.17: 6% USD:17-3 + " USD.17: 6% USD:17-3 + " USD.17: 6% USD:17-3 +character[s], printable USD.24: 24% USD:24-9 +characters, printable ASCII TIP.1C: 85% TIP(1C)-3 +character[s], printing CTYPE.3: 62% CTYPE(3)-1 +character, prompt USD.01: 8% USD:1-2 +character, punctuation CTYPE.3: 57% CTYPE(3)-1 + " ED.1: 68% ED(1)-4 + " USD.17: 98% USD:17-47 +character, Quit STTY.1: 33% STTY(1)-1 +character[s], quote USD.22: 96% USD:22-18 +character, reprint line STTY.1: 95% STTY(1)-3 +characters, shell SMM.09: 10% SMM:9-3 + " SMM.09: 13% SMM:9-4 + " UUCP.1C: 85% UUCP(1C)-2 + " UUX.1C: 29% UUX(1C)-1 +Character[s], Special USD.12: 56% USD:12-6 + " USD.12: 67% USD:12-7 + " USD.12: 81% USD:12-9 + " USD.14: 78% USD:14-19 + " USD.23: 72% USD:23-9 + " USD.25: 21% USD:25-4 + " SMM.20: 45% SMM:20-4 +character[s], start RLOGIN.1C: 67% RLOGIN(1C)-1 + " STTY.1: 23% STTY(1)-1 + " STTY.1: 71% STTY(1)-2 + " STTY.1: 73% STTY(1)-2 + " TTY.4: 41% TTY(4)-4 + " TTY.4: 43% TTY(4)-4 + " TTY.4: 72% TTY(4)-7 + " STTY.1: 34% STTY(1)-1 +character[s], stop PTY.4: 48% PTY(4)-1 + " STTY.1: 22% STTY(1)-1 + " TTY.4: 41% TTY(4)-4 + " TTY.4: 42% TTY(4)-4 + " TTY.4: 42% TTY(4)-4 + " TTY.4: 42% TTY(4)-4 + " TTY.4: 72% TTY(4)-7 + " STTY.1: 36% STTY(1)-2 +character, suspend process STTY.1: 93% STTY(1)-3 +character, tab repetition USD.24: 57% USD:24-18 +character[s], tall USD.24: 65% USD:24-21 +character[s], tr - translate TR.1: 3% TR(1)-1 +characters, trailing USD.31: 76% USD:31-12 +character[s], transposing two USD.17: 30% USD:17-14 +character[s], troff naming conventions for USD.24: 96% USD:24-33 +character[s], type SMM.01: 51% SMM:1-32 + " TOPEN.3F: 56% TOPEN(3F)-1 +character, underscore CSH.1: 31% CSH(1)-6 + " USD.17: 96% USD:17-47 +character[s], unprintable INVERT.N: 97% INVERT(1)-2 + " SA.8: 44% SA(8)-1 + " TIP.1C: 60% TIP(1C)-2 +character, word erase STTY.1: 97% STTY(1)-3 +character, write a PUTC.3F: 9% PUTC(3F)-1 + " PUTC.3S: 6% PUTC(3S)-1 +character array[s] SCANF.3S: 50% SCANF(3S)-1 + " SCANF.3S: 71% SCANF(3S)-2 + " SMM.19: 34% SMM:19-10 +Character Constants SMM.19: 96% SMM:19-26 +character count[s] MAIL.1: 57% MAIL(1)-4 + " USD.12: 17% USD:12-2 +character device[s] INTRO.4: 23% INTRO(4)-1 + " PTY.4: 5% PTY(4)-1 + " SMM.01: 9% SMM:1-6 +character generator service INETD.8: 84% INETD(8)-2 +character motion[s] USD.15: 29% USD:15-8 +character pointer[s] DBX.1: 72% DBX(1)-5 + " PRINTF.3S: 79% PRINTF(3S)-2 + " SMM.19: 35% SMM:19-10 +character representation[s] SMM.20: 43% SMM:20-4 +character set USD.24: 23% USD:24-9 + " USD.24: 23% USD:24-9 + " USD.26: 26% USD:26-2 +Character size USD.24: 26% USD:24-9 + " USD.24: 28% USD:24-10 + " USD.24: 38% USD:24-13 + " USD.25: 13% USD:25-3 + " USD.26: 49% USD:26-4 +character special file FIND.1: 32% FIND(1)-1 + " IOCTL.2: 25% IOCTL(2)-1 + " MKNOD.2: 20% unknown +Character String SCANF.3S: 40% SCANF(3S)-1 +character translation TR.1: 3% TR(1)-1 + " USD.24: 9% USD:24-4 + " USD.24: 57% USD:24-19 +character width SMM.20: 52% SMM:20-5 +character-to-octal-insert USD.17: 62% USD:17-28 +character-type special file LS.1: 62% LS(1)-2 +characters with descender[s] USD.24: 65% USD:24-21 +characters written ED.1: 84% ED(1)-5 + " USD.16: 59% USD:16-11 +chart of JOVE command[s] USD.17: 64% USD:17-29 +chat script L_SYS.5: 66% L.SYS(5)-3 + " SMM.09: 73% SMM:9-16 +chdir - change current working directory CHDIR.2: 3% CHDIR(2)-1 +chdir - change default directory CHDIR.3F: 9% CHDIR(3F)-1 +chdir command CSH.1: 79% CSH(1)-17 + " USD.04: 71% USD:4-35 + " USD.04: 75% USD:4-36 + " USD.04: 81% USD:4-39 + " USD.07: 54% USD:7-13 + " CSH.1: 51% CSH(1)-10 +chdir(path) PS1.06: 58% PS1:6-27 +check[s], Access ACCESS.2: 16% ACCESS(2)-1 + " ACCESS.3F: 22% ACCESS(3F)-1 + " INTRO.2: 73% INTRO(2)-6 + " INTRO.2: 90% INTRO(2)-7 +check, automatic consistency REBOOT.2: 38% REBOOT(2)-1 + " REBOOT.8: 21% REBOOT(8)-1 + " REBOOT.8: 37% REBOOT(8)-1 +check[s], consistency CRASH.8V: 11% CRASH(8V)-1 + " FSCK.8: 57% FSCK(8)-1 + " REBOOT.2: 65% REBOOT(2)-1 + " SMM.05: 1% SMM:5-2 + " SMM.05: 4% SMM:5-3 + " SMM.15: 59% SMM:15-18 + " VIPW.8: 64% VIPW(8)-1 +check, machine CRASH.8V: 57% CRASH(8V)-2 + " CRASH.8V: 98% CRASH(8V)-3 + " IK.4: 89% IK(4)-1 + " SMM.02: 60% SMM:2-18 + " SMM.13: 56% SMM:13-19 +check out RCS revisions CO.N: 0% CO(1)-1 +check portability LINT.1: 38% LINT(1)-1 +check the consistency of the /usr file system SMM.01: 23% SMM:1-16 +checked-in revision CI.N: 36% CI(1)-1 + " CI.N: 71% CI(1)-2 + " CI.N: 73% CI(1)-2 + " PS1.13: 27% PS1:13-5 + " PS1.13: 32% PS1:13-6 + " PS1.13: 33% PS1:13-6 +Checker, Lint, a C Program PS1.09: 0% +checkeq EQN.1: 3% EQN(1)-1 +checkgroups control message SMM.10: 11% SMM:10-3 + " SMM.10: 31% SMM:10-9 + " SMM.10: 36% SMM:10-10 +checkin RCSINTRO.N: 51% unknown +checkin date/time CO.N: 30% CO(1)-1 + " PS1.13: 40% PS1:13-8 + " PS1.13: 43% PS1:13-8 + " PS1.13: 91% PS1:13-20 + " RLOG.N: 34% RLOG(1)-1 +checking, Free block SMM.05: 25% SMM:5-6 +Checking, Spelling USD.17: 50% USD:17-22 +checking, Super-block SMM.05: 24% SMM:5-6 +checking, Type PS1.04: 85% PS1:4-43 + " PS1.09: 2% PS1:9-1 + " PS1.09: 31% PS1:9-4 +Checking accessibility PS1.06: 69% PS1:6-31 +checking, Type STAB.5: 91% STAB(5)-2 +Checking and Correcting Spelling USD.17: 30% USD:17-14 +Checking for New Note[s] USD.11: 97% USD:11-15 +Checking the data associated with an inode SMM.05: 35% SMM:5-7 +checking the file systems FASTBOOT.8: 49% +Checking the inode state SMM.05: 27% SMM:5-6 +checknew[s] USD.09: 15% USD:9-2 + " USD.09: 52% USD:9-6 +checknr USD.29: 38% USD:29-4 + " SMM.12A: 12% SMM:12-4 +checknr - check nroff/troff files CHECKNR.1: 2% CHECKNR(1)-1 +checkout RCSINTRO.N: 68% unknown +checkquota SMM.12A: 82% SMM:12-19 +CHECKSUM DUMP.5: 68% DUMP(5)-2 + " SUM.1: 31% unknown +Cherry, L. L. BC.1: 91% BC(1)-2 +Cherry, Lorinda L. USD.26: 0% USD:26-1 + " USD.27: 0% USD:27-1 +chfn SMM.12A: 12% SMM:12-4 +chfn, chsh, passwd - change password file information PASSWD.1: 2% PASSWD(1)-1 +chgrp INSTALL.1: 89% unknown + " SMM.12A: 12% SMM:12-4 +chgrp - change group ownership of files CHGRP.1: 6% CHGRP(1)-1 +Chicago University Press USD.29: 91% USD:29-9 +child process[s] PS1.06: 9% PS1:6-7 + " PS1.06: 9% PS1:6-7 + " PS1.07a: 27% PS1:7-7 + " PS1.08: 66% PS1:8-26 + " PS1.08: 66% PS1:8-26 + " PS2.01: 53% PS2:1-8 + " PS2.01: 53% PS2:1-8 + " PS2.01: 56% PS2:1-8 + " PS2.01: 71% PS2:1-11 + " PS2.01: 71% PS2:1-11 + " PS2.01: 78% PS2:1-12 + " PS2.03: 54% PS2:3-9 + " PS2.03: 60% PS2:3-9 + " PS2.03: 62% PS2:3-10 + " PS2.03: 62% PS2:3-10 + " PS2.04: 19% PS2:4-3 + " PS2.04: 21% PS2:4-3 + " PS2.09: 42% PS2:9-75 +child, terminated WAIT.2: 19% WAIT(2)-1 +child process CSH.1: 65% CSH(1)-14 + " FORK.2: 10% FORK(2)-1 + " FORK.2: 15% FORK(2)-1 + " FORK.2: 17% FORK(2)-1 + " FORK.2: 23% FORK(2)-1 + " FORK.2: 37% FORK(2)-1 + " FORK.2: 57% FORK(2)-1 + " FORK.2: 65% FORK(2)-1 + " FORK.2: 72% FORK(2)-1 + " GETRUSAGE.2: 6% GETRUSAGE(2)-1 + " GETRUSAGE.2: 97% GETRUSAGE(2)-2 + " NICE.3C: 59% NICE(3C)-1 + " PTRACE.2: 5% PTRACE(2)-1 + " PTRACE.2: 23% PTRACE(2)-1 + " SH.1: 90% SH(1)-6 + " SMM.13: 18% SMM:13-7 + " TTY.4: 5% TTY(4)-1 + " UMASK.2: 74% UMASK(2)-1 + " USD.03: 84% USD:3-21 + " WAIT.2: 14% WAIT(2)-1 + " WAIT.2: 26% WAIT(2)-1 + " WAIT.2: 34% WAIT(2)-1 + " WAIT.2: 75% WAIT(2)-1 + " WAIT.2: 78% WAIT(2)-1 + " WAIT.3F: 33% WAIT(3F)-1 +child status has changed SIGNAL.3C: 30% SIGNAL(3C)-1 +ching - the book of changes and other cookies CHING.6: 1% CHING(6)-1 +Chmod SMM.10: 78% SMM:10-19 + " INSTALL.1: 90% unknown + " STAT.2: 48% STAT(2)-2 + " SMM.12A: 13% SMM:12-4 +chmod - change mode of a file CHMOD.3F: 8% CHMOD(3F)-1 +chmod - change mode of file CHMOD.1: 2% CHMOD(1)-1 + " CHMOD.2: 1% CHMOD(2)-1 +Choosing Notes & Response[s] USD.11: 29% USD:11-5 +chmod(path, mode) PS1.06: 65% PS1:6-30 +chown INSTALL.1: 94% unknown + " STAT.2: 48% STAT(2)-2 + " SMM.12A: 82% SMM:12-19 +chown - change owner and group of a file CHOWN.2: 2% CHOWN(2)-1 +chown - change owner and group of files CHOWN.8: 5% CHOWN(8)-1 +chown(path, owner, group) PS1.06: 65% PS1:6-29 +chroot FTPD.8C: 70% FTPD(8C)-2 +chroot - change root directory CHROOT.2: 3% CHROOT(2)-1 +chroot(path) PS1.06: 58% PS1:6-27 +chsh SMM.12A: 13% SMM:12-4 +chsh - change login shell PASSWD.1: 2% PASSWD(1)-1 +chsh command USD.04: 71% USD:4-35 +ci - check in RCS revision[s] PS1.13: 21% PS1:13-4 +ci - check in RCS revisions CI.N: 0% CI(1)-1 +cifplot LPD.8: 59% LPD(8)-2 + " LPR.1: 32% LPR(1)-1 +circle PLOT.3F: 24% PLOT(3F)-1 + " PLOT.3X: 11% PLOT(3X)-1 + " USD.23: 73% USD:23-10 +Circumflex MS.7: 93% MS(7)-3 + " USD.13: 21% USD:13-4 + " USD.21: 80% USD:21-3 + " USD.26: 33% USD:26-3 +circuit, connection-based virtual PS1.06: 75% PS1:6-33 +circuit, virtual PS1.06: 74% PS1:6-33 + " PS1.06: 75% PS1:6-33 + " PS1.06: 84% PS1:6-36 +circumflex ^ USD.12: 84% USD:12-9 +citation[s] BIB.N: 6% BIB(1)-1 + " REFER.1: 10% REFER(1)-1 +citations, contiguous USD.31: 52% USD:31-9 + " USD.31: 53% USD:31-9 +citation[s], imprecise USD.31: 1% USD:31-1 + " USD.31: 2% USD:31-1 + " USD.31: 2% USD:31-1 + " USD.31: 3% USD:31-1 + " USD.31: 3% USD:31-1 + " USD.31: 5% USD:31-1 + " USD.31: 18% USD:31-3 +citation[s], partial USD.29: 36% USD:29-4 + " USD.29: 36% USD:29-4 + " USD.29: 37% USD:29-4 + " USD.29: 42% USD:29-5 + " USD.29: 56% USD:29-6 + " USD.29: 81% USD:29-9 +Citation Formatting USD.31: 67% USD:31-11 +citation style[s] USD.31: 12% USD:31-2 + " USD.31: 12% USD:31-2 + " USD.31: 88% USD:31-16 +citation template USD.31: 63% USD:31-10 + " USD.31: 66% USD:31-11 + " USD.31: 81% USD:31-13 +clash[s], type PS1.04: 41% PS1:4-22 + " PS1.04: 42% PS1:4-22 + " PS1.04: 45% PS1:4-24 +class, address SMM.11: 40% SMM:11-6 + " SMM.11: 55% SMM:11-8 + " SMM.11: 55% SMM:11-8 +class, character PS1.16: 11% PS1:16-2 + " PS1.16: 27% PS1:16-4 + " PS1.16: 28% PS1:16-4 + " PS2.09: 48% PS2:9-85 + " PS2.09: 49% PS2:9-87 + " PS2.09: 49% PS2:9-87 + " PS2.09: 49% PS2:9-87 + " PS2.09: 49% PS2:9-87 + " PS2.09: 49% PS2:9-87 + " PS2.09: 49% PS2:9-87 + " PS2.09: 51% PS2:9-90 + " PS2.09: 51% PS2:9-90 + " USD.13: 29% USD:13-6 + " USD.13: 30% USD:13-6 + " USD.13: 30% USD:13-6 + " USD.13: 30% USD:13-6 + " USD.13: 31% USD:13-6 +class, message SMM.07A: 15% SMM:07-9 + " SMM.07A: 29% SMM:07-14 + " SMM.07A: 40% SMM:07-19 + " SMM.07A: 73% SMM:07-32 +class, storage PS1.01: 8% PS1:1-3 + " PS1.01: 8% PS1:1-3 + " PS1.01: 8% PS1:1-4 + " PS1.01: 43% PS1:1-14 + " PS1.01: 44% PS1:1-14 + " PS1.01: 61% PS1:1-20 + " PS1.01: 71% PS1:1-24 + " PS1.01: 72% PS1:1-25 + " PS1.01: 83% PS1:1-28 + " PS1.01: 83% PS1:1-28 + " PS1.01: 83% PS1:1-28 + " PS1.01: 83% PS1:1-28 + " PS2.06: 19% PS2:6-8 + " SMM.19: 17% SMM:19-6 + " SMM.19: 21% SMM:19-7 + " SMM.19: 21% SMM:19-7 + " SMM.19: 21% SMM:19-7 + " SMM.19: 21% SMM:19-7 + " SMM.19: 25% SMM:19-8 + " SMM.19: 25% SMM:19-8 + " SMM.19: 25% SMM:19-8 + " SMM.19: 39% SMM:19-11 +class B network SMM.01: 63% SMM:1-39 +class C network SMM.01: 63% SMM:1-39 +class, syntax PS2.09: 48% PS2:9-85 + " PS2.09: 49% PS2:9-87 + " PS2.09: 49% PS2:9-87 + " PS2.09: 49% PS2:9-87 + " PS2.09: 50% PS2:9-88 + " PS2.09: 50% PS2:9-89 + " PS2.09: 51% PS2:9-90 + " PS2.09: 51% PS2:9-90 + " PS2.09: 51% PS2:9-90 + " PS2.09: 51% PS2:9-90 + " PS2.09: 51% PS2:9-90 + " PS2.09: 53% PS2:9-94 + " PS2.09: 53% PS2:9-94 + " PS2.09: 54% PS2:9-95 + " PS2.09: 54% PS2:9-95 + " PS2.09: 54% PS2:9-95 + " PS2.09: 54% PS2:9-95 + " PS2.09: 54% PS2:9-95 +classes, Character PS1.16: 26% PS1:16-4 + " PS1.16: 28% PS1:16-4 + " PS1.16: 32% PS1:16-4 + " PS1.16: 94% PS1:16-12 + " PS2.09: 48% PS2:9-85 + " PS2.09: 50% PS2:9-87 + " PS2.09: 54% PS2:9-95 +Classes, Syntax PS2.09: 48% PS2:9-85 + " PS2.09: 51% PS2:9-90 + " PS2.09: 51% PS2:9-90 + " PS2.09: 51% PS2:9-90 + " PS2.09: 54% PS2:9-94 +classes, storage SMM.19: 20% SMM:19-6 + " SMM.19: 20% SMM:19-6 + " SMM.19: 21% SMM:19-7 + " USD.06: 88% USD:6-12 +Cleanup, Uuclean - Uucp Spool Directory SMM.09: 33% SMM:9-8 +clean all system buffer cache[s] PS1.06: 48% PS1:6-23 +cleanup on /usr/msg[s] MSGS.1: 59% MSGS(1)-1 +Clear SMM.12A: 13% SMM:12-4 +clear - clear terminal screen CLEAR.1: 13% CLEAR(1)-1 +clear, window PS1.18: 36% PS1:18-9 + " PS1.18: 36% PS1:18-9 +clear() PS1.18: 34% PS1:18-9 +clear-and-redraw (ESC C-L) USD.17: 62% USD:17-28 +clear-screen sequence PS1.18: 34% PS1:18-9 + " PS1.18: 36% PS1:18-9 + " PS1.18: 37% PS1:18-10 +clearerr FERROR.3S: 6% FERROR(3S)-1 + " GETC.3S: 85% +clearok(scr, boolf) PS1.18: 35% PS1:18-9 +client process PS1.08: 43% PS1:8-17 + " PS1.08: 43% PS1:8-17 + " PS1.08: 49% PS1:8-20 + " PS1.08: 68% PS1:8-27 + " PS1.08: 69% PS1:8-27 +client/server model PS1.08: 3% PS1:8-2 + " PS1.08: 42% PS1:8-16 + " PS1.08: 42% PS1:8-17 +clock resolution PS1.06: 35% PS1:6-17 +clock, alarm ALARM.3C: 50% ALARM(3C)-1 + " ALARM.3C: 84% ALARM(3C)-1 + " UALARM.3: 84% UALARM(3)-1 +clock, kg - KL-11/DL-11W line KG.4: 7% unknown +clock, system ADJTIME.2: 5% ADJTIME(2)-1 + " GETITIMER.2: 46% GETITIMER(2)-1 + " GETTIMEOFDAY.2: 31% GETTIMEOFDAY(2) + " SMM.02: 19% SMM:2-6 + " SMM.02: 19% SMM:2-6 + " SMM.12A: 56% SMM:12-13 + " TIMEDC.8: 57% TIMEDC(8)-1 +clock daemon CRON.8: 3% CRON(8)-1 + " SYSTAT.1: 54% SYSTAT(1)-3 +clock frequency SMM.12A: 33% SMM:12-8 + " SMM.12A: 43% SMM:12-10 +clock interrupts KG.4: 53% unknown +Clock Synchronization SMM.22: 97% SMM:22-10 + " SMM.08: 4% SMM:8-2 +clock tick[s] PROFIL.2: 29% PROFIL(2)-1 + " SMM.13: 15% SMM:13-6 + " SMM.13: 15% SMM:13-6 + " SMM.13: 15% SMM:13-6 + " SMM.13: 16% SMM:13-7 + " VTIMES.3C: 63% VTIMES(3C)-1 +close, hang up on last TTY.4: 47% TTY(4)-5 +close - delete a descriptor CLOSE.2: 2% CLOSE(2)-1 +close quote USD.24: 24% USD:24-9 +Close window WINDOW.1: 33% WINDOW(1)-3 +close, linger on PS1.08: 84% PS1:8-35 +close-on-exec flag DUP.2: 60% DUP(2)-1 + " EXECVE.2: 31% EXECVE(2)-1 + " FCNTL.2: 22% FCNTL(2)-1 + " FCNTL.2: 26% FCNTL(2)-1 + " FCNTL.2: 32% FCNTL(2)-1 + " SMM.13: 17% SMM:13-7 +Closedir DIRECTORY.3: 72% +closelog - control system log SYSLOG.3: 1% SYSLOG(3)-1 +closepl PLOT.3X: 18% PLOT(3X)-1 +closing parenthesis USD.17: 52% USD:17-23 +clospl PLOT.3F: 40% PLOT(3F)-1 +clri - clear i-node CLRI.8: 4% CLRI(8)-1 +clrtobot() PS1.18: 35% PS1:18-9 +clrtoeol() PS1.18: 36% PS1:18-9 +CMU Top Level PS2.09: 1% PS2:9-4 +CMULisp, PDP-10 PS2.09: 79% PS2:9-128 + " PS2.09: 87% PS2:9-140 + " PS2.09: 87% PS2:9-140 +cluster, mbuf SMM.13: 36% SMM:13-13 + " SMM.13: 87% SMM:13-30 + " SMM.13: 87% SMM:13-30 +cluster, page PSTAT.8: 79% PSTAT(8)-3 + " SMM.13: 6% SMM:13-3 + " SMM.13: 36% SMM:13-13 + " SMM.15: 10% SMM:15-4 + " SMM.15: 12% SMM:15-5 +cmap structure SMM.13: 5% SMM:13-3 + " SMM.13: 43% SMM:13-15 + " SMM.13: 56% SMM:13-20 +cmp - compare two files CMP.1: 6% CMP(1)-1 +co - check out RCS revision[s] PS1.13: 37% PS1:13-8 +co - check out RCS revisions CO.N: 0% CO(1)-1 +co -j RCSMERGE.N: 62% RCSMERGE(1)-1 +co -l CI.N: 62% CI(1)-2 +co command CO.N: 24% CO(1)-1 +code, C PS1.09: 3% PS1:9-1 + " PS1.15: 99% PS1:15-33 + " PS2.10: 57% PS2:10-50 +code, assembler SMM.19: 5% SMM:19-2 + " SMM.19: 50% SMM:19-14 +code, assembly SMM.19: 8% SMM:19-3 + " SMM.19: 8% SMM:19-3 + " SMM.19: 62% SMM:19-18 + " SMM.19: 66% SMM:19-18 +code, bootstrap SMM.13: 99% SMM:13-34 +code, compiled PS1.02: 37% PS1:2-13 + " PS2.07: 31% PS2:7-15 + " PS2.08: 79% PS2:8-11 + " PS2.09: 17% PS2:9-32 + " PS2.09: 75% PS2:9-124 + " PS2.09: 78% PS2:9-127 + " PS2.09: 84% PS2:9-136 + " PS2.09: 86% PS2:9-137 +code, disassemble object PS1.11a: 68% PS1:11-5 +code, error PS1.03: 16% PS1:3-4 + " PS1.06: 5% PS1:6-5 + " PS1.08: 63% PS1:8-25 + " PS2.03: 74% PS2:3-11 + " PS2.05: 74% PS2:5-5 + " PS2.09: 30% PS2:9-57 +code, exit PS2.09: 42% PS2:9-75 + " PS2.09: 43% PS2:9-78 + " PS2.09: 44% PS2:9-79 + " PS2.09: 45% PS2:9-80 +code, intermediate SMM.19: 2% SMM:19-2 + " SMM.19: 46% SMM:19-13 + " SMM.19: 47% SMM:19-13 +code, unreachable LINT.1: 68% LINT(1)-1 +code generation SMM.13: 97% SMM:13-33 + " SMM.19: 11% SMM:19-4 + " SMM.19: 47% SMM:19-13 + " SMM.19: 48% SMM:19-14 + " SMM.19: 50% SMM:19-14 + " SMM.19: 51% SMM:19-14 + " SMM.19: 53% SMM:19-15 + " SMM.19: 59% SMM:19-16 + " SMM.19: 66% SMM:19-19 + " SMM.19: 78% SMM:19-22 + " USD.26: 89% USD:26-7 +code generator SMM.19: 8% SMM:19-3 + " SMM.19: 8% SMM:19-3 + " SMM.19: 12% SMM:19-4 + " SMM.19: 36% SMM:19-10 + " SMM.19: 37% SMM:19-11 + " SMM.19: 47% SMM:19-13 + " SMM.19: 47% SMM:19-13 + " SMM.19: 47% SMM:19-13 + " SMM.19: 48% SMM:19-14 + " SMM.19: 49% SMM:19-14 + " SMM.19: 50% SMM:19-14 + " SMM.19: 53% SMM:19-15 + " SMM.19: 87% SMM:19-24 + " SMM.19: 87% SMM:19-24 + " SMM.19: 92% SMM:19-25 + " SMM.12A: 9% SMM:12-3 +code segment SMM.02: 71% SMM:2-22 +code template SMM.19: 11% SMM:19-4 + " SMM.19: 55% SMM:19-15 + " SMM.19: 71% SMM:19-20 + " SMM.19: 83% SMM:19-23 +code[s], format PS1.02: 35% PS1:2-12 + " PS1.02: 68% PS1:2-23 + " PS1.02: 69% PS1:2-23 + " PS1.02: 70% PS1:2-23 + " PS1.02: 70% PS1:2-23 + " PS1.02: 70% PS1:2-24 +code, Fortran PS2.06: 0% PS2:6-1 + " PS2.06: 1% PS2:6-1 +code, lisp PS2.07: 30% PS2:7-14 + " PS2.09: 1% PS2:9-4 + " PS2.09: 1% PS2:9-4 + " PS2.09: 45% PS2:9-80 + " PS2.09: 49% PS2:9-87 + " PS2.09: 84% PS2:9-135 +code, object PS1.04: 13% PS1:4-8 + " PS1.13: 16% PS1:13-3 + " PS1.13: 16% PS1:13-3 + " PS1.13: 17% PS1:13-3 + " PS2.10: 76% PS2:10-68 + " PS1.11a: 68% PS1:11-5 +code, Remote login client PS1.08: 42% PS1:8-16 + " PS2.09: 1% PS2:9-4 + " PS1.11a: 4% PS1:11-1 + " PS1.11a: 7% PS1:11-1 + " PS1.11a: 49% PS1:11-3 + " PS1.11a: 93% PS1:11-6 +code, user PS1.15: 3% PS1:15-1 + " PS1.15: 32% PS1:15-9 + " PS2.10: 73% PS2:10-63 + " PS2.10: 81% PS2:10-74 +code generation PS1.01: 41% PS1:1-13 +code generator PS1.04: 48% PS1:4-25 +coding, Huffman COMPRESS.1: 53% COMPRESS(1)-1 +coding, Lempel-Ziv COMPRESS.1: 6% COMPRESS(1)-1 +coercion, type SMM.12A: 6% SMM:12-2 +col - filter reverse line feeds COL.1: 2% COL(1)-1 +colcrt - filter nroff output for CRT previewing COLCRT.1: 3% COLCRT(1)-1 +Cold start REBOOT.8: 23% REBOOT(8)-1 +Coleman-Liau Formula USD.32: 16% USD:32-3 + " USD.32: 19% USD:32-3 + " USD.32: 21% USD:32-4 + " USD.32: 9% USD:32-2 + " USD.32: 18% USD:32-3 + " USD.32: 21% USD:32-4 + " USD.32: 60% USD:32-9 +collecting reference[s] USD.30: 85% USD:30-10 +collection, garbage PS.1: 22% PS(1)-1 + " PS2.09: 42% PS2:9-76 + " PS2.09: 42% PS2:9-76 + " PS2.09: 42% PS2:9-76 + " PS2.09: 44% PS2:9-79 + " PS2.09: 46% PS2:9-82 + " SMM.13: 41% SMM:13-15 + " SMM.13: 42% SMM:13-15 + " SMM.15: 84% SMM:15-24 +Collision[s] NETSTAT.1: 98% NETSTAT(1)-2 +collector, garbage PS2.09: 0% PS2:9-2 + " PS2.09: 6% PS2:9-10 + " PS2.09: 34% PS2:9-62 + " PS2.09: 42% PS2:9-76 + " PS2.09: 44% PS2:9-79 + " PS2.09: 64% PS2:9-108 + " PS2.09: 64% PS2:9-108 + " PS2.09: 64% PS2:9-108 + " PS2.09: 66% PS2:9-112 + " PS2.09: 66% PS2:9-112 + " PS2.09: 67% PS2:9-112 + " PS2.09: 67% PS2:9-113 + " PS2.09: 78% PS2:9-127 +colon function[s] USD.18: 93% USD:18-10 + " USD.18: 94% USD:18-10 + " USD.18: 95% USD:18-10 +colrm SMM.12A: 13% SMM:12-4 +colrm - remove columns from a file COLRM.1: 8% +column, .bc Begin USD.23: 41% USD:23-6 +column-major order PS1.02: 27% PS1:2-10 + " PS1.02: 38% PS1:2-13 + " PS2.06: 45% PS2:6-16 + " PS2.06: 64% PS2:6-22 +column[s], Equal width USD.28: 28% USD:28-5 +column[s], numerical USD.28: 16% USD:28-3 + " USD.28: 46% USD:28-7 + " USD.28: 46% USD:28-7 + " USD.28: 46% USD:28-7 +columns, removing COLRM.1: 10% +column[s], Space between USD.28: 21% USD:28-4 +column format MS.7: 65% MS(7)-2 + " MS.7: 66% MS(7)-2 + " USD.20: 22% USD:20-2 +column output USD.22: 80% USD:22-15 + " USD.22: 80% USD:22-15 + " USD.22: 80% USD:22-15 + " USD.23: 37% USD:23-5 + " USD.23: 41% USD:23-5 + " USD.24: 90% USD:24-30 + " PR.1: 30% PR(1)-1 +column width MS.7: 43% MS(7)-2 + " USD.20: 23% USD:20-2 + " USD.23: 40% USD:23-5 + " USD.24: 90% USD:24-30 + " USD.28: 17% USD:28-3 + " USD.28: 27% USD:28-5 + " USD.28: 39% USD:28-6 + " USD.28: 26% USD:28-4 +Columned Output USD.23: 40% USD:23-5 +combination[s], Boolean USD.19: 3% USD:19-1 + " USD.19: 40% USD:19-4 +combine several file[s] USD.13: 73% USD:13-12 +combining form[s] PS2.07: 2% PS2:7-4 + " PS2.07: 2% PS2:7-4 + " PS2.07: 7% PS2:7-5 + " PS2.07: 7% PS2:7-5 + " PS2.07: 8% PS2:7-5 + " PS2.07: 8% PS2:7-5 +Comma Operator PS1.01: 38% PS1:1-12 + " PS1.01: 39% PS1:1-12 + " PS1.01: 95% PS1:1-33 +Command Summary PS2.09: 93% PS2:9-148 + " PS2.09: 94% PS2:9-149 +Comment[s] PS1.01: 1% +comm - select or reject lines common to two sorted files COMM.1: 7% COMM(1)-1 +command, background USD.03: 5% USD:3-2 +command[s], chart of JOVE USD.17: 64% USD:17-29 +command[s], define your own USD.17: 54% USD:17-24 +command[s], editing SED.1: 8% SED(1)-1 + " SED.1: 31% SED(1)-1 + " USD.01: 56% USD:1-9 + " USD.01: 82% USD:1-12 + " USD.13: 38% USD:13-7 + " USD.13: 41% USD:13-7 + " USD.13: 58% USD:13-10 + " USD.13: 97% USD:13-16 + " USD.13: 98% USD:13-16 + " USD.14: 24% USD:14-7 + " USD.14: 38% USD:14-10 + " USD.17: 7% USD:17-4 + " USD.17: 8% USD:17-4 + " USD.18: 1% USD:18-1 + " USD.18: 11% USD:18-2 + " USD.18: 12% USD:18-2 + " USD.18: 15% USD:18-2 + " USD.18: 15% USD:18-2 + " USD.18: 16% USD:18-2 + " USD.18: 18% USD:18-2 + " USD.18: 22% USD:18-3 + " USD.18: 41% USD:18-4 + " USD.18: 43% USD:18-4 + " USD.18: 44% USD:18-4 + " USD.18: 47% USD:18-5 + " USD.18: 51% USD:18-5 + " USD.18: 83% USD:18-8 + " USD.18: 92% USD:18-10 + " USD.18: 94% USD:18-10 + " USD.18: 95% USD:18-10 + " USD.18: 96% USD:18-10 + " USD.18: 96% USD:18-10 +command, execution status of a USD.04: 58% USD:4-27 +command, history CSH.1: 17% CSH(1)-4 + " USD.04: 49% USD:4-22 +commands, intro - introduction to INTRO.1: 3% INTRO(1)-1 +command[s], introduction to UNIX files and USD.02: 2% USD:2-1 +commands, job control USD.04: 40% USD:4-18 + " USD.04: 40% USD:4-18 + " USD.04: 83% USD:4-39 +command[s], list of mail USD.07: 50% USD:7-12 +commands, previously executed LASTCOMM.1: 16% LASTCOMM(1)-1 +commands, repeating CSH.1: 15% CSH(1)-3 +command, standard output from a USD.03: 1% USD:3-1 +commands, synonyms for CSH.1: 24% CSH(1)-5 +command, system - execute a UNIX SYSTEM.3F: 6% SYSTEM(3F)-1 +command, time - time a TIME.1: 5% TIME(1)-1 +command aliases DBX.1: 64% DBX(1)-5 +Command and Filename Completion USD.17: 4% USD:17-2 +command argument[s] FIND.1: 49% FIND(1)-1 + " PS.1: 27% PS(1)-1 + " CSH.1: 29% CSH(1)-6 +Command execution CSH.1: 87% CSH(1)-18 + " USD.03: 84% USD:3-21 + " SMM.09: 53% SMM:9-12 +Command execution, remote UUXQT.8C: 29% UUXQT(8C)-1 + " UUX.1C: 1% UUX(1C)-1 + " SMM.09: 33% SMM:9-8 + " REXECD.8C: 64% REXECD(8C)-1 + " RCP.1C: 62% RCP(1C)-1 +command field[s] SMM.10: 48% SMM:10-13 +command file[s] CSH.1: 48% CSH(1)-9 + " EXECL.3: 82% EXECL(3)-2 + " FILE.1: 79% FILE(1)-1 + " SMM.09: 15% SMM:9-4 + " USD.16: 3% USD:16-1 + " USD.18: 5% USD:18-1 + " USD.18: 6% USD:18-1 +Command grouping USD.03: 49% USD:3-12 +command interpreter CSH.1: 0% CSH(1)-1 + " LOGIN.1: 40% LOGIN(1)-1 + " LOGIN.1: 44% LOGIN(1)-1 + " LOGIN.1: 46% LOGIN(1)-1 + " LOGIN.1: 51% LOGIN(1)-1 + " SYSTEM.3F: 45% SYSTEM(3F)-1 + " USD.02: 45% USD:2-6 + " USD.04: 2% USD:4-3 + " CSH.1: 0% CSH(1)-1 + " USD.04: 0% USD:4-1 + " USD.04: 95% USD:4-43 +command language SH.1: 1% SH(1)-1 + " USD.03: 2% USD:3-1 +command level SMM.17: 17% SMM:17-1 +command line argument[s] GETARG.3F: 72% GETARG(3F)-1 + " GETARG.3F: 15% GETARG(3F)-1 +command line flag[s] SMM.07A: 66% SMM:07-28 +Command not found USD.14: 15% USD:14-5 +command operation PTY.4: 81% PTY(4)-2 + " SMM.13: 26% SMM:13-10 + " SMM.12A: 75% SMM:12-18 +Command parameter[s] USD.16: 18% USD:16-4 +command script[s] CSH.1: 1% CSH(1)-1 + " RC.8: 3% RC(8)-1 + " RC.8: 11% RC(8)-1 + " USD.04: 55% USD:4-25 + " USD.04: 52% USD:4-25 +Command substitution CSH.1: 29% CSH(1)-6 + " CSH.1: 35% CSH(1)-7 + " CSH.1: 35% CSH(1)-7 + " CSH.1: 36% CSH(1)-7 + " CSH.1: 40% CSH(1)-8 + " CSH.1: 41% CSH(1)-8 + " CSH.1: 96% CSH(1)-20 + " SH.1: 18% SH(1)-2 + " SH.1: 33% SH(1)-2 + " SH.1: 42% SH(1)-3 + " SH.1: 49% SH(1)-3 + " USD.03: 62% USD:3-16 + " USD.03: 63% USD:3-16 + " USD.03: 65% USD:3-16 + " USD.03: 66% USD:3-16 + " USD.03: 69% USD:3-17 + " USD.03: 69% USD:3-17 + " USD.03: 85% USD:3-21 + " USD.03: 87% USD:3-21 + " USD.04: 67% USD:4-33 + " USD.04: 72% USD:4-35 + " USD.04: 72% USD:4-35 +command usage statistics SA.8: 43% SA(8)-1 +Commands (see also names of specific commands and man(1) (URM)) INTRO.1: 21% INTRO(1)-1 + " INTRO.1: 25% INTRO(1)-1 + " INTRO.1: 30% INTRO(1)-1 + " USD.04: 6% USD:4-4 + " USD.04: 88% USD:4-41 + " USD.17: 5% USD:17-3 +commands in the background USD.01: 63% USD:1-10 +Comments USD.24: 44% USD:24-15 + " USD.24: 62% USD:24-20 + " USD.24: 62% USD:24-20 + " CC.1: 42% CC(1)-2 +comment[s], block INDENT.1: 84% INDENT(1)-1 + " PMERGE.1: 80% PMERGE(1)-1 + " SMM.12A: 5% SMM:12-2 +comment[s], multi-line PS1.04: 76% PS1:4-39 + " PS1.04: 77% PS1:4-39 + " PS1.13: 64% PS1:13-13 +comment[s], Right marginal PS1.04: 76% PS1:4-39 + " PS1.04: 77% PS1:4-39 + " PS1.04: 77% PS1:4-40 +comment[s], Trailing PS1.04: 76% PS1:4-39 + " PS1.04: 76% PS1:4-39 + " PS1.04: 77% PS1:4-39 + " PS2.06: 13% PS2:6-6 +comment character PS2.07: 27% PS2:7-14 + " PS2.09: 26% PS2:9-50 + " PS2.09: 41% PS2:9-73 + " PS2.09: 53% PS2:9-93 +comment leader PS1.13: 64% PS1:13-13 + " PS1.13: 64% PS1:13-13 +comments, conventional LINT.1: 64% LINT(1)-1 +comment[s], shell USD.04: 54% USD:4-25 + " USD.04: 61% USD:4-29 + " CSH.1: 3% CSH(1)-1 +comment character USD.16: 21% USD:16-4 + " SMM.12A: 47% SMM:12-11 +comment leader RCS.N: 24% RCS(1)-1 +comment-format (variable) USD.17: 62% USD:17-28 +common words INVERT.N: 42% INVERT(1)-1 +communicating processes PS1.07a: 28% PS1:7-7 + " PS1.07a: 90% PS1:7-22 + " PS1.08: 2% PS1:8-2 + " PS1.08: 10% PS1:8-4 + " SAIL.6: 5% SAIL(6)-1 +Communication, Changes in Interprocess SMM.13: 33% SMM:13-12 +communication[s], Interprocess PS1.06: 73% PS1:6-32 + " PS1.07a: 0% PS1:7-1 + " PS1.07a: 1% PS1:7-1 + " PS1.07a: 4% PS1:7-1 + " PS1.07a: 7% PS1:7-2 + " PS1.08: 0% + " PS1.08: 1% PS1:8-2 +communication, semantics of PS1.06: 74% PS1:6-33 +communication, stream PS1.07a: 1% PS1:7-1 + " PS1.07a: 31% PS1:7-8 + " PS1.07a: 93% PS1:7-23 +Communication domain[s] PS1.06: 73% PS1:6-32 + " PS1.06: 73% PS1:6-33 + " PS1.06: 73% PS1:6-33 + " PS1.06: 80% PS1:6-34 + " PS1.07a: 90% PS1:7-22 + " PS1.08: 4% PS1:8-3 + " PS1.08: 4% PS1:8-3 + " PS1.08: 8% PS1:8-4 + " PS1.08: 12% PS1:8-5 + " PS1.08: 71% PS1:8-28 +communication protocol[s] PS1.08: 4% PS1:8-3 + " PS1.08: 5% PS1:8-3 + " PS1.08: 6% PS1:8-3 + " PS1.08: 36% PS1:8-14 +communication, network SMM.15: 0% SMM:15-2 + " SMM.15: 2% SMM:15-3 + " SMM.15: 3% SMM:15-3 +communication, secure XSEND.1: 16% XSEND(1)-1 +communication domain BIND.2: 29% BIND(2)-1 + " SOCKET.2: 39% SOCKET(2)-1 +communication line[s] DH.4: 13% DH(4)-1 + " DHU.4: 10% DHU(4)-1 + " DZ.4: 13% DZ(4)-1 + " SMM.09: 0% SMM:9-2 + " SMM.21: 3% SMM:21-1 + " SMM.21: 18% SMM:21-2 + " TTY.4: 3% TTY(4)-1 +communication protocol INTRO.2: 56% INTRO(2)-5 + " SMM.01: 60% SMM:1-38 + " SMM.15: 3% SMM:15-3 + " SMM.15: 15% SMM:15-6 + " SMM.15: 15% SMM:15-6 + " SMM.15: 47% SMM:15-15 +communication protocol problem SMM.01: 84% SMM:1-50 +communication with other systems INTRO.1: 22% INTRO(1)-1 +communications domain PS1.06: 37% PS1:6-18 + " PS1.06: 50% PS1:6-24 + " PS1.06: 50% PS1:6-24 + " PS1.06: 50% PS1:6-24 + " PS1.06: 50% PS1:6-24 + " PS1.06: 51% PS1:6-24 + " PS1.06: 63% PS1:6-29 + " PS1.06: 77% PS1:6-34 + " PS1.06: 77% PS1:6-34 + " SMM.15: 27% SMM:15-8 + " SOCKET.2: 6% SOCKET(2)-1 +communications line[s] PS1.06: 43% PS1:6-20 + " PS1.06: 94% PS1:6-39 + " PS2.04: 51% PS2:4-5 + " PS2.04: 63% PS2:4-6 +communications link SMM.18: 12% SMM:18-1 + " SMM.18: 13% SMM:18-1 + " SMM.21: 18% SMM:21-2 +Communications of the ACM USD.31: 33% USD:31-5 +communications protocols INTRO.2: 98% INTRO(2)-7 + " SOCKET.2: 50% SOCKET(2)-1 + " SMM.12A: 73% SMM:12-17 +comp - compose a message COMP.N: 0% COMP(1)-1 + " USD.08: 15% USD:8-16 +comp command USD.08: 4% USD:8-4 + " USD.08: 6% USD:8-6 +compact SMM.12A: 13% SMM:12-4 +compact and uncompact SMM.01: 35% SMM:1-23 +compare RCS revision, rcsdiff - PS1.13: 73% PS1:13-14 +Comparison operator PS2.10: 40% PS2:10-35 + " PS2.10: 40% PS2:10-35 + " PS2.10: 41% PS2:10-35 +Compilation, Getting Files for PS1.14: 18% PS1:14-3 +Compilation, Separate PS1.04: 79% PS1:4-41 + " PS1.04: 84% PS1:4-43 + " PS1.04: 84% PS1:4-43 + " PS1.04: 98% PS1:4-50 +compare RCS revision[s] RCSDIFF.N: 3% RCSDIFF(1)-1 +comparing, file CMP.1: 6% CMP(1)-1 +comparing dates and size[s] RDIST.1: 33% RDIST(1)-2 +comparing files and subdirectories DIFF.1: 0% DIFF(1)-1 +comparison, file DIFF3.1: 3% DIFF3(1)-1 + " DIFF.1: 1% DIFF(1)-1 +comparison, string USD.19: 40% USD:19-4 + " USD.25: 80% USD:25-12 +COMPAT SMM.02: 22% SMM:2-7 + " SMM.13: 76% SMM:13-26 +compatibility, DEC VMS STTY.1: 72% STTY(1)-2 +compatibility, Honey-Danber UUCP L_SYS.5: 97% L.SYS(5)-4 + " SMM.09: 47% SMM:9-10 +compatibility, System V SMM.13: 5% SMM:13-3 + " SMM.12A: 77% SMM:12-18 + " KILL.2: 53% KILL(2)-1 + " SMM.09: 36% SMM:9-8 + " SMM.09: 47% SMM:9-10 + " SMM.12A: 62% SMM:12-14 + " SMM.12A: 65% SMM:12-15 +compatibility mode fault[s] CRASH.8V: 66% CRASH(8V)-2 + " SIGNAL.3C: 76% SIGNAL(3C)-2 + " SIGNAL.3C: 79% SIGNAL(3C)-2 + " SIGVEC.2: 82% SIGVEC(2)-3 + " SIGVEC.2: 83% SIGVEC(2)-3 +compatibility routine[s] INTRO.3: 9% INTRO(3)-1 +COMPAT_42 SMM.02: 98% SMM:2-33 +compilation errors PS1.14: 52% PS1:14-8 + " PS2.09: 77% PS2:9-126 +compilation options SMM.02: 49% SMM:2-15 +compile your code while in the editor USD.17: 50% USD:17-22 +compile-it USD.17: 98% USD:17-48 +compile-it (C-X C-E) USD.17: 62% USD:17-28 +compiled code PS1.02: 37% PS1:2-13 + " PS2.07: 31% PS2:7-15 + " PS2.08: 79% PS2:8-11 + " PS2.09: 17% PS2:9-32 + " PS2.09: 75% PS2:9-124 + " PS2.09: 78% PS2:9-127 + " PS2.09: 84% PS2:9-136 + " PS2.09: 86% PS2:9-137 +compiler, building a USD.01: 90% USD:1-13 +compiler, C CC.1: 0% CC(1)-1 + " JOVE.N: 34% JOVE(1)-1 + " PS1.01: 77% PS1:1-26 + " PS1.02: 0% + " PS1.09: 0% PS1:9-1 + " PS1.09: 2% PS1:9-1 + " PS1.09: 5% PS1:9-1 + " PS1.09: 57% PS1:9-6 + " PS1.09: 92% PS1:9-9 + " PS1.10: 23% PS1:10-5 + " PS1.12: 67% PS1:12-6 + " PS2.03: 9% PS2:3-2 + " PS2.08: 77% PS2:8-11 + " PS2.09: 36% PS2:9-65 + " PS2.10: 57% PS2:10-50 +compiler, EFL PS2.06: 25% PS2:6-10 + " PS2.06: 73% PS2:6-25 +compiler, Fortran PS1.02: 2% PS1:2-4 + " PS1.02: 3% PS1:2-4 + " PS1.02: 10% PS1:2-6 + " PS2.06: 71% PS2:6-24 + " PS2.08: 70% PS2:8-10 + " PS2.08: 84% PS2:8-12 + " PS2.09: 36% PS2:9-65 +compiler, C SMM.19: 0% SMM:19-2 + " SMM.19: 0% SMM:19-2 + " SMM.19: 4% SMM:19-2 + " SMM.19: 9% SMM:19-3 + " SMM.19: 12% SMM:19-4 + " USD.17: 45% USD:17-20 + " USD.17: 63% USD:17-28 + " YACC.1: 22% YACC(1)-1 + " SMM.12A: 5% SMM:12-2 + " SMM.12A: 12% SMM:12-4 + " SMM.12A: 24% SMM:12-6 + " INTRO.3: 2% INTRO(3)-1 +compiler, DEC Western Research Labs Modula-2 SMM.12A: 15% SMM:12-4 + " SMM.12A: 16% SMM:12-5 +compiler, f77 BIT.3F: 95% BIT(3F)-1 + " TRPFPE.3F: 88% TRPFPE(3F)-1 +compiler, f77 - Fortran 77 F77.1: 0% F77(1)-1 +compiler, Fortran SMM.12A: 17% SMM:12-5 +compiler, Pascal PC.1: 1% PC(1)-1 + " PC.1: 3% PC(1)-1 + " SMM.19: 88% SMM:19-24 + " SMM.19: 88% SMM:19-24 +compiler, UNIX C CC.1: 2% CC(1)-1 + " SMM.19: 0% SMM:19-2 +compiler bug[s] SMM.19: 91% SMM:19-25 +compiler error[s] SMM.19: 71% SMM:19-20 + " SMM.19: 83% SMM:19-23 + " SMM.19: 91% SMM:19-25 + " SMM.19: 92% SMM:19-25 +Compiler Extension[s] SMM.19: 93% SMM:19-26 +compiler source[s] SMM.19: 8% SMM:19-3 + " SMM.12A: 11% SMM:12-3 +compiler-compiler, yacc - yet another YACC.1: 2% YACC(1)-1 +compiler/interpreter, fp - Functional Programming language FP.1: 2% FP(1)-1 +compiler, lisp PS2.09: 1% PS2:9-4 + " PS2.09: 20% PS2:9-39 + " PS2.09: 36% PS2:9-65 + " PS2.09: 73% PS2:9-120 + " PS2.09: 73% PS2:9-120 + " PS2.09: 73% PS2:9-120 + " PS2.09: 78% PS2:9-127 +Compiler Control Line[s] PS1.01: 77% PS1:1-26 + " PS1.01: 79% PS1:1-26 + " PS1.01: 80% PS1:1-27 +Compiler-Compiler, Yet Another PS1.15: 0% + " PS1.15: 0% + " PS1.15: 4% PS1:15-2 + " PS1.15: 8% PS1:15-2 + " PS1.15: 12% PS1:15-4 + " PS1.15: 15% PS1:15-4 + " PS1.15: 19% PS1:15-6 + " PS1.15: 22% PS1:15-6 + " PS1.15: 26% PS1:15-8 + " PS1.15: 31% PS1:15-8 + " PS1.15: 33% PS1:15-10 + " PS1.15: 35% PS1:15-10 + " PS1.15: 39% PS1:15-12 + " PS1.15: 43% PS1:15-12 + " PS1.15: 46% PS1:15-14 + " PS1.15: 50% PS1:15-14 + " PS1.15: 52% PS1:15-16 + " PS1.15: 57% PS1:15-16 + " PS1.15: 61% PS1:15-18 + " PS1.15: 65% PS1:15-18 + " PS1.15: 69% PS1:15-20 + " PS1.15: 72% PS1:15-20 + " PS1.15: 75% PS1:15-22 + " PS1.15: 79% PS1:15-22 + " PS1.15: 81% PS1:15-24 + " PS1.15: 83% PS1:15-24 + " PS1.15: 84% PS1:15-26 + " PS1.15: 86% PS1:15-26 + " PS1.15: 87% PS1:15-28 + " PS1.15: 93% PS1:15-28 + " PS1.15: 94% PS1:15-30 + " PS1.15: 95% PS1:15-30 + " PS1.15: 97% PS1:15-32 + " PS1.15: 98% PS1:15-32 +compiling a Lex source program PS1.16: 67% PS1:16-9 +compiling changed source code PS1.12: 9% PS1:12-1 +complete subtree[s], restoration of RESTORE.8: 65% RESTORE(8)-2 +Completion, File Name CSH.1: 0% CSH(1)-1 + " CSH.1: 11% CSH(1)-2 + " SMM.12A: 14% SMM:12-4 + " CSH.1: 80% CSH(1)-17 +complex constants PS1.02: 31% PS1:2-11 + " PS1.02: 72% PS1:2-24 + " PS1.02: 72% PS1:2-24 + " PS2.06: 75% PS2:6-26 +complex expressions USD.06: 11% USD:6-2 +complex key PS2.09: 17% PS2:9-33 + " PS2.09: 17% PS2:9-33 + " PS2.09: 17% PS2:9-33 + " PS2.09: 17% PS2:9-33 + " PS2.09: 17% PS2:9-33 +complex number PS2.06: 18% PS2:6-7 + " PS2.06: 35% PS2:6-13 +complex quantity F77.1: 48% F77(1)-2 + " PS1.02: 6% PS1:2-5 + " PS1.02: 62% PS1:2-21 + " PS2.06: 18% PS2:6-7 +complex sentence USD.32: 28% USD:32-5 + " USD.32: 28% USD:32-5 + " USD.32: 44% USD:32-6 + " USD.32: 58% USD:32-9 +complex type[s] SMM.19: 90% SMM:19-25 +complex value[s] INTRO.3F: 11% INTRO(3F)-1 + " INTRO.3F: 16% INTRO(3F)-1 + " INTRO.3F: 19% INTRO(3F)-1 + " PS1.02: 13% PS1:2-6 + " PS1.02: 13% PS1:2-6 + " PS1.02: 13% PS1:2-6 + " PS1.02: 13% PS1:2-6 + " PS1.02: 24% PS1:2-9 + " PS1.03: 38% PS1:3-5 +Compound Statement[s] PS1.01: 8% PS1:1-4 + " PS1.01: 62% PS1:1-21 + " PS1.01: 62% PS1:1-21 + " PS1.01: 69% PS1:1-23 + " PS2.06: 8% PS2:6-4 + " PS2.06: 47% PS2:6-17 +component USD.04: 72% USD:4-35 +component[s], filename USD.04: 60% USD:4-29 +components, header MH-MAIL.N: 51% MH-MAIL(5)-1 + " POST.N: 37% POST(8)-1 + " USD.08: 68% USD:8-82 + " USD.08: 78% USD:8-96 +component[s], list of MH user profile USD.08: 9% USD:8-9 +compose a message MH.N: 46% MH(1)-1 +composition of message[s] PROMPTER.N: 14% PROMPTER(1)-1 + " USD.08: 43% USD:8-52 +composition of outgoing mail USD.08: 83% USD:8-101 +compound sentence[s] USD.32: 29% USD:32-5 +compound statement[s] INDENT.1: 95% INDENT(1)-1 +compound-complex sentence[s] USD.32: 29% USD:32-5 + " USD.32: 38% USD:32-6 + " USD.32: 58% USD:32-9 +compress SMM.12A: 13% SMM:12-4 +compresses, uncompresses, zcat - compress and expand datum COMPRESS.1: 1% COMPRESS(1)-1 +compress a folder PACKF.N: 3% unknown +compressed files (.Z) SMM.12A: 32% SMM:12-7 +compressing folders FOLDER.N: 54% FOLDER(1)-2 +Compression COMPRESS.1: 52% COMPRESS(1)-1 + " COMPRESS.1: 83% COMPRESS(1)-2 + " COMPRESS.1: 14% COMPRESS(1)-1 +computation accurate to many decimal place[s] USD.06: 4% USD:6-1 +computation with large integer[s] USD.06: 3% USD:6-1 +Computer Aided Instruction LEARN.1: 1% LEARN(1)-1 +computer-aided design INTRO.1: 28% INTRO(1)-1 +Comsat INETD.8: 54% INETD(8)-1 + " SMM.12A: 83% SMM:12-19 +comsat - biff server COMSAT.8C: 3% COMSAT(8C)-1 +concatenating files CAT.1: 3% CAT(1)-1 +Concatenation, String USD.19: 59% USD:19-5 +Concealed newline[s] USD.24: 44% USD:24-15 + " USD.24: 44% USD:24-15 + " USD.24: 62% USD:24-20 +concatenation, string PS1.02: 59% PS1:2-20 +concept 108 SYSLINE.1: 8% SYSLINE(1)-1 +cond clause PS2.09: 27% PS2:9-52 + " PS2.09: 27% PS2:9-53 + " PS2.09: 78% PS2:9-127 + " PS2.09: 88% PS2:9-140 +condition, exceptional PS1.06: 40% PS1:6-19 +Conditional Statement PS1.01: 63% PS1:1-21 + " PS1.01: 63% PS1:1-21 +condition, alert SYSLOG.3: 24% SYSLOG(3)-1 +condition, break TTY.4: 44% TTY(4)-4 + " TTY.4: 44% TTY(4)-4 + " TTY.4: 70% TTY(4)-7 +condition, Critical SYSLOG.3: 26% SYSLOG(3)-1 +condition, end-of-file GETC.3S: 74% GETC(3S)-1 +condition, Race BINMAIL.1: 89% BINMAIL(1)-2 + " SMM.13: 58% SMM:13-20 +condition[s], test - test for various TEST.1: 3% TEST(1)-1 +condition codes SMM.19: 51% SMM:19-15 + " SMM.19: 62% SMM:19-17 + " SMM.19: 70% SMM:19-20 + " SMM.19: 71% SMM:19-20 + " SMM.19: 77% SMM:19-22 +Conditional Acceptance of Input USD.24: 74% USD:24-23 + " USD.24: 10% USD:24-5 +conditional branch SMM.19: 35% SMM:19-10 + " USD.03: 46% USD:3-11 +conditional execution CSH.1: 5% CSH(1)-1 +conditional testing PS1.17: 76% PS1:17-5 +conference proceedings USD.31: 34% USD:31-5 + " USD.31: 88% USD:31-16 +Config INTRO.4: 45% INTRO(4)-1 + " SMM.04: 66% SMM:4-2 + " SMM.12A: 83% SMM:12-20 +Config, Building Berkeley UNIX Kernels with SMM.02: 0% unknown +config - build system configuration files CONFIG.8: 2% CONFIG(8)-1 +configuration, /etc/syslog.conf * system logger SMM.01: 27% SMM:1-19 +configuration, /usr/lib/sendmail.cf * sendmail SMM.01: 27% SMM:1-19 +configuration, creating the SMM.01: 17% SMM:1-12 +configuration, device SMM.13: 98% SMM:13-33 +configuration, disk SMM.01: 28% SMM:1-20 + " SMM.01: 29% SMM:1-20 + " SMM.01: 41% SMM:1-27 +configuration, network PS1.08: 78% PS1:8-32 +Conflict, Ambiguity and PS1.15: 37% PS1:15-11 +configuration, hardware SMM.01: 2% SMM:1-3 + " SMM.01: 10% SMM:1-7 + " SMM.01: 44% SMM:1-29 + " SMM.02: 0% SMM:2-2 +configuration, interface INTRO.4N: 94% INTRO(4N)-4 +configuration, MACS L-DEVICES.5: 80% L-DEVICES(5)-2 + " L-DEVICES.5: 87% L-DEVICES(5)-2 + " SMM.09: 60% SMM:9-13 + " SMM.09: 60% SMM:9-13 +configuration, MH MH-PROFILE.N: 62% MH-PROFILE(5)-4 + " MH-PROFILE.N: 69% MH-PROFILE(5)-4 + " MH-PROFILE.N: 73% MH-PROFILE(5)-5 + " USD.08: 72% USD:8-88 + " USD.08: 73% USD:8-89 + " USD.08: 73% USD:8-89 +configuration, sendmail SMM.16: 55% SMM:16-8 +configuration, system CONFIG.8: 33% CONFIG(8)-1 + " SMM.01: 50% SMM:1-32 + " SMM.01: 52% SMM:1-33 + " SMM.01: 60% SMM:1-38 + " SMM.01: 99% SMM:1-65 + " SMM.02: 2% SMM:2-2 + " SMM.02: 26% SMM:2-8 + " SMM.02: 48% SMM:2-15 + " SMM.02: 74% SMM:2-23 + " SMM.04: 44% SMM:4-2 + " AUTOCONF.4: 7% AUTOCONF(4)-1 +configuration file CONFIG.8: 73% CONFIG(8)-1 + " EC.4: 19% EC(4)-1 + " SENDMAIL.8: 46% SENDMAIL(8)-2 + " SMM.01: 1% SMM:1-2 + " SMM.01: 28% SMM:1-19 + " SMM.01: 32% SMM:1-22 + " SMM.01: 40% SMM:1-26 + " SMM.01: 40% SMM:1-27 + " SMM.01: 56% SMM:1-35 + " SMM.01: 60% SMM:1-38 + " SMM.01: 62% SMM:1-39 + " SMM.01: 68% SMM:1-41 + " SMM.01: 68% SMM:1-41 + " SMM.01: 68% SMM:1-41 + " SMM.02: 1% SMM:2-2 + " SMM.02: 7% SMM:2-3 + " SMM.02: 8% SMM:2-3 + " SMM.02: 8% SMM:2-4 + " SMM.02: 8% SMM:2-4 + " SMM.02: 9% SMM:2-4 + " SMM.02: 9% SMM:2-4 + " SMM.02: 9% SMM:2-4 + " SMM.02: 9% SMM:2-4 + " SMM.02: 10% SMM:2-4 + " SMM.02: 10% SMM:2-4 + " SMM.02: 10% SMM:2-4 + " SMM.02: 11% SMM:2-4 + " SMM.02: 12% SMM:2-4 + " SMM.02: 12% SMM:2-4 + " SMM.02: 14% SMM:2-5 + " SMM.02: 15% SMM:2-5 + " SMM.02: 20% SMM:2-6 + " SMM.02: 20% SMM:2-6 + " SMM.02: 21% SMM:2-6 + " SMM.02: 21% SMM:2-7 + " SMM.02: 21% SMM:2-7 + " SMM.02: 21% SMM:2-7 + " SMM.02: 24% SMM:2-7 + " SMM.02: 27% SMM:2-8 + " SMM.02: 29% SMM:2-9 + " SMM.02: 49% SMM:2-15 + " SMM.02: 53% SMM:2-16 + " SMM.02: 65% SMM:2-20 + " SMM.02: 76% SMM:2-24 + " SMM.02: 83% SMM:2-28 + " SMM.02: 86% SMM:2-30 + " SMM.13: 89% SMM:13-30 + " SMM.16: 36% SMM:16-5 + " SMM.16: 37% SMM:16-5 + " SMM.16: 38% SMM:16-5 + " SMM.16: 38% SMM:16-5 + " SMM.16: 55% SMM:16-8 + " SMM.16: 57% SMM:16-8 + " SMM.16: 57% SMM:16-8 + " SMM.16: 58% SMM:16-8 + " SMM.16: 64% SMM:16-9 + " SMM.16: 81% SMM:16-11 + " UU.4: 38% UU(4)-1 + " SMM.07A: 0% SMM:07-1 + " SMM.07A: 0% SMM:07-1 + " SMM.07A: 0% SMM:07-1 + " SMM.07A: 3% SMM:07-4 + " SMM.07A: 3% SMM:07-4 + " SMM.07A: 3% SMM:07-4 + " SMM.07A: 3% SMM:07-4 + " SMM.07A: 4% SMM:07-4 + " SMM.07A: 7% SMM:07-6 + " SMM.07A: 9% SMM:07-6 + " SMM.07A: 11% SMM:07-7 + " SMM.07A: 11% SMM:07-7 + " SMM.07A: 22% SMM:07-11 + " SMM.07A: 22% SMM:07-12 + " SMM.07A: 26% SMM:07-13 + " SMM.07A: 27% SMM:07-14 + " SMM.07A: 28% SMM:07-14 + " SMM.07A: 29% SMM:07-14 + " SMM.07A: 29% SMM:07-15 + " SMM.07A: 35% SMM:07-16 + " SMM.07A: 35% SMM:07-17 + " SMM.07A: 35% SMM:07-17 + " SMM.07A: 37% SMM:07-17 + " SMM.07A: 39% SMM:07-18 + " SMM.07A: 41% SMM:07-19 + " SMM.07A: 50% SMM:07-23 + " SMM.07A: 56% SMM:07-24 + " SMM.07A: 67% SMM:07-28 + " SMM.07A: 68% SMM:07-28 + " SMM.07A: 69% SMM:07-30 + " SMM.07A: 73% SMM:07-32 + " SMM.07A: 79% SMM:07-36 + " SMM.07A: 81% SMM:07-36 + " SMM.07A: 88% SMM:07-38 + " SMM.07A: 88% SMM:07-38 + " SMM.12A: 94% SMM:12-22 + " SMM.12A: 95% SMM:12-22 +configuration file, sample SMM.02: 83% SMM:2-28 +CONFIGURATION FILE GRAMMAR SMM.02: 76% SMM:2-24 +configuration file option[s] SMM.02: 92% SMM:2-32 + " SMM.13: 57% SMM:13-20 +configuration file syntax SMM.02: 20% SMM:2-6 +configuration of the virtual memory limit[s] SMM.01: 36% SMM:1-23 +configuration option[s] CONFIG.8: 30% CONFIG(8)-1 + " RESOLVER.5: 32% RESOLVER(5)-1 + " SMM.01: 67% SMM:1-41 + " SMM.02: 0% SMM:2-2 + " SMM.02: 98% SMM:2-33 + " SMM.13: 65% SMM:13-23 + " SMM.13: 69% SMM:13-24 + " SMM.13: 98% SMM:13-34 + " SMM.07A: 31% SMM:07-15 + " SMM.07A: 69% SMM:07-30 +configuration parameters SMM.02: 29% SMM:2-9 + " SMM.13: 43% SMM:13-15 + " SMM.07A: 26% SMM:07-13 +configuration program (see also Config) SMM.02: 57% SMM:2-17 + " SMM.02: 60% SMM:2-18 + " SMM.02: 66% SMM:2-20 +configure network IFCONFIG.8C: 6% IFCONFIG(8C)-1 +Configuring terminal[s] SMM.01: 50% SMM:1-32 +conflict - search for alias/password conflicts CONFLICT.N: 2% CONFLICT(8)-1 + " USD.08: 75% USD:8-91 +Conflict Resolution Message SMM.22: 60% SMM:22-6 + " SMM.22: 36% SMM:22-4 +conflicts, parsing PS1.15: 49% PS1:15-14 + " PS1.15: 49% PS1:15-14 + " PS1.15: 53% PS1:15-16 +conflict[s], reduce/reduce PS1.15: 40% PS1:15-12 + " PS1.15: 41% PS1:15-12 + " PS1.15: 41% PS1:15-12 + " PS1.15: 42% PS1:15-12 + " PS1.15: 54% PS1:15-16 + " PS1.15: 55% PS1:15-16 +conflict[s], shift/reduce PS1.15: 40% PS1:15-12 + " PS1.15: 45% PS1:15-13 + " PS1.15: 45% PS1:15-13 + " PS1.15: 46% PS1:15-14 + " PS1.15: 48% PS1:15-14 + " PS1.15: 54% PS1:15-16 + " PS1.15: 54% PS1:15-16 +congestion control SMM.15: 68% SMM:15-20 + " SMM.15: 69% SMM:15-20 + " SMM.15: 83% SMM:15-24 +Conjunction[s] USD.32: 38% USD:32-6 +connec IDP.4P: 13% IDP(4P)-1 +CONNECT SMM.15: 49% SMM:15-15 + " SMM.15: 51% SMM:15-16 + " ICMP.4P: 36% ICMP(4P)-1 + " UDP.4P: 22% UDP(4P)-1 +connect - initiate a connection on a socket CONNECT.2: 1% CONNECT(2)-1 +connect time AC.8: 16% AC(8)-1 +connect time accounting SMM.01: 82% SMM:1-50 +connect() PS1.07a: 59% PS1:7-14 +connect(s, name, namelen) PS1.06: 79% PS1:6-34 +connected peer SMM.15: 53% SMM:15-16 + " GETPEERNAME.2: 7% GETPEERNAME(2)- +connected socket GETHOSTBYNAME.3N: 47% GETHOSTBYNAME(3) + " GETSOCKOPT.2: 53% GETSOCKOPT(2)-2 + " INTRO.2: 52% INTRO(2)-4 + " RECV.2: 17% RECV(2)-1 + " SMM.13: 35% SMM:13-13 +connected socket[s], socketpair - create a pair of SOCKETPAIR.2: 4% SOCKETPAIR(2)-1 +connected state RECV.2: 20% RECV(2)-1 + " SEND.2: 20% SEND(2)-1 + " SOCKET.2: 42% SOCKET(2)-1 +connecting to another socket PS1.06: 77% PS1:6-34 +connection, full-duplex SHUTDOWN.2: 10% SHUTDOWN(2)-1 + " SHUTDOWN.2: 27% SHUTDOWN(2)-1 + " TIP.1C: 2% TIP(1C)-1 + " TN3270.1: 5% TN3270(1)-1 +connections, Accepting PS1.06: 50% PS1:6-24 + " PS1.06: 78% PS1:6-34 +connection, Ending PS1.07a: 71% PS1:7-17 + " PS1.07a: 82% PS1:7-21 +connection, Establishing a stream PS1.07a: 76% PS1:7-18 +connection[s], listen for PS1.06: 78% PS1:6-34 +connections, incoming LISTEN.2: 20% LISTEN(2)-1 + " LISTEN.2: 23% LISTEN(2)-1 + " SMM.13: 85% SMM:13-29 + " SMM.15: 17% SMM:15-6 + " SMM.15: 26% SMM:15-8 + " SPP.4P: 19% SPP(4P)-1 + " TCP.4P: 27% TCP(4P)-1 +connection, IPC SMM.16: 26% SMM:16-4 + " SMM.07A: 62% SMM:07-26 +connection[s], network L-DEVICES.5: 43% L-DEVICES(5)-1 + " L_SYS.5: 46% L.SYS(5)-2 + " SMM.01: 84% SMM:1-50 + " SMM.09: 58% SMM:9-13 + " SMM.09: 68% SMM:9-15 + " SMM.10: 0% SMM:10-1 + " SYSTAT.1: 6% SYSTAT(1)-1 + " SYSTAT.1: 65% SYSTAT(1)-3 + " SYSTAT.1: 86% SYSTAT(1)-4 + " TTY.4: 3% TTY(4)-1 + " SMM.07A: 31% SMM:07-15 + " SMM.07A: 57% SMM:07-25 + " SMM.12A: 97% SMM:12-23 +connection, PAD L_SYS.5: 43% L.SYS(5)-2 + " SMM.09: 57% SMM:9-13 +connections, pending ACCEPT.2: 20% ACCEPT(2)-1 + " ACCEPT.2: 26% ACCEPT(2)-1 + " ACCEPT.2: 35% ACCEPT(2)-1 + " LISTEN.2: 43% LISTEN(2)-1 + " PS1.07a: 62% PS1:7-14 + " PS1.07a: 75% PS1:7-18 + " PS1.08: 18% PS1:8-7 +connection[s], SPP PS1.08: 90% PS1:8-37 + " PS1.08: 92% PS1:8-38 + " PS1.08: 92% PS1:8-38 +connection establishment PS1.06: 40% PS1:6-19 + " PS1.06: 42% PS1:6-19 + " PS1.08: 14% PS1:8-6 + " PS1.08: 14% PS1:8-6 + " PS1.08: 22% PS1:8-8 + " PS1.08: 31% PS1:8-11 +connection request[s] PS1.06: 39% PS1:6-19 +connection to a named socket PS1.06: 79% PS1:6-34 +connection-based virtual circuit[s] PS1.06: 75% PS1:6-33 +Connectionless server[s] PS1.08: 50% PS1:8-20 +Connectionless socket[s] PS1.08: 22% PS1:8-8 +connections, pending SMM.13: 42% SMM:13-15 + " SMM.15: 52% SMM:15-16 +connection, secondary control FTP.1C: 51% FTP(1C)-4 + " FTP.1C: 52% FTP(1C)-4 + " FTP.1C: 54% FTP(1C)-4 + " FTP.1C: 54% FTP(1C)-4 + " FTP.1C: 55% FTP(1C)-4 +connection, Setting up a UUCP SMM.01: 56% SMM:1-35 +connection[s], TCP GETHOSTBYNAME.3N: 54% GETHOSTBYNAME(3) + " GETTABLE.8C: 50% GETTABLE(8C)-1 + " L_SYS.5: 51% L.SYS(5)-2 + " SMM.02: 97% SMM:2-33 + " SMM.09: 70% SMM:9-15 + " SMM.15: 51% SMM:15-16 + " RESOLVER.3: 35% RESOLVER(3)-1 +connection[s], UUCP SMM.01: 56% SMM:1-35 + " SMM.07A: 55% SMM:07-24 + " SMM.07A: 57% SMM:07-25 +connection, X.25 PAD SMM.09: 57% SMM:9-13 + " L_SYS.5: 43% L.SYS(5)-2 + " L-DEVICES.5: 21% L-DEVICES(5)-1 +Connection establishment CONNECT.2: 51% CONNECT(2)-1 + " SMM.15: 20% SMM:15-7 + " SMM.15: 21% SMM:15-7 +connection level flow control SMM.15: 87% SMM:15-24 +connection message TIP.1C: 33% TIP(1C)-2 + " SMM.12A: 52% SMM:12-12 +connection request[s] SMM.02: 99% SMM:2-33 + " SMM.13: 41% SMM:13-15 + " SMM.13: 77% SMM:13-26 + " SMM.15: 26% SMM:15-8 + " SMM.15: 26% SMM:15-8 +cons - VAX-11 console interface CONS.4: 2% CONS(4)-1 +cons cell PS2.09: 7% PS2:9-10 + " PS2.09: 8% PS2:9-14 + " PS2.09: 50% PS2:9-88 +Constants PS1.01: 2% PS1:1-2 + " PS2.06: 18% PS2:6-7 +consistency check[s] CRASH.8V: 11% CRASH(8V)-1 + " FSCK.8: 57% FSCK(8)-1 + " REBOOT.2: 65% REBOOT(2)-1 + " SMM.05: 1% SMM:5-2 + " SMM.05: 4% SMM:5-3 + " SMM.15: 59% SMM:15-18 + " VIPW.8: 64% VIPW(8)-1 +console, booting from the SMM.01: 74% SMM:1-45 +console, VAX-11 CONS.4: 3% CONS(4)-1 +console cassette SMM.01: 38% SMM:1-25 + " SMM.01: 38% SMM:1-25 +console floppy FORMAT.8V: 85% FORMAT(8V)-3 + " SMM.01: 10% SMM:1-7 + " SMM.01: 37% SMM:1-24 + " SMM.01: 38% SMM:1-25 + " ARFF.8V: 7% ARFF(8V)-1 +console media ARFF.8V: 21% ARFF(8V)-1 + " SMM.01: 2% SMM:1-3 + " SMM.01: 2% SMM:1-3 +console terminal AUTOCONF.4: 39% AUTOCONF(4)-1 + " LAST.1: 39% LAST(1)-1 + " SMM.01: 73% SMM:1-45 +Constants, Character SMM.19: 96% SMM:19-26 +Constants, Floating Point SMM.19: 94% SMM:19-26 +Constant character space (width) mode USD.24: 28% USD:24-10 +constant string[s], database of XSTR.1: 32% XSTR(1)-1 +constants, case PS1.01: 66% PS1:1-22 + " PS1.01: 66% PS1:1-22 + " PS2.06: 50% PS2:6-18 +Constants, Character PS1.01: 4% PS1:1-2 + " PS1.01: 6% PS1:1-3 + " PS1.01: 20% PS1:1-7 + " PS1.01: 78% PS1:1-26 + " PS1.01: 78% PS1:1-26 + " PS1.01: 91% PS1:1-31 + " PS1.01: 93% PS1:1-31 + " PS1.02: 17% PS1:2-7 + " PS1.02: 55% PS1:2-19 + " PS1.02: 58% PS1:2-19 + " PS1.02: 66% PS1:2-22 + " PS1.02: 66% PS1:2-22 + " PS1.02: 67% PS1:2-22 + " PS1.04: 33% PS1:4-18 + " PS1.09: 70% PS1:9-8 + " PS2.10: 43% PS2:10-37 +constants, complex PS1.02: 31% PS1:2-11 + " PS1.02: 72% PS1:2-24 + " PS1.02: 72% PS1:2-24 + " PS2.06: 75% PS2:6-26 +Constants, Floating PS1.01: 5% PS1:1-3 + " PS1.01: 20% PS1:1-7 + " PS1.16: 78% PS1:16-11 + " PS2.10: 36% PS2:10-33 + " PS2.10: 36% PS2:10-33 +Constants, Floating Point PS1.15: 88% PS1:15-28 + " PS1.15: 92% PS1:15-28 + " PS2.06: 10% PS2:6-5 + " PS2.10: 36% PS2:10-33 +constants, real PS1.02: 72% PS1:2-24 + " PS2.06: 19% PS2:6-8 + " PS2.06: 19% PS2:6-8 +Constant Expressions PS1.01: 45% PS1:1-15 + " PS1.01: 56% PS1:1-18 + " PS1.01: 66% PS1:1-22 + " PS1.01: 80% PS1:1-27 +constraint, integrity PS2.10: 1% PS2:10-3 + " PS2.10: 12% PS2:10-15 + " PS2.10: 13% PS2:10-16 + " PS2.10: 15% PS2:10-18 + " PS2.10: 15% PS2:10-18 + " PS2.10: 15% PS2:10-18 + " PS2.10: 48% PS2:10-41 + " PS2.10: 90% PS2:10-80 + " PS2.10: 90% PS2:10-80 + " PS2.10: 90% PS2:10-80 + " PS2.10: 90% PS2:10-80 +constraint, integrity - define integrity PS2.10: 15% PS2:10-18 +constructing file system[s] SMM.01: 47% SMM:1-31 + " SMM.01: 14% SMM:1-10 +CONT CSH.1: 60% CSH(1)-12 + " PLOT.3F: 31% PLOT(3F)-1 + " PLOT.3X: 14% PLOT(3X)-1 +Content[s], Table of MS.7: 50% MS(7)-2 + " USD.21: 54% USD:21-2 + " USD.21: 67% USD:21-2 + " USD.22: 43% USD:22-8 +CONTEXT PACKF.N: 83% PACKF(1)-1 + " USD.08: 25% USD:8-27 + " USD.08: 69% USD:8-85 +consumed, resources PS1.06: 9% PS1:6-7 +context, MH FOLDER.N: 25% FOLDER(1)-1 + " MH-PROFILE.N: 4% MH-PROFILE(5)-1 + " MH-PROFILE.N: 71% MH-PROFILE(5)-5 + " SCAN.N: 74% SCAN(1)-2 + " USD.08: 19% USD:8-20 + " USD.08: 69% USD:8-85 + " USD.08: 73% USD:8-89 +context, previous USD.15: 12% USD:15-4 +context, process SIGNAL.3C: 78% SIGNAL(3C)-2 + " SIGRETURN.2: 76% SIGRETURN(2)-1 + " SIGVEC.2: 5% SIGVEC(2)-1 +context, user MH-PROFILE.N: 76% MH-PROFILE(5)-5 + " USD.08: 3% USD:8-2 + " USD.08: 73% USD:8-89 +context addresses USD.18: 23% USD:18-3 + " USD.18: 25% USD:18-3 + " USD.18: 26% USD:18-3 + " USD.18: 35% USD:18-4 + " USD.18: 57% USD:18-6 + " USD.18: 57% USD:18-6 +Context diff[s] PATCH.N: 9% PATCH(1)-1 + " PATCH.N: 14% PATCH(1)-1 + " PATCH.N: 24% PATCH(1)-1 + " PATCH.N: 27% PATCH(1)-1 + " PATCH.N: 29% PATCH(1)-1 + " PATCH.N: 51% PATCH(1)-2 + " PATCH.N: 88% PATCH(1)-3 + " USD.17: 34% USD:17-15 + " DIFF.1: 58% DIFF(1)-2 +context editor USD.18: 0% USD:18-1 +context file[s] MH-PROFILE.N: 46% MH-PROFILE(5)-3 + " USD.08: 7% USD:8-6 + " USD.08: 7% USD:8-6 + " USD.08: 7% USD:8-6 + " USD.08: 7% USD:8-6 + " USD.08: 71% USD:8-87 + " USD.08: 74% USD:8-89 + " USD.08: 74% USD:8-89 +context search[s] USD.01: 73% USD:1-11 + " USD.12: 59% USD:12-6 + " USD.12: 61% USD:12-7 + " USD.12: 62% USD:12-7 + " USD.12: 66% USD:12-7 + " USD.12: 66% USD:12-7 + " USD.12: 67% USD:12-7 + " USD.12: 77% USD:12-8 + " USD.12: 81% USD:12-9 + " USD.12: 82% USD:12-9 + " USD.13: 42% USD:13-8 + " USD.13: 51% USD:13-9 + " USD.14: 65% USD:14-16 + " USD.14: 76% USD:14-19 + " USD.18: 56% USD:18-6 +context search expression[s] USD.12: 62% USD:12-7 + " USD.12: 62% USD:12-7 + " USD.12: 63% USD:12-7 + " USD.12: 65% USD:12-7 + " USD.12: 68% USD:12-7 +Context search in reverse direction USD.12: 99% USD:12-10 +context searching USD.12: 1% USD:12-1 +context switch[s] GETRUSAGE.2: 77% GETRUSAGE(2)-2 + " GETRUSAGE.2: 82% GETRUSAGE(2)-2 + " SMM.13: 21% SMM:13-8 + " SMM.13: 54% SMM:13-19 + " SMM.13: 55% SMM:13-19 + " SMM.13: 55% SMM:13-19 + " SYSTAT.1: 60% SYSTAT(1)-3 + " GETRUSAGE.2: 33% GETRUSAGE(2)-1 + " GETRUSAGE.2: 34% GETRUSAGE(2)-1 +context-free grammar YACC.1: 8% YACC(1)-1 +Continuation line STRUCT.1: 28% STRUCT(1)-1 +Continue USD.04: 72% USD:4-36 +Continue - Bourne shell command SH.1: 0% SH(1)-1 +context, Directory PS1.06: 49% PS1:6-24 + " PS1.06: 49% PS1:6-24 + " PS1.06: 57% PS1:6-27 +context, root directory PS1.06: 57% PS1:6-27 + " PS1.06: 58% PS1:6-27 + " PS1.06: 58% PS1:6-27 +Context sensitivity PS1.16: 81% PS1:16-11 + " PS1.16: 31% PS1:16-4 +continuation convention[s] PS1.15: 1% PS1:15-1 + " PS2.06: 79% PS2:6-27 + " PS2.08: 20% PS2:8-3 +Continue Statement PS1.01: 67% PS1:1-23 +continue after stop SIGNAL.3C: 30% SIGNAL(3C)-1 +continue shell command CSH.1: 52% CSH(1)-10 +continue signal CSH.1: 60% CSH(1)-13 + " KILLPG.2: 33% ABS(3)-1 +continue-proces USD.17: 63% USD:17-28 +control character[s] PS1.03: 23% PS1:3-4 + " PS1.06: 91% PS1:6-38 + " PS1.16: 29% PS1:16-4 + " PS2.03: 99% PS2:3-16 + " PS2.03: 99% PS2:3-16 + " PS2.04: 60% PS2:4-6 + " PS2.10: 36% PS2:10-32 + " PS2.10: 89% PS2:10-79 + " PS2.10: 89% PS2:10-79 +control flow PS2.06: 0% PS2:6-1 + " PS2.06: 1% PS2:6-1 +control information PS1.09: 81% PS1:9-8 + " PS2.05: 36% PS2:5-3 +control line PS1.01: 79% PS1:1-26 + " PS1.01: 80% PS1:1-27 + " PS1.01: 81% PS1:1-27 + " PS1.01: 81% PS1:1-27 + " PS1.01: 82% PS1:1-27 + " PS1.01: 82% PS1:1-27 +control[s], access CORE.5: 35% CORE(5)-1 + " LPD.8: 18% LPD(8)-1 + " SMM.06: 25% SMM:6-3 + " SMM.06: 54% SMM:6-4 +control[s], administrative SMM.01: 71% SMM:1-42 + " SMM.08: 63% SMM:8-2 + " SMM.14: 1% SMM:14-2 +control, congestion SMM.15: 68% SMM:15-20 + " SMM.15: 69% SMM:15-20 + " SMM.15: 83% SMM:15-24 +control, modem DH.4: 18% DH(4)-1 + " DMF.4: 11% DMF(4)-1 + " DMF.4: 41% DMF(4)-1 + " DMZ.4: 14% DMZ(4)-1 + " SMM.01: 52% SMM:1-33 +control[s], resource SMM.01: 0% SMM:1-1 + " SMM.01: 82% SMM:1-50 + " SMM.01: 82% SMM:1-50 +control block[s] SMM.15: 79% SMM:15-23 + " SMM.15: 80% SMM:15-23 + " SMM.15: 80% SMM:15-23 + " SMM.15: 81% SMM:15-23 + " SMM.15: 81% SMM:15-23 + " SMM.15: 81% SMM:15-23 + " SMM.15: 83% SMM:15-23 +control character[s] COL.1: 75% COL(1)-1 + " CTYPE.3: 75% CTYPE(3)-1 + " JOVE.N: 76% JOVE(1)-3 + " JOVE.N: 77% JOVE(1)-3 + " LPR.1: 18% LPR(1)-1 + " SMM.06: 64% SMM:6-5 + " STTY.1: 29% STTY(1)-1 + " TERMCAP.5: 29% TERMCAP(5)-6 + " TTY.4: 31% TTY(4)-3 + " TTY.4: 93% TTY(4)-10 + " USD.04: 73% USD:4-36 + " USD.04: 73% USD:4-36 + " USD.04: 95% USD:4-43 + " USD.15: 11% USD:15-4 + " USD.15: 31% USD:15-9 + " USD.15: 31% USD:15-9 + " USD.15: 71% USD:15-20 + " USD.15: 72% USD:15-20 + " USD.15: 76% USD:15-21 + " USD.16: 45% USD:16-9 + " USD.16: 83% USD:16-15 + " USD.17: 4% USD:17-2 + " USD.17: 8% USD:17-4 + " USD.17: 53% USD:17-24 + " USD.24: 8% USD:24-3 + " USD.24: 18% USD:24-8 + " USD.24: 18% USD:24-8 + " USD.24: 32% USD:24-11 + " USD.24: 35% USD:24-12 + " USD.24: 35% USD:24-12 + " USD.24: 61% USD:24-20 + " USD.24: 61% USD:24-20 + " USD.24: 61% USD:24-20 + " USD.30: 84% USD:30-10 + " SMM.12A: 31% SMM:12-7 +Control flow in the shell USD.03: 23% USD:3-5 +control key[s] USD.04: 4% USD:4-3 + " USD.04: 73% USD:4-36 + " USD.04: 73% USD:4-36 + " USD.15: 11% USD:15-4 + " USD.17: 4% USD:17-2 + " USD.17: 4% USD:17-2 +control message[s] SMM.10: 10% SMM:10-3 + " SMM.10: 60% SMM:10-16 + " SMM.10: 60% SMM:10-16 + " SMM.10: 61% SMM:10-16 + " SMM.10: 61% SMM:10-16 + " SMM.10: 61% SMM:10-16 + " SMM.10: 61% SMM:10-16 + " SMM.10: 63% SMM:10-16 + " SMM.10: 65% SMM:10-17 + " SMM.10: 68% SMM:10-17 + " SMM.10: 68% SMM:10-17 + " SMM.10: 69% SMM:10-18 + " SMM.10: 70% SMM:10-18 + " SMM.10: 70% SMM:10-18 + " SMM.10: 70% SMM:10-18 + " SMM.10: 75% SMM:10-19 +control process RCMD.3: 38% RCMD(3)-1 + " RCMD.3: 40% RCMD(3)-1 + " REXEC.3: 60% REXEC(3)-1 + " REXEC.3: 65% REXEC(3)-1 +control statements F77.1: 66% F77(1)-2 + " USD.06: 42% USD:6-5 + " USD.06: 44% USD:6-5 + " USD.06: 49% USD:6-6 +control status register[s] SMM.01: 90% SMM:1-57 + " SMM.01: 91% SMM:1-57 + " SMM.02: 33% SMM:2-10 + " SMM.02: 33% SMM:2-10 +Control structure[s] TTY.4: 93% TTY(4)-10 + " USD.04: 61% USD:4-29 +control terminal[s] EXECVE.2: 48% EXECVE(2)-1 + " FLUSH.3F: 73% FLUSH(3F)-1 + " GETPGRP.2: 87% GETPGRP(2)-1 + " PS.1: 4% PS(1)-1 + " SIGNAL.3C: 8% SIGNAL(3C)-1 + " SIGNAL.3C: 11% SIGNAL(3C)-1 + " TTY.4: 4% TTY(4)-1 + " TTY.4: 5% TTY(4)-1 + " TTY.4: 5% TTY(4)-1 + " TTY.4: 6% TTY(4)-1 + " TTY.4: 6% TTY(4)-1 + " TTY.4: 14% TTY(4)-2 + " TTY.4: 19% TTY(4)-2 + " TTY.4: 53% TTY(4)-5 + " TTY.4: 82% TTY(4)-9 + " TTYNAME.3: 55% TTYNAME(3)-1 + " TTYNAME.3: 86% TTYNAME(3)-1 + " VHANGUP.2: 9% VHANGUP(2)-1 + " VHANGUP.2: 44% VHANGUP(2)-1 + " VHANGUP.2: 73% VHANGUP(2)-1 + " VHANGUP.2: 81% VHANGUP(2)-1 +control-flow primitive[s] USD.03: 3% USD:3-1 + " USD.03: 0% USD:3-1 +controller[s], disk SMM.01: 45% SMM:1-29 + " SMM.14: 56% SMM:14-9 +controller, Ethernet SMM.13: 89% SMM:13-30 + " SMM.13: 89% SMM:13-30 + " SMM.13: 90% SMM:13-30 + " SMM.13: 90% SMM:13-31 +controller[s], memory AUTOCONF.4: 11% AUTOCONF(4)-1 + " AUTOCONF.4: 59% AUTOCONF(4)-1 + " AUTOCONF.4: 62% AUTOCONF(4)-1 + " SMM.01: 37% SMM:1-25 + " SMM.13: 50% SMM:13-18 + " SMM.13: 51% SMM:13-18 +controller[s], UNIBUS SMM.01: 8% SMM:1-5 + " SMM.02: 32% SMM:2-9 + " SMM.02: 33% SMM:2-10 + " SMM.02: 43% SMM:2-13 + " SMM.02: 43% SMM:2-13 + " SMM.02: 55% SMM:2-17 + " SMM.02: 70% SMM:2-21 +controlling terminal NICE.1: 37% NICE(1)-1 + " PS1.08: 46% PS1:8-18 + " PS1.08: 46% PS1:8-19 + " PS1.08: 47% PS1:8-19 + " PS1.08: 70% PS1:8-28 + " ROUTED.8C: 54% ROUTED(8C)-2 + " SYSLOG.3: 49% SYSLOG(3)-1 + " TTY.4: 7% TTY(4)-1 + " XNSROUTED.8C: 85% XNSROUTED(8C)-1 +convention[s], Calling PC.1: 32% PC(1)-1 + " SMM.13: 30% SMM:13-11 + " SMM.15: 58% SMM:15-17 + " SMM.15: 61% SMM:15-18 +convention[s], escaping CSH.1: 3% CSH(1)-1 + " USD.13: 15% USD:13-3 +convention[s], file naming PS1.12: 61% PS1:12-5 +Conversion[s] PS1.01: 12% PS1:1-4 + " PS1.01: 12% PS1:1-4 + " PS2.10: 5% PS2:10-7 + " PS2.10: 5% PS2:10-7 +Conversion[s], Arithmetic PS1.01: 16% PS1:1-5 + " PS1.01: 16% PS1:1-5 + " PS1.01: 25% PS1:1-8 + " PS1.01: 26% PS1:1-8 + " PS1.01: 28% PS1:1-9 + " PS1.01: 29% PS1:1-9 + " PS1.01: 31% PS1:1-9 + " PS1.01: 31% PS1:1-9 + " PS1.01: 33% PS1:1-10 + " PS1.01: 34% PS1:1-10 + " PS1.01: 34% PS1:1-10 + " PS1.01: 35% PS1:1-11 + " PS1.01: 36% PS1:1-11 + " PS1.01: 65% PS1:1-22 +conventions, file naming FTP.1C: 38% FTP(1C)-3 + " FTP.1C: 47% FTP(1C)-4 + " FTP.1C: 78% FTP(1C)-6 +conventions, mathematical USD.26: 15% USD:26-2 + " USD.27: 36% USD:27-5 + " USD.27: 66% USD:27-7 +convention[s], quoting USD.03: 30% USD:3-7 + " USD.03: 60% USD:3-15 + " USD.03: 63% USD:3-16 + " CSH.1: 4% CSH(1)-1 + " CSH.1: 23% CSH(1)-5 + " EXPR.1: 86% EXPR(1)-1 + " USD.17: 8% USD:17-4 + " USD.26: 50% USD:26-4 +conversation mode WINDOW.1: 18% WINDOW(1)-2 + " WINDOW.1: 18% WINDOW(1)-2 + " WINDOW.1: 26% WINDOW(1)-2 +conversation sequence count SMM.09: 90% SMM:9-19 +converse with another user TALK.1: 2% TALK(1)-1 +conversion of old Fortran or Ratfor programs to EFL PS2.06: 71% PS2:6-24 +Conversions of floating value[s] PS1.01: 14% PS1:1-5 +Converting value[s] PS1.10: 59% PS1:10-12 +conversion, analog-digital AD.4: 47% AD(4)-1 +Conversion, Arithmetic SMM.19: 71% SMM:19-20 + " SMM.19: 85% SMM:19-24 +conversion, float to double CC.1: 56% CC(1)-2 +conversion, long, short - integer object LONG.3F: 8% unknown +conversion, output ECVT.3: 5% ECVT(3)-1 + " PRINTF.3S: 1% PRINTF(3S)-1 + " USD.06: 22% USD:6-3 +conversion, printf, fprintf, sprintf - formatted output PRINTF.3S: 0% PRINTF(3S)-1 +conversion, scanf, fscanf, sscanf - formatted input SCANF.3S: 0% SCANF(3S)-1 +conversion, short - integer object LONG.3F: 9% unknown +conversion, signed PRINTF.3S: 40% PRINTF(3S)-1 +conversion, type SMM.19: 29% SMM:19-9 +conversion character[s] PRINTF.3S: 63% PRINTF(3S)-2 + " SCANF.3S: 23% SCANF(3S)-1 + " SCANF.3S: 30% SCANF(3S)-1 + " SCANF.3S: 33% SCANF(3S)-1 + " SCANF.3S: 71% SCANF(3S)-2 + " SCANF.3S: 74% SCANF(3S)-2 + " SCANF.3S: 77% SCANF(3S)-2 +Conversion Command, Case USD.17: 0% USD:17-1 +conversion of numbers from one base to another base USD.06: 4% USD:6-1 +conversion operation[s] SMM.19: 30% SMM:19-9 + " SMM.19: 30% SMM:19-9 + " SMM.19: 31% SMM:19-9 + " SMM.19: 31% SMM:19-9 +conversion operator[s] SMM.19: 2% SMM:19-2 + " SMM.19: 3% SMM:19-2 + " SMM.19: 28% SMM:19-8 + " SMM.19: 30% SMM:19-9 + " SMM.19: 30% SMM:19-9 + " SMM.19: 30% SMM:19-9 + " SMM.19: 37% SMM:19-11 + " SMM.19: 38% SMM:19-11 + " SMM.19: 40% SMM:19-11 + " SMM.19: 64% SMM:19-18 +conversion program UNITS.1: 3% UNITS(1)-1 +conversion specification[s] PRINTF.3S: 18% PRINTF(3S)-1 + " PRINTF.3S: 20% PRINTF(3S)-1 + " PRINTF.3S: 22% PRINTF(3S)-1 + " SCANF.3S: 14% SCANF(3S)-1 + " SCANF.3S: 23% SCANF(3S)-1 +convert archives to random library[s] RANLIB.1: 5% RANLIB(1)-1 +convert ASCII to EBCDIC DD.1: 31% DD(1)-1 +convert ASCII to numbers ATOF.3: 8% ATOF(3)-1 +convert EBCDIC to ASCII DD.1: 30% DD(1)-1 +convert to lower case DD.1: 37% DD(1)-1 +convert to upper case DD.1: 38% DD(1)-1 +converting data USD.19: 81% USD:19-6 +converting from 4.2BSD to 4.3BSD SMM.01: 34% SMM:1-22 +Converting pre-4.2BSD System[s] SMM.01: 9% SMM:1-7 +cooked mode PS1.06: 89% PS1:6-38 + " STTY.1: 14% STTY(1)-1 + " TSET.1: 61% TSET(1)-3 + " TTY.4: 10% TTY(4)-2 + " TTY.4: 17% TTY(4)-2 + " TTY.4: 35% TTY(4)-4 +cookie, magic FSEEK.3S: 73% FSEEK(3S)-1 + " TERMCAP.5: 65% TERMCAP(5)-10 + " TERMCAP.5: 95% TERMCAP(5)-13 +cooperating processes FLOCK.2: 26% FLOCK(2)-1 + " PIPE.2: 34% PIPE(2)-1 +Copy USD.16: 30% USD:16-6 +cooperating processes PS1.06: 70% PS1:6-31 + " PS1.06: 70% PS1:6-31 + " PS1.07a: 0% PS1:7-1 + " PS1.07a: 8% PS1:7-2 + " PS2.03: 55% PS2:3-9 +copy - copy data into/from a relation from/into a UNIX file PS2.10: 5% PS2:10-8 +copy[s], carbon MAIL.1: 68% MAIL(1)-4 + " USD.07: 11% USD:7-3 + " USD.07: 35% USD:7-9 + " USD.07: 35% USD:7-9 + " USD.09: 22% USD:9-3 +copy, file RCP.1C: 3% RCP(1C)-1 + " UUCP.1C: 43% UUCP(1C)-1 + " UUCP.1C: 45% UUCP(1C)-1 +copy[s], master RDIST.1: 30% RDIST(1)-1 + " RDIST.1: 32% RDIST(1)-2 + " RDIST.1: 40% RDIST(1)-2 +copies, multiple LPR.1: 53% LPR(1)-1 + " PRINTCAP.5: 50% PRINTCAP(5)-1 + " USD.18: 64% USD:18-6 +copy, tape to tape SMM.12A: 50% SMM:12-12 +copy[s], third party RCP.1C: 64% RCP(1C)-1 +copy, uucp - unix to unix UUCP.1C: 1% UUCP(1C)-1 +copy a message USD.08: 6% USD:8-6 +copy command MAIL.1: 35% MAIL(1)-2 + " USD.07: 26% USD:7-6 + " USD.07: 54% USD:7-13 + " USD.14: 54% USD:14-14 + " USD.14: 55% USD:14-14 +copy file[s] USD.15: 5% USD:15-3 +copy mode USD.24: 43% USD:24-15 + " USD.24: 46% USD:24-15 + " USD.24: 49% USD:24-16 + " USD.24: 56% USD:24-18 + " USD.24: 56% USD:24-18 + " USD.24: 59% USD:24-19 + " USD.24: 62% USD:24-20 +Copy of a File, Making a USD.13: 67% USD:13-12 +copy operations IFCONFIG.8C: 43% IFCONFIG(8C)-1 + " SMM.14: 69% SMM:14-10 + " SMM.15: 92% SMM:15-26 +copy-region (ESC W) USD.17: 63% USD:17-29 +copydb - create batch files to copy out a data base and restore it PS2.10: 51% PS2:10-46 +copying lines USD.13: 88% USD:13-15 + " USD.14: 54% USD:14-14 +copying subtrees of files CP.1: 84% +copyrighted work[s] USD.10: 33% USD:10-4 + " USD.10: 34% USD:10-4 + " USD.10: 33% USD:10-4 +CORE VLIMIT.3C: 42% VLIMIT(3C)-1 + " ADB.1: 4% ADB(1)-1 +core - format of memory image file CORE.5: 3% CORE(5)-1 +core dump PS2.09: 46% PS2:9-81 + " PS1.11a: 25% PS1:11-2 + " PS1.11a: 39% PS1:11-3 +core dump[s] ABORT.3: 43% ABORT(3)-1 + " CRASH.8V: 91% CRASH(8V)-3 + " CSH.1: 62% CSH(1)-13 + " MHL.N: 10% MHL(1)-1 + " RC.8: 89% RC(8)-1 + " REFER.1: 99% REFER(1)-2 + " SAVECORE.8: 4% SAVECORE(8)-1 + " SAVECORE.8: 18% SAVECORE(8)-1 + " SAVECORE.8: 26% SAVECORE(8)-1 + " SAVECORE.8: 61% SAVECORE(8)-1 + " SAVECORE.8: 70% SAVECORE(8)-1 + " SAVECORE.8: 82% SAVECORE(8)-1 + " SAVECORE.8: 95% SAVECORE(8)-1 + " SMM.12: 22% SMM:12-1 + " SMM.12: 90% SMM:12-1 + " USD.03: 76% USD:3-19 + " USD.04: 73% USD:4-36 + " USD.08: 27% USD:8-30 + " USD.08: 58% USD:8-69 + " USD.11: 91% USD:11-14 + " VLIMIT.3C: 44% VLIMIT(3C)-1 + " VMH.N: 70% VMH(1)-1 + " SMM.12A: 22% SMM:12-6 + " SMM.12A: 90% SMM:12-21 + " SMM.12: 5% SMM:12-1 + " SMM.12: 10% SMM:12-1 + " SMM.12: 10% SMM:12-1 + " SMM.12A: 5% SMM:12-2 + " SMM.12A: 10% SMM:12-3 + " SMM.12A: 10% SMM:12-3 +core file PS1.02: 11% PS1:2-6 + " PS1.02: 11% PS1:2-6 + " PS1.10: 9% PS1:10-3 + " PS1.10: 11% PS1:10-3 + " PS1.10: 14% PS1:10-3 + " PS1.10: 15% PS1:10-4 + " PS1.10: 38% PS1:10-8 + " PS1.10: 45% PS1:10-9 + " PS1.10: 46% PS1:10-9 + " PS1.10: 49% PS1:10-10 + " PS1.10: 96% PS1:10-27 + " PS1.10: 96% PS1:10-27 + " PS2.01: 83% PS2:1-13 + " PS1.11a: 40% PS1:11-3 +core file[s] ABORT.3F: 43% ABORT(3F)-1 + " ADB.1: 88% ADB(1)-5 + " ADB.1: 94% ADB(1)-5 + " CORE.5: 38% CORE(5)-1 + " CORE.5: 46% CORE(5)-1 + " CORE.5: 60% CORE(5)-1 + " CORE.5: 69% CORE(5)-1 + " CORE.5: 77% CORE(5)-1 + " GETRLIMIT.2: 30% GETRLIMIT(2)-1 + " LASTCOMM.1: 86% LASTCOMM(1)-1 + " SAVECORE.8: 68% SAVECORE(8)-1 + " SMM.01: 35% SMM:1-23 + " TRPT.8C: 77% TRPT(8C)-1 + " TRSP.8C: 75% TRSP(8c)-1 + " USD.04: 21% USD:4-10 + " SMM.12A: 28% SMM:12-7 + " F77.1: 76% F77(1)-2 + " PXP.1: 33% PXP(1)-1 + " TTY.4: 50% TTY(4)-5 +core image[s] A_OUT.5: 27% A.OUT(5)-1 + " A_OUT.5: 42% A.OUT(5)-2 + " CORE.5: 91% CORE(5)-1 + " CRASH.8V: 88% CRASH(8V)-3 + " CRASH.8V: 91% CRASH(8V)-3 + " EXECL.3: 19% EXECL(3)-1 + " GCORE.1: 12% GCORE(1)-1 + " GCORE.1: 33% GCORE(1)-1 + " GCORE.1: 55% GCORE(1)-1 + " ICHECK.8: 94% ICHECK(8)-1 + " OD.1: 83% OD(1)-1 + " PS1.04: 51% PS1:4-26 + " PS1.06: 25% PS1:6-13 + " PS1.10: 10% PS1:10-3 + " PS1.10: 18% PS1:10-4 + " PS2.05: 88% PS2:5-6 + " PS2.05: 95% PS2:5-7 + " PS2.09: 82% PS2:9-132 + " PS1.11a: 14% PS1:11-1 +core image file PS1.06: 23% PS1:6-13 + " PS1.10: 3% + " PS1.10: 18% PS1:10-4 + " PS1.10: 49% PS1:10-9 + " PS1.10: 49% PS1:10-10 + " PS1.10: 50% PS1:10-10 + " PS2.03: 66% PS2:3-10 +core image[s] PSTAT.8: 78% PSTAT(8)-3 + " PTRACE.2: 6% PTRACE(2)-1 + " PTRACE.2: 17% PTRACE(2)-1 + " SAVECORE.8: 32% SAVECORE(8)-1 + " SAVECORE.8: 48% SAVECORE(8)-1 + " SIGNAL.3C: 40% SIGNAL(3C)-1 + " SIGNAL.3C: 44% SIGNAL(3C)-2 + " SIGVEC.2: 51% SIGVEC(2)-2 + " SIGVEC.2: 54% SIGVEC(2)-2 + " TTY.4: 50% TTY(4)-5 + " USD.11: 91% USD:11-14 + " USD.11: 91% USD:11-14 + " USD.11: 93% USD:11-14 + " USD.11: 94% USD:11-14 + " USD.11: 94% USD:11-14 + " WAIT.2: 66% WAIT(2)-1 +core image file ADB.1: 3% ADB(1)-1 + " USD.04: 93% USD:4-42 +core map SMM.13: 5% SMM:13-3 +correcting typing mistake[s] USD.01: 0% USD:1-1 +correction, ECC SMM.01: 12% SMM:1-8 + " SMM.02: 69% SMM:2-21 + " SMM.13: 92% SMM:13-31 +correction[s], Making USD.14: 1% USD:14-2 + " USD.14: 1% USD:14-2 + " USD.14: 22% USD:14-6 + " USD.14: 31% USD:14-8 +correction[s], Making small USD.15: 23% USD:15-7 +cos - trigonometric function SIN.3M: 1% SIN(3M)-1 +cosh - hyperbolic function SINH.3M: 9% SINH(3M)-1 +cosine BC.1: 41% BC(1)-1 +counter, location PS1.05: 29% PS1:5-4 + " PS1.05: 29% PS1:5-4 + " PS1.05: 31% PS1:5-4 + " PS1.05: 33% PS1:5-5 + " PS1.05: 58% PS1:5-8 + " PS1.05: 58% PS1:5-8 + " PS1.05: 58% PS1:5-8 + " PS1.05: 59% PS1:5-9 + " PS1.05: 60% PS1:5-9 + " PS1.05: 61% PS1:5-9 + " PS1.05: 61% PS1:5-9 + " PS1.05: 61% PS1:5-9 + " PS1.05: 77% PS1:5-11 + " PS1.05: 80% PS1:5-11 +Courier (Xerox remote procedure call protocol) PS1.08: 33% PS1:8-12 + " PS1.08: 38% PS1:8-14 + " PS1.08: 38% PS1:8-14 + " PS1.08: 95% PS1:8-40 + " PS1.08: 33% PS1:8-12 +Courier dispatch process PS1.08: 44% PS1:8-17 +counts, call GPROF.1: 17% GPROF(1)-1 + " GPROF.1: 31% GPROF(1)-1 + " GPROF.1: 42% GPROF(1)-1 + " GPROF.1: 69% GPROF(1)-2 + " MONITOR.3: 86% MONITOR(3)-1 + " PROF.1: 80% PROF(1)-1 +count[s], character MAIL.1: 57% MAIL(1)-4 + " USD.12: 17% USD:12-2 +counts, raw I/O HP.4: 12% HP(4)-1 + " UDA.4: 23% UDA(4)-1 + " UP.4: 19% UP(4)-1 +count[s], repeat ADB.1: 37% ADB(1)-3 + " USD.17: 26% USD:17-12 +count[s], repetition USD.17: 11% USD:17-5 +count, residual USD.24: 37% USD:24-13 +count, word WC.1: 10% WC(1)-1 +count blocks in a file SUM.1: 12% unknown +count character[s] USD.15: 97% USD:15-27 + " WC.1: 28% unknown +count field[s] RMT.8C: 75% RMT(8C)-1 + " SMM.13: 41% SMM:13-15 +count line[s] WC.1: 23% unknown +count word[s] WC.1: 26% unknown +counter, line-number USD.18: 24% USD:18-3 + " USD.18: 48% USD:18-5 + " USD.18: 51% USD:18-5 +counter, location SMM.19: 6% SMM:19-3 + " SMM.19: 34% SMM:19-10 + " SMM.19: 34% SMM:19-10 + " SMM.19: 72% SMM:19-20 +counter, program MONITOR.3: 36% MONITOR(3)-1 + " PROFIL.2: 26% PROFIL(2)-1 + " SMM.02: 19% SMM:2-6 +cover sheet[s] USD.20: 9% USD:20-1 + " USD.20: 14% USD:20-2 + " USD.20: 66% USD:20-5 + " USD.20: 14% USD:20-2 +CP SMM.12A: 13% SMM:12-4 +cp - copy files CP.1: 4% CP(1)-1 +cp command USD.01: 36% USD:1-6 + " USD.13: 68% USD:13-12 +CP/M SMM.12A: 97% SMM:12-23 +cpile - centered pile USD.27: 61% USD:27-7 +cpio FIND.1: 72% FIND(1)-2 +cpp ERROR.1: 30% ERROR(1)-1 +CPU, halting the CONS.4: 26% CONS(4)-1 +cpu time PS1.06: 44% PS1:6-21 +CPU time limit PS1.06: 26% PS1:6-13 +cpu time[s] GETRLIMIT.2: 15% GETRLIMIT(2)-1 + " GETRLIMIT.2: 43% GETRLIMIT(2)-1 + " LASTCOMM.1: 60% LASTCOMM(1)-1 + " PS.1: 6% PS(1)-1 + " TIME.1: 68% TIME(1)-1 + " USD.04: 25% USD:4-11 + " USD.04: 51% USD:4-23 + " USD.04: 51% USD:4-24 + " USD.04: 92% USD:4-42 + " VTIMES.3C: 58% VTIMES(3C)-1 + " W.1: 27% W(1)-1 + " W.1: 31% W(1)-1 + " W.1: 41% W(1)-1 + " W.1: 73% W(1)-1 +cpu time limit GETRLIMIT.2: 81% GETRLIMIT(2)-2 + " SIGNAL.3C: 34% SIGNAL(3C)-1 + " SIGVEC.2: 46% SIGVEC(2)-2 + " VLIMIT.3C: 87% VLIMIT(3C)-1 + " VLIMIT.3C: 94% VLIMIT(3C)-1 +cpu type AUTOCONF.4: 43% AUTOCONF(4)-1 + " SMM.02: 2% SMM:2-2 + " SMM.02: 3% SMM:2-2 + " SMM.02: 3% SMM:2-2 + " SMM.02: 3% SMM:2-2 + " SMM.02: 11% SMM:2-4 + " SMM.02: 21% SMM:2-7 + " SMM.02: 21% SMM:2-7 + " SMM.13: 49% SMM:13-17 + " SMM.13: 50% SMM:13-18 + " SMM.13: 51% SMM:13-18 +cpu utilization SMM.01: 78% SMM:1-48 + " PS.1: 59% PS(1)-2 + " SYSTAT.1: 5% SYSTAT(1)-1 +crash, UNIX PS2.10: 2% PS2:10-4 + " PS2.10: 68% PS2:10-60 + " PS2.10: 68% PS2:10-60 +crashes, crash - what happens when the system CRASH.8V: 0% CRASH(8V)-1 +crash, recover JOVE buffers after a system/editor JOVE_RECOVER.N: 1% JOVE_RECOVER(1) +crash, recovering after an editor or system USD.16: 4% USD:16-1 +crash[s], Recovering files lost in a USD.14: 87% USD:14-21 + " USD.14: 70% USD:14-18 + " USD.14: 3% USD:14-2 +crash[s], Recovering from hangups and USD.16: 13% USD:16-3 +crash[s], Recovering from system/editor USD.17: 34% USD:17-15 +crash[s], system CRASH.8V: 1% CRASH(8V)-1 + " CRASH.8V: 2% CRASH(8V)-1 + " CRASH.8V: 3% CRASH(8V)-1 + " CRASH.8V: 67% CRASH(8V)-2 + " CRASH.8V: 84% CRASH(8V)-3 + " JOVE.N: 39% JOVE(1)-2 + " RC.8: 81% RC(8)-1 + " SENDMAIL.8: 72% SENDMAIL(8)-3 + " SMM.01: 99% SMM:1-65 + " SMM.02: 81% SMM:2-26 + " SMM.03: 49% SMM:3-1 + " SMM.03: 69% SMM:3-1 + " SMM.14: 79% SMM:14-12 + " SMM.14: 85% SMM:14-12 + " USD.13: 51% USD:13-9 + " USD.14: 88% USD:14-21 + " USD.15: 49% USD:15-14 + " USD.16: 4% USD:16-1 + " USD.16: 14% USD:16-3 + " USD.16: 49% USD:16-9 +crash - what happens when the system crashes CRASH.8V: 0% CRASH(8V)-1 +creat - create a new file CREAT.2: 1% CREAT(2)-1 +creatdb - create a data base PS2.10: 52% PS2:10-46 +create a new file OPEN.2: 1% OPEN(2)-1 +create a new message COMP.N: 8% COMP(1)-1 +Create a new window WINDOW.1: 27% WINDOW(1)-2 +create a pipe POPEN.3: 27% POPEN(3)-1 +create files SMM.13: 32% SMM:13-12 +create new message USD.08: 4% USD:8-4 +create, open with file PS1.06: 59% PS1:6-28 +create - create a new relation PS2.10: 9% PS2:10-11 +create socket PS1.07a: 28% PS1:7-7 + " PS1.07a: 37% PS1:7-8 + " PS1.07a: 38% PS1:7-9 + " PS1.07a: 43% PS1:7-10 + " PS1.07a: 53% PS1:7-12 + " PS1.07a: 56% PS1:7-13 + " PS1.07a: 67% PS1:7-15 + " PS1.07a: 70% PS1:7-16 + " PS1.07a: 73% PS1:7-17 + " PS1.07a: 79% PS1:7-20 + " PS1.07a: 81% PS1:7-21 +Creating a branch PS1.14: 67% PS1:14-10 +Creating Delta PS1.14: 20% PS1:14-3 +Creating new release[s] PS1.14: 37% PS1:14-5 +Creating references to device[s] PS1.06: 61% PS1:6-28 +Creating SCCS File[s] PS1.14: 15% PS1:14-2 +creating a boot floppy or cassette SMM.01: 19% SMM:1-14 +creating a new newsgroup USD.10: 54% USD:10-6 +Creating a printcap file SMM.06: 34% SMM:6-3 +Creating and Selecting Buffer[s] USD.17: 35% USD:17-16 +creating file[s] USD.01: 25% USD:1-4 +Creating New Newsgroup[s] USD.09: 54% USD:9-6 +Creating Text USD.14: 3% USD:14-3 + " USD.12: 7% USD:12-1 +creating the configuration SMM.01: 17% SMM:1-12 +Creating UNIX boot media SMM.01: 36% SMM:1-24 +creation, file LS.1: 36% LS(1)-1 +creation, Process SMM.13: 18% SMM:13-7 + " TTY.4: 52% TTY(4)-5 +creation date[s] CI.N: 56% CI(1)-2 + " DIFF.1: 61% DIFF(1)-2 + " RANLIB.1: 88% RANLIB(1)-1 + " USD.03: 5% USD:3-2 +creation time SMM.07A: 29% SMM:07-14 + " SMM.12A: 94% SMM:12-22 +Critical condition[s] SYSLOG.3: 26% SYSLOG(3)-1 +creation, limit on file size PS1.06: 26% PS1:6-13 +critical section SIGPAUSE.2: 64% SIGPAUSE(2)-1 +critical section[s] PS1.06: 30% PS1:6-14 +crl - VAX 8600 console RL02 interface CRL.4: 6% CRL(4)-1 +CRMOD SMM.20: 28% SMM:20-3 + " TELNETD.8C: 54% TELNETD(8C)-1 + " TTY.4: 24% TTY(4)-3 +crmode() PS1.18: 43% PS1:18-12 +cron AT.1: 63% AT(1)-1 + " CALENDAR.1: 56% + " CONFLICT.N: 72% CONFLICT(8)-1 + " SMM.09: 96% SMM:9-20 + " SMM.12A: 84% SMM:12-20 +cron - clock daemon CRON.8: 3% CRON(8)-1 +crontab UUCICO.8C: 58% UUCICO(8C)-2 + " UUPOLL.8C: 39% UUPOLL(8C)-1 +crontab file[s] CRON.8: 31% CRON(8)-1 + " CRON.8: 90% CRON(8)-1 + " SMM.12A: 80% SMM:12-19 +cross reference file[s] LXREF.1: 11% LXREF(1)-1 + " LXREF.1: 19% LXREF(1)-1 + " LXREF.1: 23% LXREF(1)-1 +cross reference listing LXREF.1: 15% LXREF(1)-1 + " LXREF.1: 39% LXREF(1)-1 + " LISZT.1: 55% LISZT(1)-1 +cross-device links RENAME.2: 77% RENAME(2)-2 +cross-reference PXREF.1: 26% PXREF(1)-1 +crossreference, troff request USD.24: 12% USD:24-5 +CRT MAIL.1: 92% MAIL(1)-6 +CRT previewing, colcrt - filter nroff output for COLCRT.1: 3% COLCRT(1)-1 +CRT terminal[s] EX.1: 20% EX(1)-1 + " TTY.4: 28% TTY(4)-3 + " TTY.4: 28% TTY(4)-3 + " TTY.4: 30% TTY(4)-3 + " USD.07: 69% USD:7-16 + " COLCRT.1: 5% COLCRT(1)-1 + " STTY.1: 60% STTY(1)-2 + " TERMCAP.5: 33% TERMCAP(5)-6 + " TSET.1: 46% TSET(1)-2 + " TSET.1: 57% TSET(1)-2 + " TTY.4: 30% TTY(4)-3 + " USD.04: 8% USD:4-4 +crypt SMM.12A: 13% SMM:12-4 +crypt, setkey, encrypt - DES encryption CRYPT.3: 2% CRYPT(3)-1 +crypt - encode/decode CRYPT.1: 2% CRYPT(1)-1 +crypt command CRYPT.1: 62% CRYPT(1)-1 + " SMM.17: 63% SMM:17-2 + " SMM.17: 68% SMM:17-2 +Csh USD.07: 1% USD:7-2 + " VGRIND.1: 59% VGRIND(1)-1 + " SMM.01: 36% SMM:1-23 + " SMM.12A: 14% SMM:12-4 +csh, startup file for HIER.7: 75% HIER(7)-5 +csh - a shell (command interpreter) with C-like syntax CSH.1: 0% CSH(1)-1 +CSNET MAILADDR.7: 75% MAILADDR(7)-2 + " MAILADDR.7: 76% MAILADDR(7)-2 + " SMM.11: 21% SMM:11-3 + " SMM.11: 22% SMM:11-3 + " SMM.11: 24% SMM:11-4 + " USD.07: 41% USD:7-10 +css - DEC IMP-11A LH/DH IMP interface CSS.4: 2% CSS(4)-1 +ct - phototypesetter interface CT.4: 7% CT(4)-1 +ctag[s] JOVE.N: 36% JOVE(1)-2 + " USD.15: 66% USD:15-19 + " USD.17: 49% USD:17-21 + " SMM.12A: 14% SMM:12-4 +ctags - create a tags file CTAGS.1: 1% CTAGS(1)-1 +Ctime CTIME.3: 15% CTIME(3)-1 + " DP.N: 21% DP(8)-1 + " FDATE.3F: 43% FDATE(3F)-1 + " SMM.12A: 62% SMM:12-14 +ctime - return system time TIME.3F: 6% TIME(3F)-1 +ctlinput routine SMM.13: 69% SMM:13-24 + " SMM.13: 79% SMM:13-27 + " SMM.13: 85% SMM:13-29 +ctloutput routine[s] SMM.13: 67% SMM:13-23 + " SMM.13: 69% SMM:13-24 + " SMM.15: 58% SMM:15-17 +ctype SMM.12A: 62% SMM:12-15 +cu - connect to a remote system TIP.1C: 0% TIP(1C)-1 +cube root SQRT.3M: 7% SQRT(3M)-1 +currency conversion UNITS.1: 96% UNITS(1)-1 +current directory CSH.1: 53% CSH(1)-11 + " USD.03: 15% USD:3-3 +Current file USD.16: 6% USD:16-2 +current file name USD.16: 35% USD:16-7 +current folder FOLDER.N: 9% FOLDER(1)-1 + " INC.N: 90% unknown +current input file, input line number in the USD.24: 79% USD:24-25 +current line ED.1: 23% ED(1)-2 + " USD.12: 34% USD:12-4 +current location in the buffer USD.14: 37% USD:14-10 +current message FOLDER.N: 1% FOLDER(1)-1 + " INC.N: 91% unknown + " MH.N: 36% MH(1)-1 +current process W.1: 54% W(1)-1 +current window, Move the cursor of the WINDOW.1: 38% WINDOW(1)-3 +current working directory CHDIR.2: 4% CHDIR(2)-1 + " GETWD.3: 11% GETWD(3)-1 +current-error USD.17: 63% USD:17-29 +Current-Folder MH-PROFILE.N: 6% MH-PROFILE(5)-1 + " USD.08: 9% USD:8-9 + " USD.08: 11% USD:8-10 + " USD.08: 69% USD:8-85 +curse[s] SMM.12A: 63% SMM:12-15 +curses - screen functions with ``optimal'' cursor motion CURSES.3X: 1% CURSES(3X)-1 +curses library PS1.18: 5% PS1:18-3 +Cursor motion optimization PS1.18: 3% PS1:18-3 + " PS1.18: 22% PS1:18-6 +Cursor Movement Optimization: A Library Package, Screen Updating and PS1.18: 0% unknown +DARPA standard Internet protocol[s] PS1.08: 29% PS1:8-11 +cursor, graphics LIB2648.3X: 54% LIB2648(3X)-3 +Cursor, Moving the USD.17: 8% USD:17-4 +cursor, window WINDOW.1: 73% WINDOW(1)-5 + " WINDOW.1: 75% WINDOW(1)-5 + " WINDOW.1: 96% WINDOW(1)-7 +cursor addressing TERMCAP.5: 41% TERMCAP(5)-7 +cursor motion CURSES.3X: 2% CURSES(3X)-1 + " TERMCAP.5: 36% TERMCAP(5)-6 + " TERMCAP.5: 36% TERMCAP(5)-6 + " TERMCAP.5: 37% TERMCAP(5)-6 + " TERMCAP.5: 47% TERMCAP(5)-8 + " TERMCAP.5: 55% TERMCAP(5)-9 + " TERMCAP.5: 55% TERMCAP(5)-9 +cursor move USD.15: 86% USD:15-24 +Cursor Movement Optimization CURSES.3X: 19% CURSES(3X)-1 +cursor position TERMCAP.5: 51% TERMCAP(5)-8 + " TERMCAP.5: 83% TERMCAP(5)-12 + " USD.15: 83% USD:15-23 + " USD.15: 84% USD:15-24 + " USD.15: 94% USD:15-26 + " USD.15: 98% USD:15-28 + " USD.16: 90% USD:16-17 + " WINDOW.1: 19% WINDOW(1)-2 + " WINDOW.1: 30% WINDOW(1)-2 +customization, user MH-PROFILE.N: 0% MH-PROFILE(5)-1 + " USD.08: 69% USD:8-85 +customizing JOVE USD.17: 51% USD:17-22 +cut and paste USD.13: 65% USD:13-11 +cut mark MS.7: 24% MS(7)-1 + " USD.24: 85% USD:24-28 + " USD.23: 7% USD:23-2 +CW column width USD.20: 71% USD:20-5 +CWD environment variable JOVE.N: 28% JOVE(1)-1 +cwd shell variable CSH.1: 78% CSH(1)-17 + " CSH.1: 79% CSH(1)-17 +cwd variable USD.04: 74% USD:4-36 +cylinder group FS.5: 13% FS(5)-1 + " FS.5: 27% FS(5)-2 + " FS.5: 43% FS(5)-2 + " FS.5: 43% FS(5)-2 + " FS.5: 44% FS(5)-2 + " FS.5: 45% FS(5)-2 + " FS.5: 69% FS(5)-3 + " FS.5: 77% FS(5)-3 + " FS.5: 94% FS(5)-4 + " FS.5: 95% FS(5)-4 + " MKFS.8: 52% MKFS(8)-1 + " NEWFS.8: 41% NEWFS(8)-1 + " SMM.05: 11% SMM:5-4 + " SMM.05: 11% SMM:5-4 + " SMM.05: 11% SMM:5-4 + " SMM.05: 11% SMM:5-4 + " SMM.05: 11% SMM:5-4 + " SMM.05: 11% SMM:5-4 + " SMM.05: 12% SMM:5-4 + " SMM.05: 12% SMM:5-4 + " SMM.05: 13% SMM:5-4 + " SMM.05: 13% SMM:5-4 + " SMM.05: 13% SMM:5-4 + " SMM.05: 13% SMM:5-4 + " SMM.14: 19% SMM:14-4 + " SMM.14: 19% SMM:14-4 + " SMM.14: 19% SMM:14-4 + " SMM.14: 19% SMM:14-4 + " SMM.14: 20% SMM:14-4 + " SMM.14: 20% SMM:14-4 + " SMM.14: 20% SMM:14-4 + " SMM.14: 20% SMM:14-4 + " SMM.14: 20% SMM:14-4 + " SMM.14: 21% SMM:14-4 + " SMM.14: 21% SMM:14-4 + " SMM.14: 21% SMM:14-4 + " SMM.14: 22% SMM:14-4 + " SMM.14: 22% SMM:14-4 + " SMM.14: 23% SMM:14-4 + " SMM.14: 23% SMM:14-4 + " SMM.14: 23% SMM:14-4 + " SMM.14: 28% SMM:14-5 + " SMM.14: 44% SMM:14-7 + " SMM.14: 47% SMM:14-8 + " SMM.14: 47% SMM:14-8 + " SMM.14: 48% SMM:14-8 + " SMM.14: 49% SMM:14-8 + " SMM.14: 49% SMM:14-8 + " SMM.14: 50% SMM:14-8 + " SMM.14: 50% SMM:14-8 + " SMM.14: 50% SMM:14-8 + " SMM.14: 51% SMM:14-8 + " SMM.14: 51% SMM:14-8 + " SMM.14: 51% SMM:14-8 + " SMM.14: 52% SMM:14-8 + " SMM.14: 52% SMM:14-8 + " SMM.14: 52% SMM:14-8 + " SMM.14: 52% SMM:14-8 + " SMM.14: 52% SMM:14-8 + " SMM.14: 53% SMM:14-8 + " SMM.14: 53% SMM:14-8 + " SMM.14: 53% SMM:14-8 + " SMM.14: 55% SMM:14-8 + " SMM.14: 55% SMM:14-8 + " SMM.14: 56% SMM:14-9 + " SMM.14: 56% SMM:14-9 + " SMM.14: 56% SMM:14-9 + " SMM.14: 57% SMM:14-9 + " TUNEFS.8: 33% TUNEFS(8)-1 + " TUNEFS.8: 36% TUNEFS(8)-1 + " TUNEFS.8: 39% TUNEFS(8)-1 + " TUNEFS.8: 41% TUNEFS(8)-1 + " TUNEFS.8: 46% TUNEFS(8)-1 +cylinder group bookkeeping information SMM.05: 12% SMM:5-4 + " SMM.05: 12% SMM:5-4 + " SMM.14: 20% SMM:14-4 + " SMM.14: 21% SMM:14-4 +cylinder group information DUMPFS.8: 32% DUMPFS(8)-1 + " FS.5: 86% FS(5)-3 + " MOUNT.2: 67% MOUNT(2)-2 + " MOUNT.2: 70% MOUNT(2)-2 + " SMM.14: 22% SMM:14-4 +D-format floating point support SMM.12A: 67% SMM:12-15 +daddr_t TYPES.5: 83% TYPES(5)-2 +DAEMON SYSLOG.3: 94% SYSLOG(3)-2 + " SMM.01: 31% SMM:1-21 + " SMM.12A: 5% SMM:12-2 +DAEMON (see also server) SENDMAIL.8: 15% SENDMAIL(8)-1 +daemon, clock CRON.8: 3% CRON(8)-1 + " SYSTAT.1: 54% SYSTAT(1)-3 +daemon, cron - clock CRON.8: 3% CRON(8)-1 +daemon, Internet SMM.01: 68% SMM:1-41 + " SMM.01: 68% SMM:1-41 + " SMM.01: 71% SMM:1-43 + " INETD.8: 14% INETD(8)-1 +daemon, line printer LPD.8: 1% LPD(8)-1 + " LPD.8: 2% LPD(8)-1 + " SMM.06: 8% SMM:6-2 + " SMM.06: 69% SMM:6-5 +daemon, lpd - line printer LPD.8: 0% LPD(8)-1 +daemon, master time SMM.08: 51% SMM:8-2 + " SMM.08: 55% SMM:8-2 + " SMM.08: 56% SMM:8-2 + " SMM.08: 59% SMM:8-2 + " SMM.08: 66% SMM:8-2 + " SMM.08: 71% SMM:8-2 + " SMM.08: 75% SMM:8-2 + " SMM.08: 77% SMM:8-2 +daemon, printer LPC.8: 63% LPC(8)-1 + " LPC.8: 87% LPC(8)-2 + " LPQ.1: 68% LPQ(1)-1 + " SMM.06: 25% SMM:6-2 +daemon[s], rc - command script for auto-reboot and RC.8: 3% RC(8)-1 +daemon, routed - network routing ROUTED.8C: 0% ROUTED(8C)-1 +daemon, routing HTABLE.8: 28% HTABLE(8)-1 + " INTRO.4N: 39% INTRO(4N)-2 + " SMM.01: 65% SMM:1-40 + " SMM.01: 65% SMM:1-40 + " SMM.01: 65% SMM:1-40 + " SMM.01: 65% SMM:1-40 + " SMM.01: 65% SMM:1-40 + " SMM.01: 66% SMM:1-40 + " SMM.15: 78% SMM:15-22 +daemon, routing table management ROUTE.8C: 8% ROUTE(8C)-1 +daemon, slave time SMM.08: 10% SMM:8-2 + " SMM.08: 17% SMM:8-2 + " SMM.08: 21% SMM:8-2 + " SMM.08: 52% SMM:8-2 + " SMM.08: 56% SMM:8-2 + " SMM.22: 3% SMM:22-2 + " SMM.22: 6% SMM:22-2 + " SMM.22: 7% SMM:22-2 +daemon, spooling LPC.8: 32% LPC(8)-1 + " LPC.8: 75% LPC(8)-2 + " LPC.8: 80% LPC(8)-2 + " LPR.1: 5% LPR(1)-1 + " LPR.1: 15% LPR(1)-1 + " SMM.06: 69% SMM:6-5 + " SMM.06: 74% SMM:6-5 + " SMM.14: 59% SMM:14-9 +daemon, terminal access MHOOK.N: 83% MHOOK(1)-3 + " MHOOK.N: 85% MHOOK(1)-4 + " MHOOK.N: 88% MHOOK(1)-4 + " USD.08: 34% USD:8-38 + " USD.08: 34% USD:8-38 + " USD.08: 34% USD:8-38 +daemon, time SMM.08: 5% SMM:8-2 + " SMM.08: 6% SMM:8-2 + " SMM.08: 8% SMM:8-2 + " SMM.08: 22% SMM:8-2 + " SMM.08: 48% SMM:8-2 + " SMM.08: 48% SMM:8-2 + " SMM.08: 50% SMM:8-2 + " SMM.08: 59% SMM:8-2 + " SMM.08: 62% SMM:8-2 + " SMM.08: 64% SMM:8-2 + " SMM.08: 79% SMM:8-3 + " SMM.08: 85% SMM:8-3 + " SMM.08: 87% SMM:8-3 + " SMM.22: 4% SMM:22-2 + " SMM.22: 8% SMM:22-2 + " SMM.22: 8% SMM:22-2 + " SMM.22: 16% SMM:22-2 + " SMM.22: 22% SMM:22-2 + " SMM.22: 23% SMM:22-2 + " SMM.22: 39% SMM:22-4 + " SMM.22: 39% SMM:22-4 + " SMM.22: 53% SMM:22-5 + " SMM.22: 56% SMM:22-6 + " SMM.22: 70% SMM:22-7 + " SMM.22: 70% SMM:22-7 + " SMM.22: 77% SMM:22-8 + " SMM.22: 80% SMM:22-8 + " SMM.22: 83% SMM:22-8 + " SMM.22: 86% SMM:22-9 + " TIMED.8: 86% TIMED(8)-1 +daemon, timed - time server TIMED.8: 1% TIMED(8)-1 +daemon, XNSrouted - NS Routing Information Protocol XNSROUTED.8C: 1% XNSROUTED(8C)-1 +daemon message[s] SYSLOG.3: 75% SYSLOG(3)-2 +daemon processes LPD.8: 32% LPD(8)-1 + " SMM.01: 31% SMM:1-21 + " SMM.14: 85% SMM:14-12 + " SYSLOG.3: 48% SYSLOG(3)-1 + " SMM.12A: 81% SMM:12-19 + " SMM.12A: 88% SMM:12-21 +daisy wheel type printer USD.23: 6% USD:23-2 +DARPA Internet address (see also Internet address) IFCONFIG.8C: 55% IFCONFIG(8C)-1 + " IFCONFIG.8C: 19% IFCONFIG(8C)-1 + " GETHOSTID.2: 52% GETHOSTID(2)-1 +DARPA Internet user name directory service WHOIS.1: 5% WHOIS(1)-1 +DARPA TELNET protocol server, telnetd - TELNETD.8C: 2% TELNETD(8C)-1 +DARPA Trivial File Transfer Protocol server, tftpd - TFTPD.8C: 5% TFTPD(8C)-1 +dash[s] USD.21: 70% USD:21-2 +DASI 300 PLOT.1G: 44% PLOT(1G)-1 +DASI Hyterm 450 PLOT.1G: 42% PLOT(1G)-1 +DASI-300[s] NROFF.1: 68% NROFF(1)-1 + " NROFF.1: 70% NROFF(1)-1 +DASI-450 (Diablo Hyterm) NROFF.1: 71% NROFF(1)-1 +data area[s] PS1.06: 14% PS1:6-10 + " PS1.06: 14% PS1:6-10 + " PS1.06: 14% PS1:6-10 + " PS1.08: 80% PS1:8-32 + " PS2.05: 44% PS2:5-4 +data base PS2.05: 55% PS2:5-4 + " PS2.10: 2% PS2:10-4 + " PS2.10: 9% PS2:10-11 + " PS2.10: 12% PS2:10-15 + " PS2.10: 13% PS2:10-16 + " PS2.10: 13% PS2:10-16 + " PS2.10: 51% PS2:10-46 + " PS2.10: 52% PS2:10-46 + " PS2.10: 60% PS2:10-52 + " PS2.10: 65% PS2:10-56 + " PS2.10: 65% PS2:10-56 + " PS2.10: 65% PS2:10-56 + " PS2.10: 68% PS2:10-59 + " PS2.10: 68% PS2:10-59 + " PS2.10: 68% PS2:10-59 + " PS2.10: 68% PS2:10-59 + " PS2.10: 68% PS2:10-60 + " PS2.10: 68% PS2:10-60 + " PS2.10: 69% PS2:10-60 + " PS2.10: 69% PS2:10-60 + " PS2.10: 69% PS2:10-60 + " PS2.10: 69% PS2:10-60 + " PS2.10: 69% PS2:10-60 + " PS2.10: 71% PS2:10-62 + " PS2.10: 71% PS2:10-62 + " PS2.10: 71% PS2:10-62 + " PS2.10: 71% PS2:10-62 + " PS2.10: 71% PS2:10-62 + " PS2.10: 83% PS2:10-76 +Data Base Utility error message summary PS2.10: 93% PS2:10-84 +Data Definition[s] PS1.01: 72% PS1:1-24 + " PS1.01: 72% PS1:1-25 + " PS1.01: 76% PS1:1-26 +data element[s] PS2.09: 14% PS2:9-27 + " PS2.09: 14% PS2:9-27 + " PS2.09: 14% PS2:9-27 + " PS2.09: 14% PS2:9-27 + " PS2.09: 14% PS2:9-27 + " PS2.09: 15% PS2:9-28 + " PS2.09: 64% PS2:9-108 +data map PS1.10: 71% PS1:10-15 +data object[s] PS2.09: 10% PS2:9-18 + " PS2.09: 10% PS2:9-19 + " PS2.09: 34% PS2:9-62 + " PS2.09: 65% PS2:9-111 +data segment[s] PS1.05: 7% PS1:5-2 + " PS1.05: 26% PS1:5-4 + " PS1.05: 27% PS1:5-4 + " PS1.05: 28% PS1:5-4 + " PS1.05: 30% PS1:5-4 + " PS1.05: 43% PS1:5-6 + " PS1.05: 95% PS1:5-13 + " PS1.10: 44% PS1:10-9 + " PS1.10: 45% PS1:10-9 + " PS1.10: 48% PS1:10-9 + " PS1.10: 48% PS1:10-9 + " PS1.10: 50% PS1:10-10 + " PS1.10: 52% PS1:10-10 + " PS1.10: 53% PS1:10-11 + " PS1.10: 55% PS1:10-11 + " PS1.10: 55% PS1:10-11 + " PS2.04: 10% PS2:4-2 + " PS2.04: 10% PS2:4-2 + " PS2.04: 20% PS2:4-3 + " PS2.04: 20% PS2:4-3 +data space PS1.10: 45% PS1:10-9 + " PS1.10: 50% PS1:10-10 + " PS1.14: 33% PS1:14-5 + " PS2.09: 64% PS2:9-108 + " PS2.09: 66% PS2:9-111 +data statement[s] PS1.02: 18% PS1:2-8 + " PS1.02: 20% PS1:2-8 + " PS1.02: 20% PS1:2-8 + " PS1.02: 57% PS1:2-19 + " PS1.02: 62% PS1:2-21 + " PS1.05: 44% PS1:5-6 +data stream PS1.08: 59% PS1:8-24 + " PS1.08: 60% PS1:8-24 + " PS1.08: 60% PS1:8-24 + " PS1.08: 60% PS1:8-24 + " PS1.08: 62% PS1:8-25 +data structure[s] PS1.04: 9% PS1:4-6 + " PS2.01: 91% PS2:1-14 + " PS2.04: 50% PS2:4-5 + " PS2.04: 83% PS2:4-8 + " PS2.07: 64% PS2:7-29 + " PS2.09: 7% PS2:9-10 + " PS2.09: 63% PS2:9-108 +data symbol[s] PS1.05: 43% PS1:5-6 + " PS1.05: 44% PS1:5-6 + " PS1.05: 44% PS1:5-6 + " PS1.10: 66% PS1:10-13 +data type[s] PS1.01: 59% PS1:1-19 + " PS1.02: 12% PS1:2-6 + " PS1.03: 10% PS1:3-3 + " PS1.05: 40% PS1:5-6 + " PS1.05: 68% PS1:5-10 + " PS2.06: 30% PS2:6-11 + " PS2.09: 0% PS2:9-3 + " PS2.09: 2% PS2:9-4 + " PS2.09: 42% PS2:9-76 + " PS2.09: 43% PS2:9-78 + " PS2.09: 43% PS2:9-78 + " PS2.09: 45% PS2:9-80 + " PS2.09: 63% PS2:9-108 + " PS2.10: 35% PS2:10-32 +data[s], out-of-band GETSOCKOPT.2: 74% GETSOCKOPT(2)-2 + " INTRO.4N: 20% INTRO(4N)-1 + " RCMD.3: 52% RCMD(3)-1 + " REXEC.3: 95% REXEC(3)-1 + " SMM.13: 37% SMM:13-13 + " SMM.13: 38% SMM:13-14 + " SMM.15: 56% SMM:15-17 + " SMM.15: 91% SMM:15-25 + " SOCKET.2: 48% SOCKET(2)-1 +data and maintenance utilities HIER.7: 10% HIER(7)-1 +data base (see also specific database names)[s] USD.30: 1% USD:30-1 + " VGRINDEFS.5: 6% VGRINDEFS(5)-1 + " USD.32: 46% USD:32-7 + " USD.32: 3% USD:32-1 + " USD.32: 1% USD:32-1 + " USD.30: 83% USD:30-10 + " SMM.11: 89% SMM:11-14 + " SMM.11: 89% SMM:11-14 + " SMM.11: 40% SMM:11-6 + " SMM.11: 25% SMM:11-4 + " PRINTCAP.5: 3% PRINTCAP(5)-1 + " NEWALIASES.1: 18% NEWALIASES(1)-1 + " NDBM.3: 60% NDBM(3)-2 + " NDBM.3: 31% NDBM(3)-1 + " NDBM.3: 20% NDBM(3)-1 + " NAMED.8: 86% NAMED(8)-2 + " INTRO.4N: 39% INTRO(4N)-2 + " GETTYTAB.5: 5% GETTYTAB(5)-1 + " GETTYTAB.5: 2% GETTYTAB(5)-1 + " DBM.3X: 57% DBM(3X)-1 + " DBM.3X: 31% DBM(3X)-1 + " DBM.3X: 18% DBM(3X)-1 +data basis, host and network name SMM.01: 69% SMM:1-42 +data block[s] FS.5: 12% FS(5)-1 + " FS.5: 50% FS(5)-2 + " FS.5: 50% FS(5)-2 + " FS.5: 86% FS(5)-3 + " SMM.05: 7% SMM:5-3 + " SMM.05: 8% SMM:5-3 + " SMM.05: 11% SMM:5-4 + " SMM.05: 33% SMM:5-7 + " SMM.05: 33% SMM:5-7 + " SMM.05: 33% SMM:5-7 + " SMM.05: 33% SMM:5-7 + " SMM.05: 34% SMM:5-7 + " SMM.05: 35% SMM:5-7 + " SMM.05: 35% SMM:5-7 + " SMM.05: 35% SMM:5-7 + " SMM.05: 35% SMM:5-7 + " SMM.14: 10% SMM:14-3 + " SMM.14: 11% SMM:14-3 + " SMM.14: 12% SMM:14-3 + " SMM.14: 19% SMM:14-4 + " SMM.14: 22% SMM:14-4 + " SMM.14: 44% SMM:14-7 + " SMM.14: 47% SMM:14-7 + " SMM.14: 48% SMM:14-8 + " SMM.14: 51% SMM:14-8 + " SMM.14: 52% SMM:14-8 + " SMM.14: 52% SMM:14-8 + " SMM.14: 55% SMM:14-8 + " SMM.14: 68% SMM:14-10 +data buffer[s] SMM.13: 39% SMM:13-14 + " SMM.15: 25% SMM:15-8 +data field[s] SMM.11: 41% SMM:11-6 +data for the table USD.28: 31% USD:28-5 +data object[s] SMM.15: 7% SMM:15-4 +data packet[s] SMM.15: 6% SMM:15-3 + " SMM.15: 82% SMM:15-23 +data page[s] CORE.5: 63% CORE(5)-1 + " EXECVE.2: 9% EXECVE(2)-1 + " SMM.15: 46% SMM:15-14 + " SMM.15: 95% SMM:15-26 + " SMM.15: 96% SMM:15-26 +data queue[s] SMM.15: 17% SMM:15-6 + " SMM.15: 22% SMM:15-7 +data representation[s] SMM.19: 8% SMM:19-3 +data segment[s] ADB.1: 88% ADB(1)-5 + " AS.1: 59% AS(1)-1 + " A_OUT.5: 25% A.OUT(5)-1 + " A_OUT.5: 29% A.OUT(5)-1 + " A_OUT.5: 32% A.OUT(5)-2 + " A_OUT.5: 43% A.OUT(5)-2 + " A_OUT.5: 49% A.OUT(5)-2 + " BRK.2: 48% BRK(2)-1 + " BRK.2: 77% BRK(2)-1 + " BRK.2: 95% BRK(2)-1 + " DBX.5: 22% DBX(5)-1 + " GETRLIMIT.2: 20% GETRLIMIT(2)-1 + " GETRUSAGE.2: 53% GETRUSAGE(2)-1 + " LD.1: 40% LD(1)-1 + " LD.1: 88% LD(1)-2 + " LD.1: 92% LD(1)-2 + " SMM.02: 91% SMM:2-31 + " SMM.02: 93% SMM:2-32 + " SMM.13: 43% SMM:13-16 + " SMM.13: 43% SMM:13-16 + " SMM.13: 76% SMM:13-26 + " SYSTAT.1: 26% SYSTAT(1)-2 + " BRK.2: 12% BRK(2)-1 + " SIZE.1: 51% SIZE(1)-1 +data segment size ADB.1: 88% ADB(1)-5 +data size[s] A_OUT.5: 38% A.OUT(5)-2 + " GETRUSAGE.2: 21% GETRUSAGE(2)-1 + " SMM.13: 57% SMM:13-20 +data space BRK.2: 30% BRK(2)-1 + " USD.04: 51% USD:4-24 +data stream SMM.15: 91% SMM:15-25 +data stream type SPP.4P: 80% SPP(4P)-2 + " SPP.4P: 97% SPP(4P)-2 +DATA STRUCTURE SIZING RULE, KERNEL SMM.02: 85% SMM:2-30 +data terminal ready TTY.4: 45% TTY(4)-4 +data transformer USD.19: 81% USD:19-6 +data type[s] SMM.19: 78% SMM:19-22 + " TYPES.5: 4% TYPES(5)-1 +data validation USD.19: 80% USD:19-6 +database, destroydb - destroy an existing PS2.10: 55% PS2:10-49 +database, helpr - get information about a PS2.10: 63% PS2:10-55 +Database Administrator PS2.10: 52% PS2:10-47 + " PS2.10: 54% PS2:10-47 + " PS2.10: 55% PS2:10-48 + " PS2.10: 55% PS2:10-49 + " PS2.10: 67% PS2:10-59 +database name[s] PS2.10: 56% PS2:10-49 + " PS2.10: 66% PS2:10-57 + " PS2.10: 66% PS2:10-57 + " PS2.10: 66% PS2:10-57 + " PS2.10: 66% PS2:10-57 + " PS2.10: 68% PS2:10-59 + " PS2.10: 71% PS2:10-61 +database relation PS2.10: 2% PS2:10-4 + " PS2.10: 2% PS2:10-4 + " PS2.10: 63% PS2:10-55 + " PS2.10: 67% PS2:10-58 +databases, multiple SMM.07A: 80% SMM:07-36 + " SMM.12A: 68% SMM:12-16 +database, alias SENDMAIL.8: 17% SENDMAIL(8)-1 + " SENDMAIL.8: 52% SENDMAIL(8)-2 + " SENDMAIL.8: 89% SENDMAIL(8)-3 + " SMM.16: 50% SMM:16-7 + " SMM.07A: 11% SMM:07-7 + " SMM.07A: 18% SMM:07-10 + " SMM.07A: 18% SMM:07-10 + " SMM.07A: 19% SMM:07-10 + " SMM.07A: 19% SMM:07-10 + " SMM.07A: 20% SMM:07-11 + " SMM.07A: 21% SMM:07-11 + " SMM.07A: 33% SMM:07-16 + " SMM.07A: 33% SMM:07-16 + " SMM.07A: 34% SMM:07-16 + " SMM.07A: 67% SMM:07-28 + " SMM.07A: 69% SMM:07-30 + " SMM.07A: 70% SMM:07-30 + " SMM.07A: 70% SMM:07-30 + " SMM.07A: 88% SMM:07-38 +database, bibliographic BIB.N: 11% BIB(1)-1 + " REFER.1: 12% REFER(1)-1 + " REFER.1: 17% REFER(1)-1 + " ROFFBIB.1: 3% ROFFBIB(1)-1 + " ROFFBIB.1: 13% ROFFBIB(1)-1 + " USD.29: 2% USD:29-1 + " USD.29: 3% USD:29-1 + " USD.29: 26% USD:29-3 + " USD.29: 36% USD:29-4 + " USD.29: 43% USD:29-5 + " USD.29: 52% USD:29-5 + " USD.29: 79% USD:29-8 + " USD.29: 80% USD:29-8 + " ADDBIB.1: 2% ADDBIB(1)-1 +database, hashed SMM.12A: 2% SMM:12-2 + " SMM.12A: 65% SMM:12-15 +database, host MKHOSTS.8: 18% MKHOSTS(8)-1 +database, password MKPASSWD.8: 25% unknown +database, printcap SMM.06: 10% SMM:6-2 + " SMM.06: 34% SMM:6-3 + " SMM.06: 63% SMM:6-5 + " SMM.06: 77% SMM:6-6 + " SMM.06: 78% SMM:6-6 +database, relational JOIN.1: 3% JOIN(1)-1 +database, whatis CATMAN.8: 18% CATMAN(8)-1 + " CATMAN.8: 30% CATMAN(8)-1 + " CATMAN.8: 34% CATMAN(8)-1 + " CATMAN.8: 93% CATMAN(8)-1 + " SMM.12A: 39% SMM:12-9 +database of constant string[s] XSTR.1: 32% XSTR(1)-1 +database of file name[s] SMM.01: 35% SMM:1-23 +database of filenames FIND.1: 11% FIND(1)-1 +datagram PS1.06: 74% PS1:6-33 +datagram[s] CONNECT.2: 14% CONNECT(2)-1 + " SMM.13: 84% SMM:13-29 +datagram[s], receive PS1.06: 77% PS1:6-34 +datagram[s], sending PS1.07a: 87% PS1:7-22 +datagram, Sending an Internet domain PS1.07a: 57% PS1:7-14 +datagram socket[s] PS1.06: 74% PS1:6-33 + " PS1.06: 77% PS1:6-34 + " PS1.06: 79% PS1:6-34 + " PS1.07a: 36% PS1:7-8 + " PS1.07a: 47% PS1:7-11 + " PS1.07a: 53% PS1:7-12 + " PS1.07a: 77% PS1:7-19 + " PS1.08: 6% PS1:8-3 + " PS1.08: 6% PS1:8-3 + " PS1.08: 6% PS1:8-3 + " PS1.08: 8% PS1:8-4 + " PS1.08: 9% PS1:8-4 + " PS1.08: 22% PS1:8-8 + " PS1.08: 22% PS1:8-8 + " PS1.08: 23% PS1:8-9 + " PS1.08: 24% PS1:8-9 + " PS1.08: 25% PS1:8-9 + " PS1.08: 50% PS1:8-20 + " PS1.08: 51% PS1:8-20 + " PS1.08: 78% PS1:8-32 + " PS1.08: 79% PS1:8-32 + " PS1.08: 84% PS1:8-34 + " PS1.08: 86% PS1:8-35 + " PS1.06: 77% PS1:6-34 +Datagrams in the Internet Domain PS1.07a: 45% PS1:7-11 +Datagrams in the UNIX Domain PS1.07a: 36% PS1:7-8 +datagram[s], sending of SOCKET.2: 70% SOCKET(2)-2 +Datagram protocol[s] UDP.4P: 11% UDP(4P)-1 + " SMM.15: 51% SMM:15-16 +datagram server[s] INETD.8: 45% INETD(8)-1 + " INETD.8: 50% INETD(8)-1 + " INETD.8: 56% INETD(8)-1 + " INETD.8: 57% INETD(8)-1 +datagram socket[s] CONNECT.2: 28% CONNECT(2)-1 + " CONNECT.2: 30% CONNECT(2)-1 + " GETSOCKOPT.2: 87% GETSOCKOPT(2)-2 + " INTRO.2: 44% INTRO(2)-4 + " INTRO.2: 53% INTRO(2)-4 + " SMM.13: 35% SMM:13-13 + " SMM.13: 41% SMM:13-15 + " SMM.13: 42% SMM:13-15 + " SMM.13: 42% SMM:13-15 + " SMM.15: 24% SMM:15-8 + " INET.4F: 74% INET(4F)-1 + " INETD.8: 43% INETD(8)-1 +Datakit L-DEVICES.5: 19% L-DEVICES(5)-1 +Date SMM.07A: 43% SMM:07-20 + " SMM.07A: 43% SMM:07-20 + " SMM.07A: 75% SMM:07-32 + " FDATE.3F: 9% FDATE(3F)-1 + " USD.01: 9% USD:1-2 +datastream type PS1.08: 87% PS1:8-36 + " PS1.08: 87% PS1:8-36 + " PS1.08: 87% PS1:8-36 + " PS1.08: 92% PS1:8-38 + " PS1.08: 94% PS1:8-39 +date/time, checkin PS1.13: 40% PS1:13-8 + " PS1.13: 43% PS1:13-8 + " PS1.13: 91% PS1:13-20 +data, band PS1.08: 20% PS1:8-8 + " PS1.08: 58% PS1:8-24 + " PS1.08: 58% PS1:8-24 + " PS1.08: 58% PS1:8-24 + " PS1.08: 59% PS1:8-24 + " PS1.08: 60% PS1:8-24 + " PS1.08: 60% PS1:8-24 + " PS1.08: 62% PS1:8-25 + " PS1.08: 87% PS1:8-36 +data, out-of-band PS1.06: 75% PS1:6-33 + " PS1.07a: 76% PS1:7-19 + " PS1.08: 25% PS1:8-9 + " PS1.08: 60% PS1:8-24 + " PS1.08: 61% PS1:8-24 + " PS1.08: 63% PS1:8-25 +data, priority PS1.07a: 84% PS1:7-22 + " PS1.07a: 84% PS1:7-22 + " PS1.07a: 85% PS1:7-22 +data, urgent PS1.08: 59% PS1:8-24 + " PS1.08: 59% PS1:8-24 + " PS1.08: 61% PS1:8-24 + " PS1.08: 61% PS1:8-24 + " PS1.08: 62% PS1:8-24 + " PS1.08: 62% PS1:8-24 + " PS1.08: 62% PS1:8-25 + " PS1.08: 62% PS1:8-25 +DBA PS2.10: 33% PS2:10-30 + " PS2.10: 52% PS2:10-47 + " PS2.10: 52% PS2:10-47 + " PS2.10: 54% PS2:10-47 + " PS2.10: 54% PS2:10-47 + " PS2.10: 54% PS2:10-47 + " PS2.10: 55% PS2:10-48 + " PS2.10: 64% PS2:10-56 + " PS2.10: 67% PS2:10-59 + " PS2.10: 67% PS2:10-59 + " PS2.10: 68% PS2:10-59 + " PS2.10: 68% PS2:10-60 + " PS2.10: 68% PS2:10-60 + " PS2.10: 91% PS2:10-81 + " PS2.10: 91% PS2:10-81 + " PS2.10: 91% PS2:10-81 +DBU PS2.10: 3% PS2:10-5 + " PS2.10: 80% PS2:10-71 +date[s], creation CI.N: 56% CI(1)-2 + " DIFF.1: 61% DIFF(1)-2 + " RANLIB.1: 88% RANLIB(1)-1 + " USD.03: 5% USD:3-2 +date[s], expiration SMM.10: 4% SMM:10-2 + " SMM.10: 51% SMM:10-14 + " SMM.10: 56% SMM:10-15 + " SMM.10: 58% SMM:10-15 +date, files changed after a certain RDUMP.8C: 32% RDUMP(8C)-1 +date, modification AR.5: 64% AR(5)-1 + " RANLIB.1: 83% RANLIB(1)-1 + " TP.1: 28% TP(1)-1 +date, network SMM.08: 91% SMM:8-3 + " SMM.22: 39% SMM:22-4 + " SMM.22: 70% SMM:22-7 + " SMM.22: 77% SMM:22-8 +date, Today's USD.23: 70% USD:23-9 +date - print and set the date DATE.1: 2% DATE(1)-1 +date and time to ASCII CTIME.3: 4% CTIME(3)-1 +date at the bottom of each page USD.20: 65% USD:20-5 +date command USD.04: 6% USD:4-4 + " USD.04: 6% USD:4-4 + " USD.04: 6% USD:4-4 + " USD.04: 7% USD:4-4 + " USD.04: 7% USD:4-4 + " SMM.12A: 15% SMM:12-4 +date field[s] MHL.N: 90% MHL(1)-3 + " PICK.N: 27% PICK(1)-1 + " USD.08: 30% USD:8-33 + " USD.08: 40% USD:8-47 +Date: USD.08: 68% USD:8-83 +data, binary SMM.16: 32% SMM:16-5 + " USD.08: 67% USD:8-82 +day of the week USD.23: 70% USD:23-9 +daylight savings time CTIME.3: 29% CTIME(3)-1 + " CTIME.3: 54% CTIME(3)-1 + " SMM.02: 23% SMM:2-7 +daytime service INETD.8: 85% INETD(8)-2 +DBM NDBM.3: 7% NDBM(3)-1 + " NDBM.3: 9% NDBM(3)-1 + " NDBM.3: 10% NDBM(3)-1 + " NDBM.3: 12% NDBM(3)-1 + " NDBM.3: 14% NDBM(3)-1 + " NDBM.3: 15% NDBM(3)-1 + " NDBM.3: 16% NDBM(3)-1 + " NDBM.3: 17% NDBM(3)-1 + " NDBM.3: 18% NDBM(3)-1 + " NDBM.3: 63% NDBM(3)-2 + " NDBM.3: 65% NDBM(3)-2 + " NDBM.3: 90% NDBM(3)-2 + " NDBM.3: 92% NDBM(3)-2 + " SMM.10: 34% SMM:10-10 + " SMM.16: 56% SMM:16-8 + " SMM.07A: 80% SMM:07-36 + " SMM.07A: 80% SMM:07-36 + " SMM.12A: 63% SMM:12-15 +DBM files SMM.07A: 34% SMM:07-16 + " SMM.07A: 34% SMM:07-16 + " SMM.07A: 34% SMM:07-16 +dbm_open[s], dbm_close[s], dbm_fetch[s], dbm_store[s], ... NDBM.3: 1% NDBM(3)-1 +Dbx SMM.12A: 3% SMM:12-2 + " GCORE.1: 47% GCORE(1)-1 + " PC.1: 40% PC(1)-1 + " SMM.12A: 3% SMM:12-2 + " SMM.12A: 15% SMM:12-4 +dbx PS1.02: 11% PS1:2-6 +dbx - dbx symbol table information DBX.5: 0% DBX(5)-1 +dbx - debugger DBX.1: 0% DBX(1)-1 +dbx, Debugging with PS1.11a: 0% PS1:11-1 +dbxinit DBX.1: 6% DBX(1)-1 +DC TERMCAP.5: 60% TERMCAP(5)-9 + " MP.3X: 93% MP(3X)-2 +DC - An Interactive Desk Calculator USD.05: 0% USD:5-1 +dc - desk calculator DC.1: 1% DC(1)-1 +dc commands USD.05: 7% USD:5-1 + " USD.05: 16% USD:5-2 + " USD.05: 78% USD:5-6 +Dcheck DCHECK.8: 10% DCHECK(8)-1 + " DCHECK.8: 14% DCHECK(8)-1 + " DCHECK.8: 93% DCHECK(8)-1 + " FSCK.8: 58% FSCK(8)-1 +dcheck - file system directory consistency check DCHECK.8: 3% DCHECK(8)-1 +DD REBOOT.8: 60% REBOOT(8)-2 + " SMM.01: 51% SMM:1-32 + " SMM.12A: 15% SMM:12-4 +dd - convert and copy a file DD.1: 1% DD(1)-1 +DDCMP, DEC DMC.4: 14% DMC(4)-1 +DDN SMM.12A: 73% SMM:12-17 +ddn - DDN Standard Mode X.25 IMP interface DDN.4: 2% DDN(4)-1 +DE[s] SMM.12A: 73% SMM:12-17 +de - DEC DEUNA 10 Mb/s Ethernet interface DE.4: 2% DE(4)-1 +de-allocate inode SMM.05: 55% SMM:5-12 + " SMM.05: 62% SMM:5-13 + " SMM.05: 94% SMM:5-21 + " SMM.05: 95% SMM:5-21 +dead.letter MAIL.1: 68% MAIL(1)-4 + " SENDMAIL.8: 58% SENDMAIL(8)-2 + " USD.07: 4% USD:7-2 + " USD.07: 32% USD:7-8 +deadlock detection SMM.14: 85% SMM:14-12 +debug flag[s] SMM.07A: 25% SMM:07-13 + " SMM.07A: 25% SMM:07-13 +debugger PS1.18: 32% PS1:18-8 +debugger, dbx - DBX.1: 0% DBX(1)-1 +debugger, pdx - pascal PDX.1: 0% PDX(1)-1 +debugger[s], symbolic PS1.04: 72% PS1:4-37 + " PS1.05: 77% PS1:5-11 + " PS1.04: 72% PS1:4-37 + " PS1.11a: 2% PS1:11-1 + " PS1.11a: 3% PS1:11-1 +Debugging Aid[s] PS1.02: 10% PS1:2-6 + " PS1.17: 93% PS1:17-6 + " PS2.09: 1% PS2:9-4 +debugger[s], symbolic SMM.19: 11% SMM:19-4 + " SMM.19: 41% SMM:19-12 + " SMM.12A: 3% SMM:12-2 +debugger adb CORE.5: 88% CORE(5)-1 + " ADB.1: 0% ADB(1)-1 +debugger sdb CC.1: 18% CC(1)-1 +debugging ABORT.3: 50% ABORT(3)-1 + " PTRACE.2: 7% PTRACE(2)-1 + " USD.24: 81% USD:24-26 +debugging C program[s] PS1.10: 10% PS1:10-3 +Debugging tool[s] PS1.10: 0% +Debugging with dbx PS1.11a: 0% PS1:11-1 +DEC MACRO-32 PS1.05: 85% PS1:5-12 +DEC PDP-11 PS1.01: 2% + " PS1.01: 0% + " PS1.01: 6% PS1:1-3 +DEC VAX-11 PS1.01: 0% + " PS1.01: 6% PS1:1-3 +debugging, Kernel ADB.1: 73% ADB(1)-4 + " DBX.1: 10% DBX(1)-1 + " DBX.1: 71% DBX(1)-5 + " DBX.1: 74% DBX(1)-5 +debugging, machine-level DBX.1: 78% DBX(1)-6 +debugging, network PING.8: 13% PING(8)-1 +debugging[s], socket TRPT.8C: 10% TRPT(8C)-1 + " TRSP.8C: 12% TRSP(8c)-1 +debugging, system CRASH.8V: 95% CRASH(8V)-3 +debugging documents CHECKNR.1: 2% CHECKNR(1)-1 +debugging eqn USD.27: 88% USD:27-10 +debugging message[s] SYSLOG.3: 32% SYSLOG(3)-1 +Debugging shell procedure[s] USD.03: 50% USD:3-13 +debugging shell script[s] USD.04: 98% USD:4-44 +DEC CI780 SMM.01: 2% SMM:1-2 +DEC DDCMP DMC.4: 14% DMC(4)-1 +DEC DEQNA QE.4: 5% QE(4)-1 +DEC DF02 or DF03 modem L-DEVICES.5: 55% L-DEVICES(5)-1 +Dec DF112 modem L-DEVICES.5: 56% L-DEVICES(5)-1 +DEC diagnostic supervisor FORMAT.8V: 3% FORMAT(8V)-1 +DEC DMC-11 DMC.4: 2% DMC(4)-1 +DEC Gigi terminal[s] PLOT.3X: 65% PLOT(3X)-1 +DEC MicroVAX[s] MATH.3M: 17% MATH(3M)-2 +DEC RX01 FL.4: 16% FL(4)-1 +DEC RX02 floppy disk RX.4: 5% RX(4)-1 +DEC TMSCP magtape interface TMSCP.4: 2% TMSCP(4)-1 +DEC TU58 tape cartridge drive[s] UU.4: 8% UU(4)-1 +DEC VAX-11 INTRO.4: 18% INTRO(4)-1 +DEC VAX-11 D_floating-point MATH.3M: 16% MATH(3M)-2 +DEC VMS compatibility STTY.1: 72% STTY(1)-2 +DEC vt100 SYSLINE.1: 8% SYSLINE(1)-1 +DEC vt100 terminal[s] PLOT.3X: 66% PLOT(3X)-1 +DEC vt125 terminal PLOT.1G: 64% PLOT(1G)-1 +decimal digit[s] PS2.09: 4% PS2:9-8 + " PS2.10: 36% PS2:10-33 +decimal point PS1.01: 5% PS1:1-3 + " PS1.01: 5% PS1:1-3 + " PS1.02: 70% PS1:2-23 + " PS1.03: 35% PS1:3-5 + " PS1.04: 51% PS1:4-27 +DECLARATIONS PS1.01: 39% PS1:1-12 + " PS1.01: 39% PS1:1-12 + " PS1.01: 39% PS1:1-12 + " PS1.01: 39% PS1:1-12 + " PS1.01: 61% PS1:1-20 + " PS1.01: 67% PS1:1-22 + " PS1.01: 74% PS1:1-25 + " PS1.01: 88% PS1:1-30 + " PS1.01: 95% PS1:1-33 + " PS1.02: 53% PS1:2-18 + " PS2.06: 13% PS2:6-6 + " PS2.06: 16% PS2:6-7 + " PS2.06: 38% PS2:6-14 + " PS2.06: 43% PS2:6-15 +Declarations, Enumeration PS1.01: 24% PS1:1-7 + " PS1.01: 53% PS1:1-17 + " PS1.01: 74% PS1:1-25 +Declarations, Implicit PS1.01: 82% PS1:1-28 + " PS2.06: 72% PS2:6-25 + " PS2.09: 20% PS2:9-39 +decimal, signed OD.1: 35% OD(1)-1 +decimal, unsigned OD.1: 30% OD(1)-1 +decimal dump OD.1: 1% OD(1)-1 +decimal notation NS.3N: 68% NS(3N)-1 + " PRINTF.3S: 66% PRINTF(3S)-2 +decimal point[s] PRINTF.3S: 32% PRINTF(3S)-1 + " PRINTF.3S: 33% PRINTF(3S)-1 + " PRINTF.3S: 34% PRINTF(3S)-1 + " PRINTF.3S: 55% PRINTF(3S)-2 + " PRINTF.3S: 67% PRINTF(3S)-2 + " PRINTF.3S: 71% PRINTF(3S)-2 + " PRINTF.3S: 73% PRINTF(3S)-2 + " SCANF.3S: 57% SCANF(3S)-1 + " SMM.11: 50% SMM:11-7 + " USD.19: 26% USD:19-3 + " USD.28: 14% USD:28-3 + " USD.28: 15% USD:28-3 +decimal value[s] MHL.N: 69% MHL(1)-3 + " USD.08: 29% USD:8-32 +decisions, design SMM.11: 22% SMM:11-3 + " SMM.14: 4% SMM:14-2 + " SMM.19: 73% SMM:19-20 +decision[s], routing SMM.15: 33% SMM:15-10 + " SMM.15: 60% SMM:15-18 + " SMM.15: 65% SMM:15-19 +deck runs MILLE.6: 54% MILLE(6)-2 + " MILLE.6: 81% MILLE(6)-3 + " MILLE.6: 82% MILLE(6)-3 +Declarations, Enumeration SMM.19: 20% SMM:19-6 +declaration[s], extern LINT.1: 48% LINT(1)-1 + " SMM.19: 22% SMM:19-7 + " SMM.19: 22% SMM:19-7 +declaration, function LINT.1: 71% LINT(1)-1 + " USD.15: 53% USD:15-15 + " USD.15: 55% USD:15-16 +declaration[s], register PS1.01: 40% PS1:1-13 + " PS1.01: 41% PS1:1-13 + " PS1.01: 41% PS1:1-13 +declaration, structure PS1.01: 53% PS1:1-17 + " PS2.06: 37% PS2:6-13 + " PS2.06: 41% PS2:6-15 +declaration parts PS1.04: 73% PS1:4-38 + " PS1.04: 73% PS1:4-38 + " PS1.04: 73% PS1:4-38 +declaration section PS1.15: 11% PS1:15-3 + " PS1.15: 70% PS1:15-20 + " PS1.15: 75% PS1:15-21 + " PS1.15: 99% PS1:15-33 +declaration statement[s] PS2.06: 39% PS2:6-14 + " PS2.06: 39% PS2:6-14 + " PS2.06: 39% PS2:6-14 + " PS2.06: 42% PS2:6-15 + " PS2.06: 46% PS2:6-16 + " PS2.06: 66% PS2:6-23 +declarations section PS1.15: 14% PS1:15-4 + " PS1.15: 14% PS1:15-4 + " PS1.15: 15% PS1:15-4 + " PS1.15: 20% PS1:15-6 + " PS1.15: 20% PS1:15-6 + " PS1.15: 24% PS1:15-7 + " PS1.15: 50% PS1:15-15 + " PS1.15: 76% PS1:15-22 +Declarator[s] PS1.01: 43% PS1:1-14 + " PS1.01: 43% PS1:1-14 + " PS1.01: 44% PS1:1-14 +Decomposition error message summary PS2.10: 92% PS2:10-83 +declarations, header SMM.16: 37% SMM:16-5 + " SMM.16: 59% SMM:16-8 + " SMM.16: 59% SMM:16-8 +declaration[s], register SMM.19: 25% SMM:19-8 +declaration parts PXP.1: 34% PXP(1)-1 +decrypt joke[s] USD.10: 84% USD:10-10 +decrypt the contents of the file, encrypt and USD.16: 5% USD:16-2 +DECtape TP.1: 48% TP(1)-1 + " TP.1: 50% TP(1)-1 + " TP.5: 8% TP(5)-1 + " TP.5: 22% TP(5)-1 +def form PS2.09: 26% PS2:9-51 + " PS2.09: 75% PS2:9-123 + " PS2.09: 75% PS2:9-123 +DEFAULT PS1.12: 52% PS1:12-4 +default : PS1.01: 66% PS1:1-22 +default action[s] PS1.06: 23% PS1:6-13 + " PS1.06: 27% PS1:6-14 + " PS1.15: 28% PS1:15-8 + " PS1.15: 48% PS1:15-14 + " PS1.16: 36% PS1:16-5 + " PS1.16: 39% PS1:16-5 + " PS1.16: 40% PS1:16-5 + " PS2.03: 66% PS2:3-10 + " PS2.03: 66% PS2:3-10 + " PS2.03: 67% PS2:3-10 + " PS2.03: 72% PS2:3-11 + " PS2.10: 39% PS2:10-34 + " PS2.10: 64% PS2:10-56 +default port PS2.09: 35% PS2:9-63 + " PS2.09: 35% PS2:9-63 + " PS2.09: 35% PS2:9-63 + " PS2.09: 36% PS2:9-65 + " PS2.09: 39% PS2:9-69 + " PS2.09: 39% PS2:9-70 + " PS2.09: 40% PS2:9-71 + " PS2.09: 40% PS2:9-71 + " PS2.09: 40% PS2:9-71 + " PS2.09: 40% PS2:9-72 +default protocol PS1.07a: 36% PS1:7-8 + " PS1.08: 9% PS1:8-4 + " PS1.08: 70% PS1:8-28 + " PS1.08: 70% PS1:8-28 +default rule PS1.13: 18% PS1:13-4 + " PS1.13: 20% PS1:13-4 + " PS1.14: 79% PS1:14-11 +default value[s] PS1.02: 78% PS1:2-26 + " PS1.03: 44% PS1:3-6 + " PS1.03: 45% PS1:3-6 + " PS1.04: 87% PS1:4-44 + " PS2.06: 81% PS2:6-28 + " PS2.09: 46% PS2:9-82 + " PS2.09: 78% PS2:9-127 + " PS2.10: 5% PS2:10-7 + " PS2.10: 7% PS2:10-8 + " PS2.10: 24% PS2:10-23 + " PS2.10: 24% PS2:10-24 + " PS2.10: 46% PS2:10-38 +default, input BIB.N: 8% BIB(1)-1 + " GREP.1: 8% GREP(1)-1 + " LEX.1: 16% LEX(1)-1 + " SED.1: 3% SED(1)-1 + " STRUCT.1: 8% STRUCT(1)-1 + " TC.1: 12% TC(1)-1 +default, MH INC.N: 18% INC(1)-1 + " USD.08: 24% USD:8-26 + " USD.08: 45% USD:8-54 +default action for signal SIGNAL.3C: 42% SIGNAL(3C)-2 +default addresses ED.1: 33% ED(1)-2 + " ED.1: 38% ED(1)-2 + " USD.16: 23% USD:16-4 + " USD.16: 28% USD:16-5 +default argument[s] SH.1: 30% SH(1)-2 + " USD.03: 22% USD:3-5 + " USD.03: 38% USD:3-9 + " USD.04: 33% USD:4-15 + " USD.04: 34% USD:4-15 + " USD.08: 7% USD:8-6 +default device REBOOT.8: 31% REBOOT(8)-1 + " SMM.01: 74% SMM:1-45 + " SMM.01: 74% SMM:1-45 + " SMM.01: 74% SMM:1-45 +default display NETSTAT.1: 18% NETSTAT(1)-1 + " NETSTAT.1: 21% NETSTAT(1)-1 + " NETSTAT.1: 44% NETSTAT(1)-1 + " SMM.12: 41% SMM:12-1 + " SYSTAT.1: 17% SYSTAT(1)-1 + " SMM.12A: 41% SMM:12-9 +default domain name RESOLVER.3: 28% RESOLVER(3)-1 + " RESOLVER.3: 48% RESOLVER(3)-2 + " RESOLVER.3: 51% RESOLVER(3)-2 +default draft folder MH-PROFILE.N: 32% MH-PROFILE(5)-2 + " USD.08: 71% USD:8-86 + " USD.08: 83% USD:8-102 +default draft-folder Editor DIST.N: 70% DIST(1)-2 + " FORW.N: 78% FORW(1)-2 + " REPL.N: 79% REPL(1)-2 + " USD.08: 16% USD:8-17 + " USD.08: 18% USD:8-19 + " USD.08: 23% USD:8-25 + " USD.08: 49% USD:8-59 + " USD.08: 60% USD:8-72 + " WHATNOW.N: 74% WHATNOW(1)-1 +default editor Msg-Protect COMP.N: 82% COMP(1)-2 + " FORW.N: 79% FORW(1)-2 + " REPL.N: 80% REPL(1)-2 + " USD.08: 16% USD:8-17 + " USD.08: 23% USD:8-25 + " USD.08: 49% USD:8-59 +default erase character TSET.1: 47% TSET(1)-2 +Default error handler LIB2648.3X: 37% LIB2648(3X)-2 +default file[s] DICTION.1: 67% DICTION(1)-1 + " DICTION.1: 73% DICTION(1)-1 + " MH.N: 21% MH(1)-1 + " REFER.1: 48% REFER(1)-1 + " REFER.1: 50% REFER(1)-1 + " SPELL.1: 51% SPELL(1)-1 + " USD.32: 48% USD:32-7 + " USD.32: 49% USD:32-7 + " USD.32: 49% USD:32-7 + " USD.32: 50% USD:32-7 + " USD.32: 50% USD:32-7 + " USD.32: 64% USD:32-9 +default file name ED.1: 47% ED(1)-3 + " USD.17: 99% USD:17-48 + " USD.33: 91% USD:33-9 +default file system[s] DCHECK.8: 25% DCHECK(8)-1 + " DCHECK.8: 46% DCHECK(8)-1 + " DUMP.8: 43% DUMP(8)-1 + " ICHECK.8: 15% ICHECK(8)-1 + " ICHECK.8: 64% ICHECK(8)-1 + " QUOT.8: 82% QUOT(8)-1 + " QUOTACHECK.8: 92% QUOTACHECK(8)-1 +default filename USD.17: 4% USD:17-2 + " USD.17: 32% USD:17-14 + " USD.17: 32% USD:17-14 +default form REPL.N: 24% REPL(1)-1 + " USD.08: 47% USD:8-57 +default format[s] AP.N: 55% AP(8)-1 + " A_OUT.5: 41% A.OUT(5)-2 + " DISKPART.8: 55% DISKPART(8)-1 + " DP.N: 54% DP(8)-1 + " FTP.1C: 17% FTP(1C)-2 + " MH-FORMAT.N: 74% MH-FORMAT(5)-3 + " MHL.N: 80% MHL(1)-3 + " MHL.N: 90% MHL(1)-3 + " SMM.07: 46% SMM:7-1 + " USD.08: 30% USD:8-32 + " USD.08: 30% USD:8-33 + " USD.08: 66% USD:8-80 + " USD.08: 75% USD:8-91 + " USD.08: 76% USD:8-94 + " USD.17: 70% USD:17-33 + " USD.20: 14% USD:20-2 + " SMM.07A: 42% SMM:07-19 +default group id SENDMAIL.8: 60% SENDMAIL(8)-2 + " SMM.07: 79% SMM:7-1 + " SMM.07A: 70% SMM:07-30 +default label[s] CSH.1: 72% CSH(1)-15 + " CSH.1: 72% CSH(1)-15 + " CSH.1: 72% CSH(1)-15 +default length INVERT.N: 37% INVERT(1)-1 + " LPTEST.1: 65% LPTEST(1)-1 + " USD.25: 58% USD:25-9 +default line length PTX.1: 51% PTX(1)-1 + " PTX.1: 56% PTX(1)-1 + " USD.28: 27% USD:28-5 +Default Line Numbers and the Value of Dot USD.13: 46% USD:13-8 +default list FSCK.8: 71% FSCK(8)-2 + " FSCK.8: 92% FSCK(8)-2 + " MAKE.1: 43% MAKE(1)-1 +default location[s] SMM.02: 5% SMM:2-3 + " SMM.11: 26% SMM:11-4 +default message filter FORW.N: 40% FORW(1)-1 + " REPL.N: 43% REPL(1)-1 + " USD.08: 22% USD:8-24 + " USD.08: 48% USD:8-57 +default message form COMP.N: 14% COMP(1)-1 + " DIST.N: 10% DIST(1)-1 + " FORW.N: 12% FORW(1)-1 + " USD.08: 15% USD:8-16 + " USD.08: 17% USD:8-18 + " USD.08: 21% USD:8-23 +default mode[s] FTP.1C: 34% FTP(1C)-3 + " PROF.1: 13% PROF(1)-1 + " SMM.12: 34% SMM:12-1 + " SMM.16: 64% SMM:16-9 + " SMM.12A: 34% SMM:12-8 +default N NROFF.1: 42% NROFF(1)-1 + " TROFF.1: 34% TROFF(1)-1 + " USD.24: 2% USD:24-2 +default number CI.N: 34% CI(1)-1 + " NICE.1: 25% NICE(1)-1 + " SMM.10: 7% SMM:10-2 + " SMM.11: 51% SMM:11-7 + " SMM.13: 55% SMM:13-19 +default options ARFF.8V: 19% ARFF(8V)-1 + " CMP.1: 27% CMP(1)-1 + " INVERT.N: 31% INVERT(1)-1 +default path CATMAN.8: 49% CATMAN(8)-1 + " MAN.1: 66% MAN(1)-1 + " SH.1: 65% SH(1)-4 +default point size USD.22: 93% USD:22-18 +default port TELNET.1C: 20% TELNET(1C)-1 +default precedence PICK.N: 49% PICK(1)-2 + " SMM.07: 45% SMM:7-1 + " USD.08: 41% USD:8-48 + " SMM.07A: 41% SMM:07-19 +default printer ENVIRON.7: 68% ENVIRON(7)-1 + " LPR.1: 10% LPR(1)-1 + " LPRM.1: 71% LPRM(1)-1 + " PAC.8: 39% PAC(8)-1 + " PRINTCAP.5: 10% PRINTCAP(5)-1 +default program[s] SHOW.N: 14% SHOW(1)-1 + " SMM.10: 10% SMM:10-3 + " USD.08: 55% USD:8-66 + " USD.08: 59% USD:8-71 + " WHATNOW.N: 6% WHATNOW(1)-1 +default radix ADB.1: 16% ADB(1)-1 + " ADB.1: 16% ADB(1)-1 + " ADB.1: 18% ADB(1)-1 + " ADB.1: 70% ADB(1)-4 + " ADB.1: 71% ADB(1)-4 + " ADB.1: 71% ADB(1)-4 +default rewriting rule[s] SMM.19: 56% SMM:19-16 + " SMM.19: 74% SMM:19-21 + " SMM.19: 75% SMM:19-21 +default route SMM.01: 66% SMM:1-40 + " SMM.12: 92% SMM:12-1 + " SMM.12A: 92% SMM:12-21 +default rule[s] DISKPART.8: 11% DISKPART(8)-1 +default scale factor USD.25: 38% USD:25-6 +default settings USD.16: 1% USD:16-1 + " USD.16: 1% USD:16-1 + " USD.20: 68% USD:20-5 +default shell MAIL.1: 91% MAIL(1)-6 + " MH-PROFILE.N: 50% MH-PROFILE(5)-4 + " USD.08: 72% USD:8-88 + " USD.17: 93% USD:17-45 + " WINDOW.1: 84% WINDOW(1)-6 +default super-block SMM.05: 7% SMM:5-3 + " SMM.05: 25% SMM:5-6 + " SMM.14: 18% SMM:14-4 +default switch[s] INC.N: 25% INC(1)-1 + " USD.08: 8% USD:8-6 + " USD.08: 8% USD:8-8 + " USD.08: 8% USD:8-8 + " USD.08: 24% USD:8-26 +default table GETTY.8: 29% GETTY(8)-1 + " GETTYTAB.5: 12% GETTYTAB(5)-1 + " RANDOM.3: 12% RANDOM(3)-1 +default type F77.1: 49% F77(1)-2 + " FTP.1C: 7% FTP(1C)-1 + " FTP.1C: 68% FTP(1C)-5 +Default unit[s] MAN.7: 26% MAN(7)-1 + " USD.25: 27% USD:25-5 + " USD.25: 68% USD:25-10 + " USD.25: 69% USD:25-10 +default version[s] SETJMP.3: 80% SETJMP(3)-1 +default whatnowproc DIST.N: 46% DIST(1)-1 + " MH-PROFILE.N: 64% MH-PROFILE(5)-4 + " REPL.N: 31% REPL(1)-1 + " USD.08: 17% USD:8-18 + " USD.08: 48% USD:8-57 + " USD.08: 72% USD:8-88 +default window size MORE.1: 41% MORE(1)-2 + " MORE.1: 42% MORE(1)-2 + " USD.15: 61% USD:15-17 + " USD.15: 61% USD:15-17 +defaulting system device[s] SMM.02: 79% SMM:2-26 +Defaults None USD.08: 31% USD:8-34 + " USD.08: 63% USD:8-77 + " USD.08: 66% USD:8-80 + " USD.08: 69% USD:8-84 + " USD.08: 73% USD:8-89 +defboo, hk SMM.01: 37% SMM:1-24 + " SMM.01: 37% SMM:1-24 + " SMM.01: 38% SMM:1-25 +defboo, ra SMM.01: 37% SMM:1-24 + " SMM.01: 37% SMM:1-25 + " SMM.01: 38% SMM:1-25 +Defense Advance Research Projects Agency SMM.05: 39% SMM:5-8 + " SMM.14: 3% SMM:14-2 + " SMM.14: 94% SMM:14-14 +Defense Advanced Research Projects Agency SMM.11: 93% SMM:11-14 + " SMM.22: 10% SMM:22-2 +Defense Research Projects Agency SMM.11: 94% SMM:11-15 + " SMM.22: 11% SMM:22-2 +Define a string USD.24: 49% USD:24-16 +Define footer USD.23: 24% USD:23-3 + " USD.23: 25% USD:23-3 +Define footer, .ef USD.23: 24% USD:23-3 +Define footer, .fo USD.23: 24% USD:23-3 +Define footer, .of USD.23: 25% USD:23-3 +Define header, .eh USD.23: 24% USD:23-3 +Define header, .oh USD.23: 24% USD:23-3 +Define or redefine the macro USD.24: 49% USD:24-16 +define - define subschema PS2.10: 10% PS2:10-12 +define your own command[s] USD.17: 54% USD:17-24 +define(name, stuff) PS1.17: 18% PS1:17-2 +Defining Macro[s] PS2.10: 16% PS2:10-19 + " PS1.17: 18% PS1:17-2 +Definition[s], Data PS1.01: 72% PS1:1-24 + " PS1.01: 72% PS1:1-25 + " PS1.01: 76% PS1:1-26 +Definition[s], External PS1.01: 69% PS1:1-24 +Definition[s], Function PS1.01: 70% PS1:1-24 + " PS1.01: 70% PS1:1-24 + " PS1.01: 71% PS1:1-24 + " PS1.09: 26% PS1:9-3 + " PS1.09: 29% PS1:9-3 + " PS1.09: 83% PS1:9-9 + " PS2.07: 31% PS2:7-15 + " PS2.09: 13% PS2:9-24 + " PS2.09: 13% PS2:9-24 + " PS2.09: 13% PS2:9-24 + " PS2.09: 15% PS2:9-28 + " PS2.09: 40% PS2:9-70 + " PS2.09: 40% PS2:9-71 + " PS2.09: 56% PS2:9-98 + " PS2.09: 57% PS2:9-99 + " PS2.09: 64% PS2:9-108 + " PS2.09: 70% PS2:9-116 + " PS2.09: 73% PS2:9-120 + " PS2.09: 73% PS2:9-120 + " PS2.09: 74% PS2:9-123 + " PS2.09: 79% PS2:9-128 + " PS2.09: 87% PS2:9-140 +define-global-word-abbrev USD.17: 63% USD:17-29 +define-mode-word-abbrev USD.17: 63% USD:17-29 +defined name[s] USD.31: 9% USD:31-2 +Defining Macros USD.22: 80% USD:22-15 +defining text USD.16: 76% USD:16-14 +definition[s], alias MH-ALIAS.N: 16% MH-ALIAS(5)-1 + " SEND.N: 85% SEND(1)-2 + " USD.04: 34% USD:4-15 + " USD.08: 55% USD:8-65 + " USD.08: 61% USD:8-73 + " WHOM.N: 43% WHOM(1)-1 +definition[s], header SMM.16: 57% SMM:16-8 + " SMM.07A: 82% SMM:07-37 +definition[s], macro PS1.01: 78% PS1:1-26 + " PS1.12: 34% PS1:12-3 + " PS1.12: 36% PS1:12-4 + " PS1.12: 39% PS1:12-4 + " PS1.12: 40% PS1:12-4 + " PS1.12: 53% PS1:12-5 + " PS1.12: 54% PS1:12-5 + " PS1.12: 58% PS1:12-5 + " PS1.16: 47% PS1:16-6 + " PS2.09: 56% PS2:9-98 + " PS2.09: 74% PS2:9-123 + " PS2.09: 75% PS2:9-123 + " PS2.09: 75% PS2:9-123 + " PS2.09: 75% PS2:9-124 + " PS2.09: 75% PS2:9-124 + " PS2.09: 76% PS2:9-125 + " PS2.09: 96% PS2:9-151 + " PS2.10: 27% PS2:10-26 +definition[s], mailer SMM.16: 37% SMM:16-5 + " SMM.16: 57% SMM:16-8 + " SMM.07A: 36% SMM:07-17 + " SMM.07A: 50% SMM:07-23 + " SMM.07A: 50% SMM:07-23 + " SMM.07A: 51% SMM:07-23 + " SMM.07A: 72% SMM:07-32 + " SMM.07A: 74% SMM:07-32 +definition[s], troff macro ME.7: 4% ME(7)-1 + " MS.7: 2% MS(7)-1 + " USD.31: 46% USD:31-8 + " USD.24: 45% USD:24-15 +definition facility USD.26: 52% USD:26-4 +definition of a function USD.06: 31% USD:6-4 +definition of a string USD.25: 45% USD:25-7 +Delay[s] L_SYS.5: 76% L.SYS(5)-3 + " SMM.09: 75% SMM:9-16 + " GETTYTAB.5: 60% GETTYTAB(5)-2 + " STTY.1: 40% STTY(1)-2 + " TERMCAP.5: 80% TERMCAP(5)-11 + " TTY.4: 36% TTY(4)-4 +definition[s], view PS2.10: 13% PS2:10-16 + " PS2.10: 90% PS2:10-80 +definitions section PS1.16: 61% PS1:16-8 + " PS1.16: 66% PS1:16-9 + " PS1.16: 91% PS1:16-12 + " PS1.16: 93% PS1:16-12 + " PS1.16: 96% PS1:16-13 +delayed suspend process character STTY.1: 94% STTY(1)-3 +Delayed Text USD.22: 42% USD:22-8 +delayed text, .(d Begin USD.23: 35% USD:23-5 +delayed text, .)d n End USD.23: 35% USD:23-5 +delayed text, .pd Print USD.23: 36% USD:23-5 +Delayed text number USD.23: 69% USD:23-9 +Delete[s] DBM.3X: 10% DBM(3X)-1 + " USD.16: 31% USD:16-6 +delch() PS1.18: 36% PS1:18-9 +delete a breakpoint PS1.10: 26% PS1:10-6 +delete a route ROUTE.8C: 12% ROUTE(8C)-1 +DELETE command[s] ED.1: 44% ED(1)-3 + " USD.14: 59% USD:14-15 + " USD.17: 15% USD:17-7 +delete breakpoint PS1.10: 96% PS1:10-27 +delete line[s] USD.18: 41% USD:18-4 +delete-blank-lines (C-X C-O) USD.17: 63% USD:17-29 +delete-buffer (C-X K) USD.17: 63% USD:17-29 +delete-current-window (C-X D) USD.17: 64% USD:17-29 +delete-macro USD.17: 63% USD:17-29 +delete-next-character (C-D) USD.17: 64% USD:17-29 +delete-other-windows (C-X 1) USD.17: 64% USD:17-29 +delete-previous-character (Rubout) USD.17: 64% USD:17-29 +delete-white-space (ESC \) USD.17: 64% USD:17-29 +Deleting lines USD.12: 42% USD:12-5 + " USD.14: 55% USD:14-14 +deleteln() PS1.18: 37% PS1:18-10 +deleting old delta[s] PS1.14: 42% PS1:14-6 +delget, sccs PS1.14: 51% PS1:14-8 +delim - specify a name for a pattern of character[s] PS2.10: 11% PS2:10-14 +delimiter, %% PS1.16: 10% PS1:16-2 + " PS1.16: 61% PS1:16-8 + " PS1.16: 63% PS1:16-8 + " PS1.16: 64% PS1:16-8 +delimiter[s] USD.13: 19% USD:13-4 + " USD.21: 94% USD:21-3 + " USD.26: 57% USD:26-4 + " USD.26: 84% USD:26-7 + " USD.27: 70% USD:27-8 +delimiters, eqn USD.28: 10% USD:28-2 + " USD.28: 46% USD:28-7 + " USD.32: 72% USD:32-11 +delimiter, field USD.24: 56% USD:24-18 + " USD.24: 57% USD:24-18 +delimiting character USD.18: 58% USD:18-6 + " USD.18: 59% USD:18-6 + " USD.18: 59% USD:18-6 +Deliver SMM.07A: 69% SMM:07-30 +Delivermail SMM.16: 64% SMM:16-9 + " SMM.07A: 8% SMM:07-6 +delimitor group[s] PS2.10: 12% PS2:10-15 + " PS2.10: 12% PS2:10-15 + " PS2.10: 13% PS2:10-16 + " PS2.10: 50% PS2:10-44 +Delta[s] PS1.14: 68% PS1:14-10 + " PS1.14: 8% PS1:14-1 +delivery, mail SMM.16: 20% SMM:16-3 + " USD.08: 61% USD:8-75 +delivery, message SMM.16: 28% SMM:16-4 + " SMM.16: 33% SMM:16-5 + " SMM.16: 52% SMM:16-7 +delivery, reliable GETSOCKOPT.2: 62% GETSOCKOPT(2)-2 +delivery, Signal SIGVEC.2: 4% SIGVEC(2)-1 + " SMM.12A: 70% SMM:12-16 +delivery mode[s] SENDMAIL.8: 49% SENDMAIL(8)-2 + " SENDMAIL.8: 50% SENDMAIL(8)-2 + " SMM.07A: 30% SMM:07-15 + " SMM.07A: 31% SMM:07-15 + " SMM.07A: 31% SMM:07-15 +Delivery-Date PICK.N: 26% PICK(1)-1 + " SORTM.N: 38% SORTM(1)-1 + " USD.08: 32% USD:8-35 + " USD.08: 40% USD:8-47 +Delivery-Date: MHOOK.N: 19% MHOOK(1)-1 +delta[s], deleting old PS1.14: 42% PS1:14-6 +delwin() PS1.18: 17% PS1:18-5 +delwin(win) PS1.18: 47% PS1:18-14 +density disk[s] RX.4: 13% RX(4)-1 + " RX.4: 49% RX(4)-1 + " RX.4: 51% RX(4)-1 +depend, make SMM.02: 13% SMM:2-5 +dependencies MAKE.1: 10% MAKE(1)-1 +dependency line[s] PS1.12: 30% PS1:12-3 + " PS1.12: 42% PS1:12-4 + " PS1.12: 43% PS1:12-4 + " PS1.12: 43% PS1:12-4 + " PS1.12: 43% PS1:12-4 + " PS1.12: 44% PS1:12-4 + " PS1.12: 45% PS1:12-4 +dependency[s], source code SMM.02: 13% SMM:2-5 +dependency list SMM.12A: 6% SMM:12-2 +deposited revision PS1.13: 26% PS1:13-5 + " PS1.13: 30% PS1:13-6 + " PS1.13: 31% PS1:13-6 + " PS1.13: 31% PS1:13-6 + " PS1.13: 31% PS1:13-6 +dequeuing packet[s], queuing and SMM.15: 67% SMM:15-20 +DEROFF USD.32: 70% USD:32-10 + " SMM.12A: 15% SMM:12-4 +dereference NULL pointer PS1.11a: 31% PS1:11-2 + " PS1.11a: 23% PS1:11-2 +deroff - remove nroffs, troffs, tbl and eqn construct DEROFF.1: 4% DEROFF(1)-1 +DES algorithm MAKEKEY.8: 69% MAKEKEY(8)-1 +DES encryption, crypt, setkey, encrypt - CRYPT.3: 2% CRYPT(3)-1 +DES encryption algorithm SMM.18: 66% SMM:18-4 +descender[s], characters with USD.24: 65% USD:24-21 +describe command[s] USD.17: 7% USD:17-3 +describe-binding[s] USD.17: 7% USD:17-3 + " USD.17: 64% USD:17-29 +describe-command USD.17: 64% USD:17-31 +describe-command command JOVE.N: 51% JOVE(1)-2 +describe-key USD.17: 7% USD:17-3 + " USD.17: 65% USD:17-31 +describe-variable USD.17: 65% USD:17-31 +description, configuration SMM.01: 17% SMM:1-12 + " SMM.02: 2% SMM:2-2 + " SMM.02: 5% SMM:2-3 + " VA.4: 6% VA(4)-1 +description, function PS2.09: 6% PS2:9-10 + " PS2.09: 6% PS2:9-10 + " PS2.09: 7% PS2:9-10 +description, type name PS1.18: 67% PS1:18-19 +description file[s] PS1.12: 4% PS1:12-1 + " PS1.12: 13% PS1:12-2 + " PS1.12: 23% PS1:12-2 + " PS1.12: 35% PS1:12-3 + " PS1.12: 36% PS1:12-4 + " PS1.12: 49% PS1:12-4 + " PS1.12: 49% PS1:12-4 + " PS1.12: 55% PS1:12-5 + " PS1.12: 56% PS1:12-5 + " PS1.12: 56% PS1:12-5 + " PS1.12: 59% PS1:12-5 + " PS1.12: 61% PS1:12-5 + " PS1.12: 72% PS1:12-6 + " PS1.12: 73% PS1:12-6 + " PS1.12: 78% PS1:12-7 + " PS1.12: 79% PS1:12-7 + " PS1.12: 80% PS1:12-8 + " PS1.12: 81% PS1:12-8 + " PS1.12: 92% PS1:12-9 + " PS1.12: 94% PS1:12-9 + " PS1.12: 96% PS1:12-9 +Descriptor[s] PS1.06: 36% PS1:6-18 + " PS1.06: 96% PS1:6-42 + " PS1.07a: 2% PS1:7-1 +description[s], mailer SMM.07: 72% SMM:7-1 + " SMM.07: 83% SMM:7-1 + " SMM.07A: 64% SMM:07-27 + " SMM.07A: 74% SMM:07-32 + " SMM.07A: 61% SMM:07-26 +Description, Name Appears on Page INTRO.3: 18% INTRO(3)-1 + " INTRO.3F: 24% INTRO(3F)-1 + " STDIO.3S: 61% STDIO(3S)-1 +description, one-line SHOW.N: 27% SHOW(1)-1 + " USD.08: 56% USD:8-66 +description, system INTRO.4: 7% INTRO(4)-1 + " INTRO.4N: 24% INTRO(4N)-1 + " SMM.01: 4% SMM:1-3 +description, termcap HIER.7: 12% HIER(7)-1 + " TERMCAP.5: 39% TERMCAP(5)-7 + " TERMCAP.5: 75% TERMCAP(5)-11 + " TERMCAP.5: 79% TERMCAP(5)-11 +description[s], terminal TERMCAP.3X: 43% TERMCAP(3X)-1 + " TERMCAP.5: 31% TERMCAP(5)-6 + " TERMCAP.5: 32% TERMCAP(5)-6 + " TERMCAP.5: 87% TERMCAP(5)-12 + " TERMCAP.5: 88% TERMCAP(5)-12 + " TERMCAP.5: 98% TERMCAP(5)-14 + " VGRINDEFS.5: 96% VGRINDEFS(5)-2 +Description, Uucp Implementation SMM.01: 57% SMM:1-35 + " SMM.09: 2% SMM:9-2 + " SMM.16: 94% SMM:16-12 + " USERFILE.5: 88% USERFILE(5)-2 + " UUCICO.8C: 98% UUCICO(8C)-2 + " UUCP.1C: 68% UUCP(1C)-2 +description of remote hosts HIER.7: 21% HIER(7)-2 +Descriptor[s] FCNTL.2: 6% FCNTL(2)-1 + " FORK.2: 25% FORK(2)-1 + " INTRO.2: 75% INTRO(2)-6 + " READ.2: 12% READ(2)-1 + " SELECT.2: 12% SELECT(2)-1 + " TTY.4: 83% TTY(4)-9 + " WRITE.2: 11% WRITE(2)-1 +descriptor[s], file FCNTL.2: 20% FCNTL(2)-1 + " FERROR.3S: 77% + " FLOCK.2: 18% FLOCK(2)-1 + " PS1.06: 17% PS1:6-11 + " PS1.06: 39% PS1:6-19 + " PS1.06: 98% PS1:6-42 + " PS1.07a: 88% PS1:7-22 + " PS1.08: 25% PS1:8-9 + " PS1.08: 26% PS1:8-9 + " PS1.08: 27% PS1:8-9 + " PS1.08: 27% PS1:8-10 + " PS1.08: 27% PS1:8-10 + " PS1.08: 29% PS1:8-10 + " PS1.08: 64% PS1:8-26 + " PS1.08: 98% PS1:8-41 + " PS2.01: 29% PS2:1-5 + " PS2.01: 30% PS2:1-5 + " PS2.01: 38% PS2:1-6 + " PS2.01: 54% PS2:1-8 + " PS2.01: 60% PS2:1-9 + " PS2.01: 60% PS2:1-9 + " PS2.01: 61% PS2:1-9 + " PS2.01: 61% PS2:1-9 + " PS2.01: 63% PS2:1-10 + " PS2.01: 63% PS2:1-10 + " PS2.01: 72% PS2:1-11 + " PS2.01: 73% PS2:1-11 + " PS2.01: 74% PS2:1-11 + " PS2.03: 25% PS2:3-4 + " PS2.03: 26% PS2:3-5 + " PS2.03: 26% PS2:3-5 + " PS2.03: 26% PS2:3-5 + " PS2.03: 26% PS2:3-5 + " PS2.03: 27% PS2:3-5 + " PS2.03: 27% PS2:3-5 + " PS2.03: 27% PS2:3-5 + " PS2.03: 27% PS2:3-5 + " PS2.03: 28% PS2:3-5 + " PS2.03: 28% PS2:3-5 + " PS2.03: 29% PS2:3-5 + " PS2.03: 34% PS2:3-6 + " PS2.03: 35% PS2:3-6 + " PS2.03: 38% PS2:3-7 + " PS2.03: 38% PS2:3-7 + " PS2.03: 38% PS2:3-7 + " PS2.03: 54% PS2:3-9 + " PS2.03: 55% PS2:3-9 + " PS2.03: 56% PS2:3-9 + " PS2.03: 57% PS2:3-9 + " PS2.03: 57% PS2:3-9 + " PS2.03: 58% PS2:3-9 + " PS2.03: 61% PS2:3-10 + " PS2.03: 61% PS2:3-10 + " PS2.03: 64% PS2:3-10 + " PS2.05: 9% PS2:5-1 + " PS2.10: 78% PS2:10-70 + " PS2.10: 78% PS2:10-70 + " PS1.18: 26% PS1:18-7 + " TEST.1: 43% TEST(1)-1 + " TTYNAME.3: 28% TTYNAME(3)-1 +descriptor, i/o is possible on a SIGNAL.3C: 33% SIGNAL(3C)-1 +descriptor, installing an nroff terminal SMM.20: 60% SMM:20-5 +descriptor, mailer SMM.07A: 23% SMM:07-12 + " SMM.07A: 53% SMM:07-24 + " SMM.07A: 53% SMM:07-24 +descriptor[s], open file MKTEMP.3: 87% MKTEMP(3)-1 + " OPEN.2: 68% OPEN(2)-2 + " PS1.08: 98% PS1:8-41 + " PS2.03: 61% PS2:3-10 + " PS2.04: 12% PS2:4-2 +descriptor[s], Process PS1.06: 51% PS1:6-24 +descriptor option, get PS1.06: 40% PS1:6-19 +Descriptor property[s] PS1.06: 37% PS1:6-18 +descriptor reference PS1.06: 37% PS1:6-18 + " PS1.06: 37% PS1:6-18 + " PS1.06: 38% PS1:6-18 + " PS1.06: 38% PS1:6-18 +descriptor reference table PS1.06: 36% PS1:6-18 + " PS1.06: 36% PS1:6-18 + " PS1.06: 36% PS1:6-18 +descriptor table PS1.07a: 11% PS1:7-2 + " PS1.07a: 17% PS1:7-4 + " PS1.07a: 18% PS1:7-4 + " PS1.07a: 19% PS1:7-4 +descriptor type[s] PS1.06: 54% PS1:6-25 + " PS1.06: 54% PS1:6-25 + " PS1.06: 84% PS1:6-36 +Descriptor wrapping PS1.06: 42% PS1:6-20 +descriptor[s], open file SMM.12A: 68% SMM:12-16 +descriptor fd CHMOD.2: 8% CHMOD(2)-1 + " SELECT.2: 34% SELECT(2)-1 +descriptor status flags FCNTL.2: 36% CSH(1)-12 +descriptor table GETDTABLESIZE.2: 39% +Design, Language USD.26: 14% USD:26-2 + " USD.26: 14% USD:26-2 + " USD.27: 98% USD:27-10 +design decisions SMM.11: 22% SMM:11-3 + " SMM.14: 4% SMM:14-2 + " SMM.19: 73% SMM:19-20 +design goal[s] SMM.16: 9% SMM:16-2 + " SMM.16: 10% SMM:16-2 + " SMM.16: 10% SMM:16-2 + " SMM.16: 69% SMM:16-10 + " SMM.21: 11% SMM:21-2 + " USD.26: 26% USD:26-2 +designation[s], message MHPATH.N: 38% MHPATH(1)-1 + " USD.08: 10% USD:8-9 + " USD.08: 10% USD:8-9 + " USD.08: 35% USD:8-39 +desk calculator BC.1: 90% BC(1)-2 + " DC.1: 1% DC(1)-1 + " PS1.15: 81% PS1:15-24 + " PS1.15: 81% PS1:15-24 + " PS1.15: 82% PS1:15-24 + " PS1.15: 87% PS1:15-28 + " PS1.15: 88% PS1:15-28 +destination addresses GETSOCKOPT.2: 60% GETSOCKOPT(2)-2 + " ICMP.4P: 51% ICMP(4P)-1 + " ICMP.4P: 69% ICMP(4P)-1 + " ICMP.4P: 77% ICMP(4P)-1 + " IDP.4P: 37% IDP(4P)-1 + " IDP.4P: 40% IDP(4P)-1 + " IMP.4P: 38% IMP(4P)-1 + " IMP.4P: 68% IMP(4P)-1 + " IMP.4P: 74% IMP(4P)-1 + " IP.4P: 60% IP(4P)-1 + " POST.N: 25% POST(8)-1 + " POST.N: 33% POST(8)-1 + " PS1.06: 82% PS1:6-36 + " PS1.07a: 87% PS1:7-22 + " PS1.08: 22% PS1:8-8 + " PS1.08: 24% PS1:8-9 + " PS1.08: 24% PS1:8-9 + " PS1.08: 80% PS1:8-32 + " PS1.08: 83% PS1:8-34 + " PS1.08: 84% PS1:8-34 + " PS1.08: 91% PS1:8-38 + " PS1.08: 92% PS1:8-38 + " PS1.06: 79% PS1:6-34 + " RECV.2: 65% RECV(2)-1 + " ROUTED.8C: 38% ROUTED(8C)-1 + " SMM.13: 66% SMM:13-23 + " SMM.13: 69% SMM:13-24 + " SMM.15: 39% SMM:15-12 + " SMM.15: 76% SMM:15-22 + " SMM.15: 80% SMM:15-23 + " SMM.15: 81% SMM:15-23 + " TRPT.8C: 27% TRPT(8C)-1 + " TRSP.8C: 48% TRSP(8c)-1 + " USD.08: 78% USD:8-96 + " USD.08: 78% USD:8-96 +destination host PS1.08: 16% PS1:8-6 + " PS1.08: 49% PS1:8-20 + " PS1.08: 83% PS1:8-34 +destination host[s] INTRO.4N: 52% INTRO(4N)-2 + " INTRO.4N: 63% INTRO(4N)-2 + " INTRO.4N: 68% INTRO(4N)-3 + " NETSTAT.1: 67% NETSTAT(1)-2 + " ROUTE.8C: 16% ROUTE(8C)-1 + " SMM.13: 75% SMM:13-26 + " SMM.07A: 55% SMM:07-24 +destination machine[s] SMM.21: 27% SMM:21-2 +destination name[s] SMM.09: 8% SMM:9-3 +destination network IFCONFIG.8C: 61% IFCONFIG(8C)-1 + " ROUTED.8C: 21% ROUTED(8C)-1 + " SMM.15: 73% SMM:15-21 + " XNSROUTED.8C: 40% XNSROUTED(8C)-1 +destroy - destroy existing relation PS2.10: 11% PS2:10-15 +destroydb - destroy an existing database PS2.10: 55% PS2:10-49 +detached USD.04: 74% USD:4-36 +detection, error FORMAT.8V: 11% FORMAT(8V)-1 + " SMM.12A: 67% SMM:12-16 +DEUNA SMM.13: 1% SMM:13-2 +DEUNA, DEC DE.4: 2% DE(4)-1 + " SMM.12: 74% SMM:12-1 + " SMM.13: 88% SMM:13-30 + " SMM.13: 89% SMM:13-30 + " SMM.12A: 73% SMM:12-17 +developing program[s] USD.01: 5% USD:1-2 +Device[s] INTRO.4: 48% INTRO(4)-1 + " SMM.02: 70% SMM:2-21 +device[s], block PS1.06: 93% PS1:6-39 + " PS1.06: 94% PS1:6-39 + " PS2.04: 45% PS2:4-5 + " PS2.04: 54% PS2:4-6 + " PS2.04: 92% PS2:4-9 + " PS2.04: 92% PS2:4-9 + " PS2.04: 93% PS2:4-9 + " PS2.04: 93% PS2:4-9 + " PS2.05: 4% PS2:5-1 + " PS2.05: 53% PS2:5-4 + " PS2.05: 56% PS2:5-4 + " PS2.05: 82% PS2:5-6 +device[s], character PS1.06: 61% PS1:6-28 + " PS2.04: 51% PS2:4-5 + " PS2.04: 54% PS2:4-6 + " PS2.04: 59% PS2:4-6 + " PS2.04: 62% PS2:4-6 + " PS2.05: 8% PS2:5-1 + " PS2.05: 23% PS2:5-2 + " PS2.05: 27% PS2:5-2 + " PS2.05: 82% PS2:5-6 +device[s], Creating references to PS1.06: 61% PS1:6-28 +device, output PS2.10: 13% PS2:10-16 + " PS2.10: 74% PS2:10-64 + " PS2.10: 75% PS2:10-67 +devices, ACU L_SYS.5: 47% L.SYS(5)-2 + " L_SYS.5: 53% L.SYS(5)-2 + " SMM.09: 69% SMM:9-15 + " SMM.09: 70% SMM:9-15 +device[s], block INTRO.2: 20% INTRO(2)-2 + " MOUNT.2: 50% MOUNT(2)-1 + " MOUNT.2: 84% MOUNT(2)-2 + " RX.4: 43% RX(4)-1 + " SMM.01: 8% SMM:1-5 + " SWAPON.2: 10% SWAPON(2)-1 + " SMM.01: 8% SMM:1-5 +device[s], block I/O MKNOD.2: 24% MKNOD(2)-1 +device[s], character INTRO.4: 23% INTRO(4)-1 + " PTY.4: 5% PTY(4)-1 + " SMM.01: 9% SMM:1-6 +device, default REBOOT.8: 31% REBOOT(8)-1 + " SMM.01: 74% SMM:1-45 + " SMM.01: 74% SMM:1-45 + " SMM.01: 74% SMM:1-45 +device, default boot SMM.01: 37% SMM:1-24 + " SMM.01: 37% SMM:1-24 + " SMM.01: 38% SMM:1-25 +device[s], defaulting system SMM.02: 79% SMM:2-26 +device[s], digitizing TB.4: 3% TB(4)-1 + " TB.4: 10% TB(4)-1 + " TB.4: 32% TB(4)-1 +device, dump CRASH.8V: 86% CRASH(8V)-3 + " SMM.02: 81% SMM:2-26 + " SMM.02: 81% SMM:2-26 + " SMM.13: 51% SMM:13-18 +device[s], hardware INTRO.4: 19% INTRO(4)-1 + " INTRO.4: 27% INTRO(4)-1 + " INTRO.4N: 71% INTRO(4N)-3 + " PTY.4: 11% PTY(4)-1 + " SMM.02: 6% SMM:2-3 + " SMM.02: 6% SMM:2-3 + " SMM.02: 7% SMM:2-3 + " SMM.02: 7% SMM:2-3 + " SMM.02: 29% SMM:2-9 + " SMM.02: 44% SMM:2-13 + " SMM.15: 33% SMM:15-10 + " SMM.15: 33% SMM:15-10 +device[s], I/O CONFIG.8: 42% CONFIG(8)-1 +device, ioctl - control IOCTL.2: 4% IOCTL(2)-1 +device, major CONFIG.8: 87% CONFIG(8)-1 +device[s], mass storage SMM.14: 40% SMM:14-7 + " SMM.14: 40% SMM:14-7 + " SMM.14: 41% SMM:14-7 +device[s], MASSBUS AUTOCONF.4: 16% AUTOCONF(4)-1 + " AUTOCONF.4: 75% AUTOCONF(4)-2 + " INTRO.4: 39% INTRO(4)-1 + " SMM.01: 4% SMM:1-4 + " SMM.02: 33% SMM:2-10 + " SMM.02: 54% SMM:2-16 +device, master PTY.4: 6% PTY(4)-1 + " PTY.4: 15% PTY(4)-1 + " PTY.4: 18% PTY(4)-1 +devices, network L_SYS.5: 61% L.SYS(5)-3 + " SMM.02: 43% SMM:2-13 + " SMM.09: 71% SMM:9-15 +device[s], paging CRASH.8V: 32% CRASH(8V)-1 + " DRUM.4: 9% DRUM(4)-1 + " DRUM.4: 18% DRUM(4)-1 + " SMM.02: 16% SMM:2-5 + " SMM.02: 25% SMM:2-7 + " SWAPON.8: 80% SWAPON(8)-1 +devices, peripheral PS2.03: 25% PS2:3-5 + " PS2.03: 25% PS2:3-5 + " PS2.03: 30% PS2:3-5 +device[s], Structured PS1.06: 93% PS1:6-39 +device[s], Unstructured PS1.06: 94% PS1:6-39 +device addresses PS2.01: 40% PS2:1-6 + " PS2.01: 41% PS2:1-6 + " PS2.01: 41% PS2:1-6 + " PS2.04: 45% PS2:4-5 +device driver[s] PS2.01: 7% PS2:1-2 + " PS2.04: 42% PS2:4-5 + " PS2.04: 42% PS2:4-5 + " PS2.04: 42% PS2:4-5 + " PS2.04: 43% PS2:4-5 + " PS2.04: 44% PS2:4-5 + " PS2.04: 46% PS2:4-5 + " PS2.04: 52% PS2:4-5 + " PS2.04: 52% PS2:4-5 + " PS2.04: 52% PS2:4-5 + " PS2.05: 1% PS2:5-1 + " PS2.05: 38% PS2:5-3 + " PS2.05: 80% PS2:5-6 + " PS2.05: 89% PS2:5-6 + " PS2.05: 92% PS2:5-6 +device name[s] PS2.01: 19% PS2:1-3 + " PS2.01: 20% PS2:1-3 + " PS2.01: 42% PS2:1-6 + " PS2.01: 43% PS2:1-7 + " PS2.01: 43% PS2:1-7 + " PS2.01: 44% PS2:1-7 + " PS2.04: 45% PS2:4-5 + " PS2.04: 66% PS2:4-7 +device number[s] PS1.06: 61% PS1:6-28 + " PS1.06: 61% PS1:6-28 + " PS1.06: 61% PS1:6-28 + " PS2.04: 41% PS2:4-5 + " PS2.04: 41% PS2:4-5 + " PS2.04: 42% PS2:4-5 + " PS2.04: 42% PS2:4-5 + " PS2.05: 6% PS2:5-1 + " PS2.05: 6% PS2:5-1 + " PS2.05: 6% PS2:5-1 + " PS2.05: 7% PS2:5-1 + " PS2.05: 8% PS2:5-1 + " PS2.05: 25% PS2:5-2 + " PS2.05: 26% PS2:5-2 + " PS2.05: 35% PS2:5-3 + " PS2.05: 37% PS2:5-3 + " PS2.05: 84% PS2:5-6 +device queue[s] PS2.05: 64% PS2:5-5 + " PS2.05: 89% PS2:5-6 + " PS2.05: 91% PS2:5-6 + " PS2.05: 92% PS2:5-6 +DFL PS2.03: 67% PS2:3-10 + " PS2.03: 78% PS2:3-12 + " PS2.03: 78% PS2:3-12 +devices, peripheral SMM.02: 22% SMM:2-7 +device, physical SMM.01: 5% SMM:1-4 + " SMM.01: 6% SMM:1-4 +device[s], Pseudo SMM.02: 7% SMM:2-3 + " SMM.02: 7% SMM:2-3 + " SMM.02: 35% SMM:2-10 + " SMM.02: 35% SMM:2-10 + " SMM.02: 36% SMM:2-10 + " SMM.02: 42% SMM:2-13 +device[s], raw FSCK.8: 90% FSCK(8)-2 + " HK.4: 88% HK(4)-2 + " HP.4: 94% HP(4)-4 + " QUOTACHECK.8: 82% QUOTACHECK(8)-1 + " SMM.01: 8% SMM:1-5 + " SMM.01: 8% SMM:1-5 + " SMM.01: 8% SMM:1-5 + " UP.4: 93% UP(4)-3 +device, slave PTY.4: 6% PTY(4)-1 + " PTY.4: 7% PTY(4)-1 + " PTY.4: 12% PTY(4)-1 + " PTY.4: 16% PTY(4)-1 + " PTY.4: 17% PTY(4)-1 +device[s], swap FSTAB.5: 80% FSTAB(5)-1 + " SWAPON.2: 3% SWAPON(2)-1 + " SWAPON.2: 72% SWAPON(2)-1 + " SWAPON.8: 41% SWAPON(8)-1 + " SWAPON.8: 56% SWAPON(8)-1 + " SYSTAT.1: 24% SYSTAT(1)-2 + " SMM.12A: 61% SMM:12-14 +device[s], table of mounted MOUNT.8: 62% MOUNT(8)-1 +device, tape AUTOCONF.4: 77% AUTOCONF(4)-2 + " MT.1: 29% MT(1)-1 + " RDUMP.8C: 74% RDUMP(8C)-1 + " RRESTORE.8C: 73% RRESTORE(8C)-1 + " SMM.01: 2% SMM:1-2 +device, terminal SMM.01: 51% SMM:1-33 + " SMM.01: 52% SMM:1-33 + " TEST.1: 47% TEST(1)-1 + " TTYNAM.3F: 41% TTYNAM(3F)-1 + " TTYNAM.3F: 58% TTYNAM(3F)-1 + " TTYNAM.3F: 86% TTYNAM(3F)-1 + " TTYNAME.3: 25% TTYNAME(3)-1 + " TTYNAME.3: 45% TTYNAME(3)-1 + " TTYNAME.3: 74% TTYNAME(3)-1 +device[s], UNIBUS AUTOCONF.4: 21% AUTOCONF(4)-1 + " AUTOCONF.4: 95% AUTOCONF(4)-2 + " EN.4: 15% EN(4)-1 + " INTRO.4: 35% INTRO(4)-1 + " INTRO.4: 37% INTRO(4)-1 + " SMM.01: 91% SMM:1-57 + " SMM.01: 99% SMM:1-64 + " SMM.02: 54% SMM:2-16 +device[s], UNIX SMM.01: 8% SMM:1-5 +device configuration SMM.13: 98% SMM:13-33 +device dh0 DH.4: 6% DH(4)-1 + " SMM.02: 39% SMM:2-12 + " SMM.02: 41% SMM:2-12 + " SMM.02: 84% SMM:2-28 +device driver[s] DISKPART.8: 15% DISKPART(8)-1 + " INIT.8: 90% INIT(8)-1 + " MOUNT.2: 52% MOUNT(2)-1 + " MOUNT.2: 87% MOUNT(2)-2 + " SMM.01: 12% SMM:1-8 + " SMM.01: 29% SMM:1-20 + " SMM.01: 39% SMM:1-26 + " SMM.01: 43% SMM:1-28 + " SMM.02: 7% SMM:2-3 + " SMM.02: 17% SMM:2-6 + " SMM.02: 34% SMM:2-10 + " SMM.02: 35% SMM:2-10 + " SMM.02: 45% SMM:2-14 + " SMM.02: 46% SMM:2-14 + " SMM.02: 49% SMM:2-15 + " SMM.02: 51% SMM:2-16 + " SMM.02: 51% SMM:2-16 + " SMM.02: 52% SMM:2-16 + " SMM.02: 52% SMM:2-16 + " SMM.02: 53% SMM:2-16 + " SMM.02: 54% SMM:2-16 + " SMM.02: 69% SMM:2-21 + " SMM.02: 81% SMM:2-26 + " SMM.02: 87% SMM:2-30 + " SMM.13: 4% SMM:13-3 + " SMM.13: 94% SMM:13-32 + " SMM.13: 96% SMM:13-33 + " TU.4: 15% TU(4)-1 +device driver, block and character SMM.02: 51% SMM:2-16 +device drivers to 4.3BSD, Adding SMM.02: 50% SMM:2-15 +Device error[s] INIT.8: 91% unknown +Device errors and diagnostic[s] SMM.01: 75% SMM:1-46 +device independent troff LPR.1: 23% LPR(1)-1 + " PRINTCAP.5: 36% PRINTCAP(5)-1 +device interrupt[s] SYSTAT.1: 31% SYSTAT(1)-2 +device name[s] FSTAB.5: 84% FSTAB(5)-1 + " SMM.02: 26% SMM:2-8 + " SMM.02: 27% SMM:2-8 + " SMM.02: 27% SMM:2-8 + " SMM.02: 27% SMM:2-8 + " SMM.02: 27% SMM:2-8 + " SMM.02: 28% SMM:2-8 + " SMM.02: 31% SMM:2-9 + " SMM.02: 52% SMM:2-16 + " SMM.09: 25% SMM:9-6 + " WHO.1: 74% WHO(1)-1 + " SMM.12A: 89% SMM:12-21 +device naming SMM.01: 5% SMM:1-4 +device number[s], major/minor UP.4: 7% UP(4)-1 + " UDA.4: 9% UDA(4)-1 + " TYPES.5: 27% TYPES(5)-1 + " SMM.13: 52% SMM:13-18 + " SMM.02: 53% SMM:2-16 + " SMM.02: 27% SMM:2-8 + " SMM.02: 27% SMM:2-8 + " SMM.02: 27% SMM:2-8 + " SMM.01: 30% SMM:1-21 + " SMM.01: 4% SMM:1-3 + " RX.4: 20% RX(4)-1 + " REBOOT.8: 87% REBOOT(8)-2 + " MOUNT.2: 85% MOUNT(2)-2 + " MOUNT.2: 50% MOUNT(2)-1 + " MKPROTO.8: 68% MKPROTO(8)-1 + " MKNOD.8: 72% MKNOD(8)-1 + " LS.1: 18% LS(1)-1 + " HP.4: 1% HP(4)-1 + " HK.4: 4% HK(4)-1 + " FIND.1: 64% FIND(1)-2 + " DRTEST.8: 86% DRTEST(8)-1 +device registers SMM.02: 11% SMM:2-4 + " SMM.02: 51% SMM:2-16 +device specification[s] CONFIG.8: 30% CONFIG(8)-1 + " REBOOT.8: 42% REBOOT(8)-1 + " SMM.02: 21% SMM:2-6 + " SMM.02: 28% SMM:2-8 + " SMM.02: 30% SMM:2-9 + " SMM.02: 44% SMM:2-13 + " SMM.02: 80% SMM:2-26 +device type SMM.02: 72% SMM:2-22 + " SMM.09: 25% SMM:9-6 + " SMM.13: 99% SMM:13-34 + " SMM.13: 99% SMM:13-34 +device-independent troff USD.23: 77% USD:23-11 + " USD.25: 2% USD:25-1 + " USD.24: 0% USD:24-2 +DEV_BSIZE SMM.01: 44% SMM:1-29 +df - show disk free space DF.1: 6% DF(1)-1 +DF02-AC PHONES.5: 66% PHONES(5)-1 +DF03 modem, DEC DF02 or L-DEVICES.5: 55% L-DEVICES(5)-1 +dffrac FLMIN.3F: 8% FLMIN(3F)-1 +dflmax FLMIN.3F: 8% FLMIN(3F)-1 +dflmin FLMIN.3F: 7% FLMIN(3F)-1 +dh - DH-11/DM-11 communications multiplexer DH.4: 2% DH(4)-1 +DH11 SMM.13: 94% SMM:13-32 + " SMM.13: 95% SMM:13-32 + " SMM.01: 51% SMM:1-32 +dhu SMM.12A: 73% SMM:12-17 +dhu - DHU-11 communications multiplexer DHU.4: 2% DHU(4)-1 +DHU-11 DHU.4: 9% DHU(4)-1 + " DHU.4: 26% DHU(4)-1 + " DHU.4: 91% DHU(4)-1 +DHU11 SMM.13: 94% SMM:13-32 + " SMM.01: 51% SMM:1-32 + " SMM.13: 1% SMM:13-2 +dhxint, vector dhrint SMM.02: 39% SMM:2-12 + " SMM.02: 41% SMM:2-12 + " SMM.02: 84% SMM:2-28 +di xx USD.24: 8% USD:24-4 + " USD.24: 50% USD:24-16 + " USD.25: 87% USD:25-13 +Diablo mechanism PLOT.1G: 43% PLOT(1G)-1 + " PLOT.1G: 46% PLOT(1G)-1 + " PLOT.1G: 48% PLOT(1G)-1 +Diacritical mark[s] EQN.1: 62% EQN(1)-2 + " USD.21: 78% USD:21-3 + " USD.21: 85% USD:21-3 + " USD.23: 72% USD:23-9 + " USD.26: 51% USD:26-4 + " USD.27: 44% USD:27-5 + " USD.27: 45% USD:27-5 +diacritical mark, .sc Define special characters and USD.23: 72% USD:23-9 +diagnosis, hardware error reporting and SMM.01: 0% SMM:1-1 +diagnosis, remote CONS.4: 61% CONS(4)-1 +DIAGNOSTIC[s] INTRO.4: 8% INTRO(4)-1 + " INTRO.4N: 25% INTRO(4N)-1 + " USD.04: 75% USD:4-36 +diagnostic[s], Warning PS1.04: 13% PS1:4-7 + " PS1.04: 23% PS1:4-12 + " PS1.04: 23% PS1:4-12 + " PS1.04: 70% PS1:4-36 + " PS1.04: 89% PS1:4-45 +diagnostic output PS1.04: 25% PS1:4-15 + " PS1.13: 32% PS1:13-6 + " PS1.13: 52% PS1:13-10 + " PS1.13: 70% PS1:13-14 + " PS2.01: 67% PS2:1-10 + " PS2.10: 79% PS2:10-70 +Differences Between Fortran 66 and Fortran 77 PS1.02: 48% PS1:2-17 +diagnostic[s], error SMM.12A: 42% SMM:12-10 +diagnostic functions, network monitoring and ICMP.4P: 21% ICMP(4P)-1 +dial up lines GETTY.8: 78% GETTY(8)-1 +dial-up line[s] REMOTE.5: 54% REMOTE(5)-1 + " SMM.21: 3% SMM:21-1 + " SMM.21: 12% SMM:21-2 + " SMM.21: 12% SMM:21-2 +Dial-Up Network of UNIX Systems SMM.21: 0% SMM:21-1 + " SMM.21: 11% SMM:21-2 + " SMM.21: 32% SMM:21-2 + " SMM.21: 45% SMM:21-4 + " SMM.21: 59% SMM:21-4 + " SMM.21: 78% SMM:21-6 + " SMM.21: 95% SMM:21-6 + " UUCICO.8C: 97% UUCICO(8C)-2 + " UUCP.1C: 67% UUCP(1C)-2 +Dial-up terminal[s] USD.14: 10% USD:14-4 +Dialer field SMM.09: 59% SMM:9-13 +dialing, tone SMM.09: 58% SMM:9-13 + " SMM.09: 59% SMM:9-13 + " SMM.09: 59% SMM:9-13 +dialup[s] TTY.4: 47% TTY(4)-5 + " USD.16: 5% USD:16-2 +dialup line[s] MAKEDEV.8: 71% MAKEDEV(8)-1 + " OPEN.2: 33% OPEN(2)-1 + " USD.15: 61% USD:15-17 +Dialup terminal[s] SMM.01: 53% SMM:1-33 +DICTION USD.32: 45% USD:32-7 + " USD.32: 64% USD:32-9 +diction, explain - print wordy sentences; thesaurus for diction DICTION.1: 4% DICTION(1)-1 +DICTION Pattern[s] USD.32: 82% USD:32-14 +DICTION Programs, STYLE and USD.32: 0% USD:32-1 + " USD.32: 0% USD:32-1 + " USD.32: 6% USD:32-2 + " USD.32: 12% USD:32-2 + " USD.32: 19% USD:32-4 + " USD.32: 28% USD:32-4 + " USD.32: 36% USD:32-6 + " USD.32: 44% USD:32-6 + " USD.32: 51% USD:32-8 + " USD.32: 58% USD:32-8 + " USD.32: 65% USD:32-10 + " USD.32: 72% USD:32-10 + " USD.32: 77% USD:32-12 + " USD.32: 81% USD:32-12 + " USD.32: 82% USD:32-14 + " USD.32: 93% USD:32-14 +Dictionary LOOK.1: 48% LOOK(1)-1 + " SORT.1: 18% SORT(1)-1 + " BOGGLE.6: 23% BOGGLE(6)-1 +DIFF SMM.12A: 16% SMM:12-4 +diff[s], Context PATCH.N: 9% PATCH(1)-1 + " PATCH.N: 14% PATCH(1)-1 + " PATCH.N: 24% PATCH(1)-1 + " PATCH.N: 27% PATCH(1)-1 + " PATCH.N: 29% PATCH(1)-1 + " PATCH.N: 51% PATCH(1)-2 + " PATCH.N: 88% PATCH(1)-3 + " USD.17: 34% USD:17-15 + " DIFF.1: 58% DIFF(1)-2 +diff - differential file and directory comparator DIFF.1: 0% DIFF(1)-1 +diff file PATCH.N: 9% PATCH(1)-1 + " PATCH.N: 0% PATCH(1)-1 +diff3 SMM.12A: 16% SMM:12-4 +diff3, RCS version of SMM.12A: 16% SMM:12-4 +diff3 - 3-way differential file comparison DIFF3.1: 2% DIFF3(1)-1 +difference[s], time SMM.08: 15% SMM:8-2 + " SMM.08: 19% SMM:8-2 + " SMM.22: 4% SMM:22-2 + " SMM.22: 6% SMM:22-2 + " SMM.22: 40% SMM:22-4 +differences between two file[s] USD.01: 74% USD:1-11 +Digest[s] USD.08: 86% USD:8-104 +differences between version[s] PS1.14: 7% PS1:14-1 +digests, Internet BURST.N: 7% BURST(1)-1 + " BURST.N: 33% BURST(1)-1 + " USD.08: 14% USD:8-14 + " USD.08: 14% USD:8-14 +digest list MH-PROFILE.N: 33% MH-PROFILE(5)-3 + " MH-PROFILE.N: 34% MH-PROFILE(5)-3 + " USD.08: 71% USD:8-87 + " USD.08: 71% USD:8-87 +DIGIT CTYPE.3: 46% CTYPE(3)-1 +digit, file descriptor SH.1: 50% SH(1)-3 + " USD.03: 88% USD:3-21 + " USD.03: 88% USD:3-21 +digit, order USD.05: 27% USD:5-3 + " USD.05: 30% USD:5-3 + " USD.05: 31% USD:5-3 + " USD.05: 52% USD:5-5 +digit[s], units USD.28: 13% USD:28-3 + " USD.28: 15% USD:28-3 + " USD.34: 37% USD:34-5 +digit number[s] AT.1: 45% AT(1)-1 + " SMM.09: 93% SMM:9-20 + " SMM.10: 29% SMM:10-8 + " USD.06: 21% USD:6-3 + " USD.34: 37% USD:34-5 +digitizing device[s] TB.4: 3% TB(4)-1 + " TB.4: 10% TB(4)-1 + " TB.4: 32% TB(4)-1 +digram[s] PS1.16: 59% PS1:16-8 +digraph USD.21: 81% USD:21-3 +dimensional array[s] QSORT.3F: 19% QSORT(3F)-1 +dipres SMM.12A: 97% SMM:12-23 +dir - format of directories DIR.5: 1% DIR(5)-1 +direct I/O PS1.02: 81% PS1:2-26 +Directory context[s] PS1.06: 49% PS1:6-24 + " PS1.06: 49% PS1:6-24 + " PS1.06: 57% PS1:6-27 +Directory creation and removal PS1.06: 58% PS1:6-27 +directing output TC.1: 66% TC(1)-1 + " TK.1: 80% TK(1)-1 + " USD.09: 43% USD:9-5 +direction, reverse USD.12: 99% USD:12-10 + " USD.13: 45% USD:13-8 + " USD.14: 77% USD:14-19 + " USD.15: 91% USD:15-25 +directive, stabd STAB.5: 13% STAB(5)-1 +directly-connected network ROUTE.8C: 85% ROUTE(8C)-1 + " SMM.13: 65% SMM:13-23 + " SMM.13: 65% SMM:13-23 +Directly-linked terminal[s] USD.14: 10% USD:14-4 +director, notesfile USD.11: 26% USD:11-4 + " USD.11: 55% USD:11-9 + " USD.11: 62% USD:11-10 +director message[s] USD.11: 3% USD:11-2 + " USD.11: 27% USD:11-4 + " USD.11: 35% USD:11-6 +Directory[s] INTRO.2: 82% INTRO(2)-6 + " FIND.1: 33% FIND(1)-1 + " LS.1: 58% LS(1)-2 +directory entry[s] PS1.06: 66% PS1:6-30 + " PS2.01: 15% PS2:1-3 + " PS2.01: 16% PS2:1-3 + " PS2.01: 16% PS2:1-3 + " PS2.01: 37% PS2:1-6 + " PS2.01: 39% PS2:1-6 + " PS2.01: 39% PS2:1-6 + " PS2.01: 40% PS2:1-6 + " PS2.01: 40% PS2:1-6 + " PS2.01: 49% PS2:1-7 +directory structure PS2.01: 17% PS2:1-3 + " PS2.01: 17% PS2:1-3 + " PS2.04: 74% PS2:4-7 +directory, $HOME/bin MH-PROFILE.N: 94% MH-PROFILE(5)-6 + " USD.08: 9% USD:8-8 + " USD.08: 74% USD:8-90 +directory, -search CONFLICT.N: 8% CONFLICT(8)-1 + " CONFLICT.N: 55% CONFLICT(8)-1 + " CONFLICT.N: 64% CONFLICT(8)-1 + " MH-CHART.N: 92% MH-CHART(1)-3 + " USD.08: 75% USD:8-93 + " USD.08: 76% USD:8-93 + " USD.08: 76% USD:8-93 + " USD.08: 90% USD:8-110 +directory, -t AS.1: 7% AS(1)-1 + " SORT.1: 4% SORT(1)-1 +directory, /dev MAKEDEV.8: 16% MAKEDEV(8)-1 + " SMM.01: 40% SMM:1-26 + " SMM.01: 40% SMM:1-26 + " SMM.01: 62% SMM:1-39 + " SMM.09: 56% SMM:9-12 +directory, /tmp SMM.01: 45% SMM:1-29 + " SMM.01: 46% SMM:1-30 + " SMM.01: 50% SMM:1-32 +directory, current CSH.1: 53% CSH(1)-11 + " USD.03: 15% USD:3-3 +directory[s], current working CHDIR.2: 5% CHDIR(2)-1 + " CHDIR.2: 17% CHDIR(2)-1 + " CHDIR.2: 45% CHDIR(2)-1 + " CO.N: 87% CO(1)-3 + " CORE.5: 32% CORE(5)-1 + " CSH.1: 51% CSH(1)-10 + " CSH.1: 66% CSH(1)-14 + " EXECVE.2: 47% EXECVE(2)-1 + " GETCWD.3F: 14% GETCWD(3F)-1 + " GETWD.3: 42% GETWD(3)-1 + " INTRO.2: 81% INTRO(2)-6 + " INTRO.2: 84% INTRO(2)-6 + " LOGIN.1: 38% LOGIN(1)-1 + " MAIL.1: 34% MAIL(1)-2 + " SMM.14: 87% SMM:14-13 + " SMM.14: 87% SMM:14-13 + " USD.04: 11% USD:4-6 + " USD.04: 12% USD:4-6 + " USD.04: 12% USD:4-6 + " USD.04: 12% USD:4-6 + " USD.04: 12% USD:4-6 + " USD.04: 14% USD:4-7 + " USD.04: 16% USD:4-8 + " USD.04: 16% USD:4-8 + " USD.04: 38% USD:4-17 + " USD.04: 45% USD:4-20 + " USD.04: 45% USD:4-20 + " USD.04: 45% USD:4-20 + " USD.04: 45% USD:4-20 + " USD.04: 46% USD:4-21 + " USD.04: 46% USD:4-21 + " USD.04: 46% USD:4-21 + " USD.04: 46% USD:4-21 + " USD.04: 47% USD:4-21 + " USD.04: 48% USD:4-22 + " USD.04: 48% USD:4-22 + " USD.04: 48% USD:4-22 + " USD.04: 48% USD:4-22 + " USD.04: 48% USD:4-22 + " USD.04: 48% USD:4-22 + " USD.04: 48% USD:4-22 + " USD.04: 49% USD:4-22 + " USD.04: 49% USD:4-22 + " USD.04: 49% USD:4-22 + " USD.04: 71% USD:4-35 + " USD.04: 71% USD:4-35 + " USD.04: 74% USD:4-36 + " USD.04: 75% USD:4-36 + " USD.04: 75% USD:4-36 + " USD.04: 75% USD:4-37 + " USD.04: 76% USD:4-37 + " USD.04: 90% USD:4-41 + " USD.04: 90% USD:4-42 + " USD.04: 92% USD:4-42 + " USD.04: 92% USD:4-42 + " USD.04: 92% USD:4-42 + " USD.04: 93% USD:4-42 + " USD.04: 93% USD:4-42 + " USD.04: 93% USD:4-42 + " USD.04: 99% USD:4-45 + " USD.04: 99% USD:4-45 + " USD.08: 32% USD:8-36 + " USD.08: 71% USD:8-87 + " USD.17: 87% USD:17-42 + " SMM.12A: 66% SMM:12-15 +directories, dir - format of DIR.5: 1% DIR(5)-1 +directory, doc SMM.10: 4% SMM:10-2 + " SMM.10: 4% SMM:10-2 + " SMM.10: 4% SMM:10-2 +directory, login ADDUSER.8: 58% ADDUSER(8)-1 + " ENVIRON.7: 33% ENVIRON(7)-1 + " MAIL.1: 35% MAIL(1)-2 + " RCP.1C: 49% RCP(1C)-1 + " RLOGIN.1C: 26% RLOGIN(1C)-1 + " SMM.01: 71% SMM:1-42 + " SMM.09: 8% SMM:9-3 + " SMM.09: 9% SMM:9-3 + " SMM.09: 9% SMM:9-3 + " SMM.09: 98% SMM:9-21 + " USD.01: 65% USD:1-10 + " USD.03: 19% USD:3-4 + " USD.04: 46% USD:4-21 + " USD.07: 13% USD:7-4 + " USD.07: 23% USD:7-6 + " UUCP.1C: 19% UUCP(1C)-1 +directory, lost+found FS.5: 58% FS(5)-3 + " FSCK.8: 87% FSCK(8)-2 +directory, ls - list contents of LS.1: 1% LS(1)-1 +directory, mail BUGFILER.8: 3% BUGFILER(8)-1 + " BUGFILER.8: 8% BUGFILER(8)-1 + " BUGFILER.8: 56% BUGFILER(8)-1 +directory, make USD.04: 45% USD:4-20 +directory, mkdir - make a MKDIR.1: 13% MKDIR(1)-1 + " MKDIR.2: 1% MKDIR(2)-1 +directory[s], non-empty RDIST.1: 62% RDIST(1)-3 + " RDIST.1: 63% RDIST(1)-3 + " RDIST.1: 98% RDIST(1)-4 +directory, parent DIR.5: 93% DIR(5)-2 + " INTRO.2: 83% INTRO(2)-6 + " MKDIR.1: 80% MKDIR(1)-1 + " MKDIR.2: 16% MKDIR(2)-1 + " RENAME.2: 94% RENAME(2)-2 + " SMM.02: 10% SMM:2-4 + " SMM.14: 90% SMM:14-13 + " USD.03: 15% USD:3-3 + " USD.04: 68% USD:4-34 + " USD.04: 68% USD:4-34 +directory, queue SMM.07A: 18% SMM:07-10 + " SMM.07A: 18% SMM:07-10 + " SMM.07A: 71% SMM:07-32 +directory, removing a RM.1: 53% RM(1)-1 +directory[s], renaming files and MV.1: 13% MV(1)-1 +directory, root CHROOT.2: 19% CHROOT(2)-1 + " CHROOT.2: 26% CHROOT(2)-1 + " CHROOT.2: 48% CHROOT(2)-1 + " DIR.5: 94% DIR(5)-2 + " EXECVE.2: 48% EXECVE(2)-1 + " INTRO.2: 81% INTRO(2)-6 + " INTRO.2: 81% INTRO(2)-6 + " INTRO.2: 84% INTRO(2)-6 + " INTRO.2: 85% INTRO(2)-6 + " INTRO.2: 85% INTRO(2)-7 + " MKFS.8: 20% MKFS(8)-1 + " MOUNT.8: 92% MOUNT(8)-1 + " RESTORE.8: 21% RESTORE(8)-1 + " RESTORE.8: 23% RESTORE(8)-1 + " SCCS.1: 64% SCCS(1)-2 + " SMM.05: 38% SMM:5-8 + " USD.01: 46% USD:1-7 + " USD.04: 11% USD:4-6 + " USD.04: 69% USD:4-34 + " USD.04: 90% USD:4-41 + " USD.04: 93% USD:4-43 + " USD.04: 94% USD:4-43 +directory, scandir, alphasort - scan a SCANDIR.3: 3% SCANDIR(3)-1 +directory, source BUGFILER.8: 37% BUGFILER(8)-1 + " MAKE.1: 73% MAKE(1)-2 + " SMM.07: 8% SMM:7-1 + " SMM.13: 2% SMM:13-2 + " SMM.07A: 7% SMM:07-5 +directory[s], spool LPD.8: 29% LPD(8)-1 + " SMM.01: 31% SMM:1-21 + " SMM.09: 2% SMM:9-2 + " SMM.09: 4% SMM:9-2 + " SMM.09: 5% SMM:9-2 + " SMM.09: 6% SMM:9-2 + " SMM.09: 10% SMM:9-3 + " SMM.09: 10% SMM:9-3 + " SMM.09: 11% SMM:9-3 + " SMM.09: 12% SMM:9-3 + " SMM.09: 15% SMM:9-4 + " SMM.09: 16% SMM:9-4 + " SMM.09: 18% SMM:9-5 + " SMM.09: 20% SMM:9-5 + " SMM.09: 22% SMM:9-5 + " SMM.09: 23% SMM:9-6 + " SMM.09: 24% SMM:9-6 + " SMM.09: 29% SMM:9-7 + " SMM.09: 30% SMM:9-7 + " SMM.09: 31% SMM:9-7 + " SMM.09: 32% SMM:9-7 + " SMM.09: 33% SMM:9-8 + " SMM.09: 34% SMM:9-8 + " SMM.09: 37% SMM:9-8 + " SMM.09: 53% SMM:9-12 + " SMM.09: 53% SMM:9-12 + " SMM.09: 54% SMM:9-12 + " SMM.09: 93% SMM:9-20 + " SMM.09: 93% SMM:9-20 + " SMM.09: 94% SMM:9-20 + " SMM.09: 96% SMM:9-20 + " SMM.10: 77% SMM:10-19 + " SMM.10: 82% SMM:10-20 + " SMM.10: 82% SMM:10-20 + " SMM.10: 82% SMM:10-20 + " SMM.10: 82% SMM:10-20 + " UUCICO.8C: 9% UUCICO(8C)-1 + " UUCLEAN.8C: 22% UUCLEAN(8C)-1 + " UUCLEAN.8C: 88% UUCLEAN(8C)-1 + " UUCP.1C: 39% UUCP(1C)-1 + " UUCP.1C: 41% UUCP(1C)-1 + " UUCP.1C: 58% UUCP(1C)-1 +directory[s], spooling LPQ.1: 54% LPQ(1)-1 + " LPQ.1: 74% LPQ(1)-1 + " LPQ.1: 97% LPQ(1)-1 + " LPRM.1: 12% LPRM(1)-1 + " SMM.01: 33% SMM:1-22 + " SMM.01: 59% SMM:1-36 + " SMM.06: 46% SMM:6-4 +DIRECTORY[s], STICKY STICKY.8: 47% STICKY(8)-1 + " STICKY.8: 57% STICKY(8)-1 + " STICKY.8: 80% STICKY(8)-1 + " UNLINK.2: 73% UNLINK(2)-1 +directory[s], sticky - persistent text and append-only STICKY.8: 3% STICKY(8)-1 +directory[s], system CSH.1: 67% CSH(1)-14 + " SMM.09: 51% SMM:9-11 + " SMM.09: 51% SMM:9-11 + " USD.04: 89% USD:4-41 +directory, target SMM.13: 32% SMM:13-12 + " SMM.13: 32% SMM:13-12 + " SMM.14: 90% SMM:14-13 +directory, top level spool SMM.09: 7% SMM:9-2 + " SMM.09: 23% SMM:9-6 + " SMM.09: 85% SMM:9-18 +directory[s], working CD.1: 21% +directory /etc GROUP.5: 55% GROUP(5)-1 + " MTAB.5: 17% MTAB(5)-1 + " PASSWD.5: 58% PASSWD(5)-1 + " SMM.01: 41% SMM:1-27 +directory /usr/spool/mail SMM.01: 56% SMM:1-35 + " USD.07: 2% USD:7-2 + " USD.07: 90% USD:7-22 +directory access routines SMM.07: 8% SMM:7-1 + " SMM.14: 75% SMM:14-11 + " SMM.07A: 7% SMM:07-5 +directory argument[s] CHGRP.1: 66% CHGRP(1)-1 + " CHMOD.1: 66% CHMOD(1)-1 + " CHOWN.8: 69% CHOWN(8)-1 + " LS.1: 3% LS(1)-1 + " RCP.1C: 11% RCP(1C)-1 + " SCCS.1: 96% SCCS(1)-2 + " USD.17: 48% USD:17-21 +directory block[s] DIR.5: 44% DIR(5)-1 + " DIR.5: 55% DIR(5)-1 + " ICHECK.8: 26% ICHECK(8)-1 +directory data block[s] SMM.05: 35% SMM:5-7 + " SMM.05: 35% SMM:5-7 + " SMM.05: 35% SMM:5-7 + " SMM.05: 35% SMM:5-7 + " SMM.05: 37% SMM:5-8 + " SMM.05: 37% SMM:5-8 + " SMM.05: 37% SMM:5-8 + " SMM.05: 37% SMM:5-8 + " SMM.05: 37% SMM:5-8 +directory entry[s] DCHECK.8: 20% DCHECK(8)-1 + " DCHECK.8: 57% DCHECK(8)-1 + " DIR.5: 12% DIR(5)-1 + " DIR.5: 23% DIR(5)-1 + " DIR.5: 25% DIR(5)-1 + " DIR.5: 40% DIR(5)-1 + " DIR.5: 45% DIR(5)-1 + " DIR.5: 67% DIR(5)-1 + " DIRECTORY.3: 35% DIRECTORY(3)-1 + " INTRO.2: 61% INTRO(2)-5 + " INTRO.2: 82% INTRO(2)-6 + " LN.1: 12% LN(1)-1 + " LN.1: 29% LN(1)-1 + " MKDIR.2: 89% MKDIR(2)-2 + " RENAME.2: 89% RENAME(2)-2 + " RMDIR.2: 83% RMDIR(2)-1 + " RMDIR.2: 87% RMDIR(2)-1 + " SCANDIR.3: 47% SCANDIR(3)-1 + " SCANDIR.3: 51% SCANDIR(3)-1 + " SCANDIR.3: 56% SCANDIR(3)-1 + " SMM.05: 24% SMM:5-6 + " SMM.05: 29% SMM:5-6 + " SMM.05: 30% SMM:5-7 + " SMM.05: 30% SMM:5-7 + " SMM.05: 35% SMM:5-7 + " SMM.05: 36% SMM:5-7 + " SMM.05: 37% SMM:5-8 + " SMM.05: 37% SMM:5-8 + " SMM.14: 76% SMM:14-11 + " SMM.14: 76% SMM:14-11 + " SMM.14: 76% SMM:14-11 + " SMM.14: 76% SMM:14-11 + " SMM.14: 77% SMM:14-11 + " SMM.14: 86% SMM:14-13 + " UNLINK.2: 25% UNLINK(2)-1 + " UNLINK.2: 86% UNLINK(2)-1 + " UNLINK.3F: 11% UNLINK(3F)-1 + " UNLINK.3F: 31% UNLINK(3F)-1 +directory file[s] MKDIR.2: 2% MKDIR(2)-1 + " MKDIR.2: 6% MKDIR(2)-1 + " RMDIR.2: 3% RMDIR(2)-1 + " RMDIR.2: 9% RMDIR(2)-1 + " SMM.02: 87% SMM:2-30 +Directory Handling USD.17: 48% USD:17-21 +directory hierarchy[s] FIND.1: 4% FIND(1)-1 + " USD.04: 11% USD:4-6 + " USD.04: 46% USD:4-21 + " HIER.7: 1% HIER(7)-1 +directory inode SMM.05: 29% SMM:5-6 +directory inode numbers SMM.05: 36% SMM:5-7 + " SMM.05: 36% SMM:5-7 + " SMM.05: 38% SMM:5-8 +directory MODE[s] SMM.01: 73% SMM:1-44 + " SMM.10: 54% SMM:10-14 +directory service, user name WHOIS.1: 6% WHOIS(1)-1 +directory stack CSH.1: 53% CSH(1)-11 + " CSH.1: 66% CSH(1)-14 + " CSH.1: 66% CSH(1)-14 + " CSH.1: 66% CSH(1)-14 + " CSH.1: 66% CSH(1)-14 + " CSH.1: 67% CSH(1)-14 + " CSH.1: 67% CSH(1)-14 + " SYSLINE.1: 30% SYSLINE(1)-1 + " USD.04: 46% USD:4-21 + " USD.04: 47% USD:4-21 + " USD.04: 47% USD:4-21 + " USD.04: 75% USD:4-36 + " USD.04: 75% USD:4-36 + " USD.04: 75% USD:4-36 + " USD.04: 75% USD:4-37 + " USD.17: 48% USD:17-21 + " USD.17: 48% USD:17-21 + " USD.17: 67% USD:17-31 + " USD.17: 85% USD:17-40 + " USD.17: 87% USD:17-42 +directory structure[s] SMM.05: 30% SMM:5-6 + " SMM.14: 2% SMM:14-2 + " USD.04: 93% USD:4-43 +directory tree SMM.12A: 13% SMM:12-4 + " SMM.12A: 13% SMM:12-4 +dirs command USD.04: 47% USD:4-21 + " USD.04: 75% USD:4-36 + " CSH.1: 53% CSH(1)-11 + " USD.04: 75% USD:4-37 +disable a terminal SMM.01: 53% SMM:1-33 +disable-biff USD.17: 78% USD:17-37 +disable-biff (variable) USD.17: 67% USD:17-31 +disabling login[s] SHUTDOWN.8: 43% SHUTDOWN(8)-1 +disambiguating rule[s] PS1.15: 2% PS1:15-1 + " PS1.15: 40% PS1:15-12 + " PS1.15: 40% PS1:15-12 + " PS1.15: 41% PS1:15-12 + " PS1.15: 42% PS1:15-12 + " PS1.15: 42% PS1:15-12 + " PS1.15: 45% PS1:15-13 + " PS1.15: 49% PS1:15-14 + " PS1.15: 49% PS1:15-14 + " PS1.15: 54% PS1:15-16 + " USD.26: 70% USD:26-6 +disassemble machine instructions ADB.1: 46% ADB(1)-3 +disassemble object code PS1.11a: 68% PS1:11-5 +disassembler PS1.10: 13% PS1:10-3 +Discarding socket[s] PS1.08: 21% PS1:8-8 +disaster recovery, backups and SMM.01: 75% SMM:1-46 +disc quota[s] EDQUOTA.8: 25% EDQUOTA(8)-1 + " QUOTACHECK.8: 42% QUOTACHECK(8)-1 + " QUOTAON.8: 20% QUOTAON(8)-1 + " QUOTAON.8: 66% QUOTAON(8)-1 + " SETQUOTA.2: 8% SETQUOTA(2)-1 + " SMM.01: 83% SMM:1-50 + " SMM.02: 88% SMM:2-31 + " SMM.02: 88% SMM:2-31 + " SMM.04: 0% SMM:4-1 + " SMM.04: 0% SMM:4-1 + " SMM.04: 7% SMM:4-1 + " SMM.04: 8% SMM:4-1 + " SMM.04: 9% SMM:4-1 + " SMM.04: 27% SMM:4-2 + " SMM.04: 66% SMM:4-2 + " INTRO.2: 60% INTRO(2)-5 +disc quota system SMM.04: 2% SMM:4-1 + " SMM.04: 41% SMM:4-2 + " SMM.04: 89% SMM:4-3 +disc usage QUOTA.1: 22% QUOTA(1)-1 + " QUOTACHECK.8: 16% QUOTACHECK(8)-1 + " QUOTACHECK.8: 84% QUOTACHECK(8)-1 + " REPQUOTA.8: 25% REPQUOTA(8)-1 +discard service INETD.8: 86% INETD(8)-2 +discarding changes USD.15: 63% USD:15-18 + " USD.15: 64% USD:15-18 + " USD.16: 47% USD:16-9 +discipline field PS2.09: 17% PS2:9-32 + " PS2.09: 37% PS2:9-66 + " PS2.09: 60% PS2:9-104 +discipline[s], Changes in the terminal line SMM.13: 24% SMM:13-9 +discipline[s], line BK.4: 1% BK(4)-1 + " BK.4: 6% BK(4)-1 + " BK.4: 31% BK(4)-1 + " SMM.13: 6% SMM:13-3 + " SMM.13: 24% SMM:13-9 + " SMM.13: 25% SMM:13-10 + " SMM.13: 25% SMM:13-10 + " SMM.13: 26% SMM:13-10 + " SMM.13: 26% SMM:13-10 + " SMM.13: 95% SMM:13-32 + " TB.4: 2% TB(4)-1 + " TB.4: 7% TB(4)-1 + " TB.4: 16% TB(4)-1 + " TB.4: 23% TB(4)-1 + " TTY.4: 0% TTY(4)-1 + " TTY.4: 0% TTY(4)-1 + " TTY.4: 2% TTY(4)-1 + " TTY.4: 3% TTY(4)-1 + " TTY.4: 3% TTY(4)-1 + " TTY.4: 4% TTY(4)-1 + " TTY.4: 17% TTY(4)-2 + " TTY.4: 18% TTY(4)-2 + " TTY.4: 25% TTY(4)-3 +Disclaimer SMM.16: 46% SMM:16-6 +Discussion[s] USD.09: 6% USD:9-1 +disk blocks PS2.01: 40% PS2:1-6 + " PS2.04: 67% PS2:4-7 + " PS2.04: 67% PS2:4-7 +Disk driver[s] PS2.04: 52% PS2:4-5 + " PS2.04: 52% PS2:4-5 + " PS2.04: 54% PS2:4-6 + " PS2.04: 55% PS2:4-6 +disk files PS2.01: 10% PS2:1-2 + " PS2.01: 18% PS2:1-3 + " PS2.01: 34% PS2:1-5 +Disk quotas PS1.06: 71% PS1:6-32 + " PS1.06: 72% PS1:6-32 + " PS1.06: 72% PS1:6-32 +disk[s], density RX.4: 13% RX(4)-1 + " RX.4: 49% RX(4)-1 + " RX.4: 51% RX(4)-1 +disk[s], floppy ARFF.8V: 61% ARFF(8V)-1 + " ARFF.8V: 68% ARFF(8V)-1 + " ARFF.8V: 82% ARFF(8V)-1 + " RX.4: 7% RX(4)-1 + " RX.4: 9% RX(4)-1 + " RX.4: 47% RX(4)-1 +disk, formatting the SMM.01: 11% SMM:1-8 +disk[s], MASSBUS AUTOCONF.4: 33% AUTOCONF(4)-1 + " REBOOT.8: 82% REBOOT(8)-2 + " HP.4: 0% HP(4)-1 +disk, megabyte FORMAT.8V: 35% FORMAT(8V)-1 + " SMM.01: 43% SMM:1-29 + " SMM.01: 43% SMM:1-29 + " SMM.01: 44% SMM:1-29 +disk, physical DISKPART.8: 48% DISKPART(8)-1 + " SMM.01: 6% SMM:1-4 + " SMM.01: 42% SMM:1-28 +disk[s], UNIBUS SMM.01: 8% SMM:1-5 +disk, Writing text to USD.14: 24% USD:14-7 + " USD.14: 1% USD:14-2 + " USD.12: 15% USD:12-2 +disk accesses SMM.14: 24% SMM:14-5 + " SMM.14: 58% SMM:14-9 + " SMM.14: 58% SMM:14-9 +disk addresses TYPES.5: 83% TYPES(5)-2 +disk and tape name[s] SMM.01: 7% SMM:1-5 +disk arm[s] SMM.02: 43% SMM:2-13 + " SMM.14: 60% SMM:14-9 +disk bandwidth SMM.14: 7% SMM:14-2 + " SMM.14: 15% SMM:14-3 + " SMM.14: 65% SMM:14-10 +disk blocks FS.5: 74% FS(5)-3 + " INTRO.2: 31% INTRO(2)-3 + " INTRO.2: 61% INTRO(2)-5 + " MKFS.8: 61% MKFS(8)-1 + " SMM.14: 68% SMM:14-10 + " SMM.14: 91% SMM:14-13 + " USD.04: 76% USD:4-37 +disk configuration SMM.01: 28% SMM:1-20 + " SMM.01: 29% SMM:1-20 + " SMM.01: 41% SMM:1-27 +disk controller[s] SMM.01: 45% SMM:1-29 + " SMM.14: 56% SMM:14-9 +disk description file /etc/disktab DISKPART.8: 20% DISKPART(8)-1 + " NEWFS.8: 11% NEWFS(8)-1 + " SMM.01: 5% SMM:1-4 +disk drive[s] AUTOCONF.4: 97% AUTOCONF(4)-2 + " FS.5: 42% FS(5)-2 + " SMM.01: 12% SMM:1-8 + " SMM.01: 18% SMM:1-13 + " SMM.02: 62% SMM:2-19 + " SMM.14: 9% SMM:14-3 + " SMM.14: 15% SMM:14-3 + " SMM.14: 16% SMM:14-3 + " SMM.14: 17% SMM:14-4 + " SYSTAT.1: 78% SYSTAT(1)-4 +disk driver[s] BAD144.8: 8% BAD144(8)-1 + " DRUM.4: 31% DRUM(4)-1 + " SMM.01: 6% SMM:1-4 + " SMM.01: 45% SMM:1-29 + " SMM.01: 78% SMM:1-48 + " SMM.13: 91% SMM:13-31 + " SMM.13: 91% SMM:13-31 + " SMM.14: 71% SMM:14-11 + " SMM.14: 73% SMM:14-11 +disk file[s] USD.14: 9% USD:14-3 + " USD.14: 25% USD:14-7 + " USD.14: 25% USD:14-7 + " USD.14: 25% USD:14-7 + " USD.14: 61% USD:14-15 + " USD.14: 85% USD:14-20 + " USD.14: 86% USD:14-21 +disk geometry[s] DISKTAB.5: 8% DISKTAB(5)-1 + " HP.4: 18% HP(4)-1 + " NEWFS.8: 78% NEWFS(8)-1 +disk geometry information SMM.01: 49% SMM:1-31 +disk hp0 HP.4: 1% HP(4)-1 + " SMM.02: 33% SMM:2-10 + " SMM.02: 34% SMM:2-10 + " SMM.02: 39% SMM:2-12 + " SMM.02: 40% SMM:2-12 + " SMM.02: 43% SMM:2-13 + " SMM.02: 83% SMM:2-28 + " SMM.02: 84% SMM:2-29 +disk hp1 SMM.02: 39% SMM:2-12 + " SMM.02: 40% SMM:2-12 + " SMM.02: 43% SMM:2-13 + " SMM.02: 83% SMM:2-28 + " SMM.02: 84% SMM:2-29 +disk hp2 SMM.02: 39% SMM:2-12 + " SMM.02: 40% SMM:2-12 + " SMM.02: 83% SMM:2-28 +disk hp3 SMM.02: 39% SMM:2-12 + " SMM.02: 40% SMM:2-12 + " SMM.02: 83% SMM:2-28 +disk I/O SYSTAT.1: 31% SYSTAT(1)-2 + " USD.04: 97% USD:4-44 +disk i/o operation[s] SA.8: 57% SA(8)-1 + " SA.8: 55% SA(8)-1 +disk i/o statistics SYSTAT.1: 6% SYSTAT(1)-1 + " SYSTAT.1: 72% SYSTAT(1)-3 + " SYSTAT.1: 73% SYSTAT(1)-3 +disk layout consideration[s] SMM.01: 44% SMM:1-29 +disk load balancing SMM.01: 45% SMM:1-30 +Disk naming and division[s] SMM.01: 42% SMM:1-28 +disk partition[s] DISKTAB.5: 9% DISKTAB(5)-1 + " SMM.01: 5% SMM:1-4 + " SMM.01: 6% SMM:1-4 +disk partition size[s] DISKPART.8: 9% DISKPART(8)-1 + " SMM.01: 42% SMM:1-28 +disk partition tables GETDISK.3: 20% GETDISKBYNAME(3) +disk partitions in 4.3BSD SMM.01: 29% SMM:1-20 +disk quota[s] CHOWN.2: 17% CHOWN(2)-1 + " FSTAB.5: 33% FSTAB(5)-1 + " FSTAB.5: 64% FSTAB(5)-1 + " SMM.01: 39% SMM:1-26 + " SMM.02: 45% SMM:2-14 + " SMM.14: 91% SMM:14-13 +disk quota facility[s] SMM.01: 82% SMM:1-50 +disk space DBX.1: 94% DBX(1)-7 + " DCHECK.8: 82% DCHECK(8)-1 + " FS.5: 50% FS(5)-2 + " FS.5: 76% FS(5)-3 + " MKFS.8: 46% MKFS(8)-1 + " SMM.01: 3% SMM:1-3 + " SMM.01: 3% SMM:1-3 + " SMM.01: 10% SMM:1-7 + " SMM.01: 46% SMM:1-30 + " SMM.01: 48% SMM:1-31 + " SMM.01: 49% SMM:1-31 + " SMM.01: 49% SMM:1-31 + " SMM.01: 82% SMM:1-50 + " SMM.02: 17% SMM:2-6 + " SMM.05: 12% SMM:5-4 + " SMM.10: 17% SMM:10-5 + " SMM.17: 16% SMM:17-1 + " USD.04: 94% USD:4-43 + " USD.09: 10% USD:9-2 + " SMM.12A: 89% SMM:12-21 + " CATMAN.8: 66% CATMAN(8)-1 + " DU.1: 8% DU(1)-1 + " SMM.01: 2% SMM:1-3 +DISK SUPPORT HK.4: 25% HK(4)-1 + " HP.4: 13% HP(4)-1 + " UDA.4: 26% UDA(4)-1 + " UP.4: 21% UP(4)-1 +disk surface error[s] SMM.01: 14% SMM:1-10 +disk test DRTEST.8: 3% DRTEST(8)-1 +disk throughput statistics SYSTAT.1: 20% SYSTAT(1)-2 +disk transaction[s] SMM.14: 12% SMM:14-3 + " SMM.14: 22% SMM:14-4 + " SMM.14: 24% SMM:14-5 + " SMM.14: 71% SMM:14-11 + " SYSTAT.1: 22% SYSTAT(1)-2 +disk usage DU.1: 8% DU(1)-1 + " USD.04: 37% USD:4-17 +diskpart HP.4: 68% HP(4)-3 + " SMM.01: 42% SMM:1-28 + " SMM.12A: 84% SMM:12-20 +diskpart - calculate default disk partition sizes DISKPART.8: 2% DISKPART(8)-1 +disktab SMM.12A: 64% SMM:12-15 + " SMM.12A: 77% SMM:12-18 +disktab, struct GETDISK.3: 8% GETDISKBYNAME(3) + " GETDISK.3: 47% GETDISKBYNAME(3) + " GETDISK.3: 85% GETDISKBYNAME(3) +disktab - disk description file DISKTAB.5: 2% DISKTAB(5)-1 +dismount file system MOUNT.8: 4% MOUNT(8)-1 +Display[s] MS.7: 27% MS(7)-1 + " USD.22: 25% USD:22-5 + " USD.23: 28% USD:23-4 +display, graphics LIB2648.3X: 40% LIB2648(3X)-2 + " LIB2648.3X: 41% LIB2648(3X)-2 + " LIB2648.3X: 59% LIB2648(3X)-3 +display[s], iostat IOSTAT.1: 73% IOSTAT(1)-1 + " SYSTAT.1: 19% SYSTAT(1)-2 + " SYSTAT.1: 72% SYSTAT(1)-3 +display[s], JOVE USD.17: 6% USD:17-3 + " USD.17: 41% USD:17-18 + " USD.17: 49% USD:17-21 +Display, netstat SYSTAT.1: 65% SYSTAT(1)-3 + " SYSTAT.1: 82% SYSTAT(1)-4 + " SYSTAT.1: 85% SYSTAT(1)-4 +displays, program ARP.8C: 25% ARP(8C)-1 + " ARP.8C: 34% ARP(8C)-1 + " SMM.09: 19% SMM:9-5 +display[s], vmstat SYSTAT.1: 2% SYSTAT(1)-1 + " SYSTAT.1: 75% SYSTAT(1)-4 + " VMSTAT.1: 83% VMSTAT(1)-2 +display control command[s] USD.17: 38% USD:17-17 + " USD.17: 38% USD:17-17 + " USD.17: 39% USD:17-17 +display distance MS.7: 77% MS(7)-3 +Display Editing EX.1: 45% EX(1)-1 + " USD.15: 0% USD:15-1 + " USD.15: 0% USD:15-1 + " USD.15: 3% USD:15-2 + " USD.15: 5% USD:15-2 + " USD.15: 9% USD:15-4 + " USD.15: 13% USD:15-4 + " USD.15: 18% USD:15-6 + " USD.15: 20% USD:15-6 + " USD.15: 25% USD:15-8 + " USD.15: 28% USD:15-8 + " USD.15: 32% USD:15-10 + " USD.15: 37% USD:15-10 + " USD.15: 40% USD:15-12 + " USD.15: 44% USD:15-12 + " USD.15: 47% USD:15-14 + " USD.15: 51% USD:15-14 + " USD.15: 55% USD:15-16 + " USD.15: 58% USD:15-16 + " USD.15: 61% USD:15-18 + " USD.15: 65% USD:15-18 + " USD.15: 69% USD:15-20 + " USD.15: 72% USD:15-20 + " USD.15: 77% USD:15-22 + " USD.15: 80% USD:15-22 + " USD.15: 84% USD:15-24 + " USD.15: 87% USD:15-24 + " USD.15: 91% USD:15-26 + " USD.15: 94% USD:15-26 + " USD.15: 98% USD:15-28 + " USD.15: 99% USD:15-28 + " USD.16: 0% USD:16-1 + " USD.16: 42% USD:16-8 + " USD.16: 59% USD:16-11 + " VI.1: 24% VI(1)-1 + " VI.1: 34% VI(1)-1 + " EX.1: 10% EX(1)-1 +Display Editing with Vi, Introduction to USD.15: 0% USD:15-1 +display editor EX.1: 47% EX(1)-1 + " MAIL.1: 62% MAIL(1)-4 + " USD.17: 0% USD:17-1 + " VI.1: 4% VI(1)-1 +display equations USD.27: 1% USD:27-1 + " USD.27: 66% USD:27-7 + " USD.27: 79% USD:27-8 +display file[s] PS.4: 36% PS(4)-1 + " PS.4: 42% PS(4)-1 + " PS.4: 44% PS(4)-1 + " PS.4: 67% PS(4)-1 +display information SYSTAT.1: 80% SYSTAT(1)-4 + " SYSTAT.1: 81% SYSTAT(1)-4 + " SYSTAT.1: 86% SYSTAT(1)-4 + " SYSTAT.1: 89% SYSTAT(1)-4 +display line[s] OD.1: 45% OD(1)-1 + " OD.1: 53% OD(1)-1 + " USD.15: 13% USD:15-4 +Display modes WINDOW.1: 7% WINDOW(1)-1 + " WINDOW.1: 16% WINDOW(1)-1 + " WINDOW.1: 95% WINDOW(1)-7 +display terminal[s] JOVE.N: 5% JOVE(1)-1 + " USD.01: 16% USD:1-3 + " USD.08: 58% USD:8-69 + " USD.13: 8% USD:13-2 + " USD.15: 1% USD:15-1 + " VMH.N: 17% VMH(1)-1 +displays of line[s] USD.20: 51% USD:20-4 +Disposing of mail MAIL.1: 8% MAIL(1)-1 +dist - redistribute a message to additional addresses DIST.N: 0% DIST(1)-1 + " USD.08: 16% USD:8-18 +distance, hypot - Euclidean HYPOT.3M: 4% HYPOT(3M)-1 +distcomps DIST.N: 12% DIST(1)-1 +Distfile RDIST.1: 6% RDIST(1)-1 + " RDIST.1: 34% RDIST(1)-2 + " RDIST.1: 6% RDIST(1)-1 +distfile, example RDIST.1: 83% RDIST(1)-3 +distinction[s], Case ARFF.8V: 28% ARFF(8V)-1 + " MAILADDR.7: 36% MAILADDR(7)-1 +distinguished process group TTY.4: 46% TTY(4)-5 + " TTY.4: 51% TTY(4)-5 + " TTY.4: 53% TTY(4)-5 +distributing files to other host[s] RDIST.1: 38% RDIST(1)-2 +Distribution USD.09: 3% USD:9-1 + " USD.10: 92% USD:10-11 + " USD.10: 40% USD:10-5 +Distribution[s], Berkeley Software SMM.08: 99% SMM:8-4 + " SMM.14: 4% SMM:14-2 + " SMM.14: 88% SMM:14-13 +distribution, remote file RDIST.1: 0% RDIST(1)-1 +distribution, software CI.N: 59% CI(1)-2 + " SMM.21: 8% SMM:21-1 +Distribution format SMM.01: 2% SMM:1-3 +distribution kit SMM.01: 3% SMM:1-3 +distribution lists MAIL.1: 19% MAIL(1)-2 +distribution system SMM.01: 18% SMM:1-13 + " SMM.01: 40% SMM:1-26 + " SMM.01: 97% SMM:1-64 +distribution tape REBOOT.8: 92% REBOOT(8)-2 + " SMM.01: 1% SMM:1-2 + " SMM.01: 3% SMM:1-3 + " SMM.01: 3% SMM:1-3 + " SMM.01: 7% SMM:1-5 + " SMM.01: 19% SMM:1-13 + " SMM.01: 23% SMM:1-17 + " SMM.01: 25% SMM:1-18 + " SMM.01: 28% SMM:1-20 + " SMM.01: 32% SMM:1-22 + " SMM.01: 78% SMM:1-47 + " SMM.01: 82% SMM:1-49 + " SMM.01: 86% SMM:1-52 + " SMM.01: 86% SMM:1-52 + " SMM.01: 86% SMM:1-53 + " SMM.01: 88% SMM:1-55 + " SMM.01: 90% SMM:1-56 + " SMM.12: 30% SMM:12-1 + " SMM.12A: 30% SMM:12-7 + " SMM.01: 85% SMM:1-52 +ditroff LPR.1: 23% LPR(1)-1 +ditroff-specific -me macro[s] USD.23: 77% USD:23-12 +Diversion[s] USD.24: 8% USD:24-3 + " USD.24: 42% USD:24-14 + " USD.24: 46% USD:24-15 + " USD.24: 47% USD:24-16 + " M4.1: 53% M4(1)-1 + " USD.24: 21% USD:24-8 + " USD.25: 83% USD:25-12 +diversion level USD.24: 12% USD:24-5 + " USD.24: 32% USD:24-11 + " USD.24: 47% USD:24-16 +diversion name USD.24: 47% USD:24-16 +diversion trap USD.24: 32% USD:24-11 + " USD.24: 46% USD:24-15 + " USD.24: 47% USD:24-16 + " USD.24: 47% USD:24-16 + " USD.24: 51% USD:24-17 + " USD.24: 51% USD:24-17 + " USD.24: 51% USD:24-17 +Divert, appending USD.24: 50% USD:24-17 +Divert output to macro USD.24: 50% USD:24-17 +Divide-by-Zero exception INFNAN.3M: 16% INFNAN(3M)-1 +divert the output of M4 PS1.17: 66% PS1:17-4 +divide check in expression evaluation, overflow and PS1.01: 19% PS1:1-6 +division, integer PS1.01: 92% PS1:1-31 + " PS1.10: 6% PS1:10-2 + " PS1.11a: 67% PS1:11-5 +DO PS1.02: 8% PS1:2-5 + " PS2.08: 8% PS2:8-2 + " PS2.08: 33% PS2:8-5 + " PS2.08: 33% PS2:8-5 + " PS2.08: 34% PS2:8-5 + " PS2.08: 40% PS2:8-6 + " PS2.08: 47% PS2:8-7 + " PS2.08: 50% PS2:8-7 + " PS2.08: 78% PS2:8-11 +DO, Fortran PS2.06: 55% PS2:6-19 + " PS2.08: 7% PS2:8-2 + " PS2.08: 34% PS2:8-5 + " PS2.08: 39% PS2:8-6 + " PS2.08: 40% PS2:8-6 + " PS2.08: 51% PS2:8-7 +Do Statement PS1.01: 64% PS1:1-21 +dl-11w KG.4: 61% unknown +DL11-W interface UU.4: 11% UU(4)-1 +DMA SMM.02: 72% SMM:2-22 + " SMM.13: 96% SMM:13-33 + " SMM.13: 96% SMM:13-33 +DMA operation[s] SMM.15: 96% SMM:15-26 +dma transfer[s] DH.4: 68% DH(4)-1 + " DHU.4: 54% DHU(4)-1 + " DMF.4: 67% DMF(4)-1 + " DMZ.4: 60% DMZ(4)-1 + " EN.4: 10% EN(4)-1 +DMC SMM.12A: 73% SMM:12-17 +dmc - DEC DMC-11/DMR-11 point-to-point communications device DMC.4: 2% DMC(4)-1 +DMC-11, DEC DMC.4: 2% DMC(4)-1 +dmesg - collect system diagnostic messages to form error log DMESG.8: 7% DMESG(8)-1 +dmf - DMF-32, terminal multiplexor DMF.4: 1% DMF(4)-1 +DMF32 SMM.01: 40% SMM:1-26 + " SMM.13: 94% SMM:13-32 + " SMM.01: 51% SMM:1-32 +DMF32, parallel printer port on the SMM.13: 96% SMM:13-33 +dmz SMM.12A: 74% SMM:12-17 +dmz - DMZ-32 terminal multiplexor DMZ.4: 2% DMZ(4)-1 +DMZ32 SMM.13: 94% SMM:13-32 + " SMM.01: 51% SMM:1-32 + " SMM.13: 1% SMM:13-2 +dn - DN-11 autocall unit interface DN.4: 2% DN(4)-1 +dn_comp[s], dn_expand - resolver routine RESOLVER.3: 1% RESOLVER(3)-1 +DO loops F77.1: 44% F77(1)-2 +doc directory SMM.10: 4% SMM:10-2 + " SMM.10: 4% SMM:10-2 + " SMM.10: 4% SMM:10-2 +doctor - interact with a psychoanalyst DOCTOR.6: 7% DOCTOR(6)-1 +Documents USD.32: 16% USD:32-3 +document preparation PS2.01: 3% PS2:1-1 + " PS2.01: 95% PS2:1-14 + " PS2.01: 98% PS2:1-15 +documents, debugging CHECKNR.1: 2% CHECKNR(1)-1 +document[s], formatting MS.7: 3% MS(7)-1 +document[s], macros for preparing USD.20: 1% USD:20-1 +documents, technical USD.32: 5% USD:32-1 + " USD.32: 20% USD:32-4 + " USD.32: 20% USD:32-4 + " USD.32: 29% USD:32-5 + " USD.32: 52% USD:32-8 + " USD.32: 56% USD:32-8 +document[s], written USD.08: 0% USD:8-2 + " USD.08: 0% USD:8-2 + " USD.08: 0% USD:8-2 +document preparation USD.01: 0% USD:1-1 + " USD.01: 4% USD:1-1 + " USD.01: 24% USD:1-4 + " USD.01: 34% USD:1-6 + " USD.01: 66% USD:1-10 + " USD.01: 66% USD:1-10 + " USD.01: 71% USD:1-11 + " USD.01: 94% USD:1-14 + " USD.25: 5% USD:25-2 +document styles USD.31: 5% USD:31-1 + " USD.31: 9% USD:31-2 + " USD.31: 9% USD:31-2 +documentation, online USD.01: 23% USD:1-4 +documentation, posting of software packages & USD.09: 79% USD:9-10 +dollar sign[s] PS1.02: 26% PS1:2-10 + " PS1.02: 30% PS1:2-11 + " PS1.02: 30% PS1:2-11 + " PS1.03: 47% PS1:3-6 + " PS1.12: 31% PS1:12-3 + " PS1.12: 31% PS1:12-3 + " PS1.12: 32% PS1:12-3 + " PS1.15: 17% PS1:15-5 + " PS1.15: 72% PS1:15-21 + " PS2.10: 16% PS2:10-19 + " PS2.10: 18% PS2:10-20 + " PS2.10: 21% PS2:10-22 + " PS2.10: 46% PS2:10-39 + " USD.01: 9% USD:1-2 + " USD.12: 31% USD:12-4 + " USD.13: 19% USD:13-4 + " USD.14: 64% USD:14-16 + " USD.14: 64% USD:14-16 + " USD.14: 64% USD:14-16 + " USD.19: 37% USD:19-3 + " USD.27: 91% USD:27-10 + " USD.18: 25% USD:18-3 +dollar-sign $ USD.12: 84% USD:12-9 +Domain[s] SMM.11: 26% SMM:11-4 + " INTRO.4N: 3% INTRO(4N)-1 + " MAILADDR.7: 4% MAILADDR(7)-1 + " USD.07: 40% USD:7-10 +domain, ARPA SMM.11: 36% SMM:11-5 + " SMM.11: 36% SMM:11-5 + " SMM.11: 60% SMM:11-8 +domain[s], binding addresses to sockets in the Internet and NS PS1.08: 73% PS1:8-30 +domain, binding to a name (or address) within the communications PS1.06: 77% PS1:6-34 +domain[s], character PS2.10: 7% PS2:10-8 + " PS2.10: 8% PS2:10-9 + " PS2.10: 83% PS2:10-76 +domain[s], Communication PS1.06: 73% PS1:6-32 + " PS1.06: 73% PS1:6-33 + " PS1.06: 73% PS1:6-33 + " PS1.06: 80% PS1:6-34 + " PS1.07a: 90% PS1:7-22 + " PS1.08: 4% PS1:8-3 + " PS1.08: 4% PS1:8-3 + " PS1.08: 8% PS1:8-4 + " PS1.08: 12% PS1:8-5 + " PS1.08: 71% PS1:8-28 +domain[s], communication BIND.2: 29% BIND(2)-1 + " SOCKET.2: 39% SOCKET(2)-1 + " SMM.15: 27% SMM:15-8 + " SOCKET.2: 6% SOCKET(2)-1 +domain, public USD.08: 91% USD:8-112 + " USD.08: 92% USD:8-112 + " USD.10: 32% USD:10-4 +domain, struct SMM.15: 27% SMM:15-9 + " SMM.15: 27% SMM:15-9 + " SMM.15: 28% SMM:15-9 +domain, top level SMM.07: 66% SMM:7-1 + " SMM.11: 13% SMM:11-2 + " SMM.07A: 59% SMM:07-25 +domain, UNIX GETSOCKNAME.2: 88% GETSOCKNAME(2)- + " SMM.06: 10% SMM:6-2 + " SMM.15: 8% SMM:15-4 + " SOCKETPAIR.2: 95% SOCKETPAIR(2)-1 + " CONNECT.2: 73% CONNECT(2)-1 + " SMM.12A: 41% SMM:12-9 +domain name[s] MAILADDR.7: 17% MAILADDR(7)-1 + " MAILADDR.7: 37% MAILADDR(7)-2 + " NAMED.8: 31% NAMED(8)-1 + " NAMED.8: 52% NAMED(8)-1 + " NAMED.8: 53% NAMED(8)-1 + " RESOLVER.3: 63% RESOLVER(3)-2 + " RESOLVER.3: 64% RESOLVER(3)-2 + " RESOLVER.3: 75% RESOLVER(3)-2 + " RESOLVER.5: 29% RESOLVER(5)-1 + " RESOLVER.5: 66% RESOLVER(5)-1 + " SMM.01: 33% SMM:1-22 + " SMM.01: 54% SMM:1-34 + " SMM.11: 23% SMM:11-3 + " SMM.11: 44% SMM:11-6 + " SMM.11: 96% SMM:11-16 + " SMM.11: 97% SMM:11-16 + " SMM.07A: 41% SMM:07-19 + " SMM.07A: 60% SMM:07-26 +domain spec SMM.07A: 59% SMM:07-25 +domain structure SMM.13: 7% SMM:13-4 + " SMM.15: 28% SMM:15-9 + " SMM.15: 32% SMM:15-10 + " SMM.15: 27% SMM:15-8 +Don't SA.8: 59% SA(8)-1 + " SMM.02: 13% SMM:2-5 + " SMM.07: 75% SMM:7-1 + " TTY.4: 89% TTY(4)-9 +Doom, Dungeons of ROGUE.6: 3% ROGUE(6)-1 + " ROGUE.6: 76% ROGUE(6)-1 + " ROGUE.6: 89% ROGUE(6)-1 + " USD.33: 0% USD:33-2 + " USD.33: 1% USD:33-2 + " USD.33: 3% USD:33-2 + " USD.33: 6% USD:33-2 + " USD.33: 7% USD:33-2 + " USD.33: 9% USD:33-2 + " USD.33: 19% USD:33-2 + " USD.33: 29% USD:33-4 + " USD.33: 40% USD:33-4 + " USD.33: 53% USD:33-6 + " USD.33: 66% USD:33-6 + " USD.33: 77% USD:33-8 + " USD.33: 89% USD:33-8 + " USD.33: 94% USD:33-9 +Dot ADB.1: 51% ADB(1)-3 + " ADB.1: 51% ADB(1)-3 + " INTRO.2: 83% INTRO(2)-6 + " USD.07: 75% USD:7-18 + " USD.12: 34% USD:12-4 + " USD.12: 37% USD:12-4 + " USD.12: 38% USD:12-4 + " USD.12: 43% USD:12-5 + " USD.12: 48% USD:12-5 + " USD.12: 73% USD:12-8 + " USD.12: 78% USD:12-8 + " USD.12: 93% USD:12-10 + " USD.12: 99% USD:12-10 + " USD.13: 58% USD:13-10 + " USD.13: 58% USD:13-10 + " USD.13: 58% USD:13-10 + " USD.14: 63% USD:14-16 + " MAIL.1: 83% MAIL(1)-5 + " USD.14: 38% USD:14-10 +Dot, Default Line Numbers and the Value of USD.13: 46% USD:13-8 +domain[s], communications PS1.06: 37% PS1:6-18 + " PS1.06: 50% PS1:6-24 + " PS1.06: 50% PS1:6-24 + " PS1.06: 50% PS1:6-24 + " PS1.06: 50% PS1:6-24 + " PS1.06: 51% PS1:6-24 + " PS1.06: 63% PS1:6-29 + " PS1.06: 77% PS1:6-34 + " PS1.06: 77% PS1:6-34 +domain[s], Dummy PS2.10: 6% PS2:10-8 + " PS2.10: 7% PS2:10-8 + " PS2.10: 7% PS2:10-8 +domain, INTERNET PS1.06: 86% PS1:6-37 + " PS1.06: 86% PS1:6-37 + " PS1.06: 88% PS1:6-37 + " PS1.06: 88% PS1:6-37 + " PS1.07a: 29% PS1:7-8 + " PS1.07a: 30% PS1:7-8 + " PS1.07a: 42% PS1:7-10 + " PS1.07a: 45% PS1:7-11 + " PS1.07a: 51% PS1:7-11 + " PS1.07a: 91% PS1:7-22 + " PS1.07a: 91% PS1:7-22 + " PS1.08: 4% PS1:8-3 + " PS1.08: 10% PS1:8-4 + " PS1.08: 11% PS1:8-5 + " PS1.08: 15% PS1:8-6 + " PS1.08: 36% PS1:8-14 + " PS1.08: 71% PS1:8-28 +domains, Internet and NS PS1.08: 10% PS1:8-4 + " PS1.08: 73% PS1:8-30 + " PS1.08: 75% PS1:8-31 +domain, Names in the UNIX PS1.07a: 40% PS1:7-10 + " PS1.07a: 42% PS1:7-10 + " PS1.07a: 51% PS1:7-11 +domain, NS PS1.08: 4% PS1:8-3 + " PS1.08: 9% PS1:8-4 + " PS1.08: 15% PS1:8-6 + " PS1.08: 18% PS1:8-7 + " PS1.08: 30% PS1:8-11 + " PS1.08: 30% PS1:8-11 + " PS1.08: 36% PS1:8-14 + " PS1.08: 38% PS1:8-14 + " PS1.08: 72% PS1:8-30 + " PS1.08: 79% PS1:8-32 +domains, numeric PS2.10: 7% PS2:10-8 + " PS2.10: 8% PS2:10-9 + " PS2.10: 38% PS2:10-34 + " PS2.10: 48% PS2:10-41 +domain, UNIX PS1.06: 85% PS1:6-36 + " PS1.06: 86% PS1:6-36 + " PS1.07a: 24% PS1:7-4 + " PS1.07a: 29% PS1:7-8 + " PS1.07a: 30% PS1:7-8 + " PS1.07a: 39% PS1:7-9 + " PS1.07a: 83% PS1:7-21 + " PS1.07a: 88% PS1:7-22 + " PS1.08: 4% PS1:8-3 + " PS1.08: 5% PS1:8-3 + " PS1.08: 7% PS1:8-3 + " PS1.08: 9% PS1:8-4 + " PS1.08: 10% PS1:8-4 + " PS1.08: 12% PS1:8-5 + " PS1.08: 15% PS1:8-6 + " PS1.08: 18% PS1:8-7 +domain name[s] PS2.10: 8% PS2:10-9 + " PS2.10: 8% PS2:10-9 + " PS2.10: 8% PS2:10-9 + " PS2.10: 8% PS2:10-9 + " PS2.10: 33% PS2:10-31 +domain value[s] PS2.10: 8% PS2:10-9 + " PS2.10: 42% PS2:10-36 + " PS2.10: 42% PS2:10-36 +Domains and Protocol[s] PS1.07a: 27% PS1:7-7 +domains in a relation, replace - replace values of PS2.10: 47% PS2:10-41 +dot, line USD.12: 51% USD:12-6 + " USD.12: 72% USD:12-8 + " USD.13: 14% USD:13-3 + " USD.13: 14% USD:13-3 + " USD.13: 43% USD:13-8 + " USD.13: 79% USD:13-13 + " USD.13: 85% USD:13-14 + " USD.13: 85% USD:13-14 +dot, set USD.13: 54% USD:13-10 + " USD.13: 56% USD:13-10 + " USD.13: 62% USD:13-11 +dot, sets ADB.1: 77% ADB(1)-5 + " USD.12: 41% USD:12-5 + " USD.12: 59% USD:12-6 +dot notation IFCONFIG.8C: 20% IFCONFIG(8C)-1 +dot points USD.13: 48% USD:13-9 + " USD.13: 49% USD:13-9 + " USD.13: 50% USD:13-9 +double horizontal line USD.28: 20% USD:28-4 +Double quote[s] SMM.16: 41% SMM:16-6 + " USD.03: 69% USD:3-17 + " USD.25: 45% USD:25-7 +double space ME.7: 14% ME(7)-1 + " MS.7: 12% MS(7)-1 +double spacing COLCRT.1: 37% COLCRT(1)-1 + " USD.22: 16% USD:22-3 +double-space USD.29: 34% USD:29-4 +doublebox - enclose the table in two boxe[s] USD.28: 10% USD:28-2 +doubly linked lists INSQUE.3: 56% unknown +dp - parse dates 822-style DP.N: 1% DP(8)-1 + " USD.08: 76% USD:8-94 +Dquot structure[s] SMM.02: 88% SMM:2-31 + " SMM.02: 88% SMM:2-31 +draft file PROMPTER.N: 81% PROMPTER(1)-1 + " REPL.N: 76% REPL(1)-2 + " USD.08: 44% USD:8-53 + " USD.08: 85% USD:8-104 +draft folder SCAN.N: 56% SCAN(1)-1 + " USD.08: 52% USD:8-62 + " USD.08: 83% USD:8-102 + " USD.08: 83% USD:8-102 + " USD.08: 84% USD:8-103 + " USD.08: 84% USD:8-103 + " USD.08: 84% USD:8-103 +draft folder facility FORW.N: 59% FORW(1)-2 +draft intact COMP.N: 43% COMP(1)-1 + " DIST.N: 20% DIST(1)-1 + " FORW.N: 18% FORW(1)-1 + " REPL.N: 27% REPL(1)-1 + " USD.08: 16% USD:8-16 + " USD.08: 17% USD:8-18 + " USD.08: 21% USD:8-23 + " USD.08: 48% USD:8-57 + " USD.08: 85% USD:8-103 +draft message SEND.N: 36% SEND(1)-1 + " USD.08: 83% USD:8-102 + " USD.08: 83% USD:8-102 +Draft-Folder USD.08: 71% USD:8-86 + " USD.08: 83% USD:8-102 + " USD.08: 83% USD:8-102 +drand RAND.3F: 5% RAND(3F)-1 +drandm RANDOM.3F: 7% RANDOM(3F)-1 +drill, arithmetic ARITHMETIC.6: 3% ARITHMETIC(6)-1 +drive[s], magtape MTIO.4: 2% MTIO(4)-1 +drive[s], MASSBUS FORMAT.8V: 19% FORMAT(8V)-1 + " SMM.02: 41% SMM:2-12 +drive, sc0 SMM.02: 43% SMM:2-13 + " SMM.02: 43% SMM:2-13 + " SMM.02: 55% SMM:2-17 + " SMM.02: 84% SMM:2-29 + " SMM.02: 84% SMM:2-29 + " UP.4: 2% UP(4)-1 +drive[s], tape MT.1: 15% unknown +drive[s], UNIBUS FORMAT.8V: 46% FORMAT(8V)-1 + " REBOOT.8: 84% REBOOT(8)-2 + " SMM.02: 41% SMM:2-12 +drive number[s] AUTOCONF.4: 70% AUTOCONF(4)-1 + " AUTOCONF.4: 80% AUTOCONF(4)-2 + " HK.4: 8% HK(4)-1 + " HK.4: 10% HK(4)-1 + " HP.4: 4% HP(4)-1 + " HP.4: 5% HP(4)-1 + " SMM.02: 33% SMM:2-10 + " SMM.02: 33% SMM:2-10 + " UDA.4: 12% UDA(4)-1 + " UDA.4: 14% UDA(4)-1 + " UP.4: 9% UP(4)-1 + " UP.4: 11% UP(4)-1 +drive type[s] HP.4: 15% HP(4)-1 + " HP.4: 19% HP(4)-1 + " HP.4: 88% HP(4)-4 + " SMM.01: 5% SMM:1-4 + " SMM.02: 63% SMM:2-19 + " SMM.02: 63% SMM:2-19 + " SMM.13: 98% SMM:13-34 + " UDA.4: 26% UDA(4)-1 + " UDA.4: 32% UDA(4)-1 +driver[s], block device INTRO.4: 20% INTRO(4)-1 + " PS2.04: 45% PS2:4-5 + " PS2.05: 82% PS2:5-6 + " PS2.05: 82% PS2:5-6 + " PS2.05: 83% PS2:5-6 + " PS2.05: 94% PS2:5-7 +driver[s], device PS2.01: 7% PS2:1-2 + " PS2.04: 42% PS2:4-5 + " PS2.04: 42% PS2:4-5 + " PS2.04: 42% PS2:4-5 + " PS2.04: 43% PS2:4-5 + " PS2.04: 44% PS2:4-5 + " PS2.04: 46% PS2:4-5 + " PS2.04: 52% PS2:4-5 + " PS2.04: 52% PS2:4-5 + " PS2.04: 52% PS2:4-5 + " PS2.05: 1% PS2:5-1 + " PS2.05: 38% PS2:5-3 + " PS2.05: 80% PS2:5-6 + " PS2.05: 89% PS2:5-6 + " PS2.05: 92% PS2:5-6 +driver[s], Disk PS2.04: 52% PS2:4-5 + " PS2.04: 52% PS2:4-5 + " PS2.04: 54% PS2:4-6 + " PS2.04: 55% PS2:4-6 +driver[s], disk BAD144.8: 8% BAD144(8)-1 + " DRUM.4: 31% DRUM(4)-1 + " SMM.01: 6% SMM:1-4 + " SMM.01: 45% SMM:1-29 + " SMM.01: 78% SMM:1-48 + " SMM.13: 91% SMM:13-31 + " SMM.13: 91% SMM:13-31 + " SMM.14: 71% SMM:14-11 + " SMM.14: 73% SMM:14-11 +driver[s], Ethernet SMM.12A: 73% SMM:12-17 + " SMM.12A: 74% SMM:12-17 + " SMM.12A: 74% SMM:12-17 + " SMM.12A: 75% SMM:12-17 +driver[s], network interface INTRO.4: 22% INTRO(4)-1 + " INTRO.4: 29% INTRO(4)-1 + " SMM.01: 61% SMM:1-38 + " SMM.02: 51% SMM:2-16 + " SMM.13: 84% SMM:13-29 +driver[s], new SMM.13: 1% SMM:13-2 +drivers, tape SMM.13: 91% SMM:13-31 + " SMM.13: 91% SMM:13-31 + " SMM.13: 91% SMM:13-31 + " SMM.13: 94% SMM:13-32 +driver[s], teletype STTY.1: 57% STTY(1)-2 + " STTY.1: 92% STTY(1)-3 + " USD.15: 79% USD:15-22 + " USD.16: 54% USD:16-10 +driver[s], terminal GETTYTAB.5: 97% GETTYTAB(5)-3 + " SMM.13: 15% SMM:13-6 + " TERMCAP.5: 80% TERMCAP(5)-11 + " TERMCAP.5: 81% TERMCAP(5)-11 + " TTY.4: 0% TTY(4)-1 + " TTY.4: 1% TTY(4)-1 + " TTY.4: 10% TTY(4)-2 + " TTY.4: 25% TTY(4)-3 + " TTY.4: 27% TTY(4)-3 + " TTY.4: 29% TTY(4)-3 + " TTY.4: 33% TTY(4)-3 + " TTY.4: 35% TTY(4)-4 + " TTY.4: 37% TTY(4)-4 + " TTY.4: 38% TTY(4)-4 + " TTY.4: 51% TTY(4)-5 + " TTY.4: 52% TTY(4)-5 + " TTY.4: 54% TTY(4)-5 + " TTY.4: 55% TTY(4)-5 + " TTY.4: 93% TTY(4)-10 +driver[s], tty BK.4: 8% BK(4)-1 + " CSH.1: 0% CSH(1)-1 + " CSH.1: 0% CSH(1)-1 + " CSH.1: 1% CSH(1)-1 + " GETTYTAB.5: 61% GETTYTAB(5)-2 + " TTY.4: 2% TTY(4)-1 +drop[s], carrier SMM.13: 25% SMM:13-10 + " STTY.1: 87% STTY(1)-3 + " STTY.1: 89% STTY(1)-3 + " STTY.1: 90% STTY(1)-3 +drop[s], mail INC.N: 42% INC(1)-1 + " MH-MAIL.N: 95% MH-MAIL(5)-3 + " MSGCHK.N: 25% MSGCHK(1)-1 + " MSGCHK.N: 71% MSGCHK(1)-1 + " USD.08: 3% USD:8-2 + " USD.08: 24% USD:8-26 + " USD.08: 36% USD:8-41 +drop, user profile /usr/new/lib/mh/mtstailor tailor file ... INC.N: 74% INC(1)-2 + " USD.08: 25% USD:8-27 + " USD.08: 36% USD:8-41 +Dropped BATTLESTAR.6: 57% BATTLESTAR(6)-2 + " BATTLESTAR.6: 58% BATTLESTAR(6)-2 + " BATTLESTAR.6: 59% BATTLESTAR(6)-2 +drtest - standalone disk test program DRTEST.8: 2% DRTEST(8)-1 +drum - paging device DRUM.4: 8% DRUM(4)-1 +DS L USD.20: 53% USD:20-4 + " USD.20: 54% USD:20-5 + " USD.20: 56% USD:20-5 +ds xx USD.24: 8% USD:24-4 + " USD.24: 49% USD:24-16 + " USD.25: 45% USD:25-7 + " USD.25: 46% USD:25-7 +dstop-proces USD.17: 67% USD:17-31 +dtime ETIME.3F: 47% ETIME(3F)-1 +DU QUOT.8: 93% QUOT(8)-1 +du - summarize disk usage DU.1: 6% DU(1)-1 +dumb terminal[s] PLOT.3X: 62% PLOT(3X)-1 +dummy arguments PS1.02: 25% PS1:2-9 + " PS1.02: 59% PS1:2-20 + " PS1.02: 59% PS1:2-20 +Dummy domain[s] PS2.10: 6% PS2:10-8 + " PS2.10: 7% PS2:10-8 + " PS2.10: 7% PS2:10-8 +dummy procedure[s] DBX.1: 98% DBX(1)-7 + " DBX.1: 98% DBX(1)-7 +Dump DUMP.8: 44% DUMP(8)-1 + " FSTAB.5: 36% FSTAB(5)-1 + " SMM.12A: 77% SMM:12-18 + " SMM.12A: 84% SMM:12-20 +dump, core PS2.09: 46% PS2:9-81 + " PS1.11a: 25% PS1:11-2 + " PS1.11a: 39% PS1:11-3 +dump, Formatted PS1.10: 50% PS1:10-10 +dump[s], core ABORT.3: 43% ABORT(3)-1 + " CRASH.8V: 91% CRASH(8V)-3 + " CSH.1: 62% CSH(1)-13 + " RC.8: 89% RC(8)-1 + " SAVECORE.8: 4% SAVECORE(8)-1 + " SAVECORE.8: 18% SAVECORE(8)-1 + " SAVECORE.8: 26% SAVECORE(8)-1 + " SAVECORE.8: 61% SAVECORE(8)-1 + " SAVECORE.8: 70% SAVECORE(8)-1 + " SAVECORE.8: 82% SAVECORE(8)-1 + " SAVECORE.8: 95% SAVECORE(8)-1 + " USD.03: 76% USD:3-19 + " USD.04: 73% USD:4-36 + " USD.08: 27% USD:8-30 + " USD.11: 91% USD:11-14 + " VLIMIT.3C: 44% VLIMIT(3C)-1 +dump, decimal OD.1: 1% OD(1)-1 +dump, dumpdates - incremental dump format DUMP.5: 1% DUMP(5)-1 +dump[s], file system RDUMP.8C: 9% RDUMP(8C)-1 + " RRESTORE.8C: 11% RRESTORE(8C)-1 + " SMM.01: 24% SMM:1-17 + " SMM.01: 78% SMM:1-47 +dump[s], full SMM.01: 76% SMM:1-46 + " SMM.01: 77% SMM:1-47 +dump, hex OD.1: 2% OD(1)-1 +dump[s], incremental DUMP.5: 95% DUMP(5)-2 + " RESTORE.8: 12% RESTORE(8)-1 + " SMM.01: 76% SMM:1-46 +dump, level zero RESTORE.8: 96% RESTORE(8)-3 +dump, octal OD.1: 1% OD(1)-1 +dump, od - octal, decimal, hex, ascii OD.1: 1% OD(1)-1 +dump[s], Post-mortem SMM.03: 44% SMM:3-1 + " SMM.03: 66% SMM:3-1 +dump[s], system CONFIG.8: 63% CONFIG(8)-1 + " SMM.02: 26% SMM:2-8 + " SMM.02: 79% SMM:2-26 + " SMM.02: 80% SMM:2-26 + " SMM.02: 81% SMM:2-26 + " SMM.02: 81% SMM:2-26 + " SMM.02: 82% SMM:2-26 + " SMM.02: 82% SMM:2-26 + " SMM.02: 83% SMM:2-26 +dump - incremental file system dump DUMP.8: 0% DUMP(8)-1 +dump device CRASH.8V: 86% CRASH(8V)-3 + " SMM.02: 81% SMM:2-26 + " SMM.02: 81% SMM:2-26 + " SMM.13: 51% SMM:13-18 +dump format[s] SMM.01: 9% SMM:1-7 +dump level[s] DUMP.8: 7% DUMP(8)-1 + " DUMP.8: 18% DUMP(8)-1 + " DUMP.8: 72% DUMP(8)-2 +dump partition[s] SMM.02: 82% SMM:2-26 + " SMM.02: 82% SMM:2-26 + " SMM.02: 82% SMM:2-26 + " SMM.12A: 93% SMM:12-22 +dump sequence, typical SMM.01: 76% SMM:1-46 +dump tape[s] DUMP.5: 94% DUMP(5)-2 + " DUMP.8: 24% DUMP(8)-1 + " FS.5: 57% FS(5)-2 + " RESTORE.8: 9% RESTORE(8)-1 + " RESTORE.8: 26% RESTORE(8)-1 + " RESTORE.8: 44% RESTORE(8)-2 + " RESTORE.8: 95% RESTORE(8)-3 + " SMM.01: 24% SMM:1-17 + " SMM.01: 76% SMM:1-46 +dumpdef PS1.17: 93% PS1:17-6 +dumpfs - dump file system information DUMPFS.8: 9% DUMPFS(8)-1 +Dumping of files by name SMM.01: 77% SMM:1-47 +Dumping of the file system SMM.01: 76% SMM:1-46 +dumps core SMM.12: 5% SMM:12-1 + " SMM.12: 10% SMM:12-1 + " SMM.12: 10% SMM:12-1 + " SMM.12A: 5% SMM:12-2 + " SMM.12A: 10% SMM:12-3 + " SMM.12A: 10% SMM:12-3 +dungeon, zork - the game of ZORK.6: 5% unknown +Dungeon Definition Language AARDVARK.6: 47% AARDVARK(6)-1 + " SMM.12A: 78% SMM:12-18 +Dup[s] SMM.05: 4% SMM:5-2 + " FLOCK.2: 69% FLOCK(2)-1 + " SMM.13: 17% SMM:13-7 +dup(old) PS1.06: 37% PS1:6-18 +dup, dup2 - duplicate a descriptor DUP.2: 2% DUP(2)-1 +dup2(old, new) PS1.06: 38% PS1:6-18 +duplicate block[s] ICHECK.8: 69% ICHECK(8)-1 + " ICHECK.8: 84% ICHECK(8)-1 + " SMM.05: 28% SMM:5-6 + " SMM.05: 31% SMM:5-7 + " SMM.05: 31% SMM:5-7 + " SMM.05: 61% SMM:5-13 +duplicate of a descriptor reference PS1.06: 37% PS1:6-18 +duplicating text, rearranging and USD.15: 34% USD:15-10 +duplication of line[s] USD.16: 46% USD:16-9 +DVI format LPD.8: 56% LPD(8)-1 + " LPR.1: 25% LPR(1)-1 + " PRINTCAP.5: 22% PRINTCAP(5)-1 +dynamic call graph GPROF.1: 72% GPROF(1)-2 + " GPROF.1: 73% GPROF(1)-2 + " SMM.02: 19% SMM:2-6 +dynamic statistics PS2.07: 32% PS2:7-15 + " PS2.07: 35% PS2:7-16 + " PS2.07: 66% PS2:7-30 +EC PS1.12: 67% PS1:12-6 +dynamic storage allocator USD.05: 24% USD:5-3 + " USD.05: 85% USD:5-7 + " USD.06: 2% USD:6-1 +dz - DZ-11 communications multiplexer DZ.4: 3% DZ(4)-1 +DZ11 DZ.4: 12% DZ(4)-1 + " SMM.01: 51% SMM:1-32 + " SMM.13: 94% SMM:13-32 + " SMM.13: 95% SMM:13-32 +d_dprod SMM.12A: 29% SMM:12-7 +D_floating-point, DEC VAX-11 MATH.3M: 16% MATH(3M)-2 +E'S BC.1: 97% BC(1)-2 + " CHECKNR.1: 44% CHECKNR(1)-1 + " CHECKNR.1: 45% CHECKNR(1)-1 +E, Appendix SMM.07A: 88% SMM:07-38 +E, ESC USD.17: 25% USD:17-12 + " USD.17: 26% USD:17-12 + " USD.17: 73% USD:17-34 +E field SMM.07: 72% SMM:7-1 + " SMM.07: 73% SMM:7-1 + " USD.31: 36% USD:31-6 + " SMM.07A: 64% SMM:07-27 + " SMM.07A: 65% SMM:07-27 +E. SMM.05: 40% SMM:5-8 + " SMM.16: 92% SMM:16-12 + " SMM.16: 97% SMM:16-14 +e., i. USD.32: 5% USD:32-1 + " USD.32: 12% USD:32-3 + " USD.32: 82% USD:32-13 +e. g. USD.24: 33% USD:24-12 + " USD.24: 62% USD:24-20 + " USD.24: 69% USD:24-22 + " USD.32: 82% USD:32-13 +E2BIG - Arg list too long INTRO.2: 12% INTRO(2)-1 +EACCE[s] SMM.12A: 59% SMM:12-14 +EACCES - Permission denied INTRO.2: 18% INTRO(2)-2 +EADDRINUSE - Address already in use INTRO.2: 46% INTRO(2)-4 +EADDRNOTAVAIL - Can't assign requested address INTRO.2: 47% INTRO(2)-4 +EAFNOSUPPORT - Address family not supported by protocol family INTRO.2: 45% INTRO(2)-4 +EAGAIN - No more processes INTRO.2: 15% INTRO(2)-2 +Eagle, Fujitsu BAD144.8: 74% BAD144(8)-2 + " HP.4: 21% HP(4)-1 + " SMM.13: 99% SMM:13-34 + " UP.4: 25% UP(4)-1 + " UP.4: 25% UP(4)-1 +EALREADY - Operation already in progress INTRO.2: 38% INTRO(2)-3 +EBADF - Bad file number INTRO.2: 13% INTRO(2)-1 +EBCDIC, convert ASCII to DD.1: 31% DD(1)-1 +EBCDIC card images DD.1: 67% +EBCDIC tape, read an DD.1: 65% +EBCDIC to ASCII, convert DD.1: 30% DD(1)-1 +EBUSY - Device busy INTRO.2: 20% INTRO(2)-2 +EC SMM.12A: 74% SMM:12-17 +ec - 3Com 10 Mb/s Ethernet interface EC.4: 1% EC(4)-1 +ECC FORMAT.8V: 10% FORMAT(8V)-1 + " FORMAT.8V: 13% FORMAT(8V)-1 +ECC correction SMM.01: 12% SMM:1-8 + " SMM.02: 69% SMM:2-21 + " SMM.13: 92% SMM:13-31 +ECC error, recoverable HK.4: 65% HK(4)-2 + " HP.4: 83% HP(4)-4 + " UP.4: 78% UP(4)-3 +ecc sn%d HK.4: 65% HK(4)-2 + " HP.4: 82% HP(4)-4 + " UP.4: 78% UP(4)-3 +ECHILD - No child[s] INTRO.2: 15% INTRO(2)-2 +ECHO SMM.12A: 16% SMM:12-4 +echo() PS1.18: 43% PS1:18-12 +ECONNREFUSED PS1.08: 16% PS1:8-6 +echo, local REMOTE.5: 69% REMOTE(5)-1 +echo - echo arguments ECHO.1: 10% ECHO(1)-1 +echo -n SMM.10: 79% SMM:10-20 + " SMM.11: 83% SMM:11-13 +echo character[s] STTY.1: 20% STTY(1)-1 +echo command USD.04: 13% USD:4-6 + " CSH.1: 53% CSH(1)-11 + " USD.04: 49% USD:4-22 +echo mode[s] TSET.1: 61% TSET(1)-3 +echo service INETD.8: 84% INETD(8)-2 +echo shell variable CSH.1: 79% CSH(1)-17 +ECHO_REQUEST packet[s] PING.8: 3% PING(8)-1 + " PING.8: 22% PING(8)-1 +ECHO_RESPONSE packet PING.8: 66% PING(8)-1 + " PING.8: 21% PING(8)-1 + " PING.8: 66% PING(8)-1 +ECONNABORTED - Software caused connection abort INTRO.2: 49% INTRO(2)-4 +ECONNREFUSED - Connection refused INTRO.2: 56% INTRO(2)-5 +ECONNRESET - Connection reset by peer INTRO.2: 50% INTRO(2)-4 +ecvt, fcvt, gcvt - output conversion ECVT.3: 3% ECVT(3)-1 +Ed USD.18: 7% USD:18-1 + " USD.19: 32% USD:19-3 +ed, editor CRYPT.1: 24% CRYPT(1)-1 + " DIFF.1: 40% DIFF(1)-1 + " DIFF3.1: 42% DIFF3(1)-1 + " USD.13: 0% USD:13-2 + " USD.13: 4% USD:13-2 + " USD.15: 73% USD:15-21 + " USD.19: 73% USD:19-6 + " ED.1: 0% ED(1)-1 + " ED.1: 3% ED(1)-1 + " USD.12: 2% USD:12-1 + " USD.12: 11% USD:12-2 + " USD.12: 17% USD:12-2 + " USD.12: 18% USD:12-2 + " USD.12: 30% USD:12-4 + " USD.12: 31% USD:12-4 + " USD.12: 40% USD:12-5 + " USD.12: 67% USD:12-7 + " USD.24: 84% USD:24-28 +ed, line addressing in USD.12: 1% USD:12-1 + " USD.13: 40% USD:13-7 + " USD.13: 3% USD:13-2 +ed - text editor ED.1: 0% ED(1)-1 +ed command[s] DIFF.1: 29% DIFF(1)-1 + " ED.1: 37% ED(1)-2 + " USD.01: 26% USD:1-4 + " USD.04: 63% USD:4-30 + " USD.12: 23% USD:12-3 + " USD.12: 59% USD:12-6 + " USD.12: 78% USD:12-8 + " USD.12: 92% USD:12-10 + " USD.13: 8% USD:13-2 + " USD.13: 66% USD:13-11 + " USD.13: 76% USD:13-13 + " USD.13: 84% USD:13-14 +ed Commands and Line Number, Summary of USD.12: 92% USD:12-10 +ed diff[s] PATCH.N: 10% PATCH(1)-1 +ed error message[s] USD.12: 15% USD:12-2 + " USD.12: 60% USD:12-6 +ed file USD.01: 56% USD:1-9 + " USD.01: 61% USD:1-10 + " USD.01: 62% USD:1-10 + " USD.03: 32% USD:3-8 + " USD.03: 90% USD:3-22 + " USD.13: 77% USD:13-13 +ed junk USD.01: 26% USD:1-4 + " USD.01: 27% USD:1-5 + " USD.01: 31% USD:1-5 +ed prints ED.1: 91% ED(1)-5 + " ED.1: 92% ED(1)-5 + " USD.13: 80% USD:13-13 +ed script PATCH.N: 55% PATCH(1)-2 + " PATCH.N: 86% PATCH(1)-3 +ed.hup USD.01: 30% USD:1-5 +edata END.3: 43% + " LD.1: 23% LD(1)-1 +edcompatible USD.16: 83% USD:16-15 +EDESTADDRREQ - Destination address required INTRO.2: 39% INTRO(2)-3 +Edit USD.07: 56% USD:7-13 +edit - text editor EX.1: 1% EX(1)-1 +Edit command ED.1: 46% ED(1)-3 +edit, sccs PS1.14: 20% PS1:14-3 +edit-word-abbrev[s] USD.17: 67% USD:17-31 +Edit: A Tutorial USD.14: 0% unknown +editalt environment variable REPL.N: 33% REPL(1)-1 + " USD.08: 48% USD:8-57 + " USD.08: 72% USD:8-88 +Editing, Display EX.1: 45% EX(1)-1 + " USD.15: 0% USD:15-1 + " USD.15: 0% USD:15-1 + " USD.15: 3% USD:15-2 + " USD.15: 5% USD:15-2 + " USD.15: 9% USD:15-4 + " USD.15: 13% USD:15-4 + " USD.15: 18% USD:15-6 + " USD.15: 20% USD:15-6 + " USD.15: 25% USD:15-8 + " USD.15: 28% USD:15-8 + " USD.15: 32% USD:15-10 + " USD.15: 37% USD:15-10 + " USD.15: 40% USD:15-12 + " USD.15: 44% USD:15-12 + " USD.15: 47% USD:15-14 + " USD.15: 51% USD:15-14 + " USD.15: 55% USD:15-16 + " USD.15: 58% USD:15-16 + " USD.15: 61% USD:15-18 + " USD.15: 65% USD:15-18 + " USD.15: 69% USD:15-20 + " USD.15: 72% USD:15-20 + " USD.15: 77% USD:15-22 + " USD.15: 80% USD:15-22 + " USD.15: 84% USD:15-24 + " USD.15: 87% USD:15-24 + " USD.15: 91% USD:15-26 + " USD.15: 94% USD:15-26 + " USD.15: 98% USD:15-28 + " USD.15: 99% USD:15-28 + " USD.16: 0% USD:16-1 + " USD.16: 42% USD:16-8 + " USD.16: 59% USD:16-11 + " VI.1: 24% VI(1)-1 + " VI.1: 34% VI(1)-1 + " EX.1: 10% EX(1)-1 +editing, input TTY.4: 10% TTY(4)-2 + " TTY.4: 11% TTY(4)-2 + " TTY.4: 15% TTY(4)-2 + " TTY.4: 72% TTY(4)-7 +editing, Line PTY.4: 94% PTY(4)-2 + " TTY.4: 22% TTY(4)-3 +editing, special characters for advanced USD.12: 2% USD:12-1 +editing, text PS1.04: 2% PS1:4-2 + " PS1.04: 5% PS1:4-3 + " PS2.01: 85% PS2:1-13 + " USD.12: 1% USD:12-1 + " USD.13: 1% USD:13-2 + " USD.14: 0% USD:14-1 + " USD.14: 3% USD:14-3 + " USD.14: 4% USD:14-3 + " USD.14: 5% USD:14-3 + " USD.14: 9% USD:14-3 +editing buffer USD.14: 88% USD:14-21 + " USD.16: 47% USD:16-9 + " USD.16: 64% USD:16-12 +Editing C Program[s] USD.15: 53% USD:15-15 + " USD.17: 48% USD:17-21 +editing command[s] SED.1: 8% SED(1)-1 + " SED.1: 31% SED(1)-1 + " USD.01: 56% USD:1-9 + " USD.01: 82% USD:1-12 + " USD.13: 38% USD:13-7 + " USD.13: 41% USD:13-7 + " USD.13: 58% USD:13-10 + " USD.13: 97% USD:13-16 + " USD.13: 98% USD:13-16 + " USD.14: 24% USD:14-7 + " USD.14: 38% USD:14-10 + " USD.17: 7% USD:17-4 + " USD.17: 8% USD:17-4 + " USD.18: 1% USD:18-1 + " USD.18: 11% USD:18-2 + " USD.18: 12% USD:18-2 + " USD.18: 15% USD:18-2 + " USD.18: 15% USD:18-2 + " USD.18: 16% USD:18-2 + " USD.18: 18% USD:18-2 + " USD.18: 22% USD:18-3 + " USD.18: 41% USD:18-4 + " USD.18: 43% USD:18-4 + " USD.18: 44% USD:18-4 + " USD.18: 47% USD:18-5 + " USD.18: 51% USD:18-5 + " USD.18: 83% USD:18-8 + " USD.18: 92% USD:18-10 + " USD.18: 94% USD:18-10 + " USD.18: 95% USD:18-10 + " USD.18: 96% USD:18-10 + " USD.18: 96% USD:18-10 +Editing facilities USD.17: 2% USD:17-2 + " USD.19: 72% USD:19-6 +editing functions USD.18: 2% USD:18-1 +editing LISP USD.16: 4% USD:16-1 + " USD.15: 54% USD:15-15 +Editing mode[s] USD.16: 15% USD:16-3 +Editing Notes/Respons USD.11: 55% USD:11-9 +Editing on slow terminal[s] USD.15: 42% USD:15-12 +editing operations USD.01: 27% USD:1-4 + " USD.13: 95% USD:13-16 + " USD.16: 17% USD:16-3 +Editing scripts USD.13: 1% USD:13-2 + " USD.13: 95% USD:13-16 + " USD.18: 5% USD:18-1 +editing session USD.12: 24% USD:12-3 + " USD.14: 14% USD:14-4 + " USD.14: 14% USD:14-5 + " USD.14: 19% USD:14-6 + " USD.14: 24% USD:14-7 + " USD.14: 30% USD:14-8 + " USD.14: 37% USD:14-10 + " USD.14: 48% USD:14-12 + " USD.14: 48% USD:14-12 + " USD.14: 51% USD:14-13 + " USD.14: 63% USD:14-16 + " USD.14: 82% USD:14-20 + " USD.14: 93% USD:14-22 + " USD.15: 64% USD:15-18 + " USD.16: 32% USD:16-6 + " USD.17: 10% USD:17-5 + " USD.17: 55% USD:17-24 + " USD.17: 55% USD:17-24 +EDITOR[s] DBX.1: 58% DBX(1)-4 + " EDQUOTA.8: 65% EDQUOTA(8)-1 + " MH-PROFILE.N: 16% MH-PROFILE(5)-2 + " MH-PROFILE.N: 20% MH-PROFILE(5)-2 + " PROMPTER.N: 25% PROMPTER(1)-1 + " SMM.10: 51% SMM:10-14 + " USD.01: 25% USD:1-4 + " USD.07: 30% USD:7-8 + " USD.07: 70% USD:7-17 + " USD.07: 73% USD:7-17 + " USD.07: 73% USD:7-17 + " USD.08: 8% USD:8-8 + " USD.08: 8% USD:8-8 + " USD.08: 9% USD:8-8 + " USD.08: 43% USD:8-52 + " USD.08: 70% USD:8-86 + " USD.09: 25% USD:9-3 + " USD.11: 45% USD:11-7 + " USD.11: 83% USD:11-12 + " USD.11: 83% USD:11-12 + " MAIL.1: 89% MAIL(1)-6 +editor, compile your code while in the USD.17: 50% USD:17-22 +editor, context USD.18: 0% USD:18-1 +editor, link PS1.05: 46% PS1:5-7 + " PS1.05: 73% PS1:5-11 + " PS1.05: 74% PS1:5-11 + " PS1.05: 75% PS1:5-11 + " PS1.05: 76% PS1:5-11 +editor[s], UNIX text PS1.04: 4% PS1:4-3 + " PS1.04: 5% PS1:4-3 + " PS2.10: 26% PS2:10-26 + " PS2.10: 27% PS2:10-27 + " PS2.10: 30% PS2:10-29 +editor command[s] PS2.01: 62% PS2:1-9 + " PS2.09: 87% PS2:9-140 + " PS2.09: 87% PS2:9-140 + " PS2.09: 88% PS2:9-140 + " PS2.09: 91% PS2:9-146 + " PS2.09: 92% PS2:9-146 + " PS2.09: 94% PS2:9-149 + " PS2.09: 95% PS2:9-150 +editor[s], default MH-PROFILE.N: 21% MH-PROFILE(5)-2 + " MH-PROFILE.N: 22% MH-PROFILE(5)-2 + " SMM.10: 12% SMM:10-4 + " USD.07: 70% USD:7-17 + " USD.08: 8% USD:8-8 + " USD.08: 70% USD:8-86 + " USD.08: 70% USD:8-86 + " USD.11: 83% USD:11-12 +editor, display EX.1: 47% EX(1)-1 + " MAIL.1: 62% MAIL(1)-4 + " USD.17: 0% USD:17-1 + " VI.1: 4% VI(1)-1 +Editor, Interrupting the USD.13: 57% USD:13-10 +editor, JOVE TEACHJOVE.N: 34% TEACHJOVE(1)-1 + " TEACHJOVE.N: 47% TEACHJOVE(1)-1 +editor, jove - an interactive display-oriented text JOVE.N: 0% JOVE(1)-1 +editor, link A_OUT.5: 85% A.OUT(5)-3 + " LD.1: 0% LD(1)-1 +editor[s], screen ERROR.1: 7% ERROR(1)-1 + " MAIL.1: 75% MAIL(1)-5 + " USD.07: 30% USD:7-8 + " USD.07: 71% USD:7-17 + " USD.07: 73% USD:7-17 + " USD.07: 73% USD:7-17 +editor, sed - stream SED.1: 0% SED(1)-1 +editor, suspend the USD.15: 40% USD:15-11 +editor[s], text ED.1: 0% ED(1)-1 + " ED.1: 0% ED(1)-1 + " EX.1: 1% EX(1)-1 + " JOVE.N: 1% JOVE(1)-1 + " LPD.8: 28% LPD(8)-1 + " MAIL.1: 38% MAIL(1)-3 + " MAIL.1: 69% MAIL(1)-5 + " SMM.10: 12% SMM:10-4 + " USD.01: 15% USD:1-3 + " USD.01: 25% USD:1-4 + " USD.01: 26% USD:1-4 + " USD.07: 28% USD:7-8 + " USD.07: 29% USD:7-8 + " USD.07: 30% USD:7-8 + " USD.07: 30% USD:7-8 + " USD.07: 55% USD:7-13 + " USD.07: 55% USD:7-13 + " USD.07: 73% USD:7-17 + " USD.12: 2% USD:12-1 + " USD.14: 3% USD:14-3 + " USD.14: 3% USD:14-3 + " USD.14: 4% USD:14-3 + " USD.14: 5% USD:14-3 + " USD.14: 13% USD:14-4 + " USD.16: 0% USD:16-1 + " UUENCODE.1C: 77% UUENCODE(1C)-1 + " VI.1: 13% VI(1)-1 + " LEARN.1: 9% LEARN(1)-1 +Editor, Tutorial Introduction to the UNIX Text USD.12: 0% USD:12-1 +editor, UNIX commands from the USD.14: 80% USD:14-20 +editor, using the USD.01: 1% USD:1-1 +editor buffer USD.15: 36% USD:15-10 + " USD.16: 22% USD:16-4 + " USD.16: 32% USD:16-6 + " USD.16: 34% USD:16-6 + " USD.16: 45% USD:16-9 +editor command[s] USD.01: 27% USD:1-5 + " USD.15: 11% USD:15-4 + " USD.15: 21% USD:15-7 + " USD.15: 65% USD:15-18 + " USD.16: 35% USD:16-7 + " USD.16: 87% USD:16-16 + " USD.17: 1% USD:17-1 + " USD.17: 11% USD:17-5 +editor ex USD.15: 1% USD:15-1 + " USD.15: 73% USD:15-21 +editor script[s] ED.1: 3% ED(1)-1 + " USD.01: 61% USD:1-10 + " USD.04: 63% USD:4-31 + " USD.16: 3% USD:16-1 +editor session USD.15: 10% USD:15-4 + " USD.15: 10% USD:15-4 + " USD.16: 3% USD:16-1 +editor uses USD.15: 61% USD:15-17 + " USD.15: 61% USD:15-17 + " USD.15: 74% USD:15-21 +EDOM BESSEL.3F: 87% BESSEL(3F)-1 + " EXP.3M: 41% EXP(3M)-1 + " EXP.3M: 43% EXP(3M)-1 + " IEEE.3M: 67% IEEE(3M)-1 + " INFNAN.3M: 79% INFNAN(3M)-1 + " INFNAN.3M: 88% INFNAN(3M)-1 + " INFNAN.3M: 89% INFNAN(3M)-1 + " INFNAN.3M: 95% INFNAN(3M)-2 + " SQRT.3M: 44% SQRT(3M)-1 +EDOM - Argument too large INTRO.2: 35% INTRO(2)-3 +EDQUOT - Disc quota exceeded INTRO.2: 60% INTRO(2)-5 +edquota SMM.04: 50% SMM:4-2 + " SMM.12A: 84% SMM:12-20 +edquota - edit user quotas EDQUOTA.8: 4% EDQUOTA(8)-1 +EE TERMCAP.5: 23% TERMCAP(5)-5 + " TERMCAP.5: 23% TERMCAP(5)-5 + " TERMCAP.5: 23% TERMCAP(5)-5 +EEXIST - File exist[s] INTRO.2: 21% INTRO(2)-2 +EF MS.7: 30% MS(7)-1 + " TERMCAP.5: 23% TERMCAP(5)-5 + " USD.21: 89% USD:21-3 + " USD.21: 94% USD:21-3 +EFAULT - Bad address INTRO.2: 19% INTRO(2)-2 +EFBIG - File too large INTRO.2: 30% INTRO(2)-3 +Effective Group Id INTRO.2: 70% INTRO(2)-6 + " GETGID.2: 45% GETGID(2)-1 + " GETGID.2: 56% GETGID(2)-1 + " INTRO.2: 71% INTRO(2)-6 + " SETREGID.2: 32% SETREGID(2)-1 + " SETUID.3: 53% SETUID(3)-1 +effective UID SMM.17: 27% SMM:17-1 +effective user and group IDS EXECVE.2: 38% EXECVE(2)-1 +effective user ID[s] GETUID.2: 43% GETUID(2)-1 + " INTRO.2: 70% INTRO(2)-6 + " INTRO.2: 74% INTRO(2)-6 + " FIND.1: 36% FIND(1)-1 + " SMM.13: 10% SMM:13-5 + " SETREUID.2: 22% SETREUID(2)-1 + " SETREUID.2: 10% SETREUID(2)-1 + " SMM.12A: 80% SMM:12-19 + " SMM.12A: 60% SMM:12-14 + " SMM.12A: 55% SMM:12-13 + " SMM.12A: 47% SMM:12-11 + " WHOAMI.1: 24% WHOAMI(1)-1 + " UNLINK.2: 78% UNLINK(2)-1 + " SMM.13: 19% SMM:13-8 + " SMM.10: 23% SMM:10-7 + " SMM.10: 23% SMM:10-7 + " SH.1: 33% SH(1)-2 + " SETUID.3: 52% SETUID(3)-1 + " SETUID.3: 41% SETUID(3)-1 + " RSHD.8C: 48% RSHD(8C)-1 + " RENAME.2: 62% RENAME(2)-1 + " RENAME.2: 58% RENAME(2)-1 + " MKDIR.2: 14% MKDIR(2)-1 + " KILLPG.2: 88% KILLPG(2)-1 + " KILLPG.2: 27% KILLPG(2)-1 + " KILL.2: 87% KILL(2)-1 + " KILL.2: 21% KILL(2)-1 + " INTRO.2: 93% INTRO(2)-7 + " INTRO.2: 92% INTRO(2)-7 + " INTRO.2: 91% INTRO(2)-7 + " INTRO.2: 71% INTRO(2)-6 + " INTRO.2: 70% INTRO(2)-6 + " SETPGRP.2: 78% SETPGRP(2)-1 +Efl F77.1: 10% F77(1)-1 + " F77.1: 57% F77(1)-2 +EFL, Programming Language EFL.1: 93% EFL(1)-1 +effective user id PS1.06: 10% PS1:6-8 +EFL PS1.02: 3% PS1:2-4 + " PS1.02: 6% PS1:2-5 + " PS1.02: 7% PS1:2-5 + " PS2.06: 0% PS2:6-1 + " PS2.06: 1% PS2:6-1 + " PS2.06: 1% PS2:6-1 + " PS2.06: 2% PS2:6-1 + " PS2.06: 5% PS2:6-3 + " PS2.06: 12% PS2:6-5 + " PS2.06: 37% PS2:6-13 + " PS2.06: 54% PS2:6-19 + " PS2.06: 55% PS2:6-19 + " PS2.06: 58% PS2:6-21 + " PS2.06: 60% PS2:6-21 + " PS2.06: 68% PS2:6-24 + " PS2.06: 71% PS2:6-24 + " PS2.06: 74% PS2:6-25 + " PS2.06: 90% PS2:6-33 + " PS2.06: 90% PS2:6-33 + " PS2.06: 91% PS2:6-33 + " PS2.06: 97% PS2:6-35 + " PS2.06: 98% PS2:6-35 + " PS2.06: 98% PS2:6-35 +EFL, Programming Language PS2.06: 0% + " PS2.06: 0% + " PS2.06: 3% PS2:6-2 + " PS2.06: 7% PS2:6-4 + " PS2.06: 10% PS2:6-4 + " PS2.06: 12% PS2:6-6 + " PS2.06: 15% PS2:6-6 + " PS2.06: 18% PS2:6-8 + " PS2.06: 21% PS2:6-8 + " PS2.06: 24% PS2:6-10 + " PS2.06: 27% PS2:6-10 + " PS2.06: 31% PS2:6-12 + " PS2.06: 35% PS2:6-12 + " PS2.06: 38% PS2:6-14 + " PS2.06: 40% PS2:6-14 + " PS2.06: 44% PS2:6-16 + " PS2.06: 47% PS2:6-16 + " PS2.06: 50% PS2:6-18 + " PS2.06: 52% PS2:6-18 + " PS2.06: 55% PS2:6-20 + " PS2.06: 57% PS2:6-20 + " PS2.06: 61% PS2:6-22 + " PS2.06: 64% PS2:6-22 + " PS2.06: 68% PS2:6-24 + " PS2.06: 72% PS2:6-24 + " PS2.06: 74% PS2:6-26 + " PS2.06: 76% PS2:6-26 + " PS2.06: 79% PS2:6-28 + " PS2.06: 82% PS2:6-28 + " PS2.06: 84% PS2:6-30 + " PS2.06: 90% PS2:6-32 + " PS2.06: 97% PS2:6-34 +EFL and Ratfor PS2.06: 90% PS2:6-33 +EFL compiler PS2.06: 25% PS2:6-10 + " PS2.06: 73% PS2:6-25 +efl - Extended Fortran Language EFL.1: 3% EFL(1)-1 +EGP SMM.01: 70% SMM:1-42 +EGP (see also protocol, ...) ROUTED.8C: 85% ROUTED(8C)-2 + " ROUTED.8C: 86% ROUTED(8C)-2 + " ROUTED.8C: 95% ROUTED(8C)-3 + " SMM.01: 67% SMM:1-41 + " SMM.13: 67% SMM:13-23 +EGP implementation for 4.2BSD SMM.01: 67% SMM:1-41 +efl executable statement[s] PS2.06: 46% PS2:6-16 +EFL program[s] PS2.06: 0% PS2:6-1 + " PS2.06: 1% PS2:6-1 + " PS2.06: 4% PS2:6-3 + " PS2.06: 46% PS2:6-16 + " PS2.06: 65% PS2:6-23 +EFLAG[s] PS1.12: 99% PS1:12-9 + " PS1.12: 68% PS1:12-6 +EHOSTDOWN PS1.08: 16% PS1:8-6 +EHOSTUNREACH PS1.08: 16% PS1:8-7 +EINPROGRES PS1.06: 41% PS1:6-19 +egrep GREP.1: 1% GREP(1)-1 +egrep, fgrep, sed, lex, awk performance comparison, wc, grep, USD.19: 85% USD:19-6 +EHOSTDOWN - Host is down INTRO.2: 59% INTRO(2)-5 +EHOSTUNREACH - Host is unreachable INTRO.2: 59% INTRO(2)-5 +eight-bit input data path RLOGIN.1C: 62% RLOGIN(1C)-1 +EINPROGRESS - Operation now in progress INTRO.2: 37% INTRO(2)-3 +EINTR PAUSE.3C: 77% PAUSE(3C)-1 + " SIGINTERRUPT.3: 38% SIGINTERRUPT(3) + " SIGPAUSE.2: 56% SIGPAUSE(2)-1 + " SMM.13: 23% SMM:13-9 + " INTRO.2: 8% INTRO(2)-1 +EINTR - Interrupted system call INTRO.2: 8% INTRO(2)-1 +EINVAL SMM.13: 20% SMM:13-8 + " SMM.13: 32% SMM:13-12 + " SMM.13: 48% SMM:13-17 + " SMM.12A: 61% SMM:12-14 +EINVAL - Invalid argument INTRO.2: 24% INTRO(2)-2 +EIO - I/O error INTRO.2: 9% INTRO(2)-1 +EISCONN - Socket is already connected INTRO.2: 52% INTRO(2)-4 +EISDIR - Is a directory INTRO.2: 24% INTRO(2)-2 +elapsed time ETIME.3F: 42% ETIME(3F)-1 + " TIME.1: 19% TIME(1)-1 + " TIME.1: 80% TIME(1)-1 + " USD.04: 51% USD:4-24 +election algorithm SMM.22: 13% SMM:22-2 + " SMM.08: 32% SMM:8-2 +electronic mail (see also mail) SMM.11: 24% SMM:11-4 + " USD.08: 0% USD:8-2 + " USD.08: 0% USD:8-2 + " USD.08: 0% USD:8-2 + " USD.08: 0% USD:8-2 + " USD.08: 0% USD:8-2 + " USD.08: 1% USD:8-2 + " USD.09: 7% USD:9-2 +element[s], array PS1.02: 25% PS1:2-9 + " PS1.02: 74% PS1:2-25 + " PS1.03: 11% PS1:3-3 + " PS1.03: 58% PS1:3-7 + " PS2.06: 24% PS2:6-10 + " PS2.06: 26% PS2:6-10 + " PS2.06: 29% PS2:6-11 + " PS2.06: 31% PS2:6-11 + " PS2.06: 36% PS2:6-13 + " PS2.06: 37% PS2:6-13 + " PS2.06: 46% PS2:6-16 + " PS2.06: 61% PS2:6-21 + " PS2.06: 67% PS2:6-23 + " PS2.09: 16% PS2:9-30 + " PS2.09: 65% PS2:9-111 +element[s], data PS2.09: 14% PS2:9-27 + " PS2.09: 14% PS2:9-27 + " PS2.09: 14% PS2:9-27 + " PS2.09: 14% PS2:9-27 + " PS2.09: 14% PS2:9-27 + " PS2.09: 15% PS2:9-28 + " PS2.09: 64% PS2:9-108 +Embedded QUEL interface to C, equel - PS2.10: 56% PS2:10-50 +eliminate .so's from nroff input SOELIM.1: 5% SOELIM(1)-1 +elimination, subexpression SMM.12A: 18% SMM:12-5 + " SMM.12A: 23% SMM:12-6 +ELIZA program DOCTOR.6: 27% DOCTOR(6)-1 +ELOOP - Too many levels of symbolic links INTRO.2: 57% INTRO(2)-5 +else shell command CSH.1: 53% CSH(1)-11 + " CSH.1: 58% CSH(1)-12 +Elz, Robert SMM.04: 0% SMM:4-1 +EM SMM.20: 15% SMM:20-2 + " SMM.20: 23% SMM:20-2 + " TTY.4: 50% TTY(4)-5 + " USD.24: 20% USD:24-8 + " USD.24: 20% USD:24-8 +em in size USD.25: 27% USD:25-5 +EMAC[s] JOVE.N: 4% JOVE(1)-1 + " USD.17: 2% USD:17-1 + " SMM.12A: 97% SMM:12-23 +Emacs, Jonathan's Own Version of JOVE.N: 2% JOVE(1)-1 + " USD.17: 2% USD:17-1 +Emacs front-end for MH USD.08: 70% USD:8-86 +embolden MS.7: 21% MS(7)-1 + " USD.24: 28% USD:24-10 +EMFILE - Too many open file[s] INTRO.2: 26% INTRO(2)-2 +EMLINK - Too many links INTRO.2: 33% INTRO(2)-3 +Emphasis USD.20: 44% USD:20-4 +EMSGSIZE - Message too long INTRO.2: 39% INTRO(2)-3 +EMT instruction SIGVEC.2: 36% SIGVEC(2)-1 + " SIGNAL.3C: 22% SIGNAL(3C)-1 +Emulex SC-21 and SC-31 controller[s] UP.4: 4% unknown +Emulex SC750 HP.4: 14% HP(4)-1 +Emulex TC-11 controller TM.4: 17% TM(4)-1 +en - Xerox 3 Mb/s Ethernet interface EN.4: 1% EN(4)-1 +ENAMETOOLONG - File name too long INTRO.2: 58% INTRO(2)-5 +Encapsulation[s] SMM.13: 83% SMM:13-28 +Encapsulation, Message BURST.N: 43% BURST(1)-1 + " FORW.N: 84% FORW(1)-3 + " USD.08: 14% USD:8-14 + " USD.08: 23% USD:8-25 +encapsulation[s], trailer ARP.4P: 70% ARP(4P)-2 + " ARP.4P: 91% ARP(4P)-2 + " ARP.8C: 77% ARP(8C)-1 + " IFCONFIG.8C: 48% IFCONFIG(8C)-1 + " SMM.13: 79% SMM:13-27 + " SMM.13: 80% SMM:13-27 + " SMM.13: 88% SMM:13-30 + " SMM.15: 38% SMM:15-12 + " SMM.15: 38% SMM:15-12 + " SMM.15: 94% SMM:15-26 + " SMM.15: 95% SMM:15-26 + " VV.4: 94% VV(4)-1 +enclosing loop[s] PS2.08: 38% PS2:8-6 + " PS2.08: 38% PS2:8-6 + " PS2.08: 38% PS2:8-6 +encode/decode, crypt - CRYPT.1: 2% CRYPT(1)-1 +encrypt SMM.12A: 64% SMM:12-15 +encrypt and decrypt the contents of the file USD.16: 5% USD:16-2 +encrypted file[s] ED.1: 2% ED(1)-1 + " SMM.17: 67% SMM:17-2 + " CRYPT.1: 26% CRYPT(1)-1 +encrypted password[s] ADDUSER.8: 27% ADDUSER(8)-1 + " CRYPT.3: 45% CRYPT(3)-1 + " GETGRENT.3: 49% GETGRENT(3)-1 + " GROUP.5: 59% GROUP(5)-1 + " PASSWD.5: 60% PASSWD(5)-1 + " SMM.17: 77% SMM:17-3 + " SMM.18: 89% SMM:18-5 + " PASSWD.5: 14% PASSWD(5)-1 +Encryption ED.1: 87% ED(1)-5 +encryption, crypt, setkey, encrypt - DES CRYPT.3: 2% CRYPT(3)-1 +encryption, password CRYPT.3: 14% CRYPT(3)-1 +encryption algorithm SMM.17: 77% SMM:17-3 + " SMM.18: 36% SMM:18-3 + " SMM.18: 42% SMM:18-3 +END LD.1: 23% LD(1)-1 +end statement[s] PS2.06: 15% PS2:6-7 + " PS2.06: 16% PS2:6-7 + " PS2.06: 26% PS2:6-10 + " PS2.06: 66% PS2:6-23 + " PS2.06: 68% PS2:6-23 +end-of-file PS1.16: 50% PS1:16-7 +end-of-file, offset relative to PS1.06: 68% PS1:6-31 +end-of-file condition PS1.04: 57% PS1:4-29 + " PS1.04: 57% PS1:4-29 + " PS1.04: 57% PS1:4-29 + " PS1.06: 84% PS1:6-36 + " PS2.01: 75% PS2:1-12 +END= PS1.02: 65% PS1:2-22 +endfile statement[s] PS1.03: 25% PS1:3-4 + " PS1.03: 82% PS1:3-11 + " PS1.03: 86% PS1:3-11 +endmarker PS1.15: 15% PS1:15-4 + " PS1.15: 24% PS1:15-7 +ends, endifs, endsw shell command CSH.1: 53% CSH(1)-11 +END, pattern USD.19: 29% USD:19-3 +end marker[s] USD.32: 13% USD:32-3 + " USD.32: 71% USD:32-10 + " USD.32: 72% USD:32-11 +End of a File, Adding Something to the USD.13: 74% USD:13-12 +end of a line USD.12: 85% USD:12-9 +end of a sentence USD.24: 34% USD:24-12 +end of file, print lines near TAIL.1: 6% unknown +end of file character STTY.1: 37% STTY(1)-2 +end of the last file USD.24: 51% USD:24-17 +End this page, but do not begin the next page, .ep USD.23: 26% USD:23-4 +END-OF-FILE IOINIT.3F: 34% IOINIT(3F)-1 + " FOPEN.3S: 42% FOPEN(3S)-1 + " FSEEK.3S: 44% FSEEK(3S)-1 + " USD.01: 19% USD:1-3 + " USD.04: 76% USD:4-37 +end-of-file (ESC >) USD.17: 68% USD:17-31 +end-of-file character CSH.1: 12% CSH(1)-3 + " PTY.4: 92% PTY(4)-2 +end-of-file condition GETC.3S: 74% GETC(3S)-1 +end-of-file indication VFORK.2: 96% VFORK(2)-1 + " FERROR.3S: 42% FERROR(3S)-1 +end-of-file mark[s] MT.4: 75% MT(4)-1 + " MT.1: 51% unknown + " TOPEN.3F: 71% TOPEN(3F)-2 +end-of-line (C-E) USD.17: 68% USD:17-31 +End-of-tape (EOT) TOPEN.3F: 89% TOPEN(3F)-2 +end-of-window (ESC .) USD.17: 68% USD:17-31 +endfsent GETFSENT.3: 7% GETFSENT(3)-1 +endgrent GETGRENT.3: 5% GETGRENT(3)-1 +endhostent GETHOSTBYNAME.3N: 3% GETHOSTBYNAME(3) +ending, file name CI.N: 2% CI(1)-1 + " CO.N: 1% CO(1)-1 + " RCSDIFF.N: 14% RCSDIFF(1)-1 + " RCSMERGE.N: 16% RCSMERGE(1)-1 +ending, Lines REMOTE.5: 9% REMOTE(5)-1 + " USD.14: 79% USD:14-19 +ending line[s] SMM.07: 76% SMM:7-1 + " TERMCAP.5: 52% TERMCAP(5)-8 + " USD.12: 30% USD:12-4 + " USD.12: 43% USD:12-5 + " USD.14: 86% USD:14-21 + " USD.31: 51% USD:31-9 + " SMM.07A: 68% SMM:07-28 +endnetent GETNETENT.3N: 5% GETNETENT(3N)-1 +endnote[s] USD.21: 48% USD:21-2 +endprotoent GETPROTOENT.3N: 6% GETPROTOENT(3N) +endpwent GETPWENT.3: 4% GETPWENT(3)-1 +endservent GETSERVENT.3N: 5% GETSERVENT(3N)- +endttyent GETTTYENT.3: 2% GETTTYENT(3)-1 +endusershell GETUSERSHELL.3: 10% GETUSERSHELL(3) +endwin() PS1.18: 22% PS1:18-6 + " PS1.18: 48% PS1:18-14 +ENETDOWN PS1.08: 16% PS1:8-6 +ENETUNREACH PS1.08: 16% PS1:8-7 +enemy ship SAIL.6: 21% SAIL(6)-3 + " SAIL.6: 49% SAIL(6)-6 + " SAIL.6: 64% SAIL(6)-8 +Energy USD.34: 28% USD:34-4 + " USD.34: 28% USD:34-4 + " USD.34: 45% USD:34-6 +ENETDOWN - Network is down INTRO.2: 48% INTRO(2)-4 +ENETRESET - Network dropped connection on reset INTRO.2: 49% INTRO(2)-4 +ENETUNREACH - Network is unreachable INTRO.2: 48% INTRO(2)-4 +ENFILE - File table overflow INTRO.2: 26% INTRO(2)-2 +English Text USD.17: 24% USD:17-11 + " USD.30: 24% USD:30-3 + " USD.32: 7% USD:32-2 +English words LOOKBIB.1: 37% LOOKBIB(1)-1 +enhancements, performance MH-PROFILE.N: 75% MH-PROFILE(5)-5 + " SMM.12: 93% SMM:12-1 + " SMM.13: 86% SMM:13-29 + " SMM.14: 74% SMM:14-11 + " USD.08: 73% USD:8-89 + " SMM.12A: 93% SMM:12-22 +Enigma CRYPT.1: 38% CRYPT(1)-1 +ENOBUFS - No buffer space available INTRO.2: 51% INTRO(2)-4 +ENODEV SMM.13: 48% SMM:13-17 + " SMM.12A: 61% SMM:12-14 +ENODEV - No such device INTRO.2: 22% INTRO(2)-2 +ENOENT INTRO.2: 6% INTRO(2)-1 +ENOENT - No such file or directory INTRO.2: 6% INTRO(2)-1 +ENOEXEC - Exec format error INTRO.2: 12% INTRO(2)-1 +ENOMEM - Not enough memory INTRO.2: 16% INTRO(2)-2 +ENOPROTOOPT - Option not supported by protocol INTRO.2: 42% INTRO(2)-4 +ENOSPC - No space left on device INTRO.2: 30% INTRO(2)-3 +ENOTBLK - Block device required INTRO.2: 19% INTRO(2)-2 +ENOTCONN - Socket is not connected INTRO.2: 53% INTRO(2)-4 +ENOTDIR - Not a directory INTRO.2: 23% INTRO(2)-2 +ENOTEMPTY - Directory not empty INTRO.2: 60% INTRO(2)-5 +ENOTSOCK - Socket operation on non-socket INTRO.2: 38% INTRO(2)-3 +ENOTTY - Inappropriate ioctl for device INTRO.2: 28% INTRO(2)-3 +enroll - secret mail XSEND.1: 6% XSEND(1)-1 +Entering text USD.14: 1% USD:14-2 + " USD.14: 16% USD:14-5 + " USD.14: 97% USD:14-23 + " USD.14: 16% USD:14-5 +Enterprise USD.34: 2% USD:34-1 + " USD.34: 94% USD:34-12 +entry field PS2.09: 3% PS2:9-7 + " PS2.09: 6% PS2:9-10 + " PS2.09: 37% PS2:9-66 + " PS2.09: 60% PS2:9-104 + " PS2.09: 60% PS2:9-104 +entry point[s] PS1.02: 40% PS1:2-14 + " PS1.02: 50% PS1:2-17 + " PS1.02: 51% PS1:2-17 + " PS1.02: 51% PS1:2-17 + " PS1.02: 64% PS1:2-21 + " PS1.10: 65% PS1:10-13 + " PS2.03: 41% PS2:3-7 + " PS2.04: 42% PS2:4-5 + " PS2.04: 43% PS2:4-5 + " PS2.09: 35% PS2:9-63 + " PS2.09: 36% PS2:9-65 + " PS2.09: 36% PS2:9-65 + " PS2.09: 36% PS2:9-65 + " PS2.09: 37% PS2:9-66 + " PS2.09: 37% PS2:9-66 + " PS2.09: 62% PS2:9-107 +Enumeration Constant[s] PS1.01: 91% PS1:1-31 + " PS1.01: 5% PS1:1-3 +Enumeration Declarations PS1.01: 24% PS1:1-7 + " PS1.01: 53% PS1:1-17 + " PS1.01: 74% PS1:1-25 +EOF PS2.03: 8% PS2:3-2 + " PS2.03: 15% PS2:3-3 + " PS2.03: 18% PS2:3-4 + " PS2.03: 23% PS2:3-4 + " PS2.03: 32% PS2:3-6 + " PS2.03: 33% PS2:3-6 + " PS2.03: 74% PS2:3-11 + " PS2.03: 74% PS2:3-11 + " PS2.03: 81% PS2:3-13 + " PS2.03: 85% PS2:3-14 + " PS2.03: 91% PS2:3-15 + " PS2.03: 93% PS2:3-15 + " PS2.09: 46% PS2:9-82 + " PS2.10: 86% PS2:10-77 + " PS1.18: 45% PS1:18-13 +entry[s], ARP ARP.4P: 31% ARP(4P)-1 + " ARP.4P: 32% ARP(4P)-1 + " ARP.4P: 33% ARP(4P)-1 + " ARP.8C: 27% ARP(8C)-1 + " ARP.8C: 36% ARP(8C)-1 + " ARP.8C: 51% ARP(8C)-1 +entry, data USD.28: 20% USD:28-4 + " USD.29: 18% USD:29-3 + " USD.29: 95% USD:29-1 +entry, file table SMM.02: 87% SMM:2-30 +entry[s], function GPROF.1: 23% GPROF(1)-1 +entry, graph profile GPROF.1: 43% GPROF(1)-1 + " GPROF.1: 47% GPROF(1)-1 + " GPROF.1: 52% GPROF(1)-1 + " GPROF.1: 55% GPROF(1)-1 +entry, header SMM.07: 92% SMM:7-1 + " SMM.07: 93% SMM:7-1 + " SMM.07A: 82% SMM:07-37 + " SMM.07A: 82% SMM:07-37 +entry, i-node DIR.5: 10% DIR(5)-1 +entry[s], index USD.22: 44% USD:22-8 +entries, individual SMM.10: 22% SMM:10-6 + " SMM.19: 23% SMM:19-7 +entry, input table USD.28: 33% USD:28-5 + " USD.28: 34% USD:28-5 + " USD.28: 34% USD:28-5 +entry, page table SMM.13: 14% SMM:13-6 + " SMM.13: 46% SMM:13-16 + " SMM.13: 52% SMM:13-18 +entry[s], password file GETLOGIN.3: 29% GETLOGIN(3)-1 + " GETPWENT.3: 5% GETPWENT(3)-1 + " INTRO.3: 51% INTRO(3)-4 + " REXECD.8C: 73% REXECD(8C)-1 + " RSHD.8C: 80% RSHD(8C)-2 +entry[s], process LASTCOMM.1: 45% LASTCOMM(1)-1 + " SMM.13: 7% SMM:13-4 +entry[s], process table SMM.13: 11% SMM:13-5 +entry[s], Reference USD.31: 12% USD:31-2 + " USD.31: 30% USD:31-5 + " USD.31: 80% USD:31-13 +entry[s], routing INET.4F: 71% INET(4F)-1 + " INTRO.4N: 54% INTRO(4N)-2 + " INTRO.4N: 57% INTRO(4N)-2 + " SMM.13: 61% SMM:13-21 + " SMM.15: 77% SMM:15-22 +entry[s], stab DBX.5: 11% DBX(5)-1 + " DBX.5: 35% DBX(5)-1 + " DBX.5: 95% DBX(5)-5 + " STAB.5: 80% STAB(5)-2 +entry[s], termcap MAP3270.5: 13% MAP3270(5)-1 + " TERMCAP.5: 13% TERMCAP(5)-3 + " TERMCAP.5: 32% TERMCAP(5)-6 + " TERMCAP.5: 98% TERMCAP(5)-14 + " TN3270.1: 55% TN3270(1)-1 + " USD.09: 82% USD:9-10 + " WINDOW.1: 15% WINDOW(1)-1 + " WINDOW.1: 98% WINDOW(1)-7 +entry[s], text SMM.13: 5% SMM:13-3 + " SMM.13: 45% SMM:13-16 + " SMM.13: 48% SMM:13-17 +entry, top SMM.19: 32% SMM:19-10 + " SMM.19: 33% SMM:19-10 + " SMM.19: 33% SMM:19-10 +entry file LOOKBIB.1: 43% LOOKBIB(1)-1 + " USD.30: 15% USD:30-2 + " USD.30: 17% USD:30-2 + " USD.30: 37% USD:30-4 + " USD.30: 42% USD:30-5 + " LOOKBIB.1: 43% LOOKBIB(1)-1 +entry point[s] ADB.1: 79% ADB(1)-5 + " ADB.1: 89% ADB(1)-5 + " A_OUT.5: 9% A.OUT(5)-1 + " DBX.5: 18% DBX(5)-1 + " DBX.5: 19% DBX(5)-1 + " EXECL.3: 19% EXECL(3)-1 + " LD.1: 10% LD(1)-1 + " LD.1: 43% LD(1)-1 + " SMM.15: 28% SMM:15-9 +Enumeration Declarations SMM.19: 20% SMM:19-6 +environ EXECL.3: 2% EXECL(3)-1 + " EXECVE.2: 65% EXECVE(2)-2 + " GETENV.3: 46% + " LOGIN.1: 49% LOGIN(1)-1 +environ - user environment ENVIRON.7: 3% ENVIRON(7)-1 +Environment[s] SH.1: 54% SH(1)-4 + " USD.25: 81% USD:25-12 +environment, install-mh - initialize the MH INSTALL-MH.N: 3% INSTALL-MH(8)-1 +environment[s], memory-poor SMM.01: 80% SMM:1-48 + " SMM.07: 31% SMM:7-1 + " SMM.07A: 28% SMM:07-14 +environment, networking SMM.02: 36% SMM:2-11 + " SMM.07: 98% SMM:7-1 + " SMM.07A: 87% SMM:07-38 +environment, printenv - print out the PRINTENV.1: 11% unknown +environment, process EXECL.3: 60% EXECL(3)-1 +environment, SHELL PDX.1: 78% PDX(1)-3 + " TERM.7: 12% TERM(7)-1 + " USD.04: 35% USD:4-16 + " USD.17: 92% USD:17-44 + " TSET.1: 40% TSET(1)-2 +environment, user ENVIRON.7: 3% ENVIRON(7)-1 + " SU.1: 32% SU(1)-1 + " SMM.07A: 80% SMM:07-36 +environment name[s] GETENV.3: 16% GETENV(3)-1 + " IOINIT.3F: 95% IOINIT(3F)-2 + " USD.25: 82% USD:25-12 +environment variable[s] CSH.1: 69% CSH(1)-14 + " CSH.1: 77% CSH(1)-17 + " GETENV.3F: 15% GETENV(3F)-1 + " IOINIT.3F: 44% IOINIT(3F)-1 + " USD.08: 32% USD:8-36 + " USD.08: 71% USD:8-87 + " USD.08: 72% USD:8-88 + " USD.08: 73% USD:8-89 + " USD.11: 81% USD:11-12 + " USD.11: 82% USD:11-12 + " SMM.12A: 29% SMM:12-7 + " GETENV.3: 64% + " PRINTENV.1: 38% unknown +environment variables, getenv - get value of GETENV.3F: 10% GETENV(3F)-1 +environment variable MANPATH SMM.12A: 39% SMM:12-9 +Envp EXECL.3: 59% EXECL(3)-1 + " EXECVE.2: 26% EXECVE(2)-1 +ENXIO SMM.13: 32% SMM:13-12 + " SMM.12A: 58% SMM:12-13 +ENXIO - No such device or address INTRO.2: 10% INTRO(2)-1 +EOF USD.01: 18% USD:1-3 + " USD.04: 76% USD:4-37 +eof character TELNET.1C: 70% TELNET(1C)-3 + " TELNET.1C: 70% TELNET(1C)-3 + " TELNET.1C: 98% TELNET(1C)-4 +eof-proces USD.17: 68% USD:17-32 +EOPNOTSUPP - Operation not supported on socket INTRO.2: 44% INTRO(2)-4 +EPERM SMM.13: 20% SMM:13-8 + " SMM.12A: 59% SMM:12-14 + " INTRO.2: 5% INTRO(2)-1 +EPERM - Not owner INTRO.2: 5% INTRO(2)-1 +EPFNOSUPPORT - Protocol family not supported INTRO.2: 44% INTRO(2)-4 +EPIPE - Broken pipe INTRO.2: 34% INTRO(2)-3 +EPROTONOSUPPORT - Protocol not supported INTRO.2: 42% INTRO(2)-4 +EPROTOTYPE - Protocol wrong type for socket INTRO.2: 40% INTRO(2)-4 +Epstein, Bob SMM.16: 89% SMM:16-12 + " USD.22: 98% USD:22-19 + " USD.23: 74% USD:23-10 +EQN USD.26: 30% USD:26-3 + " USD.26: 30% USD:26-3 + " USD.26: 32% USD:26-3 + " USD.26: 48% USD:26-4 + " USD.26: 59% USD:26-5 + " USD.27: 5% USD:27-1 + " USD.27: 6% USD:27-1 + " USD.27: 6% USD:27-1 + " USD.27: 8% USD:27-1 + " USD.27: 8% USD:27-1 + " USD.27: 9% USD:27-2 + " USD.27: 10% USD:27-2 + " USD.27: 13% USD:27-2 + " USD.27: 16% USD:27-2 + " USD.27: 16% USD:27-2 + " USD.27: 18% USD:27-2 + " USD.27: 18% USD:27-2 + " USD.27: 19% USD:27-3 + " USD.27: 22% USD:27-3 + " USD.27: 26% USD:27-3 + " USD.27: 28% USD:27-4 + " USD.27: 28% USD:27-4 + " USD.27: 30% USD:27-4 + " USD.27: 37% USD:27-5 + " USD.27: 40% USD:27-5 + " USD.27: 52% USD:27-6 + " USD.27: 67% USD:27-7 + " USD.27: 70% USD:27-8 + " USD.27: 73% USD:27-8 + " USD.27: 76% USD:27-8 + " USD.27: 76% USD:27-8 + " USD.27: 76% USD:27-8 + " USD.27: 82% USD:27-9 + " USD.27: 86% USD:27-9 + " USD.27: 89% USD:27-10 + " USD.27: 90% USD:27-10 + " USD.27: 93% USD:27-10 + " USD.27: 93% USD:27-10 + " USD.27: 95% USD:27-10 + " USD.27: 96% USD:27-10 + " USD.27: 96% USD:27-10 + " TBL.1: 85% TBL(1)-1 + " USD.22: 73% USD:22-13 +eoln PS1.04: 57% PS1:4-30 +eqn[s], -ms and USD.27: 52% USD:27-6 +eqn, debugging USD.27: 88% USD:27-10 +eqn, example USD.01: 71% USD:1-11 +eqn, learning about LEARN.1: 35% LEARN(1)-1 +eqn, neqn, checkeq - typeset mathematics EQN.1: 1% EQN(1)-1 +eqn and tbl USD.28: 44% USD:28-7 +eqn delimiters USD.28: 10% USD:28-2 + " USD.28: 46% USD:28-7 + " USD.32: 72% USD:32-11 +eqn formal grammar USD.26: 60% USD:26-5 +eqn language USD.02: 5% USD:2-1 + " USD.02: 41% USD:2-5 + " USD.26: 85% USD:26-7 + " USD.27: 5% USD:27-1 +eqn paper USD.30: 61% USD:30-7 + " USD.30: 63% USD:30-7 + " USD.30: 92% USD:30-11 +eqn reference manual USD.27: 0% USD:27-1 +eqnchar - special character definitions for eqn EQNCHAR.7: 64% +Equal width column[s] USD.28: 28% USD:28-5 +equally-spaced words in adjusted line[s] USD.24: 3% USD:24-2 +Equation[s] USD.27: 9% USD:27-2 + " USD.20: 80% USD:20-6 + " USD.22: 73% USD:22-13 +equation, .EN End USD.23: 51% USD:23-7 +equation, .EQ Begin USD.23: 50% USD:23-7 +equations, display USD.27: 1% USD:27-1 + " USD.27: 66% USD:27-7 + " USD.27: 79% USD:27-8 +Equation[s], Shorthand for In-line USD.27: 65% USD:27-7 +Equation number MS.7: 34% MS(7)-2 + " USD.20: 79% USD:20-6 + " USD.20: 80% USD:20-6 + " USD.22: 77% USD:22-15 + " USD.27: 12% USD:27-2 +equation typesetting, a large example USD.27: 79% USD:27-8 +equations within table[s] USD.28: 45% USD:28-7 +equel - Embedded QUEL interface to C PS2.10: 56% PS2:10-50 +Equel run-time support library, libq - PS2.10: 76% PS2:10-68 +EQUEL statement[s] PS2.10: 58% PS2:10-51 + " PS2.10: 59% PS2:10-51 + " PS2.10: 59% PS2:10-51 + " PS2.10: 60% PS2:10-52 + " PS2.10: 61% PS2:10-52 + " PS2.10: 77% PS2:10-69 + " PS2.10: 77% PS2:10-69 +Equivalence Statements PS1.02: 20% PS1:2-8 + " PS1.02: 20% PS1:2-8 + " PS1.02: 21% PS1:2-8 + " PS1.02: 33% PS1:2-12 +equivalenced variables F77.1: 62% F77(1)-2 +ERANGE EXP.3M: 39% EXP(3M)-1 + " IEEE.3M: 61% IEEE(3M)-1 + " INFNAN.3M: 86% INFNAN(3M)-1 + " INFNAN.3M: 95% INFNAN(3M)-2 +ERANGE - Result too large INTRO.2: 35% INTRO(2)-3 +Erase PLOT.3F: 11% PLOT(3F)-1 + " PLOT.3X: 9% PLOT(3X)-1 +erase and kill processing STTY.1: 15% STTY(1)-1 +Erase Character TELNET.1C: 42% TELNET(1C)-2 + " GETTYTAB.5: 94% GETTYTAB(5)-3 + " STTY.1: 26% STTY(1)-1 + " TSET.1: 3% TSET(1)-1 + " TSET.1: 48% TSET(1)-2 + " TTY.4: 22% TTY(4)-3 + " USD.01: 15% USD:1-3 +erase() PS1.18: 37% PS1:18-10 +erase-buffer USD.17: 68% USD:17-32 +Erasing Text USD.17: 9% USD:17-4 +erasechar() PS1.18: 48% PS1:18-14 +ERR= PS1.02: 65% PS1:2-22 +erfs, erfc - error function ERF.3M: 8% +EROFS - Read-only file system INTRO.2: 33% INTRO(2)-3 +errno INTRO.2: 4% INTRO(2)-1 + " PERROR.3: 51% PERROR(3)-1 + " PS1.06: 5% PS1:6-5 + " PS1.08: 23% PS1:8-8 +ERROR[s] PS2.05: 85% PS2:5-6 + " PS2.05: 93% PS2:5-6 + " PS2.09: 25% PS2:9-49 + " PS2.10: 2% PS2:10-4 + " PS2.10: 3% PS2:10-4 + " PS2.10: 3% PS2:10-4 + " PS2.10: 3% PS2:10-4 + " PS2.10: 3% PS2:10-5 + " PS2.10: 3% PS2:10-5 + " PS2.10: 3% PS2:10-6 + " PS2.10: 82% PS2:10-74 + " PS2.10: 82% PS2:10-76 + " PS2.10: 84% PS2:10-76 + " PS2.10: 86% PS2:10-78 + " PS2.10: 88% PS2:10-78 + " PS2.10: 89% PS2:10-80 + " PS2.10: 90% PS2:10-80 + " PS2.10: 91% PS2:10-82 + " PS2.10: 92% PS2:10-82 + " PS2.10: 93% PS2:10-84 +errno PTRACE.2: 95% PTRACE(2)-2 +Error[s] SYSLOG.3: 28% SYSLOG(3)-1 + " SMM.12A: 16% SMM:12-5 +error[s], .../files/error7_? - files with INGRES PS2.10: 75% PS2:10-66 +error, bus PS2.09: 46% PS2:9-81 + " PS1.11a: 37% PS1:11-3 + " PS1.11a: 38% PS1:11-3 + " PS1.11a: 63% PS1:11-4 +errors, asynchronous GETSOCKOPT.2: 87% GETSOCKOPT(2)-2 +error[s], C compilation USD.17: 83% USD:17-40 +error, correctable ECC FORMAT.8V: 12% FORMAT(8V)-1 +error, device INIT.8: 91% unknown +error[s], disk surface SMM.01: 14% SMM:1-10 +error[s], hard I/O SMM.01: 95% SMM:1-63 + " SMM.13: 91% SMM:13-31 +error[s], I/O VHANGUP.2: 64% VHANGUP(2)-1 + " INTRO.2: 9% INTRO(2)-1 +error[s], program SIGNAL.3C: 6% SIGNAL(3C)-1 +error, recoverable ECC HK.4: 65% HK(4)-2 + " HP.4: 83% HP(4)-4 + " UP.4: 78% UP(4)-3 +error[s], Run-time SMM.22: 13% SMM:22-2 +errors, compilation PS1.14: 52% PS1:14-8 + " PS2.09: 77% PS2:9-126 +error, EWOULDBLOCK PS1.06: 55% PS1:6-26 +errors, I/O PS1.03: 39% PS1:3-6 + " PS1.03: 40% PS1:3-6 + " PS1.04: 47% PS1:4-25 + " PS1.04: 49% PS1:4-26 + " PS2.01: 33% PS2:1-5 +error[s], INGRES PS2.10: 2% PS2:10-4 + " PS2.10: 75% PS2:10-66 + " PS2.10: 77% PS2:10-69 +error[s], Run-time PS1.04: 49% PS1:4-26 + " PS1.04: 49% PS1:4-26 + " PS1.04: 49% PS1:4-26 + " PS2.10: 56% PS2:10-50 + " PS2.10: 58% PS2:10-51 +error[s], runtime PS1.04: 27% PS1:4-15 + " PS1.04: 84% PS1:4-43 + " PS1.04: 84% PS1:4-43 + " PS1.04: 87% PS1:4-44 +error[s], Syntax PS1.04: 18% PS1:4-10 + " PS1.04: 23% PS1:4-12 + " PS1.04: 32% PS1:4-18 + " PS1.04: 35% PS1:4-19 + " PS1.05: 54% PS1:5-8 + " PS1.15: 56% PS1:15-16 + " PS1.15: 57% PS1:15-17 + " PS1.15: 63% PS1:15-18 + " PS1.15: 64% PS1:15-18 + " PS1.15: 64% PS1:15-18 + " PS1.15: 72% PS1:15-21 + " PS1.15: 92% PS1:15-28 + " PS2.07: 57% PS2:7-28 + " PS2.08: 69% PS2:8-10 + " PS2.09: 40% PS2:9-71 + " PS2.10: 86% PS2:10-78 + " PS2.10: 86% PS2:10-78 + " PS2.10: 87% PS2:10-78 + " PS2.10: 87% PS2:10-78 + " PS2.10: 87% PS2:10-78 + " PS2.10: 87% PS2:10-78 + " PS2.10: 87% PS2:10-78 + " PS2.10: 87% PS2:10-78 + " PS2.10: 87% PS2:10-78 + " PS2.10: 87% PS2:10-78 + " PS2.10: 87% PS2:10-78 + " PS2.10: 87% PS2:10-78 + " PS2.10: 87% PS2:10-78 + " PS2.10: 87% PS2:10-78 + " PS2.10: 87% PS2:10-78 + " PS2.10: 88% PS2:10-78 + " PS2.10: 88% PS2:10-78 + " PS2.10: 88% PS2:10-78 + " PS2.10: 88% PS2:10-78 +error code PS1.03: 16% PS1:3-4 + " PS1.06: 5% PS1:6-5 + " PS1.08: 63% PS1:8-25 + " PS2.03: 74% PS2:3-11 + " PS2.05: 74% PS2:5-5 + " PS2.09: 30% PS2:9-57 +error condition[s] PS1.06: 5% PS1:6-5 + " PS1.08: 5% PS1:8-3 + " PS1.09: 29% PS1:9-3 + " PS1.10: 51% PS1:10-10 + " PS1.15: 89% PS1:15-28 +error diagnostic[s] PS1.01: 82% PS1:1-28 + " PS1.04: 32% PS1:4-18 + " PS1.04: 32% PS1:4-18 + " PS1.04: 40% PS1:4-21 + " PS1.04: 40% PS1:4-21 + " PS1.04: 79% PS1:4-41 + " PS1.05: 93% PS1:5-13 +error file[s] PS1.17: 92% PS1:17-6 + " PS2.03: 16% PS2:3-3 + " PS2.03: 34% PS2:3-6 + " PS2.03: 81% PS2:3-13 +error handler[s] PS2.09: 67% PS2:9-113 + " PS2.09: 68% PS2:9-113 + " PS2.09: 68% PS2:9-113 + " PS2.09: 68% PS2:9-115 + " PS2.09: 68% PS2:9-115 + " PS2.09: 69% PS2:9-115 + " PS2.09: 69% PS2:9-115 + " PS2.09: 69% PS2:9-115 + " PS2.09: 69% PS2:9-116 + " PS2.09: 69% PS2:9-116 + " PS2.10: 82% PS2:10-75 +error handler function PS2.09: 67% PS2:9-113 + " PS2.09: 68% PS2:9-115 + " PS2.09: 69% PS2:9-115 +Error handling PS1.15: 7% PS1:15-2 + " PS1.15: 23% PS1:15-7 + " PS1.15: 55% PS1:15-16 + " PS1.15: 55% PS1:15-16 + " PS1.15: 56% PS1:15-16 + " PS2.03: 20% PS2:3-4 + " PS2.09: 67% PS2:9-113 +error message[s] PS1.02: 42% PS1:2-14 + " PS1.03: 40% PS1:3-6 + " PS1.03: 68% PS1:3-8 + " PS1.04: 17% PS1:4-10 + " PS1.04: 40% PS1:4-21 + " PS1.04: 41% PS1:4-22 + " PS1.04: 42% PS1:4-22 + " PS1.04: 45% PS1:4-24 + " PS1.05: 54% PS1:5-8 + " PS1.05: 55% PS1:5-8 + " PS1.14: 97% PS1:14-15 + " PS1.15: 57% PS1:15-17 + " PS1.15: 64% PS1:15-18 + " PS2.03: 28% PS2:3-5 + " PS2.07: 39% PS2:7-17 + " PS2.09: 21% PS2:9-39 + " PS2.09: 21% PS2:9-42 + " PS2.09: 22% PS2:9-43 + " PS2.09: 29% PS2:9-55 + " PS2.09: 38% PS2:9-67 + " PS2.09: 69% PS2:9-115 + " PS2.09: 69% PS2:9-115 + " PS2.09: 69% PS2:9-116 + " PS2.09: 97% PS2:9-152 + " PS2.10: 61% PS2:10-52 + " PS2.10: 61% PS2:10-52 + " PS2.10: 61% PS2:10-52 + " PS2.10: 61% PS2:10-52 + " PS2.10: 65% PS2:10-56 + " PS2.10: 75% PS2:10-66 + " PS2.10: 75% PS2:10-66 + " PS2.10: 77% PS2:10-68 + " PS2.10: 77% PS2:10-69 + " PS2.10: 77% PS2:10-69 + " PS2.10: 77% PS2:10-69 + " PS2.10: 82% PS2:10-75 + " PS2.10: 82% PS2:10-75 + " PS2.10: 82% PS2:10-75 + " PS2.10: 83% PS2:10-76 + " PS2.10: 91% PS2:10-82 + " PS2.10: 93% PS2:10-84 +error message summary, Decomposition PS2.10: 92% PS2:10-83 +error message summary, One Variable Query Processor PS2.10: 91% PS2:10-82 +error message summary, Query Modification PS2.10: 89% PS2:10-80 +error number[s] PS1.03: 40% PS1:3-6 + " PS1.03: 40% PS1:3-6 + " PS1.03: 41% PS1:3-6 + " PS1.03: 68% PS1:3-9 + " PS1.03: 68% PS1:3-9 + " PS1.08: 23% PS1:8-8 + " PS1.08: 27% PS1:8-10 + " PS2.03: 43% PS2:3-7 + " PS2.03: 43% PS2:3-7 + " PS2.10: 61% PS2:10-52 + " PS2.10: 61% PS2:10-52 + " PS2.10: 61% PS2:10-52 + " PS2.10: 75% PS2:10-66 + " PS2.10: 75% PS2:10-66 + " PS2.10: 75% PS2:10-66 + " PS2.10: 77% PS2:10-69 + " PS2.10: 77% PS2:10-69 + " PS2.10: 77% PS2:10-69 + " PS2.10: 82% PS2:10-75 + " PS2.10: 82% PS2:10-75 +error on create if file exist[s] PS1.06: 59% PS1:6-28 +error recovery PS1.04: 37% PS1:4-20 + " PS1.04: 37% PS1:4-20 + " PS1.15: 26% PS1:15-7 + " PS1.15: 33% PS1:15-9 + " PS1.15: 62% PS1:15-18 + " PS1.15: 72% PS1:15-21 + " PS1.15: 82% PS1:15-24 + " PS1.15: 93% PS1:15-28 +Error return[s] PS1.06: 53% PS1:6-25 + " PS2.01: 28% PS2:1-5 + " PS2.01: 56% PS2:1-8 + " PS2.10: 82% PS2:10-74 + " PS2.10: 82% PS2:10-75 +error rule[s] PS1.15: 57% PS1:15-16 + " PS1.15: 58% PS1:15-17 + " PS1.15: 58% PS1:15-17 + " PS1.15: 59% PS1:15-17 + " PS1.15: 59% PS1:15-17 +error status PS1.07a: 63% PS1:7-14 + " PS1.07a: 86% PS1:7-22 + " PS1.08: 24% PS1:8-9 + " PS1.08: 25% PS1:8-9 +errors, spelling USD.17: 51% USD:17-22 + " USD.32: 2% USD:32-1 + " SMM.12A: 80% SMM:12-19 +error, standard ECHO.1: 84% + " SETBUF.3S: 38% SETBUF(3S)-1 + " STDIO.3S: 21% STDIO(3S)-1 +error[s], system PERROR.3F: 17% PERROR(3F)-1 + " PERROR.3F: 29% PERROR(3F)-1 + " SMM.07A: 81% SMM:07-36 +error[s], tape HT.4: 72% HT(4)-1 + " MT.4: 56% MT(4)-1 + " RESTORE.8: 61% RESTORE(8)-2 + " TM.4: 58% TM(4)-1 + " UT.4: 63% UT(4)-1 +error[s], transient SMM.07A: 86% SMM:07-38 + " SMM.12A: 65% SMM:12-15 +error[s], traper - trap arithmetic TRAPER.3F: 5% TRAPER(3F)-1 +error[s], typing USD.12: 47% USD:12-5 + " USD.12: 47% USD:12-5 + " USD.13: 33% USD:13-6 + " USD.14: 22% USD:14-6 + " USD.14: 35% USD:14-9 + " USD.14: 54% USD:14-14 + " CSH.1: 15% CSH(1)-3 +error, UNIBUS adapter DH.4: 72% DH(4)-1 + " DHU.4: 58% DHU(4)-1 + " DMF.4: 69% DMF(4)-1 + " DMZ.4: 64% DMZ(4)-1 +error, unrecoverable HP.4: 71% HP(4)-4 +error - analyze and disperse compiler error messages ERROR.1: 0% SMM:1-34 +Error and Echo protocol[s] SMM.13: 85% SMM:13-29 +error code[s] PERROR.3: 86% PERROR(3)-1 + " PERROR.3F: 35% PERROR(3F)-1 + " WAIT.3F: 53% WAIT(3F)-1 + " SMM.12A: 55% SMM:12-13 +error condition[s] INTRO.2: 1% INTRO(2)-1 + " INTRO.2: 9% INTRO(2)-1 + " NDBM.3: 66% NDBM(3)-2 + " PERROR.3F: 39% PERROR(3F)-1 + " SMM.05: 42% SMM:5-9 + " SMM.05: 43% SMM:5-9 + " SMM.05: 43% SMM:5-9 + " SMM.05: 43% SMM:5-9 + " SMM.10: 35% SMM:10-10 + " SYSLOG.3: 29% SYSLOG(3)-1 + " USD.24: 81% USD:24-26 +error detection FORMAT.8V: 11% FORMAT(8V)-1 + " SMM.12A: 67% SMM:12-16 +error diagnostic[s] SMM.12A: 42% SMM:12-10 +error EWOULDBLOCK FCNTL.2: 55% FCNTL(2)-1 + " FLOCK.2: 64% FLOCK(2)-1 + " SMM.15: 21% SMM:15-7 +error handler[s] SMM.13: 53% SMM:13-19 + " SMM.12A: 66% SMM:12-15 +Error handling USD.03: 72% USD:3-18 + " SETJMP.3: 21% SETJMP(3)-1 +error indication PTRACE.2: 94% PTRACE(2)-2 + " SMM.02: 96% SMM:2-33 + " TTY.4: 14% TTY(4)-2 + " FERROR.3S: 62% FERROR(3S)-1 +error message[s] CONFIG.8: 96% CONFIG(8)-1 + " ERROR.1: 8% ERROR(1)-1 + " ERROR.1: 10% ERROR(1)-1 + " ERROR.1: 11% ERROR(1)-1 + " ERROR.1: 11% ERROR(1)-1 + " ERROR.1: 12% ERROR(1)-1 + " ERROR.1: 13% ERROR(1)-1 + " ERROR.1: 14% ERROR(1)-1 + " ERROR.1: 22% ERROR(1)-1 + " ERROR.1: 25% ERROR(1)-1 + " ERROR.1: 28% ERROR(1)-1 + " ERROR.1: 29% ERROR(1)-1 + " ERROR.1: 31% ERROR(1)-1 + " ERROR.1: 33% ERROR(1)-1 + " ERROR.1: 33% ERROR(1)-1 + " ERROR.1: 35% ERROR(1)-1 + " ERROR.1: 36% ERROR(1)-1 + " ERROR.1: 39% ERROR(1)-1 + " ERROR.1: 42% ERROR(1)-1 + " ERROR.1: 43% ERROR(1)-1 + " ERROR.1: 45% ERROR(1)-1 + " ERROR.1: 50% ERROR(1)-2 + " ERROR.1: 51% ERROR(1)-2 + " ERROR.1: 54% ERROR(1)-2 + " ERROR.1: 57% ERROR(1)-2 + " ERROR.1: 58% ERROR(1)-2 + " ERROR.1: 59% ERROR(1)-2 + " ERROR.1: 61% ERROR(1)-2 + " ERROR.1: 65% ERROR(1)-2 + " ERROR.1: 67% ERROR(1)-2 + " ERROR.1: 67% ERROR(1)-2 + " ERROR.1: 73% ERROR(1)-2 + " ERROR.1: 76% ERROR(1)-2 + " ERROR.1: 91% ERROR(1)-3 + " ERROR.1: 92% ERROR(1)-3 + " IMPLOGD.8C: 87% IMPLOGD(8C)-1 + " JOVE.N: 33% JOVE(1)-1 + " JOVE.N: 33% JOVE(1)-1 + " MKSTR.1: 45% MKSTR(1)-1 + " PERROR.3: 20% PERROR(3)-1 + " PERROR.3F: 20% PERROR(3F)-1 + " PI.1: 73% PI(1)-2 + " PRINTCAP.5: 88% PRINTCAP(5)-2 + " SEND.N: 39% SEND(1)-1 + " SMM.01: 33% SMM:1-22 + " SMM.01: 73% SMM:1-45 + " SMM.01: 75% SMM:1-46 + " SMM.02: 12% SMM:2-4 + " SMM.09: 54% SMM:9-12 + " SMM.10: 32% SMM:10-9 + " SMM.10: 70% SMM:10-18 + " SMM.11: 64% SMM:11-9 + " SMM.15: 63% SMM:15-19 + " SMM.19: 5% SMM:19-2 + " SYSLOG.3: 12% SYSLOG(3)-1 + " USD.01: 36% USD:1-6 + " USD.03: 74% USD:3-18 + " USD.04: 75% USD:4-36 + " USD.04: 89% USD:4-41 + " USD.08: 52% USD:8-62 + " USD.12: 60% USD:12-6 + " USD.14: 19% USD:14-6 + " USD.16: 84% USD:16-16 + " USD.16: 84% USD:16-16 + " USD.17: 50% USD:17-22 + " USD.17: 62% USD:17-28 + " USD.24: 81% USD:24-26 + " SMM.07A: 15% SMM:07-9 + " SMM.07A: 23% SMM:07-12 + " SMM.07A: 41% SMM:07-19 + " SMM.07A: 68% SMM:07-28 + " SMM.07A: 83% SMM:07-37 + " SMM.12A: 29% SMM:12-7 + " SMM.12A: 40% SMM:12-9 + " SMM.12A: 46% SMM:12-11 + " SMM.12A: 68% SMM:12-16 + " SMM.12A: 84% SMM:12-20 + " ERROR.1: 6% ERROR(1)-1 +error message file MKSTR.1: 64% MKSTR(1)-1 + " MKSTR.1: 3% MKSTR(1)-1 +Error Message Parsing USD.17: 50% USD:17-22 +error number[s] INTRO.2: 0% INTRO(2)-1 + " INTRO.2: 2% INTRO(2)-1 + " INTRO.2: 3% INTRO(2)-1 + " PERROR.3: 47% PERROR(3)-1 + " PERROR.3F: 27% PERROR(3F)-1 + " RMT.8C: 25% RMT(8C)-1 + " SMM.15: 18% SMM:15-6 +Error output SMM.06: 42% SMM:6-3 + " SMM.06: 42% SMM:6-3 + " USD.24: 11% USD:24-5 + " USD.24: 81% USD:24-26 +error packets SMM.13: 58% SMM:13-20 + " SMM.13: 70% SMM:13-24 + " SMM.13: 81% SMM:13-27 +Error Protocol NS.4F: 70% NS(4F)-1 + " NS.4F: 81% NS(4F)-2 +error recovery SMM.13: 94% SMM:13-32 +error report[s] USD.11: 90% USD:11-14 +ERROR return[s] INTRO.2: 1% INTRO(2)-1 + " SMM.07A: 87% SMM:07-38 +error status GETSOCKOPT.2: 86% GETSOCKOPT(2)-2 + " SMM.13: 8% SMM:13-4 + " SMM.12A: 59% SMM:12-14 +error-handling statement[s] MATH.3M: 76% MATH(3M)-5 + " MATH.3M: 78% MATH(3M)-5 + " MATH.3M: 79% MATH(3M)-5 +error-window-size (variable) USD.17: 68% USD:17-32 +errorbell[s] USD.16: 84% USD:16-16 +errorrc ERROR.1: 47% ERROR(1)-2 +Errors-To: SMM.07A: 23% SMM:07-12 +ESC B USD.17: 24% USD:17-11 + " USD.17: 25% USD:17-11 + " USD.17: 25% USD:17-11 + " USD.17: 59% USD:17-26 +ESC E USD.17: 25% USD:17-12 + " USD.17: 26% USD:17-12 + " USD.17: 73% USD:17-34 +ESC E Move[s] USD.17: 25% USD:17-11 + " USD.17: 25% USD:17-12 + " USD.17: 26% USD:17-12 +ESC F USD.17: 24% USD:17-11 + " USD.17: 24% USD:17-11 + " USD.17: 25% USD:17-11 + " USD.17: 32% USD:17-14 + " USD.17: 73% USD:17-34 +ESC G USD.17: 11% USD:17-5 + " USD.17: 11% USD:17-5 + " USD.17: 11% USD:17-5 + " USD.17: 73% USD:17-34 +ESC Rubout USD.17: 25% USD:17-11 + " USD.17: 25% USD:17-11 + " USD.17: 29% USD:17-13 + " USD.17: 29% USD:17-13 + " USD.17: 32% USD:17-14 + " USD.17: 75% USD:17-35 +ESC Rubout Kill[s] USD.17: 24% USD:17-11 + " USD.17: 25% USD:17-11 + " USD.17: 29% USD:17-13 + " USD.17: 29% USD:17-13 +ESC S USD.17: 84% USD:17-40 + " USD.17: 93% USD:17-45 + " USD.17: 95% USD:17-46 +ESC V USD.17: 39% USD:17-17 + " USD.17: 39% USD:17-17 + " USD.17: 42% USD:17-18 + " USD.17: 46% USD:17-20 + " USD.17: 85% USD:17-41 +ESC W USD.17: 17% USD:17-8 + " USD.17: 17% USD:17-8 + " USD.17: 63% USD:17-28 +ESC X USD.17: 53% USD:17-23 + " USD.17: 55% USD:17-24 + " USD.17: 69% USD:17-32 + " USD.17: 93% USD:17-45 +ESC Y[s] USD.17: 18% USD:17-8 + " USD.17: 18% USD:17-8 + " USD.17: 18% USD:17-8 + " USD.17: 18% USD:17-9 + " USD.17: 80% USD:17-38 + " USD.17: 99% USD:17-48 + " USD.17: 99% USD:17-48 + " USD.17: 99% USD:17-48 + " USD.17: 99% USD:17-48 +Escape USD.04: 76% USD:4-37 + " USD.17: 4% USD:17-2 + " USD.17: 8% USD:17-4 + " USD.17: 55% USD:17-25 +errprint(`fatal error') PS1.17: 92% PS1:17-6 +escapes, Backslash L_SYS.5: 74% L.SYS(5)-3 + " L_SYS.5: 96% L.SYS(5)-4 + " SMM.09: 74% SMM:9-16 +escapes, C OD.1: 24% OD(1)-1 +escape[s], list of mail options, commands, USD.07: 91% USD:7-23 +escape[s], shell USD.16: 21% USD:16-4 + " USD.16: 22% USD:16-4 + " USD.16: 64% USD:16-12 +escape[s], tilde MAIL.1: 65% MAIL(1)-4 + " MAIL.1: 66% MAIL(1)-4 + " MAIL.1: 66% MAIL(1)-4 + " TIP.1C: 27% TIP(1C)-1 + " USD.07: 28% USD:7-8 + " USD.07: 28% USD:7-8 + " USD.07: 39% USD:7-10 + " USD.07: 62% USD:7-15 + " USD.07: 91% USD:7-23 + " USD.07: 97% USD:7-24 +escape character[s] CSH.1: 11% CSH(1)-2 + " MAIL.1: 66% MAIL(1)-4 + " MAIL.1: 77% MAIL(1)-5 + " RLOGIN.1C: 74% RLOGIN(1C)-1 + " RLOGIN.1C: 87% RLOGIN(1C)-1 + " TIP.1C: 69% TIP(1C)-3 + " TN3270.1: 73% TN3270(1)-1 + " USD.07: 39% USD:7-10 + " USD.07: 76% USD:7-18 + " USD.07: 76% USD:7-18 + " USD.24: 18% USD:24-8 + " USD.24: 58% USD:24-19 + " USD.24: 58% USD:24-19 + " USD.24: 58% USD:24-19 + " USD.24: 58% USD:24-19 + " USD.24: 58% USD:24-19 + " WINDOW.1: 11% WINDOW(1)-1 + " WINDOW.1: 20% WINDOW(1)-2 + " WINDOW.1: 77% WINDOW(1)-6 + " WINDOW.1: 77% WINDOW(1)-6 + " SMM.12A: 45% SMM:12-10 + " SMM.12A: 50% SMM:12-12 +escape key CSH.1: 11% CSH(1)-2 + " USD.17: 6% USD:17-3 + " USD.17: 54% USD:17-24 + " WINDOW.1: 24% WINDOW(1)-2 +escape sequence[s] LIB2648.3X: 12% LIB2648(3X)-1 + " MORE.1: 20% MORE(1)-1 + " MORE.1: 20% MORE(1)-1 + " MORE.1: 22% MORE(1)-1 + " MORE.1: 32% MORE(1)-1 + " SED.1: 20% SED(1)-1 + " SMM.09: 46% SMM:9-10 + " TERMCAP.5: 29% TERMCAP(5)-6 + " TERMCAP.5: 83% TERMCAP(5)-12 + " TERMCAP.5: 88% TERMCAP(5)-12 + " TTY.4: 40% TTY(4)-4 + " USD.15: 96% USD:15-27 + " USD.17: 53% USD:17-24 + " USD.24: 63% USD:24-20 + " USD.24: 65% USD:24-21 +escapes, backslash PS1.02: 19% PS1:2-8 + " PS1.02: 19% PS1:2-8 + " PS2.10: 28% PS2:10-27 +escape character[s] PS1.15: 11% PS1:15-3 + " PS1.15: 12% PS1:15-3 + " PS2.08: 62% PS2:8-9 + " PS2.09: 13% PS2:9-25 + " PS2.09: 13% PS2:9-25 + " PS2.09: 25% PS2:9-50 + " PS2.09: 25% PS2:9-50 + " PS2.09: 25% PS2:9-50 + " PS2.09: 26% PS2:9-50 + " PS2.09: 39% PS2:9-69 +escape sequence[s] PS1.01: 4% PS1:1-2 + " PS2.01: 34% PS2:1-5 + " PS2.10: 59% PS2:10-51 +Establishing a stream connection PS1.07a: 76% PS1:7-18 +ETIMEDOUT PS1.08: 16% PS1:8-6 +escaping convention[s] CSH.1: 3% CSH(1)-1 + " USD.13: 15% USD:13-3 +Escaping to a shell USD.15: 39% USD:15-11 +ESHUTDOWN - Can't send after socket shutdown INTRO.2: 54% INTRO(2)-5 +ESOCKTNOSUPPORT - Socket type not supported INTRO.2: 43% INTRO(2)-4 +ESPIPE - Illegal seek INTRO.2: 32% INTRO(2)-3 +ESPIPE error SMM.13: 32% SMM:13-12 + " SMM.12A: 57% SMM:12-13 +ESRCH SMM.13: 20% SMM:13-8 + " SMM.12A: 57% SMM:12-13 +ESRCH - No such process INTRO.2: 7% INTRO(2)-1 +etext LD.1: 23% LD(1)-1 +Eth USD.21: 84% USD:21-3 +Ethernet[s] ARP.4P: 8% ARP(4P)-1 + " SMM.01: 60% SMM:1-38 + " SMM.01: 67% SMM:1-41 + " SMM.01: 69% SMM:1-42 + " SMM.01: 84% SMM:1-50 + " SMM.10: 41% SMM:10-12 + " SMM.13: 72% SMM:13-25 + " SMM.15: 66% SMM:15-20 + " SMM.15: 66% SMM:15-20 + " SMM.12A: 75% SMM:12-17 + " IFCONFIG.8C: 45% IFCONFIG(8C)-1 + " SMM.13: 79% SMM:13-27 + " SMM.13: 79% SMM:13-27 + " SMM.13: 84% SMM:13-28 + " SMM.13: 88% SMM:13-30 +ethernet addresses ARP.8C: 56% ARP(8C)-1 + " DE.4: 21% DE(4)-1 + " EC.4: 29% EC(4)-1 + " EX.4: 28% EX(4)-1 + " IL.4: 24% IL(4)-1 + " IX.4: 34% IX(4)-1 + " QE.4: 53% QE(4)-1 + " SMM.02: 44% SMM:2-13 + " SMM.13: 80% SMM:13-27 + " SMM.13: 90% SMM:13-30 +Ethernet controller SMM.13: 89% SMM:13-30 + " SMM.13: 89% SMM:13-30 + " SMM.13: 90% SMM:13-30 + " SMM.13: 90% SMM:13-31 +Ethernet driver[s] SMM.13: 80% SMM:13-27 + " SMM.13: 83% SMM:13-28 + " SMM.13: 83% SMM:13-28 +Ethernet interface[s] DE.4: 2% DE(4)-1 + " EC.4: 2% EC(4)-1 + " EN.4: 2% EN(4)-1 + " EX.4: 3% EX(4)-1 + " IL.4: 3% IL(4)-1 + " IX.4: 2% IX(4)-1 + " NP.4: 2% NP(4)-1 + " QE.4: 7% QE(4)-1 + " SMM.13: 83% SMM:13-28 +Ethernet interface driver SMM.12A: 73% SMM:12-17 + " SMM.12A: 74% SMM:12-17 + " SMM.12A: 74% SMM:12-17 + " SMM.12A: 75% SMM:12-17 +Ethernet network DE.4: 8% DE(4)-1 + " EC.4: 8% EC(4)-1 + " EN.4: 8% EN(4)-1 + " EX.4: 11% EX(4)-1 + " IL.4: 10% IL(4)-1 + " IX.4: 8% IX(4)-1 + " QE.4: 23% QE(4)-1 +etime, dtime - return elapsed execution time ETIME.3F: 7% ETIME(3F)-1 +ETIMEDOUT - Connection timed out INTRO.2: 55% INTRO(2)-5 +etiquette, USENET USD.10: 0% USD:10-1 +etx TTY.4: 49% TTY(4)-5 +ETXTBSY - Text file busy INTRO.2: 29% INTRO(2)-3 +Euclidean distance, hypot - HYPOT.3M: 4% HYPOT(3M)-1 +Europe SMM.12A: 62% SMM:12-14 +eval - Bourne shell command SH.1: 0% SH(1)-1 +eval shell command CSH.1: 53% CSH(1)-11 +Evaluation and quoting USD.03: 65% USD:3-16 +Evans and Sutherland Picture System 2 PS.4: 6% unknown +evalhook PS2.09: 1% PS2:9-4 +evaluation[s], functional PS2.09: 33% PS2:9-60 + " PS2.09: 33% PS2:9-60 + " PS2.09: 33% PS2:9-60 +evaluation, overflow and divide check in expression PS1.01: 19% PS1:1-6 +evaluation process PS2.09: 30% PS2:9-56 + " PS2.09: 31% PS2:9-57 + " PS2.09: 84% PS2:9-136 +EWOULDBLOCK PS1.06: 41% PS1:6-19 + " PS1.08: 63% PS1:8-25 +EWOULDBLOCK error PS1.06: 55% PS1:6-26 +even footer[s], odd and USD.21: 89% USD:21-3 +even header[s], odd and USD.21: 89% USD:21-3 +Evening L_SYS.5: 21% L.SYS(5)-1 + " L_SYS.5: 30% L.SYS(5)-2 + " SMM.09: 46% SMM:9-10 + " SMM.09: 65% SMM:9-14 + " SMM.09: 66% SMM:9-15 +event number[s] CSH.1: 17% CSH(1)-4 + " CSH.1: 17% CSH(1)-4 + " CSH.1: 17% CSH(1)-4 + " CSH.1: 18% CSH(1)-4 + " CSH.1: 85% CSH(1)-18 +eventual resting place[s] SMM.01: 33% SMM:1-22 + " SMM.01: 34% SMM:1-22 + " USD.15: 36% USD:15-10 +Ew TERMCAP.5: 24% TERMCAP(5)-5 + " TERMCAP.5: 24% TERMCAP(5)-5 +EWOULDBLOCK, error FCNTL.2: 55% FCNTL(2)-1 + " FLOCK.2: 64% FLOCK(2)-1 + " SMM.15: 21% SMM:15-7 + " FLOCK.2: 88% FLOCK(2)-1 + " RECV.2: 41% RECV(2)-1 + " RECV.2: 87% RECV(2)-2 + " TTY.4: 14% TTY(4)-2 +EWOULDBLOCK - Operation would block INTRO.2: 36% INTRO(2)-3 +Ex[s] CTAGS.1: 18% CTAGS(1)-1 + " ENVIRON.7: 63% ENVIRON(7)-1 + " SMM.12A: 16% SMM:12-5 + " SMM.12A: 74% SMM:12-17 +ex, edit - text editor EX.1: 1% EX(1)-1 +ex[s], line addressing primitives in USD.16: 23% USD:16-4 +ex, startup file for HIER.7: 75% HIER(7)-5 +ex[s], text editor USD.14: 0% USD:14-1 + " USD.15: 1% USD:15-1 + " USD.15: 73% USD:15-21 + " FMT.1: 64% FMT(1)-1 + " EX.1: 6% EX(1)-1 + " EX.1: 8% EX(1)-1 + " USD.14: 94% USD:14-22 + " USD.16: 0% USD:16-1 + " USD.16: 5% USD:16-2 + " USD.16: 12% USD:16-2 + " USD.16: 18% USD:16-4 + " USD.16: 24% USD:16-4 + " USD.16: 30% USD:16-6 + " USD.16: 34% USD:16-6 + " USD.16: 40% USD:16-8 + " USD.16: 44% USD:16-8 + " USD.16: 50% USD:16-10 + " USD.16: 55% USD:16-10 + " USD.16: 61% USD:16-12 + " USD.16: 65% USD:16-12 + " USD.16: 71% USD:16-14 + " USD.16: 78% USD:16-14 + " USD.16: 84% USD:16-16 + " USD.16: 88% USD:16-16 + " USD.16: 93% USD:16-18 + " USD.16: 97% USD:16-18 +ex, vi - screen oriented (visual) display editor based on VI.1: 2% VI(1)-1 +ex - Excelan 10 Mb/s Ethernet interface EX.4: 2% EX(4)-1 +ex commands USD.15: 47% USD:15-13 + " USD.15: 73% USD:15-21 + " USD.16: 27% USD:16-5 +ex limitation[s] USD.16: 98% USD:16-19 +ex option description[s] USD.16: 78% USD:16-15 +Ex Reference Manual USD.16: 0% USD:16-1 +exact match[s] USD.14: 41% USD:14-10 + " USD.14: 42% USD:14-11 + " USD.30: 2% USD:30-1 +examining the kernel SMM.03: 29% SMM:3-1 +examining the messages in a folder USD.08: 3% USD:8-2 +Example[s] SMM.20: 34% SMM:20-3 + " SMM.20: 51% SMM:20-5 + " USD.24: 82% USD:24-26 + " USD.31: 80% USD:31-13 +example[s], lex PS1.16: 71% PS1:16-9 +Example of use of curse[s] PS1.18: 75% PS1:18-22 +examples, awk AWK.1: 84% AWK(1)-2 +examples, tutorial USD.24: 48% USD:24-16 + " USD.24: 82% USD:24-28 +example of macro[s] USD.25: 50% USD:25-8 +Excelan EX.4: 3% EX(4)-1 + " SMM.12A: 74% SMM:12-17 +Excelan 204 SMM.13: 1% SMM:13-2 +except command RDIST.1: 70% RDIST(1)-3 +exception, floating PS2.09: 21% PS2:9-41 + " PS2.09: 23% PS2:9-45 + " PS2.09: 45% PS2:9-80 +Exception Handling PS2.09: 1% PS2:9-3 + " PS2.09: 2% PS2:9-4 + " PS2.09: 67% PS2:9-113 +exceptional condition PS1.06: 40% PS1:6-19 +Exceptions to the ANSI Fortran Standard PS1.03: 80% PS1:3-10 +exceptions, arithmetic TRAPOV.3F: 31% TRAPOV(3F)-1 + " TRAPOV.3F: 81% TRAPOV(3F)-1 + " TRPFPE.3F: 26% TRPFPE(3F)-1 +exception, Divide-by-Zero INFNAN.3M: 16% INFNAN(3M)-1 +exception[s], floating point INTRO.3: 11% INTRO(3)-1 + " MATH.3M: 62% MATH(3M)-4 + " MATH.3M: 67% MATH(3M)-5 + " SIGNAL.3C: 22% SIGNAL(3C)-1 +exception handling MATH.3M: 83% MATH(3M)-6 +exception-handling INFNAN.3M: 21% INFNAN(3M)-1 +except_pat command RDIST.1: 72% RDIST(1)-3 +exchange, packet PS1.06: 75% PS1:6-33 + " PS1.08: 91% PS1:8-38 + " PS1.08: 95% PS1:8-40 + " PS1.08: 95% PS1:8-40 +exchange-point-and-mark (C-X C-X) USD.17: 69% USD:17-32 +exchanging access right[s] PS1.06: 82% PS1:6-35 +exclamation mark USD.14: 81% USD:14-20 +exclamation point SMM.07A: 66% SMM:07-28 +exclusive access facility PS1.06: 61% PS1:6-28 +exclusive access to a file SMM.12A: 57% SMM:12-13 + " SMM.13: 32% SMM:13-12 + " OPEN.2: 94% OPEN(2)-2 + " OPEN.2: 27% OPEN(2)-1 + " OPEN.2: 24% OPEN(2)-1 +exclusive lock[s] FLOCK.2: 8% FLOCK(2)-1 + " FLOCK.2: 37% FLOCK(2)-1 + " FLOCK.2: 46% FLOCK(2)-1 + " SMM.14: 82% SMM:14-12 + " SMM.14: 82% SMM:14-12 + " SMM.14: 82% SMM:14-12 + " SMM.14: 82% SMM:14-12 + " SMM.14: 83% SMM:14-12 + " SMM.14: 83% SMM:14-12 + " SMM.14: 83% SMM:14-12 +exdented paragraph USD.21: 39% USD:21-2 +EXDEV - Cross-device link INTRO.2: 22% INTRO(2)-2 +Exec LASTCOMM.1: 76% LASTCOMM(1)-1 +exec - Bourne shell command SH.1: 0% SH(1)-1 +executable file[s] CHMOD.2: 23% CHMOD(2)-1 + " CHMOD.2: 31% CHMOD(2)-1 + " EXECL.3: 78% EXECL(3)-2 + " LS.1: 46% LS(1)-1 + " PC.1: 5% PC(1)-1 + " PS1.11a: 13% PS1:11-1 +executable file magic number[s] PS1.10: 42% PS1:10-9 +executable file[s] SH.1: 65% SH(1)-4 + " SMM.10: 88% SMM:10-21 + " STICKY.8: 12% STICKY(8)-1 + " USD.03: 40% USD:3-10 + " USD.16: 34% USD:16-6 + " WHICH.1: 75% WHICH(1)-1 + " CHMOD.1: 82% CHMOD(1)-1 + " USD.01: 65% USD:1-10 + " USD.03: 21% USD:3-5 + " NLIST.3: 21% NLIST(3)-1 +executable image[s] SMM.01: 72% SMM:1-43 + " SMM.19: 41% SMM:19-12 +executable program A_OUT.5: 30% A.OUT(5)-1 + " CC.1: 74% CC(1)-2 + " F77.1: 74% F77(1)-2 + " USD.08: 9% USD:8-8 +execute access CSH.1: 47% CSH(1)-9 +execute file format SMM.09: 16% SMM:9-4 +execute permission ACCESS.3F: 50% ACCESS(3F)-1 + " PS1.06: 65% PS1:6-29 +execute-keyboard-macro (C-X E) USD.17: 69% USD:17-32 +execute-macro USD.17: 69% USD:17-32 +execute-named-command (ESC X) USD.17: 69% USD:17-32 +executed program EXECVE.2: 24% EXECVE(2)-1 + " EXECVE.2: 52% EXECVE(2)-1 + " SH.1: 55% SH(1)-4 +execution profile[s] PS1.04: 26% PS1:4-15 + " PS1.04: 28% PS1:4-16 + " PS1.04: 70% PS1:4-36 + " PS1.04: 73% PS1:4-37 +execution time PS1.03: 8% PS1:3-3 + " PS1.04: 27% PS1:4-15 + " PS1.04: 73% PS1:4-37 + " PS2.10: 27% PS2:10-26 + " PS2.10: 58% PS2:10-51 + " PS2.10: 59% PS2:10-51 +execution, background CSH.1: 4% CSH(1)-1 +execution[s], Command CSH.1: 87% CSH(1)-18 + " USD.03: 84% USD:3-21 + " SMM.09: 53% SMM:9-12 +execution, conditional CSH.1: 5% CSH(1)-1 +execution, remote REXECD.8C: 6% REXECD(8C)-1 + " RSHD.8C: 5% RSHD(8C)-1 +execution, remote Command UUXQT.8C: 29% UUXQT(8C)-1 + " UUX.1C: 1% UUX(1C)-1 + " SMM.09: 33% SMM:9-8 + " REXECD.8C: 64% REXECD(8C)-1 + " RCP.1C: 62% RCP(1C)-1 +execution, suspend SLEEP.1: 11% SLEEP(1)-1 + " SLEEP.3: 6% SLEEP(3)-1 + " SLEEP.3F: 14% SLEEP(3F)-1 + " USLEEP.3: 5% USLEEP(3)-1 +Execution files SMM.09: 3% SMM:9-2 + " SMM.09: 4% SMM:9-2 + " UUXQT.8C: 16% UUXQT(8C)-1 + " UUXQT.8C: 40% UUXQT(8C)-1 +execution machine SMM.09: 13% SMM:9-4 + " SMM.09: 14% SMM:9-4 + " SMM.09: 15% SMM:9-4 + " SMM.09: 15% SMM:9-4 + " SMM.09: 16% SMM:9-4 +execution profile[s] CC.1: 26% CC(1)-1 + " CC.1: 32% CC(1)-1 + " F77.1: 24% F77(1)-1 + " MONITOR.3: 3% MONITOR(3)-1 + " PXP.1: 10% PXP(1)-1 + " PXP.1: 56% PXP(1)-1 + " USD.01: 89% USD:1-13 + " GPROF.1: 3% GPROF(1)-1 +execution profiling PC.1: 59% PC(1)-2 + " PI.1: 36% PI(1)-1 +execution status of a command USD.04: 58% USD:4-27 +execution time[s] ETIME.3F: 11% ETIME(3F)-1 + " GPROF.1: 16% GPROF(1)-1 + " TIME.1: 36% TIME(1)-1 + " USD.18: 17% USD:18-2 + " SMM.12A: 2% SMM:12-2 +execve ACCT.5: 87% ACCT(5)-2 + " CLOSE.2: 50% CLOSE(2)-1 + " CSH.1: 87% CSH(1)-18 + " ENVIRON.7: 12% ENVIRON(7)-1 + " PROFIL.2: 73% PROFIL(2)-1 + " PTRACE.2: 72% PTRACE(2)-2 + " SIGVEC.2: 63% SIGVEC(2)-2 + " VFORK.2: 28% VFORK(2)-1 +execve - execute a file EXECVE.2: 0% EXECVE(2)-1 +execve system call[s] EXECL.3: 13% EXECL(3)-1 + " OPEN.2: 41% OPEN(2)-1 + " OPEN.2: 41% OPEN(2)-1 +execve(name, argv, envp) PS1.06: 10% PS1:6-8 +execvp SMM.12A: 64% SMM:12-15 +EXINIT USD.15: 18% USD:15-5 + " USD.15: 37% USD:15-10 + " USD.15: 39% USD:15-11 + " USD.15: 46% USD:15-13 + " USD.15: 47% USD:15-14 + " USD.15: 48% USD:15-14 + " USD.15: 56% USD:15-16 + " USD.15: 68% USD:15-19 + " USD.16: 3% USD:16-1 + " USD.16: 97% USD:16-18 + " ENVIRON.7: 60% ENVIRON(7)-1 +existence, test for ACCESS.3F: 54% ACCESS(3F)-1 +Exit ASSERT.3: 44% ASSERT(3)-1 + " CLOSE.2: 33% CLOSE(2)-1 + " EXIT.2: 80% EXIT(2)-1 + " FCLOSE.3S: 54% FCLOSE(3S)-1 + " GPROF.1: 97% unknown +existing relation, index - create a secondary index on an PS2.10: 14% PS2:10-16 +Exit PS2.03: 20% PS2:3-4 + " PS2.07: 27% PS2:7-14 + " PS2.07: 46% PS2:7-20 + " PS2.07: 46% PS2:7-20 + " PS2.07: 46% PS2:7-20 + " PS2.07: 46% PS2:7-20 + " PS2.07: 46% PS2:7-20 + " PS2.07: 46% PS2:7-20 + " PS2.07: 46% PS2:7-20 + " PS2.10: 28% PS2:10-27 +exit - Bourne shell command SH.1: 0% SH(1)-1 +exit - terminate a process after flushing any pending output EXIT.3: 13% EXIT(3)-1 +exit - terminate process with status EXIT.3F: 8% EXIT(3F)-1 +Exit code[s] EXPR.1: 91% EXPR(1)-1 + " INTRO.1: 89% INTRO(1)-1 + " SMM.05: 99% SMM:5-22 + " SMM.06: 61% SMM:6-5 + " USD.11: 94% USD:11-14 + " USD.17: 78% USD:17-37 +exit code PS2.09: 42% PS2:9-75 + " PS2.09: 43% PS2:9-78 + " PS2.09: 44% PS2:9-79 + " PS2.09: 45% PS2:9-80 +exit command USD.04: 63% USD:4-31 + " USD.04: 77% USD:4-37 + " USD.04: 77% USD:4-37 +Exit from NROFF/TROFF USD.24: 78% USD:24-25 +exit shell command CSH.1: 54% CSH(1)-11 +Exit status SH.1: 4% SH(1)-1 + " SH.1: 74% SH(1)-5 + " SH.1: 75% SH(1)-5 + " SH.1: 97% SH(1)-6 + " SH.1: 97% SH(1)-6 + " SMM.16: 25% SMM:16-4 + " SMM.16: 54% SMM:16-8 + " TEST.1: 12% TEST(1)-1 + " TEST.1: 14% TEST(1)-1 + " USD.03: 36% USD:3-9 + " USD.03: 36% USD:3-9 + " USD.03: 42% USD:3-10 + " USD.03: 42% USD:3-10 + " USD.03: 43% USD:3-10 + " USD.03: 44% USD:3-10 + " USD.03: 44% USD:3-10 + " USD.04: 58% USD:4-27 + " USD.04: 77% USD:4-37 + " USD.04: 77% USD:4-37 + " WAIT.2: 18% WAIT(2)-1 + " SMM.07A: 70% SMM:07-30 + " CSH.1: 86% CSH(1)-18 +exit status PS1.06: 9% PS1:6-7 + " PS1.08: 66% PS1:8-26 + " PS1.13: 34% PS1:13-6 + " PS1.13: 52% PS1:13-10 + " PS1.13: 70% PS1:13-14 + " PS1.13: 95% PS1:13-21 + " PS1.14: 95% PS1:14-14 +exit(status) PS1.06: 9% PS1:6-7 +exit-jove USD.17: 10% USD:17-5 +exit-jove (C-X C-C) USD.17: 69% USD:17-32 +Exiting USD.11: 20% USD:11-3 + " USD.11: 71% USD:11-11 + " USD.11: 72% USD:11-11 +Exiting and Pausing - Leaving JOVE USD.17: 10% USD:17-5 +exp, expm1, log, log10, log1p, pow - exponential, logarithm, power EXP.3M: 1% EXP(3M)-1 +expands, unexpand - expand tabs to space EXPAND.1: 4% EXPAND(1)-1 +expand - make the table as wide as the current line length USD.28: 9% USD:28-2 +expand tabs EXPAND.1: 6% EXPAND(1)-1 + " TIP.1C: 88% TIP(1C)-3 + " TTY.4: 36% TTY(4)-4 +expansion, Braces { ... } in argument USD.04: 66% USD:4-32 +expansion[s], macro PS2.09: 19% PS2:9-38 + " PS2.09: 56% PS2:9-98 + " PS2.09: 73% PS2:9-120 + " PS2.09: 73% PS2:9-120 + " PS2.09: 73% PS2:9-120 + " PS2.09: 75% PS2:9-123 +Explicit Long Constant[s] PS1.01: 3% PS1:1-2 +Explicit Pointer Conversion[s] PS1.01: 88% PS1:1-30 +expansion[s], macro USD.16: 58% USD:16-11 + " SMM.12A: 93% SMM:12-22 +Expect Send L-DEVICES.5: 8% L-DEVICES(5)-1 + " L_SYS.5: 5% L.SYS(5)-1 + " SMM.09: 63% SMM:9-14 +expect/send script L_SYS.5: 65% L.SYS(5)-3 + " L_SYS.5: 88% L.SYS(5)-4 + " SMM.09: 61% SMM:9-13 + " SMM.09: 72% SMM:9-16 + " SMM.09: 77% SMM:9-16 + " L-DEVICES.5: 88% L-DEVICES(5)-2 +expect/send sequence[s] SMM.09: 46% SMM:9-10 + " SMM.09: 46% SMM:9-10 + " SMM.09: 46% SMM:9-10 + " SMM.09: 46% SMM:9-10 + " SMM.09: 77% SMM:9-17 +expected time SMM.14: 42% SMM:14-7 + " SMM.14: 43% SMM:14-7 + " TUNEFS.8: 22% TUNEFS(8)-1 +expiration date[s] SMM.10: 4% SMM:10-2 + " SMM.10: 51% SMM:10-14 + " SMM.10: 56% SMM:10-15 + " SMM.10: 58% SMM:10-15 +Expire SMM.11: 48% SMM:11-7 + " SMM.11: 51% SMM:11-7 + " SMM.11: 76% SMM:11-11 + " SMM.11: 77% SMM:11-12 + " SMM.11: 81% SMM:11-13 +EXPLAIN USD.32: 51% USD:32-8 +Explanation USD.24: 6% USD:24-3 + " USD.24: 17% USD:24-8 + " USD.24: 27% USD:24-10 +expletive STYLE.1: 69% STYLE(1)-1 +explicit command[s] SMM.10: 11% SMM:10-3 +explicit request[s] SMM.19: 33% SMM:19-10 + " USD.03: 58% USD:3-15 +exponent FREXP.3: 14% +exponent field PS1.03: 33% PS1:3-5 + " PS1.03: 44% PS1:3-6 + " PS1.03: 85% PS1:3-11 + " PS1.05: 67% PS1:5-10 + " PS2.06: 10% PS2:6-5 + " PS2.06: 11% PS2:6-5 + " PS2.06: 11% PS2:6-5 + " PS2.06: 18% PS2:6-8 +EXPRESSIONS PS1.01: 17% PS1:1-6 + " PS1.01: 18% PS1:1-6 + " PS1.01: 24% PS1:1-7 + " PS1.01: 90% PS1:1-31 + " PS1.01: 94% PS1:1-32 + " PS1.05: 40% PS1:5-6 + " PS2.06: 22% PS2:6-9 + " PS2.06: 22% PS2:6-9 + " PS2.06: 38% PS2:6-14 +exponential BC.1: 41% BC(1)-1 +exponential backoff algorithm EC.4: 42% EC(4)-1 + " EC.4: 71% EC(4)-1 + " EN.4: 29% EN(4)-1 + " EN.4: 69% EN(4)-1 +exponential function BC.1: 77% BC(1)-2 + " EXP.3M: 9% EXP(3M)-1 + " USD.06: 50% USD:6-6 +export - Bourne shell command SH.1: 0% SH(1)-1 +export command[s] ENVIRON.7: 74% ENVIRON(7)-1 + " SH.1: 57% SH(1)-4 + " SH.1: 59% SH(1)-4 + " USD.03: 59% USD:3-15 +expr - evaluate arguments as an expression EXPR.1: 2% EXPR(1)-1 +Expreserve SMM.12A: 17% SMM:12-5 +Expressions CSH.1: 44% CSH(1)-9 + " DBX.1: 43% DBX(1)-3 + " USD.04: 57% USD:4-27 +expression[s], arithmetic AWK.1: 70% AWK(1)-2 + " M4.1: 71% M4(1)-2 + " PS1.15: 9% PS1:15-3 + " PS1.15: 38% PS1:15-11 + " PS1.15: 48% PS1:15-14 + " PS1.15: 48% PS1:15-14 + " PS1.15: 81% PS1:15-24 + " SMM.19: 95% SMM:19-26 + " SMM.19: 95% SMM:19-26 + " USD.06: 8% USD:6-2 + " USD.25: 66% USD:25-10 +expression[s], assignment operator SMM.19: 68% SMM:19-19 + " SMM.19: 84% SMM:19-23 + " SMM.19: 84% SMM:19-23 + " SMM.19: 86% SMM:19-24 +expression[s], character PS1.02: 59% PS1:2-20 + " PS1.02: 65% PS1:2-22 + " PS2.06: 28% PS2:6-11 + " PS2.06: 28% PS2:6-11 +Expressions, Constant PS1.01: 45% PS1:1-15 + " PS1.01: 56% PS1:1-18 + " PS1.01: 66% PS1:1-22 + " PS1.01: 80% PS1:1-27 +expression[s], functional PS2.07: 2% PS2:7-4 + " PS2.07: 2% PS2:7-4 + " PS2.07: 4% PS2:7-4 + " PS2.07: 5% PS2:7-4 + " PS2.07: 5% PS2:7-4 + " PS2.07: 8% PS2:7-5 + " PS2.07: 22% PS2:7-11 + " PS2.07: 33% PS2:7-15 + " PS2.10: 41% PS2:10-35 + " PS2.10: 41% PS2:10-35 + " PS2.10: 41% PS2:10-35 +expression[s], integer PS1.02: 56% PS1:2-19 + " PS1.02: 62% PS1:2-21 + " PS1.02: 62% PS1:2-21 + " PS1.02: 63% PS1:2-21 + " PS1.02: 64% PS1:2-21 + " PS2.06: 40% PS2:6-14 + " PS2.06: 40% PS2:6-14 + " PS2.06: 41% PS2:6-15 + " PS2.06: 61% PS2:6-21 +expression[s], lambda PS2.09: 32% PS2:9-59 + " PS2.09: 59% PS2:9-103 + " PS2.09: 59% PS2:9-103 + " PS2.09: 75% PS2:9-123 + " PS2.09: 84% PS2:9-136 +expression[s], Lisp PS2.09: 2% PS2:9-4 + " PS2.09: 40% PS2:9-71 + " PS2.09: 40% PS2:9-71 + " PS2.09: 48% PS2:9-85 + " PS2.09: 48% PS2:9-85 + " PS2.09: 56% PS2:9-98 + " PS2.09: 56% PS2:9-98 + " PS2.09: 58% PS2:9-101 + " PS2.09: 70% PS2:9-116 + " PS2.09: 72% PS2:9-119 + " PS2.09: 87% PS2:9-140 + " PS2.09: 88% PS2:9-140 +expression, lvalue PS1.01: 11% PS1:1-4 + " PS1.01: 12% PS1:1-4 + " PS1.01: 12% PS1:1-4 + " PS1.01: 20% PS1:1-6 + " PS1.01: 27% PS1:1-8 + " PS1.01: 27% PS1:1-8 +Expression[s], Primary PS1.01: 18% PS1:1-6 + " PS1.01: 19% PS1:1-6 + " PS1.01: 19% PS1:1-6 + " PS1.01: 20% PS1:1-6 + " PS1.01: 20% PS1:1-7 + " PS1.01: 20% PS1:1-7 + " PS1.01: 21% PS1:1-7 + " PS1.01: 21% PS1:1-7 + " PS1.01: 21% PS1:1-7 + " PS1.01: 21% PS1:1-7 + " PS1.01: 22% PS1:1-7 + " PS1.01: 22% PS1:1-7 + " PS1.01: 23% PS1:1-7 + " PS1.01: 24% PS1:1-7 + " PS1.01: 39% PS1:1-12 +expression[s], regular PS1.16: 0% PS1:16-1 +expression, value of an PS1.11a: 85% PS1:11-6 +expression evaluation, overflow and divide check in PS1.01: 19% PS1:1-6 +expression operators PS1.01: 17% PS1:1-6 + " PS1.01: 18% PS1:1-6 + " PS1.05: 38% PS1:5-5 + " PS1.05: 48% PS1:5-7 +expression operator[s], precedence of PS1.01: 17% PS1:1-6 +expression statement[s] PS1.01: 17% PS1:1-6 + " PS1.01: 17% PS1:1-6 + " PS1.01: 62% PS1:1-21 + " PS1.01: 62% PS1:1-21 + " PS2.06: 47% PS2:6-16 +expression tree[s] PS1.09: 61% PS1:9-7 + " PS2.06: 85% PS2:6-30 +Extended Fortran Language PS2.06: 2% PS2:6-1 + " PS2.06: 1% PS2:6-1 +expressions, complex USD.06: 11% USD:6-2 +expression[s], context search USD.12: 62% USD:12-7 + " USD.12: 62% USD:12-7 + " USD.12: 63% USD:12-7 + " USD.12: 65% USD:12-7 + " USD.12: 68% USD:12-7 +expression, expr - evaluate arguments as an EXPR.1: 2% EXPR(1)-1 +expression[s], functional FP.1: 26% FP(1)-1 +expression[s], Lisp USD.17: 73% USD:17-34 +expression[s], logical LINT.1: 12% LINT(1)-1 + " USD.25: 77% USD:25-11 +expression[s], mathematical USD.26: 27% USD:26-2 + " USD.27: 1% USD:27-1 + " USD.27: 4% USD:27-1 + " USD.27: 9% USD:27-2 +expression[s], numeric WINDOW.1: 79% WINDOW(1)-6 +expression[s], Numerical USD.24: 21% USD:24-8 + " USD.24: 52% USD:24-17 + " USD.24: 74% USD:24-23 +expression[s], Regular USD.17: 22% USD:17-10 + " USD.17: 80% USD:17-38 + " AWK.1: 55% AWK(1)-1 + " EXPR.1: 58% EXPR(1)-1 + " GREP.1: 11% GREP(1)-1 + " LEX.1: 18% LEX(1)-1 + " MORE.1: 35% MORE(1)-1 + " PICK.N: 10% PICK(1)-1 + " SED.1: 73% SED(1)-2 + " USD.12: 84% USD:12-9 + " USD.13: 93% USD:13-15 + " USD.15: 17% USD:15-5 + " USD.15: 68% USD:15-19 + " USD.16: 68% USD:16-13 + " USD.18: 9% USD:18-1 + " USD.19: 30% USD:19-3 +expression[s], relational AWK.1: 56% AWK(1)-1 + " AWK.1: 61% AWK(1)-2 + " AWK.1: 65% AWK(1)-2 + " AWK.1: 70% AWK(1)-2 + " SMM.19: 68% SMM:19-19 + " USD.19: 37% USD:19-3 + " USD.19: 38% USD:19-3 +expression matches USD.16: 73% USD:16-14 + " USD.18: 27% USD:18-3 + " USD.18: 27% USD:18-3 + " USD.18: 30% USD:18-3 + " USD.19: 68% USD:19-6 +expression parse tree[s] SMM.19: 6% SMM:19-3 +expression tree[s] SMM.19: 8% SMM:19-3 + " SMM.19: 9% SMM:19-3 + " SMM.19: 10% SMM:19-4 + " SMM.19: 10% SMM:19-4 + " SMM.19: 11% SMM:19-4 + " SMM.19: 11% SMM:19-4 + " SMM.19: 15% SMM:19-5 + " SMM.19: 15% SMM:19-5 + " SMM.19: 28% SMM:19-8 + " SMM.19: 36% SMM:19-10 + " SMM.19: 37% SMM:19-11 + " SMM.19: 48% SMM:19-14 + " SMM.19: 48% SMM:19-14 + " SMM.19: 50% SMM:19-14 + " SMM.19: 50% SMM:19-14 + " SMM.19: 51% SMM:19-14 + " SMM.19: 54% SMM:19-15 + " SMM.19: 57% SMM:19-16 + " SMM.19: 68% SMM:19-19 + " SMM.19: 82% SMM:19-23 + " SMM.19: 92% SMM:19-26 +Extension MILLE.6: 54% MILLE(6)-2 + " MILLE.6: 96% MILLE(6)-3 + " USD.04: 78% USD:4-37 +extension, sign SMM.12A: 6% SMM:12-2 +Exterior Gateway Protocol ROUTED.8C: 85% ROUTED(8C)-2 + " SMM.01: 67% SMM:1-41 + " SMM.15: 78% SMM:15-22 +extension[s], Fortran language PS1.02: 11% PS1:2-6 +extension, sign PS1.01: 13% PS1:1-5 + " PS1.01: 92% PS1:1-31 + " PS2.03: 33% PS2:3-6 +Extensions to the language Pascal PS1.04: 83% PS1:4-42 +External Definition[s] PS1.01: 69% PS1:1-24 +extern declaration[s] LINT.1: 48% LINT(1)-1 + " SMM.19: 22% SMM:19-7 + " SMM.19: 22% SMM:19-7 +extern int GETHOSTBYNAME.3N: 5% GETHOSTBYNAME(3) +external names F77.1: 63% F77(1)-2 +external references LD.1: 2% LD(1)-1 +external symbols LD.1: 80% LD(1)-2 +external variable[s] ADB.1: 72% ADB(1)-4 +Extra[s] MHL.N: 76% MHL(1)-3 + " SMM.13: 35% SMM:13-13 + " USD.08: 30% USD:8-32 +Extra line-space USD.24: 38% USD:24-13 +extraction list RESTORE.8: 37% RESTORE(8)-2 + " RESTORE.8: 38% RESTORE(8)-2 + " RESTORE.8: 41% RESTORE(8)-2 + " RESTORE.8: 42% RESTORE(8)-2 + " RESTORE.8: 44% RESTORE(8)-2 + " RESTORE.8: 46% RESTORE(8)-2 + " RESTORE.8: 52% RESTORE(8)-2 +extreme values FLMIN.3F: 11% FLMIN(3F)-1 +eyacc SMM.12A: 17% SMM:12-5 +f77 I/O Library PS1.02: 83% PS1:2-27 + " PS1.02: 84% PS1:2-28 + " PS1.03: 0% + " PS1.03: 0% + " PS1.03: 0% PS1:3-1 + " PS1.03: 3% PS1:3-1 + " PS1.03: 15% PS1:3-4 + " PS1.03: 27% PS1:3-4 + " PS1.03: 39% PS1:3-6 + " PS1.03: 51% PS1:3-6 + " PS1.03: 61% PS1:3-8 + " PS1.03: 68% PS1:3-8 + " PS1.03: 74% PS1:3-10 + " PS1.03: 80% PS1:3-10 + " PS1.03: 86% PS1:3-2 +f77 library[s] PS1.02: 11% PS1:2-6 + " PS1.02: 24% PS1:2-9 + " PS1.02: 42% PS1:2-14 +f77_dump_flag PS1.02: 11% PS1:2-6 +f[s] AWK.1: 77% AWK(1)-2 + " USD.19: 17% USD:19-2 + " USD.19: 59% USD:19-5 +F, directory SMM.05: 70% SMM:5-15 + " SMM.05: 71% SMM:5-15 + " SMM.05: 85% SMM:5-19 +F, directory entry SMM.05: 68% SMM:5-15 + " SMM.05: 68% SMM:5-15 + " SMM.05: 69% SMM:5-15 + " SMM.05: 69% SMM:5-15 + " SMM.05: 69% SMM:5-15 + " SMM.05: 70% SMM:5-15 +F, directory name SMM.05: 69% SMM:5-15 + " SMM.05: 70% SMM:5-15 + " SMM.05: 70% SMM:5-15 +F, ESC USD.17: 24% USD:17-11 + " USD.17: 24% USD:17-11 + " USD.17: 25% USD:17-11 + " USD.17: 32% USD:17-14 + " USD.17: 73% USD:17-34 +F[s], file system SMM.05: 46% SMM:5-9 + " SMM.05: 46% SMM:5-10 + " SMM.05: 46% SMM:5-10 + " TP.5: 65% TP(5)-1 +f's, struct FS.5: 6% FS(5)-1 + " FS.5: 7% FS(5)-1 + " FS.5: 93% FS(5)-3 +F, xx USD.23: 81% USD:23-11 + " USD.23: 83% USD:23-12 + " USD.23: 92% USD:23-14 +F field SMM.07: 69% SMM:7-1 + " USD.31: 9% USD:31-2 + " USD.31: 16% USD:31-3 + " USD.31: 44% USD:31-8 + " SMM.07A: 62% SMM:07-26 +F flag SMM.10: 47% SMM:10-13 + " SMM.10: 85% SMM:10-21 + " SMM.10: 85% SMM:10-21 +F. USD.24: 6% USD:24-3 + " USD.30: 80% USD:30-9 +F77 ERROR.1: 30% ERROR(1)-1 + " SMM.19: 87% SMM:19-24 + " SMM.12A: 17% SMM:12-5 +f77 - Fortran 77 compiler F77.1: 0% F77(1)-1 +f77 I/O error code[s], list of PERROR.3F: 55% PERROR(3F)-1 +f77 I/O Library SMM.12A: 29% SMM:12-7 +f77 I/O system IOINIT.3F: 9% IOINIT(3F)-1 +f77 tape I/O TOPEN.3F: 3% TOPEN(3F)-1 +f77_abort SMM.12A: 28% SMM:12-7 +f77_dump_flag SMM.12A: 28% SMM:12-7 +f77_dump_flag environment variable F77.1: 77% F77(1)-2 +fabs FLOOR.3M: 3% FLOOR(3M)-1 +Fabry SMM.05: 40% SMM:5-8 + " SMM.05: 40% SMM:5-8 + " SMM.15: 98% SMM:15-27 +Fabry, R. MKFS.8: 89% MKFS(8)-1 + " NEWFS.8: 90% NEWFS(8)-2 + " TUNEFS.8: 80% TUNEFS(8)-1 +Fabry, Robert S. SMM.14: 0% SMM:14-2 + " SMM.15: 0% SMM:15-2 +face, bold USD.22: 91% USD:22-17 + " USD.22: 91% USD:22-17 + " USD.22: 91% USD:22-17 +face, smiley USD.10: 69% USD:10-8 + " USD.10: 70% USD:10-8 + " USD.10: 84% USD:10-10 + " USD.10: 84% USD:10-10 +face value FISH.6: 19% FISH(6)-1 + " FISH.6: 31% FISH(6)-1 + " FISH.6: 36% FISH(6)-1 + " FISH.6: 72% FISH(6)-1 +facilities, Editing USD.01: 75% USD:1-11 + " USD.17: 2% USD:17-2 + " USD.19: 72% USD:19-6 +facilities, interprocess communication INTRO.4: 26% INTRO(4)-1 + " SMM.12: 56% SMM:12-1 + " SMM.15: 3% SMM:15-3 + " SMM.15: 16% SMM:15-6 + " SMM.12A: 56% SMM:12-13 +facility[s], job control CSH.1: 0% CSH(1)-1 + " CSH.1: 0% CSH(1)-1 + " USD.17: 84% USD:17-40 +facility[s], macro RDIST.1: 96% RDIST(1)-4 + " USD.04: 33% USD:4-15 + " USD.25: 47% USD:25-7 + " USD.26: 24% USD:26-2 + " USD.26: 90% USD:26-7 +facilities, networking INTRO.4N: 2% INTRO(4N)-1 + " SMM.01: 0% SMM:1-1 + " SMM.15: 0% SMM:15-2 + " SMM.15: 0% SMM:15-2 + " SMM.15: 2% SMM:15-3 + " SMM.15: 3% SMM:15-3 +facility[s], optional SMM.02: 8% SMM:2-3 + " SMM.02: 45% SMM:2-14 +facility[s], summary of 4.3 BSD kernel PS1.06: 94% PS1:6-41 +factor[s], class SMM.07A: 29% SMM:07-15 + " SMM.07A: 30% SMM:07-15 +factor[s], scaling USD.22: 65% USD:22-12 + " USD.23: 1% USD:23-1 + " USD.23: 3% USD:23-1 +factor, warp USD.34: 20% USD:34-3 + " USD.34: 27% USD:34-4 + " USD.34: 40% USD:34-5 + " USD.34: 41% USD:34-5 + " USD.34: 41% USD:34-5 + " USD.34: 44% USD:34-6 + " USD.34: 45% USD:34-6 +fails, lookup ROUTE.8C: 49% ROUTE(8C)-1 + " RSHD.8C: 52% RSHD(8C)-1 + " RSHD.8C: 57% RSHD(8C)-1 + " TALKD.8C: 58% TALKD(8C)-1 +fails, mount SMM.12: 89% SMM:12-1 + " SMM.13: 30% SMM:13-11 + " SMM.12A: 89% SMM:12-21 +fails, root SMM.05: 65% SMM:5-14 + " SMM.05: 65% SMM:5-14 + " SMM.05: 67% SMM:5-14 +fails, user CO.N: 15% CO(1)-1 + " SMM.01: 83% SMM:1-50 +failure[s], hardware CRASH.8V: 40% CRASH(8V)-1 + " SMM.01: 7% SMM:1-5 + " SMM.02: 6% SMM:2-3 + " SMM.05: 1% SMM:5-2 + " SMM.05: 12% SMM:5-4 + " SMM.05: 20% SMM:5-5 + " SMM.05: 32% SMM:5-7 + " SMM.05: 33% SMM:5-7 + " SMM.05: 39% SMM:5-8 + " SMM.14: 20% SMM:14-4 +failure notice SEND.N: 17% SEND(1)-1 + " USD.08: 53% USD:8-64 + " USD.08: 85% USD:8-104 + " USD.08: 85% USD:8-104 + " USD.08: 86% USD:8-104 +falloc MALLOC.3F: 2% MALLOC(3F)-1 +family[s], address ARP.4P: 47% ARP(4P)-1 + " BIND.2: 15% BIND(2)-1 + " CONNECT.2: 48% CONNECT(2)-1 + " IFCONFIG.8C: 16% IFCONFIG(8C)-1 + " INTRO.2: 98% INTRO(2)-7 + " INTRO.2: 99% INTRO(2)-7 + " LO.4: 31% LO(4)-1 + " NETSTAT.1: 39% NETSTAT(1)-1 + " NETSTAT.1: 40% NETSTAT(1)-1 + " NETSTAT.1: 56% NETSTAT(1)-1 + " SMM.13: 7% SMM:13-4 + " SMM.13: 8% SMM:13-4 + " SMM.13: 58% SMM:13-20 + " SMM.13: 59% SMM:13-21 + " SMM.13: 60% SMM:13-21 + " SMM.13: 60% SMM:13-21 + " SMM.15: 7% SMM:15-4 + " SMM.15: 7% SMM:15-4 + " SMM.15: 27% SMM:15-8 + " SMM.15: 33% SMM:15-10 + " SMM.15: 71% SMM:15-21 + " SOCKET.2: 9% SOCKET(2)-1 + " SMM.12A: 86% SMM:12-20 + " INTRO.2: 95% INTRO(2)-7 +family[s], NS protocol EN.4: 52% EN(4)-1 + " NS.4F: 6% NS(4F)-1 + " NS.4F: 66% NS(4F)-1 +family[s], protocol IFCONFIG.8C: 91% IFCONFIG(8C)-2 + " IFCONFIG.8C: 93% IFCONFIG(8C)-2 + " INTRO.2: 45% INTRO(2)-4 + " INTRO.4N: 3% INTRO(4N)-1 + " INTRO.4N: 4% INTRO(4N)-1 + " INTRO.4N: 6% INTRO(4N)-1 + " INTRO.4N: 6% INTRO(4N)-1 + " INTRO.4N: 9% INTRO(4N)-1 + " INTRO.4N: 11% INTRO(4N)-1 + " INTRO.4N: 14% INTRO(4N)-1 + " INTRO.4N: 22% INTRO(4N)-1 + " INTRO.4N: 30% INTRO(4N)-1 + " INTRO.4N: 30% INTRO(4N)-1 + " INTRO.4N: 50% INTRO(4N)-2 + " INTRO.4N: 52% INTRO(4N)-2 + " INTRO.4N: 81% INTRO(4N)-3 + " INTRO.4N: 82% INTRO(4N)-3 + " INTRO.4N: 83% INTRO(4N)-3 + " INTRO.4N: 84% INTRO(4N)-3 + " INTRO.4N: 85% INTRO(4N)-3 + " INTRO.4N: 85% INTRO(4N)-3 + " NS.4F: 2% NS(4F)-1 + " SMM.13: 58% SMM:13-20 + " SMM.15: 6% SMM:15-3 + " SMM.15: 27% SMM:15-8 + " SMM.15: 28% SMM:15-9 + " SMM.15: 33% SMM:15-10 + " SMM.15: 39% SMM:15-12 + " SMM.15: 58% SMM:15-17 + " SMM.15: 64% SMM:15-19 + " SMM.15: 67% SMM:15-20 + " SMM.15: 80% SMM:15-23 + " SMM.15: 80% SMM:15-23 + " SMM.15: 82% SMM:15-23 + " SOCKET.2: 7% SOCKET(2)-1 + " SOCKET.2: 8% SOCKET(2)-1 + " SOCKET.2: 35% SOCKET(2)-1 + " ICMP.4P: 16% ICMP(4P)-1 + " IDP.4P: 9% IDP(4P)-1 + " INET.4F: 1% INET(4F)-1 + " INET.4F: 4% INET(4F)-1 + " INET.4F: 21% INET(4F)-1 + " INET.4F: 37% INET(4F)-1 + " IP.4P: 8% IP(4P)-1 + " PCL.4: 28% PCL(4)-1 + " SMM.15: 96% SMM:15-27 + " UDP.4P: 15% UDP(4P)-1 +fantasy game[s] USD.33: 1% USD:33-2 + " USD.33: 10% USD:33-2 + " USD.33: 12% USD:33-2 +Fast File System for UNIX SMM.14: 0% unknown +fastboot SHUTDOWN.8: 73% SHUTDOWN(8)-1 +fat operation USD.27: 40% USD:27-5 +fatal error[s] PS1.17: 92% PS1:17-6 + " PS2.09: 73% PS2:9-120 +fault[s], compatibility mode CRASH.8V: 66% CRASH(8V)-2 + " SIGNAL.3C: 76% SIGNAL(3C)-2 + " SIGNAL.3C: 79% SIGNAL(3C)-2 + " SIGVEC.2: 82% SIGVEC(2)-3 + " SIGVEC.2: 83% SIGVEC(2)-3 +fault[s], floating point TRPFPE.3F: 5% TRPFPE(3F)-1 +fault[s], hardware INTRO.2: 19% INTRO(2)-2 + " SIGVEC.2: 81% SIGVEC(2)-3 + " SMM.13: 95% SMM:13-32 +fault[s], memory USD.03: 74% USD:3-18 +fault[s], operand CRASH.8V: 63% CRASH(8V)-2 + " SMM.12A: 67% SMM:12-16 +fault[s], page CRASH.8V: 66% CRASH(8V)-2 + " GETRUSAGE.2: 25% GETRUSAGE(2)-1 + " GETRUSAGE.2: 62% GETRUSAGE(2)-2 + " GETRUSAGE.2: 66% GETRUSAGE(2)-2 + " SMM.13: 36% SMM:13-13 + " SYSTAT.1: 61% SYSTAT(1)-3 + " USD.04: 52% USD:4-24 + " USD.04: 97% USD:4-44 + " VMSTAT.1: 54% VMSTAT(1)-1 + " VTIMES.3C: 39% VTIMES(3C)-1 + " VTIMES.3C: 41% VTIMES(3C)-1 + " VTIMES.3C: 80% VTIMES(3C)-1 + " VTIMES.3C: 83% VTIMES(3C)-1 +fault[s], program DBX.1: 9% DBX(1)-1 +fault[s], SBI CRASH.8V: 49% CRASH(8V)-2 + " CRASH.8V: 49% CRASH(8V)-2 + " CRASH.8V: 47% CRASH(8V)-2 +Fault handling USD.03: 77% USD:3-19 +Fcc: USD.08: 78% USD:8-96 + " USD.08: 68% USD:8-84 + " USD.08: 68% USD:8-83 + " USD.08: 55% USD:8-65 + " USD.08: 55% USD:8-65 + " USD.08: 53% USD:8-64 + " USD.08: 49% USD:8-58 + " SEND.N: 79% SEND(1)-2 + " SEND.N: 75% SEND(1)-2 + " SEND.N: 10% SEND(1)-1 + " REPL.N: 62% REPL(1)-2 + " POST.N: 78% POST(8)-1 + " POST.N: 23% POST(8)-1 + " MH-MAIL.N: 86% MH-MAIL(5)-2 + " MH-MAIL.N: 71% MH-MAIL(5)-2 +fault[s], program PS1.04: 26% PS1:4-15 + " PS2.01: 82% PS2:1-12 + " PS2.03: 65% PS2:3-10 + " PS2.03: 65% PS2:3-10 +fcheck FSCK.8: 58% FSCK(8)-1 +fchmod(fd, mode) PS1.06: 65% PS1:6-30 +fchown CHOWN.2: 6% CHOWN(2)-1 +fchown(fd, owner, group) PS1.06: 65% PS1:6-29 +Fclosures PS2.09: 1% PS2:9-3 + " PS2.09: 54% PS2:9-95 + " PS2.09: 58% PS2:9-101 + " PS2.09: 58% PS2:9-101 + " PS2.09: 58% PS2:9-101 +fclose, fflush - close or flush a stream FCLOSE.3S: 6% FCLOSE(3S)-1 +fcntl CLOSE.2: 68% CLOSE(2)-1 + " PS1.08: 63% PS1:8-25 + " SMM.12A: 56% SMM:12-13 +fcntl - file control FCNTL.2: 1% FCNTL(2)-1 +Fcvt ECVT.3: 58% ECVT(3)-1 +fcntl call PS1.08: 59% PS1:8-24 + " PS1.08: 64% PS1:8-26 + " PS1.08: 65% PS1:8-26 + " PS1.08: 66% PS1:8-26 +fcntl(d, cmd, arg) PS1.06: 40% PS1:6-19 +FD_CLR PS1.08: 26% PS1:8-9 +FD_ISSET PS1.07a: 75% PS1:7-18 + " PS1.08: 27% PS1:8-10 + " PS1.08: 27% PS1:8-10 +FD_SET PS1.07a: 74% PS1:7-18 + " PS1.08: 26% PS1:8-9 +FD_SETSIZE PS1.08: 26% PS1:8-9 +FD_ZERO PS1.07a: 74% PS1:7-18 + " PS1.08: 28% PS1:8-10 +Feldman PS1.03: 60% PS1:3-7 +fd, argument FLOCK.2: 91% FLOCK(2)-1 + " FLOCK.2: 93% FLOCK(2)-1 +fd, descriptor CHMOD.2: 8% CHMOD(2)-1 + " SELECT.2: 34% SELECT(2)-1 +fdate - return date and time in an ASCII string FDATE.3F: 7% FDATE(3F)-1 +fdopen FOPEN.3S: 2% FOPEN(3S)-1 +feature[s], language USD.01: 97% USD:1-14 + " USD.06: 51% USD:6-6 +feature[s], protocol SMM.07: 85% SMM:7-1 + " SMM.15: 78% SMM:15-22 + " SMM.07A: 76% SMM:07-32 +feature of MH MH-PROFILE.N: 72% MH-PROFILE(5)-5 + " USD.08: 11% USD:8-10 + " USD.08: 73% USD:8-89 +features of UNIX USD.01: 86% USD:1-13 + " USD.02: 78% USD:2-10 + " USD.14: 5% USD:14-3 +features of Yacc SMM.19: 19% SMM:19-6 +fed SMM.12A: 30% SMM:12-7 +Federation USD.34: 1% USD:34-1 + " USD.34: 30% USD:34-4 + " USD.34: 31% USD:34-4 + " USD.34: 82% USD:34-10 +fees, Tuition USD.07: 7% USD:7-2 + " USD.07: 7% USD:7-3 + " USD.07: 9% USD:7-3 + " USD.07: 11% USD:7-3 +Feiertag71 SMM.14: 9% SMM:14-3 + " SMM.14: 86% SMM:14-13 + " SMM.14: 95% SMM:14-14 +Feinler78 SMM.16: 90% SMM:16-12 + " SMM.16: 92% SMM:16-12 + " SMM.16: 93% SMM:16-12 + " SMM.16: 94% SMM:16-12 + " SMM.16: 95% SMM:16-12 +Feldman, S. I. EFL.1: 91% EFL(1)-1 +Fellowship, IBM Graduate USD.15: 2% USD:15-1 + " USD.16: 4% USD:16-1 +feof FERROR.3S: 6% FERROR(3S)-1 +ferrors, feofs, clearerrs, fileno - stream status inquiry FERROR.3S: 5% FERROR(3S)-1 +fetch DBM.3X: 8% DBM(3X)-1 +FFLAGS MAKE.1: 56% MAKE(1)-2 +fflush STDIO.3S: 55% STDIO(3S)-1 +fflush, Use ABORT.3: 90% ABORT(3)-1 +fflush - flush a stream FCLOSE.3S: 7% FCLOSE(3S)-1 +ffrac FLMIN.3F: 6% FLMIN(3F)-1 +fg CSH.1: 54% CSH(1)-11 + " USD.04: 78% USD:4-38 +fg, foreground command CSH.1: 7% CSH(1)-2 +fg command USD.04: 19% USD:4-9 + " USD.04: 20% USD:4-9 + " USD.04: 43% USD:4-20 + " USD.17: 10% USD:17-5 +fgetc GETC.3S: 4% GETC(3S)-1 +fgetc - get a character GETC.3F: 7% SMM:1-40 +fgets - get a string from a stream GETS.3S: 6% GETS(3S)-1 +FGREP USD.32: 74% USD:32-11 + " USD.32: 74% USD:32-11 + " GREP.1: 1% GREP(1)-1 +fgrep, sed, lex, awk performance comparison, wc, grep, egrep, USD.19: 85% USD:19-6 +fi, /dev/console SMM.01: 72% SMM:1-43 + " SMM.07: 11% SMM:7-1 + " SMM.08: 81% SMM:8-3 + " SMM.11: 83% SMM:11-13 + " SMM.07A: 10% SMM:07-7 +Field[s] DBX.5: 86% DBX(5)-4 + " SMM.19: 21% SMM:19-7 + " USD.19: 14% USD:19-2 + " USD.19: 15% USD:19-2 + " USD.19: 15% USD:19-2 + " USD.19: 16% USD:19-2 + " USD.24: 9% USD:24-4 + " USD.24: 54% USD:24-18 + " USD.24: 56% USD:24-18 + " USD.24: 9% USD:24-4 +field width PS1.02: 71% PS1:2-24 + " PS1.03: 33% PS1:3-5 + " PS1.03: 84% PS1:3-11 + " PS2.10: 64% PS2:10-56 +File[s] PS1.06: 50% PS1:6-24 +field[s], %X ROFFBIB.1: 34% ROFFBIB(1)-1 + " USD.29: 17% USD:29-2 + " USD.29: 22% USD:29-3 + " USD.29: 31% USD:29-3 + " USD.29: 63% USD:29-6 + " USD.29: 63% USD:29-7 +field, -component ANNO.N: 7% ANNO(1)-1 + " ANNO.N: 59% ANNO(1)-1 + " MH-CHART.N: 4% MH-CHART(1)-1 + " USD.08: 13% USD:8-13 + " USD.08: 13% USD:8-13 + " USD.08: 88% USD:8-108 +field, act SMM.15: 9% SMM:15-4 + " SMM.15: 9% SMM:15-4 + " SMM.15: 25% SMM:15-8 +field[s], command SMM.10: 48% SMM:10-13 +field[s], count RMT.8C: 75% RMT(8C)-1 + " SMM.13: 41% SMM:13-15 +field, E SMM.07: 72% SMM:7-1 + " SMM.07: 73% SMM:7-1 + " USD.31: 36% USD:31-6 + " SMM.07A: 64% SMM:07-27 + " SMM.07A: 65% SMM:07-27 +field, F SMM.07: 69% SMM:7-1 + " USD.31: 9% USD:31-2 + " USD.31: 16% USD:31-3 + " USD.31: 44% USD:31-8 + " SMM.07A: 62% SMM:07-26 +field, host SMM.07A: 51% SMM:07-23 +field[s], input SCANF.3S: 24% SCANF(3S)-1 + " SCANF.3S: 27% SCANF(3S)-1 + " SCANF.3S: 31% SCANF(3S)-1 + " SCANF.3S: 44% SCANF(3S)-1 + " SCANF.3S: 65% SCANF(3S)-2 + " SCANF.3S: 68% SCANF(3S)-2 + " USD.19: 16% USD:19-2 + " USD.19: 65% USD:19-5 +field, name DIR.5: 70% DIR(5)-1 + " SMM.11: 41% SMM:11-6 + " SMM.11: 42% SMM:11-6 + " SMM.11: 42% SMM:11-6 + " SMM.11: 53% SMM:11-7 + " SMM.11: 61% SMM:11-8 + " USD.31: 17% USD:31-3 + " USD.31: 78% USD:31-13 + " WINDOW.1: 98% WINDOW(1)-7 +fields, permits individual AP.N: 34% AP(8)-1 + " DP.N: 43% DP(8)-1 + " SCAN.N: 60% SCAN(1)-1 + " USD.08: 52% USD:8-62 + " USD.08: 75% USD:8-91 + " USD.08: 76% USD:8-94 +field[s], print a field or USD.19: 19% USD:19-2 +fields, printing AWK.1: 85% AWK(1)-2 +Field[s], Records and USD.19: 13% USD:19-2 +field, rval SMM.19: 24% SMM:19-7 + " SMM.19: 25% SMM:19-8 + " SMM.19: 39% SMM:19-11 + " SMM.19: 39% SMM:19-11 + " SMM.19: 39% SMM:19-11 + " SMM.19: 40% SMM:19-11 +field[s], size DBX.5: 18% DBX(5)-1 + " FIND.1: 63% FIND(1)-2 + " SMM.05: 34% SMM:5-7 + " SMM.05: 34% SMM:5-7 + " SMM.13: 30% SMM:13-11 +field[s], split into USD.19: 57% USD:19-5 +field[s], status QUOTAON.8: 81% QUOTAON(8)-1 +field[s], subject MAIL.1: 15% MAIL(1)-1 + " MAIL.1: 74% MAIL(1)-5 + " MAIL.1: 80% MAIL(1)-5 + " MH.N: 26% MH(1)-1 + " USD.07: 74% USD:7-17 +field, subnet IFCONFIG.8C: 78% IFCONFIG(8C)-2 + " SMM.01: 65% SMM:1-40 +field, time SMM.09: 26% SMM:9-6 + " SMM.09: 45% SMM:9-10 + " SMM.09: 46% SMM:9-10 +fields, trace SMM.07A: 79% SMM:07-36 + " SMM.07A: 83% SMM:07-37 +field, window SMM.13: 78% SMM:13-26 + " SMM.13: 78% SMM:13-26 + " SMM.12A: 78% SMM:12-18 +field character USD.31: 78% USD:31-12 +field delimiter USD.24: 56% USD:24-18 + " USD.24: 57% USD:24-18 +field length[s] USD.24: 56% USD:24-18 + " USD.24: 56% USD:24-18 +field separator[s] USD.19: 18% USD:19-2 + " USD.19: 29% USD:19-3 + " USD.19: 58% USD:19-5 +field tag[s] USD.31: 24% USD:31-4 + " USD.31: 24% USD:31-4 + " USD.31: 25% USD:31-4 +Field Variable[s] USD.19: 54% USD:19-5 +field width PRINTF.3S: 44% PRINTF(3S)-1 + " PRINTF.3S: 46% PRINTF(3S)-1 + " PRINTF.3S: 48% PRINTF(3S)-1 + " PRINTF.3S: 48% PRINTF(3S)-1 + " PRINTF.3S: 52% PRINTF(3S)-2 + " PRINTF.3S: 60% PRINTF(3S)-2 + " PRINTF.3S: 62% PRINTF(3S)-2 + " PRINTF.3S: 90% PRINTF(3S)-2 + " SCANF.3S: 22% SCANF(3S)-1 + " SCANF.3S: 29% SCANF(3S)-1 + " SCANF.3S: 49% SCANF(3S)-1 +fields within line[s] USD.19: 76% USD:19-6 +fignore shell variable CSH.1: 14% CSH(1)-3 +file, -f AWK.1: 8% AWK(1)-1 + " LOGGER.1: 13% LOGGER(1)-1 + " LOGGER.1: 60% LOGGER(1)-1 +file, -format AP.N: 32% AP(8)-1 + " DP.N: 40% DP(8)-1 + " SCAN.N: 60% SCAN(1)-1 + " USD.08: 52% USD:8-62 + " USD.08: 75% USD:8-91 + " USD.08: 76% USD:8-94 +file, /etc/rc PS.1: 52% PS(1)-2 + " SAVECORE.8: 15% SAVECORE(8)-1 + " SMM.02: 81% SMM:2-26 + " SMM.06: 9% SMM:6-2 + " SMM.07A: 24% SMM:07-12 +file, access and modify times on a PS1.06: 65% PS1:6-30 +file, accessibility of a ACCESS.3F: 8% ACCESS(3F)-1 +File, Adding Something to the End of a USD.13: 74% USD:13-12 +file, accounting PS1.06: 49% PS1:6-23 + " PS1.06: 97% PS1:6-42 + " PS2.01: 24% PS2:1-4 +file, advisory read or write lock on a PS1.06: 70% PS1:6-31 +file, attributes of a PS1.06: 64% PS1:6-29 +file, core PS1.02: 11% PS1:2-6 + " PS1.02: 11% PS1:2-6 + " PS1.10: 9% PS1:10-3 + " PS1.10: 11% PS1:10-3 + " PS1.10: 14% PS1:10-3 + " PS1.10: 15% PS1:10-4 + " PS1.10: 38% PS1:10-8 + " PS1.10: 45% PS1:10-9 + " PS1.10: 46% PS1:10-9 + " PS1.10: 49% PS1:10-10 + " PS1.10: 96% PS1:10-27 + " PS1.10: 96% PS1:10-27 + " PS2.01: 83% PS2:1-13 + " PS1.11a: 40% PS1:11-3 +file, core image PS1.06: 23% PS1:6-13 + " PS1.10: 3% + " PS1.10: 18% PS1:10-4 + " PS1.10: 49% PS1:10-9 + " PS1.10: 49% PS1:10-10 + " PS1.10: 50% PS1:10-10 + " PS2.03: 66% PS2:3-10 +file[s], alias SMM.12A: 93% SMM:12-22 + " SMM.12A: 95% SMM:12-22 +file[s], aliases ALIASES.5: 4% ALIASES(5)-1 + " ALIASES.5: 67% ALIASES(5)-1 + " L_ALIASES.5: 10% L.ALIASES(5)-1 + " MH-ALIAS.N: 4% MH-ALIAS(5)-1 + " SMM.09: 62% SMM:9-14 + " USD.08: 61% USD:8-75 +file, append to FCNTL.2: 57% FCNTL(2)-1 + " OPEN.2: 22% OPEN(2)-1 +file[s], description PS1.12: 4% PS1:12-1 + " PS1.12: 13% PS1:12-2 + " PS1.12: 23% PS1:12-2 + " PS1.12: 35% PS1:12-3 + " PS1.12: 36% PS1:12-4 + " PS1.12: 49% PS1:12-4 + " PS1.12: 49% PS1:12-4 + " PS1.12: 55% PS1:12-5 + " PS1.12: 56% PS1:12-5 + " PS1.12: 56% PS1:12-5 + " PS1.12: 59% PS1:12-5 + " PS1.12: 61% PS1:12-5 + " PS1.12: 72% PS1:12-6 + " PS1.12: 73% PS1:12-6 + " PS1.12: 78% PS1:12-7 + " PS1.12: 79% PS1:12-7 + " PS1.12: 80% PS1:12-8 + " PS1.12: 81% PS1:12-8 + " PS1.12: 92% PS1:12-9 + " PS1.12: 94% PS1:12-9 + " PS1.12: 96% PS1:12-9 +File, device, and portal removal PS1.06: 63% PS1:6-29 +files, appending to CSH.1: 42% CSH(1)-9 + " FOPEN.3S: 26% FOPEN(3S)-1 +file, appending to a SH.1: 47% SH(1)-3 +file[s], argument FIND.1: 71% FIND(1)-2 + " FIND.1: 72% FIND(1)-2 + " M4.1: 4% M4(1)-1 + " RENAME.2: 39% RENAME(2)-1 + " USD.04: 62% USD:4-30 + " USD.04: 80% USD:4-38 +file, ASCII GROUP.5: 33% GROUP(5)-1 + " MHOOK.N: 7% MHOOK(1)-1 + " PASSWD.5: 38% PASSWD(5)-1 + " RCSFILE.N: 3% RCSFILE(5)-1 + " REMOTE.5: 4% REMOTE(5)-1 + " SMM.16: 37% SMM:16-5 + " USD.08: 31% USD:8-35 +file, assembler language LISZT.1: 68% LISZT(1)-1 +file[s], bibliography ADDBIB.1: 48% ADDBIB(1)-1 + " USD.29: 27% USD:29-3 + " USD.29: 86% USD:29-9 +file[s], Binary DIFF.1: 7% DIFF(1)-1 + " FTP.1C: 99% FTP(1C)-7 + " LPR.1: 88% LPR(1)-2 + " SMM.09: 52% SMM:9-11 + " STRINGS.1: 28% STRINGS(1)-1 + " USD.04: 72% USD:4-35 + " USD.04: 91% USD:4-42 + " USD.16: 34% USD:16-6 + " UUENCODE.1C: 5% UUENCODE(1C)-1 + " UUENCODE.1C: 15% UUENCODE(1C)-1 + " UUSEND.1C: 85% UUSEND(1C)-1 +file, block special FIND.1: 32% FIND(1)-1 +file[s], C source CTAGS.1: 43% CTAGS(1)-1 + " MKSTR.1: 35% MKSTR(1)-1 + " USD.17: 57% USD:17-25 +file[s], cat CATMAN.8: 3% CATMAN(8)-1 + " USD.02: 15% USD:2-3 + " USD.02: 60% USD:2-7 + " USD.13: 71% USD:13-12 +file, cf LPD.8: 35% LPD(8)-1 + " SMM.07: 83% SMM:7-1 + " SMM.07A: 74% SMM:07-32 +File, Changing the Name of a USD.13: 66% USD:13-12 +file[s], character special FIND.1: 32% FIND(1)-1 + " IOCTL.2: 25% IOCTL(2)-1 +file[s], combine several USD.13: 73% USD:13-12 +files, concatenating CAT.1: 3% CAT(1)-1 +file[s], configuration SMM.12A: 94% SMM:12-22 + " SMM.12A: 95% SMM:12-22 +file[s], copy TIP.1C: 11% TIP(1C)-1 + " TIP.1C: 12% TIP(1C)-1 + " USD.15: 5% USD:15-3 +files, copying subtrees of CP.1: 84% +file[s], core SMM.12A: 28% SMM:12-7 +file, core - format of memory image CORE.5: 3% CORE(5)-1 +file, core image ADB.1: 3% ADB(1)-1 + " USD.04: 93% USD:4-42 +file, count blocks in a SUM.1: 12% unknown +files, cp - copy CP.1: 4% CP(1)-1 +file, creat - create a new CREAT.2: 1% CREAT(2)-1 +files, create BADSECT.8: 2% BADSECT(8)-1 + " SMM.01: 45% SMM:1-29 + " SMM.13: 32% SMM:13-12 +file[s], crontab CRON.8: 31% CRON(8)-1 + " CRON.8: 90% CRON(8)-1 + " SMM.12: 81% SMM:12-1 + " SMM.12A: 80% SMM:12-19 +file[s], cross reference LXREF.1: 11% LXREF(1)-1 + " LXREF.1: 19% LXREF(1)-1 + " LXREF.1: 23% LXREF(1)-1 +file, cshrc RCP.1C: 95% RCP(1C)-1 + " SMM.12: 55% SMM:12-1 + " SU.1: 83% SU(1)-1 + " USD.04: 33% USD:4-15 + " USD.04: 35% USD:4-16 + " USD.04: 35% USD:4-16 + " USD.04: 51% USD:4-23 + " USD.07: 2% USD:7-2 + " WHICH.1: 53% WHICH(1)-1 + " SMM.12A: 54% SMM:12-13 +file, Current USD.16: 6% USD:16-2 +file[s], database MKHOSTS.8: 52% MKHOSTS(8)-1 + " MKPASSWD.8: 63% MKPASSWD(8)-1 + " USD.31: 47% USD:31-8 +files, DBM SMM.07: 38% SMM:7-1 + " SMM.07: 38% SMM:7-1 + " SMM.07: 38% SMM:7-1 + " SMM.07A: 34% SMM:07-16 + " SMM.07A: 34% SMM:07-16 + " SMM.07A: 34% SMM:07-16 +file[s], differences between two USD.01: 74% USD:1-11 +file[s], disk USD.09: 20% USD:9-3 + " USD.14: 9% USD:14-3 + " USD.14: 25% USD:14-7 + " USD.14: 25% USD:14-7 + " USD.14: 25% USD:14-7 + " USD.14: 61% USD:14-15 + " USD.14: 85% USD:14-20 + " USD.14: 86% USD:14-21 +file[s], display PS.4: 36% PS(4)-1 + " PS.4: 42% PS(4)-1 + " PS.4: 44% PS(4)-1 + " PS.4: 67% PS(4)-1 +file, ed USD.01: 56% USD:1-9 + " USD.01: 61% USD:1-10 + " USD.01: 62% USD:1-10 + " USD.03: 32% USD:3-8 + " USD.03: 90% USD:3-22 + " USD.13: 77% USD:13-13 +file, encrypt and decrypt the contents of the USD.16: 5% USD:16-2 +file[s], encrypted ED.1: 2% ED(1)-1 + " SMM.17: 67% SMM:17-2 + " CRYPT.1: 26% CRYPT(1)-1 +file, end of the last USD.24: 51% USD:24-17 +file, entry LOOKBIB.1: 43% LOOKBIB(1)-1 + " USD.30: 15% USD:30-2 + " USD.30: 17% USD:30-2 + " USD.30: 37% USD:30-4 + " USD.30: 42% USD:30-5 +file[s], eqn EQN.1: 7% EQN(1)-1 + " USD.27: 9% USD:27-2 + " USD.27: 91% USD:27-10 + " USD.27: 94% USD:27-10 + " USD.27: 94% USD:27-10 +file, equiv SMM.01: 70% SMM:1-42 + " SMM.01: 71% SMM:1-42 + " SMM.01: 71% SMM:1-42 + " SMM.01: 71% SMM:1-42 +file, error log SMM.01: 75% SMM:1-46 + " SMM.06: 92% SMM:6-7 + " SMM.06: 97% SMM:6-7 +file, exclusive access to a SMM.12A: 57% SMM:12-13 + " SMM.13: 32% SMM:13-12 + " OPEN.2: 94% OPEN(2)-2 + " OPEN.2: 27% OPEN(2)-1 + " OPEN.2: 24% OPEN(2)-1 +file[s], executable ADVENTURE.6: 82% ADVENTURE(6)-1 + " CHMOD.2: 23% CHMOD(2)-1 + " CHMOD.2: 31% CHMOD(2)-1 + " EXECL.3: 78% EXECL(3)-2 + " LS.1: 46% LS(1)-1 + " PC.1: 5% PC(1)-1 + " SH.1: 65% SH(1)-4 + " SMM.10: 88% SMM:10-21 + " STICKY.8: 12% STICKY(8)-1 + " USD.03: 40% USD:3-10 + " USD.16: 34% USD:16-6 + " WHICH.1: 75% WHICH(1)-1 + " NLIST.3: 21% NLIST(3)-1 +files, Execution SMM.09: 3% SMM:9-2 + " SMM.09: 4% SMM:9-2 + " UUXQT.8C: 16% UUXQT(8C)-1 + " UUXQT.8C: 40% UUXQT(8C)-1 +file[s], finding patterns or words in USD.13: 92% USD:13-15 +file, form FORW.N: 39% FORW(1)-1 + " MHL.N: 34% MHL(1)-1 + " REPL.N: 42% REPL(1)-1 + " USD.08: 22% USD:8-23 + " USD.08: 28% USD:8-30 + " USD.08: 48% USD:8-57 +file, formatted INDENT.1: 47% INDENT(1)-1 + " LPD.8: 49% LPD(8)-1 +file, frozen configuration SENDMAIL.8: 25% SENDMAIL(8)-1 + " SMM.07: 13% SMM:7-1 + " SMM.07A: 12% SMM:07-8 +files, disk PS2.01: 10% PS2:1-2 + " PS2.01: 18% PS2:1-3 + " PS2.01: 34% PS2:1-5 +file[s], error PS1.17: 92% PS1:17-6 + " PS2.03: 16% PS2:3-3 + " PS2.03: 34% PS2:3-6 + " PS2.03: 81% PS2:3-13 +file[s], executable PS1.11a: 13% PS1:11-1 +file[s], header PS1.14: 34% PS1:14-5 + " PS1.14: 35% PS1:14-5 + " PS1.14: 35% PS1:14-5 + " PS1.14: 35% PS1:14-5 + " PS1.15: 76% PS1:15-22 + " PS1.15: 76% PS1:15-22 + " PS1.15: 76% PS1:15-22 + " PS1.18: 5% PS1:18-3 +file[s], holes in PS1.06: 68% PS1:6-31 +file[s], initialization PS2.10: 29% PS2:10-29 + " PS2.10: 29% PS2:10-29 + " PS2.10: 30% PS2:10-29 + " PS2.10: 72% PS2:10-63 + " PS2.10: 81% PS2:10-74 +file, input PS1.01: 82% PS1:1-28 + " PS1.04: 34% PS1:4-19 + " PS1.04: 39% PS1:4-21 + " PS2.01: 75% PS2:1-12 + " PS2.01: 75% PS2:1-12 + " PS2.03: 81% PS2:3-13 + " PS2.10: 56% PS2:10-50 + " PS2.10: 57% PS2:10-50 + " PS2.10: 66% PS2:10-56 +File[s], Internal PS1.02: 74% PS1:2-25 +file, map PS2.09: 37% PS2:9-66 + " PS2.09: 37% PS2:9-66 + " PS2.09: 37% PS2:9-66 + " PS2.09: 37% PS2:9-66 + " PS2.09: 45% PS2:9-81 +file, multiple names for a PS1.06: 66% PS1:6-30 +file[s], Object PS1.02: 3% PS1:2-4 + " PS1.02: 4% PS1:2-4 + " PS1.04: 49% PS1:4-26 + " PS1.04: 49% PS1:4-26 + " PS1.12: 21% PS1:12-2 + " PS1.12: 24% PS1:12-2 + " PS1.12: 33% PS1:12-3 + " PS1.12: 71% PS1:12-6 + " PS1.12: 84% PS1:12-8 + " PS1.13: 57% PS1:13-11 + " PS2.01: 11% PS2:1-2 + " PS2.09: 36% PS2:9-66 + " PS2.09: 36% PS2:9-66 + " PS2.09: 38% PS2:9-68 + " PS2.09: 38% PS2:9-68 + " PS2.09: 38% PS2:9-68 + " PS2.09: 60% PS2:9-104 + " PS2.09: 60% PS2:9-104 + " PS2.09: 75% PS2:9-123 + " PS2.09: 75% PS2:9-123 + " PS2.09: 75% PS2:9-124 + " PS2.09: 76% PS2:9-124 + " PS2.09: 77% PS2:9-125 + " PS2.09: 77% PS2:9-125 + " PS2.09: 77% PS2:9-125 + " PS2.09: 77% PS2:9-126 + " PS2.09: 77% PS2:9-126 + " PS2.09: 77% PS2:9-126 + " PS2.09: 77% PS2:9-126 + " PS2.09: 77% PS2:9-126 + " PS2.09: 77% PS2:9-126 + " PS2.09: 77% PS2:9-126 + " PS2.09: 77% PS2:9-126 + " PS2.09: 77% PS2:9-126 + " PS2.09: 77% PS2:9-126 + " PS2.09: 78% PS2:9-128 + " PS2.09: 78% PS2:9-128 + " PS1.11a: 68% PS1:11-5 +file, offset into a PS1.06: 68% PS1:6-30 +file[s], open PS1.02: 46% PS1:2-15 + " PS1.06: 60% PS1:6-28 + " PS2.01: 32% PS2:1-5 + " PS2.01: 32% PS2:1-5 + " PS2.01: 50% PS2:1-7 + " PS2.01: 52% PS2:1-8 + " PS2.01: 54% PS2:1-8 + " PS2.01: 55% PS2:1-8 + " PS2.01: 57% PS2:1-9 + " PS2.01: 60% PS2:1-9 + " PS2.03: 20% PS2:3-4 + " PS2.03: 26% PS2:3-5 + " PS2.03: 38% PS2:3-7 + " PS2.03: 39% PS2:3-7 + " PS2.04: 79% PS2:4-8 + " PS2.04: 84% PS2:4-8 + " PS2.04: 84% PS2:4-8 + " PS2.04: 86% PS2:4-8 + " PS2.04: 87% PS2:4-9 + " PS2.05: 9% PS2:5-1 + " PS2.05: 10% PS2:5-1 + " PS2.05: 13% PS2:5-2 +file, ownership of a PS1.06: 65% PS1:6-29 +file[s], Pascal PS1.04: 53% PS1:4-28 + " PS1.04: 60% PS1:4-31 + " PS1.04: 61% PS1:4-31 + " PS1.04: 61% PS1:4-31 + " PS1.04: 85% PS1:4-43 + " PS1.04: 95% PS1:4-48 + " PS2.09: 36% PS2:9-65 +file, password PS2.01: 77% PS2:1-12 + " PS2.01: 79% PS2:1-12 + " PS2.01: 81% PS2:1-12 + " PS2.03: 96% PS2:3-15 + " PS2.09: 35% PS2:9-63 + " PS2.09: 41% PS2:9-72 + " PS2.09: 47% PS2:9-84 +file[s], RCS PS1.13: 9% PS1:13-2 + " PS1.13: 10% PS1:13-2 + " PS1.13: 11% PS1:13-2 + " PS1.13: 12% PS1:13-3 + " PS1.13: 12% PS1:13-3 + " PS1.13: 12% PS1:13-3 + " PS1.13: 17% PS1:13-3 + " PS1.13: 18% PS1:13-4 + " PS1.13: 20% PS1:13-4 + " PS1.13: 22% PS1:13-4 + " PS1.13: 22% PS1:13-5 + " PS1.13: 22% PS1:13-5 + " PS1.13: 22% PS1:13-5 + " PS1.13: 23% PS1:13-5 + " PS1.13: 24% PS1:13-5 + " PS1.13: 24% PS1:13-5 + " PS1.13: 26% PS1:13-5 + " PS1.13: 33% PS1:13-6 + " PS1.13: 34% PS1:13-6 + " PS1.13: 34% PS1:13-6 + " PS1.13: 34% PS1:13-6 + " PS1.13: 35% PS1:13-7 + " PS1.13: 35% PS1:13-7 + " PS1.13: 35% PS1:13-7 + " PS1.13: 35% PS1:13-7 + " PS1.13: 37% PS1:13-8 + " PS1.13: 37% PS1:13-8 + " PS1.13: 38% PS1:13-8 + " PS1.13: 38% PS1:13-8 + " PS1.13: 39% PS1:13-8 + " PS1.13: 39% PS1:13-8 + " PS1.13: 39% PS1:13-8 + " PS1.13: 41% PS1:13-8 + " PS1.13: 52% PS1:13-10 + " PS1.13: 53% PS1:13-10 + " PS1.13: 54% PS1:13-10 + " PS1.13: 54% PS1:13-10 + " PS1.13: 61% PS1:13-12 + " PS1.13: 61% PS1:13-13 + " PS1.13: 62% PS1:13-13 + " PS1.13: 62% PS1:13-13 + " PS1.13: 62% PS1:13-13 + " PS1.13: 63% PS1:13-13 + " PS1.13: 63% PS1:13-13 + " PS1.13: 66% PS1:13-13 + " PS1.13: 69% PS1:13-14 + " PS1.13: 71% PS1:13-14 + " PS1.13: 71% PS1:13-14 + " PS1.13: 71% PS1:13-14 + " PS1.13: 71% PS1:13-14 + " PS1.13: 73% PS1:13-15 + " PS1.13: 76% PS1:13-16 + " PS1.13: 83% PS1:13-19 + " PS1.13: 86% PS1:13-19 + " PS1.13: 88% PS1:13-20 + " PS1.13: 88% PS1:13-20 + " PS1.13: 88% PS1:13-20 + " PS1.13: 88% PS1:13-20 + " PS1.13: 89% PS1:13-20 + " PS1.13: 90% PS1:13-20 + " PS1.13: 95% PS1:13-21 + " PS1.13: 95% PS1:13-21 + " PS1.13: 97% PS1:13-22 + " PS1.13: 97% PS1:13-22 + " PS1.13: 97% PS1:13-22 + " PS1.13: 98% PS1:13-22 + " PS1.13: 98% PS1:13-22 + " PS1.13: 98% PS1:13-22 +file, rcsfile - format of RCS PS1.13: 76% PS1:13-16 +file[s], SCCS PS1.13: 97% PS1:13-22 + " PS1.13: 97% PS1:13-22 + " PS1.13: 99% PS1:13-22 + " PS1.14: 21% PS1:14-3 + " PS1.14: 37% PS1:14-5 + " PS1.14: 53% PS1:14-8 + " PS1.14: 60% PS1:14-9 + " PS1.14: 64% PS1:14-9 + " PS1.14: 67% PS1:14-9 + " PS1.14: 76% PS1:14-11 + " PS1.14: 76% PS1:14-11 + " PS1.14: 77% PS1:14-11 +file[s], script PS2.07: 39% PS2:7-17 + " PS2.07: 39% PS2:7-17 +file, semaphore PS1.13: 35% PS1:13-7 + " PS1.13: 54% PS1:13-10 + " PS1.13: 71% PS1:13-14 +file[s], sequential PS1.03: 7% PS1:3-3 + " PS1.03: 15% PS1:3-3 + " PS1.03: 73% PS1:3-9 +file[s], source PS1.11a: 92% PS1:11-6 + " PS1.11a: 93% PS1:11-6 + " PS1.11a: 94% PS1:11-6 +file[s], system abstractions for PS1.06: 1% +file access PS2.03: 11% PS2:3-3 +file addresses PS1.10: 46% PS1:10-9 + " PS1.10: 47% PS1:10-9 + " PS1.10: 47% PS1:10-9 +file containing null[s] PS1.16: 51% PS1:16-7 +File creation PS1.06: 59% PS1:6-28 +file descriptor[s] PS1.06: 17% PS1:6-11 + " PS1.06: 39% PS1:6-19 + " PS1.06: 98% PS1:6-42 + " PS1.07a: 88% PS1:7-22 + " PS1.08: 25% PS1:8-9 + " PS1.08: 26% PS1:8-9 + " PS1.08: 27% PS1:8-9 + " PS1.08: 27% PS1:8-10 + " PS1.08: 27% PS1:8-10 + " PS1.08: 29% PS1:8-10 + " PS1.08: 64% PS1:8-26 + " PS1.08: 98% PS1:8-41 + " PS2.01: 29% PS2:1-5 + " PS2.01: 30% PS2:1-5 + " PS2.01: 38% PS2:1-6 + " PS2.01: 54% PS2:1-8 + " PS2.01: 60% PS2:1-9 + " PS2.01: 60% PS2:1-9 + " PS2.01: 61% PS2:1-9 + " PS2.01: 61% PS2:1-9 + " PS2.01: 63% PS2:1-10 + " PS2.01: 63% PS2:1-10 + " PS2.01: 72% PS2:1-11 + " PS2.01: 73% PS2:1-11 + " PS2.01: 74% PS2:1-11 + " PS2.03: 25% PS2:3-4 + " PS2.03: 26% PS2:3-5 + " PS2.03: 26% PS2:3-5 + " PS2.03: 26% PS2:3-5 + " PS2.03: 26% PS2:3-5 + " PS2.03: 27% PS2:3-5 + " PS2.03: 27% PS2:3-5 + " PS2.03: 27% PS2:3-5 + " PS2.03: 27% PS2:3-5 + " PS2.03: 28% PS2:3-5 + " PS2.03: 28% PS2:3-5 + " PS2.03: 29% PS2:3-5 + " PS2.03: 34% PS2:3-6 + " PS2.03: 35% PS2:3-6 + " PS2.03: 38% PS2:3-7 + " PS2.03: 38% PS2:3-7 + " PS2.03: 38% PS2:3-7 + " PS2.03: 54% PS2:3-9 + " PS2.03: 55% PS2:3-9 + " PS2.03: 56% PS2:3-9 + " PS2.03: 57% PS2:3-9 + " PS2.03: 57% PS2:3-9 + " PS2.03: 58% PS2:3-9 + " PS2.03: 61% PS2:3-10 + " PS2.03: 61% PS2:3-10 + " PS2.03: 64% PS2:3-10 + " PS2.05: 9% PS2:5-1 + " PS2.10: 78% PS2:10-70 + " PS2.10: 78% PS2:10-70 + " PS1.18: 26% PS1:18-7 +file formats PS1.02: 1% + " PS1.02: 3% PS1:2-4 + " PS1.02: 43% PS1:2-15 + " PS1.10: 42% PS1:10-9 + " PS2.04: 96% PS2:4-9 +file input PS1.04: 63% PS1:4-32 + " PS1.04: 68% PS1:4-35 + " PS1.04: 87% PS1:4-44 +file mode[s] PS1.06: 60% PS1:6-28 + " PS1.13: 34% PS1:13-6 + " PS1.13: 53% PS1:13-10 +file name[s] PS1.02: 6% PS1:2-5 + " PS1.02: 47% PS1:2-15 + " PS1.02: 47% PS1:2-15 + " PS1.02: 79% PS1:2-26 + " PS1.03: 20% PS1:3-4 + " PS1.03: 21% PS1:3-4 + " PS1.03: 24% PS1:3-4 + " PS1.03: 25% PS1:3-4 + " PS1.03: 25% PS1:3-4 + " PS1.03: 26% PS1:3-4 + " PS1.03: 29% PS1:3-5 + " PS1.03: 54% PS1:3-7 + " PS1.03: 54% PS1:3-7 + " PS1.05: 57% PS1:5-8 + " PS1.06: 57% PS1:6-27 + " PS1.06: 58% PS1:6-27 + " PS1.06: 98% PS1:6-42 + " PS1.08: 13% PS1:8-5 + " PS1.12: 20% PS1:12-2 + " PS1.12: 52% PS1:12-4 + " PS1.12: 59% PS1:12-5 + " PS1.13: 23% PS1:13-5 + " PS1.13: 38% PS1:13-8 + " PS1.14: 95% PS1:14-14 + " PS1.17: 74% PS1:17-5 + " PS2.01: 14% PS2:1-3 + " PS2.01: 19% PS2:1-3 + " PS2.01: 62% PS2:1-9 + " PS2.01: 70% PS2:1-11 + " PS2.03: 34% PS2:3-6 + " PS2.03: 46% PS2:3-8 + " PS2.03: 47% PS2:3-8 + " PS2.09: 35% PS2:9-63 + " PS2.09: 35% PS2:9-63 + " PS2.09: 36% PS2:9-66 + " PS2.09: 38% PS2:9-68 + " PS2.09: 45% PS2:9-81 + " PS2.09: 73% PS2:9-120 + " PS2.09: 81% PS2:9-131 + " PS2.09: 82% PS2:9-132 + " PS2.09: 82% PS2:9-133 + " PS2.10: 61% PS2:10-53 +file naming convention[s] PS1.12: 61% PS1:12-5 +file output PS1.04: 51% PS1:4-27 + " PS1.04: 59% PS1:4-30 + " PS1.04: 59% PS1:4-30 + " PS1.04: 67% PS1:4-35 + " PS1.04: 68% PS1:4-35 + " PS1.04: 68% PS1:4-35 +file pointer[s] PS2.03: 13% PS2:3-3 + " PS2.03: 15% PS2:3-3 + " PS2.03: 16% PS2:3-3 + " PS2.03: 16% PS2:3-3 + " PS2.03: 19% PS2:3-4 + " PS2.03: 19% PS2:3-4 + " PS2.03: 19% PS2:3-4 + " PS2.03: 22% PS2:3-4 + " PS2.03: 23% PS2:3-4 + " PS2.03: 26% PS2:3-5 + " PS2.03: 27% PS2:3-5 + " PS2.03: 34% PS2:3-6 + " PS2.03: 83% PS2:3-13 +File position PS1.03: 17% PS1:3-4 + " PS1.03: 29% PS1:3-5 + " PS1.03: 31% PS1:3-5 + " PS1.03: 32% PS1:3-5 +file size creation, limit on PS1.06: 26% PS1:6-13 +file system[s] PS1.06: 1% + " PS1.06: 48% PS1:6-23 + " PS1.06: 48% PS1:6-23 + " PS1.06: 48% PS1:6-23 + " PS1.06: 48% PS1:6-23 + " PS1.06: 49% PS1:6-24 + " PS1.06: 56% PS1:6-26 + " PS1.06: 56% PS1:6-27 + " PS1.06: 57% PS1:6-27 + " PS1.06: 58% PS1:6-27 + " PS1.06: 58% PS1:6-27 + " PS1.06: 58% PS1:6-27 + " PS1.06: 61% PS1:6-28 + " PS1.06: 66% PS1:6-30 + " PS1.06: 67% PS1:6-30 + " PS1.06: 69% PS1:6-31 + " PS1.06: 71% PS1:6-32 + " PS1.06: 71% PS1:6-32 + " PS1.06: 71% PS1:6-32 + " PS1.06: 72% PS1:6-32 + " PS1.06: 72% PS1:6-32 + " PS1.06: 94% PS1:6-39 + " PS1.06: 98% PS1:6-42 + " PS1.07a: 30% PS1:7-8 + " PS1.07a: 41% PS1:7-10 + " PS1.07a: 46% PS1:7-11 + " PS1.07a: 76% PS1:7-19 + " PS1.10: 59% PS1:10-11 + " PS1.12: 20% PS1:12-2 + " PS1.12: 22% PS1:12-2 + " PS1.13: 6% PS1:13-2 + " PS2.01: 1% PS2:1-1 + " PS2.01: 2% PS2:1-1 + " PS2.01: 10% PS2:1-2 + " PS2.01: 10% PS2:1-2 + " PS2.01: 12% PS2:1-3 + " PS2.01: 20% PS2:1-4 + " PS2.01: 21% PS2:1-4 + " PS2.01: 21% PS2:1-4 + " PS2.01: 22% PS2:1-4 + " PS2.01: 27% PS2:1-4 + " PS2.01: 30% PS2:1-5 + " PS2.01: 31% PS2:1-5 + " PS2.01: 36% PS2:1-6 + " PS2.01: 40% PS2:1-6 + " PS2.01: 47% PS2:1-7 + " PS2.01: 48% PS2:1-7 + " PS2.01: 89% PS2:1-13 + " PS2.01: 91% PS2:1-14 + " PS2.01: 97% PS2:1-15 + " PS2.03: 25% PS2:3-5 + " PS2.03: 36% PS2:3-6 + " PS2.03: 39% PS2:3-7 + " PS2.03: 46% PS2:3-8 + " PS2.04: 63% PS2:4-6 + " PS2.04: 65% PS2:4-6 + " PS2.04: 72% PS2:4-7 + " PS2.04: 73% PS2:4-7 + " PS2.04: 74% PS2:4-7 + " PS2.04: 77% PS2:4-7 + " PS2.04: 82% PS2:4-8 + " PS2.04: 83% PS2:4-8 + " PS2.04: 91% PS2:4-9 + " PS2.04: 92% PS2:4-9 + " PS2.05: 1% PS2:5-1 + " PS2.05: 2% PS2:5-1 +File Table PS2.04: 79% PS2:4-8 + " PS2.05: 10% PS2:5-1 + " PS2.05: 10% PS2:5-1 + " PS2.05: 14% PS2:5-2 +file table entry PS2.04: 88% PS2:4-9 + " PS2.05: 11% PS2:5-1 + " PS2.05: 19% PS2:5-2 +file transfer protocol, FTP PS1.08: 43% PS1:8-17 +file type PS1.03: 5% PS1:3-3 + " PS1.06: 64% PS1:6-29 + " PS1.10: 42% PS1:10-9 +Fillfactor PS2.10: 24% PS2:10-23 + " PS2.10: 24% PS2:10-23 + " PS2.10: 24% PS2:10-24 + " PS2.10: 87% PS2:10-78 +files, gaps in LSEEK.2: 61% LSEEK(2)-1 +file, gateways HTABLE.8: 27% HTABLE(8)-1 + " HTABLE.8: 40% HTABLE(8)-1 + " HTABLE.8: 48% HTABLE(8)-1 + " HTABLE.8: 53% HTABLE(8)-1 + " SMM.01: 70% SMM:1-42 +file, group CHGRP.1: 13% CHGRP(1)-1 + " GETGRENT.3: 29% GETGRENT(3)-1 + " GETGRENT.3: 76% GETGRENT(3)-1 + " GETGRENT.3: 80% GETGRENT(3)-1 + " GROUP.5: 7% GROUP(5)-1 + " INITGROUPS.3: 26% INITGROUPS(3)-1 +file[s], header CONFIG.8: 53% CONFIG(8)-1 + " DBX.1: 92% DBX(1)-7 + " DBX.1: 92% DBX(1)-7 + " PC.1: 17% PC(1)-1 + " SMM.02: 12% SMM:2-5 + " SMM.02: 73% SMM:2-23 + " SMM.09: 19% SMM:9-5 + " SMM.12: 12% SMM:12-1 + " SMM.12: 36% SMM:12-1 + " SMM.12: 58% SMM:12-1 + " SMM.12: 66% SMM:12-1 + " SMM.12: 76% SMM:12-1 + " SMM.12: 77% SMM:12-1 + " SMM.12: 77% SMM:12-1 + " SMM.12: 77% SMM:12-1 + " SMM.13: 2% SMM:13-2 + " SMM.13: 2% SMM:13-2 + " SMM.13: 5% SMM:13-3 + " SMM.13: 5% SMM:13-3 + " SMM.13: 9% SMM:13-4 + " SMM.13: 9% SMM:13-4 + " SMM.13: 23% SMM:13-9 + " SMM.13: 65% SMM:13-23 + " SMM.19: 8% SMM:19-3 + " SMM.19: 9% SMM:19-3 + " SMM.19: 9% SMM:19-3 + " SMM.19: 9% SMM:19-3 + " SMM.19: 12% SMM:19-4 + " SMM.19: 88% SMM:19-24 + " STDIO.3S: 27% STDIO(3S)-1 + " SYSCALL.2: 53% SYSCALL(2)-1 + " USD.32: 72% USD:32-11 + " SMM.12A: 11% SMM:12-3 + " SMM.12A: 36% SMM:12-8 + " SMM.12A: 57% SMM:12-13 + " SMM.12A: 65% SMM:12-15 + " SMM.12A: 76% SMM:12-18 + " SMM.12A: 76% SMM:12-18 + " SMM.12A: 76% SMM:12-18 + " SMM.12A: 77% SMM:12-18 +file[s], help SMM.07: 11% SMM:7-1 + " SMM.07: 79% SMM:7-1 + " SMM.12: 31% SMM:12-1 + " USD.11: 84% USD:11-12 + " SMM.07A: 10% SMM:07-7 + " SMM.07A: 70% SMM:07-30 + " SMM.12A: 30% SMM:12-7 +file, history SMM.10: 8% SMM:10-3 + " SMM.10: 8% SMM:10-3 + " SMM.10: 48% SMM:10-13 + " SMM.10: 62% SMM:10-16 + " SMM.10: 71% SMM:10-18 + " SPELL.1: 48% SPELL(1)-1 + " SPELL.1: 53% SPELL(1)-1 +files, identical CMP.1: 85% CMP(1)-1 + " RDIST.1: 99% RDIST(1)-4 + " SMM.21: 69% SMM:21-5 +file[s], inaccessible ADB.1: 97% ADB(1)-6 + " ED.1: 97% ED(1)-6 + " EDQUOTA.8: 88% EDQUOTA(8)-1 + " GREP.1: 96% GREP(1)-2 + " REPQUOTA.8: 88% REPQUOTA(8)-1 +file[s], index INVERT.N: 64% INVERT(1)-1 + " LOOKBIB.1: 72% LOOKBIB(1)-1 + " USD.30: 22% USD:30-3 + " USD.30: 45% USD:30-5 + " USD.30: 45% USD:30-5 + " VGRIND.1: 39% VGRIND(1)-1 + " VGRIND.1: 40% VGRIND(1)-1 + " VGRIND.1: 62% VGRIND(1)-1 +files, individual FSPLIT.1: 6% FSPLIT(1)-1 + " SMM.02: 46% SMM:2-14 + " USD.01: 78% USD:1-12 + " USD.08: 2% USD:8-2 +file[s], information QUIZ.6: 67% QUIZ(6)-1 + " QUIZ.6: 74% QUIZ(6)-1 + " QUIZ.6: 75% QUIZ(6)-1 + " QUIZ.6: 96% QUIZ(6)-1 +file[s], initialization JOVE.N: 68% JOVE(1)-2 + " JOVE.N: 71% JOVE(1)-2 + " RESOLVER.3: 50% RESOLVER(3)-2 + " USD.17: 55% USD:17-24 + " USD.17: 93% USD:17-45 + " USD.17: 93% USD:17-45 +file, input file CC.1: 75% CC(1)-2 + " F77.1: 80% F77(1)-2 + " PI.1: 42% PI(1)-1 +file[s], Input from USD.04: 8% USD:4-5 +file, input line number in the current input USD.24: 79% USD:24-25 +file[s], key SMM.10: 83% SMM:10-20 + " USD.30: 16% USD:30-2 + " USD.30: 20% USD:30-3 + " USD.30: 22% USD:30-3 + " USD.30: 37% USD:30-4 +file[s], L-devices L-DEVICES.5: 2% L-DEVICES(5)-1 + " L_SYS.5: 48% L.SYS(5)-2 + " L_SYS.5: 65% L.SYS(5)-3 + " SMM.01: 59% SMM:1-36 + " SMM.01: 59% SMM:1-37 + " SMM.01: 59% SMM:1-37 + " SMM.09: 26% SMM:9-6 + " SMM.09: 72% SMM:9-16 +file, L-dialcodes L-DIALCODES.5: 6% L-DIALCODES(5)- + " SMM.01: 59% SMM:1-36 + " SMM.01: 59% SMM:1-37 + " SMM.09: 26% SMM:9-6 +file[s], lex CTAGS.1: 50% CTAGS(1)-1 + " SMM.12: 14% SMM:12-1 + " SMM.12A: 14% SMM:12-4 +file, lf PRINTCAP.5: 93% PRINTCAP(5)-2 + " SMM.06: 42% SMM:6-3 + " SMM.06: 60% SMM:6-5 +file[s], library AR.1: 7% AR(1)-1 + " LINT.1: 27% LINT(1)-1 +file, linked-to FIND.1: 65% FIND(1)-2 + " LN.1: 52% LN(1)-1 + " LS.1: 19% LS(1)-1 + " TAR.5: 89% TAR(5)-1 +files, lisp CTAGS.1: 48% CTAGS(1)-1 + " SMM.12: 14% SMM:12-1 + " SMM.12A: 14% SMM:12-4 +file[s], list FTPD.8C: 23% FTPD(8C)-1 + " SPELL.1: 66% SPELL(1)-1 + " USD.04: 79% USD:4-38 + " USD.04: 85% USD:4-40 +file[s], lock BINMAIL.1: 91% BINMAIL(1)-2 + " LPD.8: 80% LPD(8)-2 + " LPD.8: 84% LPD(8)-2 + " LPQ.1: 79% LPQ(1)-1 + " LPQ.1: 93% LPQ(1)-1 + " LPRM.1: 94% LPRM(1)-1 + " SMM.01: 34% SMM:1-22 + " SMM.06: 99% SMM:6-8 + " SMM.07: 11% SMM:7-1 + " SMM.07: 15% SMM:7-1 + " SMM.09: 26% SMM:9-6 + " SMM.09: 38% SMM:9-9 + " SMM.09: 84% SMM:9-18 + " SMM.09: 85% SMM:9-18 + " SMM.09: 85% SMM:9-18 + " SMM.09: 95% SMM:9-20 + " SMM.09: 95% SMM:9-20 + " SMM.09: 96% SMM:9-20 + " SMM.12: 51% SMM:12-1 + " SMM.14: 85% SMM:14-12 + " SMM.21: 46% SMM:21-4 + " SYSLINE.1: 84% SYSLINE(1)-2 + " TIP.1C: 97% TIP(1C)-4 + " SMM.07A: 10% SMM:07-7 + " SMM.07A: 14% SMM:07-8 + " SMM.07A: 89% SMM:07-38 +file[s], log HIER.7: 68% HIER(7)-4 + " HIER.7: 72% HIER(7)-5 + " IMPLOG.8C: 39% IMPLOG(8C)-1 + " SCRIPT.1: 88% SCRIPT(1)-1 + " SMM.01: 59% SMM:1-37 + " SMM.06: 42% SMM:6-3 + " SMM.09: 52% SMM:9-11 + " SMM.09: 84% SMM:9-18 + " SMM.09: 86% SMM:9-18 + " SMM.10: 32% SMM:10-9 + " SMM.10: 33% SMM:10-9 + " SMM.10: 71% SMM:10-18 + " SMM.10: 72% SMM:10-18 + " SYSLOG.3: 16% SYSLOG(3)-1 + " SYSLOG.3: 39% SYSLOG(3)-1 + " SYSLOG.3: 82% SYSLOG(3)-2 +file[s], login CSH.1: 1% CSH(1)-1 + " MSET.1: 32% MSET(1)-1 + " MSGS.1: 68% MSGS(1)-1 + " TSET.1: 36% TSET(1)-2 + " USD.04: 25% USD:4-11 + " USD.04: 28% USD:4-13 + " USD.04: 29% USD:4-13 + " USD.04: 44% USD:4-20 + " USD.04: 82% USD:4-39 + " USD.04: 84% USD:4-39 + " USD.04: 84% USD:4-40 + " USD.04: 98% USD:4-44 + " USD.09: 15% USD:9-2 + " USD.09: 50% USD:9-6 + " USD.09: 51% USD:9-6 + " USD.11: 76% USD:11-11 + " USD.15: 4% USD:15-2 +file, mail BINMAIL.1: 47% BINMAIL(1)-1 + " BINMAIL.1: 71% BINMAIL(1)-1 + " MAIL.1: 40% MAIL(1)-3 + " SH.1: 31% SH(1)-2 + " USD.07: 57% USD:7-14 +file, mailbox COMSAT.8C: 45% COMSAT(8C)-1 + " FROM.1: 36% FROM(1)-1 + " MAIL.1: 52% MAIL(1)-3 + " USD.04: 25% USD:4-11 +file, maildelivery MHOOK.N: 6% MHOOK(1)-1 + " MHOOK.N: 8% MHOOK(1)-1 + " MHOOK.N: 53% MHOOK(1)-3 + " MHOOK.N: 55% MHOOK(1)-3 + " MHOOK.N: 60% MHOOK(1)-3 + " MHOOK.N: 92% MHOOK(1)-4 + " USD.08: 31% USD:8-35 + " USD.08: 31% USD:8-35 + " USD.08: 33% USD:8-37 + " USD.08: 33% USD:8-37 + " USD.08: 33% USD:8-37 + " USD.08: 34% USD:8-38 +file, mailing a binary UUENCODE.1C: 13% UUENCODE(1C)-1 +file, mailrc MAIL.1: 25% MAIL(1)-2 + " MAIL.1: 96% MAIL(1)-6 + " USD.07: 25% USD:7-6 + " USD.07: 54% USD:7-13 +file[s], maintaining a group of related USD.04: 53% USD:4-25 +File, Making a Copy of a USD.13: 67% USD:13-12 +file[s], map MSET.1: 70% MSET(1)-1 + " SMM.14: 6% SMM:14-2 +file, mbox MAIL.1: 17% MAIL(1)-1 + " MAIL.1: 39% MAIL(1)-3 + " MAIL.1: 50% MAIL(1)-3 + " USD.07: 23% USD:7-6 +file[s], message IMPLOG.8C: 24% IMPLOG(8C)-1 + " MH-MAIL.N: 6% MH-MAIL(5)-1 + " MH-PROFILE.N: 18% MH-PROFILE(5)-2 + " MHL.N: 5% MHL(1)-1 + " MKSTR.1: 54% MKSTR(1)-1 + " MKSTR.1: 93% MKSTR(1)-1 + " REFILE.N: 65% REFILE(1)-1 + " RMM.N: 12% RMM(1)-1 + " RMM.N: 32% RMM(1)-1 + " USD.08: 27% USD:8-30 + " USD.08: 46% USD:8-55 + " USD.08: 51% USD:8-61 + " USD.08: 51% USD:8-61 + " USD.08: 67% USD:8-82 + " USD.08: 70% USD:8-86 +file, minfree LPD.8: 28% LPD(8)-1 + " SAVECORE.8: 60% SAVECORE(8)-1 + " SAVECORE.8: 64% SAVECORE(8)-1 +file[s], moving USD.01: 36% USD:1-6 + " MV.1: 13% MV(1)-1 +file[s], moving subtrees of TAR.1: 60% TAR(1)-1 +file[s], multiple SMM.11: 46% SMM:11-6 + " TAR.1: 3% TAR(1)-1 + " USD.16: 9% USD:16-2 + " USD.31: 23% USD:31-3 + " UUCP.1C: 84% UUCP(1C)-2 + " USD.16: 9% USD:16-2 +FILE, netrc FTP.1C: 90% FTP(1C)-7 + " FTP.1C: 90% FTP(1C)-7 + " FTP.1C: 91% FTP(1C)-7 + " FTP.1C: 94% FTP(1C)-7 + " REXEC.3: 28% REXEC(3)-1 + " SMM.12: 33% SMM:12-1 + " SMM.12A: 33% SMM:12-8 +file[s], New SMM.13: 52% SMM:13-18 + " USD.14: 25% USD:14-7 + " USD.14: 27% USD:14-7 + " USD.17: 32% USD:17-15 + " USD.17: 72% USD:17-33 +file[s], newsrc SMM.10: 76% SMM:10-19 + " SMM.10: 80% SMM:10-20 + " USD.09: 29% USD:9-4 + " USD.09: 40% USD:9-5 + " USD.09: 40% USD:9-5 +file[s], open DUP.2: 41% DUP(2)-1 + " FLOCK.2: 3% FLOCK(2)-1 + " FOPEN.3S: 62% FOPEN(3S)-1 + " FOPEN.3S: 84% FOPEN(3S)-1 + " INTRO.2: 14% INTRO(2)-1 + " INTRO.2: 21% INTRO(2)-2 + " INTRO.2: 26% INTRO(2)-2 + " INTRO.2: 27% INTRO(2)-2 + " OPEN.2: 35% OPEN(2)-1 + " POPEN.3: 53% POPEN(3)-1 + " PSTAT.8: 86% PSTAT(8)-3 + " SELECT.2: 79% SELECT(2)-2 + " SELECT.2: 84% SELECT(2)-2 + " SELECT.2: 87% SELECT(2)-2 + " SMM.01: 34% SMM:1-23 + " SMM.13: 7% SMM:13-4 + " SMM.13: 14% SMM:13-6 + " SMM.13: 14% SMM:13-6 + " SMM.14: 83% SMM:14-12 + " STAT.2: 15% STAT(2)-1 + " STDIO.3S: 19% STDIO(3S)-1 + " TEST.1: 42% TEST(1)-1 +file, open - open a file for reading or writing, or create a new OPEN.2: 1% OPEN(2)-1 +file[s], optional SMM.02: 49% SMM:2-15 + " SMM.12: 83% SMM:12-1 + " SMM.12A: 83% SMM:12-20 +files, Orphaned FSCK.8: 84% FSCK(8)-2 +file[s], Output to USD.04: 6% USD:4-4 +files, Pairs of RCS files and working CI.N: 5% CI(1)-1 + " CO.N: 3% CO(1)-1 +file, password SMM.12A: 2% SMM:12-2 + " SMM.12A: 33% SMM:12-8 + " SMM.12A: 42% SMM:12-10 +file, pattern DICTION.1: 63% DICTION(1)-1 + " USD.32: 49% USD:32-7 + " USD.32: 50% USD:32-7 +file[s], personal MH-ALIAS.N: 94% MH-ALIAS(5)-3 + " USD.08: 64% USD:8-77 + " USD.09: 9% USD:9-2 +file, posting LOOKBIB.1: 44% LOOKBIB(1)-1 + " USD.30: 15% USD:30-2 + " USD.30: 15% USD:30-2 + " USD.30: 16% USD:30-2 + " USD.30: 17% USD:30-2 + " USD.30: 41% USD:30-5 +file, primary alias MH-ALIAS.N: 78% MH-ALIAS(5)-3 + " MH-ALIAS.N: 83% MH-ALIAS(5)-3 + " POST.N: 59% POST(8)-1 + " USD.08: 63% USD:8-77 + " USD.08: 78% USD:8-96 +file[s], print PR.1: 3% PR(1)-1 + " USD.01: 34% USD:1-6 +file, printcap PRINTCAP.5: 5% PRINTCAP(5)-1 + " SMM.06: 9% SMM:6-2 + " SMM.06: 34% SMM:6-3 + " SMM.06: 34% SMM:6-3 + " SMM.06: 67% SMM:6-5 + " SMM.06: 96% SMM:6-7 +files, printing LPQ.1: 9% LPQ(1)-1 + " USD.01: 0% USD:1-1 + " USD.01: 31% USD:1-5 + " CAT.1: 2% CAT(1)-1 +file, private SMM.17: 89% SMM:17-3 + " USD.30: 65% USD:30-7 + " USD.30: 66% USD:30-7 + " USD.30: 98% USD:30-12 + " USD.31: 22% USD:31-3 +file, process EXECVE.2: 5% EXECVE(2)-1 + " EXECVE.2: 76% EXECVE(2)-2 + " EXECVE.2: 79% EXECVE(2)-2 + " EXECVE.2: 82% EXECVE(2)-2 + " EXECVE.2: 84% EXECVE(2)-2 + " EXECVE.2: 91% EXECVE(2)-2 + " USD.03: 46% USD:3-11 +file[s], profile SMM.12A: 32% SMM:12-7 +file[s], program UUCP.1C: 63% UUCP(1C)-1 + " WHICH.1: 8% WHICH(1)-1 +file, prototype MKPROTO.8: 17% MKPROTO(8)-1 +file[s], qf SMM.07: 99% SMM:7-1 + " SMM.07A: 14% SMM:07-9 + " SMM.07A: 14% SMM:07-9 + " SMM.07A: 14% SMM:07-9 + " SMM.07A: 89% SMM:07-38 +file[s], quota QUOTACHECK.8: 25% QUOTACHECK(8)-1 + " QUOTACHECK.8: 67% QUOTACHECK(8)-1 + " SETQUOTA.2: 22% SETQUOTA(2)-1 + " SMM.04: 62% SMM:4-2 + " SMM.04: 77% SMM:4-3 + " SMM.12: 44% SMM:12-1 + " SMM.12A: 43% SMM:12-10 +files, raw HK.4: 21% HK(4)-1 + " HK.4: 42% HK(4)-1 + " HP.4: 11% HP(4)-1 + " HP.4: 69% HP(4)-3 + " UDA.4: 22% UDA(4)-1 + " UP.4: 18% UP(4)-1 + " UP.4: 63% UP(4)-3 +files, reading FOPEN.3S: 24% FOPEN(3S)-1 +file[s], Reading additional USD.14: 85% USD:14-21 +files, Recovering USD.14: 87% USD:14-21 +file[s], Recovering lost USD.15: 49% USD:15-14 +file, Removal of a RM.1: 21% RM(1)-1 +files, remove BADSECT.8: 62% BADSECT(8)-1 + " SMM.06: 26% SMM:6-3 +File, Removing a USD.13: 70% USD:13-12 +files, removing old FIND.1: 89% +file[s], renaming RDIST.1: 25% RDIST(1)-1 + " MV.1: 13% MV(1)-1 +file, rhosts RLOGIN.1C: 40% RLOGIN(1C)-1 + " SMM.01: 71% SMM:1-42 + " SMM.01: 71% SMM:1-42 +file[s], sample SMM.11: 70% SMM:11-10 + " SMM.11: 70% SMM:11-10 +files, sample configuration SMM.01: 41% SMM:1-27 + " SMM.02: 11% SMM:2-4 + " SMM.02: 36% SMM:2-11 +file[s], scratch USD.04: 94% USD:4-43 +file[s], script TIP.1C: 86% TIP(1C)-3 +file[s], sector BADSECT.8: 60% BADSECT(8)-1 + " SMM.12A: 81% SMM:12-19 +file, semaphore CI.N: 90% CI(1)-3 + " CO.N: 89% CO(1)-3 + " RCS.N: 86% RCS(1)-2 +file[s], sharable executable STICKY.8: 18% STICKY(8)-1 + " STICKY.8: 38% STICKY(8)-1 + " STICKY.8: 45% STICKY(8)-1 +file[s], shell command EXECL.3: 95% EXECL(3)-2 + " USD.01: 84% USD:1-13 + " USD.04: 33% USD:4-15 + " USD.08: 9% USD:8-8 +file, SMTP help SENDMAIL.8: 61% SENDMAIL(8)-2 + " SMM.07A: 88% SMM:07-38 +file[s], Special FIND.1: 63% FIND(1)-2 + " HIER.7: 4% HIER(7)-1 + " SMM.01: 6% SMM:1-4 +file, splitting a big SPLIT.1: 12% unknown +file[s], spool SMM.06: 29% SMM:6-3 + " SMM.09: 30% SMM:9-7 + " SMM.10: 16% SMM:10-5 + " SMM.12A: 5% SMM:12-2 +files, subsequencer USD.11: 74% USD:11-11 + " USD.11: 74% USD:11-11 + " USD.11: 74% USD:11-11 +file, synchronize a FSYNC.2: 6% ABS(3)-1 +file[s], system configuration CONFIG.8: 2% CONFIG(8)-1 + " CONFIG.8: 6% CONFIG(8)-1 + " CONFIG.8: 28% CONFIG(8)-1 + " SMM.01: 9% SMM:1-7 + " SMM.02: 0% SMM:2-2 + " SMM.02: 1% SMM:2-2 + " SMM.02: 96% SMM:2-33 + " SMM.02: 97% SMM:2-33 + " SMM.02: 98% SMM:2-33 + " SMM.04: 43% SMM:4-2 + " SMM.16: 57% SMM:16-8 +file, system-wide alias MH-ALIAS.N: 73% MH-ALIAS(5)-2 + " MH-ALIAS.N: 92% MH-ALIAS(5)-3 + " USD.08: 63% USD:8-77 + " USD.08: 63% USD:8-77 +file[s], tag LOOKBIB.1: 45% LOOKBIB(1)-1 + " USD.16: 95% USD:16-18 + " USD.17: 49% USD:17-21 + " USD.17: 72% USD:17-33 + " USD.17: 72% USD:17-33 + " USD.30: 16% USD:30-2 + " CTAGS.1: 1% CTAGS(1)-1 + " CTAGS.1: 4% CTAGS(1)-1 + " CTAGS.1: 7% CTAGS(1)-1 + " CTAGS.1: 10% CTAGS(1)-1 + " CTAGS.1: 18% CTAGS(1)-1 + " CTAGS.1: 68% CTAGS(1)-1 + " USD.16: 55% USD:16-11 + " USD.16: 56% USD:16-11 + " USD.17: 49% USD:17-21 + " USD.17: 49% USD:17-21 +file, tail - deliver the last part of a TAIL.1: 4% TAIL(1)-1 +file, termcap ENVIRON.7: 58% ENVIRON(7)-1 + " TERMCAP.3X: 28% TERMCAP(3X)-1 + " TERMCAP.3X: 37% TERMCAP(3X)-1 + " TERMCAP.5: 22% TERMCAP(5)-5 + " TERMCAP.5: 31% TERMCAP(5)-6 +file, terminal TTY.4: 4% TTY(4)-1 + " TTY.4: 5% TTY(4)-1 + " TTY.4: 5% TTY(4)-1 +file[s], terminal description SMM.20: 1% SMM:20-2 + " SMM.20: 1% SMM:20-2 + " USD.15: 1% USD:15-1 +file, test for presence of ACCESS.2: 11% ACCESS(2)-1 +file, touch - update date last modified of a TOUCH.1: 9% unknown +files, transferring FTP.1C: 52% FTP(1C)-4 + " UUCICO.8C: 5% UUCICO(8C)-1 + " SMM.12A: 97% SMM:12-23 +file[s], truncating FOPEN.3S: 36% FOPEN(3S)-1 + " TRUNCATE.2: 3% TRUNCATE(2)-1 +file[s], unbuffered SMM.12A: 70% SMM:12-16 +File, Undo Drastic Changes to a USD.17: 34% USD:17-15 +files, VAX specific CONFIG.8: 85% CONFIG(8)-1 +file, Writes changes made back to USD.16: 59% USD:16-11 +files, writing SMM.14: 67% SMM:14-10 + " USD.12: 1% USD:12-1 + " USD.13: 76% USD:13-13 + " FOPEN.3S: 25% FOPEN(3S)-1 +file[s], Writing[s], quitting[s], editing new USD.15: 37% USD:15-11 +File, Writing out Part of a USD.13: 79% USD:13-13 +file, zero-length CO.N: 25% CO(1)-1 +file - determine file type FILE.1: 10% FILE(1)-1 +File access SMM.09: 98% SMM:9-21 +File Access Permission[s] INTRO.2: 73% INTRO(2)-6 + " INTRO.2: 88% INTRO(2)-7 + " INTRO.2: 85% INTRO(2)-7 + " UMASK.2: 60% UMASK(2)-1 + " USERFILE.5: 3% USERFILE(5)-1 +file addresses ADB.1: 91% ADB(1)-5 + " ADB.1: 92% ADB(1)-5 +file character, end of STTY.1: 37% STTY(1)-2 +file comparison DIFF3.1: 3% DIFF3(1)-1 + " DIFF.1: 1% DIFF(1)-1 +file copy RCP.1C: 3% RCP(1C)-1 + " UUCP.1C: 43% UUCP(1C)-1 + " UUCP.1C: 45% UUCP(1C)-1 +file creation LS.1: 36% LS(1)-1 +file creation mask CHMOD.1: 38% CHMOD(1)-1 + " CSH.1: 73% CSH(1)-15 + " SH.1: 88% SH(1)-6 +file creation mode mask, umask - set UMASK.2: 6% UMASK(2)-1 +file descriptor[s] ACCEPT.2: 24% ACCEPT(2)-1 + " CREAT.2: 20% CREAT(2)-1 + " DUP.2: 62% DUP(2)-1 + " FCNTL.2: 23% FCNTL(2)-1 + " FCNTL.2: 67% FCNTL(2)-1 + " FCNTL.2: 84% FCNTL(2)-2 + " FLOCK.2: 66% FLOCK(2)-1 + " FLOCK.2: 67% FLOCK(2)-1 + " FOPEN.3S: 57% FOPEN(3S)-1 + " GETTY.8: 19% GETTY(8)-1 + " INTRO.2: 13% INTRO(2)-1 + " MKTEMP.3: 62% MKTEMP(3)-1 + " OPEN.2: 37% OPEN(2)-1 + " PIPE.2: 14% PIPE(2)-1 + " PIPE.2: 51% PIPE(2)-1 + " RLOGIND.8C: 36% RLOGIND(8C)-1 + " SETBUF.3S: 70% SETBUF(3S)-1 + " SH.1: 46% SH(1)-3 + " SH.1: 46% SH(1)-3 + " SH.1: 51% SH(1)-3 + " SH.1: 52% SH(1)-4 + " SH.1: 53% SH(1)-4 + " SH.1: 54% SH(1)-4 + " SMM.02: 87% SMM:2-30 + " SMM.13: 10% SMM:13-5 + " SMM.13: 17% SMM:13-7 + " SMM.13: 23% SMM:13-9 + " SMM.13: 32% SMM:13-12 + " SMM.13: 42% SMM:13-15 + " SMM.13: 57% SMM:13-20 + " SYSLOG.3: 55% SYSLOG(3)-1 + " USD.03: 58% USD:3-15 + " USD.03: 86% USD:3-21 + " USD.03: 87% USD:3-21 + " USD.03: 89% USD:3-21 + " USD.08: 64% USD:8-77 + " SMM.12A: 38% SMM:12-9 + " SMM.12A: 46% SMM:12-11 + " SMM.12A: 69% SMM:12-16 + " SMM.12A: 70% SMM:12-16 + " CHOWN.2: 6% CHOWN(2)-1 + " CLOSE.2: 8% CLOSE(2)-1 + " FCNTL.2: 20% FCNTL(2)-1 + " FERROR.3S: 77% + " FLOCK.2: 18% FLOCK(2)-1 + " TEST.1: 43% TEST(1)-1 + " TTYNAME.3: 28% TTYNAME(3)-1 +file descriptor digit SH.1: 50% SH(1)-3 + " USD.03: 88% USD:3-21 + " USD.03: 88% USD:3-21 +file file FILE.1: 19% FILE(1)-1 + " USD.16: 35% USD:16-7 + " SMM.12A: 32% SMM:12-7 +file handling USD.02: 1% USD:2-1 + " USD.02: 4% USD:2-1 + " USD.02: 14% USD:2-2 + " USD.17: 31% USD:17-14 +file I/O SMM.02: 91% SMM:2-31 +File Locking CHOWN.2: 31% CHOWN(2)-1 + " SMM.14: 78% SMM:14-12 +file manipulation USD.13: 3% USD:13-2 + " USD.16: 6% USD:16-2 +file merge MERGE.N: 6% MERGE(1)-1 +file message[s] REFILE.N: 1% REFILE(1)-1 +file mode[s] ACCESS.2: 73% ACCESS(2)-1 + " CHMOD.2: 59% CHMOD(2)-1 + " CO.N: 81% CO(1)-3 + " SMM.01: 34% SMM:1-22 + " SMM.09: 98% SMM:9-21 + " SMM.09: 99% SMM:9-21 + " STICKY.8: 8% STICKY(8)-1 + " TAR.5: 57% TAR(5)-1 + " UMASK.2: 49% UMASK(2)-1 + " SMM.07A: 32% SMM:07-16 + " SMM.07A: 33% SMM:07-16 + " SMM.07A: 70% SMM:07-30 +file mode creation mask MKDIR.2: 20% MKDIR(2)-1 + " MKDIR.2: 22% MKDIR(2)-1 + " UMASK.2: 25% UMASK(2)-1 +File Name INTRO.2: 77% INTRO(2)-6 +file name, remote RCP.1C: 13% RCP(1C)-1 +File Name Completion CSH.1: 0% CSH(1)-1 + " CSH.1: 11% CSH(1)-2 + " SMM.12A: 14% SMM:12-4 + " CSH.1: 80% CSH(1)-17 +file name ending CI.N: 2% CI(1)-1 + " CO.N: 1% CO(1)-1 + " RCSDIFF.N: 14% RCSDIFF(1)-1 + " RCSMERGE.N: 16% RCSMERGE(1)-1 +file name generation SH.1: 13% SH(1)-1 + " SH.1: 36% SH(1)-3 + " USD.03: 11% USD:3-3 + " USD.03: 65% USD:3-16 + " USD.03: 68% USD:3-17 + " USD.03: 69% USD:3-17 + " USD.03: 85% USD:3-21 +file names starting with minus MV.1: 76% unknown +file naming conventions FTP.1C: 38% FTP(1C)-3 + " FTP.1C: 47% FTP(1C)-4 + " FTP.1C: 78% FTP(1C)-6 +file need[s] RCS.N: 46% RCS(1)-1 + " SMM.14: 31% SMM:14-5 +file number[s] SMM.13: 14% SMM:13-6 +file organization SMM.14: 2% SMM:14-2 + " SMM.14: 2% SMM:14-2 +file ownership CHGRP.1: 44% CHGRP(1)-1 + " CHOWN.2: 2% CHOWN(2)-1 + " FIND.1: 35% FIND(1)-1 +file permission[s] CHMOD.1: 20% CHMOD(1)-1 + " CHMOD.2: 1% CHMOD(2)-1 + " CSH.1: 73% CSH(1)-16 + " GROUPS.1: 68% unknown +file pointer[s] FCNTL.2: 16% FCNTL(2)-1 + " FORK.2: 30% FORK(2)-1 + " LSEEK.2: 28% LSEEK(2)-1 + " LSEEK.2: 77% LSEEK(2)-1 + " OPEN.2: 38% OPEN(2)-1 + " SORTBIB.1: 22% SORTBIB(1)-1 + " STDIO.3S: 38% STDIO(3S)-1 + " STDIO.3S: 41% STDIO(3S)-1 + " WRITE.2: 56% WRITE(2)-1 + " SMM.12A: 70% SMM:12-16 + " LSEEK.2: 69% LSEEK(2)-1 +File position FSEEK.3S: 34% FSEEK(3S)-1 +file size[s] ADB.1: 95% ADB(1)-5 + " LSEEK.2: 15% LSEEK(2)-1 + " QUOT.8: 58% QUOT(8)-1 + " SMM.01: 47% SMM:1-31 +file size limit SIGNAL.3C: 35% SIGNAL(3C)-1 + " SIGVEC.2: 47% SIGVEC(2)-2 +file space DBM.3X: 92% DBM(3X)-2 + " NDBM.3: 93% NDBM(3)-2 + " RANLIB.1: 35% RANLIB(1)-1 + " USD.04: 7% USD:4-4 + " SMM.01: 77% SMM:1-47 +file status STAT.2: 1% STAT(2)-1 + " STAT.2: 46% STAT(2)-2 + " STAT.3F: 7% STAT(3F)-1 +file storage SMM.05: 4% SMM:5-3 +file suffixes CSH.1: 14% CSH(1)-3 +File Switching USD.24: 79% USD:24-25 +file system[s] SMM.12A: 31% SMM:12-7 + " SMM.12A: 84% SMM:12-20 + " SMM.12A: 85% SMM:12-20 + " SMM.12A: 89% SMM:12-21 + " FORMAT.8V: 50% FORMAT(8V)-2 + " FS.5: 43% FS(5)-2 + " FSTAB.5: 7% FSTAB(5)-1 + " MKFS.8: 12% MKFS(8)-1 + " SMM.01: 39% SMM:1-26 +file system, change the size of a RESTORE.8: 15% RESTORE(8)-1 +file system, Dumping of the SMM.01: 76% SMM:1-46 +File System, Old SMM.14: 9% SMM:14-3 +file system backup procedure[s] SMM.01: 0% SMM:1-1 +File system block[s] FS.5: 48% FS(5)-2 + " FS.5: 60% FS(5)-3 + " SMM.05: 9% SMM:5-3 + " SMM.05: 9% SMM:5-3 + " SMM.05: 14% SMM:5-4 + " SMM.05: 14% SMM:5-4 + " SMM.05: 15% SMM:5-4 + " SMM.14: 18% SMM:14-4 + " SMM.14: 18% SMM:14-4 + " SMM.14: 23% SMM:14-4 + " SMM.14: 27% SMM:14-5 + " SMM.14: 27% SMM:14-5 + " SMM.14: 30% SMM:14-5 + " SMM.14: 37% SMM:14-6 +file system check[s] FSCK.8: 39% FSCK(8)-1 + " FSCK.8: 42% FSCK(8)-1 + " FSTAB.5: 41% FSTAB(5)-1 + " SMM.01: 28% SMM:1-20 + " SMM.01: 28% SMM:1-20 + " SMM.01: 74% SMM:1-45 + " SMM.01: 75% SMM:1-46 + " SMM.01: 76% SMM:1-46 + " SMM.05: 25% SMM:5-6 + " SMM.05: 43% SMM:5-9 +file system check program SMM.05: 0% SMM:5-2 + " FSCK.8: 95% FSCK(8)-2 + " SMM.05: 0% SMM:5-2 + " SMM.05: 2% SMM:5-2 + " SMM.05: 4% SMM:5-2 + " SMM.05: 10% SMM:5-4 + " SMM.05: 17% SMM:5-4 + " SMM.05: 24% SMM:5-6 + " SMM.05: 30% SMM:5-6 + " SMM.05: 36% SMM:5-8 + " SMM.05: 41% SMM:5-8 + " SMM.05: 46% SMM:5-10 + " SMM.05: 50% SMM:5-10 + " SMM.05: 55% SMM:5-12 + " SMM.05: 59% SMM:5-12 + " SMM.05: 63% SMM:5-14 + " SMM.05: 67% SMM:5-14 + " SMM.05: 71% SMM:5-16 + " SMM.05: 75% SMM:5-16 + " SMM.05: 79% SMM:5-18 + " SMM.05: 83% SMM:5-18 + " SMM.05: 88% SMM:5-20 + " SMM.05: 93% SMM:5-20 + " SMM.05: 97% SMM:5-22 +File system connectivity SMM.05: 38% SMM:5-8 +file system corruption SMM.01: 97% SMM:1-64 + " SMM.05: 2% SMM:5-2 + " SMM.05: 6% SMM:5-3 + " UPDATE.8: 65% UPDATE(8)-1 +file system dump[s] RDUMP.8C: 9% RDUMP(8C)-1 + " RRESTORE.8C: 11% RRESTORE(8C)-1 + " SMM.01: 24% SMM:1-17 + " SMM.01: 78% SMM:1-47 +File System for UNIX, Fast SMM.14: 0% unknown +file system format FS.5: 51% FS(5)-2 + " SMM.01: 9% SMM:1-7 +File system functional enhancement[s] SMM.14: 74% SMM:14-11 +file system fundamental[s] USD.01: 0% USD:1-1 +file system hierarchy HIER.7: 0% HIER(7)-1 + " SMM.14: 87% SMM:14-13 +file system layout policy[s] SMM.14: 47% SMM:14-7 +file system maintenance NCHECK.8: 18% NCHECK(8)-1 +file system organization[s] SMM.01: 0% SMM:1-2 + " SMM.13: 91% SMM:13-31 + " SMM.14: 2% SMM:14-2 + " SMM.14: 17% SMM:14-4 + " SMM.14: 17% SMM:14-4 + " SMM.14: 17% SMM:14-4 + " SMM.14: 36% SMM:14-6 + " SMM.14: 36% SMM:14-6 +file system parameter[s] NEWFS.8: 23% NEWFS(8)-1 + " SMM.01: 46% SMM:1-30 + " SMM.01: 46% SMM:1-30 + " MKFS.8: 30% MKFS(8)-1 +File system parameterization SMM.14: 39% SMM:14-7 +file system partition[s] BAD144.8: 26% BAD144(8)-1 + " FORMAT.8V: 44% FORMAT(8V)-1 + " SMM.02: 26% SMM:2-8 + " SMM.02: 26% SMM:2-8 +file system performance SMM.14: 2% SMM:14-2 + " SMM.14: 8% SMM:14-2 + " SMM.14: 13% SMM:14-3 + " SMM.14: 57% SMM:14-9 +File system quota[s] FSTAB.5: 65% FSTAB(5)-1 + " SMM.02: 89% SMM:2-31 + " QUOTACHECK.8: 4% QUOTACHECK(8)-1 + " QUOTAON.8: 5% QUOTAON(8)-1 +file system repair FSCK.8: 2% FSCK(8)-1 +File Systems Management SMM.14: 2% SMM:14-2 +file table SMM.02: 87% SMM:2-30 +file table entry SMM.02: 87% SMM:2-30 +file time, utime - set UTIME.3C: 9% unknown +file time, utimes - set UTIMES.2: 3% UTIMES(2)-1 +file transfer[s], third-party FTP.1C: 55% FTP(1C)-4 + " SMM.12A: 33% SMM:12-8 +file transfer command FTP.1C: 7% FTP(1C)-1 + " TIP.1C: 68% TIP(1C)-3 + " TIP.1C: 77% TIP(1C)-3 +File Transfer Protocol FTP.1C: 0% FTP(1C)-1 + " SMM.12A: 97% SMM:12-23 + " SMM.12A: 98% SMM:12-23 + " FTPD.8C: 4% FTPD(8C)-1 +file transfer type FTP.1C: 7% FTP(1C)-1 + " FTP.1C: 8% FTP(1C)-1 + " FTP.1C: 67% FTP(1C)-5 + " FTP.1C: 68% FTP(1C)-5 +file type FILE.1: 14% FILE(1)-1 + " RESTORE.8: 60% RESTORE(8)-2 +file-creation-mode (variable) USD.17: 70% USD:17-32 +file-system size SMM.05: 24% SMM:5-6 + " SMM.05: 24% SMM:5-6 + " SMM.05: 25% SMM:5-6 +filec shell variable CSH.1: 11% CSH(1)-2 +FILENAME[s] USD.04: 11% USD:4-6 + " USD.04: 79% USD:4-38 + " USD.14: 8% USD:14-3 +filenames, database of FIND.1: 11% FIND(1)-1 +filename affixes BASENAME.1: 11% BASENAME(1)-1 +FILENAME awk variable USD.19: 18% USD:19-2 +filename character translation FTP.1C: 45% FTP(1C)-4 +filename component[s] USD.04: 60% USD:4-29 +filename expansion[s] CSH.1: 81% CSH(1)-17 + " CSH.1: 82% CSH(1)-17 + " CSH.1: 83% CSH(1)-18 + " CSH.1: 96% CSH(1)-20 + " FTP.1C: 31% FTP(1C)-3 + " FTP.1C: 35% FTP(1C)-3 + " USD.04: 13% USD:4-6 + " USD.04: 13% USD:4-6 + " USD.04: 49% USD:4-22 + " USD.04: 59% USD:4-28 + " USD.04: 66% USD:4-32 + " USD.04: 66% USD:4-33 + " USD.04: 78% USD:4-37 + " USD.04: 79% USD:4-38 + " USD.04: 87% USD:4-41 + " USD.16: 9% USD:16-2 + " FTP.1C: 19% FTP(1C)-2 +filename mapping FTP.1C: 36% FTP(1C)-3 +filename substitution CSH.1: 30% CSH(1)-6 + " CSH.1: 34% CSH(1)-7 + " CSH.1: 36% CSH(1)-7 + " CSH.1: 36% CSH(1)-7 + " CSH.1: 37% CSH(1)-7 + " CSH.1: 80% CSH(1)-17 +filename suffix BASENAME.1: 20% BASENAME(1)-1 +filenames containing non-ASCII character[s] USD.10: 88% USD:10-11 +fileno FERROR.3S: 7% FERROR(3S)-1 +files, comparing CMP.1: 6% CMP(1)-1 +files, learning about LEARN.1: 33% LEARN(1)-1 +Files and Program[s], Mail to SMM.16: 42% SMM:16-6 +files changed after a certain date RDUMP.8C: 32% RDUMP(8C)-1 +Files that need periodic attention SMM.01: 84% SMM:1-51 +files-should-end-with-newline (variable) USD.17: 70% USD:17-32 +filesystem, Changes in the SMM.13: 27% SMM:13-10 +filesystems, fstab - static information about the FSTAB.5: 1% FSTAB(5)-1 +filesystem, root AUTOCONF.4: 30% AUTOCONF(4)-1 + " CRASH.8V: 22% CRASH(8V)-1 + " CRASH.8V: 23% CRASH(8V)-1 + " CRASH.8V: 24% CRASH(8V)-1 + " CRASH.8V: 29% CRASH(8V)-1 + " SMM.01: 1% SMM:1-2 + " SMM.01: 1% SMM:1-2 + " SMM.01: 19% SMM:1-14 + " SMM.01: 28% SMM:1-20 + " SMM.01: 88% SMM:1-55 + " SMM.02: 15% SMM:2-5 +filesystem[s], setting up the new 4.3BSD SMM.01: 24% SMM:1-17 +filesystem, UNIX MH-PROFILE.N: 54% MH-PROFILE(5)-4 + " USD.08: 72% USD:8-88 + " USD.17: 48% USD:17-21 +filesystem name translation SMM.13: 1% SMM:13-2 +fill mode USD.22: 31% USD:22-6 + " USD.24: 36% USD:24-12 + " USD.24: 36% USD:24-13 + " USD.24: 36% USD:24-13 + " USD.24: 37% USD:24-13 + " USD.24: 41% USD:24-14 + " USD.24: 41% USD:24-14 + " USD.24: 91% USD:24-30 +Fill subsequent output line[s] USD.24: 36% USD:24-12 +fill-comment USD.17: 70% USD:17-32 +fill-paragraph (ESC J) USD.17: 70% USD:17-33 +fill-region USD.17: 71% USD:17-33 +Filling, Text USD.17: 27% USD:17-12 + " USD.24: 7% USD:24-3 + " USD.24: 33% USD:24-12 +filling of text USD.17: 0% USD:17-1 +Filter[s] USD.03: 8% USD:3-2 +filter, default message FORW.N: 40% FORW(1)-1 + " REPL.N: 43% REPL(1)-1 + " USD.08: 22% USD:8-24 +filter[s], output POPEN.3: 59% POPEN(3)-1 + " POPEN.3: 88% POPEN(3)-1 + " SMM.06: 46% SMM:6-4 + " SMM.06: 50% SMM:6-4 +filters, plot GRAPH.1G: 14% unknown +filter file FORW.N: 38% FORW(1)-1 + " REPL.N: 41% REPL(1)-1 + " REPL.N: 44% REPL(1)-1 + " USD.08: 22% USD:8-23 + " USD.08: 48% USD:8-57 + " USD.08: 48% USD:8-57 + " USD.08: 87% USD:8-105 + " REPL.N: 41% REPL(1)-1 +filter-region USD.17: 71% USD:17-33 +Filtering portions of the buffer USD.15: 53% USD:15-15 +Find[s] SMM.01: 35% SMM:1-23 + " SMM.12A: 30% SMM:12-7 +find, example of use FIND.1: 84% FIND(1)-2 +find - find files FIND.1: 1% FIND(1)-1 +find a character in string STRING.3: 91% STRING(3)-1 +find the printable strings in a file STRINGS.1: 7% STRINGS(1)-1 +find-file (C-X C-F) USD.17: 72% USD:17-33 +find-tag USD.17: 49% USD:17-21 +find-tag (C-X T) USD.17: 72% USD:17-33 +find-tag-at-point USD.17: 72% USD:17-33 +finding patterns or words in file[s] USD.13: 92% USD:13-15 +Finding Sentences USD.32: 69% USD:32-10 + " USD.32: 69% USD:32-10 + " USD.32: 70% USD:32-10 +finding sites on the network USD.10: 81% USD:10-10 +finding source code WHEREIS.1: 71% WHEREIS(1)-1 +Finding things in the buffer USD.14: 35% USD:14-9 +finger PASSWD.1: 55% PASSWD(1)-1 + " SMM.12A: 31% SMM:12-7 +finger - user information lookup program FINGER.1: 2% FINGER(1)-1 +fingerd - remote user information server FINGERD.8C: 3% FINGERD(8C)-1 +finite automaton[s] USD.19: 83% USD:19-6 +FIONREAD TTY.4: 21% TTY(4)-3 + " TTY.4: 83% TTY(4)-9 +First Page[s] USD.20: 14% USD:20-2 +finite state machine PS1.15: 26% PS1:15-8 + " PS1.15: 26% PS1:15-8 +first-non-blank (ESC M) USD.17: 72% USD:17-34 +firstkey DBM.3X: 11% DBM(3X)-1 +fish, tune a TUNEFS.8: 98% unknown +fish - play ``Go Fish'' FISH.6: 3% FISH(6)-1 +fix, sccs PS1.14: 52% PS1:14-8 +Fixit PS2.09: 1% PS2:9-4 + " PS2.09: 85% PS2:9-137 + " PS2.09: 86% PS2:9-137 + " PS2.09: 86% PS2:9-139 + " PS2.09: 87% PS2:9-140 + " PS2.09: 87% PS2:9-140 + " PS2.09: 87% PS2:9-140 + " PS2.09: 87% PS2:9-140 + " PS2.09: 87% PS2:9-140 +fix[s], bug reports and USD.09: 62% USD:9-8 +fixed length records DD.1: 35% DD(1)-1 +Fixing corrupted file system[s] SMM.05: 20% SMM:5-5 +fixing error[s] USD.17: 46% USD:17-20 +Fixing Typo[s] USD.17: 29% USD:17-13 +fixnum representation PS2.09: 4% PS2:9-8 + " PS2.09: 12% PS2:9-22 + " PS2.09: 13% PS2:9-24 + " PS2.09: 40% PS2:9-72 + " PS2.09: 40% PS2:9-72 + " PS2.09: 40% PS2:9-72 + " PS2.09: 58% PS2:9-100 +fl - console floppy interface FL.4: 6% +FL footnote length USD.20: 71% USD:20-5 +flag argument[s] PS1.12: 55% PS1:12-5 + " PS1.12: 66% PS1:12-6 + " PS2.01: 29% PS2:1-5 +flag, close-on-exec DUP.2: 60% DUP(2)-1 + " EXECVE.2: 31% EXECVE(2)-1 + " FCNTL.2: 22% FCNTL(2)-1 + " FCNTL.2: 26% FCNTL(2)-1 + " FCNTL.2: 32% FCNTL(2)-1 + " SMM.13: 17% SMM:13-7 +flag[s], command line USD.07: 75% USD:7-18 + " USD.07: 84% USD:7-20 + " USD.07: 98% USD:7-25 + " SMM.07A: 66% SMM:07-28 +flag[s], debug SMM.07A: 25% SMM:07-13 + " SMM.07A: 25% SMM:07-13 +flag, F SMM.10: 47% SMM:10-13 + " SMM.10: 85% SMM:10-21 + " SMM.10: 85% SMM:10-21 +flags, mailer SMM.07A: 51% SMM:07-23 + " SMM.07A: 62% SMM:07-26 + " SMM.07A: 98% SMM:07-3 +flag[s], option RLOGIN.1C: 90% RLOGIN(1C)-1 + " TSET.1: 14% TSET(1)-1 +flag, stayopen GETHOSTBYNAME.3N: 48% GETHOSTBYNAME(3) + " GETNETENT.3N: 62% GETNETENT(3N)-1 + " GETPROTOENT.3N: 63% GETPROTOENT(3N) + " GETSERVENT.3N: 63% GETSERVENT(3N)- +flags, tty mode GETTYTAB.5: 22% GETTYTAB(5)-1 + " GETTYTAB.5: 22% GETTYTAB(5)-1 + " GETTYTAB.5: 23% GETTYTAB(5)-1 +flag argument[s] USD.04: 5% USD:4-4 +flcopy command ARFF.8V: 1% ARFF(8V)-1 +Flesch USD.32: 9% USD:32-2 +Flesch Reading Ease Score USD.32: 17% USD:32-3 +flmax FLMIN.3F: 5% FLMIN(3F)-1 +float to double conversion CC.1: 56% CC(1)-2 +floating arithmetic in C PS1.01: 14% PS1:1-5 +Floating Constants PS1.01: 5% PS1:1-3 + " PS1.01: 20% PS1:1-7 + " PS1.16: 78% PS1:16-11 + " PS2.10: 36% PS2:10-33 + " PS2.10: 36% PS2:10-33 +floating exception PS2.09: 21% PS2:9-41 + " PS2.09: 23% PS2:9-45 + " PS2.09: 45% PS2:9-80 +floating point PS1.02: 52% PS1:2-18 + " PS1.02: 70% PS1:2-23 + " PS1.15: 93% PS1:15-29 + " PS1.16: 78% PS1:16-11 + " PS2.06: 10% PS2:6-5 + " PS2.06: 18% PS2:6-8 + " PS2.06: 18% PS2:6-8 + " PS2.09: 20% PS2:9-39 + " PS2.10: 84% PS2:10-76 + " PS1.01: 10% PS1:1-4 +floating point arithmetic PS1.01: 92% PS1:1-31 + " PS1.04: 89% PS1:4-45 + " PS1.04: 89% PS1:4-45 +Floating Point Constants PS1.15: 88% PS1:15-28 + " PS1.15: 92% PS1:15-28 + " PS2.06: 10% PS2:6-5 + " PS2.10: 36% PS2:10-33 +floating point number[s] PS1.05: 2% PS1:5-1 + " PS1.05: 94% PS1:5-13 + " PS2.09: 20% PS2:9-39 + " PS2.09: 50% PS2:9-88 + " PS2.09: 50% PS2:9-88 + " PS2.09: 50% PS2:9-88 + " PS2.10: 6% PS2:10-8 + " PS2.10: 38% PS2:10-34 + " PS2.10: 38% PS2:10-34 + " PS2.10: 39% PS2:10-34 +floating point variables PS1.02: 6% PS1:2-5 + " PS1.15: 88% PS1:15-28 + " PS2.06: 20% PS2:6-8 + " PS2.06: 43% PS2:6-15 +floating, keep USD.20: 61% USD:20-5 +Floating Keep[s] USD.22: 34% USD:22-6 + " USD.22: 34% USD:22-6 + " USD.22: 30% USD:22-6 +floating keep, .(z Begin USD.23: 33% USD:23-4 +floating point OD.1: 32% OD(1)-1 + " PTRACE.2: 92% PTRACE(2)-2 + " SMM.19: 29% SMM:19-9 + " SMM.19: 77% SMM:19-22 + " USD.19: 50% USD:19-4 + " USD.19: 53% USD:19-5 +floating point arithmetic SMM.19: 72% SMM:19-20 + " SMM.19: 86% SMM:19-24 +Floating Point Constants SMM.19: 94% SMM:19-26 +floating point exception[s] INTRO.3: 11% INTRO(3)-1 + " SIGNAL.3C: 22% SIGNAL(3C)-1 +floating point fault[s] TRPFPE.3F: 5% TRPFPE(3F)-1 +floating point number[s] SCANF.3S: 52% SCANF(3S)-1 + " SCANF.3S: 55% SCANF(3S)-1 + " USD.19: 26% USD:19-3 +floating point operations, invalid INFNAN.3M: 2% INFNAN(3M)-1 +floating point overflow TRAPOV.3F: 4% TRAPOV(3F)-1 +floating point underflow TRAPER.3F: 23% TRAPER(3F)-1 +floating point value[s] FLMIN.3F: 40% FLMIN(3F)-1 + " SMM.19: 93% SMM:19-26 +floating point variables F77.1: 47% F77(1)-2 +floating-point arithmetic IEEE.3M: 15% IEEE(3M)-1 + " MATH.3M: 37% MATH(3M)-3 + " MATH.3M: 96% MATH(3M)-6 +floating-point division PS1.11a: 66% PS1:11-5 +floating-point exception[s] MATH.3M: 62% MATH(3M)-4 + " MATH.3M: 67% MATH(3M)-5 +flock SMM.13: 13% SMM:13-6 +flock - apply or remove an advisory lock on an open file FLOCK.2: 2% FLOCK(2)-1 +flock(fd, how) PS1.06: 70% PS1:6-31 +flonum-block array[s] PS2.09: 15% PS2:9-28 + " PS2.09: 61% PS2:9-105 + " PS2.09: 61% PS2:9-105 + " PS2.09: 65% PS2:9-111 +Flow control PS1.08: 61% PS1:8-24 + " PS1.06: 90% PS1:6-38 +floor function FLOOR.3M: 4% FLOOR(3M)-1 +floppy, boot SMM.01: 18% SMM:1-13 + " SMM.01: 19% SMM:1-14 + " SMM.01: 19% SMM:1-14 +floppy disk[s] ARFF.8V: 61% ARFF(8V)-1 + " ARFF.8V: 68% ARFF(8V)-1 + " ARFF.8V: 82% ARFF(8V)-1 + " RX.4: 7% RX(4)-1 + " RX.4: 9% RX(4)-1 + " RX.4: 47% RX(4)-1 +flow control DMF.4: 97% DMF(4)-1 + " DMZ.4: 95% DMZ(4)-1 + " RLOGIN.1C: 57% RLOGIN(1C)-1 + " SMM.09: 42% SMM:9-9 + " SMM.13: 10% SMM:13-5 + " SMM.13: 41% SMM:13-15 + " SMM.13: 96% SMM:13-33 + " SMM.15: 4% SMM:15-3 + " STTY.1: 21% STTY(1)-1 + " TELNET.1C: 96% TELNET(1C)-4 + " TERMCAP.5: 88% TERMCAP(5)-12 + " TIP.1C: 42% TIP(1C)-2 + " TTY.4: 12% TTY(4)-2 + " TTY.4: 41% TTY(4)-4 + " TTY.4: 73% TTY(4)-7 + " TTY.4: 74% TTY(4)-8 + " USD.17: 56% USD:17-25 + " GETTYTAB.5: 46% GETTYTAB(5)-2 + " JOVE.N: 86% JOVE(1)-3 + " WRITE.2: 45% WRITE(2)-1 +flow control policy SMM.15: 23% USD:24-2 +flow-control PTY.4: 54% PTY(4)-1 +flush - flush output to a logical unit FLUSH.3F: 11% FLUSH(3F)-1 +flush buffered output EXIT.3: 67% +flush character[s] TELNET.1C: 61% TELNET(1C)-3 + " TELNET.1C: 61% TELNET(1C)-3 +flush output FLUSH.3F: 13% FLUSH(3F)-1 + " TTY.4: 94% TTY(4)-10 + " EXIT.3F: 26% EXIT(3F)-1 +Flush output buffer USD.24: 81% USD:24-26 +flush output character STTY.1: 96% STTY(1)-3 +flush pending input TTY.4: 48% TTY(4)-5 +FM bottom margin USD.20: 72% USD:20-5 +flushok(win, boolf) PS1.18: 37% PS1:18-10 + " PS2.09: 0% PS2:9-2 + " PS2.09: 1% PS2:9-4 +For Statement PS1.01: 64% PS1:1-22 +fmin - multiple precision integer arithmetic MP.3X: 4% MP(3X)-1 +fmout - multiple precision integer arithmetic MP.3X: 5% MP(3X)-1 +fmt USD.07: 38% USD:7-10 +fmt - simple text formatter FMT.1: 5% FMT(1)-1 +Foderaro, John LISZT.1: 93% LISZT(1)-1 + " LXREF.1: 93% LXREF(1)-1 +fold - fold long lines for finite width output device FOLD.1: 8% +FOLDER COMP.N: 24% COMP(1)-1 +folder, -draftfolder USD.08: 83% USD:8-102 + " USD.08: 84% USD:8-103 + " USD.08: 85% USD:8-103 +folder, compress a PACKF.N: 3% unknown +folders, compressing FOLDER.N: 54% FOLDER(1)-2 +folder, current FOLDER.N: 9% FOLDER(1)-1 + " INC.N: 90% unknown +folder, default draft MH-PROFILE.N: 32% MH-PROFILE(5)-2 + " USD.08: 71% USD:8-86 + " USD.08: 83% USD:8-102 +folder, draft SCAN.N: 56% SCAN(1)-1 + " USD.08: 52% USD:8-62 + " USD.08: 83% USD:8-102 + " USD.08: 83% USD:8-102 + " USD.08: 84% USD:8-103 + " USD.08: 84% USD:8-103 + " USD.08: 84% USD:8-103 +folder, examining the messages in a USD.08: 3% USD:8-2 +folder, folders - set/list current folder/message FOLDER.N: 0% FOLDER(1)-1 + " USD.08: 18% USD:8-20 +folder[s], message USD.08: 2% USD:8-2 + " USD.08: 2% USD:8-2 + " USD.08: 3% USD:8-2 + " USD.08: 9% USD:8-8 +folder[s], MH INC.N: 7% INC(1)-1 + " INC.N: 39% INC(1)-1 + " USD.08: 23% USD:8-26 + " USD.08: 24% USD:8-26 + " USD.08: 45% USD:8-54 + " USD.08: 45% USD:8-54 + " USD.08: 84% USD:8-103 +folder, parent RMF.N: 39% RMF(1)-1 + " RMF.N: 79% RMF(1)-1 + " USD.08: 50% USD:8-60 +folder[s], read-only FOLDER.N: 24% FOLDER(1)-1 + " RMF.N: 53% RMF(1)-1 + " USD.08: 19% USD:8-20 + " USD.08: 50% USD:8-60 +folder, rmf - remove RMF.N: 1% RMF(1)-1 + " USD.08: 50% USD:8-60 +folder command MH-PROFILE.N: 25% MH-PROFILE(5)-2 + " USD.07: 27% USD:7-7 + " USD.08: 70% USD:8-86 + " MAIL.1: 39% MAIL(1)-3 +folder directory[s] MAIL.1: 39% MAIL(1)-3 + " MAIL.1: 42% MAIL(1)-3 + " MAIL.1: 94% MAIL(1)-6 + " MH-PROFILE.N: 19% MH-PROFILE(5)-2 + " USD.07: 25% USD:7-6 + " USD.07: 25% USD:7-6 + " USD.07: 25% USD:7-6 + " USD.07: 26% USD:7-6 + " USD.07: 44% USD:7-11 + " USD.07: 57% USD:7-14 + " USD.07: 57% USD:7-14 + " USD.07: 76% USD:7-18 + " USD.08: 70% USD:8-86 +FOLDER HANDLING USD.08: 87% USD:8-105 +folder name[s] BUGFILER.8: 55% BUGFILER(8)-1 + " BUGFILER.8: 59% BUGFILER(8)-1 + " FOLDER.N: 50% FOLDER(1)-1 + " MHL.N: 74% MHL(1)-3 + " USD.07: 26% USD:7-6 + " USD.07: 44% USD:7-11 + " USD.08: 11% USD:8-10 + " USD.08: 19% USD:8-21 + " USD.08: 29% USD:8-32 + " USD.08: 87% USD:8-105 + " USD.08: 87% USD:8-106 +folder pathname USD.08: 35% USD:8-39 + " MHPATH.N: 12% MHPATH(1)-1 +Folder-Protect USD.08: 70% USD:8-86 + " USD.08: 8% USD:8-6 +Folder-Stack USD.08: 70% USD:8-86 + " USD.08: 88% USD:8-106 + " USD.08: 88% USD:8-106 +Font[s] USD.24: 25% USD:24-9 + " USD.20: 21% USD:20-2 + " USD.22: 85% USD:22-16 + " USD.23: 2% USD:23-1 + " USD.25: 19% USD:25-3 + " USD.27: 37% USD:27-5 +font, .b bold USD.23: 44% USD:23-6 +font, .i italic USD.23: 44% USD:23-6 +font, .r roman USD.23: 43% USD:23-6 +font, .rb bold USD.23: 45% USD:23-6 +font[s], bold USD.22: 86% USD:22-16 + " USD.22: 91% USD:22-17 + " USD.23: 2% USD:23-1 + " USD.25: 21% USD:25-4 +font, Roman MS.7: 51% MS(7)-2 + " USD.25: 49% USD:25-8 + " USD.27: 83% USD:27-9 + " USD.29: 66% USD:29-7 +Font, Special USD.24: 23% USD:24-9 + " USD.24: 24% USD:24-9 + " USD.24: 25% USD:24-9 +font[s], switching between USD.22: 86% USD:22-16 +font, troff width table for a VWIDTH.1: 4% VWIDTH(1)-1 +font, underline USD.23: 45% USD:23-6 + " USD.24: 59% USD:24-19 + " USD.24: 60% USD:24-19 + " USD.24: 61% USD:24-20 +Font and Character Size Control USD.24: 23% USD:24-9 + " USD.24: 6% USD:24-3 +Font change[s] CHECKNR.1: 20% CHECKNR(1)-1 + " USD.23: 2% USD:23-1 + " USD.24: 60% USD:24-19 + " USD.24: 60% USD:24-19 + " USD.26: 2% USD:26-1 + " USD.27: 41% USD:27-5 + " USD.27: 46% USD:27-5 + " USD.28: 23% USD:28-4 + " USD.28: 29% USD:28-5 + " USD.32: 70% USD:32-10 + " EQN.1: 67% EQN(1)-2 + " USD.24: 29% USD:24-10 +font file LPD.8: 63% LPD(8)-2 +font format[s] VFONT.5: 3% VFONT(5)-1 +font number[s] USD.25: 21% USD:25-4 +Font position USD.24: 97% USD:24-33 + " USD.24: 29% USD:24-11 +font request[s] USD.22: 89% USD:22-17 + " USD.22: 90% USD:22-17 + " USD.22: 91% USD:22-17 + " USD.22: 91% USD:22-17 + " USD.22: 97% USD:22-18 + " USD.23: 44% USD:23-6 +Font Style Example[s] USD.24: 94% USD:24-32 +font width table[s] TROFF.1: 88% TROFF(1)-1 + " TROFF.1: 71% TROFF(1)-2 +Fonts and Size[s] USD.23: 42% USD:23-6 +fonts for troff HIER.7: 55% HIER(7)-4 +Footer[s] USD.22: 14% USD:22-3 + " USD.23: 21% USD:23-3 + " USD.24: 0% USD:24-2 +footer, .$f Print USD.23: 27% USD:23-4 +footer, .ef Define USD.23: 24% USD:23-3 +footer, .fo Define USD.23: 24% USD:23-3 +footer, .m3 Set the space between the bottom of the text and the USD.23: 26% USD:23-4 +footer, .of Define USD.23: 25% USD:23-3 +footer, Define USD.23: 24% USD:23-3 + " USD.23: 24% USD:23-3 + " USD.23: 25% USD:23-3 +Footer[s], Headers and USD.22: 14% USD:22-3 + " USD.23: 21% USD:23-3 +footer[s], odd and even USD.21: 89% USD:21-3 +footer, page MS.7: 30% MS(7)-1 + " MS.7: 44% MS(7)-2 + " USD.20: 19% USD:20-2 + " USD.20: 73% USD:20-5 + " USD.28: 48% USD:28-7 +footer and the bottom of the page, .m4 Set the space between the USD.23: 26% USD:23-4 +footer macro[s] USD.24: 71% USD:24-22 + " USD.24: 83% USD:24-28 + " USD.24: 89% USD:24-29 + " USD.25: 60% USD:25-9 +footer margin[s] MS.7: 80% MS(7)-3 + " USD.23: 9% USD:23-2 +footer trap USD.24: 84% USD:24-28 + " USD.24: 92% USD:24-30 + " USD.24: 92% USD:24-30 + " USD.24: 93% USD:24-31 + " USD.24: 93% USD:24-31 +footers on the next page, .hx Suppress headers and USD.23: 25% USD:23-4 +footnote[s] USD.24: 91% USD:24-30 + " USD.23: 37% USD:23-5 + " MS.7: 34% MS(7)-2 + " USD.20: 49% USD:20-4 + " USD.22: 40% USD:22-8 + " USD.22: 82% USD:22-16 + " USD.24: 0% USD:24-2 + " USD.29: 2% USD:29-1 +footnote, .(f Begin USD.23: 36% USD:23-5 +footnote, .)f n End USD.23: 37% USD:23-5 +footnote[s], automatically numbered USD.21: 13% USD:21-1 +footnote, End USD.23: 37% USD:23-5 + " USD.24: 91% USD:24-30 +footnote, numbered MS.7: 91% MS(7)-3 +footnote format MS.7: 81% MS(7)-3 +footnote indent MS.7: 79% MS(7)-3 +footnote length MS.7: 76% MS(7)-3 +footnote number[s] REFER.1: 24% REFER(1)-1 + " REFER.1: 35% REFER(1)-1 + " USD.21: 14% USD:21-1 + " USD.21: 16% USD:21-1 + " USD.21: 16% USD:21-1 + " USD.21: 19% USD:21-1 + " USD.21: 31% USD:21-1 + " USD.21: 33% USD:21-1 + " USD.22: 40% USD:22-8 + " USD.22: 40% USD:22-8 + " USD.23: 68% USD:23-9 + " USD.29: 39% USD:29-4 + " USD.29: 49% USD:29-5 + " USD.29: 51% USD:29-5 + " USD.29: 65% USD:29-7 + " USD.29: 66% USD:29-7 + " USD.29: 67% USD:29-7 + " USD.29: 69% USD:29-7 + " USD.29: 75% USD:29-8 + " USD.29: 75% USD:29-8 + " USD.29: 76% USD:29-8 + " USD.29: 76% USD:29-8 + " USD.29: 80% USD:29-8 + " USD.30: 79% USD:30-9 + " USD.30: 80% USD:30-9 +Footnote Processing USD.24: 90% USD:24-30 +footnote separator, .$s output the USD.23: 37% USD:23-5 +footnoted reference[s] USD.31: 21% USD:31-3 +fopen, freopen, fdopen - open a stream FOPEN.3S: 2% FOPEN(3S)-1 +for - Bourne shell command SH.1: 0% SH(1)-1 + " USD.03: 24% USD:3-6 +forces, option ROUTED.8C: 49% ROUTED(8C)-2 + " SMM.02: 99% SMM:2-33 +Forcing the queue SMM.07A: 16% SMM:07-9 +foreach USD.04: 65% USD:4-32 +foreach command USD.04: 79% USD:4-38 + " USD.04: 59% USD:4-28 +foreach shell command CSH.1: 54% CSH(1)-11 +Foreground CSH.1: 76% CSH(1)-16 +foreground command fg CSH.1: 7% CSH(1)-2 +foreground job[s] USD.04: 37% USD:4-17 + " USD.04: 38% USD:4-17 + " USD.04: 39% USD:4-17 + " USD.04: 40% USD:4-17 + " USD.04: 40% USD:4-18 + " USD.04: 40% USD:4-18 + " USD.04: 42% USD:4-19 + " USD.04: 48% USD:4-22 + " USD.04: 80% USD:4-38 + " USD.04: 97% USD:4-44 +foreign addresses IDP.4P: 86% IDP(4P)-2 + " PS1.06: 79% PS1:6-34 + " PS1.08: 10% PS1:8-4 + " PS1.08: 73% PS1:8-30 + " PS1.08: 73% PS1:8-30 + " PS1.08: 78% PS1:8-32 + " SMM.15: 81% SMM:15-23 + " SMM.15: 83% SMM:15-23 +foreign binary PS2.09: 55% PS2:9-97 + " PS2.09: 55% PS2:9-97 + " PS2.09: 55% PS2:9-97 + " PS2.09: 55% PS2:9-97 + " PS2.09: 56% PS2:9-97 + " PS2.09: 56% PS2:9-97 + " PS2.09: 56% PS2:9-97 +foreign function[s] PS2.09: 1% PS2:9-3 + " PS2.09: 6% PS2:9-10 + " PS2.09: 15% PS2:9-28 + " PS2.09: 35% PS2:9-63 + " PS2.09: 36% PS2:9-65 + " PS2.09: 59% PS2:9-103 + " PS2.09: 59% PS2:9-103 + " PS2.09: 59% PS2:9-103 + " PS2.09: 60% PS2:9-104 + " PS2.09: 60% PS2:9-104 + " PS2.09: 60% PS2:9-104 + " PS2.09: 60% PS2:9-104 + " PS2.09: 60% PS2:9-104 + " PS2.09: 60% PS2:9-104 + " PS2.09: 60% PS2:9-104 + " PS2.09: 61% PS2:9-105 + " PS2.09: 63% PS2:9-108 +foreign host INTRO.2: 57% INTRO(2)-5 + " REXEC.3: 25% REXEC(3)-1 +foreign name[s] USD.29: 64% USD:29-7 +foreign port[s] PS1.08: 10% PS1:8-4 + " PS1.08: 73% PS1:8-30 + " PS1.08: 73% PS1:8-30 + " PS1.08: 77% PS1:8-31 +fork CLOSE.2: 42% CLOSE(2)-1 + " FLOCK.2: 69% FLOCK(2)-1 + " LASTCOMM.1: 74% LASTCOMM(1)-1 + " VFORK.2: 19% VFORK(2)-1 +fork - create a copy of this process FORK.3F: 4% CSH(1)-12 +fork - create a new process FORK.2: 2% FORK(2)-1 +Fork a shell USD.11: 22% USD:11-4 +fork() PS1.06: 8% PS1:6-7 + " PS1.07a: 10% PS1:7-2 +form[s], combining PS2.07: 2% PS2:7-4 + " PS2.07: 2% PS2:7-4 + " PS2.07: 7% PS2:7-5 + " PS2.07: 7% PS2:7-5 + " PS2.07: 8% PS2:7-5 + " PS2.07: 8% PS2:7-5 +form[s], functional FP.1: 29% FP(1)-1 +form feed MORE.1: 24% MORE(1)-1 +form file FORW.N: 39% FORW(1)-1 + " MHL.N: 34% MHL(1)-1 + " REPL.N: 42% REPL(1)-1 + " USD.08: 22% USD:8-23 + " USD.08: 28% USD:8-30 + " USD.08: 48% USD:8-57 +form letter[s] USD.24: 78% USD:24-25 +form[s], functional PS2.07: 3% PS2:7-4 + " PS2.07: 20% PS2:7-10 + " PS2.07: 20% PS2:7-10 + " PS2.07: 20% PS2:7-10 + " PS2.07: 21% PS2:7-10 + " PS2.07: 21% PS2:7-11 + " PS2.07: 22% PS2:7-11 + " PS2.07: 26% PS2:7-13 + " PS2.07: 32% PS2:7-15 + " PS2.07: 33% PS2:7-15 + " PS2.07: 33% PS2:7-15 + " PS2.07: 58% PS2:7-28 + " PS2.07: 58% PS2:7-28 + " PS2.07: 59% PS2:7-28 + " PS2.07: 59% PS2:7-28 + " PS2.07: 64% PS2:7-29 + " PS2.07: 65% PS2:7-30 + " PS2.07: 66% PS2:7-30 + " PS2.07: 68% PS2:7-30 + " PS2.07: 68% PS2:7-30 + " PS2.07: 77% PS2:7-33 +formal argument[s] PS1.01: 23% PS1:1-7 + " PS2.06: 21% PS2:6-8 + " PS2.06: 26% PS2:6-10 + " PS2.06: 26% PS2:6-10 + " PS2.06: 41% PS2:6-15 + " PS2.06: 44% PS2:6-16 + " PS2.06: 44% PS2:6-16 + " PS2.06: 66% PS2:6-23 + " PS2.06: 67% PS2:6-23 + " PS2.06: 67% PS2:6-23 + " PS2.06: 67% PS2:6-23 + " PS2.06: 67% PS2:6-23 + " PS2.06: 68% PS2:6-23 + " SMM.19: 94% SMM:19-26 +formal parameter[s] PS1.01: 23% PS1:1-7 + " PS1.01: 70% PS1:1-24 + " PS1.01: 71% PS1:1-24 + " PS1.01: 72% PS1:1-24 + " PS1.01: 72% PS1:1-24 + " PS1.01: 78% PS1:1-26 + " PS1.01: 78% PS1:1-26 + " PS1.01: 83% PS1:1-28 + " PS1.04: 80% PS1:4-41 + " PS2.06: 29% PS2:6-11 + " PS2.09: 24% PS2:9-46 + " PS2.09: 24% PS2:9-46 + " PS2.09: 54% PS2:9-95 + " PS2.09: 54% PS2:9-95 + " PS2.09: 55% PS2:9-95 + " PS2.09: 55% PS2:9-95 + " PS2.09: 55% PS2:9-95 + " PS2.09: 56% PS2:9-98 + " SMM.19: 22% SMM:19-7 + " USD.06: 73% USD:6-10 +Format[s] FORMAT.8V: 5% FORMAT(8V)-1 + " FORMAT.8V: 18% FORMAT(8V)-1 + " FORMAT.8V: 23% FORMAT(8V)-1 + " FORMAT.8V: 49% FORMAT(8V)-1 + " SMM.10: 4% SMM:10-2 +formal variables PS2.09: 29% PS2:9-55 + " PS2.09: 29% PS2:9-55 + " PS2.09: 29% PS2:9-55 + " PS2.10: 64% PS2:10-56 +format[s], address INTRO.4N: 23% INTRO(4N)-1 + " INTRO.4N: 31% INTRO(4N)-1 + " INTRO.4N: 31% INTRO(4N)-1 + " MAILADDR.7: 26% MAILADDR(7)-1 + " NETSTAT.1: 47% NETSTAT(1)-1 + " SMM.15: 8% SMM:15-4 + " SMM.15: 56% SMM:15-17 + " SMM.15: 82% SMM:15-23 +format, archive file AR.5: 2% AR(5)-1 +format, column MS.7: 65% MS(7)-2 + " MS.7: 66% MS(7)-2 + " USD.20: 22% USD:20-2 +format, DVI LPD.8: 56% LPD(8)-1 + " LPR.1: 25% LPR(1)-1 + " PRINTCAP.5: 22% PRINTCAP(5)-1 +format, execute file SMM.09: 16% SMM:9-4 +format, file system FS.5: 51% FS(5)-2 + " SMM.01: 9% SMM:1-7 +format, footnote MS.7: 81% MS(7)-3 +format, Internet address GETHOSTBYNAME.3N: 97% GETHOSTBYNAME(3) + " INET.4F: 8% INET(4F)-1 + " TCP.4P: 10% TCP(4P)-1 + " UDP.4P: 37% UDP(4P)-1 +format, library file AR.5: 4% AR(5)-1 +format, mail drop REFILE.N: 36% REFILE(1)-1 + " REFILE.N: 38% REFILE(1)-1 + " USD.08: 46% USD:8-55 + " USD.08: 46% USD:8-55 +format[s], message MH-MAIL.N: 0% MH-MAIL(5)-1 + " USD.08: 67% USD:8-82 +formats, file PS1.02: 1% + " PS1.02: 3% PS1:2-4 + " PS1.02: 43% PS1:2-15 + " PS1.10: 42% PS1:10-9 + " PS2.04: 96% PS2:4-9 +format code[s] PS1.02: 35% PS1:2-12 + " PS1.02: 68% PS1:2-23 + " PS1.02: 69% PS1:2-23 + " PS1.02: 70% PS1:2-23 + " PS1.02: 70% PS1:2-23 + " PS1.02: 70% PS1:2-24 +Format interpretation PS1.03: 32% PS1:3-5 + " PS1.03: 48% PS1:3-6 + " PS1.03: 50% PS1:3-6 +format print PS1.10: 96% PS1:10-26 + " PS1.10: 96% PS1:10-27 + " PS1.10: 96% PS1:10-27 +Format specifiers PS1.03: 43% PS1:3-6 + " PS2.06: 61% PS2:6-21 + " PS2.06: 61% PS2:6-21 +format statement[s] PS1.02: 22% PS1:2-9 + " PS1.02: 62% PS1:2-21 + " PS1.02: 69% PS1:2-23 + " PS1.02: 69% PS1:2-23 + " PS1.02: 71% PS1:2-24 + " PS1.03: 8% PS1:3-3 + " PS1.03: 32% PS1:3-5 + " PS1.03: 33% PS1:3-5 + " PS1.03: 69% PS1:3-9 +Formatted dump PS1.10: 50% PS1:10-10 +Fortran PS1.02: 0% + " PS1.02: 0% + " PS1.02: 0% + " PS1.02: 1% + " PS1.02: 1% + " PS1.02: 1% PS1:2-4 + " PS1.02: 1% PS1:2-4 + " PS1.02: 2% PS1:2-4 + " PS1.02: 4% PS1:2-4 + " PS1.02: 4% PS1:2-4 + " PS1.02: 7% PS1:2-5 + " PS1.02: 12% PS1:2-6 + " PS1.02: 12% PS1:2-6 + " PS1.02: 14% PS1:2-6 + " PS1.02: 14% PS1:2-7 + " PS1.02: 14% PS1:2-7 + " PS1.02: 17% PS1:2-7 + " PS1.02: 19% PS1:2-8 + " PS1.02: 20% PS1:2-8 + " PS1.02: 20% PS1:2-8 + " PS1.02: 20% PS1:2-8 + " PS1.02: 21% PS1:2-8 + " PS1.02: 23% PS1:2-9 + " PS1.02: 24% PS1:2-9 + " PS1.02: 24% PS1:2-9 + " PS1.02: 33% PS1:2-12 + " PS1.02: 36% PS1:2-12 + " PS1.02: 41% PS1:2-14 + " PS1.02: 43% PS1:2-15 + " PS1.02: 48% PS1:2-17 + " PS1.02: 48% PS1:2-17 + " PS1.02: 49% PS1:2-17 + " PS1.02: 49% PS1:2-17 + " PS1.02: 49% PS1:2-17 + " PS1.02: 57% PS1:2-19 + " PS1.02: 57% PS1:2-19 + " PS1.02: 58% PS1:2-19 + " PS1.02: 59% PS1:2-20 + " PS1.02: 63% PS1:2-21 + " PS1.02: 67% PS1:2-22 + " PS1.02: 72% PS1:2-24 + " PS1.03: 1% PS1:3-1 + " PS1.03: 12% PS1:3-3 + " PS1.03: 13% PS1:3-3 + " PS1.05: 76% PS1:5-11 + " PS1.11: 7% PS1:11-1 + " PS1.15: 25% PS1:15-7 + " PS1.16: 3% PS1:16-1 + " PS1.16: 8% PS1:16-2 + " PS2.01: 6% PS2:1-2 + " PS2.03: 26% PS2:3-5 + " PS2.06: 71% PS2:6-24 + " PS2.06: 74% PS2:6-25 + " PS2.06: 97% PS2:6-35 + " PS2.06: 98% PS2:6-35 + " PS2.06: 98% PS2:6-35 + " PS2.06: 99% PS2:6-35 + " PS2.08: 0% PS2:8-1 + " PS2.08: 2% PS2:8-1 + " PS2.08: 4% PS2:8-1 + " PS2.08: 4% PS2:8-1 + " PS2.08: 5% PS2:8-1 + " PS2.08: 5% PS2:8-2 + " PS2.08: 9% PS2:8-2 + " PS2.08: 10% PS2:8-2 + " PS2.08: 10% PS2:8-2 + " PS2.08: 12% PS2:8-2 + " PS2.08: 14% PS2:8-2 + " PS2.08: 15% PS2:8-2 + " PS2.08: 24% PS2:8-4 + " PS2.08: 26% PS2:8-4 + " PS2.08: 26% PS2:8-4 + " PS2.08: 33% PS2:8-5 + " PS2.08: 43% PS2:8-6 + " PS2.08: 46% PS2:8-7 + " PS2.08: 69% PS2:8-10 + " PS2.08: 77% PS2:8-11 + " PS2.08: 78% PS2:8-11 + " PS2.08: 80% PS2:8-11 + " PS2.08: 81% PS2:8-11 + " PS2.08: 81% PS2:8-11 + " PS2.08: 85% PS2:8-12 + " PS2.08: 89% PS2:8-12 + " PS2.08: 92% PS2:8-12 + " PS2.08: 99% PS2:8-14 + " PS2.09: 1% PS2:9-4 + " PS2.09: 59% PS2:9-103 + " PS2.09: 61% PS2:9-105 + " PS2.09: 62% PS2:9-107 + " PS2.09: 62% PS2:9-107 + " PS2.09: 64% PS2:9-108 + " PS2.09: 65% PS2:9-111 +Fortran, ANSI PS2.08: 8% PS2:8-2 + " PS2.08: 18% PS2:8-3 + " PS2.08: 34% PS2:8-5 +Fortran, Non-``ANSI Standard'' extension to PS1.03: 42% PS1:3-6 +Fortran, Portable PS1.02: 0% + " PS1.02: 1% PS1:2-4 + " PS1.02: 5% PS1:2-4 + " PS1.02: 9% PS1:2-6 + " PS1.02: 13% PS1:2-6 + " PS1.02: 18% PS1:2-8 + " PS1.02: 21% PS1:2-8 + " PS1.02: 26% PS1:2-10 + " PS1.02: 29% PS1:2-10 + " PS1.02: 32% PS1:2-12 + " PS1.02: 36% PS1:2-12 + " PS1.02: 40% PS1:2-14 + " PS1.02: 42% PS1:2-14 + " PS1.02: 47% PS1:2-16 + " PS1.02: 48% PS1:2-16 + " PS1.02: 52% PS1:2-18 + " PS1.02: 55% PS1:2-18 + " PS1.02: 59% PS1:2-20 + " PS1.02: 62% PS1:2-20 + " PS1.02: 64% PS1:2-22 + " PS1.02: 67% PS1:2-22 + " PS1.02: 70% PS1:2-24 + " PS1.02: 74% PS1:2-24 + " PS1.02: 78% PS1:2-26 + " PS1.02: 81% PS1:2-26 + " PS1.02: 83% PS1:2-28 + " PS1.02: 85% PS1:2-2 + " PS1.02: 99% PS1:2-4 + " PS1.03: 59% PS1:3-7 +Fortran, RATFOR - A Preprocessor for a Rational PS2.08: 0% + " PS2.08: 0% + " PS2.08: 0% + " PS2.08: 5% PS2:8-2 + " PS2.08: 15% PS2:8-2 + " PS2.08: 23% PS2:8-4 + " PS2.08: 30% PS2:8-4 + " PS2.08: 36% PS2:8-6 + " PS2.08: 44% PS2:8-6 + " PS2.08: 52% PS2:8-8 + " PS2.08: 60% PS2:8-8 + " PS2.08: 67% PS2:8-10 + " PS2.08: 74% PS2:8-10 + " PS2.08: 83% PS2:8-12 + " PS2.08: 93% PS2:8-12 +Fortran, Standard PS1.02: 2% PS1:2-4 + " PS2.06: 79% PS2:6-27 + " PS2.06: 91% PS2:6-33 + " PS2.06: 87% PS2:6-31 +Fortran 66 and Fortran 77, Differences Between PS1.02: 48% PS1:2-17 +Fortran code PS2.06: 0% PS2:6-1 + " PS2.06: 1% PS2:6-1 +Fortran compiler PS1.02: 2% PS1:2-4 + " PS1.02: 3% PS1:2-4 + " PS1.02: 10% PS1:2-6 + " PS2.06: 71% PS2:6-24 + " PS2.08: 70% PS2:8-10 + " PS2.08: 84% PS2:8-12 + " PS2.09: 36% PS2:9-65 +Fortran DO PS2.06: 55% PS2:6-19 + " PS2.08: 7% PS2:8-2 + " PS2.08: 34% PS2:8-5 + " PS2.08: 39% PS2:8-6 + " PS2.08: 40% PS2:8-6 + " PS2.08: 51% PS2:8-7 +Fortran I/O PS1.02: 43% PS1:2-15 + " PS1.03: 3% PS1:3-1 + " PS1.03: 66% PS1:3-8 +Fortran I/O Library Error Message[s] PS1.03: 68% PS1:3-8 +Fortran Language, Extended PS2.06: 4% PS2:6-3 +formats, non-standard DP.N: 16% DP(8)-1 + " USD.08: 75% USD:8-91 + " USD.08: 76% USD:8-94 +format[s], output AWK.1: 83% AWK(1)-2 + " SCAN.N: 58% SCAN(1)-1 +format[s], reference BIB.N: 17% BIB(1)-1 + " USD.31: 20% USD:31-3 + " USD.31: 38% USD:31-6 + " USD.31: 40% USD:31-7 +format, released paper USD.20: 68% USD:20-5 +Format, Standard Resource Record SMM.11: 34% SMM:11-5 + " SMM.11: 34% SMM:11-5 + " SMM.11: 38% SMM:11-6 +format, tapes in ANSI SMM.12A: 97% SMM:12-23 +format, tar - tape archive file TAR.5: 1% TAR(5)-1 +format - how to format disk packs FORMAT.8V: 0% FORMAT(8V)-1 +format a paragraph FMT.1: 69% FMT(1)-1 +format argument USD.20: 80% USD:20-6 + " USD.20: 80% USD:20-6 +format commands MH-FORMAT.N: 10% MH-FORMAT(5)-1 + " USD.08: 64% USD:8-78 + " USD.31: 45% USD:31-8 +format file AP.N: 40% AP(8)-1 + " DP.N: 50% DP(8)-1 + " MH-FORMAT.N: 0% MH-FORMAT(5)-1 + " MH-FORMAT.N: 2% MH-FORMAT(5)-1 + " MH-FORMAT.N: 5% MH-FORMAT(5)-1 + " MHL.N: 31% MHL(1)-1 + " MHL.N: 34% MHL(1)-1 + " MHL.N: 38% MHL(1)-1 + " MHL.N: 80% MHL(1)-3 + " REPL.N: 63% REPL(1)-2 + " SCAN.N: 63% SCAN(1)-1 + " USD.08: 28% USD:8-30 + " USD.08: 28% USD:8-30 + " USD.08: 28% USD:8-31 + " USD.08: 30% USD:8-32 + " USD.08: 49% USD:8-58 + " USD.08: 52% USD:8-63 + " USD.08: 64% USD:8-78 + " USD.08: 64% USD:8-78 + " USD.08: 64% USD:8-78 + " USD.08: 75% USD:8-91 + " USD.08: 76% USD:8-94 + " USD.31: 45% USD:31-8 + " USD.31: 45% USD:31-8 + " USD.31: 46% USD:31-8 + " USD.31: 55% USD:31-9 + " USD.31: 67% USD:31-11 + " USD.31: 80% USD:31-13 +format floppy disk[s] RXFORMAT.8V: 4% RXFORMAT(8V)-1 +Format of ARPA Internet Text Messages DP.N: 75% DP(8)-1 + " MAILADDR.7: 98% MAILADDR(7)-3 + " MH-MAIL.N: 97% MH-MAIL(5)-3 + " POST.N: 85% POST(8)-1 + " USD.08: 69% USD:8-84 + " USD.08: 75% USD:8-91 + " USD.08: 77% USD:8-94 + " USD.08: 78% USD:8-97 +format of mail message[s] USD.07: 85% USD:7-20 +format of RCS file RCSFILE.N: 1% RCSFILE(5)-2 +format program FORMAT.8V: 2% FORMAT(8V)-1 + " SMM.01: 10% SMM:1-7 + " SMM.01: 12% SMM:1-8 + " SMM.01: 12% SMM:1-8 + " SMM.01: 12% SMM:1-8 + " SMM.01: 13% SMM:1-9 + " SMM.01: 15% SMM:1-10 +format section USD.28: 18% USD:28-3 + " USD.28: 18% USD:28-3 + " USD.28: 30% USD:28-5 + " USD.28: 30% USD:28-5 +format statement[s] SMM.12A: 23% SMM:12-6 +format string DP.N: 48% DP(8)-1 + " MH-FORMAT.N: 2% MH-FORMAT(5)-1 +format tables TBL.1: 4% TBL(1)-1 + " USD.28: 0% USD:28-1 + " USD.28: 0% USD:28-1 + " USD.28: 6% USD:28-2 + " USD.28: 11% USD:28-2 + " USD.28: 19% USD:28-4 + " USD.28: 27% USD:28-4 + " USD.28: 35% USD:28-6 + " USD.28: 42% USD:28-6 + " USD.28: 50% USD:28-8 + " USD.28: 54% USD:28-8 + " USD.28: 58% USD:28-10 + " USD.28: 62% USD:28-10 + " USD.28: 67% USD:28-12 + " USD.28: 70% USD:28-12 + " USD.28: 74% USD:28-14 + " USD.28: 77% USD:28-14 + " USD.28: 83% USD:28-16 + " USD.28: 88% USD:28-16 + " USD.28: 97% USD:28-18 +formatted file INDENT.1: 47% INDENT(1)-1 + " LPD.8: 49% LPD(8)-1 +formatted output PRINTF.3S: 1% PRINTF(3S)-1 +formatter[s], tape AUTOCONF.4: 67% AUTOCONF(4)-1 + " AUTOCONF.4: 69% AUTOCONF(4)-1 + " AUTOCONF.4: 79% AUTOCONF(4)-2 + " SMM.01: 4% SMM:1-3 + " SMM.01: 4% SMM:1-3 + " SMM.01: 7% SMM:1-5 +formatter[s], text FMT.1: 6% FMT(1)-1 + " FMT.1: 15% FMT(1)-1 + " USD.22: 9% USD:22-2 +Formatting FORMAT.8V: 8% FORMAT(8V)-1 + " FORMAT.8V: 35% FORMAT(8V)-1 + " FORMAT.8V: 36% FORMAT(8V)-1 + " FORMAT.8V: 84% FORMAT(8V)-3 + " FORMAT.8V: 89% FORMAT(8V)-3 + " FORMAT.8V: 92% FORMAT(8V)-3 +formatting, nroff - text NROFF.1: 2% NROFF(1)-1 +Formatting Bibliographies USD.31: 0% USD:31-1 + " USD.31: 0% USD:31-1 + " USD.31: 7% USD:31-2 + " USD.31: 16% USD:31-2 + " USD.31: 23% USD:31-4 + " USD.31: 30% USD:31-4 + " USD.31: 35% USD:31-6 + " USD.31: 39% USD:31-6 + " USD.31: 43% USD:31-8 + " USD.31: 49% USD:31-8 + " USD.31: 55% USD:31-10 + " USD.31: 64% USD:31-10 + " USD.31: 72% USD:31-12 + " USD.31: 78% USD:31-12 + " USD.31: 83% USD:31-14 + " USD.31: 85% USD:31-14 + " USD.31: 88% USD:31-16 + " USD.31: 94% USD:31-16 +formatting command[s] USD.01: 67% USD:1-10 + " USD.13: 59% USD:13-10 + " USD.13: 63% USD:13-11 + " USD.20: 5% USD:20-1 + " USD.25: 48% USD:25-8 + " USD.31: 47% USD:31-8 + " USD.32: 13% USD:32-3 + " USD.32: 69% USD:32-10 + " USD.32: 70% USD:32-10 +formatting document[s] MS.7: 3% MS(7)-1 +formatting information USD.28: 7% USD:28-2 + " USD.28: 7% USD:28-2 +formatting macro[s] USD.02: 1% USD:2-1 + " USD.02: 42% USD:2-5 + " USD.31: 72% USD:31-12 + " USD.32: 71% USD:32-10 +Formatting Package[s] USD.01: 67% USD:1-10 + " USD.01: 78% USD:1-12 + " USD.32: 71% USD:32-10 +Formatting program[s] SMM.01: 11% SMM:1-7 + " SMM.01: 12% SMM:1-8 + " USD.01: 1% USD:1-1 + " USD.01: 34% USD:1-6 + " USD.01: 66% USD:1-10 + " USD.20: 63% USD:20-5 + " USD.26: 12% USD:26-2 +formatting requests USD.01: 68% USD:1-10 + " USD.01: 69% USD:1-11 + " USD.01: 70% USD:1-11 +formatting style[s] INDENT.1: 66% INDENT(1)-1 + " VGRIND.1: 87% VGRIND(1)-2 +formatting the disk SMM.01: 11% SMM:1-8 +Formula, Coleman-Liau USD.32: 16% USD:32-3 + " USD.32: 19% USD:32-3 + " USD.32: 21% USD:32-4 +Formula, Kincaid USD.32: 16% USD:32-3 + " USD.32: 17% USD:32-3 + " USD.32: 20% USD:32-4 +Fortran CTAGS.1: 6% CTAGS(1)-1 + " EFL.1: 27% EFL(1)-1 + " F77.1: 0% F77(1)-1 + " F77.1: 4% F77(1)-1 + " F77.1: 7% F77(1)-1 + " F77.1: 45% F77(1)-2 + " INTRO.3: 4% INTRO(3)-1 + " SMM.19: 21% SMM:19-7 + " SMM.19: 88% SMM:19-24 + " SMM.19: 90% SMM:19-25 + " STRUCT.1: 12% STRUCT(1)-1 + " STRUCT.1: 85% STRUCT(1)-1 + " USD.01: 89% USD:1-13 + " USD.01: 90% USD:1-13 + " USD.06: 11% USD:6-2 + " USD.06: 12% USD:6-2 + " SMM.12A: 1% SMM:12-2 + " SMM.12A: 1% SMM:12-2 + " SMM.12A: 3% SMM:12-2 + " SMM.12A: 24% SMM:12-6 + " SMM.12A: 24% SMM:12-6 + " SMM.12A: 28% SMM:12-7 + " SMM.12A: 29% SMM:12-7 +Fortran, Rational RATFOR.1: 5% RATFOR(1)-1 +Fortran 66 F77.1: 26% F77(1)-1 + " STRUCT.1: 84% STRUCT(1)-1 + " STRUCT.1: 84% STRUCT(1)-1 +Fortran 77 compiler, f77 - F77.1: 0% F77(1)-1 +Fortran carriage control FPR.1: 10% FPR(1)-1 + " LPD.8: 62% LPD(8)-2 + " LPR.1: 34% LPR(1)-1 +Fortran compiler SMM.12A: 17% SMM:12-5 +fortran I/O GETC.3F: 43% GETC(3F)-1 + " PUTC.3F: 50% PUTC(3F)-1 +Fortran Language EFL.1: 4% EFL(1)-1 +Fortran library[s] SMM.01: 80% SMM:1-48 +Fortran library routines SMM.12A: 61% SMM:12-14 + " SMM.12A: 61% SMM:12-14 +fortran language extension[s] PS1.02: 11% PS1:2-6 +Fortran or Ratfor programs to EFL, conversion of old PS2.06: 71% PS2:6-24 +Fortran procedure[s] PS1.02: 37% PS1:2-13 + " PS1.02: 37% PS1:2-13 + " PS2.06: 81% PS2:6-28 + " PS2.06: 97% PS2:6-35 + " PS2.06: 98% PS2:6-35 + " PS2.06: 99% PS2:6-35 +Fortran program[s] PS1.02: 9% PS1:2-5 + " PS1.02: 16% PS1:2-7 + " PS1.02: 41% PS1:2-14 + " PS1.02: 43% PS1:2-15 + " PS2.08: 8% PS2:8-2 + " PS2.08: 87% PS2:8-12 + " PS2.09: 58% PS2:9-101 +Fortran Standard[s] PS2.06: 98% PS2:6-35 + " PS1.02: 33% PS1:2-12 +Fortran Standard, Exceptions to the ANSI PS1.03: 80% PS1:3-10 +Fortran statement[s] PS2.06: 79% PS2:6-27 + " PS2.08: 7% PS2:8-2 + " PS2.08: 24% PS2:8-4 + " PS2.08: 49% PS2:8-7 + " PS2.08: 49% PS2:8-7 +FP PS2.07: 0% + " PS2.07: 0% PS2:7-4 + " PS2.07: 1% PS2:7-4 + " PS2.07: 5% PS2:7-4 + " PS2.07: 5% PS2:7-4 + " PS2.07: 7% PS2:7-5 + " PS2.07: 8% PS2:7-5 + " PS2.07: 27% PS2:7-14 + " PS2.07: 28% PS2:7-14 + " PS2.07: 31% PS2:7-15 + " PS2.07: 38% PS2:7-17 + " PS2.07: 39% PS2:7-17 + " PS2.07: 41% PS2:7-18 + " PS2.07: 52% PS2:7-27 + " PS2.07: 63% PS2:7-29 + " PS2.07: 64% PS2:7-29 +FP function[s] PS2.07: 1% PS2:7-4 + " PS2.07: 5% PS2:7-4 + " PS2.07: 37% PS2:7-17 + " PS2.07: 53% PS2:7-27 +FP User's Manual, Rev. 4.1, Berkeley PS2.07: 0% unknown +fortran logical unit GETC.3F: 38% GETC(3F)-1 + " PUTC.3F: 12% PUTC(3F)-1 + " PUTC.3F: 44% PUTC(3F)-1 + " STAT.3F: 51% unknown +Fortran program[s] PLOT.3F: 82% PLOT(3F)-1 + " STRUCT.1: 6% STRUCT(1)-1 + " SMM.12A: 28% SMM:12-7 + " SMM.12A: 69% SMM:12-16 +Fortran subroutines SMM.12A: 28% SMM:12-7 +fortune - print a random, hopefully interesting, adage FORTUNE.6: 6% +forw - forward message[s] FORW.N: 0% FORW(1)-1 + " USD.08: 21% USD:8-23 +forw command PROMPTER.N: 59% PROMPTER(1)-1 + " USD.08: 44% USD:8-52 + " USD.08: 86% USD:8-104 +forward file ALIASES.5: 44% ALIASES(5)-1 + " MHOOK.N: 6% MHOOK(1)-1 +forward message, forw - USD.08: 21% USD:8-23 +forward-character (C-F) USD.17: 72% USD:17-34 +forward-paragraph (ESC ]) USD.17: 72% USD:17-34 +forward-s-expression (ESC C-F) USD.17: 73% USD:17-34 +forward-sentence (ESC E) USD.17: 73% USD:17-34 +forward-word (ESC F) USD.17: 73% USD:17-34 +forwarded messages FORW.N: 40% FORW(1)-1 + " FORW.N: 57% FORW(1)-2 + " USD.08: 22% USD:8-24 + " USD.08: 22% USD:8-24 +Forwarded: MH-MAIL.N: 92% MH-MAIL(5)-3 + " USD.08: 68% USD:8-84 + " USD.08: 21% USD:8-23 + " FORW.N: 22% FORW(1)-1 +Forwarding SMM.16: 30% SMM:16-4 + " SMM.16: 45% SMM:16-6 + " SMM.16: 45% SMM:16-6 + " SMM.16: 47% SMM:16-7 + " SMM.16: 48% SMM:16-7 +forwarding, block BADSECT.8: 18% BADSECT(8)-1 + " BADSECT.8: 24% BADSECT(8)-1 + " SMM.12A: 84% SMM:12-20 +forwarding, mail ALIASES.5: 47% ALIASES(5)-1 +forwarding, network mail SMM.16: 47% SMM:16-7 +forwarding, packet SMM.01: 67% SMM:1-41 + " SMM.15: 89% SMM:15-25 + " SMM.15: 89% SMM:15-25 +forwarding, sector BAD144.8: 8% BAD144(8)-1 + " SMM.01: 12% SMM:1-8 + " SMM.12A: 64% SMM:12-15 + " SMM.12A: 77% SMM:12-18 +Forwarding Text To Other Notesfile[s] USD.11: 48% USD:11-8 +forwcomp[s] FORW.N: 14% FORW(1)-1 + " USD.08: 21% USD:8-23 +Fp FP.1: 6% FP(1)-1 + " FP.1: 24% FP(1)-1 + " FP.1: 50% FP(1)-1 + " FP.1: 51% FP(1)-1 + " FP.1: 91% FP(1)-1 +fp - Functional Programming language compiler/interpreter FP.1: 2% FP(1)-1 +fp function[s] FP.1: 28% FP(1)-1 +FPE, SIGFPE SIGNAL.3C: 85% SIGNAL(3C)-2 + " SIGNAL.3C: 86% SIGNAL(3C)-2 + " SIGVEC.2: 89% SIGVEC(2)-3 + " SIGVEC.2: 90% SIGVEC(2)-3 +fpecnt - trap and repair floating point fault[s] TRPFPE.3F: 4% TRPFPE(3F)-1 +fpr - print Fortran file FPR.1: 2% FPR(1)-1 +fprintf PRINTF.3S: 1% PRINTF(3S)-1 +fputc PUTC.3F: 8% PUTC(3F)-1 + " PUTC.3S: 5% PUTC(3S)-1 +Fraction[s] USD.26: 36% USD:26-3 +Fragment[s] SMM.05: 13% SMM:5-4 + " SMM.14: 27% SMM:14-5 +fragment size FS.5: 64% FS(5)-3 + " MKFS.8: 42% MKFS(8)-1 + " NEWFS.8: 37% NEWFS(8)-1 +fragment size, selecting a SMM.01: 48% SMM:1-31 +frame[s], stack DBX.1: 70% DBX(1)-5 + " DBX.5: 28% DBX(5)-1 + " MALLOC.3: 56% MALLOC(3)-1 + " PS1.10: 20% PS1:10-5 + " PS1.10: 21% PS1:10-5 + " PS2.09: 86% PS2:9-139 + " PS2.09: 86% PS2:9-139 +Franz Lisp Manual PS2.09: 0% unknown +FRANZ LISP system PS2.07: 58% PS2:7-28 + " PS2.09: 1% PS2:9-4 + " PS2.09: 64% PS2:9-108 +frame[s], stack SMM.19: 4% SMM:19-2 + " SMM.19: 42% SMM:19-12 + " SMM.19: 42% SMM:19-12 + " SMM.19: 44% SMM:19-12 + " SMM.19: 44% SMM:19-13 + " SMM.19: 73% SMM:19-20 + " VARARGS.3: 79% VARARGS(3)-1 + " SMM.12A: 4% SMM:12-2 +frame buffer IK.4: 4% IK(4)-1 +frame pointer DBX.5: 10% DBX(5)-1 + " DBX.5: 29% DBX(5)-1 + " SIGRETURN.2: 36% SIGRETURN(2)-1 +fread, fwrite - buffered binary input/output FREAD.3S: 5% FREAD(3S)-1 +FREE MALLOC.3: 2% MALLOC(3)-1 + " MALLOC.3F: 2% MALLOC(3F)-1 +free block[s] FS.5: 15% FS(5)-1 +Free block checking SMM.05: 25% SMM:5-6 +free form input EFL.1: 44% EFL(1)-1 + " RATFOR.1: 62% RATFOR(1)-1 +free inodes CREAT.2: 66% CREAT(2)-1 + " SMM.05: 27% SMM:5-6 + " SMM.05: 27% SMM:5-6 + " SMM.14: 50% SMM:14-8 +free list[s] BADSECT.8: 61% BADSECT(8)-1 + " FSCK.8: 26% FSCK(8)-1 + " FSCK.8: 26% FSCK(8)-1 + " FSCK.8: 74% FSCK(8)-2 + " FSCK.8: 75% FSCK(8)-2 + " ICHECK.8: 12% ICHECK(8)-1 + " ICHECK.8: 30% ICHECK(8)-1 + " ICHECK.8: 32% ICHECK(8)-1 + " ICHECK.8: 49% ICHECK(8)-1 + " ICHECK.8: 81% ICHECK(8)-1 + " ICHECK.8: 84% ICHECK(8)-1 + " ICHECK.8: 86% ICHECK(8)-1 + " PS2.05: 64% PS2:5-5 + " PS2.05: 66% PS2:5-5 + " PS2.05: 75% PS2:5-5 + " PS2.05: 79% PS2:5-6 + " PS2.05: 92% PS2:5-6 + " PS2.09: 42% PS2:9-76 +Fsave PS2.07: 30% PS2:7-14 + " PS2.07: 30% PS2:7-14 +free list[s] SMM.13: 29% SMM:13-11 + " SMM.14: 10% SMM:14-3 + " SMM.14: 15% SMM:14-3 + " SMM.14: 15% SMM:14-3 + " SMM.14: 20% SMM:14-4 + " SMM.14: 39% SMM:14-7 + " SMM.15: 86% SMM:15-24 + " SYSTAT.1: 37% SYSTAT(1)-2 + " SYSTAT.1: 53% SYSTAT(1)-3 + " SYSTAT.1: 53% SYSTAT(1)-3 + " SYSTAT.1: 53% SYSTAT(1)-3 + " VMSTAT.1: 53% VMSTAT(1)-1 + " VMSTAT.1: 59% VMSTAT(1)-1 +free space DF.1: 51% DF(1)-1 + " DIR.5: 40% DIR(5)-1 + " NEWFS.8: 43% NEWFS(8)-1 + " SMM.10: 25% SMM:10-7 + " SMM.14: 38% SMM:14-6 + " SMM.14: 38% SMM:14-6 + " SMM.14: 57% SMM:14-9 + " SMM.14: 61% SMM:14-9 + " SMM.14: 77% SMM:14-11 + " SMM.15: 87% SMM:15-24 +free space reserve SMM.14: 38% SMM:14-6 + " SMM.14: 37% SMM:14-6 +Free-form Input USD.26: 32% USD:26-3 +Freedom 100 SYSLINE.1: 9% SYSLINE(1)-1 +freopen FOPEN.3S: 2% FOPEN(3S)-1 + " SETBUF.3S: 74% SETBUF(3S)-1 +frequency, clock SMM.12A: 33% SMM:12-8 + " SMM.12A: 43% SMM:12-10 +Frequently Asked Question[s], Answers to USD.10: 78% USD:10-10 +frexp SMM.12A: 64% SMM:12-15 +frexp, ldexp, modf - split into mantissa and exponent FREXP.3: 7% +From MH-MAIL.N: 56% MH-MAIL(5)-2 + " SENDMAIL.8: 14% SENDMAIL(8)-1 +from - who is my mail from? FROM.1: 10% FROM(1)-1 +from field MH.N: 26% MH(1)-1 +From: MHOOK.N: 26% MHOOK(1)-2 + " USD.08: 68% USD:8-83 +front-end, prompting USD.08: 59% USD:8-71 + " WHATNOW.N: 1% WHATNOW(1)-1 +front-end, visual USD.08: 58% USD:8-69 +frozen configuration SMM.07A: 11% SMM:07-7 +frozen configuration file SENDMAIL.8: 25% SENDMAIL(8)-1 + " SMM.07A: 12% SMM:07-8 +fs, inode - format of file system volume FS.5: 0% FS(5)-1 +FS awk variable (input field separator) USD.19: 16% USD:19-2 +fscanf - formatted input conversion SCANF.3S: 1% SCANF(3S)-1 +Fsck CLRI.8: 17% CLRI(8)-1 + " DCHECK.8: 13% DCHECK(8)-1 + " FASTBOOT.8: 84% + " ICHECK.8: 8% ICHECK(8)-1 + " SMM.12A: 85% SMM:12-20 +fsck, mklost+found - make a lost+found directory for MKLOST+FOUND.8: 10% unknown +fsck - file system consistency check and interactive repair FSCK.8: 1% FSCK(8)-1 +Fsck - The UNIX File System Check Program SMM.05: 0% SMM:5-2 +Fsck Error Condition[s] SMM.05: 41% SMM:5-9 +fseek FOPEN.3S: 41% FOPEN(3S)-1 + " UNGETC.3S: 70% UNGETC(3S)-1 +fseek, ftell, rewind - reposition a stream FSEEK.3S: 5% FSEEK(3S)-1 +fseek, ftell - reposition a file on a logical unit FSEEK.3F: 5% ABS(3)-1 +fsplit - split a multi-routine Fortran file into individual files FSPLIT.1: 3% FSPLIT(1)-1 +FSTAB GETFSENT.3: 54% GETFSENT(3)-1 +fstab, struct FSTAB.5: 82% FSTAB(5)-1 + " GETFSENT.3: 13% GETFSENT(3)-1 + " GETFSENT.3: 15% GETFSENT(3)-1 + " GETFSENT.3: 19% GETFSENT(3)-1 + " GETFSENT.3: 22% GETFSENT(3)-1 + " GETFSENT.3: 44% GETFSENT(3)-1 +fstab - static information about the filesystems FSTAB.5: 1% FSTAB(5)-1 +fstat - get file status STAT.2: 1% STAT(2)-1 + " STAT.3F: 6% STAT(3F)-1 +fstat system call on a socket SMM.15: 55% SMM:15-16 +fstat(fd, stb) PS1.06: 64% PS1:6-29 +FTP, file transfer protocol, PS1.08: 43% PS1:8-17 +fsync - synchronize a file's in-core state with that on disk FSYNC.2: 5% ABS(3)-1 +ftell FSEEK.3S: 5% FSEEK(3S)-1 +ftime - get date and time TIME.3C: 4% TIME(3C)-1 +Ftp FTP.1C: 0% FTP(1C)-1 + " FTP.1C: 79% FTP(1C)-6 + " SMM.01: 60% SMM:1-38 + " SMM.12A: 32% SMM:12-8 +ftp, anonymous FTPD.8C: 62% FTPD(8C)-2 +ftp - ARPANET file transfer program FTP.1C: 0% FTP(1C)-1 +ftp protocol FTP.1C: 60% FTP(1C)-5 + " FTP.1C: 77% FTP(1C)-6 + " SMM.07A: 68% SMM:07-28 +FTP server[s] FTP.1C: 2% FTP(1C)-1 + " FTP.1C: 21% FTP(1C)-2 + " FTP.1C: 49% FTP(1C)-4 + " FTP.1C: 50% FTP(1C)-4 + " FTP.1C: 52% FTP(1C)-4 + " FTP.1C: 57% FTP(1C)-4 + " FTP.1C: 58% FTP(1C)-5 + " FTP.1C: 60% FTP(1C)-5 + " FTP.1C: 67% FTP(1C)-5 + " FTP.1C: 69% FTP(1C)-5 + " FTP.1C: 70% FTP(1C)-5 + " FTP.1C: 71% FTP(1C)-5 + " FTP.1C: 72% FTP(1C)-6 + " FTPD.8C: 11% FTPD(8C)-1 + " FTPD.8C: 15% FTPD(8C)-1 + " FTPD.8C: 42% FTPD(8C)-1 + " SMM.01: 72% SMM:1-43 + " SMM.01: 73% SMM:1-44 + " SMM.01: 73% SMM:1-44 + " SMM.12A: 85% SMM:12-20 +FTP session FTP.1C: 8% FTP(1C)-1 + " FTP.1C: 11% FTP(1C)-1 + " FTPD.8C: 10% FTPD(8C)-1 +ftpd SMM.12A: 85% SMM:12-20 +ftpd - DARPA Internet File Transfer Protocol server FTPD.8C: 1% FTPD(8C)-1 +ftruncate TRUNCATE.2: 9% unknown +FUJITSU 160M drive partition[s] UP.4: 47% UP(4)-2 +FUJITSU 2361 partitions HP.4: 55% HP(4)-3 +Fujitsu Eagle BAD144.8: 74% BAD144(8)-2 + " HP.4: 21% HP(4)-1 + " SMM.13: 99% SMM:13-34 + " UP.4: 25% UP(4)-1 +FUJITSU Eagle partitions HP.4: 51% HP(4)-3 +ftruncate(fd, length) PS1.06: 69% PS1:6-31 +full dump[s] SMM.01: 76% SMM:1-46 + " SMM.01: 77% SMM:1-47 +Full width horizontal line[s] USD.28: 32% USD:28-5 +full path name PS1.06: 57% PS1:6-27 +full-duplex connection[s] SHUTDOWN.2: 10% SHUTDOWN(2)-1 + " SHUTDOWN.2: 27% SHUTDOWN(2)-1 + " TIP.1C: 2% TIP(1C)-1 + " TN3270.1: 5% TN3270(1)-1 +Full-name SMM.16: 36% SMM:16-5 + " SMM.07A: 44% SMM:07-20 + " SMM.07A: 75% SMM:07-32 +Function[s] CTAGS.1: 9% CTAGS(1)-1 +full-duplex socket PS1.06: 84% PS1:6-36 +fullname(termbuf, name) PS1.18: 52% PS1:18-15 +Funcallhook PS2.09: 1% PS2:9-4 +Function[s] PS1.01: 85% PS1:1-29 +function, access PS2.09: 64% PS2:9-108 + " PS2.09: 64% PS2:9-108 + " PS2.09: 64% PS2:9-108 + " PS2.09: 64% PS2:9-108 + " PS2.09: 64% PS2:9-108 + " PS2.09: 64% PS2:9-108 + " PS2.09: 65% PS2:9-111 + " PS2.09: 65% PS2:9-111 + " PS2.09: 65% PS2:9-111 +function[s], Bessel BC.1: 43% BC(1)-1 + " BESSEL.3F: 5% BESSEL(3F)-1 + " BESSEL.3F: 65% BESSEL(3F)-1 + " J0.3M: 11% J0(3M)-1 + " J0.3M: 55% J0(3M)-1 + " USD.06: 3% USD:6-1 + " USD.06: 58% USD:6-7 +function, break USD.24: 8% USD:24-3 + " USD.24: 32% USD:24-11 +function[s], action PS2.07: 54% PS2:7-27 + " PS2.07: 54% PS2:7-27 + " PS2.07: 54% PS2:7-27 + " PS2.07: 55% PS2:7-27 + " PS2.07: 57% PS2:7-28 + " PS2.07: 57% PS2:7-28 +function[s], aggregate PS2.10: 38% PS2:10-34 + " PS2.10: 42% PS2:10-36 + " PS2.10: 42% PS2:10-36 + " PS2.10: 42% PS2:10-36 + " PS2.10: 43% PS2:10-36 + " PS2.10: 43% PS2:10-37 + " PS2.10: 92% PS2:10-83 + " PS2.10: 92% PS2:10-83 + " PS2.10: 93% PS2:10-83 + " PS2.10: 93% PS2:10-83 + " PS2.10: 93% PS2:10-83 + " PS2.10: 93% PS2:10-83 + " PS2.10: 93% PS2:10-83 +function, array access PS2.09: 64% PS2:9-108 + " PS2.09: 64% PS2:9-108 + " PS2.09: 64% PS2:9-108 + " PS2.09: 64% PS2:9-108 + " PS2.09: 65% PS2:9-111 + " PS2.09: 65% PS2:9-111 +function[s], built-in PS1.04: 92% PS1:4-47 + " PS1.17: 54% PS1:17-4 + " PS1.17: 62% PS1:17-4 + " PS2.09: 54% PS2:9-95 +function[s], C PS2.09: 41% PS2:9-75 + " PS2.09: 56% PS2:9-97 + " PS2.09: 60% PS2:9-104 + " PS2.09: 60% PS2:9-104 +function, error handler PS2.09: 67% PS2:9-113 + " PS2.09: 68% PS2:9-115 + " PS2.09: 69% PS2:9-115 +function[s], built-in USD.19: 44% USD:19-4 + " USD.19: 47% USD:19-4 +function[s], builtin USD.04: 2% USD:4-3 + " USD.04: 83% USD:4-39 + " WINDOW.1: 65% WINDOW(1)-5 + " WINDOW.1: 70% WINDOW(1)-5 +function[s], foreign PS2.09: 1% PS2:9-3 + " PS2.09: 6% PS2:9-10 + " PS2.09: 15% PS2:9-28 + " PS2.09: 35% PS2:9-63 + " PS2.09: 36% PS2:9-65 + " PS2.09: 59% PS2:9-103 + " PS2.09: 59% PS2:9-103 + " PS2.09: 59% PS2:9-103 + " PS2.09: 60% PS2:9-104 + " PS2.09: 60% PS2:9-104 + " PS2.09: 60% PS2:9-104 + " PS2.09: 60% PS2:9-104 + " PS2.09: 60% PS2:9-104 + " PS2.09: 60% PS2:9-104 + " PS2.09: 60% PS2:9-104 + " PS2.09: 61% PS2:9-105 + " PS2.09: 63% PS2:9-108 +function[s], FP PS2.07: 1% PS2:7-4 + " PS2.07: 5% PS2:7-4 + " PS2.07: 37% PS2:7-17 + " PS2.07: 53% PS2:7-27 +function[s], generic PS2.06: 27% PS2:6-10 + " PS2.06: 69% PS2:6-24 + " PS2.06: 69% PS2:6-24 + " PS2.06: 70% PS2:6-24 + " PS2.06: 71% PS2:6-24 +function, hook PS2.09: 30% PS2:9-56 + " PS2.09: 30% PS2:9-56 + " PS2.09: 30% PS2:9-56 +Functions, Input PS1.18: 43% PS1:18-12 +Function[s], Intrinsic PS1.02: 23% PS1:2-9 + " PS1.02: 23% PS1:2-9 + " PS1.02: 24% PS1:2-9 + " PS1.02: 31% PS1:2-11 + " PS1.02: 58% PS1:2-19 + " PS1.02: 58% PS1:2-19 +function, lambda PS2.09: 54% PS2:9-95 + " PS2.09: 54% PS2:9-95 + " PS2.09: 54% PS2:9-95 +function[s], lexpr PS2.09: 55% PS2:9-95 + " PS2.09: 55% PS2:9-95 + " PS2.09: 55% PS2:9-95 +function[s], lisp PS2.09: 1% PS2:9-4 + " PS2.09: 4% PS2:9-8 + " PS2.09: 35% PS2:9-63 + " PS2.09: 41% PS2:9-73 + " PS2.09: 54% PS2:9-95 + " PS2.09: 58% PS2:9-101 + " PS2.09: 59% PS2:9-103 + " PS2.09: 64% PS2:9-108 + " PS2.09: 66% PS2:9-112 + " PS2.09: 70% PS2:9-116 + " PS2.09: 72% PS2:9-119 +function, macro PS2.09: 41% PS2:9-73 + " PS2.09: 51% PS2:9-89 + " PS2.09: 51% PS2:9-90 + " PS2.09: 53% PS2:9-94 +function[s], nlambda PS2.09: 54% PS2:9-95 + " PS2.09: 54% PS2:9-95 + " PS2.09: 54% PS2:9-95 + " PS2.09: 54% PS2:9-95 + " PS2.09: 54% PS2:9-95 + " PS2.09: 75% PS2:9-124 +functions, C library INTRO.3: 0% INTRO(3)-1 + " INTRO.3: 5% INTRO(3)-1 + " SMM.12A: 90% SMM:12-21 +function[s], colon USD.18: 93% USD:18-10 + " USD.18: 94% USD:18-10 + " USD.18: 95% USD:18-10 +function, definition of a USD.06: 31% USD:6-4 +functions, editing USD.18: 2% USD:18-1 +function, exponential BC.1: 77% BC(1)-2 + " EXP.3M: 9% EXP(3M)-1 + " USD.06: 50% USD:6-6 +function[s], fp FP.1: 28% FP(1)-1 +function[s], generic EFL.1: 38% EFL(1)-1 +functions, I/O HIER.7: 90% HIER(7)-6 + " SMM.12A: 2% SMM:12-2 +function[s], intrinsic INTRO.3F: 20% INTRO(3F)-1 +function[s], library INTRO.3: 1% INTRO(3)-1 + " MATH.3M: 0% MATH(3M)-1 + " USD.06: 3% USD:6-1 + " USD.06: 57% USD:6-7 +FUNCTIONS, LIST OF INTRO.3F: 24% INTRO(3F)-1 + " MATH.3M: 1% MATH(3M)-1 +FUNCTION[s], LIST OF LIBRARY MATH.3M: 1% MATH(3M)-1 + " INTRO.3F: 24% INTRO(3F)-1 + " INTRO.3: 18% INTRO(3)-1 +function[s], list of troff escape sequences for characters[s], ... USD.24: 13% USD:24-6 +functions, output PS1.18: 19% PS1:18-6 + " PS1.18: 32% PS1:18-8 +function, qlinker PS2.09: 70% PS2:9-116 + " PS2.09: 70% PS2:9-116 + " PS2.09: 79% PS2:9-128 +functions, output SMM.13: 88% SMM:13-30 +function, print USD.18: 70% USD:18-7 +functions, screen updating PS1.18: 23% PS1:18-6 + " PS1.18: 23% PS1:18-6 +function, setsyntax PS2.09: 48% PS2:9-85 + " PS2.09: 52% PS2:9-92 + " PS2.09: 54% PS2:9-95 +function[s], time and statistics PS1.06: 0% +function address[s] PS2.09: 78% PS2:9-128 + " PS2.09: 79% PS2:9-128 + " PS2.09: 79% PS2:9-128 +function argument[s] PS1.01: 93% PS1:1-31 + " PS1.09: 36% PS1:9-4 + " PS1.09: 55% PS1:9-6 + " PS2.09: 59% PS2:9-103 +function binding PS2.09: 2% PS2:9-4 + " PS2.09: 2% PS2:9-4 + " PS2.09: 2% PS2:9-4 + " PS2.09: 11% PS2:9-21 + " PS2.09: 12% PS2:9-22 + " PS2.09: 15% PS2:9-29 + " PS2.09: 31% PS2:9-58 + " PS2.09: 31% PS2:9-58 + " PS2.09: 34% PS2:9-62 + " PS2.09: 35% PS2:9-63 + " PS2.09: 39% PS2:9-70 + " PS2.09: 73% PS2:9-120 + " PS2.09: 75% PS2:9-124 + " PS2.09: 84% PS2:9-136 +function call[s] PS1.01: 17% PS1:1-6 + " PS1.01: 22% PS1:1-7 + " PS1.01: 22% PS1:1-7 + " PS1.01: 62% PS1:1-21 + " PS1.01: 91% PS1:1-31 + " PS1.04: 74% PS1:4-38 + " PS1.09: 55% PS1:9-6 + " PS1.10: 65% PS1:10-13 + " PS2.09: 26% PS2:9-51 + " PS2.09: 29% PS2:9-55 + " PS2.09: 38% PS2:9-67 + " PS2.09: 72% PS2:9-119 + " PS2.09: 79% PS2:9-128 + " PS2.09: 83% PS2:9-133 + " PS2.09: 85% PS2:9-136 + " PS1.11a: 45% PS1:11-3 + " PS1.11a: 45% PS1:11-3 +function cell PS2.09: 63% PS2:9-108 + " PS2.09: 64% PS2:9-108 + " PS2.09: 64% PS2:9-108 + " PS2.09: 64% PS2:9-108 + " PS2.09: 65% PS2:9-111 +Function Definition[s] PS1.01: 70% PS1:1-24 + " PS1.01: 70% PS1:1-24 + " PS1.01: 71% PS1:1-24 + " PS1.09: 26% PS1:9-3 + " PS1.09: 29% PS1:9-3 + " PS1.09: 83% PS1:9-9 + " PS2.07: 31% PS2:7-15 + " PS2.09: 13% PS2:9-24 + " PS2.09: 13% PS2:9-24 + " PS2.09: 13% PS2:9-24 + " PS2.09: 15% PS2:9-28 + " PS2.09: 40% PS2:9-70 + " PS2.09: 40% PS2:9-71 + " PS2.09: 56% PS2:9-98 + " PS2.09: 57% PS2:9-99 + " PS2.09: 64% PS2:9-108 + " PS2.09: 70% PS2:9-116 + " PS2.09: 73% PS2:9-120 + " PS2.09: 73% PS2:9-120 + " PS2.09: 74% PS2:9-123 + " PS2.09: 79% PS2:9-128 + " PS2.09: 87% PS2:9-140 +function description PS2.09: 6% PS2:9-10 + " PS2.09: 6% PS2:9-10 + " PS2.09: 7% PS2:9-10 +function entry[s] PS1.04: 46% PS1:4-25 + " PS1.04: 51% PS1:4-26 + " PS2.07: 37% PS2:7-17 +function field PS2.09: 19% PS2:9-37 + " PS2.09: 19% PS2:9-37 + " PS2.09: 54% PS2:9-95 +function name[s] PS1.02: 8% PS1:2-5 + " PS1.04: 20% PS1:4-11 + " PS1.04: 68% PS1:4-35 + " PS1.04: 88% PS1:4-45 + " PS2.07: 62% PS2:7-29 + " PS2.07: 63% PS2:7-29 + " PS2.07: 83% PS2:7-37 + " PS2.07: 83% PS2:7-37 + " PS2.09: 6% PS2:9-10 + " PS2.09: 8% PS2:9-14 + " PS2.09: 15% PS2:9-29 + " PS2.09: 16% PS2:9-30 + " PS2.09: 17% PS2:9-32 + " PS2.09: 45% PS2:9-80 + " PS2.09: 72% PS2:9-119 + " PS2.09: 73% PS2:9-120 + " PS2.09: 78% PS2:9-128 + " PS2.09: 82% PS2:9-132 + " PS2.10: 41% PS2:10-35 +function return[s] PS1.01: 68% PS1:1-23 + " PS1.09: 29% PS1:9-3 +function type[s] PS2.09: 2% PS2:9-4 + " PS2.09: 2% PS2:9-4 + " PS2.09: 6% PS2:9-10 + " PS2.10: 83% PS2:10-76 +function value[s] PS1.09: 25% PS1:9-3 + " PS1.09: 30% PS1:9-3 + " PS2.06: 27% PS2:6-10 + " PS2.06: 58% PS2:6-21 + " PS2.06: 75% PS2:6-26 + " PS2.06: 76% PS2:6-26 + " PS2.08: 45% PS2:8-7 + " PS2.08: 56% PS2:8-8 +functional argument[s] PS2.07: 2% PS2:7-4 + " PS2.07: 33% PS2:7-15 + " PS2.07: 33% PS2:7-15 + " PS2.07: 37% PS2:7-17 +functional evaluation[s] PS2.09: 33% PS2:9-60 + " PS2.09: 33% PS2:9-60 + " PS2.09: 33% PS2:9-60 +functional expression[s] PS2.07: 2% PS2:7-4 + " PS2.07: 2% PS2:7-4 + " PS2.07: 4% PS2:7-4 + " PS2.07: 5% PS2:7-4 + " PS2.07: 5% PS2:7-4 + " PS2.07: 8% PS2:7-5 + " PS2.07: 22% PS2:7-11 + " PS2.07: 33% PS2:7-15 + " PS2.10: 41% PS2:10-35 + " PS2.10: 41% PS2:10-35 + " PS2.10: 41% PS2:10-35 +functional form[s] PS2.07: 3% PS2:7-4 + " PS2.07: 20% PS2:7-10 + " PS2.07: 20% PS2:7-10 + " PS2.07: 20% PS2:7-10 + " PS2.07: 21% PS2:7-10 + " PS2.07: 21% PS2:7-11 + " PS2.07: 22% PS2:7-11 + " PS2.07: 26% PS2:7-13 + " PS2.07: 32% PS2:7-15 + " PS2.07: 33% PS2:7-15 + " PS2.07: 33% PS2:7-15 + " PS2.07: 58% PS2:7-28 + " PS2.07: 58% PS2:7-28 + " PS2.07: 59% PS2:7-28 + " PS2.07: 59% PS2:7-28 + " PS2.07: 64% PS2:7-29 + " PS2.07: 65% PS2:7-30 + " PS2.07: 66% PS2:7-30 + " PS2.07: 68% PS2:7-30 + " PS2.07: 68% PS2:7-30 + " PS2.07: 77% PS2:7-33 +functional object[s] PS2.09: 1% PS2:9-3 + " PS2.09: 18% PS2:9-36 + " PS2.09: 19% PS2:9-37 + " PS2.09: 58% PS2:9-101 + " PS2.09: 58% PS2:9-101 + " PS2.09: 58% PS2:9-102 + " PS2.09: 59% PS2:9-102 + " PS2.09: 59% PS2:9-103 +functional parameter[s] PS2.07: 60% PS2:7-28 + " PS2.07: 68% PS2:7-30 + " PS2.07: 77% PS2:7-33 +Functional Programming PS2.07: 0% unknown +functions, unused arguments in LINT.1: 47% LINT(1)-1 +Function, Width USD.24: 16% USD:24-7 + " USD.24: 54% USD:24-18 + " USD.24: 63% USD:24-20 + " USD.24: 64% USD:24-20 + " USD.24: 64% USD:24-20 + " USD.24: 64% USD:24-21 + " USD.25: 37% USD:25-6 +function argument[s] BC.1: 46% BC(1)-2 + " BC.1: 66% BC(1)-2 + " SMM.19: 51% SMM:19-15 + " USD.06: 72% USD:6-10 + " USD.06: 73% USD:6-10 +function call[s] BC.1: 65% BC(1)-2 + " DBX.1: 75% DBX(1)-5 + " SMM.19: 44% SMM:19-12 + " SMM.19: 45% SMM:19-13 + " SMM.19: 46% SMM:19-13 + " SMM.19: 86% SMM:19-24 + " SMM.19: 87% SMM:19-24 + " USD.06: 40% USD:6-5 + " USD.06: 71% USD:6-10 + " USD.06: 72% USD:6-10 + " USD.17: 49% USD:17-21 + " WINDOW.1: 64% WINDOW(1)-5 +function call count[s] PXP.1: 50% PXP(1)-1 +function declaration LINT.1: 71% LINT(1)-1 + " USD.15: 53% USD:15-15 + " USD.15: 55% USD:15-16 +Function definition[s] BC.1: 36% BC(1)-1 + " LINT.1: 22% LINT(1)-1 + " USD.06: 35% USD:6-4 + " USD.06: 36% USD:6-4 + " USD.06: 41% USD:6-5 + " USD.06: 59% USD:6-7 + " USD.15: 55% USD:15-16 + " USD.17: 49% USD:17-21 + " VGRIND.1: 43% VGRIND(1)-1 +function entry[s] GPROF.1: 23% GPROF(1)-1 +function index USD.19: 48% USD:19-4 + " CTAGS.1: 27% CTAGS(1)-1 + " VGRIND.1: 39% VGRIND(1)-1 +function key[s] TERMCAP.5: 72% TERMCAP(5)-10 + " TERMCAP.5: 92% TERMCAP(5)-13 + " USD.15: 56% USD:15-16 + " USD.15: 57% USD:15-16 + " USD.15: 57% USD:15-16 + " USD.15: 57% USD:15-16 + " USD.15: 83% USD:15-23 + " USD.15: 83% USD:15-23 + " USD.16: 41% USD:16-8 + " USD.16: 42% USD:16-8 + " WINDOW.1: 17% WINDOW(1)-2 +function name[s] DBX.1: 21% DBX(1)-2 + " DBX.1: 56% DBX(1)-4 + " ERROR.1: 51% ERROR(1)-2 + " USD.06: 31% USD:6-4 + " USD.06: 40% USD:6-5 + " USD.06: 72% USD:6-10 + " USD.15: 66% USD:15-19 + " USD.17: 49% USD:17-21 + " VGRIND.1: 74% VGRIND(1)-2 +function prolog[s] SMM.19: 20% SMM:19-6 + " SMM.19: 38% SMM:19-11 + " SMM.19: 42% SMM:19-12 +function return[s] SMM.19: 45% SMM:19-13 + " SMM.19: 82% SMM:19-23 +function sprintf USD.19: 49% USD:19-4 +function substr USD.19: 48% USD:19-4 +function type[s] SMM.19: 44% SMM:19-12 +functional argument[s] FP.1: 31% FP(1)-1 + " FP.1: 36% FP(1)-1 +functional expression[s] FP.1: 26% FP(1)-1 +functional form[s] FP.1: 29% FP(1)-1 +Functional Programming language compiler/interpreter, fp - FP.1: 2% FP(1)-1 +functions with varying numbers of argument[s] LINT.1: 16% LINT(1)-1 +Fundamental USD.17: 3% USD:17-2 + " USD.17: 60% USD:17-27 + " USD.17: 73% USD:17-34 + " USD.17: 77% USD:17-36 + " USD.17: 95% USD:17-46 +fundamental types PS1.01: 9% PS1:1-4 + " PS1.01: 11% PS1:1-4 + " PS1.01: 35% PS1:1-11 + " PS1.01: 36% PS1:1-11 +F_GETFL PS1.06: 40% PS1:6-19 +F_GETOWN PS1.06: 40% PS1:6-19 + " PS1.08: 66% PS1:8-26 +F_SETFL PS1.06: 40% PS1:6-19 + " PS1.08: 63% PS1:8-25 + " PS1.08: 63% PS1:8-25 + " PS1.08: 65% PS1:8-26 + " PS1.08: 65% PS1:8-26 +F_SETOWN PS1.06: 40% PS1:6-19 + " PS1.08: 65% PS1:8-26 + " PS1.08: 65% PS1:8-26 +fundamental[s], file system USD.01: 0% USD:1-1 +fundamental-mode USD.17: 73% USD:17-34 +FWRITE TTY.4: 80% TTY(4)-8 + " FREAD.3S: 6% FREAD(3S)-1 +f_prealloc FOPEN.3S: 93% +GAME[s] BATTLESTAR.6: 69% BATTLESTAR(6)-2 + " MILLE.6: 99% MILLE(6)-3 + " USD.34: 7% USD:34-1 + " USD.34: 89% USD:34-11 + " USD.04: 70% USD:4-35 +game, adventure - an exploration ADVENTURE.6: 9% ADVENTURE(6)-1 +game[s], computer fantasy ROGUE.6: 9% ROGUE(6)-1 + " ROGUE.6: 19% ROGUE(6)-1 + " USD.33: 8% USD:33-2 + " USD.33: 10% USD:33-2 +game[s], fantasy USD.33: 1% USD:33-2 + " USD.33: 10% USD:33-2 + " USD.33: 12% USD:33-2 +GAMMA LGAMMA.3M: 34% LGAMMA(3M)-1 +gamma, name LGAMMA.3M: 34% LGAMMA(3M)-1 + " LGAMMA.3M: 38% LGAMMA(3M)-1 + " LGAMMA.3M: 65% LGAMMA(3M)-1 + " LGAMMA.3M: 78% LGAMMA(3M)-1 +gaps in files LSEEK.2: 61% LSEEK(2)-1 +garbage collection PS.1: 22% PS(1)-1 + " PS2.09: 42% PS2:9-76 + " PS2.09: 42% PS2:9-76 + " PS2.09: 42% PS2:9-76 + " PS2.09: 44% PS2:9-79 + " PS2.09: 46% PS2:9-82 + " SMM.13: 41% SMM:13-15 + " SMM.13: 42% SMM:13-15 + " SMM.15: 84% SMM:15-24 +GATEWAY SMM.02: 41% SMM:2-13 + " SMM.02: 96% SMM:2-33 +garbage collector PS2.09: 0% PS2:9-2 + " PS2.09: 6% PS2:9-10 + " PS2.09: 34% PS2:9-62 + " PS2.09: 42% PS2:9-76 + " PS2.09: 44% PS2:9-79 + " PS2.09: 64% PS2:9-108 + " PS2.09: 64% PS2:9-108 + " PS2.09: 64% PS2:9-108 + " PS2.09: 66% PS2:9-112 + " PS2.09: 66% PS2:9-112 + " PS2.09: 67% PS2:9-112 + " PS2.09: 67% PS2:9-113 + " PS2.09: 78% PS2:9-127 +gateway address ROUTE.8C: 71% ROUTE(8C)-1 + " ROUTE.8C: 74% ROUTE(8C)-1 + " SMM.13: 62% SMM:13-22 + " IP.4P: 33% IP(4P)-1 +gateway support SMM.01: 67% SMM:1-41 +Gateways and routing issue[s] SMM.15: 69% SMM:15-20 +gateways file HTABLE.8: 27% HTABLE(8)-1 + " HTABLE.8: 40% HTABLE(8)-1 + " HTABLE.8: 48% HTABLE(8)-1 + " HTABLE.8: 53% HTABLE(8)-1 + " SMM.01: 70% SMM:1-42 +gather writing WRITE.2: 13% WRITE(2)-1 +gathering of data for output PS1.06: 53% PS1:6-25 +gcd - multiple precision integer arithmetic MP.3X: 2% MP(3X)-1 +gcore - get core images of running processes GCORE.1: 10% GCORE(1)-1 +Gcvt ECVT.3: 69% ECVT(3)-1 +GE TermiNet 300 NROFF.1: 65% NROFF(1)-1 +generation, code PS1.01: 41% PS1:1-13 + " PS2.07: 54% PS2:7-27 + " PS2.08: 72% PS2:8-10 + " PS2.08: 75% PS2:8-11 + " PS2.08: 75% PS2:8-11 + " SMM.13: 97% SMM:13-33 + " SMM.19: 11% SMM:19-4 + " SMM.19: 47% SMM:19-13 + " SMM.19: 48% SMM:19-14 + " SMM.19: 50% SMM:19-14 + " SMM.19: 51% SMM:19-14 + " SMM.19: 53% SMM:19-15 + " SMM.19: 59% SMM:19-16 + " SMM.19: 66% SMM:19-19 + " SMM.19: 78% SMM:19-22 + " USD.26: 89% USD:26-7 +generation, file name SH.1: 13% SH(1)-1 + " SH.1: 36% SH(1)-3 + " USD.03: 11% USD:3-3 + " USD.03: 65% USD:3-16 + " USD.03: 68% USD:3-17 + " USD.03: 69% USD:3-17 + " USD.03: 85% USD:3-21 +generator[s], code PS1.04: 48% PS1:4-25 + " PS2.07: 57% PS2:7-28 +Generator, Lexical Analyzer PS1.16: 0% + " PS1.16: 0% + " PS1.16: 6% PS1:16-2 + " PS1.16: 15% PS1:16-2 + " PS1.16: 24% PS1:16-4 + " PS1.16: 32% PS1:16-4 + " PS1.16: 41% PS1:16-6 + " PS1.16: 49% PS1:16-6 + " PS1.16: 58% PS1:16-8 + " PS1.16: 66% PS1:16-8 + " PS1.16: 74% PS1:16-10 + " PS1.16: 81% PS1:16-11 + " PS1.16: 89% PS1:16-12 + " PS1.16: 95% PS1:16-12 +generator[s], code SMM.19: 8% SMM:19-3 + " SMM.19: 8% SMM:19-3 + " SMM.19: 12% SMM:19-4 + " SMM.19: 36% SMM:19-10 + " SMM.19: 37% SMM:19-11 + " SMM.19: 47% SMM:19-13 + " SMM.19: 47% SMM:19-13 + " SMM.19: 47% SMM:19-13 + " SMM.19: 48% SMM:19-14 + " SMM.19: 49% SMM:19-14 + " SMM.19: 50% SMM:19-14 + " SMM.19: 53% SMM:19-15 + " SMM.19: 87% SMM:19-24 + " SMM.19: 87% SMM:19-24 + " SMM.19: 92% SMM:19-25 + " SMM.12A: 9% SMM:12-3 +Generic SMM.02: 4% SMM:2-2 +generator[s], parser PS1.15: 42% PS1:15-12 + " PS1.16: 12% PS1:16-2 + " PS1.16: 13% PS1:16-2 +generic distribution version of the system SMM.01: 41% SMM:1-27 +generic function[s] PS2.06: 27% PS2:6-10 + " PS2.06: 69% PS2:6-24 + " PS2.06: 69% PS2:6-24 + " PS2.06: 70% PS2:6-24 + " PS2.06: 71% PS2:6-24 +generic names INTRO.3F: 12% INTRO(3F)-1 + " INTRO.3F: 13% INTRO(3F)-1 + " PS1.02: 13% PS1:2-6 + " PS1.02: 13% PS1:2-6 + " PS1.02: 13% PS1:2-6 + " PS2.10: 4% PS2:10-6 +Generic operations PS1.06: 37% PS1:6-18 + " PS1.06: 51% PS1:6-24 + " PS1.06: 97% PS1:6-42 +GEO-QUEL PS2.10: 62% PS2:10-54 + " PS2.10: 63% PS2:10-54 + " PS2.10: 75% PS2:10-67 + " PS2.10: 80% PS2:10-73 +GEO-QUEL login message, .../files/grafile7 - PS2.10: 75% PS2:10-67 +generic system AUTOCONF.4: 31% AUTOCONF(4)-1 + " SMM.01: 18% SMM:1-13 + " SMM.01: 86% SMM:1-52 + " SMM.01: 98% SMM:1-64 + " SMM.01: 98% SMM:1-64 + " SMM.01: 99% SMM:1-64 + " SMM.01: 99% SMM:1-65 + " SMM.02: 5% SMM:2-3 + " SMM.02: 6% SMM:2-3 + " SMM.02: 10% SMM:2-4 + " SMM.02: 17% SMM:2-6 + " SMM.02: 39% SMM:2-11 + " TS.4: 83% TS(4)-1 +geometry[s], disk DISKTAB.5: 8% DISKTAB(5)-1 + " HP.4: 18% HP(4)-1 + " NEWFS.8: 78% NEWFS(8)-1 +geoquel - GEO-QUEL data display system PS2.10: 62% PS2:10-54 +gerror PERROR.3F: 2% PERROR(3F)-1 +get and set a terminal or window's size SMM.13: 6% SMM:13-3 +get descriptor option[s] PS1.06: 40% PS1:6-19 +get descriptor owner (pid/pgrp) PS1.06: 40% PS1:6-19 +getargs, iargc - return command line argument GETARG.3F: 10% GETARG(3F)-1 +getc, fgetc - get a character from a logical unit GETC.3F: 6% SMM:1-40 +getc, getchar, fgetc, getw - get character or word from stream GETC.3S: 3% GETC(3S)-1 +getcap(str) PS1.18: 49% PS1:18-14 +getch() PS1.18: 21% PS1:18-6 + " PS1.18: 44% PS1:18-12 +getcwd - get pathname of current working directory GETCWD.3F: 9% GETCWD(3F)-1 +getdiskbyname - get disk description by its name GETDISK.3: 3% GETDISKBYNAME(3) +getdtablesize FCNTL.2: 88% FCNTL(2)-2 + " OPEN.2: 44% OPEN(2)-1 + " SMM.01: 35% SMM:1-23 +getdtablesize - get descriptor table size GETDTABLESIZE.2: 11% +getdtablesize() PS1.06: 36% PS1:6-18 +getegid() PS1.06: 11% PS1:6-8 +getenv PS1.18: 27% PS1:18-7 +getenv - get value of environment variables GETENV.3F: 10% GETENV(3F)-1 +getenv - value for environment name GETENV.3: 12% GETENV(3)-1 +geteuid() PS1.06: 11% PS1:6-8 +getgid() PS1.06: 11% PS1:6-8 +getgid, getegid - get group identity GETGID.2: 8% GETGID(2)-1 +getgrent INITGROUPS.3: 78% unknown +getgroups - get group access list GETGROUPS.2: 4% GETGROUPS(2)-1 +getgroups(gidsetsize, gidset) PS1.06: 11% PS1:6-8 +gethostbyaddr SMM.12A: 64% SMM:12-15 +gethostbyname HTABLE.8: 18% HTABLE(8)-1 + " SMM.12A: 64% SMM:12-15 +gethostbyname() PS1.07a: 49% PS1:7-11 +gethostbyname, gethostbyaddr, gethostent, sethostent, endhostent ... GETHOSTBYNAME.3N: 1% GETHOSTBYNAME(3) +gethostid() PS1.06: 8% PS1:6-7 +gethostid, sethostid - get/set unique identifier of current host GETHOSTID.2: 7% GETHOSTID(2)-1 +gethostname(buf, buflen) PS1.06: 8% PS1:6-7 +gethostname, sethostname - get/set name of current host GETHOSTNAME.2: 4% GETHOSTNAME(2)- +getitimer(which, value) PS1.06: 34% PS1:6-17 +getitimer, setitimer - get/set value of interval timer GETITIMER.2: 1% GETITIMER(2)-1 +getlog - get user's login name GETLOG.3F: 12% +getlogin - get login name GETLOGIN.3: 5% GETLOGIN(3)-1 +getnetbyname PS1.08: 35% PS1:8-13 +getnetbynumber PS1.08: 35% PS1:8-13 +getnetent HTABLE.8: 24% HTABLE(8)-1 +GETOPT SMM.12A: 65% SMM:12-15 +getnetent PS1.08: 35% PS1:8-13 +getopt - get option letter from argv GETOPT.3: 1% GETOPT(3)-1 +getpagesize PAGESIZE.1: 56% PAGESIZE(1)-1 +getpagesize - get system page size GETPAGESIZE.2: 12% GETPAGESIZE(2)- +getpass - read a password GETPASS.3: 9% +getpeername - get name of connected peer GETPEERNAME.2: 5% GETPEERNAME(2)- +getpeername call PS1.08: 77% PS1:8-31 + " PS1.08: 99% PS1:8-41 + " PS1.08: 99% PS1:8-41 +getpeername(s, name, namelen) PS1.06: 78% PS1:6-34 +getpgrp - get process group GETPGRP.2: 6% GETPGRP(2)-1 +getpgrp(pid) PS1.06: 13% PS1:6-9 +getpid() PS1.06: 8% PS1:6-7 +getpid, getppid - get process identification GETPID.2: 11% CSH(1)-12 +getpid - get process id GETPID.3F: 17% CSH(1)-12 +getpriority(which, who) PS1.06: 44% PS1:6-21 +getpriority, setpriority - get/set program scheduling priority GETPRIORITY.2: 2% GETPRIORITY(2)- +getprotobyname ICMP.4P: 29% ICMP(4P)-1 + " PS1.08: 36% PS1:8-14 +getprotobynumber PS1.08: 36% PS1:8-14 +getprotoent PS1.08: 36% PS1:8-14 +getprotoent, getprotobynumber, getprotobyname, setprotoent, ... GETPROTOENT.3N: 3% GETPROTOENT(3N) +getpw - get name from uid GETPW.3C: 10% GETPW(3C)-1 +getpwnam GETLOGIN.3: 26% GETLOGIN(3)-1 + " SMM.12A: 65% SMM:12-15 +getpwuid GETPW.3C: 33% GETPW(3C)-1 + " GETLOGIN.3: 69% GETLOGIN(3)-1 + " SMM.12A: 65% SMM:12-15 +getrlimit BRK.2: 44% BRK(2)-1 +getrlimit, setrlimit - control maximum system resource consumption GETRLIMIT.2: 1% GETRLIMIT(2)-1 +getrusage - get information about resource utilization GETRUSAGE.2: 1% GETRUSAGE(2)-1 +getrusage(who, rusage) PS1.06: 45% PS1:6-21 +gets, fgets - get a string from a stream GETS.3S: 5% GETS(3S)-1 +getservbyname PS1.08: 37% PS1:8-14 +getservent, getservbyport, getservbyname, setservent, endservent ... GETSERVENT.3N: 2% GETSERVENT(3N)- +getsockname - get socket name GETSOCKNAME.2: 5% GETSOCKNAME(2)- +getsockname() PS1.07a: 52% PS1:7-11 + " PS1.07a: 51% PS1:7-11 +getsockname(s, name, namelen) PS1.06: 78% PS1:6-34 +getsockopt IP.4P: 24% IP(4P)-1 +getsockopt(s, level, optname, optval, optlen) PS1.06: 85% PS1:6-36 + " PS1.08: 84% PS1:8-35 +getsockopts, setsockopt - get and set options on socket GETSOCKOPT.2: 0% GETSOCKOPT(2)-1 +getstr(str) PS1.18: 45% PS1:18-13 +gettable HTABLE.8: 87% unknown + " SMM.12A: 85% SMM:12-20 +gettable - get NIC format host tables from a host GETTABLE.8C: 4% GETTABLE(8C)-1 +gettimeofday PS1.06: 32% PS1:6-16 +Getting Files for Compilation PS1.14: 18% PS1:14-3 +gettimeofday, settimeofday - get/set date and time GETTIMEOFDAY.2: 3% GETTIMEOFDAY(2) +gettmode, Variables Set By PS1.18: 67% PS1:18-19 +gettmode() PS1.18: 26% PS1:18-7 + " PS1.18: 58% PS1:18-17 +getttmode() PS1.18: 22% PS1:18-6 +getttyent SMM.12A: 65% SMM:12-15 +getttyent, getttynam, setttyent, endttyent - get ttys file entry GETTTYENT.3: 1% GETTTYENT(3)-1 +getttynam SMM.12A: 65% SMM:12-15 +Getty GETTY.8: 5% GETTY(8)-1 + " GETTY.8: 76% GETTY(8)-1 + " GETTYTAB.5: 90% GETTYTAB(5)-3 + " SMM.12A: 86% SMM:12-20 +getty - set terminal mode GETTY.8: 1% GETTY(8)-1 +gettytab GETTY.8: 24% GETTY(8)-1 + " SMM.12A: 77% SMM:12-18 +gettytab - terminal configuration data base GETTYTAB.5: 0% GETTYTAB(5)-1 +getuid GETLOGIN.3: 70% GETLOGIN(3)-1 +getuid() PS1.06: 11% PS1:6-8 +getuid, geteuid - get user identity GETUID.2: 8% GETUID(2)-1 +getuid, getgid - get user or group ID of the caller GETUID.3F: 14% GETUID(3F)-1 +getusershell SMM.12A: 66% SMM:12-15 +getusershells, setusershells, endusershell - get legal user shell GETUSERSHELL.3: 7% GETUSERSHELL(3) +getw GETC.3S: 5% GETC(3S)-1 +getwd SMM.12A: 66% SMM:12-15 +getwd - get current working directory pathname GETWD.3: 9% GETWD(3)-1 +getyx(win, y, x) PS1.18: 49% PS1:18-14 +gfont USD.27: 43% USD:27-5 +gid, type GETGROUPS.2: 89% GETGROUPS(2)-1 + " SETGROUPS.2: 87% SETGROUPS(2)-1 +gidset array SETGROUPS.2: 84% SETGROUPS(2)-1 +glob shell command CSH.1: 55% CSH(1)-11 +global command[s] ED.1: 50% ED(1)-3 + " ED.1: 52% ED(1)-3 + " ED.1: 81% ED(1)-5 + " USD.01: 82% USD:1-12 + " USD.12: 1% USD:12-1 + " USD.12: 78% USD:12-8 + " USD.12: 78% USD:12-8 + " USD.13: 0% USD:13-2 + " USD.13: 3% USD:13-2 + " USD.13: 40% USD:13-7 + " USD.13: 58% USD:13-10 + " USD.13: 58% USD:13-10 + " USD.13: 61% USD:13-11 + " USD.13: 63% USD:13-11 + " USD.13: 65% USD:13-11 + " USD.14: 72% USD:14-18 + " USD.14: 72% USD:14-18 + " USD.14: 73% USD:14-18 + " USD.14: 74% USD:14-18 + " USD.14: 74% USD:14-18 + " USD.14: 74% USD:14-18 + " USD.14: 75% USD:14-18 + " USD.14: 75% USD:14-18 + " USD.16: 22% USD:16-4 + " USD.16: 37% USD:16-7 + " USD.16: 37% USD:16-7 + " USD.16: 38% USD:16-7 + " USD.16: 38% USD:16-7 + " USD.16: 56% USD:16-11 + " USD.16: 81% USD:16-15 + " USD.16: 91% USD:16-17 +Global configuration parameters SMM.02: 21% SMM:2-7 + " SMM.02: 21% SMM:2-7 + " SMM.02: 24% SMM:2-7 + " SMM.02: 50% SMM:2-15 +global effect USD.16: 23% USD:16-4 + " USD.16: 57% USD:16-11 + " USD.23: 9% USD:23-2 +Global replacement USD.17: 23% USD:17-10 +global entry point[s] PS2.09: 36% PS2:9-65 + " PS2.09: 36% PS2:9-65 + " PS2.09: 36% PS2:9-65 + " PS2.09: 36% PS2:9-65 +global label[s] PS1.04: 82% PS1:4-42 + " PS1.05: 31% PS1:5-4 + " PS1.05: 31% PS1:5-4 + " PS1.05: 32% PS1:5-4 + " PS1.05: 32% PS1:5-4 +Goto Statement[s] PS1.01: 68% PS1:1-23 + " PS1.04: 46% PS1:4-25 + " PS2.06: 55% PS2:6-20 + " PS2.06: 74% PS2:6-25 +GOTO's PS2.08: 6% PS2:8-2 + " PS2.08: 11% PS2:8-2 + " PS2.08: 50% PS2:8-7 +global variable[s] SMM.02: 86% SMM:2-30 + " DBX.5: 9% DBX(5)-1 +globbing CSH.1: 36% CSH(1)-7 + " FIND.1: 15% FIND(1)-1 + " FTP.1C: 19% FTP(1C)-2 + " FTP.1C: 81% FTP(1C)-6 + " FTPD.8C: 50% FTPD(8C)-2 +glossary of term[s] USD.04: 67% USD:4-34 +glossary of terms peculiar to mail USD.07: 89% USD:7-22 +gmon.out F77.1: 23% F77(1)-1 + " GPROF.1: 6% GPROF(1)-1 + " KGMON.8: 52% unknown +gmon.out file CC.1: 30% CC(1)-1 +gmon.sum GPROF.1: 63% GPROF(1)-2 +GMT (see also Greenwich) DATE.1: 36% DATE(1)-1 +gmtime CTIME.3: 25% CTIME(3)-1 +gmtime - return system time TIME.3F: 7% TIME(3F)-1 +goal[s], design SMM.16: 9% SMM:16-2 + " SMM.16: 10% SMM:16-2 + " SMM.16: 10% SMM:16-2 + " SMM.16: 69% SMM:16-10 + " SMM.21: 11% SMM:21-2 + " USD.26: 26% USD:26-2 +Goto USD.15: 12% USD:15-4 +goto, setjmp, longjmp - non-local SETJMP.3: 3% SETJMP(3)-1 +goto label CSH.1: 65% CSH(1)-14 + " USD.04: 63% USD:4-31 +Goto Statement[s] STRUCT.1: 34% STRUCT(1)-1 + " STRUCT.1: 38% STRUCT(1)-1 + " USD.04: 62% USD:4-30 +goto-line (ESC G) USD.17: 73% USD:17-34 +gprof CC.1: 33% CC(1)-1 + " F77.1: 25% F77(1)-1 + " MONITOR.3: 25% MONITOR(3)-1 + " PS1.02: 6% PS1:2-5 + " SMM.12A: 33% SMM:12-8 +gprof - display call graph profile data GPROF.1: 0% GPROF(1)-1 +grammar, bc language formal USD.06: 62% USD:6-9 +grammar, bourne shell formal USD.03: 96% USD:3-22 +GRAMMAR, CONFIGURATION FILE SMM.02: 76% SMM:2-24 +grammar, context-free YACC.1: 8% YACC(1)-1 +grammar, eqn formal USD.26: 60% USD:26-5 +grammar[s], LALR(1) PS1.15: 2% PS1:15-1 +grammar rule[s] PS1.15: 3% PS1:15-1 + " PS1.15: 3% PS1:15-1 + " PS1.15: 3% PS1:15-1 + " PS1.15: 5% PS1:15-2 + " PS1.15: 7% PS1:15-2 + " PS1.15: 9% PS1:15-3 + " PS1.15: 11% PS1:15-3 + " PS1.15: 11% PS1:15-3 + " PS1.15: 12% PS1:15-3 + " PS1.15: 13% PS1:15-4 + " PS1.15: 13% PS1:15-4 + " PS1.15: 13% PS1:15-4 + " PS1.15: 13% PS1:15-4 + " PS1.15: 14% PS1:15-4 + " PS1.15: 14% PS1:15-4 + " PS1.15: 15% PS1:15-4 + " PS1.15: 18% PS1:15-5 + " PS1.15: 25% PS1:15-7 + " PS1.15: 28% PS1:15-8 + " PS1.15: 29% PS1:15-8 + " PS1.15: 37% PS1:15-11 + " PS1.15: 37% PS1:15-11 + " PS1.15: 38% PS1:15-11 + " PS1.15: 39% PS1:15-11 + " PS1.15: 41% PS1:15-12 + " PS1.15: 41% PS1:15-12 + " PS1.15: 42% PS1:15-12 + " PS1.15: 46% PS1:15-14 + " PS1.15: 46% PS1:15-14 + " PS1.15: 46% PS1:15-14 + " PS1.15: 47% PS1:15-14 + " PS1.15: 49% PS1:15-14 + " PS1.15: 52% PS1:15-15 + " PS1.15: 52% PS1:15-15 + " PS1.15: 52% PS1:15-15 + " PS1.15: 53% PS1:15-16 + " PS1.15: 53% PS1:15-16 + " PS1.15: 54% PS1:15-16 + " PS1.15: 54% PS1:15-16 + " PS1.15: 56% PS1:15-16 + " PS1.15: 67% PS1:15-19 + " PS1.15: 82% PS1:15-24 +Greenwich time PS1.06: 32% PS1:6-16 +graph, call GPROF.1: 19% GPROF(1)-1 + " GPROF.1: 84% GPROF(1)-2 + " SMM.02: 19% SMM:2-6 +graph, dynamic call GPROF.1: 72% GPROF(1)-2 + " GPROF.1: 73% GPROF(1)-2 + " SMM.02: 19% SMM:2-6 +graph - draw a graph GRAPH.1G: 2% unknown +graph profile entry GPROF.1: 43% GPROF(1)-1 + " GPROF.1: 47% GPROF(1)-1 + " GPROF.1: 52% GPROF(1)-1 + " GPROF.1: 55% GPROF(1)-1 +graphic output PLOT.3F: 51% PLOT(3F)-1 + " PLOT.3X: 21% PLOT(3X)-1 +Graphic Systems phototypesetter EQN.1: 5% EQN(1)-1 + " TC.1: 15% TC(1)-1 + " USD.24: 0% USD:24-2 + " USD.24: 19% USD:24-8 + " USD.26: 10% USD:26-2 +graphics INTRO.1: 27% INTRO(1)-1 +graphics cursor LIB2648.3X: 54% LIB2648(3X)-3 +graphics display LIB2648.3X: 40% LIB2648(3X)-2 + " LIB2648.3X: 41% LIB2648(3X)-2 + " LIB2648.3X: 59% LIB2648(3X)-3 +graphics file PLOT.5: 9% PLOT(5)-1 +graphics program[s] LIB2648.3X: 11% LIB2648(3X)-1 +graphics screen LIB2648.3X: 17% LIB2648(3X)-1 + " LIB2648.3X: 30% LIB2648(3X)-2 +graphics terminal[s] LIB2648.3X: 0% LIB2648(3X)-1 + " LIB2648.3X: 3% LIB2648(3X)-1 + " PLOT.1G: 67% PLOT(1G)-1 +grave accent[s] MS.7: 92% MS(7)-3 + " USD.03: 63% USD:3-16 + " USD.21: 79% USD:21-3 + " USD.23: 73% USD:23-9 + " USD.24: 24% USD:24-9 + " USD.22: 96% USD:22-18 +Greek[s] SMM.20: 44% SMM:20-4 + " USD.27: 16% USD:27-2 + " USD.27: 17% USD:27-2 +Greek letter[s] EQN.1: 86% EQN(1)-2 + " USD.25: 22% USD:25-4 + " USD.26: 6% USD:26-1 + " USD.27: 85% USD:27-9 + " USD.24: 97% USD:24-33 +Greenwich mean time GETTIMEOFDAY.2: 18% GETTIMEOFDAY(2) + " TIME.3C: 82% TIME(3C)-1 + " GETTIMEOFDAY.2: 63% GETTIMEOFDAY(2) + " GETTIMEOFDAY.2: 53% GETTIMEOFDAY(2) + " CTIME.3: 75% CTIME(3)-1 + " TIME.3F: 75% TIME(3F)-1 +Greer, Ken CSH.1: 95% CSH(1)-20 + " SCCSTORCS.N: 93% SCCSTORCS(8)-1 +gremlin picture USD.23: 54% USD:23-7 +gremlin picture (alternate form), .GF End USD.23: 54% USD:23-7 +Grep USD.13: 92% USD:13-15 + " USD.17: 63% USD:17-28 + " USD.17: 84% USD:17-40 + " USD.19: 32% USD:19-3 + " USD.19: 85% USD:19-6 +grep, egrep, fgrep, sed, lex, awk performance comparison, wc, USD.19: 85% USD:19-6 +grep, egrep, fgrep - search a file for a pattern GREP.1: 1% GREP(1)-1 +grep -v USD.13: 94% USD:13-15 + " USD.13: 95% USD:13-15 + " USD.13: 95% USD:13-15 +grep command[s] USD.04: 80% USD:4-38 +Grep pattern[s] GREP.1: 10% GREP(1)-1 + " PICK.N: 11% PICK(1)-1 + " USD.08: 39% USD:8-47 +grid style GRAPH.1G: 46% unknown +grind-s-expr USD.17: 73% USD:17-34 +Group[s] SMM.12A: 33% SMM:12-8 +group[s], access EXECVE.2: 47% EXECVE(2)-1 + " PS1.06: 10% PS1:6-8 + " PS1.06: 11% PS1:6-8 + " PS1.06: 11% PS1:6-8 +group[s], cylinder FS.5: 13% FS(5)-1 + " FS.5: 27% FS(5)-2 + " FS.5: 43% FS(5)-2 + " FS.5: 43% FS(5)-2 + " FS.5: 44% FS(5)-2 + " FS.5: 45% FS(5)-2 + " FS.5: 69% FS(5)-3 + " FS.5: 77% FS(5)-3 + " FS.5: 94% FS(5)-4 + " FS.5: 95% FS(5)-4 + " MKFS.8: 52% MKFS(8)-1 + " NEWFS.8: 41% NEWFS(8)-1 + " SMM.05: 11% SMM:5-4 + " SMM.05: 11% SMM:5-4 + " SMM.05: 11% SMM:5-4 + " SMM.05: 11% SMM:5-4 + " SMM.05: 11% SMM:5-4 + " SMM.05: 11% SMM:5-4 + " SMM.05: 12% SMM:5-4 + " SMM.05: 12% SMM:5-4 + " SMM.05: 13% SMM:5-4 + " SMM.05: 13% SMM:5-4 + " SMM.05: 13% SMM:5-4 + " SMM.05: 13% SMM:5-4 + " SMM.14: 19% SMM:14-4 + " SMM.14: 19% SMM:14-4 + " SMM.14: 19% SMM:14-4 + " SMM.14: 19% SMM:14-4 + " SMM.14: 20% SMM:14-4 + " SMM.14: 20% SMM:14-4 + " SMM.14: 20% SMM:14-4 + " SMM.14: 20% SMM:14-4 + " SMM.14: 20% SMM:14-4 + " SMM.14: 21% SMM:14-4 + " SMM.14: 21% SMM:14-4 + " SMM.14: 21% SMM:14-4 + " SMM.14: 22% SMM:14-4 + " SMM.14: 22% SMM:14-4 + " SMM.14: 23% SMM:14-4 + " SMM.14: 23% SMM:14-4 + " SMM.14: 23% SMM:14-4 + " SMM.14: 28% SMM:14-5 + " SMM.14: 44% SMM:14-7 + " SMM.14: 47% SMM:14-8 + " SMM.14: 47% SMM:14-8 + " SMM.14: 48% SMM:14-8 + " SMM.14: 49% SMM:14-8 + " SMM.14: 49% SMM:14-8 + " SMM.14: 50% SMM:14-8 + " SMM.14: 50% SMM:14-8 + " SMM.14: 50% SMM:14-8 + " SMM.14: 51% SMM:14-8 + " SMM.14: 51% SMM:14-8 + " SMM.14: 51% SMM:14-8 + " SMM.14: 52% SMM:14-8 + " SMM.14: 52% SMM:14-8 + " SMM.14: 52% SMM:14-8 + " SMM.14: 52% SMM:14-8 + " SMM.14: 52% SMM:14-8 + " SMM.14: 53% SMM:14-8 + " SMM.14: 53% SMM:14-8 + " SMM.14: 53% SMM:14-8 + " SMM.14: 55% SMM:14-8 + " SMM.14: 55% SMM:14-8 + " SMM.14: 56% SMM:14-9 + " SMM.14: 56% SMM:14-9 + " SMM.14: 56% SMM:14-9 + " SMM.14: 57% SMM:14-9 + " TUNEFS.8: 33% TUNEFS(8)-1 + " TUNEFS.8: 36% TUNEFS(8)-1 + " TUNEFS.8: 39% TUNEFS(8)-1 + " TUNEFS.8: 41% TUNEFS(8)-1 + " TUNEFS.8: 46% TUNEFS(8)-1 +group, distinguished process TTY.4: 46% TTY(4)-5 + " TTY.4: 51% TTY(4)-5 + " TTY.4: 53% TTY(4)-5 +group, mail SMM.11: 22% SMM:11-3 + " SMM.11: 63% SMM:11-9 + " SMM.11: 64% SMM:11-9 + " SMM.11: 65% SMM:11-9 + " SMM.11: 65% SMM:11-9 +group, message MAIL.1: 43% MAIL(1)-3 + " MAIL.1: 43% MAIL(1)-3 + " MAIL.1: 43% MAIL(1)-3 +group[s], delimitor PS2.10: 12% PS2:10-15 + " PS2.10: 12% PS2:10-15 + " PS2.10: 13% PS2:10-16 + " PS2.10: 50% PS2:10-44 +group[s], Process PS1.06: 12% PS1:6-9 + " PS1.06: 12% PS1:6-9 + " PS1.06: 12% PS1:6-9 + " PS1.06: 12% PS1:6-9 + " PS1.06: 13% PS1:6-9 + " PS1.06: 13% PS1:6-9 + " PS1.06: 13% PS1:6-9 + " PS1.06: 13% PS1:6-9 + " PS1.06: 13% PS1:6-9 + " PS1.06: 13% PS1:6-9 + " PS1.06: 13% PS1:6-9 + " PS1.06: 13% PS1:6-9 + " PS1.06: 26% PS1:6-13 + " PS1.06: 30% PS1:6-14 + " PS1.06: 41% PS1:6-19 + " PS1.06: 41% PS1:6-19 + " PS1.06: 44% PS1:6-21 + " PS1.06: 90% PS1:6-38 + " PS1.06: 90% PS1:6-38 + " PS1.06: 93% PS1:6-39 + " PS1.08: 47% PS1:8-19 + " PS1.08: 59% PS1:8-24 + " PS1.08: 59% PS1:8-24 + " PS1.08: 64% PS1:8-26 + " PS1.08: 65% PS1:8-26 + " PS1.08: 66% PS1:8-26 +group id[s] PS1.06: 64% PS1:6-29 + " PS2.09: 47% PS2:9-84 + " PS2.10: 73% PS2:10-63 +group[s], process FCNTL.2: 39% FCNTL(2)-1 + " FCNTL.2: 41% FCNTL(2)-1 + " FCNTL.2: 44% FCNTL(2)-1 + " FCNTL.2: 45% FCNTL(2)-1 + " FCNTL.2: 61% FCNTL(2)-1 + " GETPGRP.2: 7% GETPGRP(2)-1 + " GETPGRP.2: 18% GETPGRP(2)-1 + " GETPGRP.2: 33% GETPGRP(2)-1 + " GETPGRP.2: 49% GETPGRP(2)-1 + " GETPGRP.2: 70% GETPGRP(2)-1 + " GETPGRP.2: 84% GETPGRP(2)-1 + " GETPRIORITY.2: 16% GETPRIORITY(2)- + " GETPRIORITY.2: 35% GETPRIORITY(2)- + " INTRO.2: 7% INTRO(2)-1 + " INTRO.2: 64% INTRO(2)-5 + " KILL.1: 46% KILL(1)-1 + " KILL.2: 32% KILL(2)-1 + " KILL.2: 83% KILL(2)-1 + " KILL.2: 91% KILL(2)-1 + " KILLPG.2: 6% KILLPG(2)-1 + " KILLPG.2: 23% KILLPG(2)-1 + " KILLPG.2: 68% KILLPG(2)-1 + " KILLPG.2: 72% KILLPG(2)-1 + " KILLPG.2: 78% KILLPG(2)-1 + " RCMD.3: 45% RCMD(3)-1 + " RENICE.8: 21% RENICE(8)-1 + " REXEC.3: 74% REXEC(3)-1 + " SETPGRP.2: 16% SETPGRP(2)-1 + " SETPGRP.2: 66% SETPGRP(2)-1 + " SMM.13: 20% SMM:13-8 + " SMM.13: 24% SMM:13-9 + " SMM.13: 38% SMM:13-14 + " SOCKET.2: 74% SOCKET(2)-2 + " STTY.1: 90% STTY(1)-3 + " TTY.4: 8% TTY(4)-1 + " TTY.4: 8% TTY(4)-1 + " TTY.4: 8% TTY(4)-1 + " TTY.4: 9% TTY(4)-2 + " TTY.4: 10% TTY(4)-2 + " TTY.4: 48% TTY(4)-5 + " TTY.4: 50% TTY(4)-5 + " TTY.4: 52% TTY(4)-5 + " TTY.4: 52% TTY(4)-5 + " TTY.4: 55% TTY(4)-5 + " TTY.4: 99% TTY(4)-10 + " VHANGUP.2: 71% VHANGUP(2)-1 + " SMM.12A: 57% SMM:12-13 + " SMM.12A: 57% SMM:12-13 + " SMM.12A: 60% SMM:12-14 +group[s], well-known SMM.01: 31% SMM:1-21 +group, wheel SU.1: 60% SU(1)-1 +group - group file GROUP.5: 6% GROUP(5)-1 +group 0 SMM.12A: 48% SMM:12-11 +group access list ACCESS.2: 26% ACCESS(2)-1 + " GETGROUPS.2: 6% GETGROUPS(2)-1 + " GETGROUPS.2: 21% GETGROUPS(2)-1 + " INITGROUPS.3: 33% INITGROUPS(3)-1 + " INTRO.2: 71% INTRO(2)-6 + " INTRO.2: 72% INTRO(2)-6 + " INTRO.2: 93% INTRO(2)-7 + " SETGROUPS.2: 23% SETGROUPS(2)-1 + " INITGROUPS.3: 9% INITGROUPS(3)-1 +group file GETGRENT.3: 29% GETGRENT(3)-1 +group id[s] CHMOD.1: 55% CHMOD(1)-1 + " GETUID.3F: 22% GETUID(3F)-1 + " INTRO.2: 70% INTRO(2)-6 + " MKDIR.2: 15% MKDIR(2)-1 + " SETREGID.2: 9% SETREGID(2)-1 + " SETUID.3: 42% SETUID(3)-1 + " SMM.06: 27% SMM:6-3 + " SMM.17: 36% SMM:17-2 + " FIND.1: 40% FIND(1)-1 + " GROUP.5: 23% GROUP(5)-1 + " PASSWD.5: 18% PASSWD(5)-1 +group ID[s], user and EXECVE.2: 38% EXECVE(2)-1 + " EXECVE.2: 41% EXECVE(2)-1 + " LOGIN.1: 37% LOGIN(1)-1 +group ID's, user and SMM.13: 3% SMM:13-2 + " SMM.13: 9% SMM:13-4 + " SMM.13: 19% SMM:13-8 +group name[s] CHGRP.1: 30% CHGRP(1)-1 + " CHOWN.8: 41% CHOWN(8)-1 + " FIND.1: 39% FIND(1)-1 + " GROUP.5: 18% GROUP(5)-1 + " MAIL.1: 61% MAIL(1)-4 +group tty SMM.12A: 40% SMM:12-9 +group-ID CHGRP.1: 20% CHGRP(1)-1 +groups - show group memberships GROUPS.1: 7% unknown +grow-window (C-X ^) USD.17: 73% USD:17-34 +GSI 300 terminal PLOT.3X: 45% PLOT(3X)-1 +GSI 450 terminal PLOT.3X: 48% PLOT(3X)-1 +gsize USD.27: 43% USD:27-5 +GTCO digitizing tablet TB.4: 88% TB(4)-1 +GTE Telenet PC Pursuit L-DEVICES.5: 21% L-DEVICES(5)-1 +gtty PS1.18: 26% PS1:18-7 +Hall, A. D. PS2.06: 2% PS2:6-1 +Handshake, Three-way PS1.08: 92% PS1:8-38 + " PS1.08: 92% PS1:8-38 + " PS1.08: 92% PS1:8-38 + " PS1.08: 93% PS1:8-38 +gtty - get terminal state (defunct) STTY.3C: 6% STTY(3C)-1 +guest account[s] SMM.01: 54% SMM:1-34 +gutter width USD.20: 24% USD:20-2 + " USD.20: 23% USD:20-2 +GW intercolumn gap USD.20: 71% USD:20-5 +h19 SYSLINE.1: 8% SYSLINE(1)-1 +hacek USD.23: 73% USD:23-9 +half line SMM.20: 17% SMM:20-2 + " SMM.20: 28% SMM:20-3 + " SMM.20: 40% SMM:20-4 + " SMM.20: 40% SMM:20-4 +half-duplex communication REMOTE.5: 68% REMOTE(5)-1 +half-line motion[s] COL.1: 25% COL(1)-1 + " TERMCAP.5: 85% TERMCAP(5)-12 +HALT SMM.01: 14% SMM:1-10 + " INIT.8: 73% INIT(8)-1 + " SHUTDOWN.8: 65% SHUTDOWN(8)-1 +halt, unclean SMM.05: 21% SMM:5-5 + " SMM.05: 22% SMM:5-5 + " SMM.05: 24% SMM:5-6 + " SMM.05: 42% SMM:5-9 + " SMM.05: 42% SMM:5-9 +halt - stop the processor HALT.8: 5% HALT(8)-1 +halt processor REBOOT.2: 4% REBOOT(2)-1 +halt the system FASTBOOT.8: 45% +halting the CPU CONS.4: 26% CONS(4)-1 +handler[s], error SMM.13: 53% SMM:13-19 + " SMM.12A: 66% SMM:12-15 +Handler[s], Message MH.N: 0% MH(1)-1 + " USD.08: 2% USD:8-2 + " USD.08: 2% USD:8-2 + " USD.08: 54% USD:8-65 +handler[s], signal PAUSE.3C: 51% PAUSE(3C)-1 + " SIGINTERRUPT.3: 54% SIGINTERRUPT(3) + " SIGINTERRUPT.3: 73% SIGINTERRUPT(3) + " SIGVEC.2: 9% SIGVEC(2)-1 + " SIGVEC.2: 20% SIGVEC(2)-1 + " SIGVEC.2: 25% SIGVEC(2)-1 + " SIGVEC.2: 51% SIGVEC(2)-2 + " SIGVEC.2: 71% SIGVEC(2)-2 + " SMM.13: 12% SMM:13-5 + " SMM.13: 13% SMM:13-6 + " TRAPOV.3F: 30% TRAPOV(3F)-1 + " TRPFPE.3F: 24% TRPFPE(3F)-1 +handler, terminal TTY.4: 25% TTY(4)-3 +handling, Error USD.03: 72% USD:3-18 + " SETJMP.3: 21% SETJMP(3)-1 +handling, exception MATH.3M: 83% MATH(3M)-6 +handling, file USD.02: 1% USD:2-1 + " USD.02: 4% USD:2-1 + " USD.02: 14% USD:2-2 + " USD.17: 31% USD:17-14 +handling, terminal SMM.01: 39% SMM:1-26 +Handshake, Three-way SMM.02: 99% SMM:2-33 + " SMM.02: 99% SMM:2-33 + " SMM.13: 85% SMM:13-29 +hang[s], system SMM.01: 99% SMM:1-65 +hang up on last close TTY.4: 47% TTY(4)-5 +hanging tag USD.21: 52% USD:21-2 +hangman - Computer version of the game HANGMAN.6: 10% unknown +hangup dial in lines GETTYTAB.5: 86% GETTYTAB(5)-3 +hangup signal[s] EXIT.2: 74% EXIT(2)-1 + " INETD.8: 93% INETD(8)-2 + " INIT.8: 45% INIT(8)-1 + " INIT.8: 55% INIT(8)-1 + " SMM.01: 53% SMM:1-33 + " SMM.01: 53% SMM:1-33 + " STTY.1: 89% STTY(1)-3 + " STTY.1: 89% STTY(1)-3 + " SYSLOGD.8: 17% SYSLOGD(8)-1 + " USD.16: 14% USD:16-3 + " VHANGUP.2: 67% VHANGUP(2)-1 + " WINDOW.1: 33% WINDOW(1)-3 + " CSH.1: 60% CSH(1)-12 + " SIGNAL.3C: 19% SIGNAL(3C)-1 + " GETTYTAB.5: 25% GETTYTAB(5)-2 + " TTY.4: 46% TTY(4)-5 +hangup signal[s], ignore NICE.1: 35% NICE(1)-1 +hangups, ignore CSH.1: 64% CSH(1)-13 +hard I/O error[s] SMM.01: 95% SMM:1-63 + " SMM.13: 91% SMM:13-31 +hard limit[s] CSH.1: 61% CSH(1)-13 + " CSH.1: 61% CSH(1)-13 + " CSH.1: 61% CSH(1)-13 + " CSH.1: 74% CSH(1)-16 + " GETRLIMIT.2: 40% GETRLIMIT(2)-1 + " GETRLIMIT.2: 45% GETRLIMIT(2)-1 + " INTRO.2: 18% INTRO(2)-2 + " PS1.06: 47% PS1:6-22 + " PS1.06: 71% PS1:6-32 + " PS1.06: 71% PS1:6-32 + " PS1.06: 71% PS1:6-32 + " PS1.06: 72% PS1:6-32 + " SMM.01: 34% SMM:1-23 + " SMM.01: 83% SMM:1-50 + " SMM.01: 83% SMM:1-50 + " SMM.01: 83% SMM:1-50 + " SMM.01: 83% SMM:1-50 + " SMM.02: 93% SMM:2-32 + " SMM.04: 14% SMM:4-1 + " SMM.04: 16% SMM:4-1 + " SMM.04: 25% SMM:4-1 + " SMM.13: 33% SMM:13-12 + " SMM.13: 33% SMM:13-12 + " SMM.13: 43% SMM:13-16 + " SMM.14: 92% SMM:14-13 + " SMM.14: 92% SMM:14-13 +hard link INTRO.2: 22% INTRO(2)-2 + " LINK.2: 2% LINK(2)-1 + " LINK.2: 6% LINK(2)-1 + " LN.1: 25% LN(1)-1 + " RENAME.2: 22% RENAME(2)-1 + " RENAME.2: 24% RENAME(2)-1 + " TAR.5: 74% TAR(5)-1 +hard links FIND.1: 61% FIND(1)-2 + " INTRO.2: 33% INTRO(2)-3 + " LINK.2: 10% LINK(2)-1 + " LN.1: 21% LN(1)-1 + " LN.1: 24% LN(1)-1 + " LN.1: 34% LN(1)-1 + " PS1.06: 64% PS1:6-29 + " PS1.06: 66% PS1:6-30 + " PS1.06: 66% PS1:6-30 +Hardware characteristics PS1.01: 6% PS1:1-3 +hard links RENAME.2: 31% RENAME(2)-1 + " SMM.05: 38% SMM:5-8 + " STAT.2: 23% STAT(2)-1 +hard lock[s] SMM.14: 80% SMM:14-12 + " SMM.14: 81% SMM:14-12 + " SMM.14: 81% SMM:14-12 + " SMM.14: 81% SMM:14-12 +hard-copy record of terminal session SCRIPT.1: 63% SCRIPT(1)-1 +hardcopy terminal[s] ERROR.1: 99% ERROR(1)-3 + " TERMCAP.5: 80% TERMCAP(5)-11 + " TERMCAP.5: 85% TERMCAP(5)-12 + " TERMCAP.5: 85% TERMCAP(5)-12 + " TTY.4: 28% TTY(4)-3 + " TTY.4: 28% TTY(4)-3 + " USD.15: 1% USD:15-1 + " USD.15: 74% USD:15-21 + " USD.15: 74% USD:15-21 + " USD.15: 75% USD:15-21 + " USD.15: 79% USD:15-22 +hardware condition[s] PS1.06: 24% PS1:6-13 +hardware, associated MOUNT.2: 87% MOUNT(2)-2 +hardware, network PING.8: 11% PING(8)-1 + " SMM.02: 96% SMM:2-33 + " SMM.13: 1% SMM:13-2 + " SMM.13: 15% SMM:13-6 +hardware address ARP.4P: 39% ARP(4P)-1 + " VV.4: 20% VV(4)-1 + " VV.4: 27% VV(4)-1 +hardware configuration[s] SMM.01: 2% SMM:1-3 + " SMM.01: 10% SMM:1-7 + " SMM.01: 44% SMM:1-29 + " SMM.02: 0% SMM:2-2 +hardware device[s] INTRO.4: 19% INTRO(4)-1 + " INTRO.4: 27% INTRO(4)-1 + " INTRO.4N: 71% INTRO(4N)-3 + " PTY.4: 11% PTY(4)-1 + " SMM.02: 6% SMM:2-3 + " SMM.02: 6% SMM:2-3 + " SMM.02: 7% SMM:2-3 + " SMM.02: 7% SMM:2-3 + " SMM.02: 29% SMM:2-9 + " SMM.02: 44% SMM:2-13 + " SMM.15: 33% SMM:15-10 + " SMM.15: 33% SMM:15-10 +hardware error reporting and diagnosis SMM.01: 0% SMM:1-1 +hardware failure[s] CRASH.8V: 40% CRASH(8V)-1 + " SMM.01: 7% SMM:1-5 + " SMM.02: 6% SMM:2-3 + " SMM.05: 1% SMM:5-2 + " SMM.05: 12% SMM:5-4 + " SMM.05: 20% SMM:5-5 + " SMM.05: 32% SMM:5-7 + " SMM.05: 33% SMM:5-7 + " SMM.05: 39% SMM:5-8 + " SMM.14: 20% SMM:14-4 +hardware fault[s] INTRO.2: 19% INTRO(2)-2 + " SIGVEC.2: 81% SIGVEC(2)-3 + " SMM.13: 95% SMM:13-32 +hardware interface[s] SMM.15: 15% SMM:15-6 + " SMM.15: 92% SMM:15-26 +hardware interrupt SIGVEC.2: 5% SIGVEC(2)-1 +hardware problem[s] SMM.13: 75% SMM:13-26 + " SMM.13: 88% SMM:13-30 +hardware support[s] INTRO.4: 1% INTRO(4)-1 +hardware supported by 4.3BSD SMM.01: 1% SMM:1-2 +hardware traps to signal[s], mapping of SIGNAL.3C: 81% SIGNAL(3C)-3 +hardwired line L-DEVICES.5: 18% L-DEVICES(5)-1 +hash code[s] USD.30: 14% USD:30-2 + " USD.30: 15% USD:30-2 + " USD.30: 24% USD:30-3 +hash table[s] CSH.1: 56% CSH(1)-12 + " CSH.1: 67% CSH(1)-14 + " CSH.1: 74% CSH(1)-16 + " PS2.09: 5% PS2:9-9 + " PS2.09: 42% PS2:9-76 + " PS2.09: 98% PS2:9-154 + " PS2.09: 98% PS2:9-154 + " PS2.09: 98% PS2:9-154 + " PS2.09: 98% PS2:9-154 + " PS2.09: 98% PS2:9-154 + " PS2.09: 98% PS2:9-154 + " PS2.09: 98% PS2:9-154 + " PS2.09: 98% PS2:9-154 + " PS2.09: 99% PS2:9-154 + " PS2.09: 99% PS2:9-154 + " PS2.09: 99% PS2:9-154 + " PS2.09: 99% PS2:9-154 + " PS2.09: 99% PS2:9-154 + " PS2.09: 99% PS2:9-154 + " PS2.09: 99% PS2:9-154 + " PS2.09: 99% PS2:9-154 + " PS2.10: 64% PS2:10-56 + " PS2.10: 65% PS2:10-56 + " SMM.14: 57% SMM:14-9 + " USD.04: 50% USD:4-23 +hashed database SMM.12A: 2% SMM:12-2 + " SMM.12A: 65% SMM:12-15 +hashstat CSH.1: 56% CSH(1)-12 +Hayes Smartmodem 1200 L-DEVICES.5: 16% L-DEVICES(5)-1 +Hazeltine terminal[s] STTY.1: 77% STTY(1)-2 + " TERMCAP.5: 93% TERMCAP(5)-13 + " TTY.4: 40% TTY(4)-4 + " TTY.4: 89% TTY(4)-9 + " TERMCAP.5: 10% TERMCAP(5)-2 + " TERMCAP.5: 16% TERMCAP(5)-4 + " TTY.4: 39% TTY(4)-4 +HDH HDH.4: 14% HDH(4)-1 + " IMP.4: 10% IMP(4)-1 + " SMM.12A: 74% SMM:12-17 +hdh - ACC IF-11/HDH IMP interface HDH.4: 3% HDH(4)-1 +HDLC HDH.4: 14% HDH(4)-1 +HdrInfo structure SMM.07A: 85% SMM:07-38 +head - give first few lines HEAD.1: 14% HEAD(1)-1 +head command USD.04: 80% USD:4-38 +head crash SMM.14: 18% SMM:14-4 + " SMM.05: 7% SMM:5-3 +HEADER[s] USD.23: 9% USD:23-2 + " USD.24: 0% USD:24-2 +header file[s] PS1.14: 34% PS1:14-5 + " PS1.14: 35% PS1:14-5 + " PS1.14: 35% PS1:14-5 + " PS1.14: 35% PS1:14-5 + " PS1.15: 76% PS1:15-22 + " PS1.15: 76% PS1:15-22 + " PS1.15: 76% PS1:15-22 + " PS1.18: 5% PS1:18-3 +Header information PS1.13: 57% PS1:13-11 + " PS1.13: 57% PS1:13-11 + " PS1.13: 58% PS1:13-11 + " PS1.14: 8% PS1:14-1 +header, .$h Called at every page to print the USD.23: 26% USD:23-4 +header, .eh Define USD.23: 24% USD:23-3 +header, .he Define three-part USD.23: 24% USD:23-3 +header, .oh Define USD.23: 24% USD:23-3 +header[s], buffer SMM.02: 90% SMM:2-31 + " SMM.02: 90% SMM:2-31 + " SMM.02: 91% SMM:2-31 + " SMM.02: 92% SMM:2-31 + " SMM.02: 92% SMM:2-31 +header[s], IDP IDP.4P: 82% IDP(4P)-2 + " IDP.4P: 84% IDP(4P)-2 +header, IP ICMP.4P: 48% ICMP(4P)-1 + " IP.4P: 21% IP(4P)-1 + " IP.4P: 58% IP(4P)-1 + " NSIP.4: 19% NSIP(4)-1 +header[s], message COMSAT.8C: 55% COMSAT(8C)-1 + " COMSAT.8C: 73% COMSAT(8C)-1 + " IMP.4: 47% IMP(4)-1 + " MAIL.1: 42% MAIL(1)-3 + " SENDMAIL.8: 43% SENDMAIL(8)-2 + " SMM.16: 1% SMM:16-1 + " SMM.16: 36% SMM:16-5 + " SMM.16: 50% SMM:16-7 + " SMM.16: 82% SMM:16-11 + " USD.07: 58% USD:7-14 + " USD.07: 58% USD:7-14 + " USD.07: 58% USD:7-14 + " USD.07: 59% USD:7-14 + " USD.07: 59% USD:7-14 + " USD.07: 80% USD:7-19 + " USD.07: 81% USD:7-19 + " SMM.07A: 2% SMM:07-4 + " SMM.07A: 79% SMM:07-36 +header, network SMM.15: 44% SMM:15-14 + " SMM.15: 46% SMM:15-14 + " SMM.15: 46% SMM:15-14 + " SMM.15: 46% SMM:15-14 + " SMM.15: 73% SMM:15-21 + " SMM.15: 74% SMM:15-21 + " SMM.15: 93% SMM:15-26 + " SMM.15: 94% SMM:15-26 + " SMM.15: 94% SMM:15-26 + " SMM.15: 94% SMM:15-26 + " SMM.15: 95% SMM:15-26 + " SMM.15: 96% SMM:15-26 +header[s], odd and even USD.21: 89% USD:21-3 +header[s], packet SMM.15: 82% SMM:15-23 + " SMM.15: 83% SMM:15-23 +header[s], RFC733 SMM.12A: 37% SMM:12-9 +header[s], section MS.7: 54% MS(7)-2 + " USD.22: 66% USD:22-12 + " USD.22: 94% USD:22-18 +header, trailer protocol SMM.15: 94% SMM:15-26 + " SMM.15: 94% SMM:15-26 + " SMM.15: 95% SMM:15-26 + " SMM.15: 95% SMM:15-26 +header and the first line of text, .m2 Set the space between the USD.23: 25% USD:23-4 +header components MH-MAIL.N: 51% MH-MAIL(5)-1 + " POST.N: 37% POST(8)-1 + " USD.08: 68% USD:8-82 + " USD.08: 78% USD:8-96 +header declarations SMM.16: 37% SMM:16-5 + " SMM.16: 59% SMM:16-8 + " SMM.16: 59% SMM:16-8 +header definition[s] SMM.16: 57% SMM:16-8 + " SMM.07A: 82% SMM:07-37 +header entry SMM.07: 92% SMM:7-1 + " SMM.07: 93% SMM:7-1 + " SMM.07A: 82% SMM:07-37 + " SMM.07A: 82% SMM:07-37 +header field[s] MAIL.1: 30% MAIL(1)-2 + " MAIL.1: 45% MAIL(1)-3 + " MAIL.1: 45% MAIL(1)-3 + " MAIL.1: 46% MAIL(1)-3 + " MAIL.1: 54% MAIL(1)-4 + " MAIL.1: 55% MAIL(1)-4 + " MAIL.1: 55% MAIL(1)-4 + " POST.N: 17% POST(8)-1 + " SMM.16: 51% SMM:16-7 + " SMM.16: 51% SMM:16-7 + " USD.07: 6% USD:7-2 + " USD.07: 10% USD:7-3 + " USD.07: 37% USD:7-9 + " USD.07: 51% USD:7-13 + " USD.07: 52% USD:7-13 + " USD.07: 58% USD:7-14 + " USD.07: 61% USD:7-15 + " USD.07: 61% USD:7-15 + " USD.07: 61% USD:7-15 + " USD.07: 66% USD:7-16 + " USD.07: 87% USD:7-21 + " USD.07: 87% USD:7-21 + " USD.07: 87% USD:7-21 + " USD.07: 90% USD:7-22 + " USD.08: 78% USD:8-96 + " SMM.07A: 82% SMM:07-37 +header file[s] CONFIG.8: 53% CONFIG(8)-1 + " DBX.1: 92% DBX(1)-7 + " DBX.1: 92% DBX(1)-7 + " PC.1: 17% PC(1)-1 + " SMM.02: 12% SMM:2-5 + " SMM.13: 2% SMM:13-2 + " SMM.13: 2% SMM:13-2 + " SMM.13: 5% SMM:13-3 + " SMM.13: 5% SMM:13-3 + " SMM.13: 23% SMM:13-9 + " STDIO.3S: 27% STDIO(3S)-1 + " USD.32: 72% USD:32-11 + " SMM.12A: 57% SMM:12-13 + " SMM.12A: 65% SMM:12-15 + " SMM.12A: 76% SMM:12-18 + " SMM.12A: 76% SMM:12-18 + " SMM.12A: 77% SMM:12-18 +header item[s] MH-MAIL.N: 27% MH-MAIL(5)-1 + " MH-MAIL.N: 27% MH-MAIL(5)-1 + " MH-MAIL.N: 29% MH-MAIL(5)-1 + " MH-MAIL.N: 31% MH-MAIL(5)-1 + " USD.08: 67% USD:8-82 + " USD.08: 67% USD:8-82 + " USD.08: 67% USD:8-82 + " USD.08: 67% USD:8-82 +header line[s] BUGFILER.8: 32% BUGFILER(8)-1 + " INC.N: 26% INC(1)-1 + " POST.N: 24% POST(8)-1 + " SCAN.N: 30% SCAN(1)-1 + " SEND.N: 82% SEND(1)-2 + " SMM.10: 24% SMM:10-7 + " SMM.10: 51% SMM:10-14 + " SMM.16: 36% SMM:16-5 + " SMM.16: 37% SMM:16-5 + " SMM.16: 57% SMM:16-8 + " SMM.16: 59% SMM:16-8 + " SMM.16: 59% SMM:16-8 + " USD.07: 58% USD:7-14 + " USD.08: 24% USD:8-26 + " USD.08: 52% USD:8-62 + " USD.08: 55% USD:8-65 + " USD.08: 78% USD:8-96 + " USD.09: 22% USD:9-3 + " SMM.07A: 22% SMM:07-12 + " SMM.07A: 22% SMM:07-12 + " SMM.07A: 23% SMM:07-12 + " SMM.07A: 39% SMM:07-18 + " SMM.07A: 74% SMM:07-32 + " SMM.07A: 75% SMM:07-32 + " SMM.07A: 75% SMM:07-32 + " SMM.07A: 75% SMM:07-32 + " SMM.07A: 81% SMM:07-36 + " SMM.07A: 82% SMM:07-37 + " SMM.07A: 82% SMM:07-37 + " SMM.07A: 83% SMM:07-37 + " SMM.07A: 83% SMM:07-37 +header margin MS.7: 80% MS(7)-3 +Headers and Footer[s] USD.22: 14% USD:22-3 + " USD.23: 21% USD:23-3 +headers and footers on the next pages, .hx Suppre USD.23: 25% USD:23-4 +headers command USD.07: 59% USD:7-14 + " USD.07: 59% USD:7-14 + " USD.07: 60% USD:7-14 + " USD.07: 72% USD:7-17 +Heading[s] USD.24: 87% USD:24-29 +heading, .$p Print section USD.23: 18% USD:23-3 +heading, CH center USD.20: 72% USD:20-5 +heading, LH left USD.20: 72% USD:20-5 +heading, multi-page boxed table with a repeated USD.28: 49% USD:28-7 +heading[s], Page USD.20: 17% USD:20-2 + " USD.20: 17% USD:20-2 + " USD.20: 19% USD:20-2 +heading, RH right USD.20: 72% USD:20-5 +heading[s], section USD.13: 62% USD:13-11 + " USD.13: 62% USD:13-11 + " USD.20: 26% USD:20-2 + " USD.20: 27% USD:20-2 + " USD.22: 61% USD:22-12 + " USD.22: 67% USD:22-13 + " USD.23: 13% USD:23-2 + " USD.20: 26% USD:20-2 +heading, vertically spanned USD.28: 14% USD:28-3 +HELP SMM.12A: 97% SMM:12-23 +Help command (see also apropos command) USD.07: 24% USD:7-6 + " WHATIS.1: 12% WHATIS(1)-1 +help facility SMM.12A: 33% SMM:12-8 +help in JOVE USD.17: 6% USD:17-3 +Here document[s] USD.03: 30% USD:3-7 +Hewlett Packard 2648 graphics terminal PLOT.1G: 66% PLOT(1G)-1 + " PLOT.3X: 68% PLOT(3X)-1 +Hewlett Packard 7221 graphics terminal PLOT.3X: 70% PLOT(3X)-1 +Hewlett-Packard TERMCAP.5: 43% TERMCAP(5)-7 + " TERMCAP.5: 46% TERMCAP(5)-8 + " TERMCAP.5: 66% TERMCAP(5)-10 +Hewlett-Packard 2648 graphics terminal LIB2648.3X: 2% LIB2648(3X)-1 +Hewlett-Packard HP-71B EXP.3M: 47% EXP(3M)-2 +helpr - get information about a database PS2.10: 63% PS2:10-55 +hex dump OD.1: 2% OD(1)-1 +hexadecimal, unsigned OD.1: 33% OD(1)-1 +hexadecimal integer[s] SCANF.3S: 38% SCANF(3S)-1 +hier - file system hierarchy HIER.7: 0% HIER(7)-1 +hierarchical file system PS1.06: 56% PS1:6-27 +hierarchy[s], directory FIND.1: 4% FIND(1)-1 + " USD.04: 11% USD:4-6 + " USD.04: 46% USD:4-21 + " HIER.7: 1% HIER(7)-1 +hierarchy, file system HIER.7: 0% HIER(7)-1 + " SMM.14: 87% SMM:14-13 +high-priority out-of-band message[s] PS1.06: 81% PS1:6-35 +high-water mark[s] SMM.13: 39% SMM:13-14 + " SMM.13: 39% SMM:13-14 +Highlighting TERMCAP.5: 61% TERMCAP(5)-9 +hints for preparing text USD.22: 9% USD:22-2 +histchars shell variable CSH.1: 80% CSH(1)-17 +HISTEXP SMM.10: 8% SMM:10-3 + " SMM.10: 8% SMM:10-3 + " SMM.10: 8% SMM:10-3 +histogram[s] PS1.16: 74% PS1:16-10 +history of change[s] PS1.13: 2% PS1:13-1 +HO PS1.06: 68% PS1:6-31 +Hollerith PS1.02: 20% PS1:2-8 + " PS1.02: 20% PS1:2-8 + " PS1.02: 49% PS1:2-17 + " PS1.02: 49% PS1:2-17 + " PS2.06: 81% PS2:6-28 +history, login HIER.7: 38% HIER(7)-4 + " LAST.1: 3% LAST(1)-1 +history colon modifiers CSH.1: 20% CSH(1)-4 +history command[s] CSH.1: 17% CSH(1)-4 + " USD.04: 49% USD:4-22 +history file SMM.10: 8% SMM:10-3 + " SMM.10: 8% SMM:10-3 + " SMM.10: 48% SMM:10-13 + " SMM.10: 62% SMM:10-16 + " SMM.10: 71% SMM:10-18 + " SPELL.1: 48% SPELL(1)-1 + " SPELL.1: 53% SPELL(1)-1 + " CSH.1: 86% CSH(1)-18 +history list CSH.1: 16% CSH(1)-4 + " CSH.1: 25% CSH(1)-5 + " CSH.1: 57% CSH(1)-12 + " CSH.1: 71% CSH(1)-15 + " CSH.1: 71% CSH(1)-15 + " CSH.1: 80% CSH(1)-17 + " CSH.1: 81% CSH(1)-17 + " CSH.1: 85% CSH(1)-18 + " USD.04: 25% USD:4-11 + " USD.04: 29% USD:4-13 + " USD.04: 29% USD:4-13 + " USD.04: 49% USD:4-22 + " USD.04: 81% USD:4-38 +history mechanism[s] CSH.1: 0% CSH(1)-1 + " CSH.1: 9% CSH(1)-2 + " CSH.1: 25% CSH(1)-5 + " USD.04: 0% USD:4-1 + " USD.04: 11% USD:4-6 + " USD.04: 16% USD:4-8 + " USD.04: 30% USD:4-13 + " USD.04: 30% USD:4-13 + " USD.04: 31% USD:4-13 + " USD.04: 31% USD:4-13 + " USD.04: 34% USD:4-15 + " USD.04: 81% USD:4-38 + " USD.04: 86% USD:4-40 + " USD.04: 87% USD:4-40 + " UUCP.1C: 94% UUCP(1C)-2 + " UUX.1C: 98% UUX(1C)-2 +history of your session USD.17: 46% USD:17-20 +history reference CSH.1: 22% CSH(1)-5 + " CSH.1: 22% CSH(1)-5 + " CSH.1: 23% CSH(1)-5 +history shell variable CSH.1: 17% CSH(1)-4 +History Substitution[s] CSH.1: 0% CSH(1)-1 + " CSH.1: 15% CSH(1)-3 + " CSH.1: 16% CSH(1)-3 + " CSH.1: 16% CSH(1)-4 + " CSH.1: 16% CSH(1)-4 + " CSH.1: 23% CSH(1)-5 + " CSH.1: 80% CSH(1)-17 + " CSH.1: 87% CSH(1)-18 + " CSH.1: 92% CSH(1)-19 + " USD.04: 50% USD:4-23 + " USD.04: 54% USD:4-25 +Hitachi HDG-1111B TB.4: 94% TB(4)-1 +hk - RK6-11/RK06 and RK07 moving head disk HK.4: 1% HK(4)-1 +HM top margin USD.20: 72% USD:20-5 +hold MAIL.1: 84% MAIL(1)-5 + " USD.07: 77% USD:7-18 +Hold and Get Function[s] USD.18: 84% USD:18-9 +hold area USD.18: 86% USD:18-9 + " USD.18: 87% USD:18-9 +hold space[s] SED.1: 57% SED(1)-2 + " SED.1: 58% SED(1)-2 +HOME MH-PROFILE.N: 49% MH-PROFILE(5)-4 + " SH.1: 30% SH(1)-2 + " USD.03: 38% USD:3-9 +home directory[s] CSH.1: 1% CSH(1)-1 + " CSH.1: 38% CSH(1)-8 + " CSH.1: 39% CSH(1)-8 + " CSH.1: 52% CSH(1)-10 + " CSH.1: 81% CSH(1)-17 + " CSH.1: 89% CSH(1)-19 + " CSH.1: 89% CSH(1)-19 + " CSH.1: 89% CSH(1)-19 + " DBX.1: 7% DBX(1)-1 + " ERROR.1: 48% ERROR(1)-2 + " FINGER.1: 36% FINGER(1)-1 + " FINGER.1: 40% FINGER(1)-1 + " FINGER.1: 44% FINGER(1)-1 + " FTP.1C: 88% FTP(1C)-7 + " FTP.1C: 91% FTP(1C)-7 + " FTPD.8C: 75% FTPD(8C)-2 + " INSTALL-MH.N: 47% INSTALL-MH(8)-1 + " INSTALL-MH.N: 67% INSTALL-MH(8)-1 + " JOVE.N: 69% JOVE(1)-2 + " LOGIN.1: 33% LOGIN(1)-1 + " LOGIN.1: 51% LOGIN(1)-1 + " MAIL.1: 21% MAIL(1)-2 + " MAIL.1: 48% MAIL(1)-3 + " MAIL.1: 68% MAIL(1)-4 + " MAIL.1: 94% MAIL(1)-6 + " MH-PROFILE.N: 1% MH-PROFILE(5)-1 + " MH-PROFILE.N: 50% MH-PROFILE(5)-4 + " REXEC.3: 29% REXEC(3)-1 + " REXECD.8C: 43% REXECD(8C)-1 + " RSHD.8C: 45% RSHD(8C)-1 + " RSHD.8C: 54% RSHD(8C)-1 + " SCCS.1: 76% SCCS(1)-2 + " SH.1: 30% SH(1)-2 + " SMM.10: 79% SMM:10-19 + " USD.04: 11% USD:4-6 + " USD.04: 15% USD:4-7 + " USD.04: 15% USD:4-7 + " USD.04: 15% USD:4-7 + " USD.04: 15% USD:4-7 + " USD.04: 23% USD:4-11 + " USD.04: 24% USD:4-11 + " USD.04: 26% USD:4-11 + " USD.04: 46% USD:4-21 + " USD.04: 71% USD:4-35 + " USD.04: 75% USD:4-36 + " USD.04: 81% USD:4-39 + " USD.04: 81% USD:4-39 + " USD.08: 31% USD:8-35 + " USD.08: 72% USD:8-88 + " USD.08: 77% USD:8-95 + " USD.15: 48% USD:15-14 + " USD.17: 55% USD:17-24 + " SMM.07A: 21% SMM:07-11 + " SMM.07A: 22% SMM:07-11 + " CSH.1: 38% CSH(1)-8 +HOME environment variable ENVIRON.7: 32% ENVIRON(7)-1 + " SU.1: 37% SU(1)-1 + " CSH.1: 78% CSH(1)-17 + " INSTALL-MH.N: 64% INSTALL-MH(8)-1 +home phone ADDUSER.8: 37% ADDUSER(8)-1 + " PASSWD.1: 76% PASSWD(1)-1 + " PASSWD.5: 21% PASSWD(5)-1 +home position PS1.18: 31% PS1:18-8 + " PS1.18: 53% PS1:18-15 +Honeywell 6000 PS1.02: 34% PS1:2-12 + " PS1.09: 53% PS1:9-6 +home position TERMCAP.5: 47% TERMCAP(5)-8 + " TERMCAP.5: 48% TERMCAP(5)-8 + " TERMCAP.5: 48% TERMCAP(5)-8 +HOME shell variable CSH.1: 78% CSH(1)-17 +Honey-Danber UUCP compatibility L_SYS.5: 97% L.SYS(5)-4 + " SMM.09: 47% SMM:9-10 +Honeywell 6000 SMM.19: 0% SMM:19-2 + " SMM.19: 79% SMM:19-22 + " SMM.19: 59% SMM:19-16 +hook function PS2.09: 30% PS2:9-56 + " PS2.09: 30% PS2:9-56 + " PS2.09: 30% PS2:9-56 +hooked USD.21: 84% USD:21-3 +hop count information USD.07: 84% USD:7-20 +horizontal line[s] USD.22: 31% USD:22-6 + " USD.23: 56% USD:23-7 + " USD.28: 19% USD:28-4 + " USD.28: 19% USD:28-4 + " USD.28: 20% USD:28-4 + " USD.28: 20% USD:28-4 + " USD.28: 34% USD:28-5 +horizontal line the length of the page, .hl Draws a USD.23: 56% USD:23-7 +horizontal motion[s] USD.24: 54% USD:24-18 + " USD.24: 59% USD:24-19 + " USD.24: 63% USD:24-20 + " USD.25: 36% USD:25-6 + " USD.25: 41% USD:25-7 + " USD.25: 72% USD:25-11 +horizontal position USD.24: 65% USD:24-21 + " USD.25: 29% USD:25-5 + " USD.26: 52% USD:26-4 + " USD.27: 50% USD:27-6 +horizontal resolution USD.24: 19% USD:24-8 + " SMM.20: 14% SMM:20-2 +horizontal size TTY.4: 97% TTY(4)-10 + " USD.24: 34% USD:24-12 + " USD.24: 46% USD:24-15 +horizontal tab[s] USD.25: 29% USD:25-5 +Horton, Mark BANNER.6: 95% BANNER(6)-1 + " LIB2648.3X: 93% LIB2648(3X)-5 + " SMM.10: 0% SMM:10-1 + " TERMCAP.5: 97% TERMCAP(5)-14 + " USD.15: 0% USD:15-1 + " USD.16: 0% USD:16-1 + " W.1: 52% W(1)-1 +HOST SMM.01: 28% SMM:1-19 +host, destination PS1.08: 16% PS1:8-6 + " PS1.08: 49% PS1:8-20 + " PS1.08: 83% PS1:8-34 +host addresses PS1.07a: 45% PS1:7-11 + " PS1.07a: 49% PS1:7-11 + " PS1.08: 33% PS1:8-12 +host byte order PS1.08: 40% PS1:8-15 +host language[s] PS1.16: 7% PS1:16-2 + " PS1.16: 7% PS1:16-2 + " PS1.16: 7% PS1:16-2 + " PS1.16: 7% PS1:16-2 + " PS1.16: 8% PS1:16-2 + " PS1.16: 8% PS1:16-2 + " PS1.16: 66% PS1:16-9 +host name[s] PS1.06: 7% PS1:6-7 + " PS1.08: 31% PS1:8-11 + " PS1.08: 35% PS1:8-13 + " PS1.08: 55% PS1:8-22 +hostent, struct PS1.07a: 56% PS1:7-13 + " PS1.07a: 67% PS1:7-15 + " PS1.08: 31% PS1:8-11 + " PS1.08: 41% PS1:8-16 +hostent structure PS1.08: 31% PS1:8-11 + " PS1.08: 32% PS1:8-11 + " PS1.08: 32% PS1:8-11 + " PS1.08: 32% PS1:8-11 +hosts, description of remote HIER.7: 21% HIER(7)-2 +host[s], destination INTRO.4N: 52% INTRO(4N)-2 + " INTRO.4N: 63% INTRO(4N)-2 + " INTRO.4N: 68% INTRO(4N)-3 + " NETSTAT.1: 67% NETSTAT(1)-2 + " ROUTE.8C: 16% ROUTE(8C)-1 + " SMM.13: 75% SMM:13-26 + " SMM.07A: 55% SMM:07-24 +host[s], distributing files to other RDIST.1: 38% RDIST(1)-2 +host, foreign INTRO.2: 57% INTRO(2)-5 + " REXEC.3: 25% REXEC(3)-1 +host, login to a remote TELNET.1C: 1% TELNET(1C)-1 +host, master RDIST.1: 64% RDIST(1)-3 + " SMM.07A: 55% SMM:07-24 +hosts, phone numbers for remote HIER.7: 21% HIER(7)-2 +host, remote REMOTE.5: 1% REMOTE(5)-1 +host[s], trusted RLOGIND.8C: 10% RLOGIND(8C)-1 + " RSHD.8C: 7% RSHD(8C)-1 + " SMM.01: 70% SMM:1-42 +host, UNIX TIP.1C: 14% TIP(1C)-1 +host[s], UUCP MAILADDR.7: 32% MAILADDR(7)-1 + " SMM.09: 53% SMM:9-12 + " SMM.07A: 56% SMM:07-24 +host[s], uuname - list names of UUCP UUNAME.1C: 13% UUNAME(1C)-1 +host addresses ARP.8C: 73% ARP(8C)-1 + " GETHOSTBYNAME.3N: 42% GETHOSTBYNAME(3) + " NAMED.8: 67% NAMED(8)-2 + " NETSTAT.1: 50% NETSTAT(1)-1 + " RSHD.8C: 29% RSHD(8C)-1 + " SMM.01: 61% SMM:1-38 + " SMM.01: 65% SMM:1-40 + " SMM.11: 13% SMM:11-2 + " SMM.13: 82% SMM:13-28 + " SMM.12A: 47% SMM:12-11 +host and network name data bases SMM.01: 69% SMM:1-42 +host database MKHOSTS.8: 18% MKHOSTS(8)-1 +host field SMM.07A: 51% SMM:07-23 +host machine[s] GETHOSTNAME.2: 43% GETHOSTNAME(2)- +host name[s] GETHOSTNAME.2: 23% GETHOSTNAME(2)- + " GETHOSTNAME.2: 89% GETHOSTNAME(2)- + " HOSTS.5: 82% HOSTS(5)-1 + " IFCONFIG.8C: 18% IFCONFIG(8C)-1 + " LPD.8: 44% LPD(8)-1 + " MAILADDR.7: 25% MAILADDR(7)-1 + " PRINTCAP.5: 75% PRINTCAP(5)-2 + " RESOLVER.5: 78% RESOLVER(5)-1 + " RLOGIN.1C: 17% RLOGIN(1C)-1 + " ROUTE.8C: 48% ROUTE(8C)-1 + " RSH.1C: 58% RSH(1C)-1 + " RSH.1C: 66% RSH(1C)-1 + " RSHD.8C: 26% RSHD(8C)-1 + " RSHD.8C: 51% RSHD(8C)-1 + " SMM.01: 32% SMM:1-21 + " SMM.01: 33% SMM:1-22 + " SMM.01: 70% SMM:1-42 + " SMM.01: 70% SMM:1-42 + " SMM.01: 70% SMM:1-42 + " SMM.01: 71% SMM:1-42 + " SMM.06: 65% SMM:6-5 + " SMM.13: 7% SMM:13-4 + " SMM.13: 66% SMM:13-23 + " SMM.16: 3% SMM:16-1 + " SMM.16: 30% SMM:16-4 + " SMM.07A: 47% SMM:07-21 + " SMM.07A: 55% SMM:07-24 + " SMM.07A: 75% SMM:07-32 + " SMM.12A: 92% SMM:12-22 + " SMM.12A: 94% SMM:12-22 + " HOSTS.5: 16% HOSTS(5)-1 +host number IFCONFIG.8C: 23% IFCONFIG(8C)-1 + " IFCONFIG.8C: 25% IFCONFIG(8C)-1 + " IMP.4: 20% IMP(4)-1 + " NS.3N: 26% NS(3N)-1 + " SMM.01: 63% SMM:1-39 +host table[s] GETTABLE.8C: 20% GETTABLE(8C)-1 + " GETTABLE.8C: 41% GETTABLE(8C)-1 + " MKHOSTS.8: 7% MKHOSTS(8)-1 + " SMM.01: 69% SMM:1-42 + " SMM.01: 70% SMM:1-42 + " SMM.01: 70% SMM:1-42 + " SMM.01: 70% SMM:1-42 + " SMM.01: 70% SMM:1-42 + " SMM.16: 70% SMM:16-10 + " SMM.12A: 64% SMM:12-15 + " SMM.12A: 64% SMM:12-15 + " SMM.12A: 86% SMM:12-20 +host table lookup routines SMM.01: 33% SMM:1-22 + " SMM.11: 4% SMM:11-2 + " SMM.11: 10% SMM:11-2 +hostent structure SMM.12A: 65% SMM:12-15 + " GETHOSTBYNAME.3N: 5% GETHOSTBYNAME(3) + " GETHOSTBYNAME.3N: 7% GETHOSTBYNAME(3) + " GETHOSTBYNAME.3N: 9% GETHOSTBYNAME(3) + " GETHOSTBYNAME.3N: 22% GETHOSTBYNAME(3) +hostfile.dir MKHOSTS.8: 56% MKHOSTS(8)-1 +hostfile.pag MKHOSTS.8: 54% MKHOSTS(8)-1 +hostid SMM.12A: 33% SMM:12-8 +hostid - set or print identifier of current host system HOSTID.1: 8% HOSTID(1)-1 +hostname UUNAME.1C: 64% UUNAME(1C)-1 + " UUNAME.1C: 73% UUNAME(1C)-1 + " HOSTID.1: 73% unknown +hostname, official ALI.N: 58% ALI(1)-1 + " AP.N: 53% AP(8)-1 + " USD.08: 13% USD:8-12 + " USD.08: 75% USD:8-91 +hostname, real GETTYTAB.5: 73% GETTYTAB(5)-2 + " GETTYTAB.5: 74% GETTYTAB(5)-2 + " L_ALIASES.5: 71% L.ALIASES(5)-1 +hostname - set or print name of current host system HOSTNAME.1: 11% HOSTNAME(1)-1 +hostnm - get name of current host HOSTNM.3F: 12% unknown +hosts - host name data base HOSTS.5: 3% HOSTS(5)-1 +house[s], publishing USD.31: 29% USD:31-4 + " USD.31: 52% USD:31-9 +How to Read the Network News USD.09: 0% USD:9-1 +How to Use USENET Effectively USD.10: 0% USD:10-1 +How to use vnew[s] USD.09: 89% USD:9-12 +hp - MASSBUS disk interface HP.4: 0% HP(4)-1 +HP 2648 graphics terminal LIB2648.3X: 0% LIB2648(3X)-1 +HP-71B, Hewlett-Packard EXP.3M: 47% EXP(3M)-2 +HSC50 disk controller[s] SMM.13: 1% SMM:13-2 + " SMM.01: 2% SMM:1-2 +ht - TM-03/TE-16,TU-45,TU-77 MASSBUS magtape interface HT.4: 3% HT(4)-1 +htable GETTABLE.8C: 70% unknown + " SMM.12A: 86% SMM:12-20 +htable - convert NIC standard format host tables HTABLE.8: 2% HTABLE(8)-1 +htons BYTEORDER.3N: 26% BYTEORDER(3N)-1 +Huffman coding COMPRESS.1: 53% COMPRESS(1)-1 +htons() PS1.07a: 58% PS1:7-14 +hunt - a multi-player multi-terminal game HUNT.6: 0% HUNT(6)-1 +HUNT environment variable HUNT.6: 76% unknown +hunt-the-wumpu[s], wump - the game of WUMP.6: 6% WUMP(6)-1 +hushlogin LOGIN.1: 32% LOGIN(1)-1 +hy - Network Systems Hyperchannel interface HY.4: 1% HY(4)-1 +hyper SMM.12A: 97% SMM:12-23 +hyperbolic function[s] SINH.3M: 43% SINH(3M)-1 +Hyperchannel SMM.12A: 98% SMM:12-23 +Hyperchannel, Network Systems HY.4: 1% HY(4)-1 +hyphen USD.24: 24% USD:24-9 +Hyphenation USD.24: 69% USD:24-22 + " USD.24: 10% USD:24-4 +hyphenation, automatic USD.01: 66% USD:1-10 + " USD.24: 69% USD:24-22 + " USD.24: 70% USD:24-22 + " USD.24: 70% USD:24-22 +hypot - Euclidean distance HYPOT.3M: 4% HYPOT(3M)-1 +I Ching CHING.6: 6% CHING(6)-1 +I-node[s] CLRI.8: 20% CLRI(8)-1 + " STAT.2: 47% STAT(2)-2 +i-node entry DIR.5: 10% DIR(5)-1 +i-node number[s] TAR.5: 80% TAR(5)-1 + " USD.10: 89% USD:10-11 +i-node table entry[s] PS2.04: 76% PS2:4-7 + " PS2.04: 77% PS2:4-7 + " PS2.04: 78% PS2:4-7 + " PS2.04: 79% PS2:4-7 + " PS2.04: 84% PS2:4-8 + " PS2.04: 87% PS2:4-9 + " PS2.04: 87% PS2:4-9 + " PS2.04: 88% PS2:4-9 + " PS2.04: 89% PS2:4-9 + " PS2.04: 90% PS2:4-9 + " PS2.05: 18% PS2:5-2 +I/O PS1.02: 32% PS1:2-12 + " PS1.02: 42% PS1:2-14 + " PS1.02: 45% PS1:2-15 + " PS1.02: 47% PS1:2-15 + " PS1.02: 65% PS1:2-22 + " PS1.02: 65% PS1:2-22 + " PS1.02: 71% PS1:2-24 + " PS1.02: 71% PS1:2-24 + " PS1.02: 73% PS1:2-24 + " PS1.02: 73% PS1:2-24 + " PS1.02: 74% PS1:2-24 + " PS1.02: 74% PS1:2-25 + " PS1.02: 74% PS1:2-25 + " PS1.02: 75% PS1:2-25 + " PS1.02: 75% PS1:2-25 + " PS1.02: 75% PS1:2-25 + " PS1.02: 77% PS1:2-25 + " PS1.02: 78% PS1:2-26 + " PS1.02: 80% PS1:2-26 + " PS1.02: 81% PS1:2-26 + " PS1.02: 81% PS1:2-26 + " PS1.02: 81% PS1:2-26 + " PS1.02: 81% PS1:2-26 + " PS1.02: 81% PS1:2-26 + " PS1.02: 81% PS1:2-26 + " PS1.02: 81% PS1:2-26 + " PS1.02: 82% PS1:2-27 + " PS1.02: 82% PS1:2-27 + " PS1.02: 82% PS1:2-27 + " PS1.02: 82% PS1:2-27 + " PS1.03: 3% PS1:3-3 + " PS1.03: 4% PS1:3-3 + " PS1.03: 5% PS1:3-3 + " PS1.03: 7% PS1:3-3 + " PS1.03: 9% PS1:3-3 + " PS1.03: 11% PS1:3-3 + " PS1.03: 14% PS1:3-3 + " PS1.03: 14% PS1:3-3 + " PS1.03: 16% PS1:3-4 + " PS1.03: 35% PS1:3-5 + " PS1.03: 37% PS1:3-5 + " PS1.03: 41% PS1:3-6 + " PS1.03: 42% PS1:3-6 + " PS1.03: 56% PS1:3-7 + " PS1.03: 57% PS1:3-7 + " PS1.03: 63% PS1:3-8 + " PS1.03: 66% PS1:3-8 + " PS1.03: 70% PS1:3-9 + " PS1.03: 70% PS1:3-9 + " PS1.03: 72% PS1:3-9 + " PS1.03: 77% PS1:3-10 + " PS1.07a: 2% PS1:7-1 + " PS1.07a: 4% PS1:7-1 + " PS1.08: 99% PS1:8-41 + " PS2.01: 27% PS2:1-4 + " PS2.01: 27% PS2:1-4 + " PS2.01: 35% PS2:1-6 + " PS2.01: 36% PS2:1-6 + " PS2.01: 43% PS2:1-7 + " PS2.01: 45% PS2:1-7 + " PS2.03: 26% PS2:3-5 + " PS2.03: 27% PS2:3-5 + " PS2.03: 28% PS2:3-5 + " PS2.03: 94% PS2:3-15 + " PS2.04: 41% PS2:4-4 + " PS2.04: 41% PS2:4-4 + " PS2.04: 50% PS2:4-5 + " PS2.04: 57% PS2:4-6 + " PS2.04: 86% PS2:4-8 + " PS2.05: 66% PS2:5-5 + " PS2.05: 67% PS2:5-5 + " PS2.05: 74% PS2:5-5 + " PS2.05: 94% PS2:5-7 + " PS2.06: 62% PS2:6-22 + " PS2.09: 35% PS2:9-63 + " PS2.09: 36% PS2:9-65 +I/O, direct PS1.02: 81% PS1:2-26 +I/O, Fortran PS1.02: 43% PS1:2-15 + " PS1.03: 3% PS1:3-1 + " PS1.03: 66% PS1:3-8 +I/O, Interrupt driven socket PS1.08: 64% PS1:8-26 +I/O, Namelist PS1.02: 24% PS1:2-9 + " PS1.02: 24% PS1:2-9 + " PS1.02: 24% PS1:2-9 + " PS1.02: 28% PS1:2-10 + " PS1.03: 9% PS1:3-3 + " PS1.03: 12% PS1:3-3 + " PS1.03: 14% PS1:3-3 + " PS1.03: 59% PS1:3-7 + " PS1.03: 59% PS1:3-7 +I/O, sequential PS1.02: 47% PS1:2-15 + " PS1.02: 71% PS1:2-24 + " PS1.02: 80% PS1:2-26 + " PS1.02: 80% PS1:2-26 + " PS1.02: 80% PS1:2-26 + " PS1.03: 71% PS1:3-9 +I/O errors PS1.03: 39% PS1:3-6 + " PS1.03: 40% PS1:3-6 + " PS1.04: 47% PS1:4-25 + " PS1.04: 49% PS1:4-26 + " PS2.01: 33% PS2:1-5 +I/O Library PS1.03: 1% PS1:3-1 + " PS1.03: 32% PS1:3-5 + " PS1.03: 41% PS1:3-6 + " PS1.03: 67% PS1:3-8 + " PS1.03: 68% PS1:3-9 + " PS1.03: 85% PS1:3-11 + " PS1.16: 68% PS1:16-9 + " PS2.03: 0% PS2:3-1 + " PS2.03: 0% PS2:3-1 + " PS2.03: 1% PS2:3-1 + " PS2.03: 10% PS2:3-2 + " PS2.03: 10% PS2:3-3 + " PS2.03: 16% PS2:3-3 + " PS2.03: 22% PS2:3-4 + " PS2.03: 64% PS2:3-10 + " PS2.03: 79% PS2:3-13 +I/O Library, f77 PS1.02: 83% PS1:2-27 + " PS1.02: 84% PS1:2-28 + " PS1.03: 0% + " PS1.03: 0% + " PS1.03: 0% PS1:3-1 + " PS1.03: 3% PS1:3-1 + " PS1.03: 15% PS1:3-4 + " PS1.03: 27% PS1:3-4 + " PS1.03: 39% PS1:3-6 + " PS1.03: 51% PS1:3-6 + " PS1.03: 61% PS1:3-8 + " PS1.03: 68% PS1:3-8 + " PS1.03: 74% PS1:3-10 + " PS1.03: 80% PS1:3-10 + " PS1.03: 86% PS1:3-2 +I/O operation[s] PS1.02: 68% PS1:2-23 + " PS1.06: 88% PS1:6-38 + " PS2.04: 67% PS2:4-7 + " PS2.04: 77% PS2:4-7 + " PS2.05: 65% PS2:5-5 +I/O pointer[s] PS2.04: 84% PS2:4-8 + " PS2.04: 85% PS2:4-8 + " PS2.04: 85% PS2:4-8 + " PS2.04: 85% PS2:4-8 + " PS2.04: 86% PS2:4-8 + " PS2.04: 86% PS2:4-8 + " PS2.04: 86% PS2:4-8 + " PS2.04: 89% PS2:4-9 +I/O request[s], asynchronous notification of PS1.08: 65% PS1:8-26 +I/O routine[s] PS1.16: 47% PS1:16-6 + " PS1.16: 90% PS1:16-12 + " PS2.05: 58% PS2:5-4 +I/O statement[s] PS1.03: 15% PS1:3-4 + " PS2.03: 12% PS2:3-3 + " PS2.06: 59% PS2:6-21 + " PS2.06: 78% PS2:6-27 +I/O system PS1.02: 1% + " PS1.02: 2% PS1:2-4 + " PS1.02: 3% PS1:2-4 + " PS1.02: 14% PS1:2-7 + " PS1.02: 44% PS1:2-15 + " PS1.02: 45% PS1:2-15 + " PS1.02: 47% PS1:2-15 + " PS1.02: 68% PS1:2-23 + " PS1.03: 42% PS1:3-6 + " PS1.03: 63% PS1:3-8 + " PS2.03: 41% PS2:3-7 + " PS2.03: 86% PS2:3-14 + " PS2.04: 1% PS2:4-1 + " PS2.04: 40% PS2:4-4 + " PS2.04: 40% PS2:4-4 +I/O system, block PS2.04: 41% PS2:4-4 + " PS2.04: 64% PS2:4-6 + " PS2.05: 70% PS2:5-5 +IBM 360 PS1.02: 34% PS1:2-12 +IBM 370 PS1.02: 34% PS1:2-12 +Id keywords PS1.14: 11% PS1:14-1 + " PS1.14: 12% PS1:14-2 + " PS1.14: 12% PS1:14-2 + " PS1.14: 13% PS1:14-2 + " PS1.14: 14% PS1:14-2 + " PS1.14: 29% PS1:14-4 + " PS1.14: 29% PS1:14-4 + " PS1.14: 32% PS1:14-5 + " PS1.14: 32% PS1:14-5 + " PS1.14: 33% PS1:14-5 + " PS1.14: 33% PS1:14-5 + " PS1.14: 35% PS1:14-5 + " PS1.14: 59% PS1:14-9 + " PS1.14: 60% PS1:14-9 + " PS1.14: 63% PS1:14-9 + " PS1.14: 63% PS1:14-9 + " PS1.14: 91% PS1:14-14 + " PS1.14: 92% PS1:14-14 + " PS1.14: 98% PS1:14-15 +i-number LS.1: 38% LS(1)-1 +i-number[s], ncheck - generate names from NCHECK.8: 4% NCHECK(8)-1 +I-process Buffer[s] USD.17: 47% USD:17-20 + " USD.17: 47% USD:17-20 + " USD.17: 48% USD:17-21 +i-search-forward USD.17: 74% USD:17-35 +i-search-reverse USD.17: 74% USD:17-35 +i-shell USD.17: 75% USD:17-35 +i-shell-command USD.17: 75% USD:17-35 +I/O SMM.12A: 1% SMM:12-2 +I/O, Asynchronous SMM.12A: 60% SMM:12-14 + " DUP.2: 48% DUP(2)-1 +I/O, block SYNC.2: 45% SYNC(2)-1 + " TU.4: 10% TU(4)-1 + " UU.4: 13% UU(4)-1 +I/O, disk SYSTAT.1: 31% SYSTAT(1)-2 + " USD.04: 97% USD:4-44 +I/O, file SMM.02: 91% SMM:2-31 +I/O, fortran GETC.3F: 43% GETC(3F)-1 + " PUTC.3F: 50% PUTC(3F)-1 +I/O, Namelist SMM.12A: 30% SMM:12-7 +I/O, non-blocking READ.2: 80% READ(2)-2 + " SMM.13: 9% SMM:13-4 + " WRITE.2: 86% WRITE(2)-2 + " CONNECT.2: 63% CONNECT(2)-1 + " FCNTL.2: 51% FCNTL(2)-1 + " DUP.2: 47% DUP(2)-1 + " TTY.4: 13% TTY(4)-2 + " WRITE.2: 43% WRITE(2)-1 + " SMM.15: 23% USD:24-2 +i/o, physical PS.1: 84% PS(1)-3 +I/O, raw HK.4: 19% HK(4)-1 + " HK.4: 84% HK(4)-2 + " HP.4: 10% HP(4)-1 + " HP.4: 92% HP(4)-4 + " UDA.4: 21% UDA(4)-1 + " UP.4: 17% UP(4)-1 + " UP.4: 91% UP(4)-3 +I/O activity GETRUSAGE.2: 63% GETRUSAGE(2)-2 + " GETRUSAGE.2: 63% GETRUSAGE(2)-2 + " GETRUSAGE.2: 67% GETRUSAGE(2)-2 +I/O buffer[s] ABORT.3: 88% ABORT(3)-1 + " ABORT.3F: 19% ABORT(3F)-1 + " SMM.01: 8% SMM:1-5 +I/O configuration table[s] SMM.02: 13% SMM:2-5 +I/O counts, raw HP.4: 12% HP(4)-1 + " UDA.4: 23% UDA(4)-1 + " UP.4: 19% UP(4)-1 +I/O device[s] CONFIG.8: 42% CONFIG(8)-1 +I/O device[s], block MKNOD.2: 24% MKNOD(2)-1 +I/O error[s] VHANGUP.2: 64% VHANGUP(2)-1 + " INTRO.2: 9% INTRO(2)-1 +I/O error[s], hard SMM.01: 95% SMM:1-63 + " SMM.13: 91% SMM:13-31 +I/O functions HIER.7: 90% HIER(7)-6 + " SMM.12A: 2% SMM:12-2 +i/o is possible on a descriptor SIGNAL.3C: 33% SIGNAL(3C)-1 +I/O library EXIT.2: 85% EXIT(2)-1 + " SMM.01: 35% SMM:1-23 + " USD.01: 85% USD:1-13 + " SMM.12A: 1% SMM:12-2 + " SMM.12A: 1% SMM:12-2 + " SMM.12A: 27% SMM:12-7 + " SMM.12A: 30% SMM:12-7 + " SMM.12A: 25% SMM:12-6 +I/O Library, f77 SMM.12A: 29% SMM:12-7 +I/O library, standalone FORMAT.8V: 40% FORMAT(8V)-1 +I/O multiplexing, select - synchronous SELECT.2: 1% SELECT(2)-1 +I/O operation[s] HK.4: 18% HK(4)-1 + " HP.4: 9% HP(4)-1 + " HP.4: 82% HP(4)-4 + " MT.4: 78% MT(4)-1 + " SA.8: 35% SA(8)-1 + " SA.8: 37% SA(8)-1 + " SMM.02: 65% SMM:2-20 + " SMM.02: 69% SMM:2-21 + " UDA.4: 20% UDA(4)-1 + " UP.4: 16% UP(4)-1 +I/O redirection[s] CSH.1: 68% CSH(1)-14 + " USD.01: 80% USD:1-12 +i/o request[s] SMM.01: 47% SMM:1-31 +I/O routine[s] STDIO.3S: 50% STDIO(3S)-1 +I/O space MEM.4: 74% MEM(4)-1 + " SMM.15: 47% SMM:15-14 + " SMM.15: 47% SMM:15-14 +I/O statistics, iostat - report IOSTAT.1: 2% IOSTAT(1)-1 +iargc GETARG.3F: 12% GETARG(3F)-1 +ibase USD.06: 21% USD:6-3 +IBM SMM.12A: 52% SMM:12-12 +IBM 3270 keys, map3270 - database for mapping ascii keystrokes into MAP3270.5: 0% MAP3270(5)-1 +IBM 3270 keyboard map MSET.1: 4% MSET(1)-1 +IBM 370 SMM.19: 0% SMM:19-2 +IBM 3740 RX.4: 14% RX(4)-1 + " RXFORMAT.8V: 35% RXFORMAT(8V)-1 +IBM PC USD.09: 83% USD:9-10 + " SMM.13: 71% SMM:13-25 +IBM VM/CM[s], tn3270 - full-screen remote login to TN3270.1: 1% TN3270(1)-1 +Icheck ICHECK.8: 6% ICHECK(8)-1 + " ICHECK.8: 8% ICHECK(8)-1 + " ICHECK.8: 60% ICHECK(8)-1 + " CLRI.8: 31% CLRI(8)-1 + " FSCK.8: 58% FSCK(8)-1 +icheck - file system storage consistency check ICHECK.8: 1% ICHECK(8)-1 +ICMP ICMP.4P: 12% ICMP(4P)-1 + " INET.4F: 40% INET(4F)-1 + " PING.8: 17% PING(8)-1 + " ROUTED.8C: 97% ROUTED(8C)-3 + " SMM.01: 60% SMM:1-38 + " SMM.13: 58% SMM:13-20 + " SMM.13: 64% SMM:13-22 + " SMM.13: 67% SMM:13-23 + " SMM.13: 70% SMM:13-24 + " SMM.13: 70% SMM:13-24 + " SMM.13: 70% SMM:13-24 + " SMM.15: 63% SMM:15-19 +icmp - Internet Control Message Protocol ICMP.4P: 3% ICMP(4P)-1 +ICMP redirect[s] SMM.01: 67% SMM:1-41 + " SMM.02: 97% SMM:2-33 +ICMP routing redirect SMM.01: 66% SMM:1-40 +ICON VGRIND.1: 61% VGRIND(1)-1 + " SMM.12A: 98% SMM:12-23 +ICON node SMM.19: 35% SMM:19-10 + " SMM.19: 37% SMM:19-11 + " SMM.19: 37% SMM:19-11 +id, default group SENDMAIL.8: 60% SENDMAIL(8)-2 + " SMM.07A: 70% SMM:07-30 +id[s], group CHMOD.1: 55% CHMOD(1)-1 + " GETUID.3F: 22% GETUID(3F)-1 + " INTRO.2: 70% INTRO(2)-6 + " INTRO.2: 71% INTRO(2)-6 + " MKDIR.2: 15% MKDIR(2)-1 + " SETREGID.2: 9% SETREGID(2)-1 + " SETUID.3: 42% SETUID(3)-1 + " SETUID.3: 53% SETUID(3)-1 + " SETUID.3: 62% SETUID(3)-1 + " SMM.06: 27% SMM:6-3 + " SMM.17: 36% SMM:17-2 +ID, parent process EXECVE.2: 46% EXECVE(2)-1 + " EXIT.2: 54% EXIT(2)-1 + " FORK.2: 19% FORK(2)-1 + " INTRO.2: 63% INTRO(2)-5 + " INTRO.2: 63% INTRO(2)-5 +id, process CSH.1: 6% CSH(1)-2 + " EXECVE.2: 45% EXECVE(2)-1 + " FCNTL.2: 39% FCNTL(2)-1 + " FCNTL.2: 90% FCNTL(2)-2 + " FORK.2: 16% FORK(2)-1 + " FORK.3F: 30% FORK(3F)-1 + " GETPID.2: 45% GETPID(2)-1 + " GETPID.3F: 22% GETPID(3F)-1 + " INTRO.2: 63% INTRO(2)-5 + " INTRO.2: 64% INTRO(2)-5 + " KILL.2: 80% KILL(2)-1 + " KILL.3F: 37% KILL(3F)-1 + " LEAVE.1: 92% LEAVE(1)-1 + " LOGGER.1: 48% LOGGER(1)-1 + " LPD.8: 85% LPD(8)-2 + " M4.1: 94% M4(1)-2 + " SMM.10: 80% SMM:10-20 + " SMM.11: 84% SMM:11-13 + " SYSLOG.3: 44% SYSLOG(3)-1 + " SYSLOGD.8: 89% SYSLOGD(8)-2 + " USD.11: 93% USD:11-14 + " WAIT.2: 17% WAIT(2)-1 +ID, process group EXECVE.2: 46% EXECVE(2)-1 + " INTRO.2: 64% INTRO(2)-5 + " KILL.2: 57% KILL(2)-1 + " TTY.4: 83% TTY(4)-9 +ID, real EXECVE.2: 39% EXECVE(2)-1 + " SMM.12: 60% SMM:12-1 + " SMM.13: 19% SMM:13-8 + " USD.10: 90% USD:10-11 + " SMM.12A: 60% SMM:12-14 +ID, real group ACCESS.2: 27% ACCESS(2)-1 + " GETGID.2: 35% GETGID(2)-1 + " GETGID.2: 47% GETGID(2)-1 + " INTRO.2: 69% INTRO(2)-6 + " SETREGID.2: 30% SETREGID(2)-1 +ID, real user ACCESS.2: 25% ACCESS(2)-1 + " EXECVE.2: 43% EXECVE(2)-1 + " GETUID.2: 35% GETUID(2)-1 + " GETUID.2: 46% GETUID(2)-1 + " INTRO.2: 67% INTRO(2)-5 + " SETREUID.2: 42% SETREUID(2)-1 + " SETUID.3: 60% SETUID(3)-1 + " SH.1: 33% SH(1)-2 + " SMM.12A: 47% SMM:12-11 + " SMM.12A: 55% SMM:12-13 +ID[s], SCCS INTRO.3F: 22% INTRO(3F)-1 + " SMM.10: 27% SMM:10-8 +id, set user SCCS.1: 5% SCCS(1)-1 + " SCCS.1: 64% SCCS(1)-2 + " SCCS.1: 79% SCCS(1)-2 + " SMM.09: 91% SMM:9-19 +id[s], user SMM.12A: 47% SMM:12-11 + " SMM.12A: 55% SMM:12-13 + " SMM.12A: 60% SMM:12-14 + " SMM.12A: 80% SMM:12-19 + " SETREUID.2: 10% SETREUID(2)-1 + " SETREUID.2: 22% SETREUID(2)-1 + " SMM.13: 10% SMM:13-5 + " QUOTA.2: 10% QUOTA(2)-1 + " QUOTA.2: 54% QUOTA(2)-1 +ID[s], user and group EXECVE.2: 38% EXECVE(2)-1 + " EXECVE.2: 41% EXECVE(2)-1 + " LOGIN.1: 37% LOGIN(1)-1 + " SMM.13: 3% SMM:13-2 + " SMM.13: 9% SMM:13-4 +ID's, process INTRO.2: 74% INTRO(2)-6 + " RENICE.8: 16% RENICE(8)-1 + " RENICE.8: 33% RENICE(8)-1 + " RENICE.8: 46% RENICE(8)-1 +idate, itime - return date or time in numerical form IDATE.3F: 9% unknown +IDC disk[s] SMM.01: 8% SMM:1-5 +ideal picture (alternate form), .IF End USD.23: 54% USD:23-7 +ideal picture, .IE End USD.23: 54% USD:23-7 +ideal picture, .IS Begin USD.23: 54% USD:23-7 +ident - identify file[s] PS1.13: 56% PS1:13-11 +ident - identify files IDENT.N: 4% IDENT(1)-1 +identical files CMP.1: 85% CMP(1)-1 + " RDIST.1: 99% RDIST(1)-4 + " SMM.21: 69% SMM:21-5 +identification, system SMM.02: 2% SMM:2-2 + " SMM.02: 3% SMM:2-2 + " SMM.02: 3% SMM:2-2 + " SMM.09: 27% SMM:9-6 +identifier[s], array USD.06: 64% USD:6-9 + " USD.06: 64% USD:6-9 +identifier[s], process GETPRIORITY.2: 27% GETPRIORITY(2)- +identifier, system SMM.02: 3% SMM:2-2 + " SMM.02: 4% SMM:2-2 + " SMM.02: 4% SMM:2-2 + " SMM.02: 11% SMM:2-4 + " SMM.02: 15% SMM:2-5 + " SMM.02: 21% SMM:2-7 +identifier[s], process PS1.06: 7% PS1:6-6 + " PS1.06: 9% PS1:6-7 +identifier, type PS1.04: 45% PS1:4-24 + " PS1.04: 45% PS1:4-24 + " PS1.04: 99% PS1:4-50 +Identifiers (Names) PS1.01: 1% +identity, user FTP.1C: 89% FTP(1C)-7 + " GETUID.2: 11% GETUID(2)-1 + " RSHD.8C: 32% RSHD(8C)-1 + " RSHD.8C: 36% RSHD(8C)-1 +idle loop SMM.13: 55% SMM:13-19 + " SMM.13: 55% SMM:13-19 + " SMM.13: 55% SMM:13-19 +idle time FINGER.1: 13% FINGER(1)-1 + " FINGER.1: 18% FINGER(1)-1 + " RWHO.1C: 55% RWHO(1C)-1 + " SYSTAT.1: 43% SYSTAT(1)-2 + " SMM.12A: 54% SMM:12-13 +IDP IDP.4P: 6% IDP(4P)-1 + " NS.4F: 10% NS(4F)-1 + " NS.4F: 69% NS(4F)-1 + " NS.4F: 71% NS(4F)-1 + " NS.4F: 79% NS(4F)-2 + " SMM.13: 85% SMM:13-29 +idlok(win, boolf) PS1.18: 38% PS1:18-10 +IDP header[s] PS1.08: 7% PS1:8-3 + " PS1.08: 36% PS1:8-14 + " PS1.08: 87% PS1:8-35 + " PS1.08: 90% PS1:8-37 + " PS1.08: 96% PS1:8-40 +If[s], Block PS1.02: 63% PS1:2-21 + " PS1.02: 63% PS1:2-21 + " PS1.02: 63% PS1:2-21 + " PS1.02: 64% PS1:2-21 + " PS1.02: 64% PS1:2-21 +IF-THEN-ELSE PS1.02: 63% PS1:2-21 +idp - Xerox Internet Datagram Protocol IDP.4P: 1% IDP(4P)-1 +IDP header[s] IDP.4P: 82% IDP(4P)-2 + " IDP.4P: 84% IDP(4P)-2 +IDP packet[s] IDP.4P: 72% IDP(4P)-2 + " SMM.02: 99% SMM:2-33 +IDP socket[s] IDP.4P: 10% IDP(4P)-1 +IEEE 754 FLOOR.3M: 53% FLOOR(3M)-1 +IEEE 754 floating point EXP.3M: 27% EXP(3M)-1 +IEEE standard 754 for Binary Floating-Point Arithmetic INFNAN.3M: 10% INFNAN(3M)-1 + " MATH.3M: 11% MATH(3M)-2 +IEEE standard p854 IEEE.3M: 77% unknown +ierrno PERROR.3F: 3% PERROR(3F)-1 +if - Bourne shell command SH.1: 0% SH(1)-1 +if shell command CSH.1: 57% CSH(1)-12 + " USD.04: 60% USD:4-29 +IF-11 HDH.4: 95% unknown +ifaddr, struct SMM.15: 34% SMM:15-11 + " SMM.15: 35% SMM:15-11 + " SMM.15: 35% SMM:15-11 +Ifconfig IFCONFIG.8C: 4% IFCONFIG(8C)-1 + " IFCONFIG.8C: 6% IFCONFIG(8C)-1 + " IFCONFIG.8C: 92% IFCONFIG(8C)-2 + " HOSTS.5: 46% HOSTS(5)-1 + " SMM.01: 32% SMM:1-21 + " SMM.12A: 86% SMM:12-20 +ifconfig - configure network interface parameters IFCONFIG.8C: 1% IFCONFIG(8C)-1 +ifdef PS1.17: 45% PS1:17-3 +ifelse PS1.17: 80% PS1:17-5 +ifelse(a, b, c, d) PS1.17: 76% PS1:17-5 +ifnet structure SMM.13: 60% SMM:13-21 + " SMM.13: 84% SMM:13-28 + " SMM.15: 46% SMM:15-14 + " SMM.15: 55% SMM:15-16 +IFS variable SMM.12A: 47% SMM:12-11 +Ignore MAIL.1: 45% MAIL(1)-3 + " MAKE.1: 79% MAKE(1)-2 + " MAKE.1: 83% MAKE(1)-2 + " SORT.1: 16% SORT(1)-1 + " MAIL.1: 84% MAIL(1)-6 + " USD.07: 77% USD:7-18 +ifreq, struct PS1.08: 81% PS1:8-33 + " PS1.08: 81% PS1:8-33 + " PS1.08: 82% PS1:8-34 + " PS1.08: 82% PS1:8-34 +ifreq structure[s] PS1.08: 80% PS1:8-32 + " PS1.08: 82% PS1:8-33 + " PS1.08: 82% PS1:8-33 + " PS1.08: 82% PS1:8-33 +IGNORE PS1.12: 48% PS1:12-4 + " PS1.12: 56% PS1:12-5 + " PS2.10: 28% PS2:10-27 +ignore case in searching GREP.1: 30% GREP(1)-1 +ignorecase USD.16: 85% USD:16-16 +ignored signal[s] USD.03: 91% USD:3-22 + " EXECVE.2: 33% EXECVE(2)-1 + " SIGNAL.3C: 47% SIGNAL(3C)-2 +ignoreeof MAIL.1: 85% MAIL(1)-6 + " USD.04: 28% USD:4-13 + " USD.04: 50% USD:4-23 + " USD.04: 82% USD:4-39 + " USD.07: 77% USD:7-18 +ignoreeof shell variable CSH.1: 81% CSH(1)-17 +ik - Ikonas frame buffer, graphics device interface IK.4: 3% IK(4)-1 +il - Interlan NI1010 10 Mb/s Ethernet interface IL.4: 2% IL(4)-1 +Illegal instruction[s] CORE.5: 22% CORE(5)-1 + " SIGNAL.3C: 20% SIGNAL(3C)-1 +illegal memory reference[s] PS2.03: 65% PS2:3-10 + " PS2.09: 20% PS2:9-38 + " PS2.09: 34% PS2:9-62 +illegal operand[s] TRAPOV.3F: 34% TRAPOV(3F)-1 + " TRAPOV.3F: 49% TRAPOV(3F)-1 + " TRAPOV.3F: 67% TRAPOV(3F)-1 + " TRAPOV.3F: 96% TRAPOV(3F)-1 +image[s], binary SMM.01: 80% SMM:1-49 + " SMM.02: 15% SMM:2-5 + " SMM.02: 91% SMM:2-31 +image[s], bootable SMM.02: 15% SMM:2-5 + " SMM.02: 15% SMM:2-5 + " SMM.02: 15% SMM:2-5 +image[s], core PS1.04: 51% PS1:4-26 + " PS1.06: 25% PS1:6-13 + " PS1.10: 10% PS1:10-3 + " PS1.10: 18% PS1:10-4 + " PS2.05: 88% PS2:5-6 + " PS2.05: 95% PS2:5-7 + " PS2.09: 82% PS2:9-132 + " PS1.11a: 14% PS1:11-1 +image, memory PS1.02: 10% PS1:2-6 + " PS1.06: 10% PS1:6-8 + " PS1.06: 23% PS1:6-13 + " PS2.01: 50% PS2:1-7 + " PS2.01: 52% PS2:1-8 + " PS2.01: 72% PS2:1-11 + " PS1.11a: 27% PS1:11-2 + " PS1.11a: 60% PS1:11-4 +Implementation, UNIX PS2.04: 0% + " PS2.04: 0% + " PS2.04: 8% PS2:4-2 + " PS2.04: 17% PS2:4-2 + " PS2.04: 29% PS2:4-4 + " PS2.04: 41% PS2:4-4 + " PS2.04: 53% PS2:4-6 + " PS2.04: 65% PS2:4-6 + " PS2.04: 79% PS2:4-8 + " PS2.04: 87% PS2:4-8 + " PS2.04: 98% PS2:4-10 + " PS2.05: 2% PS2:5-1 +Implicit Declarations PS1.01: 82% PS1:1-28 + " PS2.06: 72% PS2:6-25 + " PS2.09: 20% PS2:9-39 +image[s], executable SMM.01: 72% SMM:1-43 + " SMM.19: 41% SMM:19-12 +image, memory CORE.5: 12% CORE(5)-1 + " CORE.5: 27% CORE(5)-1 + " F77.1: 18% F77(1)-1 + " SMM.16: 38% SMM:16-5 + " SMM.07A: 88% SMM:07-38 +image[s], process CORE.5: 66% CORE(5)-1 + " EXECVE.2: 18% EXECVE(2)-1 + " PSTAT.8: 61% PSTAT(8)-3 +image[s], raster LPD.8: 61% LPD(8)-2 + " LPR.1: 30% LPR(1)-1 + " SMM.06: 52% SMM:6-4 +image[s], system SMM.01: 12% SMM:1-8 + " SMM.01: 40% SMM:1-27 + " SMM.01: 41% SMM:1-27 + " SMM.02: 2% SMM:2-2 + " SMM.02: 9% SMM:2-4 + " SMM.02: 12% SMM:2-5 + " SMM.02: 12% SMM:2-5 + " SMM.02: 15% SMM:2-5 + " SMM.02: 16% SMM:2-5 + " SMM.02: 17% SMM:2-6 + " SMM.02: 17% SMM:2-6 + " SMM.02: 21% SMM:2-6 + " SMM.02: 21% SMM:2-6 + " SMM.02: 25% SMM:2-7 + " SMM.02: 45% SMM:2-14 + " TRPT.8C: 86% TRPT(8C)-1 + " TRSP.8C: 84% TRSP(8c)-1 +image[s], text SMM.13: 23% SMM:13-9 + " SMM.13: 48% SMM:13-17 + " STICKY.8: 37% STICKY(8)-1 +IMAGEN SMM.01: 55% SMM:1-34 + " SMM.06: 3% SMM:6-2 +Imagen laser printer[s] PLOT.1G: 23% PLOT(1G)-1 + " SMM.12A: 43% SMM:12-10 + " SMM.12A: 68% SMM:12-16 + " PLOT.3X: 73% PLOT(3X)-1 +IMP ACC.4: 14% ACC(4)-1 + " ACC.4: 63% ACC(4)-1 + " CSS.4: 15% CSS(4)-1 + " CSS.4: 63% CSS(4)-1 + " DDN.4: 13% DDN(4)-1 + " DDN.4: 66% DDN(4)-1 + " IMP.4: 11% IMP(4)-1 + " IMP.4: 22% IMP(4)-1 + " IMP.4: 46% IMP(4)-1 + " IMP.4: 56% IMP(4)-1 + " IMP.4: 57% IMP(4)-1 + " IMP.4: 59% IMP(4)-1 + " IMP.4: 62% IMP(4)-1 + " IMP.4: 66% IMP(4)-1 + " IMP.4: 74% IMP(4)-1 + " IMP.4: 76% IMP(4)-1 + " IMP.4: 78% IMP(4)-1 + " IMP.4: 88% IMP(4)-1 + " IMP.4: 88% IMP(4)-1 + " IMPLOGD.8C: 18% IMPLOGD(8C)-1 + " IMPLOGD.8C: 50% IMPLOGD(8C)-1 + " IMPLOGD.8C: 69% IMPLOGD(8C)-1 + " IMPLOGD.8C: 82% IMPLOGD(8C)-1 + " NETSTAT.1: 99% NETSTAT(1)-2 + " ROUTED.8C: 97% ROUTED(8C)-3 + " SMM.02: 44% SMM:2-13 + " SMM.13: 81% SMM:13-27 + " SMM.13: 81% SMM:13-28 + " SOCKET.2: 14% SOCKET(2)-1 + " SOCKET.2: 15% SOCKET(2)-1 +imp - 1822 network interface IMP.4: 1% IMP(4)-1 +imp - IMP raw socket interface IMP.4P: 2% IMP(4P)-1 +IMP host table NETSTAT.1: 23% NETSTAT(1)-1 +IMP interface[s] ACC.4: 23% ACC(4)-1 + " CSS.4: 24% CSS(4)-1 + " DDN.4: 4% DDN(4)-1 + " HDH.4: 27% HDH(4)-1 + " IMP.4: 3% IMP(4)-1 + " SMM.13: 1% SMM:13-2 + " SMM.13: 89% SMM:13-30 + " CSS.4: 4% CSS(4)-1 +IMP support SMM.13: 81% SMM:13-27 +IMP support code, /sys/netimp SMM.01: 39% SMM:1-26 +imperative sentence[s] USD.32: 13% USD:32-3 + " USD.32: 13% USD:32-3 + " USD.32: 25% USD:32-4 + " USD.32: 59% USD:32-9 + " USD.32: 68% USD:32-10 + " USD.32: 68% USD:32-10 +implicit statement[s] PS1.02: 14% PS1:2-7 + " PS1.02: 15% PS1:2-7 + " PS1.02: 54% PS1:2-18 + " PS1.02: 54% PS1:2-18 + " PS2.06: 73% PS2:6-25 + " PS2.06: 73% PS2:6-25 +IMSL library PS1.02: 39% PS1:2-13 +INADDR_ANY PS1.07a: 48% PS1:7-11 + " PS1.07a: 54% PS1:7-12 + " PS1.07a: 70% PS1:7-16 + " PS1.07a: 73% PS1:7-17 + " PS1.08: 55% PS1:8-22 + " PS1.08: 74% PS1:8-30 + " PS1.08: 74% PS1:8-30 + " PS1.08: 79% PS1:8-32 +implog SMM.12A: 86% SMM:12-20 +implog - IMP log interpreter IMPLOG.8C: 3% IMPLOG(8C)-1 +implogd - IMP logger process IMPLOGD.8C: 5% IMPLOGD(8C)-1 +imprecise citation[s] USD.31: 1% USD:31-1 + " USD.31: 2% USD:31-1 + " USD.31: 2% USD:31-1 + " USD.31: 3% USD:31-1 + " USD.31: 3% USD:31-1 + " USD.31: 5% USD:31-1 + " USD.31: 18% USD:31-3 +IMSL and NAG mathematical library[s] SMM.12A: 18% SMM:12-5 +IN-ADDR SMM.11: 36% SMM:11-5 + " SMM.11: 36% SMM:11-5 + " SMM.11: 37% SMM:11-5 + " SMM.11: 60% SMM:11-8 +In-line Equation[s], Shorthand for USD.27: 65% USD:27-7 +In-reply-to MH-MAIL.N: 77% MH-MAIL(5)-2 +In-Reply-To: USD.08: 68% USD:8-83 +inc - incorporate new mail INC.N: 0% INC(1)-1 + " USD.08: 23% USD:8-26 +inch() PS1.18: 49% PS1:18-14 +inch, 1/432 USD.24: 19% USD:24-8 + " USD.25: 37% USD:25-6 + " USD.25: 68% USD:25-10 +Inclusion SMM.16: 45% SMM:16-6 + " SMM.16: 45% SMM:16-6 + " SMM.16: 48% SMM:16-7 + " SMM.16: 48% SMM:16-7 +include(filename) PS1.17: 63% PS1:17-4 +incoming connections LISTEN.2: 20% LISTEN(2)-1 + " LISTEN.2: 23% LISTEN(2)-1 + " SMM.13: 85% SMM:13-29 + " SMM.15: 17% SMM:15-6 + " SMM.15: 26% SMM:15-8 + " SPP.4P: 19% SPP(4P)-1 + " TCP.4P: 27% TCP(4P)-1 +incoming connection requests SMM.15: 51% SMM:15-15 + " SPP.4P: 22% SPP(4P)-1 + " TCP.4P: 31% TCP(4P)-1 + " TCP.4P: 70% TCP(4P)-1 +incoming message[s] INET.4F: 28% INET(4F)-1 + " MHOOK.N: 75% MHOOK(1)-3 + " MHOOK.N: 77% MHOOK(1)-3 + " NS.4F: 56% NS(4F)-1 + " RECV.2: 48% RECV(2)-1 + " SMM.16: 60% SMM:16-8 + " USD.07: 1% USD:7-2 + " USD.08: 4% USD:8-4 + " USD.08: 34% USD:8-37 + " USD.08: 34% USD:8-37 + " USD.08: 45% USD:8-54 + " SMM.07A: 43% SMM:07-20 + " SMM.07A: 70% SMM:07-30 +incoming news SMM.10: 57% SMM:10-15 + " SMM.10: 59% SMM:10-15 + " SMM.10: 80% SMM:10-20 + " SMM.10: 83% SMM:10-20 + " SMM.10: 83% SMM:10-20 + " SMM.10: 84% SMM:10-20 +Incoming packet[s] ICMP.4P: 52% ICMP(4P)-1 + " INTRO.4N: 87% INTRO(4N)-3 + " IP.4P: 51% IP(4P)-1 + " IP.4P: 56% IP(4P)-1 + " IP.4P: 62% IP(4P)-1 + " ROUTED.8C: 32% ROUTED(8C)-1 + " SMM.13: 67% SMM:13-23 + " SMM.13: 67% SMM:13-23 + " SMM.15: 67% SMM:15-20 + " SMM.15: 67% SMM:15-20 + " SMM.15: 88% SMM:15-25 + " SMM.15: 88% SMM:15-25 + " SMM.15: 93% SMM:15-26 + " XNSROUTED.8C: 66% XNSROUTED(8C)-1 +incremental dump[s] DUMP.5: 95% DUMP(5)-2 + " RESTORE.8: 12% RESTORE(8)-1 + " SMM.01: 76% SMM:1-46 +incremental search USD.17: 19% USD:17-9 + " USD.17: 19% USD:17-9 + " USD.17: 20% USD:17-9 + " USD.17: 74% USD:17-35 + " USD.17: 74% USD:17-35 + " USD.17: 90% USD:17-44 +incremental tape RESTORE.8: 14% RESTORE(8)-1 +Indent[s] LPD.8: 70% LPD(8)-2 + " USD.24: 42% USD:24-14 + " USD.20: 52% USD:20-4 + " USD.22: 19% USD:22-3 + " USD.25: 24% USD:25-4 + " SMM.12A: 34% SMM:12-8 +indent, base USD.23: 15% USD:23-2 + " USD.23: 17% USD:23-3 + " USD.23: 30% USD:23-4 + " USD.23: 33% USD:23-4 + " USD.23: 55% USD:23-7 + " USD.23: 55% USD:23-7 +indent, footnote MS.7: 79% MS(7)-3 +Indent, no break, .ix USD.23: 48% USD:23-6 +indent, paragraph USD.22: 55% USD:22-10 + " USD.23: 3% USD:23-1 + " USD.23: 4% USD:23-1 + " USD.24: 88% USD:24-29 + " USD.25: 49% USD:25-8 + " MS.7: 78% MS(7)-3 +indent, quote MS.7: 78% MS(7)-3 +indent, Set prevailing MAN.7: 50% MAN(7)-1 + " MAN.7: 63% MAN(7)-1 + " MAN.7: 65% MAN(7)-1 +indent, Temporary USD.24: 42% USD:24-14 + " USD.22: 20% USD:22-4 + " USD.25: 27% USD:25-5 +indent - indent and format C program source INDENT.1: 2% INDENT(1)-1 +Indentation Command[s] USD.17: 48% USD:17-21 +Indentation Command, Text USD.17: 26% USD:17-12 +indentations of program[s] USD.17: 0% USD:17-1 +indented paragraph[s] USD.22: 53% USD:22-10 + " USD.23: 11% USD:23-2 + " USD.20: 32% USD:20-3 +indenting USD.20: 7% USD:20-1 + " USD.24: 7% USD:24-3 +INDEX[s] USD.22: 43% USD:22-8 +index, .xp print USD.23: 39% USD:23-5 +Index, Automated Readability USD.32: 16% USD:32-3 + " USD.32: 18% USD:32-3 + " USD.32: 22% USD:32-4 +index, function USD.19: 48% USD:19-4 + " CTAGS.1: 27% CTAGS(1)-1 + " VGRIND.1: 39% VGRIND(1)-1 +index, secondary PS2.10: 1% PS2:10-3 + " PS2.10: 6% PS2:10-8 + " PS2.10: 6% PS2:10-8 + " PS2.10: 12% PS2:10-15 + " PS2.10: 14% PS2:10-16 + " PS2.10: 14% PS2:10-17 + " PS2.10: 65% PS2:10-56 + " PS2.10: 70% PS2:10-60 + " PS2.10: 70% PS2:10-60 + " PS2.10: 70% PS2:10-60 + " PS2.10: 70% PS2:10-61 + " PS2.10: 83% PS2:10-76 + " PS2.10: 84% PS2:10-76 + " PS2.10: 92% PS2:10-82 + " PS2.10: 92% PS2:10-82 +index - create a secondary index on an existing relation PS2.10: 14% PS2:10-16 +index number[s] PS1.07a: 18% PS1:7-4 + " PS2.01: 37% PS2:1-6 +index(s1, s2) PS1.17: 84% PS1:17-5 +index[s], inverted INVERT.N: 2% INVERT(1)-1 + " INVERT.N: 5% INVERT(1)-1 + " INVERT.N: 7% INVERT(1)-1 + " LOOKBIB.1: 9% LOOKBIB(1)-1 + " LOOKBIB.1: 48% LOOKBIB(1)-1 + " USD.29: 52% USD:29-5 + " USD.29: 53% USD:29-5 + " USD.29: 55% USD:29-6 + " USD.30: 13% USD:30-2 + " USD.30: 26% USD:30-3 + " USD.31: 7% USD:31-2 +Index, Making an USD.29: 52% USD:29-5 +index, permuted PTX.1: 6% PTX(1)-1 + " USD.01: 75% USD:1-11 +index, print USD.22: 75% USD:22-14 + " USD.23: 39% USD:23-5 +index, ptx - permuted PTX.1: 2% PTX(1)-1 +index[s], readability STYLE.1: 64% STYLE(1)-1 + " STYLE.1: 80% STYLE(1)-1 + " USD.32: 6% USD:32-2 + " USD.32: 22% USD:32-4 + " USD.32: 6% USD:32-2 + " USD.32: 15% USD:32-3 + " USD.32: 15% USD:32-3 + " USD.32: 15% USD:32-3 +indexes, rindexes, lnblnks, len - tell about character object INDEX.3F: 5% INDEX(3F)-1 +index, system INVERT.N: 29% INVERT(1)-1 + " INVERT.N: 30% INVERT(1)-1 + " USD.31: 11% USD:31-2 + " USD.31: 11% USD:31-2 +index - string operation STRING.3: 7% STRING(3)-1 +index entry[s] MS.7: 62% MS(7)-2 + " USD.22: 44% USD:22-8 + " USD.22: 46% USD:22-9 + " USD.22: 47% USD:22-9 + " USD.22: 71% USD:22-13 + " USD.22: 82% USD:22-16 + " USD.22: 83% USD:22-16 + " USD.23: 38% USD:23-5 + " USD.23: 39% USD:23-5 + " USD.23: 65% USD:23-8 + " USD.22: 44% USD:22-8 +index entry, .(x Begin USD.23: 38% USD:23-5 +index entry, .)x End USD.23: 39% USD:23-5 +index file[s] INVERT.N: 64% INVERT(1)-1 + " LOOKBIB.1: 72% LOOKBIB(1)-1 +index page USD.11: 22% USD:11-4 + " USD.11: 23% USD:11-4 + " USD.11: 23% USD:11-4 + " USD.11: 27% USD:11-4 + " USD.11: 29% USD:11-5 + " USD.11: 29% USD:11-5 + " USD.11: 29% USD:11-5 + " USD.11: 33% USD:11-5 + " USD.11: 45% USD:11-7 + " USD.11: 51% USD:11-8 + " USD.11: 56% USD:11-9 + " USD.11: 56% USD:11-9 + " USD.11: 56% USD:11-9 + " USD.11: 63% USD:11-10 + " USD.11: 66% USD:11-10 + " USD.11: 71% USD:11-11 + " USD.11: 72% USD:11-11 +indicator[s], scale USD.24: 12% USD:24-5 + " USD.24: 20% USD:24-8 + " USD.25: 68% USD:25-10 + " USD.25: 68% USD:25-10 + " USD.25: 69% USD:25-10 +indices, secondary PS2.10: 12% PS2:10-15 + " PS2.10: 14% PS2:10-17 + " PS2.10: 14% PS2:10-17 + " PS2.10: 14% PS2:10-17 + " PS2.10: 14% PS2:10-17 + " PS2.10: 14% PS2:10-17 + " PS2.10: 14% PS2:10-17 + " PS2.10: 14% PS2:10-17 + " PS2.10: 24% PS2:10-23 + " PS2.10: 71% PS2:10-62 + " PS2.10: 92% PS2:10-82 +indirect block[s] ICHECK.8: 25% ICHECK(8)-1 + " LS.1: 88% LS(1)-2 + " SMM.05: 9% SMM:5-3 +indxbib USD.29: 4% USD:29-1 + " USD.29: 52% USD:29-5 +indxbib - build inverted index for a bibliography LOOKBIB.1: 2% LOOKBIB(1)-1 +inet - Internet protocol family INET.4F: 1% INET(4F)-1 +Inetd[s] SMM.12A: 87% SMM:12-20 + " COMSAT.8C: 26% COMSAT(8C)-1 + " SMM.12A: 87% SMM:12-20 +inetd PS1.08: 44% PS1:8-17 + " PS1.08: 97% PS1:8-41 +inetd - internet ``super-server'' INETD.8: 1% INETD(8)-1 +inet_addrs, inet_networks, inet_ntoas, inet_makeaddrs, ... INET.3N: 1% INET(3N)-1 +inet_makeaddr SMM.12A: 66% SMM:12-15 +INFINITY[s] INFNAN.3M: 9% INFNAN(3M)-1 +infinite loop[s] PS1.04: 49% PS1:4-26 + " PS1.04: 71% PS1:4-36 + " PS2.08: 54% PS2:8-8 + " PS2.09: 43% PS2:9-78 +Information, Terminal PS1.18: 25% PS1:18-7 +infnan INTRO.3: 10% INTRO(3)-1 +infnan - signals invalid floating-point operations on a VAX ... INFNAN.3M: 1% INFNAN(3M)-1 +Informational message[s] SYSLOG.3: 31% SYSLOG(3)-1 +Ingres database system SMM.01: 23% SMM:1-17 +INIT SMM.12A: 87% SMM:12-20 +information, tracing PS1.11a: 79% PS1:11-6 +information about general features of UNIX PS1.04: 2% PS1:4-2 +information about whether pages are core resident PS1.06: 20% PS1:6-12 +INGRES PS2.10: 0% PS2:10-2 + " PS2.10: 0% PS2:10-2 + " PS2.10: 0% PS2:10-2 + " PS2.10: 0% PS2:10-3 + " PS2.10: 1% PS2:10-3 + " PS2.10: 1% PS2:10-4 + " PS2.10: 2% PS2:10-4 + " PS2.10: 2% PS2:10-4 + " PS2.10: 3% PS2:10-4 + " PS2.10: 3% PS2:10-6 + " PS2.10: 3% PS2:10-6 + " PS2.10: 3% PS2:10-6 + " PS2.10: 3% PS2:10-6 + " PS2.10: 4% PS2:10-6 + " PS2.10: 9% PS2:10-10 + " PS2.10: 13% PS2:10-16 + " PS2.10: 17% PS2:10-19 + " PS2.10: 21% PS2:10-22 + " PS2.10: 26% PS2:10-26 + " PS2.10: 26% PS2:10-26 + " PS2.10: 26% PS2:10-26 + " PS2.10: 28% PS2:10-27 + " PS2.10: 28% PS2:10-27 + " PS2.10: 30% PS2:10-29 + " PS2.10: 30% PS2:10-29 + " PS2.10: 34% PS2:10-32 + " PS2.10: 39% PS2:10-34 + " PS2.10: 44% PS2:10-37 + " PS2.10: 47% PS2:10-40 + " PS2.10: 53% PS2:10-47 + " PS2.10: 54% PS2:10-47 + " PS2.10: 55% PS2:10-48 + " PS2.10: 56% PS2:10-50 + " PS2.10: 58% PS2:10-51 + " PS2.10: 60% PS2:10-52 + " PS2.10: 62% PS2:10-54 + " PS2.10: 63% PS2:10-54 + " PS2.10: 63% PS2:10-56 + " PS2.10: 65% PS2:10-56 + " PS2.10: 65% PS2:10-56 + " PS2.10: 66% PS2:10-56 + " PS2.10: 66% PS2:10-57 + " PS2.10: 66% PS2:10-57 + " PS2.10: 68% PS2:10-60 + " PS2.10: 68% PS2:10-60 + " PS2.10: 73% PS2:10-63 + " PS2.10: 77% PS2:10-68 + " PS2.10: 79% PS2:10-70 + " PS2.10: 79% PS2:10-70 + " PS2.10: 90% PS2:10-80 + " PS2.10: 92% PS2:10-82 + " PS2.10: 93% PS2:10-83 +INGRE[s], quel - QUEry Language for PS2.10: 34% PS2:10-32 +ingres - INGRES relational data base management system PS2.10: 63% PS2:10-56 +INGRES error[s] PS2.10: 2% PS2:10-4 + " PS2.10: 75% PS2:10-66 + " PS2.10: 77% PS2:10-69 +INGRES error[s], .../files/error7_? - files with PS2.10: 75% PS2:10-66 +INGRES error message[s] PS2.10: 82% PS2:10-74 +INGRES login message, .../files/dayfile7 - PS2.10: 73% PS2:10-64 +INGRES superuser PS2.10: 54% PS2:10-47 + " PS2.10: 55% PS2:10-48 + " PS2.10: 55% PS2:10-49 + " PS2.10: 56% PS2:10-49 + " PS2.10: 64% PS2:10-56 + " PS2.10: 67% PS2:10-59 + " PS2.10: 67% PS2:10-59 + " PS2.10: 68% PS2:10-59 + " PS2.10: 68% PS2:10-59 + " PS2.10: 68% PS2:10-60 + " PS2.10: 69% PS2:10-60 + " PS2.10: 71% PS2:10-62 + " PS2.10: 81% PS2:10-74 +init - process control initialization INIT.8: 1% INIT(8)-1 +init process INIT.8: 56% INIT(8)-1 + " INIT.8: 77% INIT(8)-1 + " SMM.01: 53% SMM:1-33 +initgroups - initialize group access list INITGROUPS.3: 6% INITGROUPS(3)-1 +initial blanks SED.1: 39% SED(1)-1 + " USD.24: 50% USD:24-16 +initial value[s] DBX.5: 20% DBX(5)-1 +Initialization TERMCAP.5: 74% TERMCAP(5)-11 +initial value[s] PS1.01: 55% PS1:1-18 + " PS1.01: 56% PS1:1-18 + " PS1.02: 21% PS1:2-8 + " PS2.06: 45% PS2:6-16 + " PS2.09: 32% PS2:9-59 + " PS2.09: 45% PS2:9-81 + " PS2.09: 46% PS2:9-81 + " PS2.09: 46% PS2:9-81 + " PS2.09: 46% PS2:9-81 + " PS2.09: 46% PS2:9-82 + " PS2.09: 46% PS2:9-82 + " PS2.09: 46% PS2:9-82 + " PS2.09: 66% PS2:9-112 +initial value specification PS2.06: 39% PS2:6-14 + " PS2.06: 45% PS2:6-16 + " PS2.06: 46% PS2:6-16 +Initialization PS1.01: 21% PS1:1-7 + " PS1.01: 39% PS1:1-12 + " PS1.01: 43% PS1:1-14 + " PS1.01: 55% PS1:1-18 + " PS2.01: 76% PS2:1-12 +initialization file[s] PS2.10: 29% PS2:10-29 + " PS2.10: 29% PS2:10-29 + " PS2.10: 30% PS2:10-29 + " PS2.10: 72% PS2:10-63 + " PS2.10: 81% PS2:10-74 +initialization, init - process control INIT.8: 1% INIT(8)-1 +initialization, system SMM.01: 39% SMM:1-26 +initialization, tset - terminal dependent TSET.1: 0% TSET(1)-1 +initialization file[s] JOVE.N: 68% JOVE(1)-2 + " JOVE.N: 71% JOVE(1)-2 + " RESOLVER.3: 50% RESOLVER(3)-2 + " USD.17: 55% USD:17-24 + " USD.17: 93% USD:17-45 + " USD.17: 93% USD:17-45 +initialization procedure[s] SMM.15: 28% SMM:15-9 + " SMM.12A: 33% SMM:12-8 +initialization process CRASH.8V: 29% CRASH(8V)-1 + " CRON.8: 26% CRON(8)-1 + " EXIT.2: 64% EXIT(2)-1 + " WAIT.2: 70% WAIT(2)-1 + " INTRO.2: 74% INTRO(2)-6 + " VHANGUP.2: 18% VHANGUP(2)-1 +initialize tty line characteristics GETTTYENT.3: 47% GETTTYENT(3)-1 +initialized data A_OUT.5: 7% A.OUT(5)-1 +initialized variables CC.1: 34% CC(1)-1 +initscr() PS1.18: 15% PS1:18-5 + " PS1.18: 50% PS1:18-14 +initstate[s], setstate - routines for changing random number ... RANDOM.3: 2% RANDOM(3)-1 +inline expansion of call[s] SMM.13: 3% SMM:13-2 +inmax FLMIN.3F: 9% FLMIN(3F)-1 +INODE[s] DUMP.5: 41% DUMP(5)-2 + " FS.5: 75% FS(5)-3 + " FS.5: 96% + " FSCK.8: 80% FSCK(8)-2 + " NEWFS.8: 69% NEWFS(8)-1 + " SMM.05: 8% SMM:5-3 + " SMM.14: 49% SMM:14-8 + " SMM.14: 86% SMM:14-13 +inode table PS2.05: 12% PS2:5-2 + " PS2.05: 14% PS2:5-2 + " PS2.05: 15% PS2:5-2 + " PS2.05: 15% PS2:5-2 +inode, Checking the data associated with an SMM.05: 35% SMM:5-7 +inode, directory SMM.05: 29% SMM:5-6 +inodes, free CREAT.2: 66% CREAT(2)-1 + " SMM.05: 27% SMM:5-6 + " SMM.05: 27% SMM:5-6 + " SMM.14: 50% SMM:14-8 +inodes, quota of CREAT.2: 78% CREAT(2)-2 +inode, root FS.5: 55% FS(5)-2 + " FS.5: 56% FS(5)-2 +inode - format of file system FS.5: 0% FS(5)-1 +Inode data size SMM.05: 33% SMM:5-7 +Inode links SMM.05: 29% SMM:5-6 +inode list SMM.05: 29% SMM:5-6 + " SMM.05: 32% SMM:5-7 + " SMM.05: 37% SMM:5-8 +inode number[s] DIR.5: 27% DIR(5)-1 + " FIND.1: 58% FIND(1)-1 + " FSCK.8: 80% FSCK(8)-2 + " FSCK.8: 88% FSCK(8)-2 + " RESTORE.8: 32% RESTORE(8)-1 + " RESTORE.8: 49% RESTORE(8)-2 + " RESTORE.8: 62% RESTORE(8)-2 + " SMM.05: 36% SMM:5-7 + " SMM.05: 37% SMM:5-8 + " SMM.05: 37% SMM:5-8 + " SMM.05: 37% SMM:5-8 + " SMM.05: 37% SMM:5-8 + " SMM.14: 76% SMM:14-11 + " SMM.14: 78% SMM:14-12 + " STAT.2: 98% STAT(2)-3 + " FIND.1: 44% FIND(1)-1 +inode state, Checking the SMM.05: 27% SMM:5-6 +inode table PSTAT.8: 6% PSTAT(8)-1 + " SMM.13: 45% SMM:13-16 +inodes, number of free DF.1: 77% +inodes, number of used DF.1: 73% +input, file PS1.04: 63% PS1:4-32 + " PS1.04: 68% PS1:4-35 + " PS1.04: 87% PS1:4-44 +input, Scattering of data on PS1.06: 53% PS1:6-25 +Input, Standard PS1.07a: 18% PS1:7-4 +input, free form EFL.1: 44% EFL(1)-1 + " RATFOR.1: 62% RATFOR(1)-1 + " USD.01: 89% USD:1-13 + " USD.26: 32% USD:26-3 +input, pending TTY.4: 3% TTY(4)-1 + " TTY.4: 26% TTY(4)-3 + " TTY.4: 39% TTY(4)-4 +input, read, readv - read READ.2: 1% READ(2)-1 +input, redirecting USD.04: 19% USD:4-9 + " WINDOW.1: 3% WINDOW(1)-1 +input, shell CSH.1: 31% CSH(1)-6 + " CSH.1: 40% CSH(1)-8 + " SH.1: 48% SH(1)-3 + " SH.1: 93% SH(1)-6 + " USD.03: 1% USD:3-1 + " USD.03: 87% USD:3-21 + " USD.03: 92% USD:3-22 +Input, Standard USD.24: 11% USD:24-5 + " USD.24: 77% USD:24-24 + " RCS.N: 74% RCS(1)-2 + " RCS.N: 79% RCS(1)-2 + " CSH.1: 34% CSH(1)-7 + " CSH.1: 40% CSH(1)-8 + " CSH.1: 44% CSH(1)-9 + " FORK.2: 44% FORK(2)-1 + " GETS.3S: 29% GETS(3S)-1 + " STDIO.3S: 19% STDIO(3S)-1 +input, std. PS1.13: 33% PS1:13-6 + " PS1.13: 34% PS1:13-6 + " PS1.13: 70% PS1:13-14 + " PS1.13: 70% PS1:13-14 +input, Terminal PS1.06: 89% PS1:6-38 + " PS1.06: 90% PS1:6-38 + " PS1.08: 68% PS1:8-27 + " PS2.04: 7% PS2:4-1 +input, terminal CSH.1: 48% CSH(1)-9 + " TTY.4: 18% TTY(4)-2 + " TTY.4: 20% TTY(4)-3 + " TTY.4: 27% TTY(4)-3 + " USD.04: 76% USD:4-37 +input, text USD.15: 51% USD:15-15 + " USD.20: 13% USD:20-2 + " USD.24: 51% USD:24-17 +Input and Output Convention[s] USD.24: 9% USD:24-4 +input buffer[s] GETSOCKOPT.2: 78% GETSOCKOPT(2)-2 + " SMM.13: 88% SMM:13-30 +input default BIB.N: 8% BIB(1)-1 + " GREP.1: 8% GREP(1)-1 + " LEX.1: 16% LEX(1)-1 + " SED.1: 3% SED(1)-1 + " STRUCT.1: 8% STRUCT(1)-1 + " TC.1: 12% TC(1)-1 +input editing TTY.4: 10% TTY(4)-2 + " TTY.4: 11% TTY(4)-2 + " TTY.4: 15% TTY(4)-2 + " TTY.4: 72% TTY(4)-7 +input field[s] SCANF.3S: 24% SCANF(3S)-1 + " SCANF.3S: 27% SCANF(3S)-1 + " SCANF.3S: 31% SCANF(3S)-1 + " SCANF.3S: 44% SCANF(3S)-1 + " SCANF.3S: 65% SCANF(3S)-2 + " SCANF.3S: 68% SCANF(3S)-2 + " USD.19: 65% USD:19-5 +input filter POPEN.3: 81% POPEN(3)-1 + " POPEN.3: 57% POPEN(3)-1 +Input from file[s] USD.04: 8% USD:4-5 +input item[s] SCANF.3S: 80% SCANF(3S)-2 + " SCANF.3S: 81% SCANF(3S)-2 +input line number in the current input file USD.24: 79% USD:24-25 +input mode[s] ED.1: 6% ED(1)-1 + " ED.1: 7% ED(1)-1 + " USD.14: 68% USD:14-17 + " USD.15: 58% USD:15-16 + " USD.15: 58% USD:15-17 + " USD.15: 69% USD:15-20 + " USD.15: 69% USD:15-20 + " USD.15: 79% USD:15-22 + " USD.15: 80% USD:15-22 + " USD.15: 83% USD:15-23 + " USD.15: 83% USD:15-23 + " USD.15: 89% USD:15-25 + " USD.16: 28% USD:16-5 +input packet[s] SMM.13: 77% SMM:13-26 + " SMM.13: 79% SMM:13-27 + " SMM.15: 81% SMM:15-23 +input processing BK.4: 66% BK(4)-1 +input queue[s] PSTAT.8: 66% PSTAT(8)-3 + " PSTAT.8: 68% PSTAT(8)-3 + " SMM.15: 61% SMM:15-18 + " TTY.4: 43% TTY(4)-4 + " TTY.4: 72% TTY(4)-7 + " TTY.4: 73% TTY(4)-7 + " TTY.4: 79% TTY(4)-8 +input record[s] BK.4: 72% BK(4)-1 + " BK.4: 72% BK(4)-1 + " DD.1: 22% DD(1)-1 + " DD.1: 41% DD(1)-1 + " USD.19: 15% USD:19-2 + " USD.19: 16% USD:19-2 +input silos DH.4: 54% DH(4)-1 + " DMF.4: 43% DMF(4)-1 + " DMZ.4: 46% DMZ(4)-1 + " DZ.4: 60% DZ(4)-1 + " SMM.13: 15% SMM:13-6 +input speed GETTYTAB.5: 29% GETTYTAB(5)-2 +input stream M4.1: 27% M4(1)-1 + " SMM.19: 31% SMM:19-9 + " UNGETC.3S: 12% UNGETC(3S)-1 + " UNGETC.3S: 32% UNGETC(3S)-1 + " FREAD.3S: 38% FREAD(3S)-1 + " GETC.3S: 24% GETC(3S)-1 +input table entry USD.28: 33% USD:28-5 + " USD.28: 34% USD:28-5 + " USD.28: 34% USD:28-5 +input text ED.1: 43% ED(1)-3 + " USD.15: 95% USD:15-27 + " USD.16: 28% USD:16-5 + " USD.16: 30% USD:16-6 + " USD.18: 19% USD:18-2 + " USD.20: 17% USD:20-2 + " USD.24: 35% USD:24-12 + " USD.25: 56% USD:25-9 +input text line[s] USD.24: 33% USD:24-12 + " USD.24: 35% USD:24-12 + " USD.24: 36% USD:24-12 +input-line-count trap USD.24: 47% USD:24-16 + " USD.24: 51% USD:24-17 +input/output, fread, fwrite - buffered binary FREAD.3S: 5% FREAD(3S)-1 +Input/output redirection[s] CSH.1: 29% CSH(1)-6 + " CSH.1: 58% CSH(1)-12 + " SH.1: 67% SH(1)-4 + " USD.03: 6% USD:3-2 + " USD.03: 85% USD:3-21 + " SH.1: 44% SH(1)-3 +INSERT[s] USD.15: 90% USD:15-25 + " USD.16: 38% USD:16-7 +input[s], user PS1.18: 3% PS1:18-3 +input buffer PS1.08: 61% PS1:8-24 + " PS2.09: 41% PS2:9-72 + " PS2.09: 49% PS2:9-87 +input character[s] PS1.04: 58% PS1:4-30 + " PS1.04: 58% PS1:4-30 + " PS1.04: 58% PS1:4-30 + " PS1.04: 58% PS1:4-30 + " PS1.06: 30% PS1:6-14 + " PS1.06: 91% PS1:6-38 + " PS1.15: 54% PS1:15-16 + " PS1.16: 47% PS1:16-6 + " PS1.16: 58% PS1:16-7 + " PS2.03: 4% PS2:3-2 + " PS2.03: 91% PS2:3-15 + " PS2.08: 45% PS2:8-7 +input file PS1.01: 82% PS1:1-28 + " PS1.04: 34% PS1:4-19 + " PS1.04: 39% PS1:4-21 + " PS2.01: 75% PS2:1-12 + " PS2.01: 75% PS2:1-12 + " PS2.03: 81% PS2:3-13 + " PS2.10: 56% PS2:10-50 + " PS2.10: 57% PS2:10-50 + " PS2.10: 66% PS2:10-56 +Input Functions PS1.18: 43% PS1:18-12 +input item[s] PS1.15: 1% PS1:15-1 + " PS2.03: 91% PS2:3-15 + " PS2.03: 91% PS2:3-15 +input language PS1.15: 0% PS1:15-1 + " PS1.15: 0% PS1:15-1 + " PS2.08: 88% PS2:8-12 +input list[s] PS1.03: 13% PS1:3-3 + " PS2.06: 26% PS2:6-10 +input pointer PS1.03: 36% PS1:3-5 + " PS1.16: 57% PS1:16-7 +input record PS1.02: 22% PS1:2-9 + " PS1.03: 72% PS1:3-9 + " PS1.06: 90% PS1:6-38 +input stream PS1.04: 79% PS1:4-41 + " PS1.16: 0% PS1:16-1 + " PS1.16: 1% PS1:16-1 + " PS1.16: 2% PS1:16-1 + " PS1.16: 2% PS1:16-1 + " PS1.16: 4% PS1:16-1 + " PS1.16: 4% PS1:16-1 + " PS1.16: 13% PS1:16-2 + " PS1.16: 16% PS1:16-3 + " PS2.03: 55% PS2:3-9 + " PS2.03: 87% PS2:3-14 + " PS2.03: 89% PS2:3-14 + " PS2.03: 93% PS2:3-15 + " PS2.09: 4% PS2:9-8 + " PS2.09: 49% PS2:9-85 + " PS2.10: 16% PS2:10-19 +input symbol[s] PS1.04: 58% PS1:4-30 + " PS1.15: 45% PS1:15-13 + " PS1.15: 45% PS1:15-13 + " PS1.15: 46% PS1:15-14 + " PS1.15: 46% PS1:15-14 + " PS1.15: 47% PS1:15-14 + " PS1.15: 47% PS1:15-14 + " PS1.15: 54% PS1:15-16 + " PS1.15: 65% PS1:15-18 + " PS1.15: 72% PS1:15-21 +input text PS1.04: 77% PS1:4-40 + " PS1.16: 55% PS1:16-7 + " PS1.16: 83% PS1:16-11 + " PS2.10: 16% PS2:10-19 +input token[s] PS1.04: 35% PS1:4-19 + " PS1.04: 35% PS1:4-19 + " PS1.04: 76% PS1:4-39 + " PS1.15: 26% PS1:15-8 + " PS1.15: 32% PS1:15-9 + " PS1.15: 57% PS1:15-17 + " PS1.15: 59% PS1:15-17 + " PS1.15: 60% PS1:15-17 + " PS1.15: 62% PS1:15-18 + " PS1.16: 13% PS1:16-2 +input() PS1.16: 47% PS1:16-6 +Input/output control PS1.06: 53% PS1:6-25 +input/output lists PS2.06: 21% PS2:6-8 + " PS2.06: 24% PS2:6-10 +Input/Output multiplexing PS1.08: 25% PS1:8-9 +input/output notification PS1.06: 24% PS1:6-13 +input/output statements PS1.02: 12% PS1:2-6 + " PS2.06: 47% PS2:6-16 + " PS2.06: 58% PS2:6-21 + " PS2.06: 64% PS2:6-22 +input/output vector descriptor[s] PS1.06: 53% PS1:6-25 +insch(c) PS1.18: 38% PS1:18-10 +insert command[s] USD.16: 78% USD:16-15 + " USD.12: 70% USD:12-8 +insert line[s] TERMCAP.5: 95% TERMCAP(5)-13 + " USD.18: 48% USD:18-5 +Insert Mode TERMCAP.5: 55% TERMCAP(5)-9 + " TERMCAP.5: 57% TERMCAP(5)-9 + " TERMCAP.5: 57% TERMCAP(5)-9 + " TERMCAP.5: 57% TERMCAP(5)-9 + " TERMCAP.5: 57% TERMCAP(5)-9 + " TERMCAP.5: 58% TERMCAP(5)-9 + " TERMCAP.5: 58% TERMCAP(5)-9 + " TERMCAP.5: 59% TERMCAP(5)-9 + " TERMCAP.5: 59% TERMCAP(5)-9 + " TERMCAP.5: 60% TERMCAP(5)-9 + " USD.15: 81% USD:15-23 + " USD.15: 81% USD:15-23 +insert-file (C-X C-I) USD.17: 74% USD:17-35 +inserted text USD.15: 62% USD:15-18 + " USD.15: 94% USD:15-26 + " USD.15: 94% USD:15-26 +Inserting USD.15: 20% USD:15-6 +Inserting One File into Another USD.13: 78% USD:13-13 +Inserting Text USD.17: 7% USD:17-4 +insertln() PS1.18: 39% PS1:18-10 +insque, remque - insert/remove element from a queue INSQUE.3: 8% INSQUE(3)-1 +Install SMM.10: 77% SMM:10-19 + " RDIST.1: 56% RDIST(1)-2 + " SMM.12A: 34% SMM:12-8 +install - install binaries INSTALL.1: 5% INSTALL(1)-1 +Install a diversion trap USD.24: 51% USD:24-17 +Install a trap USD.24: 50% USD:24-17 +install-mh - initialize the MH environment INSTALL-MH.N: 3% INSTALL-MH(8)-1 + " USD.08: 77% USD:8-95 +installation, line printer spooler SMM.06: 32% SMM:6-3 +installation, timed SMM.08: 79% SMM:8-3 +Installation, USENET Version B SMM.10: 0% SMM:10-1 + " SMM.10: 3% SMM:10-1 + " SMM.10: 3% SMM:10-2 + " SMM.10: 8% SMM:10-2 + " SMM.10: 12% SMM:10-4 + " SMM.10: 16% SMM:10-4 + " SMM.10: 19% SMM:10-6 + " SMM.10: 22% SMM:10-6 + " SMM.10: 26% SMM:10-8 + " SMM.10: 30% SMM:10-8 + " SMM.10: 33% SMM:10-10 + " SMM.10: 37% SMM:10-10 + " SMM.10: 40% SMM:10-12 + " SMM.10: 45% SMM:10-12 + " SMM.10: 50% SMM:10-14 + " SMM.10: 55% SMM:10-14 + " SMM.10: 59% SMM:10-16 + " SMM.10: 65% SMM:10-16 + " SMM.10: 69% SMM:10-18 + " SMM.10: 74% SMM:10-18 + " SMM.10: 79% SMM:10-20 + " SMM.10: 84% SMM:10-20 + " SMM.10: 89% SMM:10-22 + " SMM.10: 91% SMM:10-22 + " SMM.10: 95% SMM:10-24 +Installation and Operation of UUCP SMM.09: 3% SMM:9-2 + " SMM.09: 8% SMM:9-2 + " SMM.09: 12% SMM:9-4 + " SMM.09: 17% SMM:9-4 + " SMM.09: 22% SMM:9-6 + " SMM.09: 27% SMM:9-6 + " SMM.09: 32% SMM:9-8 + " SMM.09: 37% SMM:9-8 + " SMM.09: 43% SMM:9-10 + " SMM.09: 48% SMM:9-10 + " SMM.09: 53% SMM:9-12 + " SMM.09: 57% SMM:9-12 + " SMM.09: 61% SMM:9-14 + " SMM.09: 65% SMM:9-14 + " SMM.09: 72% SMM:9-16 + " SMM.09: 77% SMM:9-16 + " SMM.09: 83% SMM:9-18 + " SMM.09: 86% SMM:9-18 + " SMM.09: 92% SMM:9-20 + " SMM.09: 98% SMM:9-20 + " SMM.09: 0% unknown +installation procedure SMM.01: 22% SMM:1-16 +INSTALLATION TROUBLESHOOTING SMM.01: 95% SMM:1-63 +installing 4.3BSD, problems in SMM.01: 85% SMM:1-52 +installing an nroff terminal descriptor SMM.20: 60% SMM:20-5 +Installing and Operating 4.3BSD on the VAX SMM.11: 7% SMM:11-2 + " SMM.01: 0% SMM:1-1 +Instruction, Computer Aided LEARN.1: 1% LEARN(1)-1 +instructions, disassemble machine ADB.1: 46% ADB(1)-3 +instruction, EMT SIGVEC.2: 36% SIGVEC(2)-1 + " SIGNAL.3C: 22% SIGNAL(3C)-1 +instruction[s], Illegal CORE.5: 22% CORE(5)-1 +instruction, IOT SIGNAL.3C: 21% SIGNAL(3C)-1 +instruction[s], machine ADB.1: 46% ADB(1)-3 + " DBX.1: 83% DBX(1)-6 +instruction, px PDX.1: 82% PDX(1)-3 +int, extern GETHOSTBYNAME.3N: 5% GETHOSTBYNAME(3) +integer[s], computation with large USD.06: 3% USD:6-1 +integer[s], decimal FIND.1: 8% FIND(1)-1 + " SCANF.3S: 35% SCANF(3S)-1 +integer[s], hexadecimal SCANF.3S: 38% SCANF(3S)-1 +integer[s], machine PS1.01: 3% PS1:1-2 + " PS1.01: 3% PS1:1-2 + " PS1.01: 49% PS1:1-16 +integer argument[s] PS2.10: 12% PS2:10-15 + " PS2.10: 12% PS2:10-15 + " PS2.10: 77% PS2:10-69 +Integer Constants PS1.01: 3% PS1:1-2 + " PS1.01: 3% PS1:1-2 + " PS1.01: 91% PS1:1-31 + " PS1.02: 23% PS1:2-9 + " PS2.06: 10% PS2:6-4 +integer division PS1.01: 92% PS1:1-31 + " PS1.10: 6% PS1:10-2 + " PS1.11a: 67% PS1:11-5 +integer expression[s] PS1.02: 56% PS1:2-19 + " PS1.02: 62% PS1:2-21 + " PS1.02: 62% PS1:2-21 + " PS1.02: 63% PS1:2-21 + " PS1.02: 64% PS1:2-21 + " PS2.06: 40% PS2:6-14 + " PS2.06: 40% PS2:6-14 + " PS2.06: 41% PS2:6-15 + " PS2.06: 61% PS2:6-21 + " PS2.09: 55% PS2:9-97 + " PS2.09: 60% PS2:9-104 +integer[s], octal SCANF.3S: 37% SCANF(3S)-1 +integer arithmetic, multiple precision MP.3X: 6% MP(3X)-1 +integer function[s] UNLINK.3F: 16% UNLINK(3F)-1 +integer order[s] BESSEL.3F: 8% BESSEL(3F)-1 + " BESSEL.3F: 72% BESSEL(3F)-1 + " J0.3M: 66% J0(3M)-1 + " USD.06: 3% USD:6-1 + " USD.06: 58% USD:6-7 +integer overflow[s] FLOOR.3M: 91% FLOOR(3M)-1 + " MATH.3M: 15% MATH(3M)-2 + " TRAPER.3F: 21% TRAPER(3F)-1 +Integral USD.27: 33% USD:27-4 +integral sign USD.26: 35% USD:26-3 + " USD.27: 17% USD:27-2 +Intelligent terminal[s] TERMCAP.5: 54% TERMCAP(5)-9 + " USD.15: 43% USD:15-12 + " USD.15: 43% USD:15-12 + " USD.15: 43% USD:15-12 + " USD.16: 90% USD:16-17 + " VI.1: 47% VI(1)-1 + " VI.1: 69% VI(1)-1 +integrities relations PS2.10: 71% PS2:10-62 + " PS2.10: 72% PS2:10-62 + " PS2.10: 72% PS2:10-62 +integrity - define integrity constraint[s] PS2.10: 15% PS2:10-18 +integrity constraint[s] PS2.10: 1% PS2:10-3 + " PS2.10: 12% PS2:10-15 + " PS2.10: 13% PS2:10-16 + " PS2.10: 15% PS2:10-18 + " PS2.10: 15% PS2:10-18 + " PS2.10: 15% PS2:10-18 + " PS2.10: 48% PS2:10-41 + " PS2.10: 90% PS2:10-80 + " PS2.10: 90% PS2:10-80 + " PS2.10: 90% PS2:10-80 + " PS2.10: 90% PS2:10-80 +integrity statement PS2.10: 15% PS2:10-18 + " PS2.10: 15% PS2:10-18 + " PS2.10: 15% PS2:10-18 +inter-terminal communication USD.01: 0% USD:1-1 +Interactive Desk Calculator USD.05: 0% USD:5-1 + " USD.05: 0% USD:5-1 + " USD.05: 3% USD:5-1 + " USD.05: 10% USD:5-2 + " USD.05: 19% USD:5-2 + " USD.05: 31% USD:5-4 + " USD.05: 50% USD:5-4 + " USD.05: 65% USD:5-6 + " USD.05: 79% USD:5-6 + " USD.05: 98% USD:5-8 +interactive mode MV.1: 47% MV(1)-1 +interactive processes USD.17: 45% USD:17-20 + " USD.17: 68% USD:17-32 + " USD.17: 75% USD:17-35 + " USD.17: 75% USD:17-35 + " USD.17: 75% USD:17-35 + " USD.17: 77% USD:17-36 + " USD.17: 78% USD:17-37 + " USD.17: 86% USD:17-41 +interactive program[s] TTY.4: 50% TTY(4)-5 +interactive restoration of file[s] RESTORE.8: 26% RESTORE(8)-1 +interactive shell[s] SH.1: 69% SH(1)-4 + " SH.1: 94% SH(1)-6 + " USD.03: 73% USD:3-18 + " USD.03: 74% USD:3-18 + " USD.03: 92% USD:3-22 + " USD.07: 68% USD:7-16 + " USD.17: 10% USD:17-5 + " USD.17: 75% USD:17-35 + " SMM.12A: 54% SMM:12-13 + " SMM.12A: 66% SMM:12-15 +interactive thesaurus USD.32: 51% USD:32-8 +interactive tutorial JOVE.N: 92% JOVE(1)-3 +Interdata 8/32 SMM.19: 1% SMM:19-2 + " SMM.19: 44% SMM:19-12 + " SMM.19: 57% SMM:19-16 + " SMM.19: 61% SMM:19-17 + " SMM.19: 79% SMM:19-22 +Interdata 8/32 C compiler[s] SMM.19: 3% SMM:19-2 +interface configuration PS1.08: 81% PS1:8-33 + " PS1.08: 80% PS1:8-32 +Internal File[s] PS1.02: 74% PS1:2-25 +Internet PS1.06: 73% PS1:6-33 + " PS1.06: 76% PS1:6-33 + " PS1.07a: 90% PS1:7-22 + " PS1.08: 43% PS1:8-17 +Internet addresses PS1.06: 87% PS1:6-37 + " PS1.07a: 45% PS1:7-11 + " PS1.07a: 47% PS1:7-11 + " PS1.08: 13% PS1:8-5 + " PS1.08: 45% PS1:8-17 + " PS1.08: 50% PS1:8-20 + " PS1.08: 99% PS1:8-41 +Internet and NS domains PS1.08: 10% PS1:8-4 + " PS1.08: 73% PS1:8-30 + " PS1.08: 75% PS1:8-31 +Internet and NS domain[s], binding addresses to sockets in the PS1.08: 73% PS1:8-30 +INTERNET domain PS1.06: 86% PS1:6-37 + " PS1.06: 86% PS1:6-37 + " PS1.06: 88% PS1:6-37 + " PS1.06: 88% PS1:6-37 + " PS1.07a: 29% PS1:7-8 + " PS1.07a: 30% PS1:7-8 + " PS1.07a: 42% PS1:7-10 + " PS1.07a: 45% PS1:7-11 + " PS1.07a: 51% PS1:7-11 + " PS1.07a: 91% PS1:7-22 + " PS1.07a: 91% PS1:7-22 + " PS1.08: 4% PS1:8-3 + " PS1.08: 10% PS1:8-4 + " PS1.08: 11% PS1:8-5 + " PS1.08: 15% PS1:8-6 + " PS1.08: 36% PS1:8-14 + " PS1.08: 71% PS1:8-28 +Internet domain datagram, Sending an PS1.07a: 57% PS1:7-14 +Internet host name to address mapping PS1.08: 31% PS1:8-11 +Internet port[s] PS1.08: 41% PS1:8-15 + " PS1.08: 46% PS1:8-19 + " PS1.08: 75% PS1:8-31 + " PS1.08: 76% PS1:8-31 +Internet protocol[s], DARPA standard PS1.08: 29% PS1:8-11 +Internet standard protocol[s] PS1.07a: 30% PS1:7-8 +interface[s], IMP CSS.4: 4% CSS(4)-1 +interface, tape drive HT.4: 15% HT(4)-1 + " MT.4: 11% MT(4)-1 + " TM.4: 12% TM(4)-1 + " TMSCP.4: 16% TMSCP(4)-1 + " TS.4: 16% TS(4)-1 + " UT.4: 12% UT(4)-1 +interface[s], terminal TTY.4: 0% TTY(4)-1 + " TTY.4: 84% TTY(4)-9 +interface[s], UNIBUS SMM.15: 39% SMM:15-12 + " SMM.15: 39% SMM:15-12 +interface addresses IFCONFIG.8C: 2% IFCONFIG(8C)-1 + " SMM.01: 69% SMM:1-42 + " SMM.13: 23% SMM:13-9 + " SMM.13: 86% SMM:13-29 + " SMM.15: 35% SMM:15-11 + " SMM.15: 38% SMM:15-12 + " INTRO.4N: 81% INTRO(4N)-3 +interface configuration INTRO.4N: 94% INTRO(4N)-4 +interface flags SMM.13: 87% SMM:13-29 + " INTRO.4N: 86% INTRO(4N)-3 +interface ioctl[s] SMM.13: 23% SMM:13-9 + " SMM.13: 59% SMM:13-21 + " SMM.13: 66% SMM:13-23 +interface registers IK.4: 24% IK(4)-1 + " PS.4: 9% PS(4)-1 + " PS.4: 19% PS(4)-1 + " PS.4: 24% PS(4)-1 +interface routines SMM.15: 95% SMM:15-26 +interface routing metric INTRO.4N: 89% INTRO(4N)-4 +interface structure SMM.15: 34% SMM:15-10 +Interlan Np100 IX.4: 2% IX(4)-1 + " NP.4: 2% NP(4)-1 + " SMM.13: 90% SMM:13-31 + " SMM.12A: 74% SMM:12-17 + " SMM.12A: 75% SMM:12-17 +interleaved memory SMM.01: 20% SMM:1-14 +interleaved memory controller[s] SMM.01: 37% SMM:1-25 +Interlisp USD.04: 0% USD:4-1 +intermediate code SMM.19: 2% SMM:19-2 + " SMM.19: 2% SMM:19-2 + " SMM.19: 46% SMM:19-13 + " SMM.19: 47% SMM:19-13 +intermediate file[s] SMM.19: 5% SMM:19-2 + " SMM.19: 6% SMM:19-3 + " SMM.19: 7% SMM:19-3 + " SMM.19: 7% SMM:19-3 + " SMM.19: 8% SMM:19-3 + " SMM.19: 8% SMM:19-3 + " SMM.19: 11% SMM:19-4 + " SMM.19: 50% SMM:19-14 + " UUXQT.8C: 55% UUXQT(8C)-1 +Internal field separator[s] SH.1: 32% SH(1)-2 +internal-tabstop (variable) USD.17: 74% USD:17-35 +Internet DE.4: 20% DE(4)-1 + " IFCONFIG.8C: 20% IFCONFIG(8C)-1 + " INET.3N: 19% INET(3N)-1 + " NETSTAT.1: 57% NETSTAT(1)-1 + " QE.4: 51% QE(4)-1 + " ROUTED.8C: 48% ROUTED(8C)-2 + " SMM.01: 69% SMM:1-42 + " SMM.01: 72% SMM:1-43 + " SMM.02: 44% SMM:2-13 + " SMM.02: 44% SMM:2-13 + " SMM.10: 15% SMM:10-4 + " SMM.11: 24% SMM:11-4 + " USD.08: 55% USD:8-65 + " NETWORKS.5: 16% NETWORKS(5)-1 +Internet addresses ARP.4P: 87% ARP(4P)-2 + " HOSTID.1: 57% HOSTID(1)-1 + " IMP.4: 70% IMP(4)-1 + " INET.3N: 30% INET(3N)-1 + " INET.3N: 36% INET(3N)-1 + " INET.3N: 41% INET(3N)-1 + " INET.3N: 48% INET(3N)-1 + " INET.3N: 49% INET(3N)-1 + " INET.4F: 14% INET(4F)-1 + " MH-MAIL.N: 42% MH-MAIL(5)-1 + " RESOLVER.3: 51% RESOLVER(3)-2 + " ROUTE.8C: 32% ROUTE(8C)-1 + " SMM.01: 63% SMM:1-39 + " SMM.01: 64% SMM:1-39 + " SMM.11: 37% SMM:11-5 + " SMM.11: 37% SMM:11-5 + " SMM.13: 65% SMM:13-23 + " SMM.13: 66% SMM:13-23 + " SMM.13: 68% SMM:13-24 + " TCP.4P: 14% TCP(4P)-1 + " USD.08: 67% USD:8-82 + " SMM.12A: 34% SMM:12-8 + " HOSTS.5: 17% HOSTS(5)-1 +Internet address format GETHOSTBYNAME.3N: 97% GETHOSTBYNAME(3) + " INET.4F: 8% INET(4F)-1 + " TCP.4P: 10% TCP(4P)-1 + " UDP.4P: 37% UDP(4P)-1 +Internet code, /sys/netinet DARPA SMM.01: 39% SMM:1-26 +Internet Control Message Protocol ICMP.4P: 3% ICMP(4P)-1 + " INET.4F: 39% INET(4F)-1 + " SMM.15: 63% SMM:15-19 +Internet daemon SMM.01: 68% SMM:1-41 + " SMM.01: 68% SMM:1-41 + " SMM.01: 71% SMM:1-43 + " INETD.8: 14% INETD(8)-1 +Internet Datagram Protocol NS.4F: 68% NS(4F)-1 +Internet digests BURST.N: 7% BURST(1)-1 + " BURST.N: 33% BURST(1)-1 + " USD.08: 14% USD:8-14 + " USD.08: 14% USD:8-14 +INTERNET domain INET.4F: 75% INET(4F)-1 +Internet domain name server[s] NAMED.8: 1% NAMED(8)-1 + " NAMED.8: 4% NAMED(8)-1 + " RESOLVER.3: 20% RESOLVER(3)-1 +Internet port[s] RCMD.3: 59% RCMD(3)-1 +Internet protocol[s] ARP.4P: 7% ARP(4P)-1 + " DDN.4: 26% DDN(4)-1 + " GETPROTOENT.3N: 94% GETPROTOENT(3N) + " IFCONFIG.8C: 50% IFCONFIG(8C)-1 + " INET.4F: 6% INET(4F)-1 + " INET.4F: 95% INET(4F)-2 + " IP.4P: 1% IP(4P)-1 + " SMM.02: 42% SMM:2-13 + " SMM.13: 58% SMM:13-20 + " SMM.13: 67% SMM:13-23 + " SMM.15: 59% SMM:15-17 + " SMM.15: 59% SMM:15-18 + " SOCKET.2: 13% SOCKET(2)-1 +Internet protocol family ICMP.4P: 16% ICMP(4P)-1 + " IDP.4P: 9% IDP(4P)-1 + " INET.4F: 1% INET(4F)-1 + " INET.4F: 4% INET(4F)-1 + " INET.4F: 21% INET(4F)-1 + " INET.4F: 37% INET(4F)-1 + " IP.4P: 8% IP(4P)-1 + " PCL.4: 28% PCL(4)-1 + " UDP.4P: 15% UDP(4P)-1 + " NS.4F: 37% unknown +Internet Request For Comment (RFC) SMM.11: 96% SMM:11-16 + " SMM.11: 96% SMM:11-16 + " SMM.11: 97% SMM:11-16 + " SMM.11: 97% SMM:11-16 + " SMM.11: 98% SMM:11-16 + " HTABLE.8: 10% HTABLE(8)-1 +Internet Transmission Control Protocol, tcp - TCP.4P: 1% TCP(4P)-1 +Internet Transport Protocols NS.4F: 93% NS(4F)-2 + " ROUTED.8C: 90% ROUTED(8C)-3 + " XNSROUTED.8C: 96% XNSROUTED(8C)-2 +Internet User Datagram Protocol, udp - UDP.4P: 2% UDP(4P)-1 +Internetwork Mail Router SENDMAIL.8: 98% SENDMAIL(8)-4 + " SMM.16: 0% SMM:16-1 + " SMM.16: 7% SMM:16-1 + " SMM.16: 7% SMM:16-2 + " SMM.16: 17% SMM:16-2 + " SMM.16: 23% SMM:16-4 + " SMM.16: 31% SMM:16-4 + " SMM.16: 39% SMM:16-6 + " SMM.16: 46% SMM:16-6 + " SMM.16: 54% SMM:16-8 + " SMM.16: 61% SMM:16-8 + " SMM.16: 69% SMM:16-10 + " SMM.16: 77% SMM:16-10 +internetwork router[s] ROUTED.8C: 7% ROUTED(8C)-1 + " ROUTED.8C: 24% ROUTED(8C)-1 + " ROUTED.8C: 36% ROUTED(8C)-1 + " ROUTED.8C: 46% ROUTED(8C)-2 + " ROUTED.8C: 50% ROUTED(8C)-2 + " ROUTED.8C: 84% ROUTED(8C)-2 + " XNSROUTED.8C: 47% XNSROUTED(8C)-1 + " XNSROUTED.8C: 74% XNSROUTED(8C)-1 + " XNSROUTED.8C: 79% XNSROUTED(8C)-1 + " SPP.4P: 91% SPP(4P)-2 +interpolate USD.24: 43% USD:24-14 +Interpress format, Xerox SMM.12A: 97% SMM:12-23 +interpretation, Format PS1.03: 32% PS1:3-5 + " PS1.03: 48% PS1:3-6 + " PS1.03: 50% PS1:3-6 +interpretation, blank SH.1: 33% SH(1)-2 + " USD.03: 41% USD:3-10 + " USD.03: 67% USD:3-17 + " USD.03: 67% USD:3-17 + " USD.03: 85% USD:3-21 +interpreter, lisp PS2.09: 41% PS2:9-75 + " PS2.09: 83% PS2:9-133 + " PS2.09: 94% PS2:9-149 +Interprocess communication[s] PS1.06: 73% PS1:6-32 + " PS1.07a: 0% PS1:7-1 + " PS1.07a: 1% PS1:7-1 + " PS1.07a: 4% PS1:7-1 + " PS1.07a: 7% PS1:7-2 + " PS1.08: 0% + " PS1.08: 1% PS1:8-2 +interpreter[s], command CSH.1: 0% CSH(1)-1 + " LOGIN.1: 40% LOGIN(1)-1 + " LOGIN.1: 44% LOGIN(1)-1 + " LOGIN.1: 46% LOGIN(1)-1 + " LOGIN.1: 51% LOGIN(1)-1 + " SYSTEM.3F: 45% SYSTEM(3F)-1 + " USD.02: 45% USD:2-6 + " USD.04: 2% USD:4-3 + " USD.02: 65% USD:2-8 + " USD.13: 94% USD:13-15 +interpreter, command language CSH.1: 0% CSH(1)-1 + " USD.04: 0% USD:4-1 + " USD.04: 1% USD:4-1 + " USD.04: 95% USD:4-43 +interpreter, lisp LISP.1: 3% LISP(1)-1 + " LISP.1: 8% LISP(1)-1 +Interpreter, Script USD.02: 60% USD:2-7 +Interprocess communication[s] SMM.01: 39% SMM:1-26 +Interprocess Communication, Changes in SMM.13: 33% SMM:13-12 +interprocess communication facilities INTRO.4: 26% INTRO(4)-1 + " PS1.08: 0% + " PS1.08: 1% PS1:8-2 + " PS1.08: 29% PS1:8-11 +Interprocess communication primitives PS1.06: 73% PS1:6-32 + " PS1.08: 0% +Interrupt[s] PS2.09: 45% PS2:9-80 + " PS2.09: 69% PS2:9-116 + " PS2.10: 61% PS2:10-52 + " PS2.10: 61% PS2:10-53 +interprocess communication facilities SMM.15: 3% SMM:15-3 + " SMM.15: 16% SMM:15-6 + " SMM.12A: 56% SMM:12-13 +INTERRUPT[s] USD.03: 93% USD:3-22 + " USD.04: 17% USD:4-8 + " USD.04: 17% USD:4-8 + " USD.04: 19% USD:4-9 + " USD.04: 21% USD:4-9 + " USD.04: 38% USD:4-17 + " USD.08: 27% USD:8-30 + " USD.14: 31% USD:14-8 + " USD.14: 31% USD:14-8 + " CONFIG.8: 50% CONFIG(8)-1 + " SETJMP.3: 22% SETJMP(3)-1 + " SH.1: 61% SH(1)-4 + " USD.04: 82% USD:4-39 + " SMM.14: 42% SMM:14-7 +interrupt[s], Catching USD.04: 63% USD:4-31 +interrupt[s], software PS1.06: 0% + " PS1.06: 13% PS1:6-9 +Interrupt characters PS1.06: 89% PS1:6-38 + " PS1.06: 89% PS1:6-38 + " PS1.06: 90% PS1:6-38 +Interrupt driven socket I/O PS1.08: 64% PS1:8-26 +interrupt handling routine, testing PS1.10: 30% PS1:10-6 +Interval time PS1.06: 33% PS1:6-16 +interrupts, clock KG.4: 53% unknown +interrupt[s], device SYSTAT.1: 31% SYSTAT(1)-2 +interrupt, hardware SIGVEC.2: 5% SIGVEC(2)-1 +interrupt, lost UP.4: 83% UP(4)-3 + " UU.4: 80% UU(4)-1 +Interrupt character[s] STTY.1: 32% STTY(1)-1 + " TSET.1: 52% TSET(1)-2 + " TTY.4: 47% TTY(4)-5 +interrupt handling, 4.1 BSD SIGINTERRUPT.3: 47% SIGINTERRUPT(3) +INTERRUPT signal[s] USD.04: 17% USD:4-8 + " USD.04: 17% USD:4-8 + " SIGNAL.3C: 20% SIGNAL(3C)-1 +interrupt vector[s] SMM.02: 13% SMM:2-5 +interrupt-proces USD.17: 75% USD:17-35 +interrupted system call[s] INTRO.2: 9% INTRO(2)-1 + " SIGINTERRUPT.3: 4% SIGINTERRUPT(3) +Interrupted text USD.24: 35% USD:24-12 +Interrupting the Editor USD.13: 57% USD:13-10 +interrupts, ignoring CSH.1: 65% CSH(1)-13 +interval timer[s] PS1.06: 25% PS1:6-13 + " PS1.06: 33% PS1:6-16 + " PS1.06: 34% PS1:6-17 +Intrinsic Function[s] PS1.02: 23% PS1:2-9 + " PS1.02: 23% PS1:2-9 + " PS1.02: 24% PS1:2-9 + " PS1.02: 31% PS1:2-11 + " PS1.02: 58% PS1:2-19 + " PS1.02: 58% PS1:2-19 +INTRINSIC Statement PS1.02: 58% PS1:2-19 +Introduction to the Revision Control System PS1.13: 0% PS1:13-1 +Introduction to the Source Code Control System PS1.14: 0% unknown +Introductory 4.3BSD Interprocess Communication Tutorial PS1.07a: 0% PS1:7-1 +Introductory 4.3BSD IPC PS1.07a: 0% + " PS1.07a: 5% PS1:7-2 + " PS1.07a: 13% PS1:7-2 + " PS1.07a: 17% PS1:7-4 + " PS1.07a: 24% PS1:7-4 + " PS1.07a: 24% PS1:7-6 + " PS1.07a: 27% PS1:7-6 + " PS1.07a: 29% PS1:7-8 + " PS1.07a: 37% PS1:7-8 + " PS1.07a: 40% PS1:7-10 + " PS1.07a: 44% PS1:7-10 + " PS1.07a: 52% PS1:7-12 + " PS1.07a: 55% PS1:7-12 + " PS1.07a: 58% PS1:7-14 + " PS1.07a: 66% PS1:7-14 + " PS1.07a: 69% PS1:7-16 + " PS1.07a: 71% PS1:7-16 + " PS1.07a: 74% PS1:7-18 + " PS1.07a: 76% PS1:7-18 + " PS1.07a: 78% PS1:7-20 + " PS1.07a: 80% PS1:7-20 + " PS1.07a: 83% PS1:7-22 + " PS1.07a: 91% PS1:7-22 + " PS1.07a: 95% PS1:7-24 + " PS1.07a: 98% PS1:7-24 +interval, linger GETSOCKOPT.2: 66% GETSOCKOPT(2)-2 +interval, queue SMM.07A: 23% SMM:07-12 + " SMM.07A: 27% SMM:07-14 + " SMM.07A: 31% SMM:07-15 +interval, suspend execution for USLEEP.3: 5% USLEEP(3)-1 +interval timer[s] EXECVE.2: 50% EXECVE(2)-1 + " GETITIMER.2: 3% GETITIMER(2)-1 + " GETITIMER.2: 18% GETITIMER(2)-1 + " PAUSE.3C: 41% PAUSE(3C)-1 + " SLEEP.3: 57% SLEEP(3)-1 + " USLEEP.3: 40% USLEEP(3)-1 +intrinsic function[s] INTRO.3F: 20% INTRO(3F)-1 +intro - introduction to C library functions INTRO.3: 0% INTRO(3)-1 +intro - introduction to commands INTRO.1: 3% INTRO(1)-1 +intro - introduction to FORTRAN library functions INTRO.3F: 0% INTRO(3F)-1 +intro - introduction to special files and hardware support INTRO.4: 1% INTRO(4)-1 +intro - introduction to system calls and error numbers INTRO.2: 0% INTRO(2)-1 +intro - introduction to system maintenance and operation commands INTRO.8: 7% unknown +Introduction to Display Editing with Vi USD.15: 0% USD:15-1 +introduction to networking facilities INTRO.4N: 0% INTRO(4N)-1 +introduction to RCS command[s] RCSINTRO.N: 6% RCSINTRO(1)-1 +Introduction to the C shell USD.04: 0% USD:4-1 +Introduction to the UNIX Shell USD.03: 0% USD:3-1 +introduction to unix USD.01: 1% USD:1-1 +introduction to UNIX files and command[s] USD.02: 2% USD:2-1 +invalid address CONNECT.2: 33% CONNECT(2)-1 +invalid floating-point operations INFNAN.3M: 2% INFNAN(3M)-1 +invert, lookup - create and access an inverted index INVERT.N: 1% INVERT(1)-1 +invert - multiple precision integer arithmetic MP.3X: 2% MP(3X)-1 +inverted index[s] INVERT.N: 2% INVERT(1)-1 + " INVERT.N: 5% INVERT(1)-1 + " INVERT.N: 7% INVERT(1)-1 + " LOOKBIB.1: 9% LOOKBIB(1)-1 + " LOOKBIB.1: 48% LOOKBIB(1)-1 + " USD.29: 52% USD:29-5 + " USD.29: 53% USD:29-5 + " USD.29: 55% USD:29-6 + " USD.30: 13% USD:30-2 + " USD.30: 26% USD:30-3 + " USD.31: 7% USD:31-2 +Inverted Indexes on the UNIX System, Applications of USD.30: 0% USD:30-1 + " USD.30: 0% USD:30-1 + " USD.30: 7% USD:30-2 + " USD.30: 17% USD:30-2 + " USD.30: 30% USD:30-4 + " USD.30: 39% USD:30-4 + " USD.30: 68% USD:30-8 + " USD.30: 76% USD:30-8 + " USD.30: 82% USD:30-10 + " USD.30: 87% USD:30-10 + " USD.30: 96% USD:30-12 +invocation[s], macro PS1.12: 31% PS1:12-3 + " PS2.09: 73% PS2:9-120 + " PS2.09: 73% PS2:9-120 + " PS2.09: 73% PS2:9-120 +Invocation[s], Procedure PS2.06: 25% PS2:6-10 + " PS2.06: 26% PS2:6-10 + " PS2.06: 26% PS2:6-10 + " PS2.06: 27% PS2:6-10 + " PS2.06: 44% PS2:6-15 + " PS2.06: 47% PS2:6-16 + " PS2.06: 47% PS2:6-16 + " PS2.06: 73% PS2:6-25 +invocation[s], macro USD.24: 43% USD:24-14 +ioctl, SIOCGIFCONF PS1.08: 80% PS1:8-32 +ioctl, SIOCGIFFLAGS PS1.08: 82% PS1:8-33 +ioctl, TIOCGWINSZ PS1.18: 50% PS1:18-14 + " PS1.18: 60% PS1:18-17 +ioctl operation[s] PS1.06: 54% PS1:6-25 + " PS1.06: 61% PS1:6-28 + " PS1.06: 88% PS1:6-38 +Ioinit() PS1.03: 62% PS1:3-8 +IOSTAT= PS1.02: 65% PS1:2-22 +ioctl[s] SMM.13: 13% SMM:13-6 +ioctl[s], interface SMM.13: 23% SMM:13-9 + " SMM.13: 59% SMM:13-21 + " SMM.13: 66% SMM:13-23 +ioctl - control device IOCTL.2: 4% IOCTL(2)-1 +ioctl call (see specific section 4 man pages)[s] INTRO.2: 28% INTRO(2)-3 + " ARP.4P: 22% ARP(4P)-1 + " TTY.4: 43% TTY(4)-4 + " TIP.1C: 23% TIP(1C)-1 + " SMM.15: 77% SMM:15-22 + " ROUTE.8C: 71% ROUTE(8C)-1 + " RMT.8C: 76% RMT(8C)-1 + " PTY.4: 22% PTY(4)-1 + " INTRO.4N: 72% INTRO(4N)-3 + " ARP.4P: 53% ARP(4P)-1 +ioctl operation[s] MTIO.4: 34% MTIO(4)-1 + " PTY.4: 73% PTY(4)-2 + " SMM.13: 59% SMM:13-21 + " SMM.13: 80% SMM:13-27 +ioctl request[s] IOCTL.2: 30% IOCTL(2)-1 + " IOCTL.2: 38% IOCTL(2)-1 + " IOCTL.2: 52% IOCTL(2)-1 +ioctl system call on a socket SMM.15: 54% SMM:15-16 +ioinit - change f77 I/O initialization IOINIT.3F: 1% IOINIT(3F)-1 +IOSTAT SYSTAT.1: 6% SYSTAT(1)-1 + " SMM.12A: 34% SMM:12-8 +iostat - report I/O statistics IOSTAT.1: 2% IOSTAT(1)-1 +iostat display[s] IOSTAT.1: 73% IOSTAT(1)-1 + " SYSTAT.1: 19% SYSTAT(1)-2 + " SYSTAT.1: 72% SYSTAT(1)-3 +IOT instruction SIGNAL.3C: 21% SIGNAL(3C)-1 +iov array READ.2: 18% READ(2)-1 + " READ.2: 88% READ(2)-2 + " READ.2: 91% READ(2)-2 + " WRITE.2: 15% WRITE(2)-1 + " WRITE.2: 93% WRITE(2)-2 + " WRITE.2: 95% WRITE(2)-2 +IP ICMP.4P: 16% ICMP(4P)-1 + " IMPLOGD.8C: 74% IMPLOGD(8C)-1 + " INET.4F: 7% INET(4F)-1 + " INET.4F: 46% INET(4F)-1 + " IP.4P: 6% IP(4P)-1 + " IP.4P: 12% IP(4P)-1 + " IP.4P: 18% IP(4P)-1 + " IP.4P: 87% IP(4P)-1 + " SMM.15: 59% SMM:15-18 + " SMM.12A: 59% SMM:12-14 +iovec, struct PS1.06: 53% PS1:6-25 + " PS1.06: 53% PS1:6-25 + " PS1.06: 53% PS1:6-25 + " PS1.07a: 92% PS1:7-23 + " PS1.07a: 92% PS1:7-23 +IPC PS1.06: 50% PS1:6-24 + " PS1.07a: 1% PS1:7-1 + " PS1.07a: 2% PS1:7-1 + " PS1.07a: 4% PS1:7-1 + " PS1.07a: 5% PS1:7-1 + " PS1.07a: 6% PS1:7-2 +IPC, Introductory 4.3BSD PS1.07a: 0% + " PS1.07a: 5% PS1:7-2 + " PS1.07a: 13% PS1:7-2 + " PS1.07a: 17% PS1:7-4 + " PS1.07a: 24% PS1:7-4 + " PS1.07a: 24% PS1:7-6 + " PS1.07a: 27% PS1:7-6 + " PS1.07a: 29% PS1:7-8 + " PS1.07a: 37% PS1:7-8 + " PS1.07a: 40% PS1:7-10 + " PS1.07a: 44% PS1:7-10 + " PS1.07a: 52% PS1:7-12 + " PS1.07a: 55% PS1:7-12 + " PS1.07a: 58% PS1:7-14 + " PS1.07a: 66% PS1:7-14 + " PS1.07a: 69% PS1:7-16 + " PS1.07a: 71% PS1:7-16 + " PS1.07a: 74% PS1:7-18 + " PS1.07a: 76% PS1:7-18 + " PS1.07a: 78% PS1:7-20 + " PS1.07a: 80% PS1:7-20 + " PS1.07a: 83% PS1:7-22 + " PS1.07a: 91% PS1:7-22 + " PS1.07a: 95% PS1:7-24 + " PS1.07a: 98% PS1:7-24 +IPC facilities PS1.06: 70% PS1:6-31 + " PS1.08: 1% PS1:8-2 + " PS1.08: 2% PS1:8-2 + " PS1.08: 3% PS1:8-2 +IPC Tutorial, Advanced 4.3BSD PS1.08: 1% PS1:8-2 + " PS1.08: 3% PS1:8-2 + " PS1.08: 8% PS1:8-4 + " PS1.08: 11% PS1:8-4 + " PS1.08: 14% PS1:8-6 + " PS1.08: 16% PS1:8-6 + " PS1.08: 20% PS1:8-8 + " PS1.08: 23% PS1:8-8 + " PS1.08: 27% PS1:8-10 + " PS1.08: 29% PS1:8-10 + " PS1.08: 33% PS1:8-12 + " PS1.08: 34% PS1:8-12 + " PS1.08: 36% PS1:8-14 + " PS1.08: 38% PS1:8-14 + " PS1.08: 41% PS1:8-16 + " PS1.08: 42% PS1:8-16 + " PS1.08: 45% PS1:8-18 + " PS1.08: 46% PS1:8-18 + " PS1.08: 48% PS1:8-20 + " PS1.08: 51% PS1:8-20 + " PS1.08: 54% PS1:8-22 + " PS1.08: 56% PS1:8-22 + " PS1.08: 58% PS1:8-24 + " PS1.08: 62% PS1:8-24 + " PS1.08: 63% PS1:8-26 + " PS1.08: 66% PS1:8-26 + " PS1.08: 69% PS1:8-28 + " PS1.08: 71% PS1:8-28 + " PS1.08: 72% PS1:8-30 + " PS1.08: 75% PS1:8-30 + " PS1.08: 78% PS1:8-32 + " PS1.08: 80% PS1:8-32 + " PS1.08: 82% PS1:8-34 + " PS1.08: 84% PS1:8-34 + " PS1.08: 87% PS1:8-36 + " PS1.08: 89% PS1:8-36 + " PS1.08: 90% PS1:8-38 + " PS1.08: 93% PS1:8-38 + " PS1.08: 94% PS1:8-40 + " PS1.08: 96% PS1:8-40 +ISAM PS2.10: 52% PS2:10-46 + " PS2.10: 64% PS2:10-56 + " PS2.10: 64% PS2:10-56 +ip - Internet Protocol IP.4P: 1% IP(4P)-1 +IP addresses GETHOSTBYNAME.3N: 74% GETHOSTBYNAME(3) + " NSIP.4: 27% NSIP(4)-1 + " SMM.13: 80% SMM:13-27 +IP header ICMP.4P: 48% ICMP(4P)-1 + " IP.4P: 21% IP(4P)-1 + " IP.4P: 58% IP(4P)-1 + " NSIP.4: 19% NSIP(4)-1 +IP options IP.4P: 20% IP(4P)-1 + " IP.4P: 37% IP(4P)-1 + " IP.4P: 88% IP(4P)-1 + " SMM.13: 65% SMM:13-23 + " SMM.13: 67% SMM:13-23 + " SMM.13: 67% SMM:13-23 + " SMM.13: 69% SMM:13-24 + " SMM.12A: 74% SMM:12-17 +IP over serial data line[s] SMM.13: 6% SMM:13-3 +IP packet[s] NSIP.4: 5% NSIP(4)-1 + " SMM.02: 96% SMM:2-33 + " SMM.02: 97% SMM:2-33 + " SMM.13: 64% SMM:13-22 + " SMM.13: 68% SMM:13-24 + " SMM.13: 68% SMM:13-24 +IP protocol INTRO.4N: 28% INTRO(4N)-1 +IP socket[s], raw SMM.13: 67% SMM:13-23 + " SMM.13: 69% SMM:13-24 + " SMM.15: 79% SMM:15-22 +IPC connection SMM.16: 26% SMM:16-4 + " SMM.07A: 62% SMM:07-26 +IPC connection, SMTP over an SMM.16: 26% SMM:16-4 +IPC messages GETRUSAGE.2: 73% GETRUSAGE(2)-2 + " GETRUSAGE.2: 75% GETRUSAGE(2)-2 +IPFORWARDING SMM.02: 97% SMM:2-33 +IPSENDREDIRECT[s] SMM.02: 97% SMM:2-33 +irand RAND.3F: 6% RAND(3F)-1 +irandm RANDOM.3F: 8% RANDOM(3F)-1 +isalnum CTYPE.3: 6% CTYPE(3)-1 +isalpha CTYPE.3: 3% CTYPE(3)-1 +isascii CTYPE.3: 10% CTYPE(3)-1 +isatty - find name of a terminal TTYNAME.3: 6% TTYNAME(3)-1 +isatty - find name of a terminal port TTYNAM.3F: 9% TTYNAM(3F)-1 +iscntrl CTYPE.3: 9% CTYPE(3)-1 +isdigit CTYPE.3: 5% CTYPE(3)-1 +isgraph CTYPE.3: 8% CTYPE(3)-1 +islower CTYPE.3: 4% CTYPE(3)-1 +ISP VGRIND.1: 61% VGRIND(1)-1 +isprint CTYPE.3: 8% CTYPE(3)-1 +ispunct CTYPE.3: 7% CTYPE(3)-1 +isspace CTYPE.3: 7% CTYPE(3)-1 +isupper CTYPE.3: 4% CTYPE(3)-1 +isxdigit CTYPE.3: 5% CTYPE(3)-1 +italic[s] USD.20: 44% USD:20-4 +italic[s], .bi bold USD.23: 46% USD:23-6 +italics, bold USD.22: 89% USD:22-17 +Italic, Times USD.22: 85% USD:22-16 + " USD.24: 25% USD:24-9 + " USD.24: 95% USD:24-32 +item[s], header MH-MAIL.N: 27% MH-MAIL(5)-1 + " MH-MAIL.N: 27% MH-MAIL(5)-1 + " MH-MAIL.N: 29% MH-MAIL(5)-1 + " MH-MAIL.N: 31% MH-MAIL(5)-1 + " USD.08: 67% USD:8-82 + " USD.08: 67% USD:8-82 + " USD.08: 67% USD:8-82 + " USD.08: 67% USD:8-82 +item[s], input PS1.15: 1% PS1:15-1 + " PS2.03: 91% PS2:3-15 + " PS2.03: 91% PS2:3-15 + " SCANF.3S: 80% SCANF(3S)-2 + " SCANF.3S: 81% SCANF(3S)-2 +item, news SMM.10: 91% SMM:10-23 + " SMM.10: 92% SMM:10-23 + " SMM.10: 92% SMM:10-23 + " SMM.10: 93% SMM:10-23 + " SMM.10: 95% SMM:10-23 + " SMM.10: 96% SMM:10-24 + " SMM.10: 97% SMM:10-24 + " SMM.10: 99% SMM:10-24 + " SMM.10: 99% SMM:10-24 +item[s], reference USD.31: 24% USD:31-4 + " USD.31: 24% USD:31-4 + " USD.31: 24% USD:31-4 + " USD.31: 44% USD:31-8 +itimerval, struct PS1.06: 34% PS1:6-16 + " PS1.06: 34% PS1:6-17 + " PS1.06: 34% PS1:6-17 + " PS1.06: 34% PS1:6-17 +Jensen-Wirth User Manual PS1.04: 7% PS1:4-4 + " PS1.04: 16% PS1:4-10 + " PS1.04: 19% PS1:4-11 + " PS1.04: 19% PS1:4-11 + " PS1.04: 41% PS1:4-22 + " PS1.04: 99% PS1:4-50 +itom - multiple precision integer arithmetic MP.3X: 5% MP(3X)-1 +ix - Interlan Np100 10 Mb/s Ethernet interface IX.4: 1% IX(4)-1 +j0s, j1s, jns, y0s, y1s, yn - bessel function J0.3M: 7% J0(3M)-1 +Jobs CSH.1: 0% CSH(1)-1 + " CSH.1: 5% CSH(1)-2 + " CSH.1: 8% CSH(1)-2 + " CSH.1: 44% CSH(1)-9 + " USD.04: 36% USD:4-16 + " USD.04: 38% USD:4-17 + " USD.04: 83% USD:4-39 +jmp instruction[s] PS1.05: 91% PS1:5-13 + " PS1.05: 92% PS1:5-13 + " PS1.05: 97% PS1:5-14 + " PS1.05: 97% PS1:5-14 +Johnson, S. C. PS1.09: 0% +Joy, William PS1.06: 0% +job[s], Background CSH.1: 7% CSH(1)-2 + " CSH.1: 8% CSH(1)-2 + " CSH.1: 10% CSH(1)-2 + " CSH.1: 10% CSH(1)-2 + " STTY.1: 76% STTY(1)-2 + " USD.04: 36% USD:4-16 + " USD.04: 37% USD:4-17 + " USD.04: 37% USD:4-17 + " USD.04: 38% USD:4-17 + " USD.04: 38% USD:4-17 + " USD.04: 39% USD:4-17 + " USD.04: 39% USD:4-17 + " USD.04: 39% USD:4-17 + " USD.04: 40% USD:4-18 + " USD.04: 40% USD:4-18 + " USD.04: 42% USD:4-19 + " USD.04: 42% USD:4-19 + " USD.04: 42% USD:4-19 + " USD.04: 42% USD:4-19 + " USD.04: 43% USD:4-20 + " USD.04: 44% USD:4-20 + " USD.04: 44% USD:4-20 + " USD.04: 45% USD:4-20 + " USD.04: 45% USD:4-20 + " USD.04: 48% USD:4-22 + " USD.04: 48% USD:4-22 + " USD.04: 49% USD:4-22 + " USD.04: 87% USD:4-41 + " USD.04: 88% USD:4-41 + " USD.04: 96% USD:4-43 + " USD.04: 97% USD:4-44 + " W.1: 94% W(1)-1 + " W.1: 96% W(1)-1 +job[s], foreground USD.04: 37% USD:4-17 + " USD.04: 38% USD:4-17 + " USD.04: 39% USD:4-17 + " USD.04: 40% USD:4-17 + " USD.04: 40% USD:4-18 + " USD.04: 40% USD:4-18 + " USD.04: 42% USD:4-19 + " USD.04: 48% USD:4-22 + " USD.04: 80% USD:4-38 + " USD.04: 97% USD:4-44 +job[s], printer LPC.8: 40% LPC(8)-1 + " LPC.8: 44% LPC(8)-1 + " SMM.01: 55% SMM:1-34 +jobs, remove ATRM.1: 6% ATRM(1)-1 + " LPRM.1: 2% LPRM(1)-1 + " SMM.06: 16% SMM:6-2 + " SMM.06: 21% SMM:6-2 +job[s], suspended CSH.1: 11% CSH(1)-2 + " USD.04: 40% USD:4-18 + " USD.04: 42% USD:4-19 + " USD.04: 70% USD:4-34 +Job access control TTY.4: 51% TTY(4)-5 +job completion[s] CSH.1: 83% CSH(1)-18 + " CSH.1: 83% CSH(1)-18 + " CSH.1: 83% CSH(1)-18 +Job control TIP.1C: 25% TIP(1C)-1 + " TIP.1C: 26% TIP(1C)-1 + " TTY.4: 1% TTY(4)-1 + " USD.04: 83% USD:4-39 + " USD.13: 91% USD:13-15 + " GETPGRP.2: 74% GETPGRP(2)-1 +job control commands USD.04: 40% USD:4-18 + " USD.04: 40% USD:4-18 + " USD.04: 83% USD:4-39 +job control facility[s] CSH.1: 0% CSH(1)-1 + " CSH.1: 0% CSH(1)-1 + " USD.17: 84% USD:17-40 +job name CSH.1: 8% CSH(1)-2 + " LPD.8: 38% LPD(8)-1 + " LPD.8: 39% LPD(8)-1 + " LPR.1: 49% LPR(1)-1 +job number[s] ATRM.1: 35% ATRM(1)-1 + " ATRM.1: 42% ATRM(1)-1 + " CSH.1: 75% CSH(1)-16 + " LPQ.1: 33% LPQ(1)-1 + " LPRM.1: 46% LPRM(1)-1 + " USD.04: 38% USD:4-17 + " USD.04: 38% USD:4-17 + " USD.04: 39% USD:4-17 + " USD.04: 41% USD:4-18 + " USD.04: 41% USD:4-18 + " USD.04: 83% USD:4-39 +jobs command CSH.1: 5% CSH(1)-2 + " CSH.1: 11% CSH(1)-2 + " USD.04: 20% USD:4-9 + " USD.04: 20% USD:4-9 + " USD.04: 41% USD:4-18 + " USD.04: 45% USD:4-20 + " USD.04: 83% USD:4-39 +jobs shell command CSH.1: 59% CSH(1)-12 +Johnson, S. C. LINT.1: 93% LINT(1)-2 + " SMM.19: 0% SMM:19-2 + " YACC.1: 72% YACC(1)-1 + " YACC.1: 77% YACC(1)-1 +join USD.16: 39% USD:16-7 +join - relational database operator JOIN.1: 3% JOIN(1)-1 +join command ED.1: 55% ED(1)-4 +Joining Line[s] USD.13: 36% USD:13-7 +joke[s], decrypt USD.10: 84% USD:10-10 +Jonathan's Own Version of Emacs (see instead JOVE)[s] JOVE.N: 2% JOVE(1)-1 + " USD.17: 2% USD:17-1 +journal article[s] USD.30: 73% USD:30-8 + " USD.30: 73% USD:30-8 + " USD.31: 32% USD:31-5 + " USD.31: 32% USD:31-5 + " USD.31: 33% USD:31-5 + " USD.31: 35% USD:31-5 +journal name[s] USD.31: 32% USD:31-5 + " USD.31: 35% USD:31-5 + " USD.31: 89% USD:31-16 +JOVE, customizing USD.17: 51% USD:17-22 +JOVE, Exiting and Pausing - Leaving USD.17: 10% USD:17-5 +JOVE, help in USD.17: 6% USD:17-3 +jove - an interactive display-oriented text editor JOVE.N: 0% JOVE(1)-1 +JOVE buffer[s] JOVE.N: 21% JOVE(1)-1 + " JOVE_RECOVER.N: 1% JOVE_RECOVER(1) + " JOVE_RECOVER.N: 9% JOVE_RECOVER(1) + " USD.17: 4% USD:17-2 + " USD.17: 46% USD:17-20 + " USD.17: 51% USD:17-22 + " USD.17: 78% USD:17-37 +JOVE buffers after a system/editor crash, recover JOVE_RECOVER.N: 1% JOVE_RECOVER(1) +JOVE command[s] JOVE.N: 43% JOVE(1)-2 + " JOVE.N: 44% JOVE(1)-2 + " USD.17: 4% USD:17-2 + " USD.17: 10% USD:17-5 + " USD.17: 11% USD:17-5 + " USD.17: 59% USD:17-27 +JOVE command[s], chart of USD.17: 64% USD:17-29 +JOVE Command, Numeric Arguments to USD.17: 11% USD:17-5 +JOVE commands and variable[s], list of USD.17: 55% USD:17-25 +JOVE display[s] USD.17: 6% USD:17-3 + " USD.17: 41% USD:17-18 + " USD.17: 49% USD:17-21 +JOVE editor TEACHJOVE.N: 34% TEACHJOVE(1)-1 + " TEACHJOVE.N: 47% TEACHJOVE(1)-1 +JOVE Manual for UNIX User[s] USD.17: 0% USD:17-1 +JOVE Window[s], Running Processes in USD.17: 46% USD:17-20 +jove_recover - recover JOVE buffers after a system/editor crash JOVE_RECOVER.N: 1% JOVE_RECOVER(1) +Joy, William APROPOS.1: 95% APROPOS(1)-1 + " CSH.1: 95% CSH(1)-20 + " PXP.1: 95% PXP(1)-2 + " TERMCAP.3X: 98% TERMCAP(3X)-2 + " TERMCAP.5: 97% TERMCAP(5)-13 + " USD.04: 0% USD:4-1 + " USD.15: 0% USD:15-1 + " USD.16: 0% USD:16-1 +Joy, William N. SMM.01: 0% SMM:1-1 + " SMM.03: 4% SMM:3-1 + " SMM.14: 0% SMM:14-2 + " SMM.15: 0% SMM:15-2 +justify the message MAIL.1: 77% MAIL(1)-5 +justify-paragraph USD.17: 89% USD:17-43 +justify-region USD.17: 89% USD:17-43 +Kahan, W. ASINH.3M: 92% ASINH(3M)-1 + " EXP.3M: 98% EXP(3M)-2 + " HYPOT.3M: 96% HYPOT(3M)-1 + " MATH.3M: 99% MATH(3M)-7 + " SIN.3M: 96% SIN(3M)-2 + " SINH.3M: 89% SINH(3M)-1 + " SQRT.3M: 93% SQRT(3M)-1 +Karels, Michael J. SMM.01: 0% SMM:1-1 + " SMM.02: 0% SMM:2-2 + " SMM.13: 0% SMM:13-2 + " SMM.15: 0% SMM:15-2 +keep[s] MS.7: 40% MS(7)-2 + " MS.7: 97% MS(7)-3 + " USD.07: 78% USD:7-18 + " USD.22: 28% USD:22-5 +Keep[s], Floating USD.22: 34% USD:22-6 + " USD.22: 34% USD:22-6 + " USD.22: 30% USD:22-6 +keep floating USD.20: 61% USD:20-5 +Keeping blocks together USD.20: 60% USD:20-5 +keepsave USD.07: 78% USD:7-18 +Kennedy model 9300 tape transport TM.4: 19% TM(4)-1 +kermit SMM.12A: 98% SMM:12-23 +Kernel SMM.01: 80% SMM:1-48 +kernel, UNIX PS1.03: 68% PS1:3-9 + " PS2.04: 1% PS2:4-1 + " PS2.04: 95% PS2:4-9 + " PS2.04: 96% PS2:4-9 + " PS2.04: 96% PS2:4-9 +Kernel primitives PS1.06: 6% PS1:6-6 + " PS1.06: 94% PS1:6-41 +Kernighan, B. W. PS2.01: 97% PS2:1-15 + " PS2.01: 98% PS2:1-15 + " PS2.01: 98% PS2:1-15 + " PS2.03: 78% PS2:3-12 + " PS2.03: 78% PS2:3-12 +Kernighan, Brian W. PS1.17: 0% + " PS2.03: 0% PS2:3-1 + " PS2.08: 0% +kernel, booting a new SMM.01: 36% SMM:1-23 +Kernels, Building SMM.02: 2% SMM:2-2 + " SMM.02: 5% SMM:2-2 + " SMM.02: 8% SMM:2-4 + " SMM.02: 12% SMM:2-4 + " SMM.02: 16% SMM:2-6 + " SMM.02: 21% SMM:2-6 + " SMM.02: 25% SMM:2-8 + " SMM.02: 29% SMM:2-8 + " SMM.02: 33% SMM:2-10 + " SMM.02: 36% SMM:2-10 + " SMM.02: 39% SMM:2-12 + " SMM.02: 41% SMM:2-12 + " SMM.02: 44% SMM:2-14 + " SMM.02: 47% SMM:2-14 + " SMM.02: 50% SMM:2-16 + " SMM.02: 54% SMM:2-16 + " SMM.02: 58% SMM:2-18 + " SMM.02: 61% SMM:2-18 + " SMM.02: 64% SMM:2-20 + " SMM.02: 67% SMM:2-20 + " SMM.02: 70% SMM:2-22 + " SMM.02: 73% SMM:2-22 + " SMM.02: 76% SMM:2-24 + " SMM.02: 77% SMM:2-24 + " SMM.02: 79% SMM:2-26 + " SMM.02: 83% SMM:2-26 + " SMM.02: 83% SMM:2-28 + " SMM.02: 84% SMM:2-28 + " SMM.02: 85% SMM:2-30 + " SMM.02: 88% SMM:2-30 + " SMM.02: 92% SMM:2-32 + " SMM.02: 95% SMM:2-32 + " SMM.02: 99% SMM:2-34 +kernel, examining the SMM.03: 29% SMM:3-1 +kernel, layout of the SMM.01: 38% SMM:1-25 +kernel, lint the SMM.02: 47% SMM:2-14 +kernel, replacing your SMM.01: 25% SMM:1-18 +Kernel, UNIX CRASH.8V: 96% CRASH(8V)-3 + " CRASH.8V: 99% CRASH(8V)-3 + " SMM.02: 1% SMM:2-2 + " SMM.03: 1% SMM:3-1 + " SMM.03: 24% SMM:3-1 +kernel bugs CRASH.8V: 70% CRASH(8V)-2 +Kernel configuration SMM.01: 40% SMM:1-27 + " SMM.01: 38% SMM:1-25 +KERNEL DATA STRUCTURE SIZING RULE[s] SMM.02: 85% SMM:2-30 +Kernel debugging ADB.1: 73% ADB(1)-4 + " DBX.1: 10% DBX(1)-1 + " DBX.1: 71% DBX(1)-5 + " DBX.1: 74% DBX(1)-5 +kernel error log SMM.13: 22% SMM:13-8 +kernel limit SELECT.2: 78% SELECT(2)-2 + " SELECT.2: 83% SELECT(2)-2 + " SMM.01: 34% SMM:1-23 +kernel memory SMM.01: 31% SMM:1-21 +kernel memory mapping ADB.1: 6% ADB(1)-1 +Kernel message[s] SMM.13: 21% SMM:13-8 + " SYSLOGD.8: 14% SYSLOGD(8)-1 + " SYSLOGD.8: 70% SYSLOGD(8)-2 + " SYSLOGD.8: 76% SYSLOGD(8)-2 + " SYSLOG.3: 69% SYSLOG(3)-2 +kernel network support, changes in the SMM.13: 58% SMM:13-20 +Kernel organization SMM.01: 39% SMM:1-26 +kernel profiling KGMON.8: 15% KGMON(8)-1 + " SMM.02: 49% SMM:2-15 +kernel profiling buffer[s] SMM.13: 21% SMM:13-8 +kernel routing table[s] ROUTED.8C: 31% ROUTED(8C)-1 + " ROUTED.8C: 70% ROUTED(8C)-2 + " SMM.15: 77% SMM:15-22 +kernel source[s] SMM.13: 2% SMM:13-2 + " SMM.01: 39% SMM:1-26 +kernel stack PS.1: 39% PS(1)-2 + " SMM.01: 35% SMM:1-23 +kernel virtual addresses ADB.1: 12% ADB(1)-1 + " MEM.4: 40% MEM(4)-1 + " SMM.15: 42% SMM:15-13 +Kernels with Config, Building Berkeley UNIX SMM.02: 0% unknown +Kernighan, B. W. AWK.1: 94% AWK(1)-2 +Kernighan, Brian W. USD.01: 0% USD:1-1 + " USD.02: 0% USD:2-1 + " USD.12: 0% USD:12-1 + " USD.13: 0% USD:13-2 + " USD.19: 0% USD:19-1 + " USD.25: 0% USD:25-1 + " USD.26: 0% USD:26-1 + " USD.27: 0% USD:27-1 +Kessler, Peter USD.22: 99% USD:22-19 + " USD.23: 75% USD:23-10 +key, complex PS2.09: 17% PS2:9-33 + " PS2.09: 17% PS2:9-33 + " PS2.09: 17% PS2:9-33 + " PS2.09: 17% PS2:9-33 + " PS2.09: 17% PS2:9-33 +key[s], arrow TERMCAP.5: 71% TERMCAP(5)-10 + " TERMCAP.5: 72% TERMCAP(5)-11 + " TERMCAP.5: 72% TERMCAP(5)-11 + " TERMCAP.5: 73% TERMCAP(5)-11 + " USD.15: 6% USD:15-3 + " USD.15: 15% USD:15-5 + " USD.15: 23% USD:15-7 + " USD.15: 96% USD:15-27 + " USD.15: 96% USD:15-27 + " USD.15: 96% USD:15-27 + " USD.15: 96% USD:15-27 + " USD.17: 0% USD:17-1 +key[s], function TERMCAP.5: 72% TERMCAP(5)-10 + " TERMCAP.5: 92% TERMCAP(5)-13 + " USD.15: 56% USD:15-16 + " USD.15: 57% USD:15-16 + " USD.15: 57% USD:15-16 + " USD.15: 57% USD:15-16 + " USD.15: 83% USD:15-23 + " USD.15: 83% USD:15-23 + " USD.16: 41% USD:16-8 + " USD.16: 42% USD:16-8 + " WINDOW.1: 17% WINDOW(1)-2 +keys, map3270 - database for mapping ascii keystrokes into IBM 3270 MAP3270.5: 0% MAP3270(5)-1 +key[s], search USD.30: 80% USD:30-9 + " USD.30: 82% USD:30-9 + " USD.30: 82% USD:30-10 +key[s], sort SORT.1: 33% SORT(1)-1 + " SORT.1: 53% SORT(1)-1 + " SORTBIB.1: 43% SORTBIB(1)-1 +key bindings JOVE.N: 70% JOVE(1)-2 + " USD.17: 19% USD:17-9 + " USD.17: 55% USD:17-24 + " USD.17: 64% USD:17-29 +key file[s] SMM.10: 83% SMM:10-20 + " USD.30: 16% USD:30-2 + " USD.30: 20% USD:30-3 + " USD.30: 22% USD:30-3 + " USD.30: 37% USD:30-4 +Key Re-binding USD.17: 53% USD:17-24 +key search CRYPT.3: 25% CRYPT(3)-1 + " SMM.18: 38% SMM:18-3 + " SMM.18: 40% SMM:18-3 + " SMM.18: 71% SMM:18-4 +key/content pair[s] DBM.3X: 17% DBM(3X)-1 + " DBM.3X: 83% DBM(3X)-2 + " DBM.3X: 86% DBM(3X)-2 + " NDBM.3: 20% NDBM(3)-1 + " NDBM.3: 85% NDBM(3)-2 + " NDBM.3: 88% NDBM(3)-2 +keyboard macro[s] USD.17: 3% USD:17-2 + " USD.17: 54% USD:17-24 + " USD.17: 54% USD:17-24 + " USD.17: 54% USD:17-24 + " USD.17: 69% USD:17-32 + " USD.17: 79% USD:17-37 + " USD.17: 81% USD:17-39 + " USD.17: 81% USD:17-39 + " USD.17: 81% USD:17-39 + " USD.17: 95% USD:17-46 + " USD.17: 94% USD:17-45 +Keypad TERMCAP.5: 68% TERMCAP(5)-10 +Keyword[s] USD.11: 56% USD:11-9 +keys, ordering PS2.10: 23% PS2:10-23 + " PS2.10: 23% PS2:10-23 + " PS2.10: 24% PS2:10-23 +key[s], significant sort PS2.10: 23% PS2:10-23 + " PS2.10: 23% PS2:10-23 + " PS2.10: 23% PS2:10-23 +key word[s] PS1.05: 64% PS1:5-9 + " PS1.05: 67% PS1:5-10 + " PS1.05: 68% PS1:5-10 + " PS1.05: 68% PS1:5-10 +keyword[s], searching notes for USD.11: 56% USD:11-9 +Keyword parameters USD.03: 55% USD:3-14 + " USD.03: 56% USD:3-14 + " USD.03: 57% USD:3-15 + " USD.03: 57% USD:3-15 +keyword substitution CO.N: 25% CO(1)-1 + " CO.N: 60% CO(1)-2 +keyword values CI.N: 55% CI(1)-2 + " CO.N: 65% CO(1)-2 +keyword-in-context listing USD.01: 75% USD:1-11 +keywords, Id PS1.14: 11% PS1:14-2 + " PS1.14: 12% PS1:14-2 + " PS1.14: 12% PS1:14-2 + " PS1.14: 13% PS1:14-2 + " PS1.14: 14% PS1:14-2 + " PS1.14: 29% PS1:14-4 + " PS1.14: 29% PS1:14-4 + " PS1.14: 32% PS1:14-5 + " PS1.14: 32% PS1:14-5 + " PS1.14: 33% PS1:14-5 + " PS1.14: 33% PS1:14-5 + " PS1.14: 35% PS1:14-5 + " PS1.14: 59% PS1:14-9 + " PS1.14: 60% PS1:14-9 + " PS1.14: 63% PS1:14-9 + " PS1.14: 63% PS1:14-9 + " PS1.14: 91% PS1:14-14 + " PS1.14: 92% PS1:14-14 + " PS1.14: 98% PS1:14-15 +kg - KL-11/DL-11W line clock KG.4: 7% unknown +kgmon SMM.02: 19% SMM:2-6 +kgmon - generate a dump of the operating system's profile buffers KGMON.8: 3% KGMON(8)-1 +Kill KILL.1: 11% KILL(1)-1 + " KILL.1: 40% KILL(1)-1 + " KILL.1: 76% KILL(1)-1 + " PTRACE.2: 57% PTRACE(2)-2 + " SMM.12A: 57% SMM:12-13 +kill(pid, signo) PS1.06: 30% PS1:6-14 +kill, line STTY.1: 66% STTY(1)-2 + " TTY.4: 72% TTY(4)-7 +kill - send a signal to a process KILL.3F: 10% CSH(1)-12 +kill - send signal to a process KILL.2: 2% KILL(2)-1 +kill - terminate a process with extreme prejudice KILL.1: 3% KILL(1)-1 +kill character[s] GETTYTAB.5: 94% GETTYTAB(5)-3 + " MAIL.1: 71% MAIL(1)-5 + " MORE.1: 65% MORE(1)-2 + " STTY.1: 26% STTY(1)-1 + " TELNET.1C: 67% TELNET(1C)-3 + " TELNET.1C: 68% TELNET(1C)-3 + " TELNET.1C: 74% TELNET(1C)-3 + " TSET.1: 3% TSET(1)-1 + " TSET.1: 51% TSET(1)-2 + " TTY.4: 22% TTY(4)-3 + " TTY.4: 25% TTY(4)-3 + " USD.04: 4% USD:4-3 + " USD.04: 5% USD:4-3 + " USD.04: 5% USD:4-3 + " USD.04: 97% USD:4-44 + " USD.15: 5% USD:15-2 + " USD.15: 70% USD:15-20 + " USD.15: 89% USD:15-25 +kill command[s] USD.04: 42% USD:4-19 + " USD.17: 14% USD:17-7 + " USD.17: 15% USD:17-7 + " USD.17: 16% USD:17-8 + " USD.17: 16% USD:17-8 + " USD.17: 17% USD:17-8 + " USD.17: 18% USD:17-8 + " USD.17: 26% USD:17-12 + " USD.17: 99% USD:17-48 + " USD.17: 99% USD:17-48 + " CSH.1: 59% CSH(1)-12 +kill ring USD.17: 17% USD:17-8 + " USD.17: 17% USD:17-8 + " USD.17: 17% USD:17-8 + " USD.17: 17% USD:17-8 + " USD.17: 17% USD:17-8 + " USD.17: 71% USD:17-33 + " USD.17: 75% USD:17-35 + " USD.17: 75% USD:17-35 + " USD.17: 99% USD:17-48 +kill signal SMM.06: 61% SMM:6-5 + " USD.17: 75% USD:17-35 + " SMM.12A: 35% SMM:12-8 + " SIGNAL.3C: 23% SIGNAL(3C)-1 +kill-next-word (ESC D) USD.17: 75% USD:17-35 +kill-previous-word (ESC Rubout) USD.17: 75% USD:17-35 +kill-region (C-W) USD.17: 75% USD:17-35 +kill-s-expression (ESC C-K) USD.17: 76% USD:17-36 +kill-some-buffer[s] USD.17: 76% USD:17-36 +kill-to-beginning-of-sentence (C-X Rubout) USD.17: 76% USD:17-36 +kill-to-end-of-line (C-K) USD.17: 76% USD:17-36 +kill-to-end-of-sentence (ESC K) USD.17: 76% USD:17-36 +killchar() PS1.18: 51% PS1:18-15 +killed text USD.17: 18% USD:17-8 + " USD.17: 29% USD:17-13 + " USD.17: 99% USD:17-48 +Killing and Moving Text USD.17: 14% USD:17-7 +Killing Buffer[s] USD.17: 37% USD:17-16 +Killing Your Mistake[s] USD.17: 29% USD:17-13 +killpg KILL.2: 34% KILL(2)-1 +killpg - send signal to a process group KILLPG.2: 4% KILLPG(2)-1 +Kincaid Formula USD.32: 16% USD:32-3 + " USD.32: 17% USD:32-3 + " USD.32: 20% USD:32-4 +KL-11/DL-11W line clock, kg - KG.4: 7% unknown +Klingon[s] USD.34: 2% USD:34-1 + " USD.34: 6% USD:34-1 + " USD.34: 16% USD:34-2 + " USD.34: 22% USD:34-3 + " USD.34: 25% USD:34-3 + " USD.34: 30% USD:34-4 + " USD.34: 33% USD:34-4 + " USD.34: 46% USD:34-6 + " USD.34: 52% USD:34-7 + " USD.34: 55% USD:34-7 + " USD.34: 56% USD:34-7 + " USD.34: 58% USD:34-7 + " USD.34: 59% USD:34-7 + " USD.34: 60% USD:34-7 + " USD.34: 63% USD:34-8 + " USD.34: 89% USD:34-11 + " USD.34: 92% USD:34-11 + " USD.34: 92% USD:34-11 +killpgrp(pgrp, signo) PS1.06: 30% PS1:6-14 +knapsack[s] XSEND.1: 32% XSEND(1)-1 +KSP CRASH.8V: 47% CRASH(8V)-2 +Kwok-Choi Ng ASINH.3M: 93% +L-devices file[s] L-DEVICES.5: 2% L-DEVICES(5)-1 + " L_SYS.5: 48% L.SYS(5)-2 + " L_SYS.5: 65% L.SYS(5)-3 + " SMM.01: 59% SMM:1-36 + " SMM.01: 59% SMM:1-37 + " SMM.01: 59% SMM:1-37 + " SMM.09: 26% SMM:9-6 + " SMM.09: 72% SMM:9-16 + " L-DEVICES.5: 1% L-DEVICES(5)-1 + " L_SYS.5: 9% L.SYS(5)-1 + " L_SYS.5: 41% L.SYS(5)-2 + " L_SYS.5: 43% L.SYS(5)-2 + " L_SYS.5: 49% L.SYS(5)-2 + " L_SYS.5: 94% L.SYS(5)-4 + " SMM.09: 56% SMM:9-12 + " SMM.09: 68% SMM:9-15 + " SMM.09: 69% SMM:9-15 + " SMM.09: 69% SMM:9-15 + " SMM.09: 71% SMM:9-15 + " UUCICO.8C: 64% UUCICO(8C)-2 +L-dialcodes L-DIALCODES.5: 3% L-DIALCODES(5)- + " L-DIALCODES.5: 30% L-DIALCODES(5)- + " L-DIALCODES.5: 36% L-DIALCODES(5)- + " L-DIALCODES.5: 46% L-DIALCODES(5)- + " L-DIALCODES.5: 65% L-DIALCODES(5)- + " L-DIALCODES.5: 70% L-DIALCODES(5)- + " L-DIALCODES.5: 93% L-DIALCODES(5)- + " L_SYS.5: 58% L.SYS(5)-2 + " SMM.01: 59% SMM:1-36 + " SMM.09: 61% SMM:9-13 + " SMM.09: 71% SMM:9-15 +L-dialcodes file L-DIALCODES.5: 6% L-DIALCODES(5)- + " SMM.01: 59% SMM:1-36 + " SMM.01: 59% SMM:1-37 + " SMM.09: 26% SMM:9-6 +L.aliases - UUCP hostname alias file L_ALIASES.5: 4% L.ALIASES(5)-1 +L.cmds - UUCP remote command permissions file L_CMDS.5: 3% L.CMDS(5)-1 +L.sy[s] SMM.09: 25% SMM:9-6 + " SMM.09: 45% SMM:9-10 +L.sys - UUCP remote host description file L_SYS.5: 0% L.SYS(5)-1 +L.sys file[s] L_SYS.5: 1% L.SYS(5)-1 + " SMM.01: 59% SMM:1-36 + " SMM.10: 11% SMM:10-3 + " SMM.10: 29% SMM:10-8 + " SMM.10: 42% SMM:10-12 + " SMM.10: 63% SMM:10-16 + " SMM.10: 64% SMM:10-16 + " SMM.10: 65% SMM:10-17 + " SMM.10: 65% SMM:10-17 + " SMM.10: 68% SMM:10-17 + " SMM.10: 68% SMM:10-17 + " SMM.10: 85% SMM:10-21 + " SMM.10: 91% SMM:10-23 + " SMM.10: 91% SMM:10-23 + " SMM.10: 91% SMM:10-23 + " SMM.10: 97% SMM:10-24 + " L_ALIASES.5: 81% unknown +L.sys file line SMM.10: 12% SMM:10-3 + " SMM.10: 92% SMM:10-23 + " SMM.10: 93% SMM:10-23 + " SMM.10: 98% SMM:10-24 +Label[s] PLOT.3F: 12% PLOT(3F)-1 + " PLOT.3X: 9% PLOT(3X)-1 +label, branch to USD.18: 94% USD:18-10 +label[s], case CSH.1: 51% CSH(1)-10 + " CSH.1: 52% CSH(1)-10 + " CSH.1: 72% CSH(1)-15 + " CSH.1: 72% CSH(1)-15 + " CSH.1: 72% CSH(1)-15 +label[s], default CSH.1: 72% CSH(1)-15 + " CSH.1: 72% CSH(1)-15 + " CSH.1: 72% CSH(1)-15 +label, goto CSH.1: 65% CSH(1)-14 + " USD.04: 63% USD:4-31 +label, size of the USD.22: 55% USD:22-10 +label number SMM.19: 26% SMM:19-8 + " SMM.19: 36% SMM:19-10 + " SMM.19: 36% SMM:19-10 + " SMM.19: 39% SMM:19-11 + " SMM.19: 39% SMM:19-11 +label[s], global PS1.04: 82% PS1:4-42 + " PS1.05: 31% PS1:5-4 + " PS1.05: 31% PS1:5-4 + " PS1.05: 32% PS1:5-4 + " PS1.05: 32% PS1:5-4 +label[s], numeric PS1.05: 32% PS1:5-4 + " PS1.05: 33% PS1:5-5 + " PS1.05: 34% PS1:5-5 + " PS1.05: 34% PS1:5-5 + " PS2.06: 72% PS2:6-25 + " PS2.06: 72% PS2:6-25 +label[s], statement PS1.02: 40% PS1:2-14 + " PS1.02: 64% PS1:2-21 + " PS1.10: 22% PS1:10-5 + " PS2.06: 72% PS2:6-25 +Labeled Statement PS1.01: 69% PS1:1-23 +LALR(1) grammar[s] PS1.15: 2% PS1:15-1 +labelled tape TOPEN.3F: 62% TOPEN(3F)-1 +lambda binding[s] PS2.09: 26% PS2:9-51 + " PS2.09: 28% PS2:9-54 + " PS2.09: 30% PS2:9-56 + " PS2.09: 30% PS2:9-56 + " PS2.09: 30% PS2:9-56 + " PS2.09: 31% PS2:9-57 + " PS2.09: 31% PS2:9-57 + " PS2.09: 48% PS2:9-85 +lambda expression[s] PS2.09: 32% PS2:9-59 + " PS2.09: 59% PS2:9-103 + " PS2.09: 59% PS2:9-103 + " PS2.09: 75% PS2:9-123 + " PS2.09: 84% PS2:9-136 +lambda function PS2.09: 54% PS2:9-95 + " PS2.09: 54% PS2:9-95 + " PS2.09: 54% PS2:9-95 +language, assembly AS.1: 32% AS(1)-1 +Language, Awk - A Pattern Scanning and Processing USD.19: 0% USD:19-1 +Language, BC - An Arbitrary Precision Desk-Calculator USD.06: 0% USD:6-1 +language, assembly PS1.04: 72% PS1:4-37 + " PS2.01: 9% PS2:1-2 + " PS2.09: 1% PS2:9-4 +language, C PS1.02: 2% PS1:2-4 + " PS1.06: 4% PS1:6-5 + " PS1.06: 5% PS1:6-5 + " PS1.09: 74% PS1:9-8 + " PS2.10: 61% PS2:10-52 +Language, C Programming PS1.01: 0% + " PS1.01: 0% + " PS1.01: 2% PS1:1-2 + " PS1.01: 5% PS1:1-2 + " PS1.01: 8% PS1:1-4 + " PS1.01: 12% PS1:1-4 + " PS1.01: 16% PS1:1-6 + " PS1.01: 20% PS1:1-6 + " PS1.01: 25% PS1:1-8 + " PS1.01: 28% PS1:1-8 + " PS1.01: 32% PS1:1-10 + " PS1.01: 34% PS1:1-10 + " PS1.01: 37% PS1:1-12 + " PS1.01: 40% PS1:1-12 + " PS1.01: 42% PS1:1-14 + " PS1.01: 45% PS1:1-14 + " PS1.01: 48% PS1:1-16 + " PS1.01: 52% PS1:1-16 + " PS1.01: 54% PS1:1-18 + " PS1.01: 57% PS1:1-18 + " PS1.01: 60% PS1:1-20 + " PS1.01: 62% PS1:1-20 + " PS1.01: 64% PS1:1-22 + " PS1.01: 67% PS1:1-22 + " PS1.01: 69% PS1:1-24 + " PS1.01: 72% PS1:1-24 + " PS1.01: 75% PS1:1-26 + " PS1.01: 79% PS1:1-26 + " PS1.01: 82% PS1:1-28 + " PS1.01: 84% PS1:1-28 + " PS1.01: 86% PS1:1-30 + " PS1.01: 90% PS1:1-30 + " PS1.01: 94% PS1:1-32 + " PS1.01: 95% PS1:1-32 + " PS1.01: 96% PS1:1-34 + " PS1.01: 97% PS1:1-34 + " PS1.01: 98% PS1:1-36 + " PS1.01: 99% PS1:1-36 + " PS1.07a: 7% PS1:7-2 + " PS1.08: 0% + " PS2.01: 98% PS2:1-15 + " PS2.03: 78% PS2:3-12 +language, command PS2.04: 96% PS2:4-9 + " PS2.04: 97% PS2:4-9 + " PS2.04: 97% PS2:4-9 + " SH.1: 1% SH(1)-1 + " USD.03: 2% USD:3-1 +Language, Dungeon Definition AARDVARK.6: 47% AARDVARK(6)-1 + " SMM.12A: 78% SMM:12-18 +language, eqn USD.02: 5% USD:2-1 + " USD.02: 41% USD:2-5 + " USD.26: 85% USD:26-7 + " USD.27: 5% USD:27-1 +Language, Fortran EFL.1: 4% EFL(1)-1 +language[s], host PS1.16: 7% PS1:16-2 + " PS1.16: 7% PS1:16-2 + " PS1.16: 7% PS1:16-2 + " PS1.16: 7% PS1:16-2 + " PS1.16: 8% PS1:16-2 + " PS1.16: 8% PS1:16-2 + " PS1.16: 66% PS1:16-9 +language, input PS1.15: 0% PS1:15-1 + " PS1.15: 0% PS1:15-1 + " PS2.08: 88% PS2:8-12 +language[s], programming PS1.15: 0% PS1:15-1 + " PS1.15: 42% PS1:15-12 + " PS1.15: 71% PS1:15-20 + " PS1.16: 7% PS1:16-2 + " PS1.17: 5% PS1:17-1 + " PS2.04: 98% PS2:4-10 + " PS2.07: 20% PS2:7-10 + " PS2.08: 29% PS2:8-4 + " PS2.09: 1% PS2:9-4 + " PS2.09: 2% PS2:9-4 + " USD.01: 5% USD:1-2 + " USD.01: 80% USD:1-12 + " USD.03: 2% USD:3-1 + " USD.03: 3% USD:3-1 + " USD.19: 1% USD:19-1 + " USD.19: 5% USD:19-1 +language definitions file VGRIND.1: 54% VGRIND(1)-1 +Language Design USD.26: 14% USD:26-2 + " USD.26: 14% USD:26-2 + " USD.27: 98% USD:27-10 +language feature[s] USD.01: 97% USD:1-14 + " USD.06: 51% USD:6-6 +large boxe[s] USD.24: 68% USD:24-22 +Large Bracket[s] USD.24: 66% USD:24-21 +laser printer[s] SMM.01: 55% SMM:1-34 + " SMM.06: 3% SMM:6-2 + " USD.22: 95% USD:22-18 +last - indicate last logins of users and teletypes LAST.1: 2% LAST(1)-1 +last close, hang up on TTY.4: 47% TTY(4)-5 +last component of a pathname USD.04: 60% USD:4-29 +last file, end of the USD.24: 51% USD:24-17 +Last Line ED.1: 23% ED(1)-2 +last line in buffer USD.12: 31% USD:12-4 +last line output, text length on the USD.24: 34% USD:24-12 +Last Page USD.24: 94% USD:24-31 +last modification, time of PS1.12: 27% PS1:12-3 +lastcomm SMM.12A: 35% SMM:12-8 +lastcomm - show last commands executed in reverse order LASTCOMM.1: 3% LASTCOMM(1)-1 +latest revision CO.N: 40% CO(1)-2 +layer[s], network SMM.15: 4% SMM:15-3 + " SMM.15: 4% SMM:15-3 + " SMM.15: 4% SMM:15-3 +layer, Network-interface SMM.15: 32% SMM:15-10 + " SMM.15: 33% SMM:15-10 +layer, protocol SMM.13: 58% SMM:13-20 + " SMM.15: 27% SMM:15-8 + " SMM.12A: 59% SMM:12-14 +layer, socket SMM.13: 38% SMM:13-14 + " SMM.15: 16% SMM:15-6 +layer, transport INET.4F: 7% INET(4F)-1 + " INTRO.4N: 52% INTRO(4N)-2 + " NS.4F: 10% NS(4F)-1 + " SMM.15: 4% SMM:15-3 + " SMM.15: 5% SMM:15-3 +layout of the kernel SMM.01: 38% SMM:1-25 +Layout policy[s] SMM.14: 37% SMM:14-6 +LD ERROR.1: 30% ERROR(1)-1 + " SMM.12A: 35% SMM:12-8 +ld, link editor A_OUT.5: 2% A.OUT(5)-1 + " INTRO.3: 3% INTRO(3)-1 +ld - link editor LD.1: 0% LD(1)-1 +ld, link editor PS1.05: 4% PS1:5-1 + " PS1.05: 41% PS1:5-6 + " PS1.05: 72% PS1:5-10 +ldexp FREXP.3: 9% +Leader[s] USD.24: 54% USD:24-18 + " USD.24: 9% USD:24-4 +leader repetition character USD.24: 57% USD:24-18 +leader, comment PS1.13: 64% PS1:13-13 + " PS1.13: 64% PS1:13-13 +leaf node[s] SMM.10: 63% SMM:10-16 + " SMM.19: 15% SMM:19-5 + " SMM.19: 64% SMM:19-18 +LEARN SMM.12A: 35% SMM:12-8 +learn - computer aided instruction about UNIX LEARN.1: 1% LEARN(1)-1 +LEARN - Computer-Aided Instruction on UNIX USD.02: 0% USD:2-1 +learn script interpreter USD.02: 50% USD:2-6 +learning ed USD.12: 2% USD:12-1 +learnrc LEARN.1: 15% LEARN(1)-1 +Leave SMM.12A: 35% SIGNAL(3C)-1 +leave - remind you when you have to leave LEAVE.1: 4% CSH(1)-12 +Leaving JOVE, Exiting and Pausing - USD.17: 10% USD:17-5 +Leffler, Samuel J. SMM.01: 0% SMM:1-1 + " SMM.02: 0% SMM:2-2 + " SMM.03: 2% SMM:3-1 + " SMM.14: 0% SMM:14-2 + " SMM.15: 0% SMM:15-2 +leaveok() PS1.18: 16% PS1:18-5 +leaveok(win, boolf) PS1.18: 51% PS1:18-15 +Left context PS1.16: 33% PS1:16-5 +Left Recursion PS1.15: 67% PS1:15-19 +left adjustment PRINTF.3S: 37% PRINTF(3S)-1 +left and right command[s] USD.27: 53% USD:27-6 +left and right quote USD.22: 97% USD:22-18 +Left quote USD.23: 71% USD:23-9 +left-adjust USD.20: 52% USD:20-4 +left-adjusted column entry USD.28: 12% USD:28-3 +left-aligned (block) paragraph USD.20: 7% USD:20-1 +left-justified block-style paragraph[s] USD.22: 50% USD:22-9 +left-justified list USD.22: 34% USD:22-6 +left-margin (variable) USD.17: 76% USD:17-36 +left-margin-here USD.17: 77% USD:17-36 +Lempel-Ziv coding COMPRESS.1: 6% COMPRESS(1)-1 +len INDEX.3F: 8% INDEX(3F)-1 + " PS1.17: 82% PS1:17-5 +length, Logical record PS1.03: 7% PS1:3-3 + " PS1.03: 8% PS1:3-3 + " PS1.03: 9% PS1:3-3 + " PS1.03: 11% PS1:3-3 + " PS1.03: 71% PS1:3-9 +length, default USD.25: 58% USD:25-9 +length, default line USD.28: 27% USD:28-5 +length[s], field USD.24: 56% USD:24-18 + " USD.24: 56% USD:24-18 +length, footnote MS.7: 76% MS(7)-3 +length[s], line MS.7: 71% MS(7)-3 + " MS.7: 83% MS(7)-3 + " ROFFBIB.1: 73% ROFFBIB(1)-1 + " USD.17: 52% USD:17-23 + " USD.20: 9% USD:20-1 + " USD.23: 56% USD:23-7 + " USD.23: 56% USD:23-7 + " USD.24: 22% USD:24-9 + " USD.24: 35% USD:24-12 + " USD.24: 36% USD:24-12 + " USD.24: 41% USD:24-14 + " USD.24: 41% USD:24-14 + " USD.24: 41% USD:24-14 + " USD.24: 42% USD:24-14 + " USD.24: 72% USD:24-23 + " USD.24: 72% USD:24-23 + " USD.24: 74% USD:24-23 + " USD.25: 24% USD:25-4 + " USD.25: 24% USD:25-4 + " USD.25: 24% USD:25-4 + " USD.25: 58% USD:25-9 + " USD.28: 9% USD:28-2 + " USD.28: 22% USD:28-4 + " USD.28: 37% USD:28-6 + " USD.28: 37% USD:28-6 + " USD.29: 35% USD:29-4 + " SMM.07A: 75% SMM:07-32 + " MS.7: 75% MS(7)-3 + " USD.24: 7% USD:24-3 +length, page PR.1: 57% PR(1)-1 + " PRINTCAP.5: 39% PRINTCAP(5)-1 + " PRINTCAP.5: 41% PRINTCAP(5)-1 + " SMM.06: 52% SMM:6-4 + " USD.23: 9% USD:23-2 + " USD.23: 68% USD:23-9 + " USD.24: 31% USD:24-11 + " USD.24: 48% USD:24-16 +length[s], record DIR.5: 66% DIR(5)-1 +length, sentence STYLE.1: 25% STYLE(1)-1 + " USD.32: 6% USD:32-2 + " USD.32: 23% USD:32-4 + " USD.32: 23% USD:32-4 + " USD.32: 30% USD:32-5 +length[s], record PS1.02: 36% PS1:2-12 + " PS1.02: 43% PS1:2-15 + " PS1.02: 43% PS1:2-15 + " PS1.02: 77% PS1:2-25 + " PS1.02: 77% PS1:2-25 + " PS1.02: 77% PS1:2-25 + " PS1.02: 82% PS1:2-27 + " PS1.03: 10% PS1:3-3 + " PS1.03: 10% PS1:3-3 +length[s], title USD.25: 64% USD:25-10 + " USD.25: 81% USD:25-12 + " MS.7: 75% MS(7)-3 +length[s], word STYLE.1: 27% STYLE(1)-1 + " USD.32: 1% USD:32-1 + " USD.32: 16% USD:32-3 + " USD.32: 26% USD:32-4 + " USD.32: 26% USD:32-4 +length function and awk variable USD.19: 45% USD:19-4 +length of string STRING.3: 85% STRING(3)-1 +Length of title USD.24: 72% USD:24-23 +Leres, Craig USD.07: 0% USD:7-2 +Lesk, M. E. LEARN.1: 63% LEARN(1)-1 + " LEX.1: 93% LEX(1)-1 + " SMM.21: 0% SMM:21-1 + " TBL.1: 96% TBL(1)-1 + " USD.20: 0% USD:20-1 + " USD.28: 0% USD:28-1 + " USD.30: 0% USD:30-1 + " UUCP.1C: 67% UUCP(1C)-2 +Lesk, Mike REFER.1: 95% REFER(1)-2 +lengths of word[s] PS1.16: 74% PS1:16-10 +Lesk, M. E. PS1.16: 0% + " PS2.01: 98% PS2:1-15 +lesson script[s] LEARN.1: 48% LEARN(1)-1 + " LEARN.1: 50% LEARN(1)-1 + " LEARN.1: 77% LEARN(1)-1 + " USD.02: 4% USD:2-1 + " USD.02: 4% USD:2-1 +letter[s], capital USD.18: 80% USD:18-8 + " USD.32: 14% USD:32-3 +letters, Greek EQN.1: 86% EQN(1)-2 + " USD.25: 22% USD:25-4 + " USD.26: 6% USD:26-1 + " USD.27: 85% USD:27-9 +letter, lower case CTYPE.3: 44% CTYPE(3)-1 +letter, partial USD.07: 4% USD:7-2 + " USD.07: 80% USD:7-19 +letter, upper case CTYPE.3: 41% CTYPE(3)-1 +letter[s], upper case and lower case USD.17: 23% USD:17-10 +letters, uppercase PS1.18: 68% PS1:18-19 + " USD.33: 25% USD:33-3 +level, nesting PS1.05: 79% PS1:5-11 + " PS2.06: 73% PS2:6-25 +level[s], block SMM.19: 25% SMM:19-8 + " SMM.19: 25% SMM:19-8 + " SMM.19: 25% SMM:19-8 + " SMM.19: 26% SMM:19-8 + " SMM.19: 26% SMM:19-8 +level, command SMM.17: 17% SMM:17-1 +level, diversion USD.24: 12% USD:24-5 + " USD.24: 32% USD:24-11 + " USD.24: 47% USD:24-16 +level[s], dump DUMP.8: 7% DUMP(8)-1 + " DUMP.8: 18% DUMP(8)-1 + " DUMP.8: 72% DUMP(8)-2 +level, fragment FS.5: 54% FS(5)-2 + " SMM.05: 14% SMM:5-4 + " SMM.14: 28% SMM:14-5 +level[s], log SENDMAIL.8: 62% SENDMAIL(8)-2 + " SMM.07A: 13% SMM:07-8 + " SMM.07A: 13% SMM:07-8 + " SMM.07A: 13% SMM:07-8 + " SMM.07A: 32% SMM:07-15 +level[s], precedence PS1.05: 37% PS1:5-5 + " PS1.15: 48% PS1:15-14 + " PS1.15: 50% PS1:15-15 + " PS1.15: 52% PS1:15-15 +Lex PS1.12: 34% PS1:12-3 + " PS1.12: 65% PS1:12-6 + " PS1.12: 67% PS1:12-6 + " PS1.12: 98% PS1:12-9 + " PS1.15: 25% PS1:15-7 + " PS1.16: 0% + " PS1.16: 0% + " PS1.16: 1% PS1:16-1 + " PS1.16: 2% PS1:16-1 + " PS1.16: 2% PS1:16-1 + " PS1.16: 3% PS1:16-1 + " PS1.16: 3% PS1:16-1 + " PS1.16: 4% PS1:16-1 + " PS1.16: 5% PS1:16-1 + " PS1.16: 6% PS1:16-2 + " PS1.16: 6% PS1:16-2 + " PS1.16: 7% PS1:16-2 + " PS1.16: 7% PS1:16-2 + " PS1.16: 8% PS1:16-2 + " PS1.16: 8% PS1:16-2 + " PS1.16: 9% PS1:16-2 + " PS1.16: 11% PS1:16-2 + " PS1.16: 12% PS1:16-2 + " PS1.16: 12% PS1:16-2 + " PS1.16: 13% PS1:16-2 + " PS1.16: 13% PS1:16-2 + " PS1.16: 14% PS1:16-2 + " PS1.16: 14% PS1:16-2 + " PS1.16: 15% PS1:16-2 + " PS1.16: 15% PS1:16-2 + " PS1.16: 15% PS1:16-2 + " PS1.16: 15% PS1:16-2 + " PS1.16: 17% PS1:16-3 + " PS1.16: 17% PS1:16-3 + " PS1.16: 18% PS1:16-3 + " PS1.16: 24% PS1:16-4 + " PS1.16: 25% PS1:16-4 + " PS1.16: 31% PS1:16-4 + " PS1.16: 32% PS1:16-4 + " PS1.16: 33% PS1:16-5 + " PS1.16: 35% PS1:16-5 + " PS1.16: 36% PS1:16-5 + " PS1.16: 41% PS1:16-5 + " PS1.16: 41% PS1:16-6 + " PS1.16: 47% PS1:16-6 + " PS1.16: 49% PS1:16-6 + " PS1.16: 49% PS1:16-6 + " PS1.16: 49% PS1:16-7 + " PS1.16: 50% PS1:16-7 + " PS1.16: 50% PS1:16-7 + " PS1.16: 50% PS1:16-7 + " PS1.16: 51% PS1:16-7 + " PS1.16: 52% PS1:16-7 + " PS1.16: 55% PS1:16-7 + " PS1.16: 55% PS1:16-7 + " PS1.16: 56% PS1:16-7 + " PS1.16: 58% PS1:16-8 + " PS1.16: 61% PS1:16-8 + " PS1.16: 61% PS1:16-8 + " PS1.16: 61% PS1:16-8 + " PS1.16: 61% PS1:16-8 + " PS1.16: 62% PS1:16-8 + " PS1.16: 64% PS1:16-8 + " PS1.16: 66% PS1:16-8 + " PS1.16: 67% PS1:16-9 + " PS1.16: 68% PS1:16-9 + " PS1.16: 69% PS1:16-9 + " PS1.16: 69% PS1:16-9 + " PS1.16: 69% PS1:16-9 + " PS1.16: 69% PS1:16-9 + " PS1.16: 74% PS1:16-10 + " PS1.16: 75% PS1:16-10 + " PS1.16: 81% PS1:16-11 + " PS1.16: 84% PS1:16-11 + " PS1.16: 84% PS1:16-11 + " PS1.16: 84% PS1:16-11 + " PS1.16: 87% PS1:16-11 + " PS1.16: 89% PS1:16-12 + " PS1.16: 89% PS1:16-12 + " PS1.16: 90% PS1:16-12 + " PS1.16: 90% PS1:16-12 + " PS1.16: 95% PS1:16-12 + " PS1.16: 95% PS1:16-12 +Lex, Regular expressions in PS1.16: 94% PS1:16-12 +Lex Action[s] PS1.16: 42% PS1:16-6 + " PS1.16: 35% PS1:16-5 +level[s], protocol GETSOCKOPT.2: 29% GETSOCKOPT(2)-1 + " SMM.15: 63% SMM:15-19 +level, recursive editing USD.17: 24% USD:17-11 + " USD.17: 24% USD:17-11 + " USD.17: 24% USD:17-11 + " USD.17: 88% USD:17-42 +level, socket GETSOCKOPT.2: 37% GETSOCKOPT(2)-1 + " SMM.13: 37% SMM:13-13 + " SMM.13: 37% SMM:13-13 + " SMM.13: 37% SMM:13-14 +level, stack USD.05: 23% USD:5-3 +level, user SMM.13: 82% SMM:13-28 + " SMM.15: 79% SMM:15-22 +level number[s] CI.N: 43% CI(1)-1 + " CI.N: 49% CI(1)-2 + " DUMP.5: 93% DUMP(5)-2 + " USD.20: 29% USD:20-2 +level zero dump RESTORE.8: 96% RESTORE(8)-3 +Lex LEX.1: 10% LEX(1)-1 + " LEX.1: 95% LEX(1)-1 + " USD.19: 73% USD:19-6 + " USD.19: 99% USD:19-8 + " YACC.1: 34% YACC(1)-1 + " SMM.12A: 14% SMM:12-4 + " CTAGS.1: 6% CTAGS(1)-1 + " USD.19: 83% USD:19-6 + " SMM.12A: 35% SMM:12-8 +lex example[s] PS1.16: 71% PS1:16-9 +lex internal array size[s] PS1.16: 93% PS1:16-12 +Lex program[s] PS1.15: 25% PS1:15-7 + " PS1.16: 13% PS1:16-2 + " PS1.16: 16% PS1:16-3 + " PS1.16: 19% PS1:16-3 +Lex Regular Expression[s] PS1.16: 22% PS1:16-3 +Lex rule[s] PS1.16: 21% PS1:16-3 + " PS1.16: 55% PS1:16-7 + " PS1.16: 61% PS1:16-8 + " PS1.16: 62% PS1:16-8 + " PS1.16: 70% PS1:16-9 +Lex source PS1.16: 0% PS1:16-1 + " PS1.16: 18% PS1:16-3 + " PS1.16: 63% PS1:16-8 + " PS1.16: 67% PS1:16-9 +Lex source program, compiling a PS1.16: 67% PS1:16-9 +lex, awk performance comparison, wc, grep, egrep, fgrep, sed, USD.19: 85% USD:19-6 +lex - generator of lexical analysis programs LEX.1: 3% LEX(1)-1 +lex file[s] SMM.12A: 14% SMM:12-4 +lex program[s] LEX.1: 79% LEX(1)-1 + " USD.19: 74% USD:19-6 +lex.yy.c LEX.1: 26% LEX(1)-1 +Lexical Analysis SMM.19: 6% SMM:19-3 + " SMM.19: 11% SMM:19-4 + " SMM.19: 16% SMM:19-5 + " SMM.19: 47% SMM:19-13 + " USD.19: 83% USD:19-6 +lex.yy.c PS1.16: 68% PS1:16-9 +Lexical Analysis PS1.15: 21% PS1:15-6 + " PS1.15: 92% PS1:15-28 + " PS1.15: 95% PS1:15-31 +lexical analyzer[s] PS1.15: 3% PS1:15-1 + " PS1.15: 4% PS1:15-2 + " PS1.15: 5% PS1:15-2 + " PS1.15: 5% PS1:15-2 + " PS1.15: 5% PS1:15-2 + " PS1.15: 5% PS1:15-2 + " PS1.15: 6% PS1:15-2 + " PS1.15: 7% PS1:15-2 + " PS1.15: 9% PS1:15-3 + " PS1.15: 10% PS1:15-3 + " PS1.15: 16% PS1:15-5 + " PS1.15: 17% PS1:15-5 + " PS1.15: 20% PS1:15-6 + " PS1.15: 21% PS1:15-6 + " PS1.15: 21% PS1:15-6 + " PS1.15: 21% PS1:15-6 + " PS1.15: 22% PS1:15-6 + " PS1.15: 22% PS1:15-6 + " PS1.15: 23% PS1:15-7 + " PS1.15: 23% PS1:15-7 + " PS1.15: 24% PS1:15-7 + " PS1.15: 25% PS1:15-7 + " PS1.15: 25% PS1:15-7 + " PS1.15: 31% PS1:15-9 + " PS1.15: 62% PS1:15-18 + " PS1.15: 69% PS1:15-20 + " PS1.15: 69% PS1:15-20 + " PS1.15: 71% PS1:15-20 + " PS1.15: 74% PS1:15-21 + " PS1.15: 75% PS1:15-21 + " PS1.15: 82% PS1:15-24 + " PS1.15: 92% PS1:15-28 + " PS1.15: 99% PS1:15-33 + " PS1.16: 15% PS1:16-2 + " PS1.16: 85% PS1:16-11 + " PS1.15: 15% PS1:15-4 +Lexical Conventions PS1.01: 0% + " PS1.05: 11% PS1:5-2 +Lexical Scope PS1.01: 73% PS1:1-25 + " PS1.01: 73% PS1:1-25 + " PS1.01: 73% PS1:1-25 + " PS1.01: 74% PS1:1-25 + " PS1.01: 74% PS1:1-25 +Lexical Tie-in[s] PS1.15: 69% PS1:15-20 +lexical analyzer[s] SMM.19: 10% SMM:19-4 + " SMM.19: 12% SMM:19-4 + " SMM.19: 16% SMM:19-5 + " SMM.19: 17% SMM:19-6 + " SMM.19: 34% SMM:19-10 + " USD.26: 90% USD:26-7 +Lexical Analyzer Generator LEX.1: 96% LEX(1)-1 +lexicographic comparison of string[s] STRING.3: 61% STRING(3)-1 +lexpr function[s] PS2.09: 55% PS2:9-95 + " PS2.09: 55% PS2:9-95 + " PS2.09: 55% PS2:9-95 +LFLAG[s] PS1.12: 68% PS1:12-6 +lf file PRINTCAP.5: 93% PRINTCAP(5)-2 + " SMM.06: 42% SMM:6-3 + " SMM.06: 60% SMM:6-5 +lf77plot PLOT.3F: 45% PLOT(3F)-1 +lgamma - log gamma function LGAMMA.3M: 2% LGAMMA(3M)-1 +LH left heading USD.20: 72% USD:20-5 +lib2648 - subroutines for the HP 2648 graphics terminal LIB2648.3X: 0% LIB2648(3X)-1 +libc GETHOSTBYNAME.3N: 82% GETHOSTBYNAME(3) + " INTRO.3: 2% INTRO(3)-1 +LIBDIR SMM.10: 13% SMM:10-4 + " SMM.10: 26% SMM:10-8 + " SMM.10: 38% SMM:10-11 +libm INTRO.3: 9% INTRO(3)-1 + " MATH.3M: 0% MATH(3M)-1 +libq - Equel run-time support library PS2.10: 76% PS2:10-68 +library LD.1: 11% LD(1)-1 +library, C CC.1: 32% CC(1)-1 + " INTRO.3: 2% INTRO(3)-1 + " INTRO.3: 3% INTRO(3)-1 + " INTRO.3: 17% INTRO(3)-1 + " PS1.10: 23% PS1:10-5 + " PS2.03: 80% PS2:3-13 + " PS2.09: 36% PS2:9-63 + " SMM.01: 80% SMM:1-48 + " SMM.01: 81% SMM:1-49 + " SMM.11: 4% SMM:11-2 + " SMM.11: 4% SMM:11-2 + " SMM.11: 7% SMM:11-2 + " SMM.12A: 2% SMM:12-2 + " SMM.12A: 65% SMM:12-15 + " SMM.01: 32% SMM:1-22 +library, C runtime HIER.7: 86% HIER(7)-6 +Library, f77 I/O SMM.12A: 29% SMM:12-7 +library, curses PS1.18: 5% PS1:18-3 +library[s], Fortran SMM.01: 80% SMM:1-48 +library, I/O EXIT.2: 85% EXIT(2)-1 + " SMM.01: 35% SMM:1-23 + " USD.01: 85% USD:1-13 + " SMM.12A: 1% SMM:12-2 + " SMM.12A: 1% SMM:12-2 + " SMM.12A: 27% SMM:12-7 + " SMM.12A: 30% SMM:12-7 + " SMM.12A: 25% SMM:12-6 +library, math INTRO.3: 9% INTRO(3)-1 + " INTRO.3: 10% INTRO(3)-1 + " INTRO.3: 12% INTRO(3)-1 + " INTRO.3: 17% INTRO(3)-1 + " SMM.12A: 2% SMM:12-2 + " SMM.12A: 29% SMM:12-7 + " SMM.12A: 29% SMM:12-7 + " SMM.12A: 67% SMM:12-15 + " SMM.12A: 67% SMM:12-16 + " BC.1: 40% BC(1)-1 + " SMM.12A: 29% SMM:12-7 +library[s], f77 PS1.02: 11% PS1:2-6 + " PS1.02: 24% PS1:2-9 + " PS1.02: 42% PS1:2-14 +Library, f77 I/O PS1.02: 83% PS1:2-27 + " PS1.02: 84% PS1:2-28 + " PS1.03: 0% + " PS1.03: 0% + " PS1.03: 0% PS1:3-1 + " PS1.03: 3% PS1:3-1 + " PS1.03: 15% PS1:3-4 + " PS1.03: 27% PS1:3-4 + " PS1.03: 39% PS1:3-6 + " PS1.03: 51% PS1:3-6 + " PS1.03: 61% PS1:3-8 + " PS1.03: 68% PS1:3-8 + " PS1.03: 74% PS1:3-10 + " PS1.03: 80% PS1:3-10 + " PS1.03: 86% PS1:3-2 +Library, I/O PS1.03: 1% PS1:3-1 + " PS1.03: 32% PS1:3-5 + " PS1.03: 41% PS1:3-6 + " PS1.03: 67% PS1:3-8 + " PS1.03: 68% PS1:3-9 + " PS1.03: 85% PS1:3-11 + " PS1.16: 68% PS1:16-9 + " PS2.03: 0% PS2:3-1 + " PS2.03: 0% PS2:3-1 + " PS2.03: 1% PS2:3-1 + " PS2.03: 10% PS2:3-2 + " PS2.03: 10% PS2:3-3 + " PS2.03: 16% PS2:3-3 + " PS2.03: 22% PS2:3-4 + " PS2.03: 64% PS2:3-10 + " PS2.03: 79% PS2:3-13 +library, IMSL PS1.02: 39% PS1:2-13 +library, libq - Equel run-time support PS2.10: 76% PS2:10-68 +library, NAG PS1.02: 39% PS1:2-13 +library[s], Project PS1.13: 2% PS1:13-1 +library, Standard I/O PS2.03: 10% PS2:3-2 + " PS2.03: 10% PS2:3-2 + " PS2.03: 79% PS2:3-12 + " PS1.18: 7% PS1:18-3 +Library Package, Screen Updating and Cursor Movement Optimization: A PS2.10: 31% PS2:10-29 + " PS2.10: 31% PS2:10-29 + " PS2.10: 32% PS2:10-29 +library[s], ranlib - convert archives to random RANLIB.1: 4% RANLIB(1)-1 +library, standalone I/O FORMAT.8V: 40% FORMAT(8V)-1 +libraries, standard LD.1: 49% LD(1)-1 +library, Standard I/O STDIO.3S: 1% STDIO(3S)-1 +library file[s] AR.1: 7% AR(1)-1 +library file format AR.5: 4% AR(5)-1 +library function[s] INTRO.3: 1% INTRO(3)-1 + " MATH.3M: 0% MATH(3M)-1 + " USD.06: 3% USD:6-1 + " USD.06: 57% USD:6-7 +LIBRARY FUNCTION[s], LIST OF MATH.3M: 1% MATH(3M)-1 + " INTRO.3F: 24% INTRO(3F)-1 + " INTRO.3: 18% INTRO(3)-1 +library routine[s] INDEX.3F: 65% INDEX(3F)-1 + " SMM.12A: 30% SMM:12-7 +Ligature[s] USD.24: 58% USD:24-19 +lid value[s] PS2.10: 24% PS2:10-23 + " PS2.10: 31% PS2:10-29 + " PS2.10: 31% PS2:10-29 + " PS2.10: 31% PS2:10-29 + " PS2.10: 31% PS2:10-29 + " PS2.10: 31% PS2:10-29 + " PS2.10: 31% PS2:10-29 + " PS2.10: 31% PS2:10-29 + " PS2.10: 32% PS2:10-29 + " PS2.10: 32% PS2:10-29 + " PS2.10: 32% PS2:10-29 +Life, game of PS1.18: 81% PS1:18-24 +ligature, OE USD.21: 85% USD:21-3 +Ligature mode USD.24: 59% USD:24-19 + " USD.24: 59% USD:24-19 + " USD.24: 59% USD:24-19 +limit, CPU time PS1.06: 26% PS1:6-13 +limit[s], configuration of the virtual memory SMM.01: 36% SMM:1-23 +limit, cpu time GETRLIMIT.2: 81% GETRLIMIT(2)-2 + " SIGNAL.3C: 34% SIGNAL(3C)-1 + " SIGVEC.2: 46% SIGVEC(2)-2 + " VLIMIT.3C: 87% VLIMIT(3C)-1 + " VLIMIT.3C: 94% VLIMIT(3C)-1 +limit, file size SIGNAL.3C: 35% SIGNAL(3C)-1 + " SIGVEC.2: 47% SIGVEC(2)-2 +limit, kernel SELECT.2: 78% SELECT(2)-2 + " SELECT.2: 83% SELECT(2)-2 + " SMM.01: 34% SMM:1-23 +limit[s], hard PS1.06: 47% PS1:6-22 + " PS1.06: 71% PS1:6-32 + " PS1.06: 71% PS1:6-32 + " PS1.06: 71% PS1:6-32 + " PS1.06: 72% PS1:6-32 +limit[s], Resource PS1.06: 2% PS1:6-2 + " PS1.06: 46% PS1:6-22 + " PS1.06: 26% PS1:6-13 +limit[s], quota - display disc usage and QUOTA.1: 6% QUOTA(1)-1 +limit[s], resource EXECVE.2: 50% EXECVE(2)-1 + " GETRLIMIT.2: 39% GETRLIMIT(2)-1 + " GETRLIMIT.2: 46% GETRLIMIT(2)-1 + " GETRLIMIT.2: 85% GETRLIMIT(2)-2 + " SMM.13: 20% SMM:13-8 + " SMM.13: 47% SMM:13-16 + " CSH.1: 60% CSH(1)-13 +limit[s], Soft INTRO.2: 18% INTRO(2)-2 + " SMM.01: 83% SMM:1-50 + " SMM.14: 92% SMM:14-13 +limit, stack size CSH.1: 62% CSH(1)-13 +limit, statement PI.1: 27% PI(1)-1 +limit[s], soft PS1.06: 72% PS1:6-32 +limit, statement PS1.04: 26% PS1:4-15 + " PS1.04: 49% PS1:4-26 + " PS1.04: 71% PS1:4-36 + " PS1.04: 96% PS1:4-48 + " PS1.04: 96% PS1:4-48 +limit on file size creation PS1.06: 26% PS1:6-13 +limit[s], system BRK.2: 63% BRK(2)-1 + " OPEN.2: 44% OPEN(2)-1 +limit[s], Tbl USD.28: 46% USD:28-7 +limit, time SELECT.2: 57% SELECT(2)-1 + " SELECT.2: 66% SELECT(2)-1 + " SELECT.2: 68% SELECT(2)-1 + " SMM.09: 96% SMM:9-20 +limit command USD.04: 50% USD:4-23 +limit on the number of open file[s] SMM.01: 34% SMM:1-23 +limit shell command CSH.1: 60% CSH(1)-13 +limitation[s], ex USD.16: 98% USD:16-19 +limitation[s], time daemon SMM.08: 63% SMM:8-2 +Line[s] PLOT.3F: 15% PLOT(3F)-1 + " PLOT.3X: 10% PLOT(3X)-1 +line, 1/2 USD.01: 70% USD:1-11 + " USD.24: 64% USD:24-20 + " USD.24: 64% USD:24-20 +line[s], adjusted NROFF.1: 74% NROFF(1)-1 +line, base USD.24: 68% USD:24-22 +line, beginning of a USD.12: 84% USD:12-9 +line[s], blank CAT.1: 51% CAT(1)-1 + " REPL.N: 46% REPL(1)-2 + " SMM.10: 18% SMM:10-5 + " SMM.10: 25% SMM:10-7 + " SMM.10: 51% SMM:10-14 + " SMM.16: 50% SMM:16-7 + " SORTBIB.1: 12% SORTBIB(1)-1 + " USD.04: 32% USD:4-15 + " USD.07: 89% USD:7-21 + " USD.07: 89% USD:7-21 + " USD.07: 89% USD:7-21 + " USD.20: 64% USD:20-5 + " USD.22: 12% USD:22-2 + " USD.22: 13% USD:22-3 + " USD.24: 36% USD:24-12 + " USD.24: 39% USD:24-13 + " USD.24: 40% USD:24-13 + " USD.24: 40% USD:24-13 + " USD.24: 41% USD:24-14 + " USD.24: 63% USD:24-20 + " USD.24: 72% USD:24-23 + " USD.25: 15% USD:25-3 + " SMM.07A: 19% SMM:07-10 + " SMM.07A: 36% SMM:07-17 + " SMM.07A: 82% SMM:07-37 +line, buffer USD.14: 67% USD:14-17 + " USD.14: 68% USD:14-17 + " USD.17: 83% USD:17-39 +line[s], center input USD.24: 37% USD:24-13 +line[s], communication DH.4: 13% DH(4)-1 + " DHU.4: 10% DHU(4)-1 + " DZ.4: 13% DZ(4)-1 + " SMM.09: 0% SMM:9-2 + " SMM.21: 3% SMM:21-1 + " SMM.21: 18% SMM:21-2 + " TTY.4: 3% TTY(4)-1 + " SMM.18: 12% SMM:18-1 + " SMM.18: 13% SMM:18-1 + " SMM.21: 18% SMM:21-2 +line[s], communications PS1.06: 43% PS1:6-20 + " PS1.06: 94% PS1:6-39 + " PS2.04: 51% PS2:4-5 + " PS2.04: 63% PS2:4-6 +Line[s], Compiler Control PS1.01: 77% PS1:1-26 + " PS1.01: 79% PS1:1-26 + " PS1.01: 80% PS1:1-27 +line, control PS1.01: 79% PS1:1-26 + " PS1.01: 80% PS1:1-27 + " PS1.01: 81% PS1:1-27 + " PS1.01: 81% PS1:1-27 + " PS1.01: 82% PS1:1-27 + " PS1.01: 82% PS1:1-27 +line[s], dependency PS1.12: 30% PS1:12-3 + " PS1.12: 42% PS1:12-4 + " PS1.12: 43% PS1:12-4 + " PS1.12: 43% PS1:12-4 + " PS1.12: 43% PS1:12-4 + " PS1.12: 44% PS1:12-4 + " PS1.12: 45% PS1:12-4 +line, source PS1.11a: 82% PS1:11-6 + " PS1.11a: 83% PS1:11-6 +line[s], statistics PS1.04: 25% PS1:4-15 + " PS1.04: 25% PS1:4-15 + " PS1.04: 25% PS1:4-15 + " PS1.04: 25% PS1:4-15 +Line Control PS1.01: 82% PS1:1-28 +Line editing PS1.06: 90% PS1:6-38 +line kill character PS1.18: 51% PS1:18-15 +line number[s] PS1.01: 82% PS1:1-28 + " PS1.04: 15% PS1:4-9 + " PS1.04: 26% PS1:4-15 + " PS1.04: 26% PS1:4-15 + " PS1.04: 41% PS1:4-22 + " PS1.04: 91% PS1:4-46 + " PS1.04: 91% PS1:4-46 + " PS2.06: 7% PS2:6-3 + " PS2.10: 56% PS2:10-50 + " PS2.10: 61% PS2:10-53 +line printer[s] PS1.04: 18% PS1:4-10 + " PS1.04: 25% PS1:4-14 + " PS1.04: 52% PS1:4-27 + " PS2.01: 9% PS2:1-2 + " PS2.04: 51% PS2:4-5 + " PS2.04: 63% PS2:4-6 + " PS2.10: 34% PS2:10-31 +line speed PS1.06: 93% PS1:6-39 +lines, copying USD.13: 88% USD:13-15 + " USD.14: 54% USD:14-14 +line[s], count WC.1: 23% unknown +line, current ED.1: 23% ED(1)-2 + " USD.12: 34% USD:12-4 +line[s], delete USD.18: 41% USD:18-4 +lines, Deleting USD.12: 42% USD:12-5 + " USD.14: 55% USD:14-14 +lines, dial up GETTY.8: 78% GETTY(8)-1 +line[s], dialup MAKEDEV.8: 71% MAKEDEV(8)-1 + " OPEN.2: 33% OPEN(2)-1 + " USD.15: 61% USD:15-17 + " REMOTE.5: 54% REMOTE(5)-1 + " SMM.21: 3% SMM:21-1 + " SMM.21: 12% SMM:21-2 + " SMM.21: 12% SMM:21-2 +line[s], display OD.1: 45% OD(1)-1 + " OD.1: 53% OD(1)-1 + " USD.15: 13% USD:15-4 +line[s], displays of USD.20: 51% USD:20-4 +line, double horizontal USD.28: 20% USD:28-4 +line[s], duplication of USD.16: 46% USD:16-9 +line, end of a USD.12: 85% USD:12-9 +line[s], ending SMM.07: 76% SMM:7-1 + " TERMCAP.5: 52% TERMCAP(5)-8 + " USD.12: 30% USD:12-4 + " USD.12: 43% USD:12-5 + " USD.14: 86% USD:14-21 + " USD.31: 51% USD:31-9 + " SMM.07A: 68% SMM:07-28 +line[s], equally-spaced words in adjusted USD.24: 3% USD:24-2 +line[s], fields within USD.19: 76% USD:19-6 +line[s], Fill subsequent output USD.24: 36% USD:24-12 +line[s], Full width horizontal USD.28: 32% USD:28-5 +lines, hangup dial in GETTYTAB.5: 86% GETTYTAB(5)-3 +line, hardwired L-DEVICES.5: 18% L-DEVICES(5)-1 +line[s], header BUGFILER.8: 32% BUGFILER(8)-1 + " INC.N: 26% INC(1)-1 + " POST.N: 24% POST(8)-1 + " SCAN.N: 30% SCAN(1)-1 + " SEND.N: 82% SEND(1)-2 + " SMM.10: 24% SMM:10-7 + " SMM.10: 51% SMM:10-14 + " SMM.16: 36% SMM:16-5 + " SMM.16: 37% SMM:16-5 + " SMM.16: 57% SMM:16-8 + " SMM.16: 59% SMM:16-8 + " SMM.16: 59% SMM:16-8 + " USD.07: 58% USD:7-14 + " USD.08: 24% USD:8-26 + " USD.08: 52% USD:8-62 + " USD.08: 55% USD:8-65 + " USD.08: 78% USD:8-96 + " USD.09: 22% USD:9-3 + " SMM.07A: 22% SMM:07-12 + " SMM.07A: 22% SMM:07-12 + " SMM.07A: 23% SMM:07-12 + " SMM.07A: 39% SMM:07-18 + " SMM.07A: 74% SMM:07-32 + " SMM.07A: 75% SMM:07-32 + " SMM.07A: 75% SMM:07-32 + " SMM.07A: 75% SMM:07-32 + " SMM.07A: 81% SMM:07-36 + " SMM.07A: 82% SMM:07-37 + " SMM.07A: 82% SMM:07-37 + " SMM.07A: 83% SMM:07-37 + " SMM.07A: 83% SMM:07-37 +line[s], horizontal USD.22: 31% USD:22-6 + " USD.23: 56% USD:23-7 + " USD.28: 19% USD:28-4 + " USD.28: 19% USD:28-4 + " USD.28: 20% USD:28-4 + " USD.28: 20% USD:28-4 + " USD.28: 20% USD:28-4 + " USD.28: 34% USD:28-5 +line[s], input text USD.24: 33% USD:24-12 + " USD.24: 35% USD:24-12 + " USD.24: 36% USD:24-12 +Line, Last ED.1: 23% ED(1)-2 +lines, long FOLD.1: 9% +line[s], modem DN.4: 32% DN(4)-1 + " DN.4: 39% DN(4)-1 + " DN.4: 86% DN(4)-1 +line[s], movement of USD.16: 46% USD:16-9 +line[s], moving USD.13: 87% USD:13-14 + " USD.13: 89% USD:13-15 + " USD.13: 82% USD:13-14 +line, Moving within a USD.15: 17% USD:15-5 +line, Multiple commands per USD.16: 21% USD:16-4 +line[s], non-blank USD.17: 16% USD:17-7 +line, options USD.09: 29% USD:9-4 + " USD.09: 32% USD:9-4 + " USD.09: 32% USD:9-4 +line, output text USD.24: 33% USD:24-12 + " USD.24: 39% USD:24-13 + " USD.24: 42% USD:24-14 +line[s], partial USD.24: 35% USD:24-12 + " USD.24: 36% USD:24-12 + " USD.25: 87% USD:25-13 +line[s], physical USD.15: 59% USD:15-17 + " USD.15: 60% USD:15-17 + " USD.15: 61% USD:15-17 + " USD.24: 62% USD:24-20 +line[s], Printers on serial SMM.06: 36% SMM:6-3 +line[s], range of USD.13: 51% USD:13-9 +line, recipient SMM.07A: 23% SMM:07-12 + " SMM.07A: 23% SMM:07-12 +line[s], Recovering lost USD.15: 48% USD:15-14 +line[s], repeated UNIQ.1: 5% unknown +line, scan INC.N: 29% INC(1)-1 + " SCAN.N: 21% SCAN(1)-1 + " USD.08: 51% USD:8-62 + " USD.08: 52% USD:8-62 +line[s], serial DMF.4: 41% DMF(4)-1 + " SLATTACH.8C: 6% SLATTACH(8C)-1 + " SMM.06: 36% SMM:6-3 + " TB.4: 12% TB(4)-1 + " TU.4: 22% TU(4)-1 +line[s], shifting USD.16: 66% USD:16-13 +line[s], Single column horizontal USD.28: 33% USD:28-5 +line[s], splitting USD.13: 34% USD:13-6 +line, status RUPTIME.1C: 23% RUPTIME(1C)-1 + " SYSLINE.1: 1% SYSLINE(1)-1 + " SYSLINE.1: 6% SYSLINE(1)-1 + " SYSLINE.1: 7% SYSLINE(1)-1 + " SYSLINE.1: 23% SYSLINE(1)-1 + " SYSLINE.1: 35% SYSLINE(1)-1 + " SYSLINE.1: 56% SYSLINE(1)-1 + " SYSLINE.1: 69% SYSLINE(1)-2 + " SYSLINE.1: 72% SYSLINE(1)-2 + " SYSLINE.1: 77% SYSLINE(1)-2 + " TERMCAP.5: 82% TERMCAP(5)-12 + " TERMCAP.5: 82% TERMCAP(5)-12 + " TERMCAP.5: 83% TERMCAP(5)-12 + " TERMCAP.5: 83% TERMCAP(5)-12 + " TERMCAP.5: 83% TERMCAP(5)-12 + " TERMCAP.5: 83% TERMCAP(5)-12 + " TERMCAP.5: 84% TERMCAP(5)-12 + " TERMCAP.5: 84% TERMCAP(5)-12 + " TERMCAP.5: 84% TERMCAP(5)-12 +line[s], telephone USD.14: 10% USD:14-4 + " USD.14: 11% USD:14-4 +line[s], terminal BK.4: 25% BK(4)-1 + " GETTY.8: 22% GETTY(8)-1 + " GETTYTAB.5: 3% GETTYTAB(5)-1 + " INIT.8: 29% INIT(8)-1 + " INIT.8: 53% INIT(8)-1 + " REMOTE.5: 57% REMOTE(5)-1 + " SMM.01: 0% SMM:1-1 + " SMM.01: 27% SMM:1-19 + " SMM.01: 52% SMM:1-33 + " SMM.01: 53% SMM:1-33 + " TIP.1C: 37% TIP(1C)-2 + " TTY.4: 44% TTY(4)-4 + " TTYS.5: 49% TTYS(5)-1 +line[s], transpose two USD.17: 30% USD:17-14 +line, tty GETTTYENT.3: 54% GETTTYENT(3)-1 + " GETTTYENT.3: 61% GETTTYENT(3)-1 + " GETTY.8: 7% GETTY(8)-1 + " GETTY.8: 18% GETTY(8)-1 + " SLATTACH.8C: 19% SLATTACH(8C)-1 + " SMM.06: 39% SMM:6-3 + " TTYS.5: 42% TTYS(5)-1 +line[s], vertical USD.25: 43% USD:25-7 + " USD.25: 43% USD:25-7 + " USD.28: 20% USD:28-4 + " USD.28: 21% USD:28-4 + " USD.28: 21% USD:28-4 + " USD.28: 20% USD:28-4 +line addressing in ed USD.12: 1% USD:12-1 + " USD.13: 40% USD:13-7 + " USD.13: 3% USD:13-2 +line addressing primitives in ex[s] USD.16: 23% USD:16-4 +Line adjustment USD.24: 36% USD:24-13 +line boundary USD.15: 70% USD:15-20 + " USD.31: 4% USD:31-1 +line buffered stream SETBUF.3S: 24% SETBUF(3S)-1 +Line Control TTY.4: 43% TTY(4)-4 +line discipline[s] BK.4: 1% BK(4)-1 + " BK.4: 6% BK(4)-1 + " BK.4: 31% BK(4)-1 + " SMM.13: 6% SMM:13-3 + " SMM.13: 24% SMM:13-9 + " SMM.13: 25% SMM:13-10 + " SMM.13: 25% SMM:13-10 + " SMM.13: 26% SMM:13-10 + " SMM.13: 26% SMM:13-10 + " SMM.13: 95% SMM:13-32 + " TB.4: 2% TB(4)-1 + " TB.4: 7% TB(4)-1 + " TB.4: 16% TB(4)-1 + " TB.4: 23% TB(4)-1 + " TTY.4: 0% TTY(4)-1 + " TTY.4: 0% TTY(4)-1 + " TTY.4: 2% TTY(4)-1 + " TTY.4: 3% TTY(4)-1 + " TTY.4: 3% TTY(4)-1 + " TTY.4: 4% TTY(4)-1 + " TTY.4: 17% TTY(4)-2 + " TTY.4: 18% TTY(4)-2 + " TTY.4: 25% TTY(4)-3 + " PSTAT.8: 74% PSTAT(8)-3 +line dot USD.12: 51% USD:12-6 + " USD.12: 72% USD:12-8 + " USD.13: 14% USD:13-3 + " USD.13: 14% USD:13-3 + " USD.13: 43% USD:13-8 + " USD.13: 79% USD:13-13 + " USD.13: 85% USD:13-14 + " USD.13: 85% USD:13-14 +Line drawing USD.26: 2% USD:26-1 + " USD.24: 67% USD:24-21 +line drawing function[s] USD.24: 1% USD:24-2 +Line editing PTY.4: 94% PTY(4)-2 + " TTY.4: 22% TTY(4)-3 +line editing characters PROMPTER.N: 65% PROMPTER(1)-1 + " REBOOT.8: 75% REBOOT(8)-2 + " USD.08: 44% USD:8-52 + " WINDOW.1: 40% WINDOW(1)-3 +line kill STTY.1: 66% STTY(1)-2 + " TTY.4: 72% TTY(4)-7 +line kill character[s] MORE.1: 84% MORE(1)-3 + " TSET.1: 50% TSET(1)-2 + " TSET.1: 98% TSET(1)-4 + " USD.04: 25% USD:4-11 + " USD.13: 19% USD:13-4 +line length[s] MS.7: 71% MS(7)-3 + " MS.7: 83% MS(7)-3 + " ROFFBIB.1: 73% ROFFBIB(1)-1 + " USD.17: 52% USD:17-23 + " USD.20: 9% USD:20-1 + " USD.23: 56% USD:23-7 + " USD.23: 56% USD:23-7 + " USD.24: 22% USD:24-9 + " USD.24: 35% USD:24-12 + " USD.24: 36% USD:24-12 + " USD.24: 41% USD:24-14 + " USD.24: 41% USD:24-14 + " USD.24: 41% USD:24-14 + " USD.24: 42% USD:24-14 + " USD.24: 72% USD:24-23 + " USD.24: 72% USD:24-23 + " USD.24: 74% USD:24-23 + " USD.25: 24% USD:25-4 + " USD.25: 24% USD:25-4 + " USD.25: 24% USD:25-4 + " USD.25: 58% USD:25-9 + " USD.28: 9% USD:28-2 + " USD.28: 22% USD:28-4 + " USD.28: 37% USD:28-6 + " USD.28: 37% USD:28-6 + " USD.29: 35% USD:29-4 + " SMM.07A: 75% SMM:07-32 + " MS.7: 75% MS(7)-3 + " USD.24: 7% USD:24-3 +Line Length and Indenting USD.24: 41% USD:24-14 +line length in all environment, .ll Set USD.23: 56% USD:23-7 +line number[s] CAT.1: 50% CAT(1)-1 + " CONFIG.8: 95% CONFIG(8)-1 + " DBX.5: 32% DBX(5)-1 + " ED.1: 88% ED(1)-5 + " ERROR.1: 10% ERROR(1)-1 + " MKNOD.8: 66% MKNOD(8)-1 + " MORE.1: 59% MORE(1)-2 + " MORE.1: 80% MORE(1)-3 + " SED.1: 28% SED(1)-1 + " SED.1: 95% SED(1)-3 + " SMM.02: 12% SMM:2-4 + " SMM.19: 17% SMM:19-5 + " SMM.19: 27% SMM:19-8 + " USD.12: 31% USD:12-4 + " USD.12: 32% USD:12-4 + " USD.12: 33% USD:12-4 + " USD.12: 37% USD:12-4 + " USD.12: 40% USD:12-5 + " USD.12: 40% USD:12-5 + " USD.12: 41% USD:12-5 + " USD.12: 41% USD:12-5 + " USD.12: 41% USD:12-5 + " USD.12: 44% USD:12-5 + " USD.12: 44% USD:12-5 + " USD.12: 45% USD:12-5 + " USD.12: 45% USD:12-5 + " USD.12: 50% USD:12-5 + " USD.12: 51% USD:12-6 + " USD.12: 65% USD:12-7 + " USD.12: 65% USD:12-7 + " USD.12: 66% USD:12-7 + " USD.12: 72% USD:12-8 + " USD.12: 73% USD:12-8 + " USD.13: 9% USD:13-2 + " USD.13: 14% USD:13-3 + " USD.13: 42% USD:13-8 + " USD.13: 43% USD:13-8 + " USD.13: 48% USD:13-9 + " USD.13: 49% USD:13-9 + " USD.13: 50% USD:13-9 + " USD.13: 51% USD:13-9 + " USD.13: 54% USD:13-10 + " USD.13: 55% USD:13-10 + " USD.13: 63% USD:13-11 + " USD.13: 81% USD:13-13 + " USD.13: 84% USD:13-14 + " USD.13: 84% USD:13-14 + " USD.13: 87% USD:13-14 + " USD.13: 87% USD:13-14 + " USD.14: 39% USD:14-10 + " USD.14: 40% USD:14-10 + " USD.14: 43% USD:14-11 + " USD.14: 44% USD:14-11 + " USD.14: 54% USD:14-14 + " USD.14: 56% USD:14-14 + " USD.14: 57% USD:14-14 + " USD.14: 57% USD:14-14 + " USD.14: 58% USD:14-15 + " USD.14: 64% USD:14-16 + " USD.14: 64% USD:14-16 + " USD.14: 64% USD:14-16 + " USD.14: 65% USD:14-16 + " USD.14: 65% USD:14-16 + " USD.14: 69% USD:14-17 + " USD.15: 77% USD:15-22 + " USD.15: 89% USD:15-25 + " USD.16: 6% USD:16-2 + " USD.16: 66% USD:16-13 + " USD.16: 88% USD:16-16 + " USD.16: 88% USD:16-16 + " USD.17: 80% USD:17-38 + " USD.17: 83% USD:17-39 + " USD.18: 23% USD:18-3 + " USD.18: 24% USD:18-3 + " USD.18: 98% USD:18-10 + " USD.24: 73% USD:24-23 + " USD.24: 73% USD:24-23 + " USD.24: 74% USD:24-23 + " GREP.1: 25% GREP(1)-1 +Line number mode USD.24: 73% USD:24-23 +Line Numbers and the Value of Dot, Default USD.13: 46% USD:13-8 +line numbers before each line on the display USD.15: 60% USD:15-17 +line operation[s] USD.15: 26% USD:15-8 +line printer[s] COLCRT.1: 52% COLCRT(1)-1 + " LP.4: 4% LP(4)-1 + " LP.4: 16% LP(4)-1 + " LPC.8: 7% LPC(8)-1 + " LPQ.1: 9% LPQ(1)-1 + " PLOT.1G: 63% PLOT(1G)-1 + " PRINTCAP.5: 4% PRINTCAP(5)-1 + " SMM.01: 55% SMM:1-34 + " SMM.02: 34% SMM:2-10 + " SMM.06: 23% SMM:6-2 + " SMM.06: 59% SMM:6-5 + " USD.04: 11% USD:4-6 + " USD.04: 32% USD:4-15 + " USD.04: 88% USD:4-41 + " USD.17: 70% USD:17-32 + " USD.20: 46% USD:20-4 + " SMM.12A: 69% SMM:12-16 +Line printer Administration SMM.06: 67% SMM:6-5 +line printer daemon LPD.8: 1% LPD(8)-1 + " LPD.8: 2% LPD(8)-1 + " SMM.06: 8% SMM:6-2 + " SMM.06: 69% SMM:6-5 +line printer problem, troubleshooting SMM.06: 76% SMM:6-6 +line printer spooler installation SMM.06: 32% SMM:6-3 +Line Printer Spooler Manual, 4.3BSD SMM.06: 0% unknown +line printer spooling system message[s] SYSLOG.3: 78% SYSLOG(3)-2 +line printer system LPC.8: 6% LPC(8)-1 + " SMM.01: 54% SMM:1-34 + " SMM.01: 54% SMM:1-34 + " SMM.01: 55% SMM:1-34 + " SMM.06: 3% SMM:6-2 + " SMM.06: 3% SMM:6-2 + " SMM.06: 23% SMM:6-2 + " SMM.06: 76% SMM:6-6 + " VA.4: 11% VA(4)-1 + " VP.4: 11% VP(4)-1 +line protocol SMM.09: 20% SMM:9-5 + " SMM.09: 28% SMM:9-7 + " SMM.09: 28% SMM:9-7 + " SMM.21: 24% SMM:21-2 + " SMM.21: 50% SMM:21-4 + " SMM.21: 50% SMM:21-4 + " SMM.21: 51% SMM:21-4 + " SMM.21: 73% SMM:21-5 +Line Protocol Selection SMM.21: 49% SMM:21-4 + " SMM.09: 28% SMM:9-7 +line spacing ME.7: 13% ME(7)-1 + " MS.7: 11% MS(7)-1 + " USD.23: 42% USD:23-6 + " USD.23: 42% USD:23-6 + " USD.25: 9% USD:25-2 + " USD.25: 16% USD:25-3 + " USD.25: 64% USD:25-10 + " USD.24: 39% USD:24-13 +line speed change[s] TIP.1C: 24% TIP(1C)-1 +Line-drawing USD.24: 10% USD:24-4 + " USD.24: 65% USD:24-21 + " USD.26: 9% USD:26-1 +line-number counter USD.18: 24% USD:18-3 + " USD.18: 48% USD:18-5 + " USD.18: 51% USD:18-5 +linear scan SMM.12A: 64% SMM:12-15 +linear search[s] SMM.13: 11% SMM:13-5 + " SMM.13: 18% SMM:13-7 + " SMM.13: 18% SMM:13-7 + " SMM.13: 45% SMM:13-16 +linemd PLOT.3F: 34% PLOT(3F)-1 +linemod PLOT.3X: 16% PLOT(3X)-1 +lineup USD.27: 51% USD:27-6 +linger interval GETSOCKOPT.2: 66% GETSOCKOPT(2)-2 +LINGER option SMM.12A: 59% SMM:12-14 + " SMM.13: 37% SMM:13-14 +Lining Up Equation[s] USD.27: 49% USD:27-6 +Link MV.1: 93% unknown + " STAT.2: 49% STAT(2)-2 +linger on close PS1.08: 84% PS1:8-35 +link, symbolic PS1.06: 61% PS1:6-28 + " PS1.06: 64% PS1:6-29 + " PS1.06: 66% PS1:6-30 + " PS1.06: 67% PS1:6-30 +link editor PS1.05: 46% PS1:5-7 + " PS1.05: 73% PS1:5-11 + " PS1.05: 74% PS1:5-11 + " PS1.05: 75% PS1:5-11 + " PS1.05: 76% PS1:5-11 +link editor ld PS1.05: 4% PS1:5-1 + " PS1.05: 41% PS1:5-6 + " PS1.05: 72% PS1:5-10 +link(path1, path2) PS1.06: 66% PS1:6-30 +link[s], hard INTRO.2: 22% INTRO(2)-2 + " LINK.2: 2% LINK(2)-1 + " LINK.2: 6% LINK(2)-1 + " LN.1: 25% LN(1)-1 + " RENAME.2: 22% RENAME(2)-1 + " RENAME.2: 24% RENAME(2)-1 + " TAR.5: 74% TAR(5)-1 + " FIND.1: 61% FIND(1)-2 + " INTRO.2: 33% INTRO(2)-3 + " LINK.2: 10% LINK(2)-1 + " LN.1: 21% LN(1)-1 + " LN.1: 24% LN(1)-1 + " LN.1: 34% LN(1)-1 + " RENAME.2: 31% RENAME(2)-1 + " SMM.05: 38% SMM:5-8 + " STAT.2: 23% STAT(2)-1 +link, point to point IFCONFIG.8C: 80% IFCONFIG(8C)-2 +link - make a hard link to a file LINK.2: 2% LINK(2)-1 +link - make a link to an existing file LINK.3F: 7% USD:12-10 +Link count[s] FSCK.8: 25% FSCK(8)-1 + " SMM.05: 28% SMM:5-6 + " SMM.05: 29% SMM:5-6 + " SMM.05: 30% SMM:5-6 + " SMM.05: 30% SMM:5-7 + " SMM.05: 30% SMM:5-7 + " SMM.05: 30% SMM:5-7 + " SMM.05: 31% SMM:5-7 + " STAT.2: 43% STAT(2)-2 + " FIND.1: 35% FIND(1)-1 +link editor ld A_OUT.5: 2% A.OUT(5)-1 + " INTRO.3: 3% INTRO(3)-1 + " A_OUT.5: 85% A.OUT(5)-3 + " LD.1: 0% LD(1)-1 +link-layer interface EX.4: 15% EX(4)-1 + " IX.4: 10% IX(4)-1 + " SMM.13: 90% SMM:13-30 +linked list PS2.03: 72% PS2:3-11 + " PS2.04: 67% PS2:4-7 + " PS2.06: 53% PS2:6-19 + " PS2.06: 83% PS2:6-29 + " PS2.06: 83% PS2:6-29 + " PS2.09: 7% PS2:9-10 + " SMM.13: 60% SMM:13-21 + " SMM.14: 10% SMM:14-3 +linked-to file FIND.1: 65% FIND(1)-2 + " LN.1: 52% LN(1)-1 + " LS.1: 19% LS(1)-1 + " TAR.5: 89% TAR(5)-1 +links, cross-device RENAME.2: 77% RENAME(2)-2 +links, hard PS1.06: 64% PS1:6-29 + " PS1.06: 66% PS1:6-30 + " PS1.06: 66% PS1:6-30 +links, ln - make LN.1: 2% LN(1)-1 +links, symbolic PS1.06: 66% PS1:6-30 + " PS1.06: 66% PS1:6-30 + " PS1.06: 66% PS1:6-30 +Links and renaming PS1.06: 66% PS1:6-30 +Lint PS1.09: 0% + " PS1.09: 0% + " PS1.09: 0% PS1:9-1 + " PS1.09: 1% PS1:9-1 + " PS1.09: 3% PS1:9-1 + " PS1.09: 8% PS1:9-2 + " PS1.09: 12% PS1:9-2 + " PS1.09: 20% PS1:9-2 + " PS1.09: 31% PS1:9-4 + " PS1.09: 31% PS1:9-4 + " PS1.09: 36% PS1:9-4 + " PS1.09: 41% PS1:9-4 + " PS1.09: 45% PS1:9-5 + " PS1.09: 49% PS1:9-6 + " PS1.09: 58% PS1:9-6 + " PS1.09: 58% PS1:9-6 + " PS1.09: 70% PS1:9-8 + " PS1.09: 70% PS1:9-8 + " PS1.09: 82% PS1:9-8 + " PS1.09: 85% PS1:9-9 + " PS1.09: 87% PS1:9-9 + " PS1.09: 89% PS1:9-9 + " PS1.09: 92% PS1:9-10 + " PS1.09: 94% PS1:9-10 + " PS1.09: 98% PS1:9-10 + " PS1.12: 76% PS1:12-7 + " PS1.15: 74% PS1:15-21 +Lint, a C Program Checker PS1.09: 0% +links[s], point-to-point ROUTED.8C: 39% ROUTED(8C)-1 + " SMM.08: 49% SMM:8-2 + " SMM.13: 62% SMM:13-22 + " SMM.15: 71% SMM:15-21 + " SMM.12A: 86% SMM:12-20 + " INTRO.4N: 78% INTRO(4N)-3 + " SMM.15: 35% SMM:15-11 +links, symbolic RDIST.1: 20% RDIST(1)-1 +LINT JOVE.N: 34% JOVE(1)-1 + " LINT.1: 94% LINT(1)-2 + " ERROR.1: 30% ERROR(1)-1 + " USD.17: 63% USD:17-28 + " SMM.19: 87% SMM:19-24 + " SMM.12A: 35% SMM:12-8 +lint - a C program verifier LINT.1: 1% LINT(1)-1 +lint options PS1.09: 98% PS1:9-10 +LISP[s] PS2.07: 5% PS2:7-4 + " PS2.07: 41% PS2:7-18 + " PS2.09: 1% PS2:9-4 + " PS2.09: 11% PS2:9-21 + " PS2.09: 20% PS2:9-39 + " PS2.09: 55% PS2:9-95 + " PS2.09: 55% PS2:9-95 + " PS2.09: 58% PS2:9-101 + " PS2.09: 61% PS2:9-105 + " PS2.09: 61% PS2:9-105 + " PS2.09: 61% PS2:9-105 + " PS2.09: 73% PS2:9-120 + " PS2.09: 83% PS2:9-133 + " PS2.09: 84% PS2:9-136 +LISP, FRANZ PS2.07: 9% PS2:7-6 + " PS2.09: 0% PS2:9-2 + " PS2.09: 0% PS2:9-2 + " PS2.09: 0% PS2:9-3 + " PS2.09: 1% PS2:9-4 + " PS2.09: 1% PS2:9-4 + " PS2.09: 1% PS2:9-4 + " PS2.09: 1% PS2:9-4 + " PS2.09: 1% PS2:9-4 + " PS2.09: 4% PS2:9-8 + " PS2.09: 5% PS2:9-9 + " PS2.09: 7% PS2:9-10 + " PS2.09: 19% PS2:9-38 + " PS2.09: 27% PS2:9-52 + " PS2.09: 35% PS2:9-63 + " PS2.09: 35% PS2:9-63 + " PS2.09: 35% PS2:9-63 + " PS2.09: 35% PS2:9-63 + " PS2.09: 44% PS2:9-79 + " PS2.09: 44% PS2:9-79 + " PS2.09: 46% PS2:9-81 + " PS2.09: 46% PS2:9-81 + " PS2.09: 47% PS2:9-83 + " PS2.09: 47% PS2:9-84 + " PS2.09: 57% PS2:9-99 + " PS2.09: 58% PS2:9-101 + " PS2.09: 59% PS2:9-103 + " PS2.09: 60% PS2:9-103 + " PS2.09: 65% PS2:9-111 + " PS2.09: 67% PS2:9-113 + " PS2.09: 81% PS2:9-128 + " PS2.09: 85% PS2:9-137 +lint the kernel SMM.02: 47% SMM:2-14 +LINTLIBRARY LINT.1: 80% LINT(1)-2 +Lisp[s] FILE.1: 91% FILE(1)-1 + " LISP.1: 7% LISP(1)-1 + " USD.15: 54% USD:15-15 + " USD.15: 55% USD:15-16 + " USD.15: 82% USD:15-23 + " USD.15: 88% USD:15-25 + " SMM.12A: 36% SMM:12-8 +LISP, FRANZ FP.1: 12% FP(1)-1 + " LISP.1: 14% LISP(1)-1 +lisp - lisp interpreter LISP.1: 3% LISP(1)-1 +lisp code PS2.07: 30% PS2:7-14 + " PS2.09: 1% PS2:9-4 + " PS2.09: 1% PS2:9-4 + " PS2.09: 45% PS2:9-80 + " PS2.09: 49% PS2:9-87 + " PS2.09: 84% PS2:9-135 + " USD.16: 85% USD:16-16 + " VLP.1: 68% VLP(1)-1 + " VLP.1: 97% VLP(1)-1 +Lisp expression[s] USD.17: 73% USD:17-34 +lisp compiler[s] PS2.09: 1% PS2:9-4 + " PS2.09: 20% PS2:9-39 + " PS2.09: 36% PS2:9-65 + " PS2.09: 73% PS2:9-120 + " PS2.09: 73% PS2:9-120 + " PS2.09: 73% PS2:9-120 + " PS2.09: 78% PS2:9-127 +lisp data object[s] PS2.09: 0% PS2:9-3 +Lisp Editor PS2.09: 87% PS2:9-140 + " PS2.09: 1% PS2:9-4 +Lisp expression[s] PS2.09: 2% PS2:9-4 + " PS2.09: 40% PS2:9-71 + " PS2.09: 40% PS2:9-71 + " PS2.09: 48% PS2:9-85 + " PS2.09: 48% PS2:9-85 + " PS2.09: 56% PS2:9-98 + " PS2.09: 56% PS2:9-98 + " PS2.09: 58% PS2:9-101 + " PS2.09: 70% PS2:9-116 + " PS2.09: 72% PS2:9-119 + " PS2.09: 87% PS2:9-140 + " PS2.09: 88% PS2:9-140 +lisp files SMM.12A: 14% SMM:12-4 +lisp function[s] PS2.09: 1% PS2:9-4 + " PS2.09: 4% PS2:9-8 + " PS2.09: 35% PS2:9-63 + " PS2.09: 41% PS2:9-73 + " PS2.09: 54% PS2:9-95 + " PS2.09: 58% PS2:9-101 + " PS2.09: 59% PS2:9-103 + " PS2.09: 64% PS2:9-108 + " PS2.09: 66% PS2:9-112 + " PS2.09: 70% PS2:9-116 + " PS2.09: 72% PS2:9-119 +lisp interpreter LISP.1: 3% LISP(1)-1 + " LISP.1: 8% LISP(1)-1 +Lisp mode USD.17: 52% USD:17-23 + " USD.17: 77% USD:17-36 + " SMM.12A: 17% SMM:12-5 + " USD.17: 73% USD:17-34 +lisp interpreter PS2.09: 41% PS2:9-75 + " PS2.09: 83% PS2:9-133 + " PS2.09: 94% PS2:9-149 +Lisp Manual, Franz PS2.09: 0% unknown +lisp object[s] PS2.09: 2% PS2:9-4 + " PS2.09: 2% PS2:9-4 + " PS2.09: 4% PS2:9-8 + " PS2.09: 5% PS2:9-9 + " PS2.09: 11% PS2:9-20 + " PS2.09: 11% PS2:9-20 + " PS2.09: 15% PS2:9-28 + " PS2.09: 16% PS2:9-30 + " PS2.09: 33% PS2:9-61 + " PS2.09: 42% PS2:9-75 + " PS2.09: 61% PS2:9-105 + " PS2.09: 62% PS2:9-106 + " PS2.09: 65% PS2:9-108 + " PS2.09: 65% PS2:9-111 + " PS2.09: 66% PS2:9-111 + " PS2.09: 99% PS2:9-154 +lisp prettyprinter VLP.1: 2% VLP(1)-1 +lisp program[s] PS2.09: 1% PS2:9-4 + " PS2.09: 44% PS2:9-78 + " PS2.09: 44% PS2:9-78 + " PS2.09: 44% PS2:9-78 + " PS2.09: 70% PS2:9-116 + " PS2.09: 77% PS2:9-126 + " PS2.09: 87% PS2:9-140 + " PS2.09: 87% PS2:9-140 + " USD.15: 54% USD:15-15 + " USD.17: 52% USD:17-23 + " CTAGS.1: 6% CTAGS(1)-1 +Lisp s-expression[s] USD.15: 84% USD:15-24 +lisp runtime stack PS2.09: 25% PS2:9-49 + " PS2.09: 41% PS2:9-73 + " PS2.09: 41% PS2:9-73 + " PS2.09: 44% PS2:9-79 +Lisp status variable[s] PS2.09: 0% PS2:9-3 +lisp system[s] LISP.1: 26% LISP(1)-1 + " LISZT.1: 27% LISZT(1)-1 + " LISZT.1: 41% LISZT(1)-1 + " PS2.07: 40% PS2:7-18 + " PS2.07: 41% PS2:7-18 + " PS2.09: 4% PS2:9-8 + " PS2.09: 5% PS2:9-9 + " PS2.09: 6% PS2:9-10 + " PS2.09: 6% PS2:9-10 + " PS2.09: 26% PS2:9-51 + " PS2.09: 30% PS2:9-57 + " PS2.09: 35% PS2:9-63 + " PS2.09: 37% PS2:9-66 + " PS2.09: 42% PS2:9-75 + " PS2.09: 42% PS2:9-75 + " PS2.09: 42% PS2:9-75 + " PS2.09: 42% PS2:9-76 + " PS2.09: 43% PS2:9-77 + " PS2.09: 43% PS2:9-77 + " PS2.09: 44% PS2:9-79 + " PS2.09: 45% PS2:9-80 + " PS2.09: 46% PS2:9-81 + " PS2.09: 46% PS2:9-82 + " PS2.09: 46% PS2:9-82 + " PS2.09: 49% PS2:9-87 + " PS2.09: 49% PS2:9-87 + " PS2.09: 49% PS2:9-87 + " PS2.09: 57% PS2:9-100 + " PS2.09: 59% PS2:9-103 + " PS2.09: 60% PS2:9-103 + " PS2.09: 60% PS2:9-104 + " PS2.09: 60% PS2:9-104 + " PS2.09: 63% PS2:9-108 + " PS2.09: 64% PS2:9-108 + " PS2.09: 69% PS2:9-116 + " PS2.09: 70% PS2:9-116 + " PS2.09: 70% PS2:9-116 + " PS2.09: 70% PS2:9-116 + " PS2.09: 70% PS2:9-116 + " PS2.09: 70% PS2:9-116 + " PS2.09: 73% PS2:9-120 + " PS2.09: 73% PS2:9-120 + " PS2.09: 77% PS2:9-125 + " PS2.09: 77% PS2:9-125 + " PS2.09: 77% PS2:9-126 + " PS2.09: 77% PS2:9-126 + " PS2.09: 77% PS2:9-126 + " PS2.09: 79% PS2:9-128 + " PS2.09: 79% PS2:9-128 + " PS2.09: 86% PS2:9-137 + " PS2.09: 86% PS2:9-137 + " PS2.09: 87% PS2:9-140 +LISP system, FRANZ PS2.07: 58% PS2:7-28 + " PS2.09: 1% PS2:9-4 + " PS2.09: 64% PS2:9-108 +List PS2.09: 60% PS2:9-104 +lisp-mode USD.17: 77% USD:17-36 +List[s] USD.22: 27% USD:22-5 +list, .(l Begin USD.23: 29% USD:23-4 +list, access CI.N: 17% CI(1)-1 + " CI.N: 17% CI(1)-1 + " CI.N: 34% CI(1)-1 + " CO.N: 18% CO(1)-1 + " PS1.13: 24% PS1:13-5 + " PS1.13: 24% PS1:13-5 + " PS1.13: 27% PS1:13-5 + " PS1.13: 40% PS1:13-8 + " PS1.13: 61% PS1:13-13 + " PS1.13: 62% PS1:13-13 + " PS1.13: 62% PS1:13-13 + " PS1.13: 63% PS1:13-13 + " PS1.13: 64% PS1:13-13 + " PS1.13: 89% PS1:13-20 + " PS1.13: 90% PS1:13-20 + " RCS.N: 4% RCS(1)-1 + " RCS.N: 6% RCS(1)-1 + " RCS.N: 7% RCS(1)-1 + " RCS.N: 19% RCS(1)-1 + " RCS.N: 23% RCS(1)-1 + " RLOG.N: 13% RLOG(1)-1 + " RLOG.N: 31% RLOG(1)-1 +list, alias PS1.08: 31% PS1:8-11 + " PS1.08: 35% PS1:8-13 + " PS1.08: 36% PS1:8-14 + " PS1.08: 37% PS1:8-14 +list[s], address DIST.N: 10% DIST(1)-1 + " DIST.N: 33% DIST(1)-1 + " FORW.N: 22% FORW(1)-1 + " REPL.N: 50% REPL(1)-2 + " USD.08: 17% USD:8-18 + " USD.08: 17% USD:8-18 + " USD.08: 21% USD:8-23 + " USD.08: 48% USD:8-58 + " USD.08: 62% USD:8-76 + " USD.08: 62% USD:8-76 + " USD.16: 26% USD:16-5 +list[s], argument EXECVE.2: 89% EXECVE(2)-2 + " PS1.02: 37% PS1:2-13 + " PS1.02: 40% PS1:2-14 + " PS2.01: 70% PS2:1-11 + " PS2.03: 49% PS2:3-8 + " PS2.09: 7% PS2:9-10 + " PS2.09: 26% PS2:9-51 + " PS2.09: 26% PS2:9-51 + " PS2.09: 29% PS2:9-55 + " PS2.09: 33% PS2:9-60 + " PS2.09: 33% PS2:9-60 + " PS2.09: 33% PS2:9-60 + " PS2.09: 33% PS2:9-60 + " PS2.09: 71% PS2:9-116 + " PS2.09: 95% PS2:9-150 + " PS2.10: 57% PS2:10-50 +list, assoc PS2.09: 17% PS2:9-32 + " PS2.09: 17% PS2:9-32 + " PS2.09: 17% PS2:9-32 + " PS2.09: 17% PS2:9-33 + " PS2.09: 59% PS2:9-103 + " PS2.09: 98% PS2:9-154 +list, disembodied property PS2.09: 14% PS2:9-27 + " PS2.09: 15% PS2:9-28 + " PS2.09: 15% PS2:9-28 + " PS2.09: 17% PS2:9-34 + " PS2.09: 17% PS2:9-34 + " PS2.09: 18% PS2:9-34 + " PS2.09: 18% PS2:9-34 + " PS2.09: 18% PS2:9-34 + " PS2.09: 18% PS2:9-35 +list[s], circular USD.17: 82% USD:17-39 +list, dependency SMM.12A: 6% SMM:12-2 +list, digest MH-PROFILE.N: 33% MH-PROFILE(5)-3 + " MH-PROFILE.N: 34% MH-PROFILE(5)-3 + " USD.08: 71% USD:8-87 + " USD.08: 71% USD:8-87 +list[s], free PS2.05: 64% PS2:5-5 + " PS2.05: 66% PS2:5-5 + " PS2.05: 75% PS2:5-5 + " PS2.05: 79% PS2:5-6 + " PS2.05: 92% PS2:5-6 + " PS2.09: 42% PS2:9-76 +lists, distribution MAIL.1: 19% MAIL(1)-2 +lists, doubly linked INSQUE.3: 56% unknown +list, extraction RESTORE.8: 37% RESTORE(8)-2 + " RESTORE.8: 38% RESTORE(8)-2 + " RESTORE.8: 41% RESTORE(8)-2 + " RESTORE.8: 42% RESTORE(8)-2 + " RESTORE.8: 44% RESTORE(8)-2 + " RESTORE.8: 46% RESTORE(8)-2 + " RESTORE.8: 52% RESTORE(8)-2 +list[s], free BADSECT.8: 61% BADSECT(8)-1 + " FSCK.8: 26% FSCK(8)-1 + " FSCK.8: 26% FSCK(8)-1 + " FSCK.8: 74% FSCK(8)-2 + " FSCK.8: 75% FSCK(8)-2 + " ICHECK.8: 12% ICHECK(8)-1 + " ICHECK.8: 30% ICHECK(8)-1 + " ICHECK.8: 32% ICHECK(8)-1 + " ICHECK.8: 49% ICHECK(8)-1 + " ICHECK.8: 81% ICHECK(8)-1 + " ICHECK.8: 84% ICHECK(8)-1 + " ICHECK.8: 86% ICHECK(8)-1 + " SMM.13: 29% SMM:13-11 + " SMM.14: 10% SMM:14-3 + " SMM.14: 15% SMM:14-3 + " SMM.14: 15% SMM:14-3 + " SMM.14: 20% SMM:14-4 + " SMM.14: 39% SMM:14-7 + " SMM.15: 86% SMM:15-24 + " SYSTAT.1: 37% SYSTAT(1)-2 + " SYSTAT.1: 53% SYSTAT(1)-3 + " SYSTAT.1: 53% SYSTAT(1)-3 + " SYSTAT.1: 53% SYSTAT(1)-3 + " VMSTAT.1: 53% VMSTAT(1)-1 + " VMSTAT.1: 59% VMSTAT(1)-1 +list, group access ACCESS.2: 26% ACCESS(2)-1 + " GETGROUPS.2: 6% GETGROUPS(2)-1 + " GETGROUPS.2: 21% GETGROUPS(2)-1 + " INITGROUPS.3: 33% INITGROUPS(3)-1 + " INTRO.2: 71% INTRO(2)-6 + " INTRO.2: 72% INTRO(2)-6 + " INTRO.2: 93% INTRO(2)-7 + " SETGROUPS.2: 23% SETGROUPS(2)-1 +list, inode SMM.05: 29% SMM:5-6 + " SMM.05: 32% SMM:5-7 + " SMM.05: 37% SMM:5-8 +list, linked SMM.13: 60% SMM:13-21 + " SMM.14: 10% SMM:14-3 +list[s], mailing SENDMAIL.8: 23% SENDMAIL(8)-1 + " SMM.11: 22% SMM:11-3 + " SMM.11: 63% SMM:11-9 + " SMM.11: 64% SMM:11-9 + " SMM.11: 65% SMM:11-9 + " SMM.16: 17% SMM:16-2 + " SMM.16: 30% SMM:16-4 + " SMM.16: 49% SMM:16-7 + " USD.09: 6% USD:9-1 + " USD.09: 7% USD:9-2 + " USD.09: 8% USD:9-2 + " USD.09: 8% USD:9-2 + " SMM.07A: 21% SMM:07-11 + " SMM.07A: 23% SMM:07-12 +list[s], message MAIL.1: 44% MAIL(1)-3 + " MAIL.1: 49% MAIL(1)-3 + " MAIL.1: 53% MAIL(1)-4 + " MAIL.1: 56% MAIL(1)-4 + " MAIL.1: 58% MAIL(1)-4 + " MAIL.1: 59% MAIL(1)-4 + " MAIL.1: 61% MAIL(1)-4 + " MAIL.1: 61% MAIL(1)-4 + " MAIL.1: 62% MAIL(1)-4 + " MHPATH.N: 6% MHPATH(1)-1 + " MHPATH.N: 31% MHPATH(1)-1 + " USD.07: 47% USD:7-12 + " USD.07: 47% USD:7-12 + " USD.07: 48% USD:7-12 + " USD.07: 63% USD:7-15 + " USD.07: 64% USD:7-15 + " USD.07: 68% USD:7-16 + " USD.07: 90% USD:7-22 + " USD.08: 35% USD:8-39 + " USD.08: 35% USD:8-39 + " USD.08: 35% USD:8-39 +list, newsgroup SMM.10: 9% SMM:10-3 + " SMM.10: 9% SMM:10-3 + " SMM.10: 29% SMM:10-8 + " USD.09: 11% USD:9-2 +list[s], option IP.4P: 35% IP(4P)-1 + " SMM.09: 11% SMM:9-3 + " SMM.09: 12% SMM:9-3 + " USD.33: 80% USD:33-8 +List, Reading USD.01: 5% USD:1-2 +list, recipient MAIL.1: 74% MAIL(1)-5 + " SMM.16: 30% SMM:16-4 + " SMM.16: 33% SMM:16-5 + " USD.07: 34% USD:7-9 + " USD.07: 34% USD:7-9 +list, reference USD.30: 89% USD:30-11 + " USD.31: 17% USD:31-3 + " USD.31: 22% USD:31-3 + " USD.31: 53% USD:31-9 + " USD.31: 53% USD:31-9 + " USD.31: 63% USD:31-10 +lists, input/output PS2.06: 21% PS2:6-8 + " PS2.06: 24% PS2:6-10 +list, linked PS2.03: 72% PS2:3-11 + " PS2.04: 67% PS2:4-7 + " PS2.06: 53% PS2:6-19 + " PS2.06: 83% PS2:6-29 + " PS2.06: 83% PS2:6-29 + " PS2.09: 7% PS2:9-10 +list[s], property PS2.07: 61% PS2:7-29 + " PS2.09: 2% PS2:9-4 + " PS2.09: 2% PS2:9-4 + " PS2.09: 11% PS2:9-21 + " PS2.09: 12% PS2:9-22 + " PS2.09: 13% PS2:9-24 + " PS2.09: 13% PS2:9-25 + " PS2.09: 17% PS2:9-32 + " PS2.09: 17% PS2:9-33 + " PS2.09: 17% PS2:9-33 + " PS2.09: 17% PS2:9-33 + " PS2.09: 17% PS2:9-33 + " PS2.09: 17% PS2:9-34 + " PS2.09: 17% PS2:9-34 + " PS2.09: 17% PS2:9-34 + " PS2.09: 18% PS2:9-34 + " PS2.09: 18% PS2:9-34 + " PS2.09: 18% PS2:9-34 + " PS2.09: 18% PS2:9-34 + " PS2.09: 20% PS2:9-39 + " PS2.09: 26% PS2:9-51 + " PS2.09: 28% PS2:9-54 + " PS2.09: 66% PS2:9-111 + " PS2.09: 69% PS2:9-116 + " PS2.09: 97% PS2:9-152 + " PS2.09: 97% PS2:9-152 + " PS2.09: 97% PS2:9-152 + " PS2.09: 98% PS2:9-154 +list cell[s] PS2.09: 3% PS2:9-7 + " PS2.09: 4% PS2:9-8 + " PS2.09: 5% PS2:9-9 + " PS2.09: 5% PS2:9-9 + " PS2.09: 5% PS2:9-9 + " PS2.09: 5% PS2:9-9 + " PS2.09: 7% PS2:9-10 + " PS2.09: 7% PS2:9-10 + " PS2.09: 7% PS2:9-10 + " PS2.09: 8% PS2:9-13 + " PS2.09: 8% PS2:9-14 + " PS2.09: 8% PS2:9-15 + " PS2.09: 9% PS2:9-15 + " PS2.09: 9% PS2:9-15 + " PS2.09: 10% PS2:9-17 + " PS2.09: 10% PS2:9-18 + " PS2.09: 10% PS2:9-19 + " PS2.09: 17% PS2:9-32 + " PS2.09: 18% PS2:9-35 + " PS2.09: 18% PS2:9-35 + " PS2.09: 19% PS2:9-37 + " PS2.09: 30% PS2:9-57 + " PS2.09: 53% PS2:9-93 + " PS2.09: 53% PS2:9-93 +list command[s] PS2.09: 92% PS2:9-147 + " PS2.09: 95% PS2:9-150 + " PS2.09: 95% PS2:9-150 + " PS2.09: 95% PS2:9-150 + " PS2.09: 95% PS2:9-150 + " PS2.09: 95% PS2:9-150 + " PS2.09: 96% PS2:9-150 + " PS2.09: 96% PS2:9-151 + " PS2.09: 96% PS2:9-151 +list object PS2.09: 8% PS2:9-13 + " PS2.09: 10% PS2:9-19 + " PS2.09: 29% PS2:9-55 +list structure PS2.09: 8% PS2:9-14 + " PS2.09: 8% PS2:9-15 + " PS2.09: 10% PS2:9-18 + " PS2.09: 17% PS2:9-33 + " PS2.09: 71% PS2:9-116 + " PS2.09: 92% PS2:9-147 +listcell, struct PS2.09: 61% PS2:9-105 + " PS2.09: 61% PS2:9-105 + " PS2.09: 61% PS2:9-105 + " PS2.09: 61% PS2:9-105 +listen call PS1.07a: 63% PS1:7-14 + " PS1.08: 17% PS1:8-7 + " PS1.08: 18% PS1:8-7 +listen for connection[s] PS1.06: 78% PS1:6-34 +listen(s, backlog) PS1.06: 78% PS1:6-34 +listing, program PS1.04: 26% PS1:4-15 + " PS1.04: 26% PS1:4-15 + " PS1.04: 69% PS1:4-35 +listoffixnumscell, struct PS2.09: 61% PS2:9-105 + " PS2.09: 61% PS2:9-105 + " PS2.09: 61% PS2:9-105 +Liszt PS2.09: 1% PS2:9-4 + " PS2.09: 73% PS2:9-120 + " PS2.09: 73% PS2:9-120 + " PS2.09: 73% PS2:9-120 + " PS2.09: 73% PS2:9-120 + " PS2.09: 73% PS2:9-120 + " PS2.09: 73% PS2:9-120 + " PS2.09: 73% PS2:9-120 + " PS2.09: 76% PS2:9-124 + " PS2.09: 76% PS2:9-124 + " PS2.09: 76% PS2:9-124 + " PS2.09: 76% PS2:9-125 +lists, section SMM.10: 27% SMM:10-8 +list[s], sorted LOOK.1: 11% LOOK(1)-1 + " USD.04: 10% USD:4-5 + " USD.04: 16% USD:4-8 +list[s], spelling SPELL.1: 11% SPELL(1)-1 + " SPELL.1: 15% SPELL(1)-1 + " SPELL.1: 23% SPELL(1)-1 + " SPELL.1: 37% SPELL(1)-1 + " SPELL.1: 47% SPELL(1)-1 + " SPELL.1: 83% SPELL(1)-1 +list, subscription SMM.10: 45% SMM:10-13 + " SMM.10: 91% SMM:10-23 + " SMM.10: 92% SMM:10-23 + " SMM.10: 93% SMM:10-23 + " SMM.10: 93% SMM:10-23 + " USD.09: 4% USD:9-1 + " USD.09: 11% USD:9-2 + " USD.09: 16% USD:9-2 + " USD.09: 27% USD:9-3 + " USD.09: 29% USD:9-4 +List, UNIX Reading USD.01: 92% USD:1-13 +list centered USD.22: 34% USD:22-6 +list command ED.1: 57% ED(1)-4 + " USD.13: 5% USD:13-2 +list file[s] SPELL.1: 66% SPELL(1)-1 + " USD.04: 85% USD:4-40 +list of -me macros, strings, register name USD.23: 75% USD:23-11 +list of -ms macros and register name[s] USD.20: 89% USD:20-7 +list of JOVE commands and variable[s] USD.17: 55% USD:17-25 +LIST OF LIBRARY FUNCTION[s] MATH.3M: 1% MATH(3M)-1 + " INTRO.3F: 24% INTRO(3F)-1 + " INTRO.3: 18% INTRO(3)-1 +list of mail command[s] USD.07: 50% USD:7-12 +list of mail customizing option[s] USD.07: 72% USD:7-17 +list of mail options[s], commands[s], escape USD.07: 91% USD:7-23 +list of MH commands MH.N: 66% MH(1)-2 +list of mh commands and option[s] USD.08: 88% USD:8-106 +list of MH user profile component[s] USD.08: 9% USD:8-9 +list of ms macro[s] MS.7: 17% MS(7)-1 +list of names of journals, publishers, known to bib USD.31: 88% USD:31-16 +List of Newsgroup[s] USD.09: 56% USD:9-7 +list of string register[s] MS.7: 87% MS(7)-3 +List of Tbl Command Characters and Word[s] USD.28: 97% USD:28-18 +list of termcap capability[s] TERMCAP.5: 4% TERMCAP(5)-1 +list of troff escape sequences for characters[s], indicators[s], ... USD.24: 13% USD:24-6 +list of troff number register[s] USD.24: 15% USD:24-7 +list of vi control character[s] USD.15: 77% USD:15-22 +list of vi file manipulation command[s] USD.15: 63% USD:15-18 +List owners SMM.07A: 21% SMM:07-11 + " SMM.12A: 93% SMM:12-22 +list-buffers (C-X C-B) USD.17: 77% USD:17-36 +list-proceses USD.17: 78% USD:17-37 +Listen SPP.4P: 15% SPP(4P)-1 +listen - listen for connections on a socket LISTEN.2: 4% LISTEN(2)-1 +listen call SMM.15: 26% SMM:15-8 + " SMM.15: 51% SMM:15-15 +listing, cross reference LXREF.1: 15% LXREF(1)-1 + " LXREF.1: 39% LXREF(1)-1 + " LISZT.1: 55% LISZT(1)-1 +listing[s], program PC.1: 53% PC(1)-1 + " PI.1: 21% PI(1)-1 + " VGRIND.1: 2% VGRIND(1)-1 +Listing what's in the buffer USD.14: 32% USD:14-9 +listrefs - list reference items BIB.N: 1% BIB(1)-1 +liszt - compile a Franz Lisp program LISZT.1: 1% LISZT(1)-1 +literal atom PS2.09: 89% PS2:9-143 + " PS2.09: 89% PS2:9-143 + " PS2.09: 98% PS2:9-153 +literal character[s] PS1.06: 91% PS1:6-38 + " PS1.13: 16% PS1:13-3 + " PS1.15: 6% PS1:15-2 + " PS1.15: 24% PS1:15-7 + " PS2.10: 28% PS2:10-27 +literal next character STTY.1: 97% STTY(1)-3 +literal-next character TTY.4: 24% TTY(4)-3 +literature citation[s] USD.29: 1% USD:29-1 +litout STTY.1: 87% unknown +litout mode RLOGIN.1C: 71% RLOGIN(1C)-1 +LL line length USD.20: 70% USD:20-5 +ln SMM.12A: 36% SMM:12-9 +ln - make links LN.1: 2% LN(1)-1 +lnblnk INDEX.3F: 7% INDEX(3F)-1 +lo - software loopback network interface LO.4: 3% LO(4)-1 +load, disk SMM.01: 41% SMM:1-27 + " SMM.01: 45% SMM:1-30 + " SMM.01: 45% SMM:1-30 + " SMM.01: 46% SMM:1-30 +load, system SYSTAT.1: 3% SYSTAT(1)-1 + " SMM.07A: 30% SMM:07-15 + " SMM.07A: 72% SMM:07-32 + " SMM.07A: 72% SMM:07-32 +load average[s] RWHOD.8C: 44% RWHOD(8C)-1 + " RWHOD.8C: 46% RWHOD(8C)-1 + " W.1: 15% W(1)-1 + " RUPTIME.1C: 73% RUPTIME(1C)-1 + " SYSLINE.1: 11% SYSLINE(1)-1 + " UPTIME.1: 55% UPTIME(1)-1 +load map LD.1: 52% LD(1)-1 +load-on-demand programs LD.1: 86% LD(1)-2 +loader option CC.1: 69% CC(1)-2 +loading firmware IX.4: 13% IX(4)-1 + " NP.4: 12% NP(4)-1 +loc - return the address of an object LOC.3F: 19% USD:12-10 +local address SMM.16: 43% SMM:16-6 +local aliases HTABLE.8: 42% HTABLE(8)-1 +local echo REMOTE.5: 69% REMOTE(5)-1 +local modification, Making SMM.01: 81% SMM:1-50 +Local Motion[s] USD.24: 0% USD:24-2 + " USD.24: 63% USD:24-20 + " USD.25: 32% USD:25-5 + " USD.27: 77% USD:27-8 +local network[s] HTABLE.8: 77% unknown + " HUNT.6: 8% HUNT(6)-1 + " RUPTIME.1C: 29% RUPTIME(1C)-1 + " RWHO.1C: 24% RWHO(1C)-1 +Local site[s] UUCICO.8C: 34% UUCICO(8C)-1 + " SMM.09: 45% SMM:9-10 + " SMM.09: 44% SMM:9-10 +Local subnetwork[s] SMM.01: 62% SMM:1-39 +local symbols LD.1: 76% LD(1)-2 +local variable DBX.5: 9% DBX(5)-1 +local variable[s] PS1.10: 12% PS1:10-3 +localchars mode TELNET.1C: 54% TELNET(1C)-3 + " TELNET.1C: 57% TELNET(1C)-3 + " TELNET.1C: 59% TELNET(1C)-3 + " TELNET.1C: 62% TELNET(1C)-3 + " TELNET.1C: 65% TELNET(1C)-3 +locality of reference SMM.14: 48% SMM:14-8 +LOCALNAME SMM.10: 14% SMM:10-4 + " SMM.10: 14% SMM:10-4 + " SMM.10: 14% SMM:10-4 +localtime CTIME.3: 24% CTIME(3)-1 +location counter[s] PS1.05: 29% PS1:5-4 + " PS1.05: 29% PS1:5-4 + " PS1.05: 31% PS1:5-4 + " PS1.05: 33% PS1:5-5 + " PS1.05: 58% PS1:5-8 + " PS1.05: 58% PS1:5-8 + " PS1.05: 58% PS1:5-8 + " PS1.05: 59% PS1:5-9 + " PS1.05: 60% PS1:5-9 + " PS1.05: 61% PS1:5-9 + " PS1.05: 61% PS1:5-9 + " PS1.05: 61% PS1:5-9 + " PS1.05: 77% PS1:5-11 + " PS1.05: 80% PS1:5-11 +location specification[s] PS2.09: 90% PS2:9-144 + " PS2.09: 90% PS2:9-144 + " PS2.09: 90% PS2:9-144 + " PS2.09: 90% PS2:9-144 + " PS2.09: 90% PS2:9-144 + " PS2.09: 90% PS2:9-144 + " PS2.09: 90% PS2:9-144 + " PS2.09: 93% PS2:9-148 + " PS2.09: 96% PS2:9-151 +location[s], default SMM.02: 5% SMM:2-3 + " SMM.11: 26% SMM:11-4 +location, memory REBOOT.8: 68% REBOOT(8)-2 + " SMM.19: 62% SMM:19-17 +location, physical SMM.19: 39% SMM:19-11 +location counter[s] SMM.19: 6% SMM:19-3 + " SMM.19: 34% SMM:19-10 + " SMM.19: 34% SMM:19-10 + " SMM.19: 72% SMM:19-20 +LOCK SMM.12A: 37% SMM:12-9 +lock, acquire a PS1.06: 21% PS1:6-12 +lock, release a PS1.06: 21% PS1:6-12 +lock on a file, advisory read or write PS1.06: 70% PS1:6-31 +lock[s], advisory CLOSE.2: 27% CLOSE(2)-1 + " FLOCK.2: 3% FLOCK(2)-1 + " FLOCK.2: 16% FLOCK(2)-1 + " FLOCK.2: 26% FLOCK(2)-1 + " FLOCK.2: 32% FLOCK(2)-1 + " SMM.14: 1% SMM:14-2 + " SMM.14: 80% SMM:14-12 + " SMM.14: 81% SMM:14-12 + " SMM.14: 81% SMM:14-12 + " SMM.14: 81% SMM:14-12 + " SMM.14: 81% SMM:14-12 + " SMM.14: 82% SMM:14-12 +lock, breaking a revision RCS.N: 38% RCS(1)-1 +lock[s], exclusive FLOCK.2: 8% FLOCK(2)-1 + " FLOCK.2: 37% FLOCK(2)-1 + " FLOCK.2: 46% FLOCK(2)-1 + " SMM.14: 82% SMM:14-12 + " SMM.14: 82% SMM:14-12 + " SMM.14: 82% SMM:14-12 + " SMM.14: 82% SMM:14-12 + " SMM.14: 83% SMM:14-12 + " SMM.14: 83% SMM:14-12 + " SMM.14: 83% SMM:14-12 +lock[s], hard SMM.14: 80% SMM:14-12 + " SMM.14: 81% SMM:14-12 + " SMM.14: 81% SMM:14-12 + " SMM.14: 81% SMM:14-12 +locking, Non-strict PS1.13: 66% PS1:13-13 +locking, strict PS1.13: 10% PS1:13-2 + " PS1.13: 66% PS1:13-13 +LOG PS2.10: 84% PS2:10-77 +locks, non-blocking FLOCK.2: 60% FLOCK(2)-1 +lock[s], shared FLOCK.2: 45% FLOCK(2)-1 + " SMM.14: 83% SMM:14-12 + " FLOCK.2: 6% FLOCK(2)-1 + " SMM.14: 82% SMM:14-12 +lock - reserve a terminal LOCK.1: 7% LOCK(1)-1 +lock a revision RCS.N: 29% RCS(1)-1 +lock file[s] BINMAIL.1: 91% BINMAIL(1)-2 + " LPD.8: 80% LPD(8)-2 + " LPD.8: 84% LPD(8)-2 + " LPQ.1: 79% LPQ(1)-1 + " LPQ.1: 93% LPQ(1)-1 + " LPRM.1: 94% LPRM(1)-1 + " SMM.01: 34% SMM:1-22 + " SMM.09: 26% SMM:9-6 + " SMM.09: 38% SMM:9-9 + " SMM.09: 84% SMM:9-18 + " SMM.09: 85% SMM:9-18 + " SMM.09: 85% SMM:9-18 + " SMM.09: 95% SMM:9-20 + " SMM.09: 95% SMM:9-20 + " SMM.09: 96% SMM:9-20 + " SMM.14: 85% SMM:14-12 +Locking, File CHOWN.2: 31% CHOWN(2)-1 + " SMM.14: 78% SMM:14-12 +locking, Non-strict RCS.N: 46% RCS(1)-1 +locking, strict RCS.N: 42% RCS(1)-1 +locking mechanism FLOCK.2: 35% FLOCK(2)-1 + " SAIL.6: 5% SAIL(6)-1 + " CREAT.2: 26% CREAT(2)-1 +locking mechanism. OPEN.2: 27% OPEN(2)-1 +locking protocol SMM.01: 34% SMM:1-22 + " SMM.01: 56% SMM:1-35 + " TIP.1C: 38% TIP(1C)-2 +Log BC.1: 42% BC(1)-1 +log entry PS1.13: 8% PS1:13-2 +log errors via syslog PS1.08: 47% PS1:8-19 +log message[s] PS1.13: 18% PS1:13-4 + " PS1.13: 25% PS1:13-5 + " PS1.13: 25% PS1:13-5 + " PS1.13: 26% PS1:13-5 + " PS1.13: 26% PS1:13-5 + " PS1.13: 27% PS1:13-5 + " PS1.13: 32% PS1:13-6 + " PS1.13: 50% PS1:13-10 + " PS1.13: 51% PS1:13-10 + " PS1.13: 90% PS1:13-20 + " PS1.13: 95% PS1:13-21 +log messages and other information about RCS file, rlog - print PS1.13: 88% PS1:13-20 +log, change CO.N: 73% CO(1)-3 + " RCS.N: 4% RCS(1)-1 +log, log10 - logarithm EXP.3M: 1% EXP(3M)-1 +log, logger - make entries in the system LOGGER.1: 4% LOGGER(1)-1 +log, system LOGGER.1: 7% LOGGER(1)-1 + " SHUTDOWN.8: 55% SHUTDOWN(8)-1 + " SMM.07: 13% SMM:7-1 + " SYSLOG.3: 8% SYSLOG(3)-1 + " SMM.07A: 12% SMM:07-8 + " SMM.07A: 12% SMM:07-8 + " SMM.07A: 12% SMM:07-8 +log, system error DMESG.8: 31% DMESG(8)-1 + " INTRO.4N: 25% INTRO(4N)-1 + " INTRO.4: 10% INTRO(4)-1 +log file[s] HIER.7: 72% HIER(7)-5 + " IMPLOG.8C: 39% IMPLOG(8C)-1 + " SCRIPT.1: 88% SCRIPT(1)-1 + " SMM.01: 59% SMM:1-37 + " SMM.06: 42% SMM:6-3 + " SMM.09: 52% SMM:9-11 + " SMM.09: 84% SMM:9-18 + " SMM.09: 86% SMM:9-18 + " SMM.10: 32% SMM:10-9 + " SMM.10: 33% SMM:10-9 + " SMM.10: 71% SMM:10-18 + " SMM.10: 72% SMM:10-18 + " SYSLOG.3: 16% SYSLOG(3)-1 + " SYSLOG.3: 39% SYSLOG(3)-1 + " SYSLOG.3: 82% SYSLOG(3)-2 +log gamma LGAMMA.3M: 2% LGAMMA(3M)-1 +log in to a remote system, call UNIX - TIP.1C: 34% TIP(1C)-2 +log level[s] SENDMAIL.8: 62% SENDMAIL(8)-2 + " SMM.07A: 13% SMM:07-8 + " SMM.07A: 13% SMM:07-8 + " SMM.07A: 13% SMM:07-8 + " SMM.07A: 32% SMM:07-15 +log message[s] CI.N: 26% CI(1)-1 + " CI.N: 26% CI(1)-1 + " CI.N: 29% CI(1)-1 + " CI.N: 30% CI(1)-1 + " CI.N: 35% CI(1)-1 + " CI.N: 69% CI(1)-2 + " CO.N: 71% CO(1)-3 + " CO.N: 72% CO(1)-3 + " RLOG.N: 22% RLOG(1)-1 + " RLOG.N: 82% RLOG(1)-2 +log1p ASINH.3M: 46% ASINH(3M)-1 +logarithm, log, log10 - EXP.3M: 1% EXP(3M)-1 +logarithm, natural EXP.3M: 12% EXP(3M)-1 + " USD.19: 46% USD:19-4 +Logarithmic axis[s] GRAPH.1G: 61% unknown +LOGFILE[s] SMM.09: 84% SMM:9-18 + " SMM.09: 98% SMM:9-20 + " SMM.09: 98% SMM:9-21 +logger SMM.12A: 37% SMM:12-9 +logger - make entries in the system log LOGGER.1: 4% LOGGER(1)-1 +logging, uucp SMM.09: 84% SMM:9-18 +Logging in USD.14: 11% USD:14-4 +logging in and out USD.01: 0% USD:1-1 +logging option, syslog SYSLOG.3: 42% unknown +Logging Out USD.01: 16% USD:1-3 +logical expression[s] LINT.1: 12% LINT(1)-1 + " USD.25: 77% USD:25-11 +logical operator[s] PS2.06: 36% PS2:6-13 + " PS2.10: 40% PS2:10-35 + " PS2.10: 40% PS2:10-35 + " PS2.10: 40% PS2:10-35 + " USD.19: 69% USD:19-6 +logical quantity[s] F77.1: 39% F77(1)-1 +logical record[s] PS1.03: 5% PS1:3-3 + " PS1.03: 5% PS1:3-3 + " PS1.03: 6% PS1:3-3 + " PS1.03: 7% PS1:3-3 + " PS1.03: 11% PS1:3-3 + " PS1.03: 12% PS1:3-3 + " PS1.03: 13% PS1:3-3 + " PS1.03: 14% PS1:3-3 + " PS2.04: 96% PS2:4-9 +Logical record length PS1.03: 7% PS1:3-3 + " PS1.03: 8% PS1:3-3 + " PS1.03: 9% PS1:3-3 + " PS1.03: 11% PS1:3-3 + " PS1.03: 71% PS1:3-9 +logical unit number SMM.02: 31% SMM:2-9 + " SMM.02: 31% SMM:2-9 + " SMM.02: 31% SMM:2-9 +logical unit[s] PS1.02: 36% PS1:2-12 + " PS1.03: 16% PS1:3-4 + " PS1.03: 17% PS1:3-4 + " PS1.03: 18% PS1:3-4 + " PS1.03: 18% PS1:3-4 + " PS1.03: 18% PS1:3-4 + " PS1.03: 19% PS1:3-4 + " PS1.03: 19% PS1:3-4 + " PS1.03: 22% PS1:3-4 + " PS1.03: 25% PS1:3-4 + " PS1.03: 25% PS1:3-4 + " PS1.03: 29% PS1:3-5 + " PS1.03: 37% PS1:3-5 + " PS1.03: 53% PS1:3-7 + " PS1.03: 53% PS1:3-7 + " PS1.03: 54% PS1:3-7 + " PS1.03: 60% PS1:3-7 + " PS1.03: 63% PS1:3-8 + " PS1.03: 63% PS1:3-8 + " PS1.03: 64% PS1:3-8 + " PS1.03: 70% PS1:3-9 + " PS1.03: 70% PS1:3-9 + " PS1.03: 70% PS1:3-9 + " PS1.03: 70% PS1:3-9 + " PS1.03: 71% PS1:3-9 + " PS1.03: 71% PS1:3-9 + " PS1.03: 74% PS1:3-10 + " PS1.03: 78% PS1:3-10 +logical value[s] BIT.3F: 37% BIT(3F)-1 +LOGIN CSH.1: 63% CSH(1)-13 + " RCP.1C: 94% unknown + " SMM.12A: 37% SMM:12-9 +login name[s] PS1.13: 50% PS1:13-9 + " PS1.13: 62% PS1:13-13 + " PS1.13: 92% PS1:13-20 + " PS1.13: 92% PS1:13-20 + " PS2.10: 32% PS2:10-30 + " PS2.10: 54% PS2:10-47 +login process PS1.08: 49% PS1:8-20 + " PS1.08: 50% PS1:8-20 + " PS1.08: 61% PS1:8-24 +login time PS1.06: 11% PS1:6-8 + " PS2.10: 26% PS2:10-26 + " PS2.10: 62% PS2:10-54 + " PS2.10: 74% PS2:10-64 + " PS2.10: 75% PS2:10-67 + " PS2.10: 80% PS2:10-72 + " PS2.10: 81% PS2:10-74 +login[s], disabling SHUTDOWN.8: 43% SHUTDOWN(8)-1 +login, remote RLOGIND.8C: 7% RLOGIND(8C)-1 +login, rlogin - remote RLOGIN.1C: 2% RLOGIN(1C)-1 +login[s], uucp SMM.09: 99% SMM:9-21 + " SMM.09: 99% SMM:9-21 + " SMM.09: 99% SMM:9-21 + " SMM.09: 99% SMM:9-21 +login - Bourne shell command SH.1: 0% SH(1)-1 +login - sign on LOGIN.1: 2% LOGIN(1)-1 +login accounting file REBOOT.8: 17% REBOOT(8)-1 +login directory ADDUSER.8: 58% ADDUSER(8)-1 + " ENVIRON.7: 33% ENVIRON(7)-1 + " MAIL.1: 35% MAIL(1)-2 + " RCP.1C: 49% RCP(1C)-1 + " RLOGIN.1C: 26% RLOGIN(1C)-1 + " SMM.01: 71% SMM:1-42 + " SMM.09: 8% SMM:9-3 + " SMM.09: 9% SMM:9-3 + " SMM.09: 9% SMM:9-3 + " SMM.09: 98% SMM:9-21 + " USD.01: 65% USD:1-10 + " USD.03: 19% USD:3-4 + " USD.04: 46% USD:4-21 + " USD.07: 13% USD:7-4 + " USD.07: 23% USD:7-6 + " UUCP.1C: 19% UUCP(1C)-1 +login file (see instead .login) USD.04: 44% USD:4-20 +login history HIER.7: 38% HIER(7)-4 + " LAST.1: 3% LAST(1)-1 +login information SMM.09: 26% SMM:9-6 + " SMM.09: 27% SMM:9-6 + " SMM.09: 91% SMM:9-19 +login message GETTYTAB.5: 66% GETTYTAB(5)-2 + " USD.01: 8% USD:1-2 + " USD.14: 11% USD:14-4 +login name[s] AC.8: 47% AC(8)-1 + " ADDUSER.8: 3% ADDUSER(8)-1 + " ADDUSER.8: 26% ADDUSER(8)-1 + " CO.N: 69% CO(1)-2 + " ENVIRON.7: 65% ENVIRON(7)-1 + " FIND.1: 36% FIND(1)-1 + " FINGER.1: 8% FINGER(1)-1 + " FINGERD.8C: 66% FINGERD(8C)-1 + " GETLOGIN.3: 7% GETLOGIN(3)-1 + " GETLOGIN.3: 18% GETLOGIN(3)-1 + " GETLOGIN.3: 36% GETLOGIN(3)-1 + " GETLOGIN.3: 62% GETLOGIN(3)-1 + " GETTY.8: 8% GETTY(8)-1 + " GETTY.8: 36% GETTY(8)-1 + " GETTY.8: 79% GETTY(8)-1 + " GETTYTAB.5: 51% GETTYTAB(5)-2 + " GETTYTAB.5: 84% GETTYTAB(5)-3 + " GETTYTAB.5: 93% GETTYTAB(5)-3 + " HIER.7: 74% HIER(7)-5 + " LPD.8: 46% LPD(8)-1 + " PASSWD.5: 11% PASSWD(5)-1 + " PASSWD.5: 30% PASSWD(5)-1 + " PRINTCAP.5: 75% PRINTCAP(5)-2 + " RCS.N: 6% RCS(1)-1 + " RLOG.N: 49% RLOG(1)-1 + " RLOG.N: 51% RLOG(1)-1 + " SMM.06: 65% SMM:6-5 + " SMM.16: 44% SMM:16-6 + " TALK.1: 16% TALK(1)-1 + " USD.01: 8% USD:1-2 + " USD.01: 18% USD:1-3 + " USD.04: 15% USD:4-7 + " USD.07: 2% USD:7-2 + " USD.07: 2% USD:7-2 + " USD.07: 3% USD:7-2 + " USD.07: 5% USD:7-2 + " USD.07: 17% USD:7-5 + " USD.07: 40% USD:7-10 + " USD.14: 11% USD:14-4 + " USD.14: 11% USD:14-4 + " USD.14: 12% USD:14-4 + " USD.17: 78% USD:17-37 + " USERFILE.5: 89% USERFILE(5)-2 + " USERS.1: 48% USERS(1)-1 + " UTMP.5: 55% UTMP(5)-1 + " WHO.1: 16% WHO(1)-1 + " SMM.12A: 93% SMM:12-22 + " GETLOG.3F: 56% +login process GETTYTAB.5: 76% GETTYTAB(5)-2 + " RLOGIND.8C: 40% RLOGIND(8C)-1 + " RLOGIND.8C: 40% RLOGIND(8C)-1 + " RLOGIND.8C: 44% RLOGIND(8C)-1 + " TELNETD.8C: 22% TELNETD(8C)-1 + " TELNETD.8C: 32% TELNETD(8C)-1 + " USD.14: 13% USD:14-4 +login prompt GETTYTAB.5: 30% GETTYTAB(5)-2 +login sequence[s] FTP.1C: 70% FTP(1C)-5 + " SMM.01: 59% SMM:1-36 + " SMM.01: 59% SMM:1-36 + " USD.14: 13% USD:14-4 +login server LOGIN.1: 90% LOGIN(1)-1 + " RLOGIND.8C: 2% RLOGIND(8C)-1 +login shell ADDUSER.8: 72% ADDUSER(8)-1 + " ADDUSER.8: 78% ADDUSER(8)-1 + " CSH.1: 1% CSH(1)-1 + " CSH.1: 2% CSH(1)-1 + " CSH.1: 63% CSH(1)-13 + " CSH.1: 63% CSH(1)-13 + " CSH.1: 90% CSH(1)-19 + " CSH.1: 95% CSH(1)-20 + " FINGER.1: 37% FINGER(1)-1 + " PASSWD.1: 8% PASSWD(1)-1 + " PASSWD.1: 34% PASSWD(1)-1 + " PASSWD.1: 36% PASSWD(1)-1 + " PASSWD.1: 38% PASSWD(1)-1 + " PASSWD.1: 48% PASSWD(1)-1 + " PASSWD.1: 50% PASSWD(1)-1 + " REXECD.8C: 51% REXECD(8C)-1 + " USD.04: 24% USD:4-11 + " USD.04: 50% USD:4-23 + " USD.04: 84% USD:4-39 + " USD.04: 84% USD:4-39 + " USD.04: 84% USD:4-40 + " USD.04: 84% USD:4-40 + " ADDUSER.8: 58% ADDUSER(8)-1 +login time FINGER.1: 14% FINGER(1)-1 + " GETGID.2: 52% GETGID(2)-1 + " REXECD.8C: 40% REXECD(8C)-1 + " USD.11: 85% USD:11-13 + " W.1: 40% W(1)-1 + " WHO.1: 19% WHO(1)-1 +login to a remote host TELNET.1C: 1% TELNET(1C)-1 +logout CSH.1: 63% CSH(1)-13 +logout command USD.04: 24% USD:4-11 + " USD.04: 26% USD:4-11 + " USD.04: 50% USD:4-23 +logout file CSH.1: 2% CSH(1)-1 +long, short - integer object conversion LONG.3F: 8% unknown +long file name[s] SMM.14: 1% SMM:14-2 + " SMM.14: 75% SMM:14-11 +long lines FOLD.1: 9% +long lines on short terminal, printing USD.13: 6% USD:13-2 +long-running program[s] NICE.3C: 34% NICE(3C)-1 +longjmp SIGRETURN.2: 49% SIGRETURN(2)-1 + " SMM.12A: 66% SMM:12-15 +longjmp - non-local goto SETJMP.3: 4% SETJMP(3)-1 +longjmp botch SETJMP.3: 83% SETJMP(3)-1 + " SMM.12A: 66% SMM:12-15 +longjmperror, routine SETJMP.3: 74% SETJMP(3)-1 + " SMM.12A: 66% SMM:12-15 +longname(termbuf, name) PS1.18: 52% PS1:18-15 +look - find lines in a sorted list LOOK.1: 8% LOOK(1)-1 +lookahead token PS1.15: 26% PS1:15-8 + " PS1.15: 27% PS1:15-8 + " PS1.15: 27% PS1:15-8 + " PS1.15: 27% PS1:15-8 + " PS1.15: 27% PS1:15-8 + " PS1.15: 28% PS1:15-8 + " PS1.15: 28% PS1:15-8 + " PS1.15: 28% PS1:15-8 + " PS1.15: 28% PS1:15-8 + " PS1.15: 30% PS1:15-8 + " PS1.15: 32% PS1:15-9 + " PS1.15: 32% PS1:15-9 + " PS1.15: 35% PS1:15-10 + " PS1.15: 35% PS1:15-10 + " PS1.15: 35% PS1:15-10 + " PS1.15: 36% PS1:15-11 + " PS1.15: 57% PS1:15-16 + " PS1.15: 57% PS1:15-16 + " PS1.15: 60% PS1:15-17 +Loops PS1.02: 52% PS1:2-18 + " PS2.06: 51% PS2:6-18 + " PS2.06: 54% PS2:6-19 +lookall command USD.30: 3% USD:30-1 + " USD.30: 3% USD:30-1 +lookbib USD.29: 4% USD:29-1 + " USD.29: 56% USD:29-6 +lookbib - find references in a bibliography LOOKBIB.1: 2% LOOKBIB(1)-1 +lookup - access an inverted index INVERT.N: 1% INVERT(1)-1 +loop, aliasing SMM.07A: 79% SMM:07-34 + " SMM.07A: 83% SMM:07-37 +loop, break PS2.09: 24% PS2:9-46 + " PS2.09: 46% PS2:9-81 + " PS2.09: 70% PS2:9-116 + " PS2.09: 86% PS2:9-139 +loop, debug PS2.09: 86% PS2:9-139 + " PS2.09: 86% PS2:9-139 + " PS2.09: 87% PS2:9-140 + " PS2.09: 87% PS2:9-140 + " PS2.09: 87% PS2:9-140 +loop[s], enclosing PS2.08: 38% PS2:8-6 + " PS2.08: 38% PS2:8-6 + " PS2.08: 38% PS2:8-6 +loop[s], infinite PS1.04: 49% PS1:4-26 + " PS1.04: 71% PS1:4-36 + " PS2.08: 54% PS2:8-8 + " PS2.09: 43% PS2:9-78 +loop form[s] PS2.06: 51% PS2:6-18 + " PS2.06: 54% PS2:6-19 + " PS2.06: 56% PS2:6-20 +loops, DO F77.1: 44% F77(1)-2 +loop, idle SMM.13: 55% SMM:13-19 + " SMM.13: 55% SMM:13-19 + " SMM.13: 55% SMM:13-19 +loop[s], infinite SMM.19: 91% SMM:19-25 +Loop Detection Message SMM.22: 93% SMM:22-10 +loopback, software LO.4: 13% LO(4)-1 +loopback interface INTRO.4N: 72% INTRO(4N)-3 + " LO.4: 26% LO(4)-1 + " LO.4: 41% LO(4)-1 + " LO.4: 80% LO(4)-1 + " SMM.01: 61% SMM:1-38 + " SMM.11: 35% SMM:11-5 + " SMM.13: 68% SMM:13-24 + " SMM.13: 80% SMM:13-27 +looping in the shell CSH.1: 55% CSH(1)-11 +Loops at the terminal USD.04: 64% USD:4-32 +loops not entered at the top LINT.1: 10% LINT(1)-1 +lorder - find ordering relation for an object library LORDER.1: 5% LORDER(1)-1 +lost+found directory FS.5: 58% FS(5)-3 + " FSCK.8: 87% FSCK(8)-2 + " MKFS.8: 21% MKFS(8)-1 + " MKLOST+FOUND.8: 14% unknown +lower case letter CTYPE.3: 44% CTYPE(3)-1 +lower case letter[s], upper case and USD.17: 23% USD:17-10 +lower-case letter[s] TTY.4: 39% TTY(4)-4 + " USD.06: 38% USD:6-5 + " USD.08: 40% USD:8-47 +lp - line printer LP.4: 3% LP(4)-1 +LP-11 DMF.4: 13% DMF(4)-1 +LPASS8 SMM.13: 6% SMM:13-3 + " SMM.13: 24% SMM:13-9 + " TTY.4: 69% TTY(4)-7 +lpc SMM.12A: 87% SMM:12-20 +lpc - line printer control program LPC.8: 1% LPC(8)-1 + " SMM.06: 23% SMM:6-2 +lpd PRINTCAP.5: 62% PRINTCAP(5)-1 + " SMM.12A: 88% SMM:12-21 +lpd - line printer daemon LPD.8: 0% LPD(8)-1 +lpile - left-justified pile USD.27: 60% USD:27-7 +lpq - show line printer queue SMM.06: 19% SMM:6-2 +lpq - spool queue examination program LPQ.1: 1% LPQ(1)-1 +LPR SYSLOG.3: 78% SYSLOG(3)-2 + " USD.04: 84% USD:4-40 + " SMM.06: 17% SMM:6-2 + " SMM.12A: 37% SMM:12-9 +lpr - off line print LPR.1: 1% LPR(1)-1 +lprm - remove jobs from a queue SMM.06: 21% SMM:6-2 +lprm - remove jobs from the line printer spooling queue LPRM.1: 2% LPRM(1)-1 +lptest - generate lineprinter ripple pattern LPTEST.1: 5% LPTEST(1)-1 +LR Parsing YACC.1: 70% YACC(1)-1 +LR(1) parsing YACC.1: 13% YACC(1)-1 +ls -[s] USD.04: 10% USD:4-5 +ls - list contents of directory LS.1: 1% LS(1)-1 +ls -l USD.01: 29% USD:1-5 + " USD.03: 5% USD:3-2 +ls command RESTORE.8: 49% RESTORE(8)-2 + " USD.01: 38% USD:1-6 + " USD.04: 5% USD:4-4 + " USD.04: 20% USD:4-9 +Lseek DUP.2: 43% DUP(2)-1 + " SMM.12A: 57% SMM:12-13 +lseek - move read/write pointer LSEEK.2: 3% LSEEK(2)-1 +lseek pointer MKSTR.1: 69% MKSTR(1)-1 +lseek(fd, offset, type) PS1.06: 68% PS1:6-30 +lstat LN.1: 53% LN(1)-1 +lstat - get file status STAT.2: 1% STAT(2)-1 + " STAT.3F: 5% STAT(3F)-1 +LT title length USD.20: 70% USD:20-5 +lstat(path, stb) PS1.06: 64% PS1:6-29 +ltchars structure TTY.4: 93% TTY(4)-10 + " TTY.4: 95% TTY(4)-10 + " TTY.4: 95% TTY(4)-10 +ltime - return system time TIME.3F: 6% TIME(3F)-1 +lvalue expression PS1.01: 11% PS1:1-4 + " PS1.01: 12% PS1:1-4 + " PS1.01: 12% PS1:1-4 + " PS1.01: 20% PS1:1-6 + " PS1.01: 27% PS1:1-8 + " PS1.01: 27% PS1:1-8 +lvalue operand[s] PS1.01: 12% PS1:1-4 + " PS1.01: 26% PS1:1-8 + " PS1.01: 26% PS1:1-8 +M4 PS1.17: 1% PS1:17-1 + " PS1.17: 2% PS1:17-1 + " PS1.17: 3% PS1:17-1 + " PS1.17: 4% PS1:17-1 + " PS1.17: 8% PS1:17-1 + " PS1.17: 14% PS1:17-2 + " PS1.17: 26% PS1:17-2 + " PS1.17: 27% PS1:17-2 + " PS1.17: 33% PS1:17-2 + " PS1.17: 37% PS1:17-3 + " PS1.17: 38% PS1:17-3 + " PS1.17: 43% PS1:17-3 + " PS1.17: 54% PS1:17-4 + " PS1.17: 66% PS1:17-4 +M4, divert the output of PS1.17: 66% PS1:17-4 +lxref - lisp cross reference program LXREF.1: 3% LXREF(1)-1 +m's, macros for HIER.7: 54% HIER(7)-4 +M-209 cipher machine SMM.18: 32% SMM:18-2 +m4 - macro processor M4.1: 0% M4(1)-1 +M4 Macro Processor M4.1: 98% M4(1)-2 + " M4.1: 2% M4(1)-1 + " M4.1: 28% M4(1)-1 + " M4.1: 46% M4(1)-1 +m4 built-in macro[s], summary of PS1.17: 94% PS1:17-6 +M4 Macro Processor PS1.17: 0% + " PS1.17: 0% + " PS1.17: 6% PS1:17-1 + " PS1.17: 13% PS1:17-2 + " PS1.17: 33% PS1:17-2 + " PS1.17: 51% PS1:17-4 + " PS1.17: 72% PS1:17-4 + " PS1.17: 91% PS1:17-6 +machine address PS1.07a: 47% PS1:7-11 + " PS1.07a: 47% PS1:7-11 + " PS1.07a: 47% PS1:7-11 + " PS1.07a: 48% PS1:7-11 +machine halt or reboot PS1.06: 48% PS1:6-23 +machine independent C code PS1.09: 3% PS1:9-1 +Machine instruction[s] PS1.05: 82% PS1:5-12 + " PS2.01: 56% PS2:1-8 + " PS2.09: 3% PS2:9-7 + " PS2.09: 84% PS2:9-136 +machine integer[s] PS1.01: 3% PS1:1-2 + " PS1.01: 3% PS1:1-2 + " PS1.01: 49% PS1:1-16 +Maclisp PS2.09: 15% PS2:9-29 + " PS2.09: 41% PS2:9-73 + " PS2.09: 47% PS2:9-83 + " PS2.09: 56% PS2:9-97 + " PS2.09: 65% PS2:9-111 + " PS2.09: 65% PS2:9-111 + " PS2.09: 76% PS2:9-125 + " PS2.09: 76% PS2:9-125 + " PS2.09: 84% PS2:9-136 + " PS2.09: 85% PS2:9-137 +Maclisp compatible array[s] PS2.09: 15% PS2:9-28 + " PS2.09: 1% PS2:9-3 +Maclisp compatible array package PS2.09: 64% PS2:9-108 + " PS2.09: 64% PS2:9-108 + " PS2.09: 65% PS2:9-111 +machine[s], destination SMM.21: 27% SMM:21-2 +machine[s], host GETHOSTNAME.2: 43% GETHOSTNAME(2)- +machine, target INTRO.2: 56% INTRO(2)-5 + " SMM.19: 2% SMM:19-2 + " SMM.19: 4% SMM:19-2 + " SMM.19: 40% SMM:19-11 + " SMM.19: 82% SMM:19-23 +machine architecture SMM.19: 59% SMM:19-16 + " SMM.19: 73% SMM:19-20 + " SMM.19: 78% SMM:19-22 +machine check[s] CRASH.8V: 57% CRASH(8V)-2 + " CRASH.8V: 98% CRASH(8V)-3 + " IK.4: 89% IK(4)-1 + " SMM.02: 60% SMM:2-18 + " SMM.13: 56% SMM:13-19 + " CRASH.8V: 52% CRASH(8V)-2 +machine instruction[s] ADB.1: 46% ADB(1)-3 + " DBX.1: 83% DBX(1)-6 +Machine Model SMM.19: 49% SMM:19-14 +machine name[s] FTP.1C: 91% FTP(1C)-7 + " L_ALIASES.5: 24% L.ALIASES(5)-1 + " RCMD.3: 73% RCMD(3)-1 + " RSHD.8C: 55% RSHD(8C)-1 + " SMM.11: 44% SMM:11-6 + " SMM.11: 53% SMM:11-7 + " SMM.11: 55% SMM:11-8 + " SMM.11: 86% SMM:11-14 + " SMM.12A: 90% SMM:12-21 +machine type SMM.02: 2% SMM:2-2 + " SMM.02: 2% SMM:2-2 + " SMM.02: 2% SMM:2-2 + " SMM.02: 2% SMM:2-2 + " SMM.02: 4% SMM:2-2 + " SMM.02: 11% SMM:2-4 + " SMM.02: 21% SMM:2-7 + " SMM.02: 21% SMM:2-7 + " SMM.02: 21% SMM:2-7 + " SMM.02: 27% SMM:2-8 + " SMM.02: 48% SMM:2-15 +machine units USD.25: 16% USD:25-3 + " USD.25: 37% USD:25-6 + " USD.25: 38% USD:25-6 + " USD.25: 68% USD:25-10 +machine-level debugging DBX.1: 78% DBX(1)-6 +Macintosh, Apple EXP.3M: 48% EXP(3M)-2 +MacIntosh software development SMM.12A: 99% SMM:12-23 +Maclisp LISP.1: 12% LISP(1)-1 +MACLISP syntax LISZT.1: 19% LISZT(1)-1 +Macro[s] CHECKNR.1: 23% CHECKNR(1)-1 + " USD.24: 7% USD:24-3 + " USD.24: 42% USD:24-14 + " USD.24: 42% USD:24-14 + " USD.25: 47% USD:25-7 + " USD.23: 5% USD:23-1 + " USD.27: 70% USD:27-8 +macro, backquote PS2.09: 57% PS2:9-99 + " PS2.09: 57% PS2:9-99 + " PS2.09: 57% PS2:9-99 + " PS2.09: 57% PS2:9-99 +macro, backquote character PS2.09: 7% PS2:9-10 + " PS2.09: 57% PS2:9-99 + " PS2.09: 57% PS2:9-99 +macro[s], character PS2.09: 1% PS2:9-3 + " PS2.09: 49% PS2:9-87 + " PS2.09: 52% PS2:9-92 + " PS2.09: 52% PS2:9-92 + " PS2.09: 52% PS2:9-92 + " PS2.09: 52% PS2:9-92 + " PS2.09: 52% PS2:9-92 + " PS2.09: 54% PS2:9-95 + " PS2.09: 57% PS2:9-99 +macro, splicing PS2.09: 52% PS2:9-93 + " PS2.09: 52% PS2:9-93 + " PS2.09: 53% PS2:9-93 + " PS2.09: 53% PS2:9-93 + " PS2.09: 53% PS2:9-93 + " PS2.09: 53% PS2:9-93 +macro[s], summary of m4 built-in PS1.17: 94% PS1:17-6 +macro argument[s] PS1.17: 45% PS1:17-3 +macro character PS2.09: 53% PS2:9-94 + " PS2.09: 53% PS2:9-94 + " PS2.09: 53% PS2:9-94 + " PS2.09: 53% PS2:9-94 + " PS2.09: 54% PS2:9-95 +macro definition[s] PS1.01: 78% PS1:1-26 + " PS1.12: 34% PS1:12-3 + " PS1.12: 36% PS1:12-4 + " PS1.12: 39% PS1:12-4 + " PS1.12: 40% PS1:12-4 + " PS1.12: 53% PS1:12-5 + " PS1.12: 54% PS1:12-5 + " PS1.12: 58% PS1:12-5 + " PS1.16: 47% PS1:16-6 + " PS2.09: 56% PS2:9-98 + " PS2.09: 74% PS2:9-123 + " PS2.09: 75% PS2:9-123 + " PS2.09: 75% PS2:9-123 + " PS2.09: 75% PS2:9-124 + " PS2.09: 75% PS2:9-124 + " PS2.09: 76% PS2:9-125 + " PS2.09: 96% PS2:9-151 + " PS2.10: 27% PS2:10-26 +macro expansion[s] PS2.09: 19% PS2:9-38 + " PS2.09: 56% PS2:9-98 + " PS2.09: 73% PS2:9-120 + " PS2.09: 73% PS2:9-120 + " PS2.09: 73% PS2:9-120 + " PS2.09: 75% PS2:9-123 +macro facility[s] PS2.09: 55% PS2:9-95 + " PS2.09: 55% PS2:9-95 + " PS2.10: 15% PS2:10-19 +macro function PS2.09: 41% PS2:9-73 + " PS2.09: 51% PS2:9-89 + " PS2.09: 51% PS2:9-90 + " PS2.09: 53% PS2:9-94 +macro invocation[s] PS1.12: 31% PS1:12-3 + " PS2.09: 73% PS2:9-120 + " PS2.09: 73% PS2:9-120 + " PS2.09: 73% PS2:9-120 +macro name[s] PS1.12: 31% PS1:12-3 + " PS1.12: 67% PS1:12-6 + " PS1.17: 23% PS1:17-2 + " PS1.17: 27% PS1:17-2 + " PS1.17: 49% PS1:17-3 + " PS2.06: 12% PS2:6-5 + " PS2.10: 78% PS2:10-70 +macro processor[s] PS1.12: 6% PS1:12-1 + " PS1.17: 1% PS1:17-1 + " PS1.17: 3% PS1:17-1 + " PS1.17: 4% PS1:17-1 + " PS1.17: 6% PS1:17-1 + " PS1.17: 7% PS1:17-1 + " PS2.10: 17% PS2:10-20 + " PS2.10: 18% PS2:10-20 + " PS2.10: 18% PS2:10-20 + " PS2.10: 28% PS2:10-27 +macro substitution PS1.01: 77% PS1:1-26 + " PS1.09: 50% PS1:9-6 + " PS2.06: 12% PS2:6-5 +MACRO-32, DEC PS1.05: 85% PS1:5-12 +macros - terminal monitor macro facility PS2.10: 15% PS2:10-18 +macros, -me BIB.N: 81% BIB(1)-2 + " USD.22: 98% USD:22-19 + " USD.22: 99% USD:22-19 + " USD.23: 8% USD:23-2 + " USD.23: 74% USD:23-10 + " USD.23: 75% USD:23-11 +macros, -ms BIB.N: 78% BIB(1)-2 + " BIB.N: 79% BIB(1)-2 + " MS.7: 6% MS(7)-1 + " USD.20: 0% USD:20-1 + " USD.20: 0% USD:20-1 + " USD.20: 11% USD:20-2 + " USD.20: 17% USD:20-2 + " USD.20: 30% USD:20-2 + " USD.20: 41% USD:20-4 + " USD.20: 54% USD:20-4 + " USD.20: 73% USD:20-6 + " USD.20: 89% USD:20-6 + " USD.20: 99% USD:20-8 + " USD.29: 71% USD:29-7 + " USD.29: 86% USD:29-9 + " USD.29: 87% USD:29-9 + " USD.30: 66% USD:30-7 + " USD.30: 67% USD:30-7 + " USD.30: 69% USD:30-8 + " USD.30: 73% USD:30-8 + " VGRIND.1: 97% VGRIND(1)-2 +macro[s], alias WINDOW.1: 63% WINDOW(1)-5 + " WINDOW.1: 65% WINDOW(1)-5 + " WINDOW.1: 71% WINDOW(1)-5 +macro, Append to USD.24: 49% USD:24-16 +macros, built-in M4.1: 28% M4(1)-1 +macro, Define or redefine the USD.24: 49% USD:24-16 +Macros, Defining USD.22: 80% USD:22-15 +macro[s], ditroff-specific -me USD.23: 77% USD:23-12 +macro, Divert output to USD.24: 50% USD:24-17 +macro[s], example of USD.25: 50% USD:25-8 +macro[s], footer USD.24: 71% USD:24-22 + " USD.24: 83% USD:24-28 + " USD.24: 89% USD:24-29 + " USD.25: 60% USD:25-9 +macro[s], formatting USD.02: 1% USD:2-1 + " USD.02: 42% USD:2-5 + " USD.31: 72% USD:31-12 + " USD.32: 71% USD:32-10 +macro[s], keyboard USD.17: 3% USD:17-2 + " USD.17: 54% USD:17-24 + " USD.17: 54% USD:17-24 + " USD.17: 54% USD:17-24 + " USD.17: 69% USD:17-32 + " USD.17: 79% USD:17-37 + " USD.17: 81% USD:17-39 + " USD.17: 81% USD:17-39 + " USD.17: 81% USD:17-39 + " USD.17: 95% USD:17-46 + " USD.17: 94% USD:17-45 +macro[s], list of ms MS.7: 17% MS(7)-1 +macros, me BIB.N: 81% BIB(1)-2 +macros, MS BIB.N: 78% BIB(1)-2 +macro[s], ms - text formatting MS.7: 0% MS(7)-1 +macro[s], paragraph USD.15: 33% USD:15-10 + " USD.15: 33% USD:15-10 + " USD.23: 8% USD:23-2 + " USD.23: 11% USD:23-2 + " USD.24: 87% USD:24-29 + " USD.25: 49% USD:25-8 + " USD.25: 64% USD:25-10 + " USD.29: 63% USD:29-7 +macros, troff USD.30: 4% USD:30-1 + " USD.31: 56% USD:31-10 + " USD.31: 82% USD:31-13 +Macro and string name[s] USD.24: 42% USD:24-14 +macro argument[s] SMM.19: 96% SMM:19-26 +Macro call[s] M4.1: 7% M4(1)-1 + " USD.15: 58% USD:15-16 + " USD.25: 48% USD:25-8 + " USD.25: 54% USD:25-9 + " USD.25: 70% USD:25-10 + " USD.30: 70% USD:30-8 +macro character[s] USD.15: 83% USD:15-23 + " USD.15: 88% USD:15-25 +macro definition[s] BIB.N: 80% BIB(1)-2 + " BIB.N: 83% BIB(1)-2 + " BIB.N: 85% BIB(1)-2 + " DEROFF.1: 22% DEROFF(1)-1 + " SMM.16: 57% SMM:16-8 + " SMM.19: 95% SMM:19-26 + " SMM.19: 96% SMM:19-26 + " USD.17: 79% USD:17-37 + " USD.17: 79% USD:17-37 + " USD.17: 88% USD:17-43 + " USD.24: 82% USD:24-28 + " USD.25: 50% USD:25-8 + " USD.25: 65% USD:25-10 + " USD.25: 71% USD:25-11 + " USD.29: 30% USD:29-3 +macro expansion[s] USD.16: 58% USD:16-11 + " SMM.12A: 93% SMM:12-22 +macro facility[s] USD.04: 33% USD:4-15 + " USD.25: 47% USD:25-7 + " USD.26: 24% USD:26-2 + " USD.26: 90% USD:26-7 + " USD.15: 55% USD:15-16 +macro invocation[s] USD.24: 43% USD:24-14 +macro name[s] M4.1: 19% M4(1)-1 + " USD.22: 82% USD:22-15 +macro package[s] CHECKNR.1: 30% CHECKNR(1)-1 + " EQN.1: 13% EQN(1)-1 + " REFER.1: 21% REFER(1)-1 + " USD.01: 1% USD:1-1 + " USD.02: 42% USD:2-5 + " USD.02: 43% USD:2-5 + " USD.20: 84% USD:20-6 + " USD.20: 85% USD:20-6 + " USD.25: 4% USD:25-1 + " USD.25: 52% USD:25-8 + " USD.30: 69% USD:30-8 + " USD.30: 70% USD:30-8 + " USD.30: 70% USD:30-8 + " USD.31: 59% USD:31-10 +macro packages for troff INTRO.7: 35% INTRO(7)-1 +macro preprocessor CC.1: 37% CC(1)-2 +macro processor[s] FTP.1C: 26% FTP(1C)-2 + " FTP.1C: 28% FTP(1C)-3 + " M4.1: 1% M4(1)-1 + " M4.1: 2% M4(1)-1 + " USD.03: 65% USD:3-16 + " USD.23: 9% USD:23-2 +macron USD.21: 82% USD:21-3 +macros for m's HIER.7: 54% HIER(7)-4 +macros for man HIER.7: 54% HIER(7)-4 +macros for preparing document[s] USD.20: 1% USD:20-1 +macros for troff HIER.7: 54% HIER(7)-4 +Macros with argument[s] USD.25: 69% USD:25-10 +MACS configuration L-DEVICES.5: 80% L-DEVICES(5)-2 + " L-DEVICES.5: 87% L-DEVICES(5)-2 + " SMM.09: 60% SMM:9-13 + " SMM.09: 60% SMM:9-13 +madd - multiple precision integer arithmetic MP.3X: 1% MP(3X)-1 +madvise(addr, len, behav) PS1.06: 19% PS1:6-11 +magic cookie FSEEK.3S: 73% FSEEK(3S)-1 + " TERMCAP.5: 65% TERMCAP(5)-10 + " TERMCAP.5: 95% TERMCAP(5)-13 +magic number[s] AR.5: 21% AR(5)-1 + " A_OUT.5: 6% A.OUT(5)-1 + " A_OUT.5: 14% A.OUT(5)-1 + " A_OUT.5: 27% A.OUT(5)-1 + " A_OUT.5: 31% A.OUT(5)-1 + " LD.1: 54% LD(1)-1 + " LD.1: 56% LD(1)-2 + " PS2.03: 79% PS2:3-13 +magic number, executable file PS1.10: 42% PS1:10-9 +magic number[s] SMM.01: 35% SMM:1-23 + " SMM.01: 97% SMM:1-64 + " ADB.1: 89% ADB(1)-5 + " EXECL.3: 87% USD:4-37 + " INTRO.2: 13% INTRO(2)-1 +magic option[s] USD.16: 69% USD:16-13 +magnetic tape[s] DUMP.8: 3% DUMP(8)-1 + " PS1.06: 51% PS1:6-24 + " PS1.06: 93% PS1:6-39 + " PS1.06: 94% PS1:6-39 + " PS2.01: 19% PS2:1-3 + " PS2.04: 50% PS2:4-5 + " PS2.04: 50% PS2:4-5 + " PS2.04: 51% PS2:4-5 + " PS2.05: 3% PS2:5-1 +Magnetic tape I/O PS1.03: 65% PS1:3-8 +Maintaining Computer Programs PS1.12: 0% + " PS1.12: 0% + " PS1.12: 12% PS1:12-2 + " PS1.12: 24% PS1:12-2 + " PS1.12: 36% PS1:12-4 + " PS1.12: 53% PS1:12-4 + " PS1.12: 64% PS1:12-6 + " PS1.12: 73% PS1:12-6 + " PS1.12: 80% PS1:12-8 + " PS1.12: 90% PS1:12-8 +Maintaining Different Versions (Branches) PS1.14: 65% PS1:14-9 +magnetic tape[s] RRESTORE.8C: 30% RRESTORE(8C)-1 +magnetic tape manipulating MT.1: 4% MT(1)-1 +magtape, MASSBUS HT.4: 4% HT(4)-1 +magtape drive[s] MTIO.4: 2% MTIO(4)-1 +MAIL COMP.N: 9% COMP(1)-1 + " SH.1: 31% SH(1)-2 + " USD.03: 38% USD:3-9 + " SMM.12A: 37% SMM:12-9 +mail, Disposing of MAIL.1: 8% MAIL(1)-1 +mail, electronic SMM.11: 24% SMM:11-4 + " USD.08: 0% USD:8-2 + " USD.08: 0% USD:8-2 + " USD.08: 0% USD:8-2 + " USD.08: 0% USD:8-2 + " USD.08: 0% USD:8-2 + " USD.08: 1% USD:8-2 + " USD.09: 7% USD:9-2 +mail, glossary of terms peculiar to USD.07: 89% USD:7-22 +mail, inc - incorporate new INC.N: 0% INC(1)-1 + " USD.08: 23% USD:8-26 +mail, incoming COMSAT.8C: 12% COMSAT(8C)-1 + " INC.N: 31% INC(1)-1 + " RMAIL.1: 28% RMAIL(1)-1 + " SMM.16: 45% SMM:16-6 + " USD.04: 24% USD:4-11 + " USD.07: 0% USD:7-2 + " USD.08: 3% USD:8-2 + " USD.08: 24% USD:8-26 + " USD.17: 78% USD:17-37 +mail, mhmail - send or read MHMAIL.N: 1% MHMAIL(1)-1 +mail, Network MAIL.1: 24% MAIL(1)-2 + " SEND.N: 23% SEND(1)-1 + " USD.08: 53% USD:8-64 +mail, outgoing MAIL.1: 95% MAIL(1)-6 + " MAIL.1: 95% MAIL(1)-6 + " USD.07: 80% USD:7-19 + " USD.08: 83% USD:8-101 +mail, record all outgoing MAIL.1: 95% MAIL(1)-6 +mail, replying to MAIL.1: 13% MAIL(1)-1 +mail, Sending MAIL.1: 3% MAIL(1)-1 + " USD.01: 0% USD:1-1 +mail, startup file for HIER.7: 78% HIER(7)-5 +mail, xsend, xget, enroll - secret XSEND.1: 4% unknown +mail - send and receive mail MAIL.1: 0% MAIL(1)-1 +Mail -f USD.07: 21% USD:7-5 + " USD.07: 28% USD:7-7 + " USD.07: 45% USD:7-11 + " USD.09: 48% USD:9-5 +mail addressing MAILADDR.7: 1% MAILADDR(7)-1 +mail aliases file NEWALIASES.1: 50% NEWALIASES(1)-1 +Mail aliasing USD.07: 19% USD:7-5 +mail arrival notification BIFF.1: 26% BIFF(1)-1 +mail command[s] BINMAIL.1: 46% BINMAIL(1)-1 + " MAIL.1: 59% MAIL(1)-4 + " SMM.10: 95% SMM:10-23 + " SMM.17: 86% SMM:17-3 + " USD.04: 4% USD:4-3 + " USD.04: 18% USD:4-9 + " USD.04: 18% USD:4-9 + " USD.04: 19% USD:4-9 + " USD.04: 20% USD:4-9 + " USD.04: 37% USD:4-17 + " USD.07: 3% USD:7-2 + " USD.07: 7% USD:7-3 + " USD.07: 12% USD:7-4 + " USD.07: 13% USD:7-4 + " USD.07: 17% USD:7-5 + " USD.07: 21% USD:7-5 + " USD.07: 52% USD:7-13 + " USD.07: 66% USD:7-16 + " USD.07: 68% USD:7-16 + " USD.09: 23% USD:9-3 + " XSEND.1: 60% XSEND(1)-1 +mail command[s], list of USD.07: 50% USD:7-12 +mail customizing option[s], list of USD.07: 72% USD:7-17 +mail delivery SMM.16: 20% SMM:16-3 + " USD.08: 61% USD:8-75 +mail drop[s] INC.N: 42% INC(1)-1 + " MH-MAIL.N: 95% MH-MAIL(5)-3 + " MSGCHK.N: 25% MSGCHK(1)-1 + " MSGCHK.N: 71% MSGCHK(1)-1 + " USD.08: 3% USD:8-2 + " USD.08: 24% USD:8-26 + " USD.08: 36% USD:8-41 +mail drop box MH-MAIL.N: 7% MH-MAIL(5)-1 + " MH-MAIL.N: 11% MH-MAIL(5)-1 + " USD.08: 67% USD:8-82 + " USD.08: 67% USD:8-82 +mail drop format REFILE.N: 36% REFILE(1)-1 + " REFILE.N: 38% REFILE(1)-1 + " USD.08: 46% USD:8-55 + " USD.08: 46% USD:8-55 +mail file BINMAIL.1: 47% BINMAIL(1)-1 + " MAIL.1: 40% MAIL(1)-3 + " SH.1: 31% SH(1)-2 + " USD.07: 57% USD:7-14 +mail forwarding ALIASES.5: 47% ALIASES(5)-1 +mail group SMM.11: 22% SMM:11-3 + " SMM.11: 63% SMM:11-9 + " SMM.11: 64% SMM:11-9 + " SMM.11: 65% SMM:11-9 + " SMM.11: 65% SMM:11-9 +mail message[s] BINMAIL.1: 18% BINMAIL(1)-1 + " FMT.1: 51% FMT(1)-1 + " MHOOK.N: 4% MHOOK(1)-1 + " RCS.N: 39% RCS(1)-1 + " USD.08: 31% USD:8-35 + " SMM.07A: 58% SMM:07-25 +mail message[s], format of USD.07: 85% USD:7-20 +mail options[s], commands[s], escape[s], list of USD.07: 91% USD:7-23 +mail program[s] MAIL.1: 9% MAIL(1)-1 + " SMM.10: 94% SMM:10-23 + " SMM.10: 94% SMM:10-23 + " USD.07: 1% USD:7-2 + " USD.07: 8% USD:7-3 + " USD.09: 46% USD:9-5 + " USD.11: 48% USD:11-8 + " USD.11: 48% USD:11-8 + " USD.11: 84% USD:11-12 + " BINMAIL.1: 11% BINMAIL(1)-1 + " BINMAIL.1: 36% BINMAIL(1)-1 + " BINMAIL.1: 86% BINMAIL(1)-2 + " ENVIRON.7: 90% ENVIRON(7)-1 + " MAIL.1: 1% MAIL(1)-1 + " MAIL.1: 24% MAIL(1)-2 + " MAIL.1: 99% MAIL(1)-7 + " SMM.10: 95% SMM:10-23 + " SMM.10: 96% SMM:10-24 + " SMM.10: 96% SMM:10-24 + " USD.07: 0% USD:7-2 + " USD.07: 0% USD:7-2 + " USD.07: 2% USD:7-2 + " USD.07: 4% USD:7-2 + " USD.07: 5% USD:7-2 + " USD.07: 5% USD:7-2 + " USD.07: 6% USD:7-2 + " USD.07: 6% USD:7-2 + " USD.07: 7% USD:7-2 + " USD.07: 8% USD:7-3 + " USD.07: 9% USD:7-3 + " USD.07: 9% USD:7-3 + " USD.07: 10% USD:7-3 + " USD.07: 10% USD:7-3 + " USD.07: 11% USD:7-3 + " USD.07: 11% USD:7-3 + " USD.07: 11% USD:7-3 + " USD.07: 13% USD:7-4 + " USD.07: 13% USD:7-4 + " USD.07: 13% USD:7-4 + " USD.07: 14% USD:7-4 + " USD.07: 15% USD:7-4 + " USD.07: 15% USD:7-4 + " USD.07: 15% USD:7-4 + " USD.07: 16% USD:7-5 + " USD.07: 16% USD:7-5 + " USD.07: 18% USD:7-5 + " USD.07: 18% USD:7-5 + " USD.07: 18% USD:7-5 + " USD.07: 20% USD:7-5 + " USD.07: 20% USD:7-5 + " USD.07: 21% USD:7-5 + " USD.07: 21% USD:7-5 + " USD.07: 22% USD:7-6 + " USD.07: 23% USD:7-6 + " USD.07: 23% USD:7-6 + " USD.07: 23% USD:7-6 + " USD.07: 24% USD:7-6 + " USD.07: 24% USD:7-6 + " USD.07: 24% USD:7-6 + " USD.07: 25% USD:7-6 + " USD.07: 25% USD:7-6 + " USD.07: 25% USD:7-6 + " USD.07: 25% USD:7-6 + " USD.07: 27% USD:7-7 + " USD.07: 27% USD:7-7 + " USD.07: 28% USD:7-7 + " USD.07: 28% USD:7-8 + " USD.07: 29% USD:7-8 + " USD.07: 30% USD:7-8 + " USD.07: 30% USD:7-8 + " USD.07: 31% USD:7-8 + " USD.07: 31% USD:7-8 + " USD.07: 32% USD:7-9 + " USD.07: 38% USD:7-10 + " USD.07: 39% USD:7-10 + " USD.07: 46% USD:7-11 + " USD.07: 53% USD:7-13 + " USD.07: 54% USD:7-13 + " USD.07: 56% USD:7-13 + " USD.07: 58% USD:7-14 + " USD.07: 59% USD:7-14 + " USD.07: 62% USD:7-15 + " USD.07: 67% USD:7-16 + " USD.07: 68% USD:7-16 + " USD.07: 68% USD:7-16 + " USD.07: 76% USD:7-18 + " USD.07: 79% USD:7-18 + " USD.07: 79% USD:7-19 + " USD.07: 80% USD:7-19 + " USD.07: 82% USD:7-19 + " USD.07: 82% USD:7-20 + " USD.07: 84% USD:7-20 + " USD.07: 89% USD:7-22 + " USD.07: 91% USD:7-22 + " USD.07: 98% USD:7-25 + " USD.08: 69% USD:8-85 + " USD.09: 45% USD:9-5 + " USD.09: 47% USD:9-5 + " USD.09: 48% USD:9-5 + " USD.09: 49% USD:9-6 + " SMM.07A: 55% SMM:07-24 + " SMM.07A: 70% SMM:07-30 + " SMM.07A: 70% SMM:07-30 +mail queue SENDMAIL.8: 90% SENDMAIL(8)-3 + " SMM.07A: 8% SMM:07-6 + " SMM.07A: 11% SMM:07-7 + " SMM.07A: 13% SMM:07-8 + " SMM.07A: 13% SMM:07-8 + " SMM.07A: 18% SMM:07-10 + " SMM.07A: 67% SMM:07-28 + " SMM.07A: 88% SMM:07-38 + " SMM.07A: 88% SMM:07-38 +mail reading USD.07: 28% USD:7-7 + " SMM.12A: 98% SMM:12-23 +Mail Reference Manual USD.07: 0% USD:7-2 +mail shell variable CSH.1: 81% CSH(1)-17 +mail signature MH-PROFILE.N: 36% MH-PROFILE(5)-3 + " MH-PROFILE.N: 48% MH-PROFILE(5)-3 + " USD.08: 71% USD:8-87 +mail system MAILADDR.7: 27% MAILADDR(7)-1 + " MAILADDR.7: 34% MAILADDR(7)-1 + " MAILADDR.7: 71% MAILADDR(7)-2 + " SMM.16: 3% SMM:16-1 + " SMM.16: 58% SMM:16-8 + " SMM.16: 83% SMM:16-11 + " SYSLOG.3: 74% SYSLOG(3)-2 + " USD.07: 1% USD:7-2 + " USD.09: 47% USD:9-5 + " USD.09: 47% USD:9-5 + " SMM.07A: 1% SMM:07-1 + " SMM.07A: 61% SMM:07-26 +mail system, Setting up the SMM.01: 55% SMM:1-35 +Mail to Files and Program[s] SMM.16: 42% SMM:16-6 +mail traffic SMM.02: 43% SMM:2-13 + " SMM.07A: 10% SMM:07-7 +MAIL variable BIFF.1: 81% +mail-check-frequency (variable) USD.17: 78% USD:17-37 +mailaddr - mail addressing description MAILADDR.7: 0% MAILADDR(7)-1 +Mailbox CSH.1: 81% CSH(1)-17 +mailbox (variable) USD.17: 78% USD:17-37 +mailbox, system MAIL.1: 39% MAIL(1)-3 + " MAIL.1: 41% MAIL(1)-3 + " MAIL.1: 41% MAIL(1)-3 + " MAIL.1: 44% MAIL(1)-3 + " MAIL.1: 84% MAIL(1)-5 + " USD.07: 2% USD:7-2 + " USD.07: 2% USD:7-2 + " USD.07: 2% USD:7-2 + " USD.07: 2% USD:7-2 + " USD.07: 14% USD:7-4 + " USD.07: 15% USD:7-4 + " USD.07: 20% USD:7-5 + " USD.07: 21% USD:7-5 + " USD.07: 22% USD:7-6 + " USD.07: 22% USD:7-6 + " USD.07: 23% USD:7-6 + " USD.07: 23% USD:7-6 + " USD.07: 26% USD:7-6 + " USD.07: 26% USD:7-6 + " USD.07: 27% USD:7-7 + " USD.07: 27% USD:7-7 + " USD.07: 28% USD:7-7 + " USD.07: 56% USD:7-14 + " USD.07: 60% USD:7-14 + " USD.07: 64% USD:7-15 + " USD.07: 64% USD:7-15 + " USD.07: 64% USD:7-15 + " USD.07: 65% USD:7-15 + " USD.07: 65% USD:7-15 + " USD.07: 74% USD:7-17 + " USD.07: 77% USD:7-18 + " USD.07: 78% USD:7-18 +mailbox file COMSAT.8C: 45% COMSAT(8C)-1 + " FROM.1: 36% FROM(1)-1 + " MAIL.1: 52% MAIL(1)-3 +maildelivery file MHOOK.N: 6% MHOOK(1)-1 + " MHOOK.N: 8% MHOOK(1)-1 + " MHOOK.N: 53% MHOOK(1)-3 + " MHOOK.N: 55% MHOOK(1)-3 + " MHOOK.N: 60% MHOOK(1)-3 + " MHOOK.N: 92% MHOOK(1)-4 + " USD.08: 31% USD:8-35 + " USD.08: 31% USD:8-35 + " USD.08: 33% USD:8-37 + " USD.08: 33% USD:8-37 + " USD.08: 33% USD:8-37 + " USD.08: 34% USD:8-38 +MailDrop INC.N: 64% INC(1)-2 + " MH-PROFILE.N: 34% MH-PROFILE(5)-3 + " MH-PROFILE.N: 48% MH-PROFILE(5)-3 + " USD.08: 24% USD:8-27 + " USD.08: 71% USD:8-87 + " USD.08: 72% USD:8-88 +MAILDROP environment variable MH-PROFILE.N: 47% MH-PROFILE(5)-3 +Mailer[s] SMM.16: 33% SMM:16-5 + " USD.11: 48% USD:11-8 + " USD.11: 84% USD:11-12 + " SMM.07A: 72% SMM:07-32 +mailer, outgoing SMM.07A: 61% SMM:07-26 + " SMM.07A: 69% SMM:07-30 +Mailer declaration[s] SMM.16: 60% SMM:16-8 + " SMM.16: 60% SMM:16-8 +mailer definition[s] SMM.16: 37% SMM:16-5 + " SMM.16: 57% SMM:16-8 + " SMM.07A: 36% SMM:07-17 + " SMM.07A: 50% SMM:07-23 + " SMM.07A: 50% SMM:07-23 + " SMM.07A: 51% SMM:07-23 + " SMM.07A: 72% SMM:07-32 + " SMM.07A: 74% SMM:07-32 +mailer description[s] SMM.07A: 64% SMM:07-27 + " SMM.07A: 74% SMM:07-32 + " SMM.07A: 61% SMM:07-26 +mailer descriptor SMM.07A: 23% SMM:07-12 + " SMM.07A: 53% SMM:07-24 + " SMM.07A: 53% SMM:07-24 +mailer flags SMM.07A: 51% SMM:07-23 + " SMM.07A: 62% SMM:07-26 +mailing a binary file UUENCODE.1C: 13% UUENCODE(1C)-1 +mailing addresses SMM.10: 35% SMM:10-10 + " SMM.10: 35% SMM:10-10 + " SMM.11: 49% SMM:11-7 +mailing list[s] SENDMAIL.8: 23% SENDMAIL(8)-1 + " SMM.11: 22% SMM:11-3 + " SMM.11: 63% SMM:11-9 + " SMM.11: 64% SMM:11-9 + " SMM.11: 65% SMM:11-9 + " SMM.16: 17% SMM:16-2 + " SMM.16: 30% SMM:16-4 + " SMM.16: 49% SMM:16-7 + " USD.09: 6% USD:9-1 + " USD.09: 7% USD:9-2 + " USD.09: 8% USD:9-2 + " USD.09: 8% USD:9-2 + " SMM.07A: 21% SMM:07-11 + " SMM.07A: 23% SMM:07-12 +mailq command SMM.07A: 16% SMM:07-9 + " SMM.07A: 13% SMM:07-8 +main(argc, argv, envp) EXECL.3: 49% EXECL(3)-1 + " EXECVE.2: 55% EXECVE(2)-2 +maintaining a group of related file[s] USD.04: 53% USD:4-25 +Maintaining Computer Programs MAKE.1: 92% MAKE(1)-2 +Maintaining folder[s] USD.07: 24% USD:7-6 +maintenance, software SMM.21: 4% SMM:21-1 + " SMM.21: 61% SMM:21-5 + " SMM.21: 66% SMM:21-5 + " SMM.21: 80% SMM:21-6 + " PATCH.N: 11% PATCH(1)-1 + " RDIST.1: 2% RDIST(1)-1 +maintenance, symbol table SMM.19: 6% SMM:19-3 + " SMM.19: 16% SMM:19-5 + " SMM.19: 21% SMM:19-7 +maintenance, system SMM.02: 1% SMM:2-2 + " INTRO.1: 32% INTRO(1)-1 +maintenance utilities, data and HIER.7: 10% HIER(7)-1 +major device CONFIG.8: 87% CONFIG(8)-1 +major device number PS1.06: 61% PS1:6-28 +Make PS1.12: 2% PS1:12-1 + " PS1.12: 4% PS1:12-1 + " PS1.13: 18% PS1:13-4 + " PS1.13: 19% PS1:13-4 + " PS1.14: 74% PS1:14-10 +Make - A Program for Maintaining Computer Program[s] PS1.12: 0% +major mode[s] USD.17: 3% USD:17-2 + " USD.17: 36% USD:17-16 + " USD.17: 51% USD:17-22 +Make ERROR.1: 27% ERROR(1)-1 + " TERMCAP.5: 87% TERMCAP(5)-12 + " USD.17: 62% USD:17-28 + " USD.17: 98% USD:17-48 + " SMM.12A: 38% SMM:12-9 +make - maintain program groups MAKE.1: 0% MAKE(1)-1 +Make command USD.04: 85% USD:4-40 +make - suggestions and warning[s] PS1.12: 83% PS1:12-8 +make command usage PS1.12: 53% PS1:12-5 +make default rule[s] PS1.12: 97% PS1:12-9 +Makefile PS1.12: 60% PS1:12-5 + " PS1.12: 36% PS1:12-4 + " PS1.14: 74% PS1:14-11 +make depend SMM.02: 13% SMM:2-5 +make directory USD.04: 45% USD:4-20 +make-backup-files (variable) USD.17: 78% USD:17-37 +make-buffer-unmodified USD.17: 79% USD:17-37 +make-macro-interactive USD.17: 79% USD:17-37 +makedev - make system special files MAKEDEV.8: 3% MAKEDEV(8)-1 +Makefile[s] CONFIG.8: 51% CONFIG(8)-1 + " MAKE.1: 4% MAKE(1)-1 + " MAKE.1: 9% MAKE(1)-1 + " MAKE.1: 90% MAKE(1)-2 + " SMM.02: 12% SMM:2-5 + " SMM.09: 83% SMM:9-17 + " SMM.10: 1% SMM:10-1 + " SMM.10: 1% SMM:10-1 + " SMM.10: 5% SMM:10-2 + " SMM.10: 23% SMM:10-7 + " SMM.10: 34% SMM:10-10 + " SMM.10: 80% SMM:10-20 + " SMM.10: 81% SMM:10-20 + " SMM.10: 81% SMM:10-20 + " SMM.10: 81% SMM:10-20 + " SMM.10: 81% SMM:10-20 + " SMM.10: 81% SMM:10-20 + " SMM.10: 82% SMM:10-20 + " SMM.10: 88% SMM:10-21 + " SMM.10: 90% SMM:10-22 + " USD.04: 85% USD:4-40 + " SCCS.1: 90% SCCS(1)-2 + " SMM.12A: 6% SMM:12-2 +makekey - generate encryption key MAKEKEY.8: 3% MAKEKEY(8)-1 +Making a Copy of a File USD.13: 67% USD:13-12 +Making an Index USD.29: 52% USD:29-5 +Making correction[s] USD.14: 1% USD:14-2 + " USD.14: 1% USD:14-2 + " USD.14: 22% USD:14-6 + " USD.14: 31% USD:14-8 +Making local modification[s] SMM.01: 81% SMM:1-50 +malloc END.3: 68% + " SMM.12A: 66% SMM:12-15 +malloc, free, falloc - memory allocator MALLOC.3F: 2% MALLOC(3F)-1 +malloc, free, realloc, calloc, alloca - memory allocator MALLOC.3: 1% MALLOC(3)-1 +Man[s] MAN.1: 7% MAN(1)-1 + " MAN.1: 69% MAN(1)-1 + " SMM.12A: 39% SMM:12-9 +man, macros for HIER.7: 54% HIER(7)-4 +man - find manual information by keywords MAN.1: 1% MAN(1)-1 +man - macros to typeset manual MAN.7: 1% MAN(7)-1 +man command USD.01: 24% USD:1-4 + " USD.03: 52% USD:3-13 + " USD.03: 55% USD:3-14 + " USD.04: 86% USD:4-40 + " USD.01: 24% USD:1-4 + " USD.04: 86% USD:4-40 +management, memory SMM.15: 8% SMM:15-4 + " SMM.15: 85% SMM:15-24 +manager[s], system GETUSERSHELL.3: 35% GETUSERSHELL(3) + " SMM.11: 85% SMM:11-13 + " SMM.11: 86% SMM:11-14 +manipulating, magnetic tape MT.1: 4% MT(1)-1 +manipulating sentences and paragraph[s] USD.17: 25% USD:17-11 +MANPATH, environment variable SMM.12A: 39% SMM:12-9 +mantissa FREXP.3: 12% +manual page[s] PS1.07a: 60% PS1:7-14 + " PS1.07a: 77% PS1:7-19 +manual section[s] PS1.04: 4% PS1:4-2 + " PS1.04: 49% PS1:4-26 +MAP[s] PS1.10: 41% PS1:10-9 +manual, man - macros to typeset MAN.7: 1% MAN(7)-1 +manual, print out the MAN.1: 2% MAN(1)-1 +Manual, Programmer's SMM.01: 61% SMM:1-38 +manuals, source for MAN.1: 88% unknown +manual, UNIX USD.04: 85% USD:4-40 +manual page[s] CATMAN.8: 12% CATMAN(8)-1 + " CATMAN.8: 37% CATMAN(8)-1 + " CATMAN.8: 56% CATMAN(8)-1 + " INTRO.1: 41% INTRO(1)-1 + " MAN.1: 29% MAN(1)-1 + " MAN.1: 69% MAN(1)-1 + " MAN.1: 73% MAN(1)-1 + " MAN.1: 78% MAN(1)-1 + " SMM.01: 27% SMM:1-19 + " SMM.10: 39% SMM:10-11 + " USD.04: 68% USD:4-34 + " USD.04: 86% USD:4-40 + " USD.17: 80% USD:17-38 + " SMM.12A: 39% SMM:12-9 + " SMM.12A: 39% SMM:12-9 + " HIER.7: 58% HIER(7)-4 +manual section[s] APROPOS.1: 19% APROPOS(1)-1 + " CATMAN.8: 23% CATMAN(8)-1 + " MAN.1: 18% MAN(1)-1 + " MAN.1: 23% MAN(1)-1 + " USD.01: 24% USD:1-4 + " USD.01: 24% USD:1-4 + " USD.03: 53% USD:3-13 + " USD.03: 53% USD:3-13 + " WHATIS.1: 32% WHATIS(1)-1 + " WHEREIS.1: 40% WHEREIS(1)-1 +map, block SMM.05: 11% SMM:5-4 + " SMM.05: 14% SMM:5-4 + " SMM.14: 28% SMM:14-5 + " SMM.14: 44% SMM:14-7 + " SMM.14: 45% SMM:14-7 +map, data PS1.10: 71% PS1:10-15 +map file PS2.09: 37% PS2:9-66 + " PS2.09: 37% PS2:9-66 + " PS2.09: 37% PS2:9-66 + " PS2.09: 37% PS2:9-66 + " PS2.09: 45% PS2:9-81 +map, load LD.1: 52% LD(1)-1 +map, private page CRASH.8V: 79% CRASH(8V)-2 + " SMM.15: 10% SMM:15-4 + " SMM.15: 85% SMM:15-24 +map command[s] USD.15: 47% USD:15-13 + " USD.15: 56% USD:15-16 + " USD.15: 56% USD:15-16 + " USD.15: 58% USD:15-16 + " USD.16: 21% USD:16-4 + " USD.16: 41% USD:16-8 +map file[s] SMM.14: 6% SMM:14-2 +map registers SMM.02: 54% SMM:2-16 + " SMM.02: 67% SMM:2-20 + " SMM.02: 73% SMM:2-22 + " SMM.13: 98% SMM:13-33 + " SMM.15: 40% SMM:15-12 + " SMM.15: 42% SMM:15-13 +map3270 - database for mapping ascii keystrokes into IBM 3270 keys MAP3270.5: 0% MAP3270(5)-1 +MAP3270 environment variable MSET.1: 48% MSET(1)-1 +mapped page[s] PS1.06: 15% PS1:6-10 +mapped region with the file it map, synchronize a PS1.06: 18% PS1:6-11 +mapping, newline PS1.18: 33% PS1:18-8 + " PS1.18: 46% PS1:18-13 +mapping file[s] PS1.06: 51% PS1:6-24 +Mapping page[s] PS1.06: 14% PS1:6-10 +mapping[s], address ARP.4P: 15% ARP(4P)-1 + " SMM.01: 70% SMM:1-42 + " SMM.01: 70% SMM:1-42 + " SMM.01: 70% SMM:1-42 + " SMM.16: 0% SMM:16-1 +mapping, filename FTP.1C: 36% FTP(1C)-3 +mapping, kernel memory ADB.1: 6% ADB(1)-1 +mapping, Upper case TIP.1C: 78% TIP(1C)-3 +mapping host names to addresses HTABLE.8: 20% HTABLE(8)-1 +mapping network names to numbers HTABLE.8: 25% HTABLE(8)-1 +margin[s] USD.20: 20% USD:20-2 +margin, header MS.7: 80% MS(7)-3 +margin, numbers at the left-hand USD.21: 52% USD:21-2 +margin[s], right USD.20: 64% USD:20-5 +margin character USD.24: 80% USD:24-25 + " USD.24: 79% USD:24-25 +margin from one on each page, .n1 Number lines in USD.23: 48% USD:23-6 +Mark[s] USD.16: 40% USD:16-8 + " USD.17: 89% USD:17-43 + " USD.27: 50% USD:27-6 +marks, accent USD.20: 74% USD:20-6 + " USD.21: 75% USD:21-3 + " USD.29: 62% USD:29-6 +mark[s], cut MS.7: 24% MS(7)-1 + " USD.24: 85% USD:24-28 + " USD.23: 7% USD:23-2 +mark[s], Diacritical EQN.1: 62% EQN(1)-2 + " USD.21: 78% USD:21-3 + " USD.21: 85% USD:21-3 + " USD.23: 72% USD:23-9 + " USD.23: 72% USD:23-9 + " USD.26: 51% USD:26-4 + " USD.27: 44% USD:27-5 + " USD.27: 45% USD:27-5 +mark[s], quotation USD.21: 70% USD:21-2 +mark, Set the USD.17: 12% USD:17-6 +mark[s], slash SMM.16: 44% SMM:16-6 + " USD.14: 36% USD:14-9 + " USD.14: 76% USD:14-19 +mark[s], stack of USD.17: 13% USD:17-6 +mark[s], tape MTIO.4: 92% MTIO(4)-2 + " TCOPY.1: 34% TCOPY(1)-1 +mark - mark messages MARK.N: 0% MARK(1)-1 +mark command[s] MARK.N: 5% MARK(1)-1 + " MSH.N: 46% MSH(1)-2 + " MSH.N: 50% MSH(1)-2 + " MSH.N: 54% MSH(1)-2 + " USD.08: 4% USD:8-2 + " USD.08: 25% USD:8-28 + " USD.08: 37% USD:8-43 + " USD.08: 37% USD:8-43 + " USD.08: 37% USD:8-43 + " USD.08: 81% USD:8-100 + " USD.13: 87% USD:13-14 + " USD.16: 26% USD:16-5 + " ED.1: 56% ED(1)-4 +Mark horizontal place USD.24: 65% USD:24-21 +mark messages MARK.N: 0% MARK(1)-1 + " USD.08: 25% USD:8-28 +mark name[s] USD.13: 87% USD:13-14 + " USD.13: 88% USD:13-14 +Mark the current vertical place USD.24: 32% USD:24-11 +mark-threshold (variable) USD.17: 79% USD:17-37 +marked line[s] USD.13: 87% USD:13-14 + " USD.15: 41% USD:15-12 + " USD.16: 26% USD:16-5 +marker[s], end USD.32: 13% USD:32-3 + " USD.32: 71% USD:32-10 + " USD.32: 72% USD:32-11 +Marking and returning USD.15: 40% USD:15-12 +marks-should-float (variable) USD.17: 80% USD:17-38 +mask, file mode creation MKDIR.2: 20% MKDIR(2)-1 + " MKDIR.2: 22% MKDIR(2)-1 + " UMASK.2: 25% UMASK(2)-1 +mask, mode CREAT.2: 12% CREAT(2)-1 + " MKDIR.2: 11% MKDIR(2)-1 + " MKNOD.2: 13% MKNOD(2)-1 +mask, network INET.4F: 78% INET(4F)-1 + " SMM.01: 63% SMM:1-39 + " SMM.01: 64% SMM:1-39 + " SMM.13: 63% SMM:13-22 + " SMM.13: 65% SMM:13-23 + " SMM.13: 65% SMM:13-23 +mask[s], signal EXECVE.2: 51% EXECVE(2)-1 + " PS1.06: 27% PS1:6-14 + " PS1.06: 27% PS1:6-14 + " PS1.06: 28% PS1:6-14 + " PS1.06: 29% PS1:6-14 +mask of blocked signal[s] PS1.06: 29% PS1:6-14 +mask[s], signal SIGINTERRUPT.3: 60% SIGINTERRUPT(3) + " SIGSETMASK.2: 12% SIGSETMASK(2)-1 + " SIGSETMASK.2: 34% SIGSETMASK(2)-1 + " SIGVEC.2: 14% SIGVEC(2)-1 + " SIGVEC.2: 19% SIGVEC(2)-1 + " SIGVEC.2: 25% SIGVEC(2)-1 + " SIGVEC.2: 27% SIGVEC(2)-1 + " SIGVEC.2: 27% SIGVEC(2)-1 + " SIGVEC.2: 63% SIGVEC(2)-2 + " SMM.13: 54% SMM:13-19 + " SETJMP.3: 59% SETJMP(3)-1 +masked signals SIGBLOCK.2: 82% unknown + " SIGSETMASK.2: 80% unknown +Mass SMM.10: 21% SMM:10-6 + " USD.03: 95% USD:3-22 +Mass Storage Control Protocol (MSCP) UDA.4: 6% UDA(4)-1 +mass storage device[s] SMM.14: 40% SMM:14-7 + " SMM.14: 40% SMM:14-7 + " SMM.14: 41% SMM:14-7 +MASSBU[s] AUTOCONF.4: 68% AUTOCONF(4)-1 + " BAD144.8: 75% BAD144(8)-2 + " INTRO.4: 33% INTRO(4)-1 + " MTIO.4: 3% MTIO(4)-1 + " REBOOT.8: 50% REBOOT(8)-2 + " REBOOT.8: 58% REBOOT(8)-2 + " REBOOT.8: 60% REBOOT(8)-2 + " SMM.01: 4% SMM:1-3 + " SMM.01: 4% SMM:1-3 + " SMM.01: 4% SMM:1-3 + " SMM.01: 4% SMM:1-3 + " SMM.01: 4% SMM:1-4 + " SMM.01: 5% SMM:1-4 + " SMM.01: 5% SMM:1-4 + " SMM.01: 36% SMM:1-24 + " SMM.01: 36% SMM:1-24 + " SMM.13: 99% SMM:13-34 + " SMM.14: 60% SMM:14-9 +MASSBUS adapter[s] AUTOCONF.4: 46% AUTOCONF(4)-1 + " AUTOCONF.4: 48% AUTOCONF(4)-1 + " AUTOCONF.4: 51% AUTOCONF(4)-1 + " SMM.01: 2% SMM:1-2 + " SMM.01: 4% SMM:1-3 + " SMM.01: 5% SMM:1-4 + " SMM.01: 5% SMM:1-4 + " SMM.02: 32% SMM:2-9 +MASSBUS device[s] AUTOCONF.4: 16% AUTOCONF(4)-1 + " AUTOCONF.4: 75% AUTOCONF(4)-2 + " INTRO.4: 39% INTRO(4)-1 + " SMM.01: 4% SMM:1-4 + " SMM.02: 33% SMM:2-10 + " SMM.02: 54% SMM:2-16 +MASSBUS device drivers and related code, /sys/vaxmba VAX SMM.01: 39% SMM:1-26 +MASSBUS disk[s] AUTOCONF.4: 33% AUTOCONF(4)-1 + " REBOOT.8: 82% REBOOT(8)-2 + " HP.4: 0% HP(4)-1 +MASSBUS drive[s] FORMAT.8V: 19% FORMAT(8V)-1 + " SMM.02: 41% SMM:2-12 +MASSBUS magtape HT.4: 4% HT(4)-1 +Master Acknowledgement SMM.22: 33% SMM:22-4 +Master Active Message SMM.22: 46% SMM:22-5 + " SMM.22: 40% SMM:22-4 +Master Candidature Message SMM.22: 66% SMM:22-7 + " SMM.22: 47% SMM:22-5 +master copy[s] RDIST.1: 30% RDIST(1)-1 + " RDIST.1: 32% RDIST(1)-2 + " RDIST.1: 40% RDIST(1)-2 +master device PTY.4: 6% PTY(4)-1 + " PTY.4: 15% PTY(4)-1 + " PTY.4: 18% PTY(4)-1 +master host RDIST.1: 64% RDIST(1)-3 + " SMM.07A: 55% SMM:07-24 +Master Request Message SMM.22: 30% SMM:22-3 + " SMM.22: 36% SMM:22-4 + " SMM.22: 59% SMM:22-6 +master server[s] SMM.01: 68% SMM:1-41 + " SMM.06: 9% SMM:6-2 + " SMM.11: 14% SMM:11-2 + " SMM.11: 14% SMM:11-2 + " SMM.11: 14% SMM:11-2 + " TIMED.8: 57% TIMED(8)-1 + " TIMED.8: 62% TIMED(8)-1 +Master Site Message SMM.22: 83% SMM:22-9 +master time daemon[s] SMM.08: 51% SMM:8-2 + " SMM.08: 55% SMM:8-2 + " SMM.08: 56% SMM:8-2 + " SMM.08: 59% SMM:8-2 + " SMM.08: 66% SMM:8-2 + " SMM.08: 71% SMM:8-2 + " SMM.08: 75% SMM:8-2 + " SMM.08: 77% SMM:8-2 +master time server TIMEDC.8: 18% TIMEDC(8)-1 +match[s], address USD.18: 35% USD:18-4 + " USD.18: 47% USD:18-5 + " USD.18: 51% USD:18-5 +match[s], exact USD.14: 41% USD:14-10 + " USD.14: 42% USD:14-11 + " USD.30: 2% USD:30-1 +matches, expression USD.16: 73% USD:16-14 + " USD.18: 27% USD:18-3 + " USD.18: 27% USD:18-3 + " USD.18: 30% USD:18-3 + " USD.19: 68% USD:19-6 +matches, pattern SMM.16: 62% SMM:16-9 + " USD.01: 42% USD:1-7 + " USD.03: 28% USD:3-7 + " USD.18: 19% USD:18-2 + " USD.18: 81% USD:18-8 + " USD.32: 46% USD:32-7 +match, template SMM.19: 56% SMM:19-15 + " SMM.19: 67% SMM:19-19 + " SMM.19: 74% SMM:19-21 + " SMM.19: 82% SMM:19-23 +match-regular-expressions (variable) USD.17: 80% USD:17-38 +matching, parenthesis USD.17: 52% USD:17-23 +matching, pattern CSH.1: 37% CSH(1)-7 + " AWK.1: 3% AWK(1)-1 + " REGEX.3: 17% REGEX(3)-1 + " USD.12: 81% USD:12-9 +math - introduction to mathematical library functions MATH.3M: 0% MATH(3M)-1 +math library INTRO.3: 9% INTRO(3)-1 + " INTRO.3: 10% INTRO(3)-1 + " INTRO.3: 12% INTRO(3)-1 + " INTRO.3: 17% INTRO(3)-1 + " SMM.12A: 2% SMM:12-2 + " SMM.12A: 29% SMM:12-7 + " SMM.12A: 29% SMM:12-7 + " SMM.12A: 67% SMM:12-15 + " SMM.12A: 67% SMM:12-16 + " BC.1: 40% BC(1)-1 + " SMM.12A: 29% SMM:12-7 +mathematical conventions USD.26: 15% USD:26-2 + " USD.27: 36% USD:27-5 + " USD.27: 66% USD:27-7 +mathematical expression[s] USD.26: 27% USD:26-2 + " USD.27: 1% USD:27-1 + " USD.27: 4% USD:27-1 + " USD.27: 9% USD:27-2 +mathematical symbol[s] USD.27: 6% USD:27-1 + " USD.27: 16% USD:27-2 +mathematics, eqn, neqn, checkeq - typeset EQN.1: 1% EQN(1)-1 +mathematics, typesetting EQN.1: 4% EQN(1)-1 + " EQN.1: 95% EQN(1)-2 + " USD.26: 0% USD:26-1 + " USD.26: 0% USD:26-1 + " USD.26: 0% USD:26-1 + " USD.26: 10% USD:26-2 + " USD.26: 10% USD:26-2 + " USD.26: 26% USD:26-2 + " USD.26: 28% USD:26-2 + " USD.26: 42% USD:26-4 + " USD.26: 56% USD:26-4 + " USD.26: 69% USD:26-6 + " USD.26: 84% USD:26-6 + " USD.26: 92% USD:26-7 + " USD.26: 98% USD:26-8 + " USD.27: 0% USD:27-1 + " USD.27: 0% USD:27-1 + " USD.27: 0% USD:27-1 + " USD.27: 8% USD:27-2 + " USD.27: 18% USD:27-2 + " USD.27: 27% USD:27-4 + " USD.27: 36% USD:27-4 + " USD.27: 47% USD:27-6 + " USD.27: 57% USD:27-6 + " USD.27: 68% USD:27-8 + " USD.27: 79% USD:27-8 + " USD.27: 87% USD:27-10 +matrix, transpose a two dimensional PS1.02: 38% PS1:2-13 +Maxpages PS2.10: 24% PS2:10-24 + " PS2.10: 24% PS2:10-24 + " PS2.10: 87% PS2:10-78 +matrix[s] USD.26: 52% USD:26-4 + " USD.27: 62% USD:27-7 +MAXHOSTNAMELEN GETHOSTNAME.2: 91% GETHOSTNAME(2)- + " SMM.13: 7% SMM:13-4 +maximum number of active shared text segment[s] SMM.02: 86% SMM:2-30 +maximum number of processes SMM.02: 86% SMM:2-30 +MAXNAMLEN DIR.5: 36% DIR(5)-1 + " DIR.5: 64% DIR(5)-1 + " DIR.5: 76% DIR(5)-1 + " DIR.5: 83% DIR(5)-2 +MAXPATHLEN CHDIR.3F: 75% CHDIR(3F)-1 + " CHMOD.3F: 86% CHMOD(3F)-1 + " GETCWD.3F: 85% GETCWD(3F)-1 + " INTRO.2: 80% INTRO(2)-6 + " LINK.3F: 88% LINK(3F)-1 + " RENAME.3F: 87% RENAME(3F)-1 +MAXUPRC FORK.2: 86% FORK(2)-1 +MAXUSERS SMM.02: 86% SMM:2-30 + " SMM.02: 86% SMM:2-30 + " SMM.02: 86% SMM:2-30 + " SMM.02: 87% SMM:2-30 + " SMM.02: 87% SMM:2-30 + " SMM.02: 88% SMM:2-30 + " SMM.02: 88% SMM:2-31 + " SMM.02: 89% SMM:2-31 + " SMM.02: 89% SMM:2-31 +mbox, file USD.07: 13% USD:7-4 + " USD.07: 14% USD:7-4 + " USD.07: 21% USD:7-5 + " USD.07: 23% USD:7-6 + " USD.07: 60% USD:7-14 + " USD.07: 65% USD:7-16 + " MAIL.1: 17% MAIL(1)-1 + " MAIL.1: 39% MAIL(1)-3 + " MAIL.1: 50% MAIL(1)-3 + " USD.07: 23% USD:7-6 +mbuf[s] HDH.4: 84% HDH(4)-1 + " CRASH.8V: 78% CRASH(8V)-2 + " SMM.15: 8% SMM:15-4 +mbuf, allocate an SMM.15: 11% SMM:15-5 +mbuf chain[s] SMM.15: 12% SMM:15-5 + " SMM.15: 12% SMM:15-5 + " SMM.15: 12% SMM:15-5 + " SMM.15: 13% SMM:15-5 + " SMM.15: 13% SMM:15-5 + " SMM.15: 14% SMM:15-5 + " SMM.15: 22% SMM:15-7 + " SMM.15: 45% SMM:15-14 + " SMM.15: 49% SMM:15-15 + " SMM.15: 59% SMM:15-18 +mbuf cluster SMM.13: 36% SMM:13-13 + " SMM.13: 87% SMM:13-30 + " SMM.13: 87% SMM:13-30 +mbuf statistics NETSTAT.1: 31% NETSTAT(1)-1 + " SYSTAT.1: 29% SYSTAT(1)-2 +mbuf structure SMM.15: 85% SMM:15-24 +mbuf type[s] SMM.13: 39% SMM:13-14 + " SMM.12A: 41% SMM:12-9 +mbuf utilization SYSTAT.1: 6% SYSTAT(1)-1 +McKusick, Kirk SMM.11: 93% SMM:11-14 +McKusick, Marshall Kirk SMM.01: 0% SMM:1-1 + " SMM.05: 0% SMM:5-2 + " SMM.14: 0% SMM:14-2 +mclear(sem) PS1.06: 21% PS1:6-12 +mcmp - multiple precision integer arithmetic MP.3X: 3% MP(3X)-1 +mdiv - multiple precision integer arithmetic MP.3X: 2% MP(3X)-1 +ME PTRACE.2: 65% PTRACE(2)-2 + " SMM.10: 44% SMM:10-12 + " SMM.12A: 79% SMM:12-19 +me - macros for formatting papers ME.7: 0% ME(7)-1 +me macro[s] BIB.N: 81% BIB(1)-2 + " VGRIND.1: 97% VGRIND(1)-2 +mechanism, alias USD.04: 33% USD:4-15 + " USD.04: 34% USD:4-15 + " USD.07: 54% USD:7-13 +mechanism, buffering HK.4: 12% HK(4)-1 + " HP.4: 6% HP(4)-1 + " UDA.4: 15% UDA(4)-1 + " UP.4: 12% UP(4)-1 +mechanism, Diablo PLOT.1G: 43% PLOT(1G)-1 + " PLOT.1G: 46% PLOT(1G)-1 + " PLOT.1G: 48% PLOT(1G)-1 +mechanism, locking FLOCK.2: 35% FLOCK(2)-1 + " SAIL.6: 5% SAIL(6)-1 + " CREAT.2: 26% CREAT(2)-1 +mechanism, pipe USD.04: 10% USD:4-6 + " USD.04: 88% USD:4-41 + " USD.04: 90% USD:4-41 +mechanism[s], quoting USD.03: 17% USD:3-4 + " USD.03: 17% USD:3-4 + " USD.03: 66% USD:3-16 + " USD.03: 69% USD:3-17 + " USD.03: 69% USD:3-17 + " USD.03: 70% USD:3-17 + " USD.03: 71% USD:3-18 +mechanism, run-time recording CC.1: 28% CC(1)-1 + " F77.1: 22% F77(1)-1 +mechanism, signal SMM.12A: 1% SMM:12-2 +media, VAX console ARFF.8V: 7% ARFF(8V)-1 +mem, kmem - main memory MEM.4: 4% MEM(4)-1 +member[s], structure PS1.01: 49% PS1:1-16 + " PS1.01: 83% PS1:1-28 + " PS1.01: 90% PS1:1-30 + " PS2.06: 24% PS2:6-10 + " PS2.06: 26% PS2:6-10 + " PS2.06: 29% PS2:6-11 + " PS2.06: 31% PS2:6-11 + " PS2.06: 36% PS2:6-13 + " PS2.06: 37% PS2:6-13 + " PS2.06: 61% PS2:6-21 + " PS2.06: 67% PS2:6-23 + " PS2.06: 76% PS2:6-26 +memory, interleaved SMM.01: 20% SMM:1-14 +memory, kernel SMM.01: 31% SMM:1-21 +memory, mem, kmem - main MEM.4: 4% MEM(4)-1 +memory, primary PS2.04: 7% PS2:4-1 + " PS2.04: 7% PS2:4-1 + " PS2.04: 8% PS2:4-1 + " PS2.04: 11% PS2:4-2 + " PS2.04: 18% PS2:4-3 + " PS2.04: 23% PS2:4-3 + " PS2.04: 24% PS2:4-3 + " PS2.04: 24% PS2:4-3 + " PS2.04: 25% PS2:4-3 + " PS2.04: 25% PS2:4-3 + " PS2.04: 25% PS2:4-3 + " PS2.04: 26% PS2:4-3 + " PS2.04: 27% PS2:4-3 + " PS2.04: 28% PS2:4-3 + " PS2.04: 33% PS2:4-4 + " PS2.04: 62% PS2:4-6 + " PS2.04: 76% PS2:4-7 +memory, secondary PS2.04: 6% PS2:4-1 + " PS2.04: 8% PS2:4-2 + " PS2.04: 9% PS2:4-2 + " PS2.04: 9% PS2:4-2 + " PS2.04: 22% PS2:4-3 + " PS2.04: 23% PS2:4-3 + " PS2.04: 24% PS2:4-3 + " PS2.04: 24% PS2:4-3 +memory behavior PS1.06: 19% PS1:6-11 +memory image PS1.02: 10% PS1:2-6 + " PS1.06: 10% PS1:6-8 + " PS1.06: 23% PS1:6-13 + " PS2.01: 50% PS2:1-7 + " PS2.01: 52% PS2:1-8 + " PS2.01: 72% PS2:1-11 + " PS1.11a: 27% PS1:11-2 + " PS1.11a: 60% PS1:11-4 +memory management PS1.06: 0% + " PS1.06: 14% PS1:6-10 + " PS1.06: 95% PS1:6-41 +memory[s], physical GETRLIMIT.2: 34% GETRLIMIT(2)-1 + " MEM.4: 37% MEM(4)-1 + " SMM.02: 83% SMM:2-27 + " SMM.02: 90% SMM:2-31 + " SMM.02: 90% SMM:2-31 + " SMM.02: 91% SMM:2-31 + " SMM.02: 95% SMM:2-32 + " SMM.13: 43% SMM:13-15 + " SMM.13: 43% SMM:13-15 + " SMM.13: 43% SMM:13-15 + " SMM.13: 44% SMM:13-16 + " VLIMIT.3C: 47% VLIMIT(3C)-1 +memory, real PS.1: 67% PS(1)-2 + " PS.1: 67% PS(1)-2 + " SMM.01: 17% SMM:1-12 + " VMSTAT.1: 47% VMSTAT(1)-1 +memory, UNIBUS SMM.02: 67% SMM:2-20 + " SMM.13: 50% SMM:13-18 + " SMM.13: 89% SMM:13-30 + " SMM.13: 98% SMM:13-33 + " SMM.13: 98% SMM:13-33 + " SMM.13: 98% SMM:13-33 + " SMM.13: 98% SMM:13-33 +memory, user PS.4: 39% PS(4)-1 + " SMM.13: 45% SMM:13-16 + " SMM.13: 47% SMM:13-16 +memory, virtual EXECVE.2: 86% EXECVE(2)-2 + " IK.4: 27% IK(4)-1 + " MEM.4: 48% MEM(4)-1 + " PS.1: 24% PS(1)-1 + " PS.4: 10% PS(4)-1 + " SMM.01: 39% SMM:1-26 + " SMM.01: 79% SMM:1-48 + " SMM.01: 79% SMM:1-48 + " SMM.02: 89% SMM:2-31 + " SMM.02: 89% SMM:2-31 + " SMM.02: 94% SMM:2-32 + " VFORK.2: 4% VFORK(2)-1 + " VMSTAT.1: 7% VMSTAT(1)-1 + " VMSTAT.1: 12% VMSTAT(1)-1 +memory allocation[s] SMM.13: 23% SMM:13-9 + " SMM.13: 34% SMM:13-13 +memory allocator[s] CSH.1: 51% CSH(1)-10 + " FOPEN.3S: 92% FOPEN(3S)-1 + " MALLOC.3: 3% MALLOC(3)-1 + " MALLOC.3F: 2% MALLOC(3F)-1 + " SMM.01: 34% SMM:1-23 + " VALLOC.3C: 9% VALLOC(3C)-1 +memory controller[s] AUTOCONF.4: 11% AUTOCONF(4)-1 + " AUTOCONF.4: 59% AUTOCONF(4)-1 + " AUTOCONF.4: 62% AUTOCONF(4)-1 + " SMM.01: 37% SMM:1-25 + " SMM.13: 50% SMM:13-18 + " SMM.13: 51% SMM:13-18 +memory fault[s] USD.03: 74% USD:3-18 +memory image CORE.5: 12% CORE(5)-1 + " CORE.5: 27% CORE(5)-1 + " F77.1: 18% F77(1)-1 + " SMM.16: 38% SMM:16-5 + " SMM.07A: 88% SMM:07-38 +memory image file, core - format of CORE.5: 3% CORE(5)-1 +memory location REBOOT.8: 68% REBOOT(8)-2 + " SMM.19: 62% SMM:19-17 +memory management SMM.15: 8% SMM:15-4 + " SMM.15: 85% SMM:15-24 +memory pages GETRUSAGE.2: 48% GETRUSAGE(2)-1 + " SMM.15: 45% SMM:15-14 + " VTIMES.3C: 57% VTIMES(3C)-1 +memory size SMM.13: 45% SMM:13-16 + " SMM.12A: 93% SMM:12-22 +memory usage SA.8: 63% SA(8)-1 + " SYSTAT.1: 30% SYSTAT(1)-2 + " SYSTAT.1: 34% SYSTAT(1)-2 + " USD.04: 51% USD:4-24 + " VTIMES.3C: 62% VTIMES(3C)-1 +memory violation[s] CORE.5: 21% CORE(5)-1 +memory-poor environment[s] SMM.01: 80% SMM:1-48 + " SMM.07: 31% SMM:7-1 + " SMM.07A: 28% SMM:07-14 +Merge SORT.1: 62% SORT(1)-1 +merge - three-way file merge MERGE.N: 4% MERGE(1)-1 + " PS1.13: 59% PS1:13-12 +merge RCS revision, rcsmerge - PS1.13: 83% PS1:13-18 +merge RCS revision[s] RCSMERGE.N: 2% RCSMERGE(1)-1 +Mesa NS.3N: 77% NS(3N)-1 +Mesg MESG.1: 24% MESG(1)-1 + " MESG.1: 47% MESG(1)-1 + " SMM.12A: 40% SMM:12-9 +mesg - permit or deny messages MESG.1: 9% MESG(1)-1 +Message[s] MH-MAIL.N: 12% MH-MAIL(5)-1 + " MSGS.1: 29% MSGS(1)-1 + " MSGS.1: 34% MSGS(1)-1 + " SMM.10: 70% SMM:10-18 + " USD.07: 7% USD:7-2 + " USD.08: 1% USD:8-2 + " USD.08: 2% USD:8-2 + " USD.08: 3% USD:8-2 + " USD.08: 4% USD:8-4 + " USD.08: 5% USD:8-4 + " USD.08: 10% USD:8-9 + " USD.08: 33% USD:8-37 + " USD.08: 57% USD:8-68 + " USD.08: 67% USD:8-82 +message, .../files/dayfile7 - INGRES login PS2.10: 73% PS2:10-64 +message, .../files/grafile7 - GEO-QUEL login PS2.10: 75% PS2:10-67 +message[s], Broadcast PS1.08: 78% PS1:8-32 + " PS1.08: 79% PS1:8-32 + " PS1.08: 84% PS1:8-34 + " PS1.08: 84% PS1:8-34 + " PS2.10: 79% PS2:10-70 +message[s], anno - annotate USD.08: 13% USD:8-13 +message[s], error PS1.02: 42% PS1:2-14 + " PS1.03: 40% PS1:3-6 + " PS1.03: 68% PS1:3-8 + " PS1.04: 17% PS1:4-10 + " PS1.04: 40% PS1:4-21 + " PS1.04: 41% PS1:4-22 + " PS1.04: 42% PS1:4-22 + " PS1.04: 45% PS1:4-24 + " PS1.05: 54% PS1:5-8 + " PS1.05: 55% PS1:5-8 + " PS1.14: 97% PS1:14-15 + " PS1.15: 57% PS1:15-17 + " PS1.15: 64% PS1:15-18 + " PS2.03: 28% PS2:3-5 + " PS2.07: 39% PS2:7-17 + " PS2.09: 21% PS2:9-39 + " PS2.09: 21% PS2:9-42 + " PS2.09: 22% PS2:9-43 + " PS2.09: 29% PS2:9-55 + " PS2.09: 38% PS2:9-67 + " PS2.09: 69% PS2:9-115 + " PS2.09: 69% PS2:9-115 + " PS2.09: 69% PS2:9-116 + " PS2.09: 97% PS2:9-152 + " PS2.10: 61% PS2:10-52 + " PS2.10: 61% PS2:10-52 + " PS2.10: 61% PS2:10-52 + " PS2.10: 61% PS2:10-52 + " PS2.10: 65% PS2:10-56 + " PS2.10: 75% PS2:10-66 + " PS2.10: 75% PS2:10-66 + " PS2.10: 77% PS2:10-68 + " PS2.10: 77% PS2:10-69 + " PS2.10: 77% PS2:10-69 + " PS2.10: 77% PS2:10-69 + " PS2.10: 82% PS2:10-75 + " PS2.10: 82% PS2:10-75 + " PS2.10: 82% PS2:10-75 + " PS2.10: 83% PS2:10-76 + " PS2.10: 91% PS2:10-82 + " PS2.10: 93% PS2:10-84 +message[s], INGRES error PS2.10: 82% PS2:10-74 +message[s], log PS1.13: 18% PS1:13-4 + " PS1.13: 25% PS1:13-5 + " PS1.13: 25% PS1:13-5 + " PS1.13: 26% PS1:13-5 + " PS1.13: 26% PS1:13-5 + " PS1.13: 27% PS1:13-5 + " PS1.13: 32% PS1:13-6 + " PS1.13: 50% PS1:13-10 + " PS1.13: 51% PS1:13-10 + " PS1.13: 90% PS1:13-20 + " PS1.13: 95% PS1:13-21 +message, peek at incoming PS1.06: 81% PS1:6-35 +message, reliably-delivered PS1.06: 74% PS1:6-33 +message[s], warning PS1.02: 7% PS1:2-5 + " PS1.02: 21% PS1:2-8 + " PS1.05: 69% PS1:5-10 + " PS1.06: 72% PS1:6-32 + " PS2.09: 37% PS2:9-66 +message boundaries PS1.07a: 33% PS1:7-8 + " PS1.07a: 59% PS1:7-14 +messages, annotate ANNO.N: 3% ANNO(1)-1 +message, annotated DIST.N: 41% DIST(1)-1 + " FORW.N: 28% FORW(1)-1 + " REPL.N: 55% REPL(1)-2 + " USD.08: 13% USD:8-13 + " USD.08: 17% USD:8-18 + " USD.08: 21% USD:8-23 + " USD.08: 48% USD:8-58 +message, append a MHOOK.N: 17% MHOOK(1)-1 +message[s], archival storage of SMM.16: 43% SMM:16-6 +message[s], authorization system SYSLOG.3: 76% SYSLOG(3)-2 +message[s], Broadcast WALL.1: 38% WALL(1)-1 + " RWHOD.8C: 8% RWHOD(8C)-1 +message[s], burst - explode digests into USD.08: 14% USD:8-14 +message, checkgroups control SMM.10: 11% SMM:10-3 + " SMM.10: 31% SMM:10-9 + " SMM.10: 36% SMM:10-10 +message, comp - compose a COMP.N: 0% COMP(1)-1 +message, compose a MH.N: 46% MH(1)-1 +message[s], composition of PROMPTER.N: 14% PROMPTER(1)-1 + " USD.08: 43% USD:8-52 +message, connection TIP.1C: 33% TIP(1C)-2 + " SMM.12A: 52% SMM:12-12 +message[s], control SMM.10: 10% SMM:10-3 + " SMM.10: 60% SMM:10-16 + " SMM.10: 60% SMM:10-16 + " SMM.10: 61% SMM:10-16 + " SMM.10: 61% SMM:10-16 + " SMM.10: 61% SMM:10-16 + " SMM.10: 61% SMM:10-16 + " SMM.10: 63% SMM:10-16 + " SMM.10: 65% SMM:10-17 + " SMM.10: 68% SMM:10-17 + " SMM.10: 68% SMM:10-17 + " SMM.10: 69% SMM:10-18 + " SMM.10: 70% SMM:10-18 + " SMM.10: 70% SMM:10-18 + " SMM.10: 70% SMM:10-18 + " SMM.10: 75% SMM:10-19 +message, copy a USD.08: 6% USD:8-6 +message, create a new COMP.N: 8% COMP(1)-1 +message[s], create new USD.08: 4% USD:8-4 +message, current FOLDER.N: 1% FOLDER(1)-1 + " INC.N: 91% unknown + " MH.N: 36% MH(1)-1 +message[s], daemon SYSLOG.3: 75% SYSLOG(3)-2 +message[s], debugging SYSLOG.3: 32% SYSLOG(3)-1 +message[s], diagnostic PI.1: 55% PI(1)-1 + " SYSLINE.1: 58% SYSLINE(1)-1 + " USD.14: 18% USD:14-6 + " USD.29: 38% USD:29-4 +message[s], director USD.11: 3% USD:11-2 + " USD.11: 27% USD:11-4 + " USD.11: 35% USD:11-6 +message, draft SEND.N: 36% SEND(1)-1 + " USD.08: 83% USD:8-102 + " USD.08: 83% USD:8-102 +message[s], file REFILE.N: 1% REFILE(1)-1 + " USD.08: 45% USD:8-55 +Messages, Format of ARPA Internet Text DP.N: 75% DP(8)-1 + " MAILADDR.7: 98% MAILADDR(7)-3 + " MH-MAIL.N: 97% MH-MAIL(5)-3 + " POST.N: 85% POST(8)-1 + " USD.08: 69% USD:8-84 + " USD.08: 75% USD:8-91 + " USD.08: 77% USD:8-94 + " USD.08: 78% USD:8-97 +message[s], format of mail USD.07: 85% USD:7-20 +message[s], forw - forward USD.08: 21% USD:8-23 +messages, forwarded FORW.N: 40% FORW(1)-1 + " FORW.N: 57% FORW(1)-2 + " USD.08: 22% USD:8-24 + " USD.08: 22% USD:8-24 +message[s], incoming INET.4F: 28% INET(4F)-1 + " MHOOK.N: 75% MHOOK(1)-3 + " MHOOK.N: 77% MHOOK(1)-3 + " NS.4F: 56% NS(4F)-1 + " RECV.2: 48% RECV(2)-1 + " SMM.16: 60% SMM:16-8 + " USD.07: 1% USD:7-2 + " USD.08: 4% USD:8-4 + " USD.08: 34% USD:8-37 + " USD.08: 34% USD:8-37 + " USD.08: 45% USD:8-54 + " SMM.07A: 43% SMM:07-20 + " SMM.07A: 70% SMM:07-30 +message[s], Informational SYSLOG.3: 31% SYSLOG(3)-1 +message, justify the MAIL.1: 77% MAIL(1)-5 +message[s], Kernel SMM.13: 21% SMM:13-8 + " SYSLOGD.8: 14% SYSLOGD(8)-1 + " SYSLOGD.8: 70% SYSLOGD(8)-2 + " SYSLOGD.8: 76% SYSLOGD(8)-2 + " SYSLOG.3: 69% SYSLOG(3)-2 +message[s], line printer spooling system SYSLOG.3: 78% SYSLOG(3)-2 +message[s], log CI.N: 26% CI(1)-1 + " CI.N: 26% CI(1)-1 + " CI.N: 29% CI(1)-1 + " CI.N: 30% CI(1)-1 + " CI.N: 35% CI(1)-1 + " CI.N: 69% CI(1)-2 + " CO.N: 71% CO(1)-3 + " CO.N: 72% CO(1)-3 + " RLOG.N: 22% RLOG(1)-1 + " RLOG.N: 82% RLOG(1)-2 +message, login GETTYTAB.5: 66% GETTYTAB(5)-2 + " USD.01: 8% USD:1-2 + " USD.14: 11% USD:14-4 +message[s], mail BINMAIL.1: 18% BINMAIL(1)-1 + " FMT.1: 51% FMT(1)-1 + " MHOOK.N: 4% MHOOK(1)-1 + " RCS.N: 39% RCS(1)-1 + " USD.08: 31% USD:8-35 + " SMM.07A: 58% SMM:07-25 +messages, mark MARK.N: 0% MARK(1)-1 + " USD.08: 25% USD:8-28 +Message, Master Request SMM.22: 30% SMM:22-3 + " SMM.22: 36% SMM:22-4 + " SMM.22: 59% SMM:22-6 +messages, mesg - permit or deny MESG.1: 9% MESG(1)-1 +message[s], msgchk - check for MSGCHK.N: 5% MSGCHK(1)-1 +message, next - show the next NEXT.N: 2% NEXT(1)-1 + " USD.08: 38% USD:8-45 +message[s], NOOP IMP.4: 68% IMP(4)-1 +message[s], outgoing GETSOCKOPT.2: 57% GETSOCKOPT(2)-2 + " IFCONFIG.8C: 41% IFCONFIG(8C)-1 + " SMM.16: 60% SMM:16-8 + " USD.07: 0% USD:7-2 +message[s], panic CRASH.8V: 15% CRASH(8V)-1 + " CRASH.8V: 27% CRASH(8V)-1 + " CRASH.8V: 92% CRASH(8V)-3 +message, Pipe the MAIL.1: 75% MAIL(1)-5 + " MHOOK.N: 21% MHOOK(1)-2 +message, post - deliver a POST.N: 1% POST(8)-1 + " USD.08: 77% USD:8-96 +message[s], posting of MSGS.1: 54% MSGS(1)-1 +message, prev - show the previous PREV.N: 2% PREV(1)-1 + " USD.08: 42% USD:8-51 +message, print a USD.08: 6% USD:8-6 +message[s], print error SMM.07A: 70% SMM:07-30 +message[s], printing signal PSIGNAL.3: 19% PSIGNAL(3)-1 +message[s], psignal[s], sys_siglist - system signal PSIGNAL.3: 5% PSIGNAL(3)-1 +messages, read specific MH.N: 31% MH(1)-1 +message[s], remove MH.N: 39% MH(1)-1 + " RMM.N: 2% RMM(1)-1 + " USD.08: 51% USD:8-61 +message, repl - reply to a REPL.N: 0% REPL(1)-1 + " USD.08: 47% USD:8-57 +message, respond to the current MH.N: 41% MH(1)-1 +message[s], rmm - remove RMM.N: 2% RMM(1)-1 + " USD.08: 51% USD:8-61 +messages, select PICK.N: 0% PICK(1)-1 + " USD.08: 39% USD:8-47 +messages, selected PICK.N: 52% PICK(1)-2 + " USD.08: 41% USD:8-48 + " USD.08: 80% USD:8-98 +message, send - send a SEND.N: 0% SEND(1)-1 + " USD.08: 53% USD:8-64 +message[s], show - show (list) SHOW.N: 0% SHOW(1)-1 + " USD.08: 55% USD:8-66 +message[s], sortm - sort USD.08: 57% USD:8-68 +message[s], status LPC.8: 56% LPC(8)-1 + " RWHOD.8C: 79% RWHOD(8C)-1 + " SMM.12A: 87% SMM:12-20 +message, structure of a TSP SMM.22: 19% SMM:22-2 +message[s], syslogd - log systems SYSLOGD.8: 1% SYSLOGD(8)-1 +messages, system MSGS.1: 1% MSGS(1)-1 + " MSGS.1: 5% MSGS(1)-1 + " USD.04: 25% USD:4-11 +messages, system diagnostic DMESG.8: 9% DMESG(8)-1 +message[s], system error PERROR.3: 7% PERROR(3)-1 + " PERROR.3F: 3% PERROR(3F)-1 + " PERROR.3F: 21% PERROR(3F)-1 +message, transmit a SEND.2: 17% SEND(2)-1 +message[s], unsent GETSOCKOPT.2: 61% GETSOCKOPT(2)-2 +message[s], warning SYSLOG.3: 28% SYSLOG(3)-1 +message archive[s] USD.08: 36% USD:8-42 + " MSH.N: 13% MSH(1)-1 +message body MAIL.1: 63% MAIL(1)-4 + " SMM.16: 25% SMM:16-4 + " SMM.16: 50% SMM:16-7 + " USD.07: 88% USD:7-21 + " USD.08: 44% USD:8-52 + " USD.08: 44% USD:8-52 +message buffer INTRO.2: 40% INTRO(2)-3 + " SMM.13: 21% SMM:13-8 +message class SMM.07A: 15% SMM:07-9 + " SMM.07A: 29% SMM:07-14 + " SMM.07A: 40% SMM:07-19 + " SMM.07A: 73% SMM:07-32 +Message collection[s] SMM.16: 32% SMM:16-5 + " SMM.16: 50% SMM:16-7 +message delivery SMM.16: 28% SMM:16-4 + " SMM.16: 33% SMM:16-5 + " SMM.16: 52% SMM:16-7 +message draft[s] REPL.N: 8% REPL(1)-1 + " SCAN.N: 57% SCAN(1)-1 + " SEND.N: 74% SEND(1)-2 + " USD.08: 6% USD:8-6 + " USD.08: 16% USD:8-16 + " USD.08: 47% USD:8-57 + " USD.08: 52% USD:8-62 + " USD.08: 55% USD:8-65 + " USD.08: 83% USD:8-102 + " USD.08: 84% USD:8-102 + " USD.08: 84% USD:8-102 + " USD.08: 84% USD:8-103 + " USD.08: 84% USD:8-103 + " USD.08: 84% USD:8-103 + " USD.08: 84% USD:8-103 + " USD.08: 84% USD:8-103 +Message Encapsulation BURST.N: 43% BURST(1)-1 + " FORW.N: 84% FORW(1)-3 + " USD.08: 14% USD:8-14 + " USD.08: 23% USD:8-25 +message file[s] MH-MAIL.N: 6% MH-MAIL(5)-1 + " MHL.N: 5% MHL(1)-1 + " MKSTR.1: 54% MKSTR(1)-1 + " REFILE.N: 65% REFILE(1)-1 + " RMM.N: 12% RMM(1)-1 + " RMM.N: 32% RMM(1)-1 + " USD.08: 27% USD:8-30 + " USD.08: 46% USD:8-55 + " USD.08: 51% USD:8-61 + " USD.08: 51% USD:8-61 + " USD.08: 67% USD:8-82 + " USD.08: 70% USD:8-86 +message folder[s] USD.08: 2% USD:8-2 + " USD.08: 2% USD:8-2 + " USD.08: 3% USD:8-2 + " USD.08: 9% USD:8-8 +message format[s] MH-MAIL.N: 0% MH-MAIL(5)-1 + " USD.08: 67% USD:8-82 +message format in TSP SMM.22: 17% SMM:22-2 +message group MAIL.1: 43% MAIL(1)-3 + " MAIL.1: 43% MAIL(1)-3 + " MAIL.1: 43% MAIL(1)-3 +Message Handler[s] MH.N: 0% MH(1)-1 + " USD.08: 2% USD:8-2 + " USD.08: 2% USD:8-2 + " USD.08: 54% USD:8-65 +Message Handling System: User's Manual, Rand MH USD.08: 0% USD:8-2 +message header[s] COMSAT.8C: 55% COMSAT(8C)-1 + " COMSAT.8C: 73% COMSAT(8C)-1 + " IMP.4: 47% IMP(4)-1 + " MAIL.1: 42% MAIL(1)-3 + " SENDMAIL.8: 43% SENDMAIL(8)-2 + " SMM.16: 1% SMM:16-1 + " SMM.16: 36% SMM:16-5 + " SMM.16: 50% SMM:16-7 + " SMM.16: 82% SMM:16-11 + " USD.07: 58% USD:7-14 + " USD.07: 58% USD:7-14 + " USD.07: 58% USD:7-14 + " USD.07: 59% USD:7-14 + " USD.07: 59% USD:7-14 + " USD.07: 80% USD:7-19 + " USD.07: 81% USD:7-19 + " SMM.07A: 2% SMM:07-4 + " SMM.07A: 79% SMM:07-36 +message header editing SMM.16: 36% SMM:16-5 +message list[s] MAIL.1: 44% MAIL(1)-3 + " MAIL.1: 49% MAIL(1)-3 + " MAIL.1: 53% MAIL(1)-4 + " MAIL.1: 56% MAIL(1)-4 + " MAIL.1: 58% MAIL(1)-4 + " MAIL.1: 59% MAIL(1)-4 + " MAIL.1: 61% MAIL(1)-4 + " MAIL.1: 61% MAIL(1)-4 + " MAIL.1: 62% MAIL(1)-4 + " MHPATH.N: 6% MHPATH(1)-1 + " MHPATH.N: 31% MHPATH(1)-1 + " USD.07: 47% USD:7-12 + " USD.07: 47% USD:7-12 + " USD.07: 48% USD:7-12 + " USD.07: 63% USD:7-15 + " USD.07: 64% USD:7-15 + " USD.07: 68% USD:7-16 + " USD.07: 90% USD:7-22 + " USD.08: 35% USD:8-39 + " USD.08: 35% USD:8-39 + " USD.08: 35% USD:8-39 +message name[s] FOLDER.N: 54% FOLDER(1)-2 + " MARK.N: 10% MARK(1)-1 + " MARK.N: 12% MARK(1)-1 + " MARK.N: 77% MARK(1)-1 + " MHL.N: 74% MHL(1)-3 + " MHPATH.N: 20% MHPATH(1)-1 + " MHPATH.N: 35% MHPATH(1)-1 + " MHPATH.N: 37% MHPATH(1)-1 + " USD.08: 10% USD:8-9 + " USD.08: 10% USD:8-9 + " USD.08: 10% USD:8-9 + " USD.08: 10% USD:8-9 + " USD.08: 10% USD:8-9 + " USD.08: 10% USD:8-10 + " USD.08: 20% USD:8-21 + " USD.08: 25% USD:8-28 + " USD.08: 25% USD:8-28 + " USD.08: 26% USD:8-28 + " USD.08: 29% USD:8-32 + " USD.08: 35% USD:8-39 + " USD.08: 35% USD:8-39 + " USD.08: 35% USD:8-39 + " USD.08: 79% USD:8-98 +Message Naming USD.08: 7% USD:8-6 + " USD.08: 10% USD:8-9 +message number[s] BUGFILER.8: 60% BUGFILER(8)-1 + " MAIL.1: 11% MAIL(1)-1 + " MH.N: 40% MH(1)-1 + " MH.N: 51% MH(1)-2 + " MH.N: 55% MH(1)-2 + " MHPATH.N: 42% MHPATH(1)-1 + " MSGS.1: 79% MSGS(1)-2 + " PICK.N: 52% PICK(1)-2 + " SHOW.N: 30% SHOW(1)-1 + " SORTM.N: 92% SORTM(1)-1 + " SORTM.N: 95% SORTM(1)-1 + " USD.07: 7% USD:7-3 + " USD.07: 8% USD:7-3 + " USD.07: 8% USD:7-3 + " USD.07: 9% USD:7-3 + " USD.07: 22% USD:7-6 + " USD.07: 48% USD:7-12 + " USD.07: 48% USD:7-12 + " USD.07: 55% USD:7-13 + " USD.07: 63% USD:7-15 + " USD.07: 66% USD:7-16 + " USD.08: 5% USD:8-4 + " USD.08: 6% USD:8-6 + " USD.08: 35% USD:8-39 + " USD.08: 41% USD:8-48 + " USD.08: 56% USD:8-66 + " USD.08: 84% USD:8-102 +message of the day HIER.7: 12% HIER(7)-1 + " LOGIN.1: 28% LOGIN(1)-1 +message output MHL.N: 37% MHL(1)-1 + " USD.03: 88% USD:3-21 + " USD.03: 89% USD:3-21 + " USD.08: 27% USD:8-30 + " USD.08: 28% USD:8-30 +message priority[s] SYSLOGD.8: 18% SYSLOGD(8)-1 + " SMM.07A: 15% SMM:07-9 + " SMM.07A: 72% SMM:07-32 +message priority, syslog SYSLOG.3: 18% SYSLOG(3)-1 +Message Processing Module SMM.16: 21% SMM:16-3 + " SMM.16: 71% SMM:16-10 + " SMM.16: 71% SMM:16-10 +message range MARK.N: 82% MARK(1)-1 + " MHPATH.N: 30% MHPATH(1)-1 + " USD.08: 10% USD:8-9 + " USD.08: 10% USD:8-9 + " USD.08: 27% USD:8-29 + " USD.08: 35% USD:8-39 +message scan listing SCAN.N: 1% SCAN(1)-1 + " USD.08: 51% USD:8-62 +message sequence[s] MARK.N: 5% MARK(1)-1 + " MARK.N: 9% MARK(1)-1 + " MARK.N: 14% MARK(1)-1 + " MARK.N: 16% MARK(1)-1 + " MARK.N: 74% MARK(1)-1 + " MARK.N: 81% MARK(1)-1 + " PICK.N: 62% PICK(1)-2 + " USD.08: 25% USD:8-28 + " USD.08: 25% USD:8-28 + " USD.08: 25% USD:8-28 + " USD.08: 25% USD:8-28 + " USD.08: 26% USD:8-28 + " USD.08: 27% USD:8-29 + " USD.08: 41% USD:8-48 + " USD.08: 79% USD:8-98 +message size SMM.07A: 29% SMM:07-14 + " SMM.07A: 29% SMM:07-14 + " SMM.12A: 94% SMM:12-22 +message skeleton COMP.N: 72% COMP(1)-1 + " USD.08: 22% USD:8-24 +message system[s] MAIL.1: 64% MAIL(1)-4 + " USD.07: 11% USD:7-4 + " USD.07: 71% USD:7-17 + " USD.08: 1% USD:8-2 + " USD.08: 1% USD:8-2 + " USD.08: 1% USD:8-2 + " USD.08: 1% USD:8-2 + " USD.08: 1% USD:8-2 + " USD.08: 2% USD:8-2 +message timeout[s] SMM.07A: 27% SMM:07-14 + " SMM.07A: 28% SMM:07-14 +message transport system MH-ALIAS.N: 71% MH-ALIAS(5)-2 + " MH-ALIAS.N: 71% MH-ALIAS(5)-2 + " USD.08: 63% USD:8-76 + " USD.08: 63% USD:8-76 +message type[s] SMM.22: 17% SMM:22-2 +Message-Id: SMM.07A: 75% SMM:07-32 + " SMM.07A: 45% SMM:07-20 + " USD.08: 78% USD:8-96 + " USD.08: 68% USD:8-84 + " USD.08: 68% USD:8-83 + " USD.08: 67% USD:8-82 + " USD.08: 54% USD:8-64 + " USD.08: 54% USD:8-64 + " USD.08: 47% USD:8-57 + " USD.08: 24% USD:8-26 + " SMM.10: 58% SMM:10-15 + " SMM.10: 8% SMM:10-3 + " SEND.N: 63% SEND(1)-1 + " SEND.N: 59% SEND(1)-1 + " POST.N: 61% POST(8)-1 + " MH-MAIL.N: 90% MH-MAIL(5)-3 + " MH-MAIL.N: 74% MH-MAIL(5)-2 + " INC.N: 34% INC(1)-1 +meta mode TERMCAP.5: 89% TERMCAP(5)-12 +meta-key (variable) USD.17: 80% USD:17-38 +Metacharacter[s] USD.13: 11% USD:13-2 + " USD.04: 86% USD:4-40 + " USD.13: 11% USD:13-2 +metacharacter[s], Shell APPLY.1: 80% APPLY(1)-1 + " RSH.1C: 42% RSH(1C)-1 + " USD.03: 71% USD:3-17 + " USD.04: 90% USD:4-41 + " USD.07: 73% USD:7-17 + " UUCP.1C: 12% UUCP(1C)-1 + " UUX.1C: 92% UUX(1C)-2 + " CSH.1: 3% CSH(1)-1 + " EXPR.1: 86% EXPR(1)-1 +Metacharacters in the shell USD.04: 8% USD:4-5 +METAKEY environment variable JOVE.N: 88% JOVE(1)-3 +metoo MAIL.1: 86% MAIL(1)-6 + " USD.07: 79% USD:7-18 +metric, interface routing INTRO.4N: 89% INTRO(4N)-4 +metric, routing IFCONFIG.8C: 57% IFCONFIG(8C)-1 + " IFCONFIG.8C: 58% IFCONFIG(8C)-1 + " INTRO.4N: 80% INTRO(4N)-3 + " SMM.13: 60% SMM:13-21 +mget command[s] FTP.1C: 9% FTP(1C)-1 + " FTP.1C: 37% FTP(1C)-3 + " FTP.1C: 46% FTP(1C)-4 + " FTP.1C: 61% FTP(1C)-5 +MH, aliasing in MH-ALIAS.N: 68% MH-ALIAS(5)-2 + " MH-ALIAS.N: 77% MH-ALIAS(5)-3 + " USD.08: 63% USD:8-76 + " USD.08: 63% USD:8-77 +MH, Emacs front-end for USD.08: 70% USD:8-86 +MH, vmh - visual front-end to VMH.N: 0% VMH(1)-1 + " USD.08: 58% USD:8-69 +mh - Message Handler MH.N: 0% MH(1)-1 +MH command[s] INC.N: 48% INC(1)-1 + " MH.N: 1% MH(1)-1 + " MH.N: 9% MH(1)-1 + " MH.N: 47% MH(1)-1 + " MH.N: 66% MH(1)-2 + " MHPATH.N: 14% MHPATH(1)-1 + " MSH.N: 16% MSH(1)-1 + " PROMPTER.N: 73% PROMPTER(1)-1 + " SHOW.N: 53% SHOW(1)-1 + " USD.08: 1% USD:8-2 + " USD.08: 2% USD:8-2 + " USD.08: 4% USD:8-2 + " USD.08: 5% USD:8-4 + " USD.08: 5% USD:8-4 + " USD.08: 5% USD:8-4 + " USD.08: 7% USD:8-6 + " USD.08: 9% USD:8-8 + " USD.08: 9% USD:8-9 + " USD.08: 10% USD:8-9 + " USD.08: 10% USD:8-9 + " USD.08: 11% USD:8-10 + " USD.08: 11% USD:8-10 + " USD.08: 11% USD:8-10 + " USD.08: 24% USD:8-26 + " USD.08: 35% USD:8-39 + " USD.08: 36% USD:8-40 + " USD.08: 36% USD:8-42 + " USD.08: 36% USD:8-42 + " USD.08: 72% USD:8-88 + " USD.08: 74% USD:8-90 + " USD.08: 74% USD:8-90 + " USD.08: 74% USD:8-90 + " USD.08: 77% USD:8-95 + " USD.08: 79% USD:8-98 + " USD.08: 81% USD:8-100 + " USD.08: 81% USD:8-100 + " USD.08: 81% USD:8-101 + " USD.08: 82% USD:8-101 + " USD.08: 82% USD:8-101 + " USD.08: 85% USD:8-104 +MH commands, list of MH.N: 66% MH(1)-2 +MH commands, chart of MH-CHART.N: 1% MH-CHART(1)-2 +mh commands, list of USD.08: 12% USD:8-11 +mh commands and option[s], list of USD.08: 88% USD:8-106 +MH configuration MH-PROFILE.N: 62% MH-PROFILE(5)-4 + " MH-PROFILE.N: 69% MH-PROFILE(5)-4 + " MH-PROFILE.N: 73% MH-PROFILE(5)-5 + " USD.08: 72% USD:8-88 + " USD.08: 73% USD:8-89 + " USD.08: 73% USD:8-89 +MH context FOLDER.N: 25% FOLDER(1)-1 + " MH-PROFILE.N: 4% MH-PROFILE(5)-1 + " MH-PROFILE.N: 71% MH-PROFILE(5)-5 + " SCAN.N: 74% SCAN(1)-2 + " USD.08: 19% USD:8-20 + " USD.08: 69% USD:8-85 + " USD.08: 73% USD:8-89 +MH context file MH-PROFILE.N: 6% MH-PROFILE(5)-1 +MH directory COMP.N: 18% COMP(1)-1 + " DIST.N: 13% DIST(1)-1 + " FOLDER.N: 22% FOLDER(1)-1 + " FORW.N: 14% FORW(1)-1 + " FORW.N: 46% FORW(1)-2 + " INC.N: 9% INC(1)-1 + " INSTALL-MH.N: 35% INSTALL-MH(8)-1 + " INSTALL-MH.N: 89% INSTALL-MH(8)-1 + " MH-ALIAS.N: 81% MH-ALIAS(5)-3 + " MH-PROFILE.N: 47% MH-PROFILE(5)-3 + " MHL.N: 26% MHL(1)-1 + " REPL.N: 23% REPL(1)-1 + " USD.08: 7% USD:8-6 + " USD.08: 21% USD:8-23 + " USD.08: 22% USD:8-24 + " USD.08: 28% USD:8-30 + " USD.08: 63% USD:8-77 + " USD.08: 77% USD:8-95 + " USD.08: 77% USD:8-95 + " USD.08: 83% USD:8-102 +MH environment, install-mh - initialize the INSTALL-MH.N: 3% INSTALL-MH(8)-1 +MH environment variable MH-PROFILE.N: 43% MH-PROFILE(5)-3 + " USD.08: 8% USD:8-6 + " USD.08: 37% USD:8-43 + " CONFLICT.N: 17% CONFLICT(8)-1 + " USD.08: 71% USD:8-87 +MH folder[s] INC.N: 7% INC(1)-1 + " INC.N: 39% INC(1)-1 + " USD.08: 23% USD:8-26 + " USD.08: 24% USD:8-26 + " USD.08: 45% USD:8-54 + " USD.08: 45% USD:8-54 + " USD.08: 84% USD:8-103 +MH message system MH-ALIAS.N: 1% MH-ALIAS(5)-1 + " MH-FORMAT.N: 0% MH-FORMAT(5)-1 + " MH-MAIL.N: 1% MH-MAIL(5)-1 + " MH-PROFILE.N: 0% MH-PROFILE(5)-1 + " USD.08: 61% USD:8-75 + " USD.08: 64% USD:8-78 +MH news/mail program USD.09: 46% USD:9-5 +mh overview USD.08: 2% USD:8-2 +MH profile MH-PROFILE.N: 4% MH-PROFILE(5)-1 + " MH-PROFILE.N: 46% MH-PROFILE(5)-3 + " MH-PROFILE.N: 70% MH-PROFILE(5)-4 + " NEXT.N: 92% NEXT(1)-1 + " PREV.N: 92% PREV(1)-1 + " USD.08: 7% USD:8-6 + " USD.08: 39% USD:8-45 + " USD.08: 69% USD:8-85 + " USD.08: 71% USD:8-87 + " USD.08: 73% USD:8-89 + " USD.08: 83% USD:8-102 + " USD.08: 83% USD:8-102 +MH program[s] INSTALL-MH.N: 14% INSTALL-MH(8)-1 + " INSTALL-MH.N: 59% INSTALL-MH(8)-1 + " MH-MAIL.N: 53% MH-MAIL(5)-1 + " MH-PROFILE.N: 38% MH-PROFILE(5)-3 + " MH-PROFILE.N: 43% MH-PROFILE(5)-3 + " MH-PROFILE.N: 47% MH-PROFILE(5)-3 + " MH-PROFILE.N: 49% MH-PROFILE(5)-4 + " MH-PROFILE.N: 73% MH-PROFILE(5)-5 + " PICK.N: 54% PICK(1)-2 + " PROMPTER.N: 18% PROMPTER(1)-1 + " USD.08: 7% USD:8-6 + " USD.08: 8% USD:8-8 + " USD.08: 8% USD:8-8 + " USD.08: 9% USD:8-9 + " USD.08: 41% USD:8-48 + " USD.08: 43% USD:8-52 + " USD.08: 71% USD:8-87 + " USD.08: 71% USD:8-87 + " USD.08: 71% USD:8-87 + " USD.08: 73% USD:8-89 + " USD.08: 74% USD:8-90 + " USD.08: 74% USD:8-90 + " USD.08: 74% USD:8-90 + " USD.08: 85% USD:8-103 +MH shell MSH.N: 0% MSH(1)-1 + " USD.08: 36% USD:8-42 +MH system[s] USD.08: 7% USD:8-6 +mh tutorial USD.08: 5% USD:8-4 +MH user profile[s] USD.08: 77% USD:8-95 + " USD.08: 73% USD:8-89 + " USD.08: 59% USD:8-70 + " USD.08: 35% USD:8-40 + " USD.08: 30% USD:8-33 + " USD.08: 27% USD:8-29 + " USD.08: 7% USD:8-6 + " USD.08: 7% USD:8-6 + " USD.08: 7% USD:8-6 + " USD.08: 2% USD:8-2 + " USD.08: 2% USD:8-2 + " SORTM.N: 45% SORTM(1)-1 + " SHOW.N: 55% SHOW(1)-1 + " SEND.N: 88% SEND(1)-2 + " SCAN.N: 78% SCAN(1)-2 + " REPL.N: 76% REPL(1)-2 + " MH-PROFILE.N: 76% MH-PROFILE(5)-5 + " INSTALL-MH.N: 84% INSTALL-MH(8)-1 +MH user profile component[s], list of USD.08: 9% USD:8-9 +MH window management protocol USD.08: 58% USD:8-69 +mh-alias - alias file for MH message system MH-ALIAS.N: 0% MH-ALIAS(5)-1 + " USD.08: 61% USD:8-75 +mh-chart - Chart of MH Commands MH-CHART.N: 1% MH-CHART(1)-2 +mh-format - format file for MH message system MH-FORMAT.N: 0% MH-FORMAT(5)-1 + " USD.08: 64% USD:8-78 +mh-mail - message format for MH message system MH-MAIL.N: 0% MH-MAIL(5)-1 + " USD.08: 67% USD:8-82 +MH-PROFILE MH-ALIAS.N: 78% MH-ALIAS(5)-3 +mh-profile - user customization for MH message system MH-PROFILE.N: 0% MH-PROFILE(5)-1 +mh-sequence[s] USD.08: 69% USD:8-85 +MHBBRC environment variable MH-PROFILE.N: 66% MH-PROFILE(5)-4 + " USD.08: 73% USD:8-88 +MHCONTEXT environment variable MH-PROFILE.N: 46% MH-PROFILE(5)-3 + " USD.08: 71% USD:8-87 +MHCONTEXTFD environment variable MH-PROFILE.N: 70% MH-PROFILE(5)-5 + " USD.08: 73% USD:8-89 +mhdraft USD.08: 72% USD:8-88 +MHFD USD.08: 73% USD:8-89 +MHFD environment variable MH-PROFILE.N: 68% MH-PROFILE(5)-4 +mhfolder environment variable REPL.N: 34% REPL(1)-1 + " MHL.N: 29% MHL(1)-1 + " DIST.N: 49% DIST(1)-1 + " USD.08: 48% USD:8-57 + " USD.08: 72% USD:8-88 +mhl - produce formatted listings of MH messages MHL.N: 0% MHL(1)-1 +mhl.format MHL.N: 25% MHL(1)-1 +mhl.forward FORW.N: 46% FORW(1)-2 + " USD.08: 22% USD:8-24 +mhmail - send or read mail MHMAIL.N: 1% MHMAIL(1)-1 +mhook - MH receive-mail hook[s] MHOOK.N: 0% MHOOK(1)-1 +mhpath - print full pathnames of MH messages and folder[s] MHPATH.N: 1% MHPATH(1)-1 +MICOM port selector GETTYTAB.5: 39% GETTYTAB(5)-2 +Micom terminal switch L-DEVICES.5: 20% L-DEVICES(5)-1 +microcode patch[s] REBOOT.8: 88% REBOOT(8)-2 +MicroVAX II SMM.02: 21% SMM:2-7 + " SMM.02: 3% SMM:2-2 +mille - play Mille Bourne[s] MILLE.6: 0% MILLE(6)-1 +min - multiple precision integer arithmetic MP.3X: 4% MP(3X)-1 +MINBSIZE FS.5: 78% FS(5)-3 + " FS.5: 79% FS(5)-3 + " FS.5: 80% FS(5)-3 + " FS.5: 81% FS(5)-3 + " FS.5: 82% FS(5)-3 +Minfree MKFS.8: 55% MKFS(8)-1 + " NEWFS.8: 56% NEWFS(8)-1 + " TUNEFS.8: 50% TUNEFS(8)-1 +mincore(addr, len, vec) PS1.06: 20% PS1:6-12 +minfree file LPD.8: 28% LPD(8)-1 + " SAVECORE.8: 60% SAVECORE(8)-1 + " SAVECORE.8: 64% SAVECORE(8)-1 +mini-root file system SMM.01: 15% SMM:1-10 + " SMM.01: 16% SMM:1-11 + " SMM.01: 86% SMM:1-53 + " SMM.01: 89% SMM:1-55 + " SMM.01: 97% SMM:1-63 + " SMM.01: 97% SMM:1-63 + " SMM.01: 97% SMM:1-63 + " SMM.01: 97% SMM:1-63 + " SMM.01: 97% SMM:1-64 + " SMM.01: 97% SMM:1-64 + " SMM.01: 98% SMM:1-64 + " SMM.01: 16% SMM:1-12 + " SMM.01: 86% SMM:1-52 + " SMM.01: 88% SMM:1-55 + " SMM.01: 88% SMM:1-55 + " SMM.01: 3% SMM:1-3 + " SMM.01: 10% SMM:1-7 + " SMM.01: 10% SMM:1-7 + " SMM.01: 15% SMM:1-11 + " SMM.01: 15% SMM:1-11 + " SMM.01: 15% SMM:1-11 + " SMM.01: 16% SMM:1-11 + " SMM.01: 16% SMM:1-11 + " SMM.01: 16% SMM:1-12 + " SMM.01: 16% SMM:1-12 + " SMM.01: 16% SMM:1-12 + " SMM.01: 28% SMM:1-20 + " SMM.01: 85% SMM:1-52 +Minibuf JOVE.N: 20% JOVE(1)-1 + " USD.17: 3% USD:17-2 +minimum free space percentage DUMPFS.8: 74% +minimum interword spacing USD.24: 34% USD:24-12 +minimum percentage of free blocks FS.5: 15% FS(5)-1 +minimum percentage of free disk space MKFS.8: 56% MKFS(8)-1 +minor device number MKNOD.8: 61% MKNOD(8)-1 + " PS1.06: 61% PS1:6-28 +Minpages PS2.10: 24% PS2:10-24 + " PS2.10: 24% PS2:10-24 + " PS2.10: 24% PS2:10-24 + " PS2.10: 87% PS2:10-78 +minor mode[s] USD.17: 52% USD:17-23 +MINUS USD.24: 24% USD:24-9 +minus, file names starting with MV.1: 76% unknown +minus, unary PS1.15: 52% PS1:15-15 + " PS1.15: 52% PS1:15-15 + " PS1.15: 82% PS1:15-24 + " PS1.15: 93% PS1:15-29 +minus sign PS1.15: 38% PS1:15-11 +miscellaneous - miscellaneous useful information pages INTRO.7: 8% INTRO(7)-1 +misspelled word[s] USD.01: 74% USD:1-11 + " USD.17: 31% USD:17-14 + " USD.17: 94% USD:17-45 +mistake[s], spelling USD.01: 72% USD:1-11 + " USD.01: 73% USD:1-11 + " USD.12: 51% USD:12-6 +mistake[s], typing USD.01: 12% USD:1-3 + " USD.04: 29% USD:4-13 + " USD.04: 81% USD:4-38 +mistakes, fixing CSH.1: 15% CSH(1)-3 +Mkdir MKDIR.1: 32% MKDIR(1)-1 + " MKDIR.1: 70% MKDIR(1)-1 + " SMM.12A: 40% SMM:12-9 +mkdir - make a directory MKDIR.1: 13% MKDIR(1)-1 + " MKDIR.2: 1% MKDIR(2)-1 +mkdir(path, mode) PS1.06: 58% PS1:6-27 +mkf[s] SMM.12A: 89% SMM:12-21 +mkfs - construct a file system MKFS.8: 2% MKFS(8)-1 +mkhost[s] SMM.12A: 89% SMM:12-21 +mkhosts - generate hashed host table MKHOSTS.8: 5% MKHOSTS(8)-1 +mklost+found - make a lost+found directory for fsck MKLOST+FOUND.8: 10% unknown +mknod STAT.2: 45% STAT(2)-2 + " STAT.2: 49% STAT(2)-2 +mknod - build special file MKNOD.8: 7% MKNOD(8)-1 +mknod - make a special file MKNOD.2: 1% MKNOD(2)-1 +mknod(path, mode, dev) PS1.06: 62% PS1:6-28 +mkpasswd SMM.01: 32% SMM:1-21 + " SMM.12A: 89% SMM:12-21 +mkpasswd - generate hashed password table MKPASSWD.8: 6% unknown +mkproto - construct a prototype file system MKPROTO.8: 2% MKPROTO(8)-1 +mkstemp SMM.12A: 67% SMM:12-16 +mkstr - create an error message file by massaging C source MKSTR.1: 2% MKSTR(1)-1 +mktemp - make a unique file name MKTEMP.3: 5% unknown +MMDF SMM.10: 19% SMM:10-6 + " SMM.10: 52% SMM:10-14 + " SMM.16: 68% SMM:16-9 + " SMM.16: 68% SMM:16-9 + " SMM.16: 68% SMM:16-9 + " SMM.16: 69% SMM:16-10 + " SMM.16: 69% SMM:16-10 + " SMM.16: 69% SMM:16-10 + " SMM.16: 70% SMM:16-10 + " SMM.16: 70% SMM:16-10 + " SMM.16: 70% SMM:16-10 + " SMM.16: 71% SMM:16-10 + " SMM.16: 71% SMM:16-10 + " SMM.16: 72% SMM:16-10 + " SMM.16: 77% SMM:16-10 + " SMM.12A: 98% SMM:12-23 +mmap(addr, len, prot, flags, fd, pos) PS1.06: 16% PS1:6-11 +mod operator PS1.15: 81% PS1:15-24 + " PS2.10: 84% PS2:10-76 + " PS2.10: 84% PS2:10-76 +mode, cbreak PS1.06: 89% PS1:6-38 + " PS1.18: 21% PS1:18-6 +mode, cooked PS1.06: 89% PS1:6-38 +mode[s], file PS1.06: 60% PS1:6-28 + " PS1.13: 34% PS1:13-6 + " PS1.13: 53% PS1:13-10 +mode, protection PS2.01: 36% PS2:1-6 + " PS2.01: 79% PS2:1-12 + " PS2.03: 36% PS2:3-6 +mode, standout PS1.18: 43% PS1:18-12 + " PS1.18: 43% PS1:18-12 +mode[s], major USD.17: 3% USD:17-2 + " USD.17: 36% USD:17-16 + " USD.17: 51% USD:17-22 +mode[s], minor USD.17: 52% USD:17-23 +mode[s], protection FIND.1: 60% FIND(1)-2 + " SMM.17: 51% SMM:17-2 + " SMM.17: 54% SMM:17-2 + " SMM.17: 70% SMM:17-2 +mode[s], RAW BK.4: 59% BK(4)-1 + " STTY.1: 85% STTY(1)-3 + " TB.4: 68% TB(4)-1 + " TSET.1: 61% TSET(1)-3 + " TTY.4: 16% TTY(4)-2 + " TTY.4: 70% TTY(4)-7 +mode, user GETRUSAGE.2: 37% GETRUSAGE(2)-1 + " SMM.11: 86% SMM:11-13 + " SMM.11: 87% SMM:11-14 + " SMM.13: 18% SMM:13-7 + " SYSTAT.1: 20% SYSTAT(1)-2 +mode bits ACCESS.2: 81% ACCESS(2)-1 + " ACCESS.2: 85% ACCESS(2)-1 + " ACCESS.2: 88% ACCESS(2)-1 + " STAT.2: 65% STAT(2)-2 + " WINDOW.1: 73% WINDOW(1)-5 +mode line[s] SYSLINE.1: 42% SYSLINE(1)-1 + " USD.17: 3% USD:17-2 + " USD.17: 3% USD:17-2 + " USD.17: 3% USD:17-2 + " USD.17: 4% USD:17-2 + " USD.17: 4% USD:17-2 + " USD.17: 27% USD:17-12 + " USD.17: 31% USD:17-14 + " USD.17: 32% USD:17-14 + " USD.17: 32% USD:17-14 + " USD.17: 32% USD:17-14 + " USD.17: 32% USD:17-15 + " USD.17: 32% USD:17-15 + " USD.17: 35% USD:17-16 + " USD.17: 38% USD:17-17 + " USD.17: 40% USD:17-18 + " USD.17: 41% USD:17-18 + " USD.17: 79% USD:17-37 + " USD.17: 80% USD:17-38 + " USD.17: 81% USD:17-38 + " USD.17: 81% USD:17-38 + " USD.17: 81% USD:17-38 + " USD.17: 81% USD:17-38 + " USD.17: 83% USD:17-39 + " USD.17: 93% USD:17-45 + " USD.17: 96% USD:17-46 + " SMM.12A: 17% SMM:12-5 +mode mask CREAT.2: 12% CREAT(2)-1 + " MKDIR.2: 11% MKDIR(2)-1 + " MKNOD.2: 13% MKNOD(2)-1 +mode word SMM.05: 28% SMM:5-6 + " SMM.05: 28% SMM:5-6 + " TTY.4: 24% TTY(4)-3 + " TTY.4: 28% TTY(4)-3 + " TTY.4: 28% TTY(4)-3 + " TTY.4: 29% TTY(4)-3 + " TTY.4: 38% TTY(4)-4 + " TTY.4: 41% TTY(4)-4 + " TTY.4: 88% TTY(4)-9 + " TTY.4: 88% TTY(4)-9 + " TTY.4: 92% TTY(4)-10 + " TTY.4: 92% TTY(4)-10 + " TTY.4: 92% TTY(4)-10 + " TTY.4: 92% TTY(4)-10 +mode-line (variable) USD.17: 80% USD:17-38 +mode-line-should-standout (variable) USD.17: 81% USD:17-38 +Model VGRIND.1: 58% VGRIND(1)-1 + " VGRIND.1: 81% VGRIND(1)-2 +modeline USD.16: 87% USD:16-16 +modem L_SYS.5: 8% L.SYS(5)-1 +modem[s], autodialing L-DEVICES.5: 16% L-DEVICES(5)-1 + " L-DEVICES.5: 76% L-DEVICES(5)-2 + " L-DEVICES.5: 81% L-DEVICES(5)-2 + " L-DEVICES.5: 85% L-DEVICES(5)-2 + " SMM.09: 60% SMM:9-13 + " SMM.09: 60% SMM:9-13 + " SMM.09: 60% SMM:9-13 +modems, Bell 212-compatible L-DEVICES.5: 48% L-DEVICES(5)-1 + " L_SYS.5: 50% L.SYS(5)-2 + " SMM.09: 69% SMM:9-15 +modems, CCITT L-DEVICES.5: 50% L-DEVICES(5)-1 + " L_SYS.5: 51% L.SYS(5)-2 + " SMM.09: 69% SMM:9-15 +modem, DEC DF02 or DF03 L-DEVICES.5: 55% L-DEVICES(5)-1 +modem, Dec DF112 L-DEVICES.5: 56% L-DEVICES(5)-1 +modems, Racal-Vadic L-DEVICES.5: 49% L-DEVICES(5)-1 + " L_SYS.5: 50% L.SYS(5)-2 + " SMM.09: 69% SMM:9-15 +Modem and autodialer support SMM.09: 39% SMM:9-9 +modem control DH.4: 18% DH(4)-1 + " DMF.4: 11% DMF(4)-1 + " DMF.4: 41% DMF(4)-1 + " DMZ.4: 14% DMZ(4)-1 + " SMM.01: 52% SMM:1-33 +modem line[s] DN.4: 32% DN(4)-1 + " DN.4: 39% DN(4)-1 + " DN.4: 86% DN(4)-1 +moderated newsgroup[s] USD.10: 46% USD:10-5 +Modern Language Association USD.29: 90% USD:29-9 +modes, tty PS1.18: 22% PS1:18-6 + " PS1.18: 26% PS1:18-7 + " PS1.18: 45% PS1:18-13 +modem control PS1.06: 93% PS1:6-39 +modf FREXP.3: 10% +modification, query PS2.10: 53% PS2:10-47 + " PS2.10: 53% PS2:10-47 + " PS2.10: 53% PS2:10-47 + " PS2.10: 53% PS2:10-47 + " PS2.10: 53% PS2:10-47 + " PS2.10: 54% PS2:10-47 + " PS2.10: 82% PS2:10-75 + " PS2.10: 85% PS2:10-77 + " PS2.10: 91% PS2:10-81 + " PS2.10: 91% PS2:10-81 +modification, time of last PS1.12: 27% PS1:12-3 +modification[s], Making local SMM.01: 81% SMM:1-50 +modification date AR.5: 64% AR(5)-1 + " RANLIB.1: 83% RANLIB(1)-1 + " TP.1: 28% TP(1)-1 +modification time[s] CP.1: 36% CP(1)-1 + " FIND.1: 62% FIND(1)-2 + " RCP.1C: 41% RCP(1C)-1 + " RESTORE.8: 20% RESTORE(8)-1 + " TAR.1: 72% TAR(1)-2 + " TAR.1: 72% TAR(1)-2 + " TAR.5: 64% TAR(5)-1 + " FIND.1: 46% FIND(1)-1 + " FIND.1: 70% FIND(1)-2 + " TOUCH.1: 33% TOUCH(1)-1 +modifier USD.04: 86% USD:4-40 +modify - convert the storage structure of a relation PS2.10: 22% PS2:10-22 +modify times on a file, access and PS1.06: 65% PS1:6-30 +modifying system code SMM.02: 46% SMM:2-14 + " SMM.02: 46% SMM:2-14 +Modifying text USD.14: 4% USD:14-3 + " USD.12: 46% USD:12-5 +Modula-2 DBX.1: 44% DBX(1)-3 + " DBX.1: 95% DBX(1)-7 + " DBX.5: 33% DBX(5)-1 + " DBX.5: 31% DBX(5)-1 + " ERROR.1: 30% ERROR(1)-1 + " SMM.12A: 16% SMM:12-5 +MODULA2 VGRIND.1: 60% VGRIND(1)-1 +Module, Message Processing SMM.16: 21% SMM:16-3 + " SMM.16: 71% SMM:16-10 + " SMM.16: 71% SMM:16-10 +module[s], object LD.1: 4% LD(1)-1 + " PS1.05: 74% PS1:5-11 + " PS1.05: 88% PS1:5-12 + " PS1.12: 9% PS1:12-1 + " PS1.14: 33% PS1:14-5 + " PS1.14: 35% PS1:14-5 + " PS2.09: 73% PS2:9-120 + " PS2.09: 73% PS2:9-120 + " SMM.02: 17% SMM:2-6 + " SMM.02: 18% SMM:2-6 + " WHAT.1: 12% WHAT(1)-1 +module[s], protocol GETSOCKOPT.2: 26% GETSOCKOPT(2)-1 + " IMPLOGD.8C: 72% IMPLOGD(8C)-1 + " SMM.15: 28% SMM:15-9 + " SMM.15: 47% SMM:15-15 + " SMM.15: 50% SMM:15-15 + " SMM.15: 50% SMM:15-15 + " SMM.15: 50% SMM:15-15 + " SMM.15: 50% SMM:15-15 + " SMM.15: 51% SMM:15-16 + " SMM.15: 52% SMM:15-16 + " SMM.15: 53% SMM:15-16 + " SMM.15: 56% SMM:15-17 + " SMM.15: 57% SMM:15-17 + " SMM.15: 57% SMM:15-17 + " SMM.15: 58% SMM:15-17 + " SMM.15: 58% SMM:15-17 + " SMM.15: 58% SMM:15-17 + " SMM.15: 58% SMM:15-17 + " SMM.15: 61% SMM:15-18 + " SMM.15: 61% SMM:15-18 + " SMM.15: 67% SMM:15-20 + " SMM.15: 67% SMM:15-20 +module[s], source SMM.02: 18% SMM:2-6 + " SMM.02: 48% SMM:2-15 +mon.out PROF.1: 19% PROF(1)-1 +mon.out file CC.1: 24% CC(1)-1 +moncontrol MONITOR.3: 2% MONITOR(3)-1 +MONITOR CC.1: 23% CC(1)-1 + " PROF.1: 12% PROF(1)-1 +monitor - interactive terminal monitor PS2.10: 26% PS2:10-26 +monitor, bootstrap SMM.01: 13% SMM:1-8 + " SMM.01: 13% SMM:1-9 + " SMM.01: 15% SMM:1-10 + " SMM.01: 91% SMM:1-59 +monitor, monstartup, moncontrol - prepare execution profile MONITOR.3: 1% MONITOR(3)-1 +monitor, tape bootstrap SMM.01: 11% SMM:1-7 + " SMM.01: 92% SMM:1-59 + " SMM.01: 95% SMM:1-62 + " SMM.01: 95% SMM:1-62 +Monitoring System Performance SMM.01: 78% SMM:1-48 +monop - Monopoly game MONOP.6: 1% MONOP(6)-1 +monstartup MONITOR.3: 2% MONITOR(3)-1 +month, as a word USD.23: 70% USD:23-9 +More MORE.1: 4% MORE(1)-1 + " MORE.1: 43% MORE(1)-2 + " USD.04: 21% USD:4-10 + " MHL.N: 4% MHL(1)-1 + " SMM.12A: 38% SMM:12-9 + " SMM.12A: 40% SMM:12-9 +more, page - file perusal filter for crt viewing MORE.1: 0% MORE(1)-1 +Morris, R. BC.1: 92% BC(1)-2 +Morris, Robert SMM.18: 0% SMM:18-1 + " USD.05: 0% USD:5-1 + " USD.06: 0% USD:6-1 +motion optimization[s] PS1.18: 3% PS1:18-3 + " PS1.18: 3% PS1:18-3 + " PS1.18: 24% PS1:18-7 + " PS1.18: 76% PS1:18-22 + " PS1.18: 88% PS1:18-27 +motion[s], character USD.15: 29% USD:15-8 +motion[s], cursor CURSES.3X: 2% CURSES(3X)-1 + " TERMCAP.5: 36% TERMCAP(5)-6 + " TERMCAP.5: 36% TERMCAP(5)-6 + " TERMCAP.5: 37% TERMCAP(5)-6 + " TERMCAP.5: 47% TERMCAP(5)-8 + " TERMCAP.5: 55% TERMCAP(5)-9 + " TERMCAP.5: 55% TERMCAP(5)-9 +motions, half-line COL.1: 25% COL(1)-1 +motion[s], horizontal USD.24: 54% USD:24-18 + " USD.24: 59% USD:24-19 + " USD.24: 63% USD:24-20 + " USD.25: 36% USD:25-6 + " USD.25: 41% USD:25-7 + " USD.25: 72% USD:25-11 +Motion[s], Local USD.24: 63% USD:24-20 + " USD.24: 0% USD:24-2 + " USD.25: 32% USD:25-5 + " USD.27: 77% USD:27-8 +motion[s], reverse line COL.1: 42% COL(1)-1 + " MS.7: 5% MS(7)-1 + " USD.26: 92% USD:26-7 +motion[s], vertical GETTYTAB.5: 24% GETTYTAB(5)-1 + " USD.24: 66% USD:24-21 + " USD.25: 34% USD:25-6 + " USD.25: 35% USD:25-6 + " USD.25: 36% USD:25-6 + " USD.25: 41% USD:25-7 + " USD.26: 13% USD:26-2 + " USD.27: 22% USD:27-3 + " USD.27: 49% USD:27-6 +motion up or down the page USD.25: 34% USD:25-6 +Mount[s] MTAB.5: 23% unknown + " SMM.12A: 89% SMM:12-21 +mount(blkdev, dir, ronly) PS1.06: 47% PS1:6-23 +mount, umount - mount and dismount file system MOUNT.8: 3% MOUNT(8)-1 +mount, umount - mount or remove file system MOUNT.2: 1% MOUNT(2)-1 +mount point SMM.13: 30% SMM:13-11 + " UNLINK.2: 81% UNLINK(2)-1 + " SMM.12A: 89% SMM:12-21 +mount table MOUNT.2: 65% MOUNT(2)-2 + " MOUNT.2: 89% MOUNT(2)-2 +mountable file system[s] SMM.02: 89% SMM:2-31 + " SMM.02: 94% SMM:2-32 + " MOUNT.2: 37% MOUNT(2)-1 + " MOUNT.2: 38% MOUNT(2)-1 + " MOUNT.8: 24% MOUNT(8)-1 + " SETQUOTA.2: 14% SETQUOTA(2)-1 + " SMM.01: 24% SMM:1-17 + " SMM.05: 21% SMM:5-5 + " SMM.05: 21% SMM:5-5 + " UNLINK.2: 82% UNLINK(2)-1 + " SMM.12A: 89% SMM:12-21 +mounted device[s], table of MOUNT.8: 62% MOUNT(8)-1 +mounted file system PS1.06: 72% PS1:6-32 + " PS2.05: 4% PS2:5-1 + " PS2.10: 54% PS2:10-47 +mouse event[s] TCP.4P: 60% TCP(4P)-1 +mout - multiple precision integer arithmetic MP.3X: 4% MP(3X)-1 +Move[s] PLOT.3F: 29% PLOT(3F)-1 + " PLOT.3X: 14% PLOT(3X)-1 +Move - multiple precision integer arithmetic MP.3X: 3% MP(3X)-1 +move command[s] USD.12: 75% USD:12-8 + " USD.13: 83% USD:13-14 + " USD.14: 52% USD:14-13 + " USD.14: 52% USD:14-13 + " USD.14: 54% USD:14-14 + " USD.14: 54% USD:14-14 + " USD.14: 54% USD:14-14 + " ED.1: 59% CONS(4)-1 + " USD.16: 42% USD:16-8 +Move the cursor of the current window WINDOW.1: 38% WINDOW(1)-3 +Move window WINDOW.1: 78% WINDOW(1)-6 + " WINDOW.1: 35% WINDOW(1)-3 +move() PS1.18: 11% PS1:18-4 + " PS1.18: 18% PS1:18-6 +move(y, x) PS1.18: 39% PS1:18-11 +movement commands in vi USD.15: 19% USD:15-6 +movement of line[s] USD.16: 46% USD:16-9 +Moving around in the buffer USD.14: 64% USD:14-16 +Moving around on the screen USD.15: 15% USD:15-5 +movement optimization[s] PS1.18: 2% PS1:18-3 + " PS1.18: 28% PS1:18-7 +moving file[s] USD.01: 36% USD:1-6 + " MV.1: 13% MV(1)-1 +Moving file system data SMM.01: 77% SMM:1-47 +moving line[s] USD.13: 87% USD:13-14 + " USD.13: 89% USD:13-15 + " USD.13: 82% USD:13-14 +moving subtrees of file[s] TAR.1: 60% TAR(1)-1 +Moving text USD.12: 75% USD:12-8 + " USD.14: 51% USD:14-13 + " USD.17: 17% USD:17-8 +Moving the Cursor USD.17: 8% USD:17-4 +Moving within a line USD.15: 17% USD:15-5 +MRSP prom[s] SMM.01: 99% SMM:1-65 + " SMM.01: 99% SMM:1-65 + " TU.4: 5% TU(4)-1 + " TU.4: 33% TU(4)-1 + " TU.4: 36% TU(4)-1 + " TU.4: 38% TU(4)-1 + " TU.4: 48% TU(4)-1 + " TU.4: 54% TU(4)-1 + " TU.4: 93% TU(4)-1 +mprotect(addr, len, prot) PS1.06: 19% PS1:6-11 +ms - text formatting macro[s] MS.7: 0% MS(7)-1 +MS macro[s] USD.21: 1% USD:21-1 + " USD.21: 11% USD:21-1 + " USD.21: 11% USD:21-1 + " USD.21: 75% USD:21-3 + " USD.28: 49% USD:28-7 + " BIB.N: 78% BIB(1)-2 + " VGRIND.1: 97% unknown +ms macro[s], list of MS.7: 17% MS(7)-1 +ms macros, tutorial USD.01: 68% USD:1-10 +MS780-E memory controller SMM.13: 1% SMM:13-2 +mset - retrieve ASCII to IBM 3270 keyboard map MSET.1: 2% MSET(1)-1 +MSG[s] SMM.12A: 40% SMM:12-9 +mset(sem, wait) PS1.06: 21% PS1:6-12 +msg[s], /usr/msgs for current SMM.01: 27% SMM:1-19 +msghdr, struct PS1.06: 82% PS1:6-35 + " PS1.06: 83% PS1:6-36 + " PS1.06: 83% PS1:6-36 +MSG_DONTROUTE PS1.08: 20% PS1:8-8 +MSG_OOB flag PS1.08: 60% PS1:8-24 + " PS1.08: 61% PS1:8-24 + " PS1.08: 63% PS1:8-25 + " PS1.08: 20% PS1:8-8 + " PS1.07a: 85% PS1:7-22 + " PS1.07a: 92% PS1:7-23 + " PS1.08: 60% PS1:8-24 + " PS1.08: 62% PS1:8-25 +MSG_PEEK PS1.08: 20% PS1:8-8 +msgs, startup file for HIER.7: 77% HIER(7)-5 +Msg-Protect INC.N: 16% INC(1)-1 + " USD.08: 8% USD:8-6 + " USD.08: 23% USD:8-26 + " USD.08: 45% USD:8-54 + " USD.08: 70% USD:8-86 +msgchk - check for message[s] MSGCHK.N: 5% MSGCHK(1)-1 +msgs - system messages and junk mail program MSGS.1: 1% MSGS(1)-1 +msgs program SMM.16: 43% SMM:16-6 +msgsrc MSGS.1: 41% MSGS(1)-1 +msh - MH shell (and BBoard reader) MSH.N: 0% MSH(1)-1 + " USD.08: 36% USD:8-42 +msleep(sem) PS1.06: 22% PS1:6-12 +msqrt - multiple precision integer arithmetic MP.3X: 3% MP(3X)-1 +msub - multiple precision integer arithmetic MP.3X: 1% MP(3X)-1 +msync(addr, len) PS1.06: 18% PS1:6-11 +mt - magnetic tape manipulating program MT.1: 3% MT(1)-1 +mt - TM78/TU-78 MASSBUS magtape interface MT.4: 2% MT(4)-1 +mtab - mounted file system table MTAB.5: 5% unknown +mtio - UNIX magtape interface MTIO.4: 0% MTIO(4)-1 +MTIOCGET RMT.8C: 81% RMT(8C)-1 +MTIOCOP RMT.8C: 69% unknown +mult - multiple precision integer arithmetic MP.3X: 2% MP(3X)-1 +multi-column format[s] USD.20: 21% USD:20-2 +multi-column output PR.1: 38% PR(1)-1 +Multi-line Global Command[s] USD.13: 63% USD:13-11 +multi-file program[s] PS1.01: 76% PS1:1-26 + " PS1.04: 78% PS1:4-40 + " PS1.04: 88% PS1:4-45 +multi-line comment[s] PS1.04: 76% PS1:4-39 + " PS1.04: 77% PS1:4-39 + " PS1.13: 64% PS1:13-13 +multi-page boxed table USD.28: 11% USD:28-2 +multi-page boxed table with a repeated heading USD.28: 49% USD:28-7 +multi-user SMM.01: 52% SMM:1-33 +multi-user operation[s] INIT.8: 7% INIT(8)-1 + " INIT.8: 21% INIT(8)-1 + " INIT.8: 57% INIT(8)-1 + " INIT.8: 71% INIT(8)-1 + " REBOOT.2: 63% REBOOT(2)-1 + " REBOOT.8: 22% REBOOT(8)-1 +Multics SMM.14: 8% SMM:14-2 + " SMM.14: 86% SMM:14-13 + " USD.10: 80% USD:10-10 + " USD.10: 80% USD:10-10 +MULTICAST SMM.10: 19% SMM:10-6 + " SMM.10: 91% SMM:10-23 + " SMM.10: 93% SMM:10-23 + " SMM.10: 94% SMM:10-23 + " SMM.10: 98% SMM:10-24 + " SMM.10: 98% SMM:10-24 + " SMM.10: 99% SMM:10-24 +multicast name SMM.10: 91% SMM:10-23 + " SMM.10: 92% SMM:10-23 + " SMM.10: 92% SMM:10-23 + " SMM.10: 93% SMM:10-23 +multicast system[s] SMM.10: 97% SMM:10-24 + " SMM.10: 97% SMM:10-24 + " SMM.10: 99% SMM:10-24 +multicast system name[s] SMM.10: 92% SMM:10-23 + " SMM.10: 93% SMM:10-23 + " SMM.10: 93% SMM:10-23 + " SMM.10: 99% SMM:10-24 +multicolumn output USD.22: 49% USD:22-9 + " COL.1: 18% COL(1)-1 +multidimensional array[s] F77.1: 53% F77(1)-2 + " PS1.01: 45% PS1:1-15 + " PS1.01: 46% PS1:1-15 + " PS1.01: 86% PS1:1-30 + " PS1.02: 7% PS1:2-5 +multiple blank line[s] MORE.1: 27% MORE(1)-1 +Multiple buffer[s] USD.17: 35% USD:17-16 +multiple column output USD.24: 89% USD:24-29 + " USD.24: 0% USD:24-2 +Multiple commands per line USD.16: 21% USD:16-4 +multiple file[s] USD.16: 9% USD:16-2 +Multiple Master Notification Message SMM.22: 57% SMM:22-6 +multiple names for a file PS1.06: 66% PS1:6-30 +multiple precision integer arithmetic MP.3X: 6% MP(3X)-1 +Multiple swap/paging area[s] SMM.02: 80% SMM:2-26 +Multiple Windows and Multiple Buffer[s] USD.17: 42% USD:17-18 +multiple revision[s] PS1.13: 1% PS1:13-1 +multiple signal[s] PS1.06: 23% PS1:6-13 +multiple urgent signal[s] PS1.08: 62% PS1:8-24 +multiplexing, Input/Output PS1.08: 25% PS1:8-9 +multiplexing, select - synchronous I/O SELECT.2: 1% SELECT(2)-1 +multiplexing, synchronous PS1.08: 29% PS1:8-10 +multiplexing of operation[s] PS1.06: 38% PS1:6-18 +Multiplicative Operators PS1.01: 18% PS1:1-6 + " PS1.01: 28% PS1:1-9 + " PS1.01: 28% PS1:1-9 +multiplexor[s], terminal DMF.4: 2% DMF(4)-1 + " SMM.01: 51% SMM:1-32 + " SMM.13: 14% SMM:13-6 + " SMM.13: 15% SMM:13-6 +multiuser operation FSCK.8: 44% FSCK(8)-1 +munmap(addr) PS1.06: 19% PS1:6-11 +mv - move or rename file[s] MV.1: 3% MV(1)-1 +MYDOMAIN SMM.10: 15% SMM:10-4 + " SMM.10: 15% SMM:10-4 + " SMM.10: 16% SMM:10-4 +m_in - multiple precision integer arithmetic MP.3X: 4% MP(3X)-1 +m_out - multiple precision integer arithmetic MP.3X: 5% MP(3X)-1 +mvaddch() PS1.18: 19% PS1:18-6 +mvcur() PS1.18: 30% PS1:18-8 +mvcur(lasty, lastx, newy, newx) PS1.18: 58% PS1:18-17 +mvwin(win, y, x) PS1.18: 53% PS1:18-15 +mwakeup(sem) PS1.06: 22% PS1:6-12 +NAG library PS1.02: 39% PS1:2-13 +name[s], author REFER.1: 25% REFER(1)-1 + " REFER.1: 27% REFER(1)-1 + " USD.11: 58% USD:11-9 + " USD.29: 51% USD:29-5 + " USD.30: 98% USD:30-12 +name, base USD.04: 78% USD:4-37 + " USD.30: 36% USD:30-4 +name, buffer USD.15: 34% USD:15-10 + " USD.15: 48% USD:15-14 + " USD.15: 93% USD:15-26 + " USD.16: 62% USD:16-12 + " USD.17: 37% USD:17-16 + " USD.17: 43% USD:17-19 + " USD.17: 75% USD:17-35 + " USD.17: 81% USD:17-38 + " USD.17: 91% USD:17-44 +name[s], command CSH.1: 30% CSH(1)-6 + " CSH.1: 35% CSH(1)-7 + " CSH.1: 89% CSH(1)-18 + " GETARG.3F: 62% GETARG(3F)-1 + " LASTCOMM.1: 56% LASTCOMM(1)-1 + " PS.1: 26% PS(1)-1 + " SA.8: 43% SA(8)-1 + " SH.1: 3% SH(1)-1 + " SH.1: 61% SH(1)-4 + " SH.1: 65% SH(1)-4 + " USD.01: 10% USD:1-2 + " USD.03: 41% USD:3-10 + " USD.04: 38% USD:4-17 + " USD.15: 82% USD:15-23 + " USD.25: 39% USD:25-6 +name[s], destination SMM.09: 8% SMM:9-3 +name[s], device FSTAB.5: 84% FSTAB(5)-1 + " SMM.02: 26% SMM:2-8 + " SMM.02: 27% SMM:2-8 + " SMM.02: 27% SMM:2-8 + " SMM.02: 27% SMM:2-8 + " SMM.02: 27% SMM:2-8 + " SMM.02: 28% SMM:2-8 + " SMM.02: 31% SMM:2-9 + " SMM.02: 52% SMM:2-16 + " SMM.09: 25% SMM:9-6 + " TOPEN.3F: 29% TOPEN(3F)-1 + " WHO.1: 74% WHO(1)-1 + " SMM.12A: 89% SMM:12-21 +name[s], directory INTRO.2: 80% INTRO(2)-6 + " RESTORE.8: 4% RESTORE(8)-1 + " RESTORE.8: 5% RESTORE(8)-1 + " TAR.5: 55% TAR(5)-1 + " USD.03: 40% USD:3-10 + " USD.04: 27% USD:4-12 + " USD.04: 75% USD:4-37 +name[s], domain MAILADDR.7: 17% MAILADDR(7)-1 + " MAILADDR.7: 37% MAILADDR(7)-2 + " NAMED.8: 31% NAMED(8)-1 + " NAMED.8: 52% NAMED(8)-1 + " NAMED.8: 53% NAMED(8)-1 + " RESOLVER.3: 63% RESOLVER(3)-2 + " RESOLVER.3: 64% RESOLVER(3)-2 + " RESOLVER.3: 75% RESOLVER(3)-2 + " RESOLVER.5: 29% RESOLVER(5)-1 + " RESOLVER.5: 66% RESOLVER(5)-1 + " SMM.01: 33% SMM:1-22 + " SMM.01: 54% SMM:1-34 + " SMM.11: 23% SMM:11-3 + " SMM.11: 44% SMM:11-6 + " SMM.11: 96% SMM:11-16 + " SMM.11: 97% SMM:11-16 + " SMM.07A: 41% SMM:07-19 + " SMM.07A: 60% SMM:07-26 +name[s], environment GETENV.3: 16% GETENV(3)-1 + " IOINIT.3F: 95% IOINIT(3F)-2 + " USD.25: 82% USD:25-12 +Name, File INTRO.2: 77% INTRO(2)-6 +name[s], file PS1.18: 86% PS1:18-26 +name[s], nonterminal PS1.15: 11% PS1:15-3 + " PS1.15: 66% PS1:15-19 + " PS1.15: 76% PS1:15-22 +name[s], path PS1.06: 57% PS1:6-27 +name, RCS file PS1.13: 22% PS1:13-5 + " PS1.13: 38% PS1:13-8 + " PS1.13: 51% PS1:13-10 + " PS1.13: 51% PS1:13-10 + " PS1.13: 70% PS1:13-14 + " PS1.13: 73% PS1:13-15 + " PS1.13: 84% PS1:13-19 + " PS1.13: 89% PS1:13-20 + " PS1.13: 90% PS1:13-20 + " PS1.13: 90% PS1:13-20 +name[s], relation PS2.10: 10% PS2:10-13 + " PS2.10: 48% PS2:10-41 + " PS2.10: 51% PS2:10-45 + " PS2.10: 52% PS2:10-46 + " PS2.10: 74% PS2:10-65 +name[s], service PS1.08: 31% PS1:8-11 + " PS1.08: 36% PS1:8-14 + " PS1.08: 37% PS1:8-14 +name[s], Socket PS1.06: 86% PS1:6-37 + " PS1.07a: 54% PS1:7-12 + " PS1.07a: 71% PS1:7-16 + " PS1.07a: 74% PS1:7-18 +name, socket's bound PS1.06: 78% PS1:6-34 +name[s], symbol PS1.05: 78% PS1:5-11 + " PS1.10: 66% PS1:10-13 + " PS2.09: 50% PS2:9-89 +name[s], token PS1.15: 10% PS1:15-3 + " PS1.15: 23% PS1:15-7 + " PS1.15: 23% PS1:15-7 + " PS1.15: 24% PS1:15-7 + " PS1.15: 52% PS1:15-15 + " PS1.15: 52% PS1:15-15 + " PS1.15: 56% PS1:15-16 + " PS1.15: 66% PS1:15-19 +name space[s] PS1.07a: 41% PS1:7-10 + " PS1.08: 2% PS1:8-2 +named PS1.08: 32% PS1:8-11 +Namelist I/O PS1.02: 24% PS1:2-9 + " PS1.02: 24% PS1:2-9 + " PS1.02: 24% PS1:2-9 + " PS1.02: 24% PS1:2-9 + " PS1.02: 28% PS1:2-10 + " PS1.03: 9% PS1:3-3 + " PS1.03: 12% PS1:3-3 + " PS1.03: 14% PS1:3-3 + " PS1.03: 59% PS1:3-7 + " PS1.03: 59% PS1:3-7 +namelist name PS1.02: 25% PS1:2-9 + " PS1.02: 25% PS1:2-9 + " PS1.02: 29% PS1:2-10 + " PS1.03: 11% PS1:3-3 + " PS1.03: 79% PS1:3-10 +Names in the UNIX domain PS1.07a: 40% PS1:7-10 + " PS1.07a: 42% PS1:7-10 + " PS1.07a: 51% PS1:7-11 +names, generic INTRO.3F: 12% INTRO(3F)-1 + " INTRO.3F: 13% INTRO(3F)-1 +name[s], group CHGRP.1: 30% CHGRP(1)-1 + " CHOWN.8: 41% CHOWN(8)-1 + " FIND.1: 39% FIND(1)-1 + " GROUP.5: 18% GROUP(5)-1 + " MAIL.1: 61% MAIL(1)-4 +name[s], host GETHOSTNAME.2: 23% GETHOSTNAME(2)- + " GETHOSTNAME.2: 89% GETHOSTNAME(2)- + " HOSTS.5: 82% HOSTS(5)-1 + " IFCONFIG.8C: 18% IFCONFIG(8C)-1 + " LPD.8: 44% LPD(8)-1 + " PRINTCAP.5: 75% PRINTCAP(5)-2 + " RESOLVER.5: 78% RESOLVER(5)-1 + " RLOGIN.1C: 17% RLOGIN(1C)-1 + " ROUTE.8C: 48% ROUTE(8C)-1 + " RSH.1C: 58% RSH(1C)-1 + " RSH.1C: 66% RSH(1C)-1 + " RSHD.8C: 26% RSHD(8C)-1 + " RSHD.8C: 51% RSHD(8C)-1 + " RUPTIME.1C: 66% RUPTIME(1C)-1 + " SMM.01: 32% SMM:1-21 + " SMM.01: 33% SMM:1-22 + " SMM.01: 70% SMM:1-42 + " SMM.01: 70% SMM:1-42 + " SMM.01: 70% SMM:1-42 + " SMM.01: 71% SMM:1-42 + " SMM.06: 65% SMM:6-5 + " SMM.13: 7% SMM:13-4 + " SMM.13: 66% SMM:13-23 + " SMM.16: 3% SMM:16-1 + " SMM.16: 30% SMM:16-4 + " SMM.07A: 47% SMM:07-21 + " SMM.07A: 55% SMM:07-24 + " SMM.07A: 75% SMM:07-32 + " SMM.12A: 92% SMM:12-22 + " SMM.12A: 94% SMM:12-22 +name, job CSH.1: 8% CSH(1)-2 + " LPD.8: 38% LPD(8)-1 + " LPD.8: 39% LPD(8)-1 + " LPR.1: 49% LPR(1)-1 +name[s], journal USD.31: 32% USD:31-5 + " USD.31: 35% USD:31-5 + " USD.31: 89% USD:31-16 +names, list of -me macros, strings, register USD.23: 75% unknown +name[s], list of -ms macros and register USD.20: 89% USD:20-7 +name, login (see instead login name) CO.N: 67% CO(1)-2 +name[s], Long file SMM.14: 75% SMM:14-11 +name[s], machine FTP.1C: 91% FTP(1C)-7 + " L_ALIASES.5: 24% L.ALIASES(5)-1 + " RCMD.3: 73% RCMD(3)-1 + " RSHD.8C: 55% RSHD(8C)-1 + " SMM.11: 44% SMM:11-6 + " SMM.11: 53% SMM:11-7 + " SMM.11: 55% SMM:11-8 + " SMM.11: 86% SMM:11-14 + " SMM.12A: 90% SMM:12-21 +name[s], macro M4.1: 19% M4(1)-1 + " USD.22: 82% USD:22-15 +name[s], Macro and string USD.24: 42% USD:24-14 +name[s], mark USD.13: 87% USD:13-14 + " USD.13: 88% USD:13-14 +name[s], message FOLDER.N: 54% FOLDER(1)-2 + " MARK.N: 10% MARK(1)-1 + " MARK.N: 12% MARK(1)-1 + " MARK.N: 77% MARK(1)-1 + " MHL.N: 74% MHL(1)-3 + " MHPATH.N: 20% MHPATH(1)-1 + " MHPATH.N: 35% MHPATH(1)-1 + " MHPATH.N: 37% MHPATH(1)-1 + " USD.08: 10% USD:8-9 + " USD.08: 10% USD:8-9 + " USD.08: 10% USD:8-9 + " USD.08: 10% USD:8-9 + " USD.08: 10% USD:8-9 + " USD.08: 10% USD:8-10 + " USD.08: 20% USD:8-21 + " USD.08: 25% USD:8-28 + " USD.08: 25% USD:8-28 + " USD.08: 26% USD:8-28 + " USD.08: 29% USD:8-32 + " USD.08: 35% USD:8-39 + " USD.08: 35% USD:8-39 + " USD.08: 35% USD:8-39 + " USD.08: 79% USD:8-98 +name, multicast SMM.10: 91% SMM:10-23 + " SMM.10: 92% SMM:10-23 + " SMM.10: 92% SMM:10-23 + " SMM.10: 93% SMM:10-23 +name[s], multicast system SMM.10: 92% SMM:10-23 + " SMM.10: 93% SMM:10-23 + " SMM.10: 93% SMM:10-23 + " SMM.10: 99% SMM:10-24 +name[s], network L_SYS.5: 62% L.SYS(5)-3 + " NETWORKS.5: 77% NETWORKS(5)-1 + " ROUTE.8C: 64% ROUTE(8C)-1 + " SMM.09: 72% SMM:9-15 + " TIMED.8: 73% TIMED(8)-1 + " TIMED.8: 83% TIMED(8)-1 +name[s], newsgroup SMM.10: 28% SMM:10-8 + " SMM.10: 29% SMM:10-8 + " SMM.10: 36% SMM:10-10 + " SMM.10: 52% SMM:10-14 + " SMM.10: 60% SMM:10-16 + " SMM.10: 60% SMM:10-16 + " USD.09: 58% USD:9-7 + " USD.10: 94% USD:10-11 +name[s], notesfile USD.11: 14% USD:11-2 + " USD.11: 15% USD:11-2 + " USD.11: 16% USD:11-3 + " USD.11: 16% USD:11-3 + " USD.11: 11% USD:11-2 +name[s], option MAIL.1: 62% MAIL(1)-4 + " SMM.15: 64% SMM:15-19 + " USD.16: 51% USD:16-10 + " USD.28: 9% USD:28-2 +name, personal POST.N: 74% POST(8)-1 + " SEND.N: 52% SEND(1)-1 + " USD.08: 54% USD:8-64 + " USD.08: 78% USD:8-96 +name[s], port L_SYS.5: 51% L.SYS(5)-2 + " SMM.09: 70% SMM:9-15 + " SYSTAT.1: 95% SYSTAT(1)-5 +name[s], protocol GETSERVENT.3N: 79% GETSERVENT(3N)- + " PROTOCOLS.5: 66% PROTOCOLS(5)-1 + " SERVICES.5: 45% SERVICES(5)-1 +name, real ADDUSER.8: 35% ADDUSER(8)-1 + " ADDUSER.8: 40% ADDUSER(8)-1 + " PASSWD.5: 19% PASSWD(5)-1 +name[s], register ADB.1: 20% ADB(1)-2 + " ADB.1: 21% ADB(1)-2 + " ADB.1: 22% ADB(1)-2 + " SMM.19: 9% SMM:19-3 + " SMM.19: 50% SMM:19-14 + " USD.20: 94% USD:20-7 + " USD.20: 94% USD:20-7 + " USD.24: 52% USD:24-17 +name, routine GPROF.1: 48% GPROF(1)-1 + " GPROF.1: 53% GPROF(1)-1 + " GPROF.1: 56% GPROF(1)-1 +name, sequence MH-PROFILE.N: 9% MH-PROFILE(5)-1 + " USD.08: 25% USD:8-28 + " USD.08: 69% USD:8-85 + " USD.08: 82% USD:8-101 +name[s], service INETD.8: 31% INETD(8)-1 + " SERVICES.5: 71% SERVICES(5)-1 + " SMM.01: 68% SMM:1-41 + " SERVICES.5: 30% SERVICES(5)-1 +name[s], signal CSH.1: 60% CSH(1)-12 + " KILL.1: 16% KILL(1)-1 + " KILL.1: 25% KILL(1)-1 + " PSIGNAL.3: 56% PSIGNAL(3)-1 + " PSIGNAL.3: 70% PSIGNAL(3)-1 +name[s], site SMM.01: 54% SMM:1-34 + " SMM.01: 54% SMM:1-34 + " SMM.01: 59% SMM:1-36 + " SMM.10: 15% SMM:10-4 + " ALI.N: 95% ALI(1)-1 + " MH-PROFILE.N: 29% MH-PROFILE(5)-2 + " USD.08: 13% USD:8-12 + " USD.08: 70% USD:8-86 +name[s], symbol A_OUT.5: 76% A.OUT(5)-3 + " NM.1: 30% NM(1)-1 + " SMM.19: 11% SMM:19-4 +name[s], tag USD.16: 56% USD:16-11 + " USD.16: 98% USD:16-19 + " USD.17: 43% USD:17-19 +name[s], target MAKE.1: 3% MAKE(1)-1 + " MAKE.1: 49% MAKE(1)-2 + " MAKE.1: 49% MAKE(1)-2 + " SMM.14: 90% SMM:14-13 +name[s], terminal FINGER.1: 9% FINGER(1)-1 + " FINGER.1: 11% FINGER(1)-1 + " SMM.01: 51% SMM:1-32 + " SMM.01: 53% SMM:1-33 + " SMM.20: 60% SMM:20-5 + " TABS.1: 38% TABS(1)-1 + " TALK.1: 31% TALK(1)-1 + " TERM.7: 9% TERM(7)-1 + " TERMCAP.3X: 21% TERMCAP(3X)-1 + " TERMCAP.3X: 28% TERMCAP(3X)-1 + " TERMCAP.5: 2% TERMCAP(5)-1 + " TERMCAP.5: 2% TERMCAP(5)-1 + " TTY.1: 14% TTY(1)-1 + " USD.04: 92% USD:4-42 + " WHO.1: 17% WHO(1)-1 + " WHO.1: 56% WHO(1)-1 + " WRITE.1: 43% WRITE(1)-1 + " SMM.12A: 86% SMM:12-20 +name[s], token YACC.1: 56% YACC(1)-1 +name[s], tty GETTYTAB.5: 68% GETTYTAB(5)-2 + " SMM.01: 53% SMM:1-33 +name[s], typedef SMM.19: 23% SMM:19-7 +name[s], UUCP L_SYS.5: 62% L.SYS(5)-3 + " SMM.09: 72% SMM:9-15 + " SMM.10: 6% SMM:10-2 + " SMM.10: 18% SMM:10-5 + " UUNAME.1C: 39% UUNAME(1C)-1 +name cache SMM.13: 30% SMM:13-11 + " SMM.13: 30% SMM:13-11 + " SMM.13: 31% SMM:13-11 + " SMM.13: 32% SMM:13-12 + " SMM.13: 33% SMM:13-12 + " SMM.12A: 53% SMM:12-12 +name cache reference[s] SMM.13: 27% SMM:13-10 + " SMM.13: 27% SMM:13-10 + " SMM.13: 29% SMM:13-11 +name domain server SMM.12A: 3% SMM:12-2 +name field DIR.5: 70% DIR(5)-1 + " SMM.11: 41% SMM:11-6 + " SMM.11: 42% SMM:11-6 + " SMM.11: 42% SMM:11-6 + " SMM.11: 53% SMM:11-7 + " SMM.11: 61% SMM:11-8 + " USD.31: 17% USD:31-3 + " USD.31: 78% USD:31-13 + " WINDOW.1: 98% WINDOW(1)-7 +Name Formatting USD.31: 70% USD:31-12 +name list[s] NLIST.3: 6% NLIST(3)-1 + " NLIST.3: 19% NLIST(3)-1 + " NLIST.3: 28% NLIST(3)-1 + " NLIST.3: 41% NLIST(3)-1 + " NM.1: 12% NM(1)-1 + " USD.24: 42% USD:24-14 + " USD.24: 50% USD:24-16 + " SMM.12A: 48% SMM:12-11 + " NM.1: 4% NM(1)-1 +name list, symorder - rearrange SYMORDER.1: 8% SYMORDER(1)-1 +name list database SMM.01: 36% SMM:1-23 +Name of a File, Changing the USD.13: 66% USD:13-12 +name server[s] GETHOSTBYNAME.3N: 17% GETHOSTBYNAME(3) + " GETHOSTBYNAME.3N: 19% GETHOSTBYNAME(3) + " GETHOSTBYNAME.3N: 29% GETHOSTBYNAME(3) + " GETHOSTBYNAME.3N: 50% GETHOSTBYNAME(3) + " GETHOSTBYNAME.3N: 77% GETHOSTBYNAME(3) + " GETHOSTBYNAME.3N: 85% GETHOSTBYNAME(3) + " HOSTS.5: 32% HOSTS(5)-1 + " HOSTS.5: 36% HOSTS(5)-1 + " HOSTS.5: 38% HOSTS(5)-1 + " HOSTS.5: 69% HOSTS(5)-1 + " NAMED.8: 17% NAMED(8)-1 + " NAMED.8: 19% NAMED(8)-1 + " NAMED.8: 37% NAMED(8)-1 + " RESOLVER.3: 47% RESOLVER(3)-2 + " RESOLVER.3: 53% RESOLVER(3)-2 + " RESOLVER.3: 71% RESOLVER(3)-2 + " RESOLVER.5: 25% RESOLVER(5)-1 + " RESOLVER.5: 52% RESOLVER(5)-1 + " RESOLVER.5: 56% RESOLVER(5)-1 + " RESOLVER.5: 59% RESOLVER(5)-1 + " RESOLVER.5: 62% RESOLVER(5)-1 + " SMM.01: 32% SMM:1-22 + " SMM.01: 32% SMM:1-22 + " SMM.01: 32% SMM:1-22 + " SMM.01: 32% SMM:1-22 + " SMM.01: 33% SMM:1-22 + " SMM.01: 33% SMM:1-22 + " SMM.01: 54% SMM:1-34 + " SMM.01: 70% SMM:1-42 + " SMM.01: 70% SMM:1-42 + " SMM.01: 71% SMM:1-42 + " SMM.11: 1% SMM:11-2 + " SMM.11: 2% SMM:11-2 + " SMM.11: 4% SMM:11-2 + " SMM.11: 5% SMM:11-2 + " SMM.11: 7% SMM:11-2 + " SMM.11: 8% SMM:11-2 + " SMM.11: 8% SMM:11-2 + " SMM.11: 9% SMM:11-2 + " SMM.11: 11% SMM:11-2 + " SMM.11: 19% SMM:11-3 + " SMM.11: 19% SMM:11-3 + " SMM.11: 20% SMM:11-3 + " SMM.11: 29% SMM:11-4 + " SMM.11: 32% SMM:11-5 + " SMM.11: 41% SMM:11-6 + " SMM.11: 49% SMM:11-7 + " SMM.11: 50% SMM:11-7 + " SMM.11: 52% SMM:11-7 + " SMM.11: 52% SMM:11-7 + " SMM.11: 70% SMM:11-10 + " SMM.11: 84% SMM:11-13 + " SMM.16: 83% SMM:16-11 + " SMM.07A: 3% SMM:07-4 + " SMM.07A: 3% SMM:07-4 + " SMM.07A: 4% SMM:07-4 + " SMM.12A: 3% SMM:12-2 + " SMM.12A: 64% SMM:12-15 + " SMM.12A: 64% SMM:12-15 + " SMM.12A: 65% SMM:12-15 + " SMM.12A: 65% SMM:12-15 + " SMM.12A: 65% SMM:12-15 + " SMM.12A: 94% SMM:12-22 +name server address RESOLVER.3: 27% RESOLVER(3)-1 +name space[s] BIND.2: 14% BIND(2)-1 +name translation[s] SMM.13: 30% SMM:13-11 + " SMM.13: 30% SMM:13-11 + " SYSTAT.1: 44% SYSTAT(1)-2 +name translation cache SMM.13: 16% SMM:13-6 + " SMM.13: 27% SMM:13-10 + " SYSTAT.1: 45% SYSTAT(1)-2 +name-keyboard-macro USD.17: 81% USD:17-39 +named SMM.12A: 89% SMM:12-21 +named - Internet domain name server NAMED.8: 1% NAMED(8)-1 +named buffer[s] USD.15: 34% USD:15-10 + " USD.16: 9% USD:16-2 +named master file format NAMED.8: 47% NAMED(8)-1 +namei name lookup function SMM.13: 1% SMM:13-2 +Namelist I/O SMM.12A: 30% SMM:12-7 +nameserver HTABLE.8: 21% HTABLE(8)-1 +naming, Socket PS1.06: 87% PS1:6-37 +naming, device SMM.01: 5% SMM:1-4 +Naming, Message USD.08: 7% USD:8-6 + " USD.08: 10% USD:8-9 +NaN INFNAN.3M: 10% INFNAN(3M)-1 +natural logarithm EXP.3M: 12% EXP(3M)-1 + " USD.19: 46% USD:19-4 +Natural Sciences format USD.29: 48% USD:29-5 +Navy Fortran Compiler Validation System SMM.12A: 17% SMM:12-5 +ncheck - generate names from i-number[s] NCHECK.8: 4% NCHECK(8)-1 +ndbm DBM.3X: 15% DBM(3X)-1 + " SMM.12A: 68% SMM:12-16 + " NDBM.3: 5% NDBM(3)-1 +ndefine USD.27: 76% USD:27-8 +need vertical space USD.24: 31% USD:24-11 +NEQN USD.27: 76% USD:27-8 + " USD.27: 76% USD:27-8 + " USD.27: 77% USD:27-8 + " USD.27: 95% USD:27-10 + " USD.27: 96% USD:27-10 + " USD.27: 8% USD:27-1 +nesting level PS1.05: 79% PS1:5-11 + " PS2.06: 73% PS2:6-25 +netrc FILE FTP.1C: 90% FTP(1C)-7 + " FTP.1C: 90% FTP(1C)-7 + " FTP.1C: 91% FTP(1C)-7 + " FTP.1C: 94% FTP(1C)-7 + " REXEC.3: 28% REXEC(3)-1 + " SMM.12A: 33% SMM:12-8 +netstat SYSTAT.1: 7% SYSTAT(1)-1 + " TRPT.8C: 60% TRPT(8C)-1 + " SMM.01: 66% SMM:1-40 + " SMM.12A: 41% SMM:12-9 +netstat - show network status NETSTAT.1: 1% NETSTAT(1)-1 +netstat Display SYSTAT.1: 65% SYSTAT(1)-3 + " SYSTAT.1: 82% SYSTAT(1)-4 + " SYSTAT.1: 85% SYSTAT(1)-4 +Network[s] MAILADDR.7: 71% MAILADDR(7)-2 +network addresses PS1.07a: 48% PS1:7-11 + " PS1.07a: 49% PS1:7-11 + " PS1.07a: 49% PS1:7-11 + " PS1.07a: 56% PS1:7-13 + " PS1.08: 29% PS1:8-11 + " PS1.08: 30% PS1:8-11 + " PS1.08: 38% PS1:8-14 + " PS1.08: 39% PS1:8-15 + " PS1.08: 77% PS1:8-31 +network byte order PS1.08: 31% PS1:8-11 + " PS1.08: 37% PS1:8-14 + " PS1.08: 40% PS1:8-15 +network configuration PS1.08: 78% PS1:8-32 +NETWORK LIBRARY ROUTINE[s] PS1.08: 29% PS1:8-11 +network name[s] PS1.08: 35% PS1:8-13 +network number[s] PS1.08: 34% PS1:8-13 + " PS1.08: 35% PS1:8-13 + " PS1.08: 35% PS1:8-13 + " PS1.08: 35% PS1:8-13 +network, class B SMM.01: 63% SMM:1-39 +network, class C SMM.01: 63% SMM:1-39 +network, configure IFCONFIG.8C: 6% IFCONFIG(8C)-1 +network, destination IFCONFIG.8C: 61% IFCONFIG(8C)-1 + " ROUTED.8C: 21% ROUTED(8C)-1 + " SMM.15: 73% SMM:15-21 + " XNSROUTED.8C: 40% XNSROUTED(8C)-1 +network, directly-connected ROUTE.8C: 85% ROUTE(8C)-1 + " SMM.13: 65% SMM:13-23 + " SMM.13: 65% SMM:13-23 +network, Ethernet (see also Ethernet) DE.4: 8% DE(4)-1 + " EC.4: 8% EC(4)-1 + " EN.4: 8% EN(4)-1 + " EX.4: 11% EX(4)-1 + " IL.4: 10% IL(4)-1 + " IX.4: 8% IX(4)-1 + " QE.4: 23% QE(4)-1 +network, finding sites on the USD.10: 81% USD:10-10 +network[s], local HTABLE.8: 77% unknown + " HUNT.6: 8% HUNT(6)-1 + " RUPTIME.1C: 29% RUPTIME(1C)-1 + " RWHO.1C: 24% RWHO(1C)-1 +networks, multiple SMM.11: 24% SMM:11-4 + " SPP.4P: 23% SPP(4P)-1 + " SPP.4P: 26% SPP(4P)-1 + " TCP.4P: 32% TCP(4P)-1 + " TCP.4P: 35% TCP(4P)-1 +network, Proteon proNET ring VV.4: 9% VV(4)-1 +network, rdump - file system dump across the RDUMP.8C: 7% RDUMP(8C)-1 +network, rrestore - restore a file system dump across the RRESTORE.8C: 8% RRESTORE(8C)-1 +network, UUCP MAILADDR.7: 33% MAILADDR(7)-1 + " SMM.09: 49% SMM:9-11 + " SMM.09: 87% SMM:9-19 + " SMM.10: 40% SMM:10-12 + " USD.08: 61% USD:8-73 + " USD.10: 82% USD:10-10 + " UUENCODE.1C: 56% UUENCODE(1C)-1 + " WHOM.N: 95% WHOM(1)-1 +Network accesses USD.07: 40% USD:7-10 +network addresses DE.4: 13% DE(4)-1 + " EC.4: 23% EC(4)-1 + " EN.4: 17% EN(4)-1 + " EN.4: 27% EN(4)-1 + " EX.4: 17% EX(4)-1 + " GETHOSTBYNAME.3N: 41% GETHOSTBYNAME(3) + " HOSTS.5: 73% HOSTS(5)-1 + " ICMP.4P: 90% ICMP(4P)-1 + " IDP.4P: 49% IDP(4P)-1 + " IFCONFIG.8C: 7% IFCONFIG(8C)-1 + " IL.4: 15% IL(4)-1 + " IMP.4P: 92% IMP(4P)-1 + " INET.3N: 29% INET(3N)-1 + " INET.3N: 34% INET(3N)-1 + " INET.3N: 59% INET(3N)-1 + " INET.3N: 67% INET(3N)-1 + " INET.3N: 69% INET(3N)-1 + " INET.3N: 72% INET(3N)-1 + " IX.4: 27% IX(4)-1 + " NETSTAT.1: 50% NETSTAT(1)-1 + " NETSTAT.1: 63% NETSTAT(1)-2 + " SMM.11: 29% SMM:11-4 + " SMM.11: 35% SMM:11-5 + " SMM.11: 53% SMM:11-7 + " SMM.13: 70% SMM:13-24 + " SMM.15: 38% SMM:15-12 + " TIMED.8: 70% TIMED(8)-1 + " TIMED.8: 80% TIMED(8)-1 + " USD.08: 61% USD:8-73 + " VV.4: 10% VV(4)-1 + " VV.4: 17% VV(4)-1 + " WHOM.N: 89% WHOM(1)-1 +network architectures SMM.12A: 73% SMM:12-17 +network buffer[s] CRASH.8V: 79% CRASH(8V)-2 + " SMM.13: 53% SMM:13-19 + " SMM.12A: 91% SMM:12-21 +network byte order BYTEORDER.3N: 11% BYTEORDER(3N)-1 + " BYTEORDER.3N: 50% BYTEORDER(3N)-1 + " GETHOSTBYNAME.3N: 43% GETHOSTBYNAME(3) + " GETSERVENT.3N: 52% GETSERVENT(3N)- + " INET.3N: 37% INET(3N)-1 +network communication[s] SMM.15: 0% SMM:15-2 + " SMM.15: 2% SMM:15-3 + " SMM.15: 3% SMM:15-3 +network connection[s] L-DEVICES.5: 43% L-DEVICES(5)-1 + " L_SYS.5: 46% L.SYS(5)-2 + " SMM.01: 84% SMM:1-50 + " SMM.09: 58% SMM:9-13 + " SMM.09: 68% SMM:9-15 + " SMM.10: 0% SMM:10-1 + " SYSTAT.1: 6% SYSTAT(1)-1 + " SYSTAT.1: 65% SYSTAT(1)-3 + " SYSTAT.1: 86% SYSTAT(1)-4 + " TTY.4: 3% TTY(4)-1 + " SMM.07A: 31% SMM:07-15 + " SMM.07A: 57% SMM:07-25 + " SMM.12A: 97% SMM:12-23 +network data base GETNETENT.3N: 27% GETNETENT(3N)-1 + " GETSERVENT.3N: 64% GETSERVENT(3N)- + " GETPROTOENT.3N: 64% GETPROTOENT(3N) + " GETNETENT.3N: 63% GETNETENT(3N)-1 + " NETWORKS.5: 48% unknown +Network data base SMM.01: 70% SMM:1-42 + " SMM.01: 68% SMM:1-41 +network data structure[s] NETSTAT.1: 12% NETSTAT(1)-1 +network date SMM.08: 91% SMM:8-3 + " SMM.22: 39% SMM:22-4 + " SMM.22: 70% SMM:22-7 + " SMM.22: 77% SMM:22-8 +network debugging PING.8: 13% PING(8)-1 +network devices L_SYS.5: 61% L.SYS(5)-3 + " SMM.02: 43% SMM:2-13 + " SMM.09: 71% SMM:9-15 +network file transfer FTP.1C: 8% FTP(1C)-1 +network hardware PING.8: 11% PING(8)-1 + " SMM.02: 96% SMM:2-33 + " SMM.13: 1% SMM:13-2 + " SMM.13: 15% SMM:13-6 +network header SMM.15: 44% SMM:15-14 + " SMM.15: 46% SMM:15-14 + " SMM.15: 46% SMM:15-14 + " SMM.15: 46% SMM:15-14 + " SMM.15: 73% SMM:15-21 + " SMM.15: 74% SMM:15-21 + " SMM.15: 93% SMM:15-26 + " SMM.15: 94% SMM:15-26 + " SMM.15: 94% SMM:15-26 + " SMM.15: 94% SMM:15-26 + " SMM.15: 95% SMM:15-26 + " SMM.15: 96% SMM:15-26 +network independent, but network related code, /sys/net SMM.01: 39% SMM:1-26 +Network Information Center SMM.01: 69% SMM:1-42 +Network Information Center (see also NIC) HOSTS.5: 56% HOSTS(5)-1 + " SMM.11: 96% SMM:11-16 + " SMM.11: 96% SMM:11-16 + " SMM.11: 97% SMM:11-16 + " SMM.11: 98% SMM:11-16 + " SMM.11: 98% SMM:11-16 +network interface[s] ACC.4: 49% ACC(4)-1 + " CSS.4: 49% CSS(4)-1 + " DDN.4: 24% DDN(4)-1 + " DE.4: 75% DE(4)-1 + " GETSOCKOPT.2: 59% GETSOCKOPT(2)-2 + " ICMP.4P: 92% ICMP(4P)-1 + " IDP.4P: 50% IDP(4P)-1 + " IFCONFIG.8C: 5% IFCONFIG(8C)-1 + " IFCONFIG.8C: 90% IFCONFIG(8C)-2 + " IFCONFIG.8C: 94% IFCONFIG(8C)-2 + " IL.4: 65% IL(4)-1 + " IMP.4: 1% IMP(4)-1 + " IMP.4: 8% IMP(4)-1 + " IMP.4: 23% IMP(4)-1 + " IMP.4P: 15% IMP(4P)-1 + " INTRO.4: 25% INTRO(4)-1 + " INTRO.4N: 3% INTRO(4N)-1 + " INTRO.4N: 5% INTRO(4N)-1 + " INTRO.4N: 20% INTRO(4N)-1 + " INTRO.4N: 21% INTRO(4N)-1 + " INTRO.4N: 38% INTRO(4N)-2 + " INTRO.4N: 49% INTRO(4N)-2 + " INTRO.4N: 70% INTRO(4N)-3 + " INTRO.4N: 71% INTRO(4N)-3 + " INTRO.4N: 73% INTRO(4N)-3 + " IX.4: 15% IX(4)-1 + " LO.4: 24% LO(4)-1 + " NETSTAT.1: 83% NETSTAT(1)-2 + " PCL.4: 39% PCL(4)-1 + " PING.8: 58% PING(8)-1 + " SLATTACH.8C: 8% SLATTACH(8C)-1 + " SLATTACH.8C: 20% SLATTACH(8C)-1 + " SLATTACH.8C: 49% SLATTACH(8C)-1 + " SMM.01: 61% SMM:1-38 + " SMM.01: 63% SMM:1-39 + " SMM.13: 60% SMM:13-21 + " SMM.13: 63% SMM:13-22 + " SMM.13: 68% SMM:13-24 + " SMM.13: 87% SMM:13-29 + " SMM.13: 94% SMM:13-32 + " SMM.15: 46% SMM:15-14 + " SMM.15: 55% SMM:15-16 + " SMM.15: 61% SMM:15-18 + " SMM.15: 61% SMM:15-18 + " SMM.15: 61% SMM:15-18 + " SMM.15: 64% SMM:15-19 + " SMM.15: 65% SMM:15-19 + " SMM.15: 65% SMM:15-19 + " SMM.15: 66% SMM:15-20 + " SMM.15: 67% SMM:15-20 + " SMM.15: 70% SMM:15-21 + " SMM.15: 72% SMM:15-21 + " SMM.15: 81% SMM:15-23 + " SMM.15: 83% SMM:15-23 + " SMM.15: 83% SMM:15-24 + " SPP.4P: 35% SPP(4P)-1 + " TCP.4P: 46% TCP(4P)-1 + " SMM.12A: 72% SMM:12-17 +network interface code, /sys/vaxif VAX SMM.01: 39% SMM:1-26 +network interface driver[s] INTRO.4: 22% INTRO(4)-1 + " INTRO.4: 29% INTRO(4)-1 + " SMM.01: 61% SMM:1-38 + " SMM.02: 51% SMM:2-16 + " SMM.13: 84% SMM:13-29 +network layer[s] SMM.15: 4% SMM:15-3 + " SMM.15: 4% SMM:15-3 + " SMM.15: 4% SMM:15-3 +network library routines HTABLE.8: 12% HTABLE(8)-1 + " SMM.01: 68% SMM:1-41 +Network mail MAIL.1: 24% MAIL(1)-2 + " SEND.N: 23% SEND(1)-1 + " USD.08: 53% USD:8-64 +network mail forwarding SMM.16: 47% SMM:16-7 +network mask INET.4F: 78% INET(4F)-1 + " SMM.01: 63% SMM:1-39 + " SMM.01: 64% SMM:1-39 + " SMM.13: 63% SMM:13-22 + " SMM.13: 65% SMM:13-23 + " SMM.13: 65% SMM:13-23 +network mask request[s] SMM.13: 58% SMM:13-20 + " SMM.13: 64% SMM:13-22 + " SMM.13: 70% SMM:13-24 +network monitoring and diagnostic functions ICMP.4P: 21% ICMP(4P)-1 +network name[s] L_SYS.5: 62% L.SYS(5)-3 + " NETWORKS.5: 77% NETWORKS(5)-1 + " ROUTE.8C: 64% ROUTE(8C)-1 + " SMM.09: 72% SMM:9-15 + " TIMED.8: 73% TIMED(8)-1 + " TIMED.8: 83% TIMED(8)-1 +network name data basis, host and SMM.01: 69% SMM:1-42 +Network News SMM.10: 4% SMM:10-2 + " SMM.10: 78% SMM:10-19 + " USD.09: 0% USD:9-1 + " USD.09: 0% USD:9-1 + " USD.09: 1% USD:9-1 + " USD.09: 7% USD:9-1 + " USD.09: 7% USD:9-2 + " USD.09: 18% USD:9-2 + " USD.09: 28% USD:9-4 + " USD.09: 38% USD:9-4 + " USD.09: 46% USD:9-5 + " USD.09: 48% USD:9-6 + " USD.09: 56% USD:9-6 + " USD.09: 64% USD:9-8 + " USD.09: 70% USD:9-8 + " USD.09: 77% USD:9-10 + " USD.09: 84% USD:9-10 + " USD.09: 89% USD:9-12 + " USD.09: 97% USD:9-12 + " USD.10: 3% USD:10-1 + " USD.10: 52% USD:10-6 +Network News, How to Read the USD.09: 0% USD:9-1 +network number[s] GETNETENT.3N: 49% GETNETENT(3N)-1 + " GETNETENT.3N: 52% GETNETENT(3N)-1 + " GETNETENT.3N: 53% GETNETENT(3N)-1 + " GETNETENT.3N: 77% GETNETENT(3N)-1 + " HY.4: 17% HY(4)-1 + " IMP.4: 18% IMP(4)-1 + " INET.3N: 34% INET(3N)-1 + " INET.3N: 38% INET(3N)-1 + " INET.4F: 55% INET(4F)-1 + " INET.4F: 62% INET(4F)-1 + " NETWORKS.5: 64% NETWORKS(5)-1 + " NS.3N: 25% NS(3N)-1 + " SMM.01: 62% SMM:1-39 + " SMM.01: 63% SMM:1-39 + " SMM.01: 63% SMM:1-39 + " SMM.01: 63% SMM:1-39 + " SMM.01: 67% SMM:1-41 + " SMM.01: 69% SMM:1-42 + " SMM.01: 69% SMM:1-42 + " SMM.13: 59% SMM:13-21 + " SMM.13: 59% SMM:13-21 + " SMM.13: 63% SMM:13-22 + " SMM.13: 63% SMM:13-22 + " SMM.13: 64% SMM:13-22 + " SMM.13: 65% SMM:13-22 + " SMM.13: 81% SMM:13-28 + " SMM.13: 83% SMM:13-28 + " SMM.13: 83% SMM:13-28 +network protocol[s] INTRO.4N: 6% INTRO(4N)-1 + " SMM.15: 46% SMM:15-14 + " SOCKET.2: 29% SOCKET(2)-1 +Network servers SMM.01: 68% SMM:1-41 + " SMM.01: 71% SMM:1-43 + " SMM.01: 72% SMM:1-43 + " SMM.02: 86% SMM:2-30 + " SMM.12A: 87% SMM:12-20 +Network service[s] SMM.01: 60% SMM:1-38 + " SMM.11: 1% SMM:11-2 + " SMM.15: 3% SMM:15-3 + " SMM.21: 87% SMM:21-6 +NETWORK SETUP SMM.01: 60% SMM:1-38 +Network Systems Hyperchannel HY.4: 1% HY(4)-1 +network time ADJTIME.2: 65% ADJTIME(2)-1 + " DATE.1: 80% DATE(1)-1 + " SMM.08: 16% SMM:8-2 + " SMM.08: 23% SMM:8-2 + " SMM.22: 5% SMM:22-2 + " SMM.22: 8% SMM:22-2 + " SMM.22: 26% SMM:22-3 + " SMM.22: 39% SMM:22-4 + " TIMED.8: 17% TIMED(8)-1 + " TIMED.8: 18% TIMED(8)-1 + " TIMED.8: 26% TIMED(8)-1 +Network troubleshooting SMM.01: 84% SMM:1-50 +Network-interface layer SMM.15: 32% SMM:15-10 + " SMM.15: 33% SMM:15-10 +networking - introduction to networking facilities INTRO.4N: 0% INTRO(4N)-1 +networking environment SMM.02: 36% SMM:2-11 + " SMM.07: 98% SMM:7-1 + " SMM.07A: 87% SMM:07-38 +networking facilities INTRO.4N: 2% INTRO(4N)-1 + " SMM.01: 0% SMM:1-1 + " SMM.15: 0% SMM:15-2 + " SMM.15: 2% SMM:15-3 + " SMM.15: 3% SMM:15-3 +Networking Implementation Notes SMM.15: 1% SMM:15-2 + " SMM.15: 2% SMM:15-2 + " SMM.15: 7% SMM:15-4 + " SMM.15: 11% SMM:15-4 + " SMM.15: 15% SMM:15-6 + " SMM.15: 19% SMM:15-6 + " SMM.15: 23% SMM:15-8 + " SMM.15: 27% SMM:15-8 + " SMM.15: 30% SMM:15-10 + " SMM.15: 34% SMM:15-10 + " SMM.15: 37% SMM:15-12 + " SMM.15: 40% SMM:15-12 + " SMM.15: 44% SMM:15-14 + " SMM.15: 47% SMM:15-14 + " SMM.15: 51% SMM:15-16 + " SMM.15: 55% SMM:15-16 + " SMM.15: 59% SMM:15-18 + " SMM.15: 62% SMM:15-18 + " SMM.15: 66% SMM:15-20 + " SMM.15: 70% SMM:15-20 + " SMM.15: 75% SMM:15-22 + " SMM.15: 79% SMM:15-22 + " SMM.15: 83% SMM:15-24 + " SMM.15: 88% SMM:15-24 + " SMM.15: 92% SMM:15-26 + " SMM.15: 96% SMM:15-26 + " SMM.15: 0% unknown +networks - network name data base NETWORKS.5: 4% NETWORKS(5)-1 +new driver[s] SMM.13: 1% SMM:13-2 +New file[s] SMM.13: 52% SMM:13-18 + " USD.14: 25% USD:14-7 + " USD.14: 27% USD:14-7 + " USD.17: 32% USD:17-15 + " USD.17: 72% USD:17-33 +New Note[s], Checking for USD.11: 97% USD:11-15 +new page MS.7: 10% MS(7)-1 + " USD.20: 64% USD:20-5 +new-line character PS1.01: 5% PS1:1-2 + " PS1.04: 58% PS1:4-30 + " PS1.04: 58% PS1:4-30 +NEWLINE PS1.10: 76% PS1:10-18 +newaliases - rebuild the data base for the mail aliases file NEWALIASES.1: 13% NEWALIASES(1)-1 +newfs - construct a new file system NEWFS.8: 1% NEWFS(8)-1 +newline character PS2.01: 11% PS2:1-2 + " PS2.03: 88% PS2:3-14 + " PS2.03: 88% PS2:3-14 + " PS2.07: 27% PS2:7-14 +newline mapping PS1.18: 33% PS1:18-8 + " PS1.18: 46% PS1:18-13 +newline[s], Concealed USD.24: 44% USD:24-15 + " USD.24: 44% USD:24-15 + " USD.24: 62% USD:24-20 +newline character[s] GETS.3S: 35% GETS(3S)-1 + " GETS.3S: 50% GETS(3S)-1 + " PUTS.3S: 46% PUTS(3S)-1 + " TTY.4: 23% TTY(4)-3 + " USD.18: 82% USD:18-8 + " USD.24: 42% USD:24-14 + " SMM.09: 75% SMM:9-16 + " USD.17: 90% USD:17-44 + " USD.16: 72% USD:16-14 +news, B SMM.10: 58% SMM:10-15 + " SMM.12A: 98% SMM:12-23 +News, Browsing through Old USD.09: 39% USD:9-5 +News, How to Read the Network USD.09: 0% USD:9-1 +news, incoming SMM.10: 57% SMM:10-15 + " SMM.10: 59% SMM:10-15 + " SMM.10: 80% SMM:10-20 + " SMM.10: 83% SMM:10-20 + " SMM.10: 83% SMM:10-20 + " SMM.10: 84% SMM:10-20 +News, Network SMM.10: 4% SMM:10-2 + " SMM.10: 78% SMM:10-19 + " USD.09: 0% USD:9-1 + " USD.09: 0% USD:9-1 + " USD.09: 1% USD:9-1 + " USD.09: 7% USD:9-1 + " USD.09: 7% USD:9-2 + " USD.09: 18% USD:9-2 + " USD.09: 28% USD:9-4 + " USD.09: 38% USD:9-4 + " USD.09: 46% USD:9-5 + " USD.09: 48% USD:9-6 + " USD.09: 56% USD:9-6 + " USD.09: 64% USD:9-8 + " USD.09: 70% USD:9-8 + " USD.09: 77% USD:9-10 + " USD.09: 84% USD:9-10 + " USD.09: 89% USD:9-12 + " USD.09: 97% USD:9-12 + " USD.10: 3% USD:10-1 + " USD.10: 52% USD:10-6 + " SMM.10: 13% SMM:10-4 + " SMM.10: 13% SMM:10-4 + " SMM.10: 50% SMM:10-13 + " SMM.10: 58% SMM:10-15 + " USD.09: 58% USD:9-7 +news, reading PATCH.N: 38% PATCH(1)-1 +news, rn - new interface for reading (or ignoring) SMM.12A: 99% SMM:12-23 +news, unread USD.09: 16% USD:9-2 + " USD.09: 51% USD:9-6 + " USD.09: 52% USD:9-6 + " USD.09: 53% USD:9-6 + " USD.09: 53% USD:9-6 + " USD.09: 53% USD:9-6 + " USD.09: 53% USD:9-6 +news item SMM.10: 91% SMM:10-23 + " SMM.10: 92% SMM:10-23 + " SMM.10: 92% SMM:10-23 + " SMM.10: 93% SMM:10-23 + " SMM.10: 95% SMM:10-23 + " SMM.10: 96% SMM:10-24 + " SMM.10: 97% SMM:10-24 + " SMM.10: 99% SMM:10-24 + " SMM.10: 99% SMM:10-24 +news programs USD.09: 43% USD:9-5 + " USD.10: 4% USD:10-1 + " USD.10: 12% USD:10-2 +news reading interface[s] USD.09: 43% USD:9-5 +news software USD.10: 44% USD:10-5 + " USD.10: 45% USD:10-5 + " USD.10: 45% USD:10-5 + " USD.10: 46% USD:10-5 +newsgroup, creating a new USD.10: 54% USD:10-6 +newsgroup[s], moderated USD.10: 46% USD:10-5 +newsgroup list SMM.10: 9% SMM:10-3 + " SMM.10: 9% SMM:10-3 + " SMM.10: 29% SMM:10-8 + " USD.09: 11% USD:9-2 +newsgroup name[s] SMM.10: 28% SMM:10-8 + " SMM.10: 29% SMM:10-8 + " SMM.10: 36% SMM:10-10 + " SMM.10: 52% SMM:10-14 + " SMM.10: 60% SMM:10-16 + " SMM.10: 60% SMM:10-16 + " USD.09: 58% USD:9-7 + " USD.10: 94% USD:10-11 +newsgroups which have special rule[s] USD.10: 57% USD:10-7 +newwin() PS1.18: 17% PS1:18-5 +newwin(lines, cols, beginy, beginx) PS1.18: 53% PS1:18-15 +next - show the next message NEXT.N: 2% NEXT(1)-1 + " USD.08: 38% USD:8-45 +next-error USD.17: 84% USD:17-40 +next-error (C-X C-N) USD.17: 82% USD:17-39 +next-line (C-N) USD.17: 82% USD:17-39 +next-page (C-V) USD.17: 82% USD:17-39 +next-window (C-X N) USD.17: 82% USD:17-39 +nextkey DBM.3X: 12% DBM(3X)-1 +NEXUS AUTOCONF.4: 55% AUTOCONF(4)-1 + " AUTOCONF.4: 58% AUTOCONF(4)-1 + " SMM.02: 32% SMM:2-9 +NEXUS slot number AUTOCONF.4: 46% AUTOCONF(4)-1 + " AUTOCONF.4: 53% AUTOCONF(4)-1 + " AUTOCONF.4: 60% AUTOCONF(4)-1 +NF awk variable (number of fields in current record) USD.19: 66% USD:19-5 + " USD.19: 65% USD:19-5 + " USD.19: 38% USD:19-3 + " USD.19: 21% USD:19-2 + " USD.19: 16% USD:19-2 + " USD.19: 2% USD:19-1 + " AWK.1: 78% AWK(1)-2 +Nfabort USD.11: 91% USD:11-14 + " USD.11: 91% USD:11-14 + " USD.11: 92% USD:11-14 + " USD.11: 94% USD:11-14 +nfcomment - subroutine to enter text into a notesfile USD.11: 89% USD:11-13 +NFED shell variable USD.11: 45% USD:11-7 + " USD.11: 83% USD:11-12 + " USD.11: 82% USD:11-12 +nfpipe - input from a pipe to a notesfile USD.11: 88% USD:11-13 +nfprint - formatted listing of a notesfile USD.11: 86% USD:11-13 +NFSEQ environment variable USD.11: 75% USD:11-11 + " USD.11: 83% USD:11-12 + " USD.11: 98% USD:11-15 +nfstat[s] USD.11: 96% USD:11-14 +Ng, Kwok-Choi ASINH.3M: 93% +NIC host data base SMM.01: 69% SMM:1-42 +NIC standard format host tables, htable - convert HTABLE.8: 2% HTABLE(8)-1 +nice, nohup - run a command at low priority NICE.1: 3% NICE(1)-1 +nice - set program priority NICE.3C: 5% NICE(3C)-1 +nice command CSH.1: 63% CSH(1)-13 +NICENESS SMM.10: 21% SMM:10-6 + " SMM.10: 21% SMM:10-6 + " SMM.10: 21% SMM:10-6 + " SMM.13: 14% SMM:13-6 +Night L_SYS.5: 22% L.SYS(5)-1 + " SMM.09: 47% SMM:9-10 + " SMM.09: 65% SMM:9-14 +nl ASCII.7: 13% ASCII(7)-1 + " USD.20: 47% USD:20-4 + " USD.20: 48% USD:20-4 +nl() PS1.18: 54% PS1:18-16 +nlambda function[s] PS2.09: 54% PS2:9-95 + " PS2.09: 54% PS2:9-95 + " PS2.09: 54% PS2:9-95 + " PS2.09: 54% PS2:9-95 + " PS2.09: 54% PS2:9-95 + " PS2.09: 75% PS2:9-124 +nlist SMM.12A: 68% SMM:12-16 +nlist - get entries from name list NLIST.3: 4% NLIST(3)-1 +nlist field PS1.05: 79% PS1:5-11 + " PS1.05: 79% PS1:5-11 + " PS1.05: 79% PS1:5-11 + " PS1.05: 79% PS1:5-11 +nm - print name list NM.1: 4% NM(1)-1 +nmap settings FTP.1C: 18% FTP(1C)-2 + " FTP.1C: 32% FTP(1C)-3 + " FTP.1C: 35% FTP(1C)-3 + " FTP.1C: 56% FTP(1C)-4 +no-break control character USD.24: 84% USD:24-28 + " USD.24: 61% USD:24-20 +no-space mode USD.24: 39% USD:24-13 + " USD.24: 40% USD:24-14 + " USD.24: 40% USD:24-14 + " USD.24: 40% USD:24-14 + " USD.24: 41% USD:24-14 + " USD.24: 41% USD:24-14 + " USD.24: 41% USD:24-14 + " USD.24: 47% USD:24-16 + " USD.24: 85% USD:24-28 + " USD.24: 86% USD:24-28 + " USD.24: 90% USD:24-30 + " USD.24: 41% USD:24-14 +Noadjust USD.24: 37% USD:24-13 +nobeep shell variable CSH.1: 13% CSH(1)-3 +nobreak control character USD.24: 61% USD:24-20 +nocbreak() PS1.18: 43% PS1:18-12 +noclobber USD.04: 29% USD:4-13 + " USD.04: 87% USD:4-41 +noclobber shell variable CSH.1: 41% CSH(1)-8 + " CSH.1: 82% CSH(1)-17 +nocrmode() PS1.18: 43% PS1:18-12 +node, ICON SMM.19: 35% SMM:19-10 + " SMM.19: 37% SMM:19-11 + " SMM.19: 37% SMM:19-11 +node[s], leaf SMM.10: 63% SMM:10-16 + " SMM.19: 15% SMM:19-5 + " SMM.19: 64% SMM:19-18 +node[s], tree SMM.19: 15% SMM:19-5 + " SMM.19: 45% SMM:19-13 +node number[s] SMM.19: 7% SMM:19-3 + " SMM.19: 7% SMM:19-3 + " SMM.19: 11% SMM:19-4 + " SMM.19: 12% SMM:19-4 + " SMM.19: 15% SMM:19-5 +node type[s] SMM.19: 8% SMM:19-3 + " SMM.19: 10% SMM:19-4 + " SMM.19: 52% SMM:19-15 + " SMM.19: 71% SMM:19-20 +Nofill USD.24: 36% USD:24-12 +noecho() PS1.18: 43% PS1:18-12 +nofill mode USD.22: 31% USD:22-6 + " USD.23: 46% USD:23-6 + " USD.23: 47% USD:23-6 + " USD.23: 47% USD:23-6 + " USD.24: 36% USD:24-12 + " USD.24: 80% USD:24-25 + " USD.24: 46% USD:24-16 +noglob USD.04: 59% USD:4-28 + " USD.04: 87% USD:4-41 +noglob shell variable CSH.1: 82% CSH(1)-17 +noheader USD.07: 79% USD:7-19 +nohup NICE.1: 3% NICE(1)-1 +nohup command NICE.1: 10% NICE(1)-1 + " USD.03: 81% USD:3-20 + " CSH.1: 64% CSH(1)-13 +noisy phone line[s] USD.07: 83% USD:7-20 +nomagic option USD.16: 70% USD:16-13 +Non-ascii characters CAT.1: 69% CAT(1)-1 + " ED.1: 95% ED(1)-5 + " USD.16: 33% USD:16-6 + " USD.24: 96% USD:24-33 +non-ASCII character, filenames containing USD.10: 88% USD:10-11 +non-blank line[s] USD.17: 16% USD:17-7 +non-blocking I/O PS1.06: 41% PS1:6-19 + " PS1.06: 79% PS1:6-34 + " READ.2: 80% READ(2)-2 + " SMM.13: 9% SMM:13-4 + " WRITE.2: 86% WRITE(2)-2 + " CONNECT.2: 63% CONNECT(2)-1 + " FCNTL.2: 51% FCNTL(2)-1 + " DUP.2: 47% DUP(2)-1 + " SEND.2: 42% unknown + " SOCKET.2: 76% unknown + " TTY.4: 13% TTY(4)-2 + " WRITE.2: 43% WRITE(2)-1 + " SMM.15: 23% USD:24-2 +non-blocking locks FLOCK.2: 60% FLOCK(2)-1 +non-blocking open PS1.06: 59% PS1:6-28 +non-blocking operation[s] PS1.06: 52% PS1:6-25 + " PS1.06: 25% PS1:6-13 + " PS1.06: 54% PS1:6-26 +non-blocking output PS1.06: 41% PS1:6-19 +Non-Blocking Socket[s] PS1.08: 63% PS1:8-25 +Non-strict locking PS1.13: 66% PS1:13-13 +Non-``ANSI Standard'' extension to Fortran[s] PS1.03: 42% PS1:3-6 +non-breakable space[s] USD.31: 4% USD:31-1 +non-empty directory[s] RDIST.1: 62% RDIST(1)-3 + " RDIST.1: 63% RDIST(1)-3 + " RDIST.1: 98% RDIST(1)-4 +non-graphic characters ED.1: 58% ED(1)-4 + " LS.1: 53% LS(1)-1 + " OD.1: 23% OD(1)-1 +Non-interactive Text Editor USD.13: 99% USD:13-16 +Non-interactive Text Editor, SED - A USD.18: 0% unknown +non-local goto, setjmp, longjmp - SETJMP.3: 3% SETJMP(3)-1 +non-printing character[s] COL.1: 89% COL(1)-1 + " USD.14: 34% USD:14-9 + " USD.14: 34% USD:14-9 + " USD.16: 45% USD:16-9 + " USD.28: 15% USD:28-3 +non-standard formats DP.N: 16% DP(8)-1 + " USD.08: 75% USD:8-91 + " USD.08: 76% USD:8-94 +Non-strict locking RCS.N: 46% RCS(1)-1 +non-white character[s] USD.15: 41% USD:15-12 + " USD.15: 41% USD:15-12 + " USD.15: 84% USD:15-24 + " USD.15: 85% USD:15-24 + " USD.15: 90% USD:15-25 + " USD.15: 90% USD:15-25 + " USD.16: 66% USD:16-13 + " USD.16: 79% USD:16-15 +non-zero status USD.04: 64% USD:4-31 + " USD.04: 96% USD:4-43 +nonblocking socket RECV.2: 38% RECV(2)-1 +NONEWGROUPS SMM.10: 13% SMM:10-4 + " SMM.10: 13% SMM:10-4 + " SMM.10: 13% SMM:10-4 +nonl() PS1.18: 54% PS1:18-16 +Nonportable Character Use PS1.09: 39% PS1:9-4 +nonomatch shell variable CSH.1: 83% CSH(1)-18 +nonprinting character[s] USD.13: 7% USD:13-2 + " USD.15: 31% USD:15-9 +NOOP message[s] IMP.4: 68% IMP(4)-1 +nonstandard functions and procedures in Berkeley Pascal PS1.04: 96% PS1:4-49 +nonterminal name[s] PS1.15: 11% PS1:15-3 + " PS1.15: 66% PS1:15-19 + " PS1.15: 76% PS1:15-22 +nonterminal symbol[s] PS1.15: 5% PS1:15-2 + " PS1.15: 5% PS1:15-2 + " PS1.15: 10% PS1:15-3 + " PS1.15: 12% PS1:15-3 + " PS1.15: 14% PS1:15-4 + " PS1.15: 14% PS1:15-4 + " PS1.15: 14% PS1:15-4 + " PS1.15: 74% PS1:15-21 +noraw() PS1.18: 46% PS1:18-13 +nosave MAIL.1: 87% MAIL(1)-6 + " USD.07: 79% USD:7-19 +NOSTRICT LINT.1: 74% LINT(1)-1 +notation, decimal NS.3N: 68% NS(3N)-1 + " PRINTF.3S: 66% PRINTF(3S)-2 +notation, dot IFCONFIG.8C: 20% IFCONFIG(8C)-1 +notation, substring PS2.10: 37% PS2:10-33 + " PS2.10: 37% PS2:10-33 + " PS2.10: 38% PS2:10-33 + " PS2.10: 45% PS2:10-38 +NS Clearinghouse service PS1.08: 33% PS1:8-12 +NS domain PS1.08: 4% PS1:8-3 + " PS1.08: 9% PS1:8-4 + " PS1.08: 15% PS1:8-6 + " PS1.08: 18% PS1:8-7 + " PS1.08: 30% PS1:8-11 + " PS1.08: 30% PS1:8-11 + " PS1.08: 36% PS1:8-14 + " PS1.08: 38% PS1:8-14 + " PS1.08: 72% PS1:8-30 + " PS1.08: 79% PS1:8-32 +NS domain[s], binding addresses to sockets in the Internet and PS1.08: 73% PS1:8-30 +NS domains, Internet and PS1.08: 10% PS1:8-4 + " PS1.08: 73% PS1:8-30 + " PS1.08: 75% PS1:8-31 +NS network number[s] PS1.08: 35% PS1:8-13 +NS Packet Sequence[s] PS1.08: 86% PS1:8-35 +note[s], base USD.11: 2% USD:11-2 + " USD.11: 3% USD:11-2 + " USD.11: 3% USD:11-2 + " USD.11: 32% USD:11-5 + " USD.11: 45% USD:11-7 + " USD.11: 46% USD:11-7 + " USD.11: 49% USD:11-8 + " USD.11: 49% USD:11-8 + " USD.11: 51% USD:11-8 + " USD.11: 52% USD:11-8 + " USD.11: 54% USD:11-9 + " USD.11: 66% USD:11-10 +Note[s], Checking for New USD.11: 97% USD:11-15 +note, policy USD.11: 62% USD:11-10 +notes, reading USD.11: 22% USD:11-4 + " USD.11: 23% USD:11-4 + " USD.11: 33% USD:11-5 + " USD.11: 43% USD:11-7 + " USD.11: 56% USD:11-9 + " USD.11: 59% USD:11-9 +note titles USD.11: 25% USD:11-4 + " USD.11: 56% USD:11-9 +Notes/Respons, Editing USD.11: 55% USD:11-9 +Notesfiles USD.11: 11% USD:11-2 + " USD.11: 12% USD:11-2 + " USD.11: 17% USD:11-3 +notesfile, nfcomment - subroutine to enter text into a USD.11: 89% USD:11-13 +notesfile, nfpipe - input from a pipe to a USD.11: 88% USD:11-13 +notesfile, nfprint - formatted listing of a USD.11: 86% USD:11-13 +notesfile director USD.11: 26% USD:11-4 + " USD.11: 55% USD:11-9 + " USD.11: 62% USD:11-10 +notesfile name[s] USD.11: 14% USD:11-2 + " USD.11: 15% USD:11-2 + " USD.11: 16% USD:11-3 + " USD.11: 16% USD:11-3 + " USD.11: 11% USD:11-2 +notesfile program[s] USD.11: 15% USD:11-2 + " USD.11: 23% USD:11-4 + " USD.11: 60% USD:11-9 + " USD.11: 80% USD:11-12 + " USD.11: 82% USD:11-12 +NOTESFILE REFERENCE MANUAL USD.11: 0% USD:11-2 + " USD.11: 9% USD:11-2 + " USD.11: 15% USD:11-3 + " USD.11: 21% USD:11-3 + " USD.11: 27% USD:11-5 + " USD.11: 33% USD:11-5 + " USD.11: 40% USD:11-7 + " USD.11: 46% USD:11-7 + " USD.11: 54% USD:11-9 + " USD.11: 61% USD:11-9 + " USD.11: 69% USD:11-11 + " USD.11: 77% USD:11-11 + " USD.11: 85% USD:11-13 + " USD.11: 90% USD:11-13 + " USD.11: 96% USD:11-15 +notesfile sequencer USD.11: 63% USD:11-10 +notesfile system USD.09: 12% USD:9-2 + " USD.09: 47% USD:9-5 + " USD.11: 1% USD:11-2 + " USD.11: 4% USD:11-2 + " USD.11: 7% USD:11-2 + " USD.11: 8% USD:11-2 + " USD.11: 8% USD:11-2 + " USD.11: 8% USD:11-2 + " USD.11: 10% USD:11-2 + " USD.11: 11% USD:11-2 + " USD.11: 16% USD:11-3 + " USD.11: 20% USD:11-3 + " USD.11: 21% USD:11-4 + " USD.11: 22% USD:11-4 + " USD.11: 45% USD:11-7 + " USD.11: 64% USD:11-10 + " USD.11: 78% USD:11-12 + " USD.11: 95% USD:11-14 +notesfile system statistics USD.11: 95% USD:11-14 +NOTIFY SMM.10: 10% SMM:10-3 + " SMM.10: 13% SMM:10-4 + " SMM.10: 13% SMM:10-4 + " SMM.10: 13% SMM:10-4 + " SMM.10: 13% SMM:10-4 + " SMM.10: 70% SMM:10-18 +notify command RDIST.1: 67% RDIST(1)-3 + " USD.04: 87% USD:4-41 +notify shell command CSH.1: 10% CSH(1)-2 + " CSH.1: 64% CSH(1)-13 +notify shell variable CSH.1: 10% CSH(1)-2 + " CSH.1: 65% CSH(1)-13 + " CSH.1: 83% CSH(1)-18 +NOTREACHED LINT.1: 67% LINT(1)-1 +Nouns and Adjective[s] USD.32: 39% USD:32-6 +Novation ``Smart Cat'' L-DEVICES.5: 17% L-DEVICES(5)-1 +np SMM.12A: 74% SMM:12-17 +np - Interlan Np100 10 Mb/s Ethernet interface NP.4: 1% NP(4)-1 +np100 SMM.12A: 98% SMM:12-23 +Np100, Interlan IX.4: 2% IX(4)-1 + " NP.4: 2% NP(4)-1 + " SMM.13: 90% SMM:13-31 + " SMM.12A: 74% SMM:12-17 + " SMM.12A: 75% SMM:12-17 +NPROC SMM.02: 86% SMM:2-30 + " SMM.02: 87% SMM:2-30 + " SMM.02: 87% SMM:2-30 + " SMM.02: 87% SMM:2-30 +NR USD.19: 21% USD:19-2 +NR awk variable (current record number) AWK.1: 79% AWK(1)-2 + " USD.19: 14% USD:19-2 + " USD.19: 43% USD:19-4 + " USD.19: 43% USD:19-4 + " USD.19: 55% USD:19-5 + " USD.19: 61% USD:19-5 + " USD.19: 62% USD:19-5 +NROFF SMM.20: 0% SMM:20-2 + " SMM.20: 5% SMM:20-2 + " SMM.20: 9% SMM:20-2 + " SMM.20: 25% SMM:20-3 + " SMM.20: 26% SMM:20-3 + " SMM.20: 48% SMM:20-4 + " USD.20: 0% USD:20-1 + " USD.26: 91% USD:26-7 + " COL.1: 20% COL(1)-1 + " USD.20: 76% USD:20-6 + " USD.24: 0% USD:24-2 + " SMM.12A: 41% SMM:12-10 +Nroff, Using the -ms Macros with Troff and USD.20: 0% USD:20-1 +nroff - text formatting NROFF.1: 2% NROFF(1)-1 +nroff - text formatting and typesetting TROFF.1: 1% TROFF(1)-1 +nroff -ms MS.7: 1% MS(7)-1 +nroff -me USD.22: 4% USD:22-1 +NROFF Terminal Description[s] SMM.20: 0% SMM:20-2 + " SMM.20: 13% SMM:20-2 + " SMM.20: 24% SMM:20-2 + " SMM.20: 34% SMM:20-4 + " SMM.20: 50% SMM:20-4 + " SMM.20: 66% SMM:20-6 + " SMM.20: 66% SMM:20-6 + " SMM.20: 72% SMM:20-8 + " SMM.20: 77% SMM:20-8 + " SMM.20: 86% SMM:20-10 + " SMM.20: 96% SMM:20-10 +nroff terminal descriptor, installing an SMM.20: 60% SMM:20-5 +NROFF using -me, Writing Papers with USD.22: 0% USD:22-1 +Nroff/Troff USD.23: 0% USD:23-1 + " EQN.1: 96% EQN(1)-2 +NROFF/TROFF, Exit from USD.24: 78% USD:24-25 +NROFF/TROFF User's Manual USD.24: 0% USD:24-2 +NRPOS FS.5: 71% FS(5)-3 + " FS.5: 72% FS(5)-3 +NS[s], Xerox NS.3N: 3% NS(3N)-1 + " NSIP.4: 14% NSIP(4)-1 + " ROUTED.8C: 95% ROUTED(8C)-3 + " SMM.13: 33% SMM:13-12 + " SMM.13: 88% SMM:13-30 +ns - Xerox Network Systems(tm) protocol family NS.4F: 1% NS(4F)-1 +NS addresses NS.4F: 23% NS(4F)-1 + " NS.4F: 34% NS(4F)-1 + " NSIP.4: 29% NSIP(4)-1 +NS packets IFCONFIG.8C: 86% IFCONFIG(8C)-2 +NS protocol family[s] EN.4: 52% EN(4)-1 + " NS.4F: 6% NS(4F)-1 + " NS.4F: 66% NS(4F)-1 +NS Routing Information Protocol daemon, XNSrouted - XNSROUTED.8C: 1% XNSROUTED(8C)-1 +NSIP SMM.02: 99% SMM:2-33 +nsip - software network interface encapsulating ns packets in ip ... NSIP.4: 2% NSIP(4)-1 +ns_addr[s], ns_ntoa - Xerox NS(tm) address conversion routine NS.3N: 2% NS(3N)-1 +ntohs BYTEORDER.3N: 38% BYTEORDER(3N)-1 +ntohl BYTEORDER.3N: 32% BYTEORDER(3N)-1 +ntohs() PS1.07a: 52% PS1:7-11 +NULL PS1.18: 26% PS1:18-7 +null - data sink NULL.4: 20% unknown +null byte[s] BSTRING.3: 41% BSTRING(3)-1 + " OD.1: 40% OD(1)-1 +null character[s] EX.1: 95% EX(1)-2 + " GETS.3S: 40% GETS(3S)-1 + " GETS.3S: 63% GETS(3S)-1 + " GETTYTAB.5: 57% GETTYTAB(5)-2 + " OPEN.2: 14% OPEN(2)-1 + " PRINTF.3S: 81% PRINTF(3S)-2 + " SMM.20: 48% SMM:20-4 + " STRING.3: 73% STRING(3)-1 + " TTY.4: 70% TTY(4)-7 + " USD.16: 33% USD:16-6 +null[s], file containing PS1.16: 51% PS1:16-7 +null byte[s] PS1.01: 6% PS1:1-3 +null character PS1.02: 20% PS1:2-8 + " PS2.03: 84% PS2:3-14 + " PS2.03: 88% PS2:3-14 +null pointer PS2.03: 81% PS2:3-13 + " PS1.11a: 19% PS1:11-2 + " PS1.11a: 35% PS1:11-3 + " PS1.11a: 56% PS1:11-4 +null statement[s] PS1.01: 68% PS1:1-23 + " PS1.01: 68% PS1:1-23 + " PS1.01: 69% PS1:1-23 + " PS1.01: 69% PS1:1-23 + " PS1.01: 69% PS1:1-23 + " PS1.05: 30% PS1:5-4 + " PS1.05: 35% PS1:5-5 + " PS1.05: 35% PS1:5-5 + " PS1.05: 35% PS1:5-5 + " PS2.06: 8% PS2:6-4 + " PS2.06: 52% PS2:6-19 + " PS2.08: 45% PS2:8-7 +number[s], article SMM.10: 28% SMM:10-8 + " SMM.10: 28% SMM:10-8 + " SMM.10: 28% SMM:10-8 +number[s], block GREP.1: 27% GREP(1)-1 + " ICHECK.8: 56% ICHECK(8)-1 + " ICHECK.8: 75% ICHECK(8)-1 + " ICHECK.8: 79% ICHECK(8)-1 + " SMM.05: 31% SMM:5-7 + " SMM.05: 31% SMM:5-7 + " SMM.05: 31% SMM:5-7 + " SMM.05: 31% SMM:5-7 + " SMM.05: 33% SMM:5-7 + " SMM.05: 33% SMM:5-7 + " SMM.05: 33% SMM:5-7 + " SMM.05: 33% SMM:5-7 + " SMM.05: 33% SMM:5-7 +number, buffer USD.17: 37% USD:17-16 + " USD.17: 75% USD:17-35 + " USD.17: 81% USD:17-38 +number[s], chapter USD.22: 69% USD:22-13 + " USD.23: 18% USD:23-3 + " USD.23: 62% USD:23-8 + " USD.23: 64% USD:23-8 +number[s], complex PS2.06: 18% PS2:6-7 + " PS2.06: 35% PS2:6-13 +number[s], decimal NUMBER.6: 73% NUMBER(6)-1 + " SMM.11: 43% SMM:11-6 + " USD.19: 26% USD:19-3 +number[s], device DMF.4: 51% DMF(4)-1 + " FIND.1: 64% FIND(1)-2 + " HP.4: 1% HP(4)-1 + " LS.1: 18% LS(1)-1 + " MKNOD.8: 72% MKNOD(8)-1 + " MKPROTO.8: 68% MKPROTO(8)-1 + " MOUNT.2: 50% MOUNT(2)-1 + " MOUNT.2: 85% MOUNT(2)-2 + " PSTAT.8: 13% PSTAT(8)-1 + " REBOOT.8: 87% REBOOT(8)-2 + " RX.4: 20% RX(4)-1 + " SETQUOTA.2: 69% SETQUOTA(2)-1 + " SMM.01: 4% SMM:1-3 + " SMM.01: 30% SMM:1-21 + " SMM.02: 27% SMM:2-8 + " SMM.02: 27% SMM:2-8 + " SMM.02: 27% SMM:2-8 + " SMM.13: 52% SMM:13-18 + " SWAPON.2: 74% SWAPON(2)-1 + " TYPES.5: 27% TYPES(5)-1 + " UDA.4: 9% UDA(4)-1 + " UP.4: 7% UP(4)-1 +number[s], floating point PS1.05: 2% PS1:5-1 + " PS1.05: 94% PS1:5-13 + " PS1.15: 95% PS1:15-31 + " PS2.09: 20% PS2:9-39 + " PS2.09: 50% PS2:9-88 + " PS2.09: 50% PS2:9-88 + " PS2.09: 50% PS2:9-88 + " PS2.10: 6% PS2:10-8 + " PS2.10: 38% PS2:10-34 + " PS2.10: 38% PS2:10-34 + " PS2.10: 39% PS2:10-34 +number[s], real PS1.04: 34% PS1:4-19 + " PS1.04: 43% PS1:4-23 + " PS1.04: 51% PS1:4-27 + " PS1.04: 56% PS1:4-29 + " PS1.16: 65% PS1:16-8 +numbers, directory inode SMM.05: 36% SMM:5-7 + " SMM.05: 36% SMM:5-7 + " SMM.05: 38% SMM:5-8 +number[s], drive AUTOCONF.4: 70% AUTOCONF(4)-1 + " AUTOCONF.4: 80% AUTOCONF(4)-2 + " HK.4: 8% HK(4)-1 + " HK.4: 10% HK(4)-1 + " HP.4: 4% HP(4)-1 + " HP.4: 5% HP(4)-1 + " SMM.02: 33% SMM:2-10 + " SMM.02: 33% SMM:2-10 + " UDA.4: 12% UDA(4)-1 + " UDA.4: 14% UDA(4)-1 + " UP.4: 9% UP(4)-1 + " UP.4: 11% UP(4)-1 +number, Equation MS.7: 34% MS(7)-2 + " USD.20: 79% USD:20-6 + " USD.20: 80% USD:20-6 + " USD.22: 77% USD:22-15 + " USD.27: 12% USD:27-2 +number[s], event CSH.1: 17% CSH(1)-4 + " CSH.1: 17% CSH(1)-4 + " CSH.1: 17% CSH(1)-4 + " CSH.1: 18% CSH(1)-4 + " CSH.1: 85% CSH(1)-18 +number[s], file SMM.13: 14% SMM:13-6 +number[s], floating point SCANF.3S: 52% SCANF(3S)-1 + " SCANF.3S: 55% SCANF(3S)-1 + " USD.19: 26% USD:19-3 +number[s], footnote REFER.1: 24% REFER(1)-1 + " REFER.1: 35% REFER(1)-1 + " USD.21: 14% USD:21-1 + " USD.21: 16% USD:21-1 + " USD.21: 16% USD:21-1 + " USD.21: 19% USD:21-1 + " USD.21: 31% USD:21-1 + " USD.21: 33% USD:21-1 + " USD.22: 40% USD:22-8 + " USD.22: 40% USD:22-8 + " USD.23: 68% USD:23-9 + " USD.29: 39% USD:29-4 + " USD.29: 49% USD:29-5 + " USD.29: 51% USD:29-5 + " USD.29: 65% USD:29-7 + " USD.29: 66% USD:29-7 + " USD.29: 67% USD:29-7 + " USD.29: 69% USD:29-7 + " USD.29: 75% USD:29-8 + " USD.29: 75% USD:29-8 + " USD.29: 76% USD:29-8 + " USD.29: 76% USD:29-8 + " USD.29: 80% USD:29-8 + " USD.30: 79% USD:30-9 + " USD.30: 80% USD:30-9 +number, host IFCONFIG.8C: 23% IFCONFIG(8C)-1 + " IFCONFIG.8C: 25% IFCONFIG(8C)-1 + " IMP.4: 20% IMP(4)-1 + " NS.3N: 26% NS(3N)-1 + " SMM.01: 63% SMM:1-39 +number[s], i-node TAR.5: 80% TAR(5)-1 + " USD.10: 89% USD:10-11 + " DIR.5: 27% DIR(5)-1 + " FIND.1: 58% FIND(1)-1 + " FSCK.8: 80% FSCK(8)-2 + " FSCK.8: 88% FSCK(8)-2 + " RESTORE.8: 32% RESTORE(8)-1 + " RESTORE.8: 49% RESTORE(8)-2 + " RESTORE.8: 62% RESTORE(8)-2 + " SMM.05: 36% SMM:5-7 + " SMM.05: 37% SMM:5-8 + " SMM.05: 37% SMM:5-8 + " SMM.05: 37% SMM:5-8 + " SMM.05: 37% SMM:5-8 +number[s], job ATRM.1: 35% ATRM(1)-1 + " ATRM.1: 42% ATRM(1)-1 + " CSH.1: 75% CSH(1)-16 + " LPQ.1: 33% LPQ(1)-1 + " LPRM.1: 46% LPRM(1)-1 + " USD.04: 38% USD:4-17 + " USD.04: 38% USD:4-17 + " USD.04: 39% USD:4-17 + " USD.04: 41% USD:4-18 + " USD.04: 41% USD:4-18 + " USD.04: 83% USD:4-39 +number, label SMM.19: 26% SMM:19-8 + " SMM.19: 36% SMM:19-10 + " SMM.19: 36% SMM:19-10 + " SMM.19: 39% SMM:19-11 + " SMM.19: 39% SMM:19-11 +number[s], level CI.N: 43% CI(1)-1 + " CI.N: 49% CI(1)-2 + " DUMP.5: 93% DUMP(5)-2 + " USD.20: 29% USD:20-2 +number, logical unit SMM.02: 31% SMM:2-9 + " SMM.02: 31% SMM:2-9 + " SMM.02: 31% SMM:2-9 +number[s], message BUGFILER.8: 60% BUGFILER(8)-1 + " MAIL.1: 11% MAIL(1)-1 + " MH.N: 40% MH(1)-1 + " MH.N: 51% MH(1)-2 + " MH.N: 55% MH(1)-2 + " MHPATH.N: 42% MHPATH(1)-1 + " MSGS.1: 79% MSGS(1)-2 + " PICK.N: 52% PICK(1)-2 + " SHOW.N: 30% SHOW(1)-1 + " SORTM.N: 92% SORTM(1)-1 + " SORTM.N: 95% SORTM(1)-1 + " USD.07: 7% USD:7-3 + " USD.07: 8% USD:7-3 + " USD.07: 8% USD:7-3 + " USD.07: 9% USD:7-3 + " USD.07: 22% USD:7-6 + " USD.07: 48% USD:7-12 + " USD.07: 48% USD:7-12 + " USD.07: 55% USD:7-13 + " USD.07: 63% USD:7-15 + " USD.07: 66% USD:7-16 + " USD.08: 5% USD:8-4 + " USD.08: 6% USD:8-6 + " USD.08: 35% USD:8-39 + " USD.08: 41% USD:8-48 + " USD.08: 56% USD:8-66 + " USD.08: 84% USD:8-102 +number[s], network GETNETENT.3N: 49% GETNETENT(3N)-1 + " GETNETENT.3N: 52% GETNETENT(3N)-1 + " GETNETENT.3N: 53% GETNETENT(3N)-1 + " GETNETENT.3N: 77% GETNETENT(3N)-1 + " HY.4: 17% HY(4)-1 + " IMP.4: 18% IMP(4)-1 + " INET.3N: 34% INET(3N)-1 + " INET.3N: 38% INET(3N)-1 + " INET.4F: 55% INET(4F)-1 + " INET.4F: 62% INET(4F)-1 + " NETWORKS.5: 64% NETWORKS(5)-1 + " NS.3N: 25% NS(3N)-1 + " SMM.01: 62% SMM:1-39 + " SMM.01: 63% SMM:1-39 + " SMM.01: 63% SMM:1-39 + " SMM.01: 63% SMM:1-39 + " SMM.01: 67% SMM:1-41 + " SMM.01: 69% SMM:1-42 + " SMM.01: 69% SMM:1-42 + " SMM.13: 59% SMM:13-21 + " SMM.13: 59% SMM:13-21 + " SMM.13: 63% SMM:13-22 + " SMM.13: 63% SMM:13-22 + " SMM.13: 64% SMM:13-22 + " SMM.13: 65% SMM:13-22 + " SMM.13: 81% SMM:13-28 + " SMM.13: 83% SMM:13-28 + " SMM.13: 83% SMM:13-28 +number, NEXUS slot AUTOCONF.4: 46% AUTOCONF(4)-1 + " AUTOCONF.4: 53% AUTOCONF(4)-1 + " AUTOCONF.4: 60% AUTOCONF(4)-1 +number[s], node SMM.19: 7% SMM:19-3 + " SMM.19: 7% SMM:19-3 + " SMM.19: 11% SMM:19-4 + " SMM.19: 12% SMM:19-4 + " SMM.19: 15% SMM:19-5 +number[s], phone DN.4: 23% DN(4)-1 + " DN.4: 41% DN(4)-1 + " FINGER.1: 15% FINGER(1)-1 + " L-DIALCODES.5: 11% L-DIALCODES(5)- + " L-DIALCODES.5: 85% L-DIALCODES(5)- + " L_SYS.5: 2% L.SYS(5)-1 + " L_SYS.5: 53% L.SYS(5)-2 + " L_SYS.5: 57% L.SYS(5)-2 + " PASSWD.1: 78% PASSWD(1)-1 + " PHONES.5: 40% PHONES(5)-1 + " PHONES.5: 73% PHONES(5)-1 + " REMOTE.5: 25% REMOTE(5)-1 + " SMM.01: 59% SMM:1-36 + " SMM.01: 59% SMM:1-36 + " SMM.01: 59% SMM:1-36 + " SMM.09: 25% SMM:9-6 + " SMM.09: 26% SMM:9-6 + " SMM.09: 59% SMM:9-13 + " SMM.09: 70% SMM:9-15 + " SMM.09: 71% SMM:9-15 + " SMM.09: 91% SMM:9-19 + " SMM.21: 34% SMM:21-3 + " TIP.1C: 44% TIP(1C)-2 + " SMM.12A: 42% SMM:12-10 + " SMM.12A: 52% SMM:12-12 + " SMM.12A: 52% SMM:12-12 +number[s], port FTPD.8C: 93% FTPD(8C)-2 + " GETSERVENT.3N: 49% GETSERVENT(3N)- + " GETSERVENT.3N: 51% GETSERVENT(3N)- + " GETSERVENT.3N: 76% GETSERVENT(3N)- + " L-DEVICES.5: 43% L-DEVICES(5)-1 + " L_SYS.5: 51% L.SYS(5)-2 + " NAMED.8: 12% NAMED(8)-1 + " NAMED.8: 13% NAMED(8)-1 + " NS.3N: 27% NS(3N)-1 + " NS.4F: 64% NS(4F)-1 + " RCMD.3: 16% RCMD(3)-1 + " REXECD.8C: 21% REXECD(8C)-1 + " RLOGIND.8C: 10% RLOGIND(8C)-1 + " RSHD.8C: 6% RSHD(8C)-1 + " RSHD.8C: 19% RSHD(8C)-1 + " SERVICES.5: 43% SERVICES(5)-1 + " SMM.09: 58% SMM:9-13 + " SMM.09: 70% SMM:9-15 + " SMM.11: 58% SMM:11-8 + " SMM.13: 77% SMM:13-26 + " SMM.13: 83% SMM:13-28 + " SMM.13: 85% SMM:13-29 + " TELNET.1C: 19% TELNET(1C)-1 +number[s], process CSH.1: 34% CSH(1)-7 + " KILL.1: 43% KILL(1)-1 + " KILL.1: 57% KILL(1)-1 + " KILL.1: 67% KILL(1)-1 + " KILL.1: 73% KILL(1)-1 + " KILL.2: 29% KILL(2)-1 + " KILL.2: 34% KILL(2)-1 + " KILL.2: 42% KILL(2)-1 + " KILL.2: 54% KILL(2)-1 + " KILL.2: 60% KILL(2)-1 + " PS.1: 52% PS(1)-2 + " SH.1: 29% SH(1)-2 + " SH.1: 29% SH(1)-2 + " USD.01: 62% USD:1-10 + " USD.01: 63% USD:1-10 + " USD.03: 6% USD:3-2 + " USD.03: 37% USD:3-9 + " USD.03: 37% USD:3-9 + " USD.03: 37% USD:3-9 + " USD.04: 38% USD:4-17 + " USD.04: 39% USD:4-17 + " USD.04: 39% USD:4-17 + " USD.04: 40% USD:4-18 + " USD.04: 41% USD:4-18 + " USD.04: 42% USD:4-19 + " USD.04: 56% USD:4-26 + " USD.04: 56% USD:4-26 + " USD.04: 91% USD:4-42 + " USD.04: 91% USD:4-42 + " USD.04: 92% USD:4-42 +number, protocol GETPROTOENT.3N: 43% GETPROTOENT(3N) + " GETPROTOENT.3N: 54% GETPROTOENT(3N) + " GETPROTOENT.3N: 78% GETPROTOENT(3N) + " GETSOCKOPT.2: 13% GETSOCKOPT(2)-1 + " IP.4P: 54% IP(4P)-1 + " IP.4P: 61% IP(4P)-1 + " SMM.13: 60% SMM:13-21 + " SMM.15: 28% SMM:15-9 + " SMM.15: 32% SMM:15-10 + " SMM.15: 80% SMM:15-23 + " SMM.15: 82% SMM:15-23 + " SOCKET.2: 38% SOCKET(2)-1 + " TCP.4P: 67% TCP(4P)-1 +number[s], random RAND.3F: 35% RAND(3F)-1 + " RANDOM.3: 48% RANDOM(3)-1 + " RANDOM.3F: 35% RANDOM(3F)-1 +number[s], real FLMIN.3F: 78% FLMIN(3F)-1 +number, record TOPEN.3F: 84% TOPEN(3F)-2 + " USD.19: 21% USD:19-2 +number[s], reference REFER.1: 52% REFER(1)-1 + " USD.29: 46% USD:29-5 + " USD.29: 76% USD:29-8 + " USD.30: 91% USD:30-11 +number[s], register SMM.19: 26% SMM:19-8 + " SMM.19: 40% SMM:19-11 + " SMM.19: 49% SMM:19-14 + " SMM.19: 50% SMM:19-14 + " SMM.19: 50% SMM:19-14 + " SMM.19: 61% SMM:19-17 + " SMM.19: 73% SMM:19-20 + " SMM.19: 82% SMM:19-23 + " SMM.19: 82% SMM:19-23 + " SMM.19: 90% SMM:19-25 +number[s], section USD.22: 61% USD:22-12 + " USD.22: 62% USD:22-12 + " USD.22: 62% USD:22-12 + " USD.22: 62% USD:22-12 + " USD.22: 62% USD:22-12 + " USD.22: 63% USD:22-12 + " USD.22: 64% USD:22-12 + " USD.22: 64% USD:22-12 + " USD.22: 66% USD:22-12 + " USD.23: 13% USD:23-2 + " USD.23: 13% USD:23-2 + " USD.23: 14% USD:23-2 + " USD.23: 14% USD:23-2 + " USD.23: 16% USD:23-3 + " USD.23: 17% USD:23-3 + " USD.23: 18% USD:23-3 + " USD.23: 19% USD:23-3 + " USD.23: 21% USD:23-3 + " USD.24: 88% USD:24-29 + " USD.25: 74% USD:25-11 + " USD.25: 77% USD:25-11 +number[s], sector BADSECT.8: 69% BADSECT(8)-1 + " BADSECT.8: 75% BADSECT(8)-1 + " SMM.13: 92% SMM:13-31 +number[s], sequence SMM.09: 24% SMM:9-6 + " SMM.10: 39% SMM:10-11 + " SMM.13: 76% SMM:13-26 + " SMM.13: 76% SMM:13-26 + " SMM.15: 4% SMM:15-3 + " SMM.15: 5% SMM:15-3 + " SMM.21: 34% SMM:21-3 + " SMM.22: 16% SMM:22-2 + " USD.19: 55% USD:19-5 +number[s], Sethi-Ullman SMM.19: 52% SMM:19-15 + " SMM.19: 54% SMM:19-15 + " SMM.19: 54% SMM:19-15 + " SMM.19: 54% SMM:19-15 + " SMM.19: 54% SMM:19-15 + " SMM.19: 54% SMM:19-15 + " SMM.19: 55% SMM:19-15 + " SMM.19: 77% SMM:19-22 + " SMM.19: 80% SMM:19-22 + " SMM.19: 80% SMM:19-22 + " SMM.19: 80% SMM:19-22 + " SMM.19: 80% SMM:19-22 + " SMM.19: 81% SMM:19-23 + " SMM.19: 81% SMM:19-23 + " SMM.19: 82% SMM:19-23 + " SMM.19: 83% SMM:19-23 + " SMM.19: 92% SMM:19-25 +number, signal PSIGNAL.3: 47% PSIGNAL(3)-1 + " PSIGNAL.3: 64% PSIGNAL(3)-1 + " PTRACE.2: 49% PTRACE(2)-1 + " PTRACE.2: 51% PTRACE(2)-1 + " PTRACE.2: 61% PTRACE(2)-2 + " PTRACE.2: 81% PTRACE(2)-2 + " SH.1: 85% SH(1)-5 + " SH.1: 88% SH(1)-6 + " SIGNAL.3C: 73% SIGNAL(3C)-2 + " SIGNAL.3F: 27% SIGNAL(3F)-1 + " SIGNAL.3F: 95% SIGNAL(3F)-1 + " SIGVEC.2: 81% SIGVEC(2)-3 +number[s], slave SMM.01: 4% SMM:1-3 + " SMM.01: 4% SMM:1-3 + " SMM.02: 70% SMM:2-22 +number[s], source line ASSERT.3: 87% ASSERT(3)-1 + " DBX.1: 20% DBX(1)-2 + " ERROR.1: 65% ERROR(1)-2 + " PDX.1: 21% PDX(1)-1 + " SMM.19: 41% SMM:19-12 + " SMM.19: 41% SMM:19-12 +number[s], statement F77.1: 65% F77(1)-2 + " STRUCT.1: 13% STRUCT(1)-1 +number[s], telephone DN.4: 56% DN(4)-1 + " REMOTE.5: 80% REMOTE(5)-1 + " REMOTE.5: 84% REMOTE(5)-1 +number[s], version F77.1: 50% F77(1)-2 + " PATCH.N: 36% PATCH(1)-1 + " SMM.11: 49% SMM:11-7 + " USD.16: 58% USD:16-11 + " USD.17: 96% USD:17-47 +number - convert Arabic numerals to English NUMBER.6: 17% NUMBER(6)-1 +Number lines from N, stop if N = 0, .n2 USD.23: 49% USD:23-6 +Number lines in margin from one on each page, .n1 USD.23: 48% USD:23-6 ==== Marked ==== +number radix DC.1: 62% DC(1)-1 + " DC.1: 66% DC(1)-1 + " USD.05: 20% USD:5-3 + " USD.05: 21% USD:5-3 +number reference[s] USD.29: 34% USD:29-4 +number register[s] MS.7: 72% MS(7)-3 + " ROFFBIB.1: 61% ROFFBIB(1)-1 + " USD.20: 69% USD:20-5 + " USD.23: 5% USD:23-1 + " USD.23: 14% USD:23-2 + " USD.23: 22% USD:23-3 + " USD.23: 37% USD:23-5 + " USD.24: 2% USD:24-2 + " USD.24: 9% USD:24-4 + " USD.24: 20% USD:24-8 + " USD.24: 22% USD:24-9 + " USD.24: 39% USD:24-13 + " USD.24: 43% USD:24-15 + " USD.24: 51% USD:24-17 + " USD.24: 52% USD:24-17 + " USD.24: 52% USD:24-17 + " USD.24: 52% USD:24-17 + " USD.24: 52% USD:24-17 + " USD.24: 53% USD:24-17 + " USD.24: 64% USD:24-21 + " USD.24: 69% USD:24-22 + " USD.24: 83% USD:24-28 + " USD.25: 62% USD:25-9 + " USD.25: 62% USD:25-9 + " USD.25: 62% USD:25-9 + " USD.25: 62% USD:25-9 + " USD.25: 63% USD:25-10 + " USD.25: 64% USD:25-10 + " USD.25: 67% USD:25-10 + " USD.25: 72% USD:25-11 + " USD.25: 75% USD:25-11 + " USD.28: 47% USD:28-7 + " USD.24: 44% USD:24-15 + " USD.25: 61% USD:25-9 + " USD.29: 34% USD:29-4 +Number registers used in -m[s] USD.20: 95% USD:20-7 +number-lines-in-window USD.17: 83% USD:17-39 +numbered footnote MS.7: 91% MS(7)-3 +Numbering USD.25: 51% USD:25-8 +Numbering line[s] USD.14: 39% USD:14-10 +numbers at the left-hand margin USD.21: 52% USD:21-2 +Numeric Arguments to JOVE Command[s] USD.17: 11% USD:17-5 +numeric domains PS2.10: 7% PS2:10-8 + " PS2.10: 8% PS2:10-9 + " PS2.10: 38% PS2:10-34 + " PS2.10: 48% PS2:10-41 +numeric expression[s] WINDOW.1: 79% WINDOW(1)-6 + " USD.24: 21% USD:24-8 + " USD.24: 52% USD:24-17 + " USD.24: 74% USD:24-23 +numeric label[s] PS1.05: 32% PS1:5-4 + " PS1.05: 33% PS1:5-5 + " PS1.05: 34% PS1:5-5 + " PS1.05: 34% PS1:5-5 + " PS2.06: 72% PS2:6-25 + " PS2.06: 72% PS2:6-25 +numeric operation[s] CSH.1: 28% CSH(1)-6 +numeric type[s] PS2.10: 5% PS2:10-7 + " PS2.10: 38% PS2:10-34 + " PS2.10: 42% PS2:10-36 + " PS2.10: 42% PS2:10-36 + " PS2.10: 47% PS2:10-39 + " PS2.10: 48% PS2:10-41 + " PS2.10: 85% PS2:10-77 +numeric value[s] PS1.17: 59% PS1:17-4 + " PS2.10: 5% PS2:10-7 + " PS2.10: 45% PS2:10-38 + " PS2.10: 57% PS2:10-50 + " PS2.10: 92% PS2:10-82 +numerical column[s] USD.28: 16% USD:28-3 + " USD.28: 46% USD:28-7 + " USD.28: 46% USD:28-7 + " USD.28: 46% USD:28-7 +numerical column entry USD.28: 29% USD:28-5 + " USD.28: 13% USD:28-3 +o-slash USD.21: 82% USD:21-3 +obase USD.06: 21% USD:6-3 +object, array PS2.09: 15% PS2:9-29 + " PS2.09: 15% PS2:9-29 + " PS2.09: 15% PS2:9-29 + " PS2.09: 16% PS2:9-30 + " PS2.09: 45% PS2:9-81 + " PS2.09: 60% PS2:9-104 + " PS2.09: 60% PS2:9-104 + " PS2.09: 63% PS2:9-108 + " PS2.09: 63% PS2:9-108 + " PS2.09: 64% PS2:9-108 + " PS2.09: 64% PS2:9-108 + " PS2.09: 64% PS2:9-108 + " PS2.09: 65% PS2:9-111 + " PS2.09: 65% PS2:9-111 + " PS2.09: 65% PS2:9-111 + " PS2.09: 65% PS2:9-111 + " PS2.09: 65% PS2:9-111 + " PS2.09: 65% PS2:9-111 +object, binary PS2.09: 19% PS2:9-37 + " PS2.09: 19% PS2:9-37 + " PS2.09: 19% PS2:9-37 + " PS2.09: 37% PS2:9-66 + " PS2.09: 37% PS2:9-66 + " PS2.09: 55% PS2:9-95 + " PS2.09: 60% PS2:9-104 + " PS2.09: 60% PS2:9-104 + " PS2.09: 60% PS2:9-104 + " PS2.09: 84% PS2:9-136 +object[s], binding PS2.09: 32% PS2:9-59 + " PS2.09: 32% PS2:9-59 + " PS2.09: 32% PS2:9-59 + " PS2.09: 32% PS2:9-59 +object[s], data PS2.09: 10% PS2:9-18 + " PS2.09: 10% PS2:9-19 + " PS2.09: 34% PS2:9-62 + " PS2.09: 65% PS2:9-111 + " SMM.15: 7% SMM:15-4 +object code DBX.1: 40% DBX(1)-3 + " LISZT.1: 22% LISZT(1)-1 + " PIX.1: 61% PIX(1)-1 + " SMM.19: 41% SMM:19-12 +object file[s] CC.1: 14% CC(1)-1 + " CC.1: 75% CC(1)-2 + " DBX.1: 1% DBX(1)-1 + " DBX.1: 2% DBX(1)-1 + " DBX.1: 3% DBX(1)-1 + " DBX.1: 90% DBX(1)-6 + " DBX.1: 92% DBX(1)-7 + " DBX.1: 93% DBX(1)-7 + " F77.1: 20% F77(1)-1 + " GPROF.1: 41% GPROF(1)-1 + " LD.1: 3% LD(1)-1 + " LD.1: 36% LD(1)-1 + " LISZT.1: 38% LISZT(1)-1 + " LISZT.1: 39% LISZT(1)-1 + " LISZT.1: 42% LISZT(1)-1 + " LORDER.1: 86% LORDER(1)-1 + " MAKE.1: 71% MAKE(1)-2 + " NM.1: 14% NM(1)-1 + " NM.1: 21% NM(1)-1 + " PC.1: 8% PC(1)-1 + " PC.1: 9% PC(1)-1 + " PC.1: 11% PC(1)-1 + " PC.1: 28% PC(1)-1 + " PC.1: 29% PC(1)-1 + " PDX.1: 2% PDX(1)-1 + " PDX.1: 4% PDX(1)-1 + " SIZE.1: 17% SIZE(1)-1 + " SMM.01: 10% SMM:1-7 + " STRINGS.1: 50% STRINGS(1)-1 + " USD.04: 12% USD:4-6 + " VWIDTH.1: 20% VWIDTH(1)-1 + " SMM.12A: 83% SMM:12-20 +object module[s] LD.1: 4% LD(1)-1 + " SMM.02: 17% SMM:2-6 + " SMM.02: 18% SMM:2-6 + " WHAT.1: 12% WHAT(1)-1 +object pro- grams CC.1: 69% CC(1)-2 +object program[s] CC.1: 5% CC(1)-1 + " CC.1: 25% CC(1)-1 + " F77.1: 4% F77(1)-1 + " LD.1: 2% LD(1)-1 + " LISZT.1: 9% LISZT(1)-1 +object[s], functional PS2.09: 1% PS2:9-3 + " PS2.09: 18% PS2:9-36 + " PS2.09: 19% PS2:9-37 + " PS2.09: 58% PS2:9-101 + " PS2.09: 58% PS2:9-101 + " PS2.09: 58% PS2:9-102 + " PS2.09: 59% PS2:9-102 + " PS2.09: 59% PS2:9-103 +object[s], lisp PS2.09: 2% PS2:9-4 + " PS2.09: 2% PS2:9-4 + " PS2.09: 4% PS2:9-8 + " PS2.09: 5% PS2:9-9 + " PS2.09: 11% PS2:9-20 + " PS2.09: 11% PS2:9-20 + " PS2.09: 15% PS2:9-28 + " PS2.09: 16% PS2:9-30 + " PS2.09: 33% PS2:9-61 + " PS2.09: 42% PS2:9-75 + " PS2.09: 61% PS2:9-105 + " PS2.09: 62% PS2:9-106 + " PS2.09: 65% PS2:9-108 + " PS2.09: 65% PS2:9-111 + " PS2.09: 66% PS2:9-111 + " PS2.09: 99% PS2:9-154 +object, list PS2.09: 8% PS2:9-13 + " PS2.09: 10% PS2:9-19 + " PS2.09: 29% PS2:9-55 +object code PS1.04: 13% PS1:4-8 + " PS1.13: 16% PS1:13-3 + " PS1.13: 16% PS1:13-3 + " PS1.13: 17% PS1:13-3 + " PS2.10: 76% PS2:10-68 + " PS1.11a: 68% PS1:11-5 +object code optimizer PS1.02: 8% PS1:2-5 + " PS1.04: 72% PS1:4-37 + " PS1.04: 73% PS1:4-37 +Object file[s] PS1.02: 3% PS1:2-4 + " PS1.02: 4% PS1:2-4 + " PS1.04: 49% PS1:4-26 + " PS1.04: 49% PS1:4-26 + " PS1.12: 21% PS1:12-2 + " PS1.12: 24% PS1:12-2 + " PS1.12: 33% PS1:12-3 + " PS1.12: 71% PS1:12-6 + " PS1.12: 84% PS1:12-8 + " PS1.13: 57% PS1:13-11 + " PS2.01: 11% PS2:1-2 + " PS2.09: 36% PS2:9-66 + " PS2.09: 36% PS2:9-66 + " PS2.09: 38% PS2:9-68 + " PS2.09: 38% PS2:9-68 + " PS2.09: 38% PS2:9-68 + " PS2.09: 60% PS2:9-104 + " PS2.09: 60% PS2:9-104 + " PS2.09: 75% PS2:9-123 + " PS2.09: 75% PS2:9-123 + " PS2.09: 75% PS2:9-124 + " PS2.09: 76% PS2:9-124 + " PS2.09: 77% PS2:9-125 + " PS2.09: 77% PS2:9-125 + " PS2.09: 77% PS2:9-125 + " PS2.09: 77% PS2:9-126 + " PS2.09: 77% PS2:9-126 + " PS2.09: 77% PS2:9-126 + " PS2.09: 77% PS2:9-126 + " PS2.09: 77% PS2:9-126 + " PS2.09: 77% PS2:9-126 + " PS2.09: 77% PS2:9-126 + " PS2.09: 77% PS2:9-126 + " PS2.09: 77% PS2:9-126 + " PS2.09: 77% PS2:9-126 + " PS2.09: 78% PS2:9-128 + " PS2.09: 78% PS2:9-128 + " PS1.11a: 68% PS1:11-5 +object module[s] PS1.05: 74% PS1:5-11 + " PS1.05: 88% PS1:5-12 + " PS1.12: 9% PS1:12-1 + " PS1.14: 33% PS1:14-5 + " PS1.14: 35% PS1:14-5 + " PS2.09: 73% PS2:9-120 + " PS2.09: 73% PS2:9-120 +object parameter[s] PS2.07: 20% PS2:7-10 + " PS2.07: 21% PS2:7-10 + " PS2.07: 23% PS2:7-11 +object references (descriptors) PS1.06: 0% +octal, unsigned OD.1: 21% OD(1)-1 + " OD.1: 37% OD(1)-1 +octal dump OD.1: 1% OD(1)-1 +octal number[s] CSH.1: 46% CSH(1)-9 + " USD.08: 70% USD:8-86 + " SCANF.3S: 37% SCANF(3S)-1 +octal value[s] PROMPTER.N: 70% PROMPTER(1)-1 +od - octal, decimal, hex, ascii dump OD.1: 1% OD(1)-1 +odd and even footer[s] USD.21: 89% USD:21-3 +odd and even header[s] USD.21: 89% USD:21-3 +ODT (console debugger mode) CONS.4: 45% CONS(4)-1 +OE ligature USD.21: 85% USD:21-3 +OF[s] AWK.1: 81% AWK(1)-2 + " USD.19: 24% USD:19-3 +offset, absolute file PS1.06: 68% PS1:6-31 +offset, page MS.7: 79% MS(7)-3 +Old File System SMM.14: 9% SMM:14-3 +Old News, Browsing through USD.09: 39% USD:9-5 +offset[s], byte PS2.03: 95% PS2:3-15 + " PS2.04: 84% PS2:4-8 +offset bytes PS2.09: 38% PS2:9-67 + " PS2.09: 38% PS2:9-67 + " PS2.09: 38% PS2:9-67 +offset into a file PS1.06: 68% PS1:6-30 +offset relative to end-of-file PS1.06: 68% PS1:6-31 +off_t PS1.06: 6% PS1:6-5 +One Variable Query Processor error message summary PS2.10: 91% PS2:10-82 +omin - multiple precision integer arithmetic MP.3X: 4% MP(3X)-1 +omout - multiple precision integer arithmetic MP.3X: 5% MP(3X)-1 +on line documentation HIER.7: 96% unknown +onintr CSH.1: 65% CSH(1)-13 +onintr shell command USD.04: 63% USD:4-31 +online documentation USD.01: 23% USD:1-4 +OOB SPP.4P: 58% SPP(4P)-1 +Open[s] CREAT.2: 5% CREAT(2)-1 + " LN.1: 47% LN(1)-1 + " SMM.13: 13% SMM:13-6 + " SMM.12A: 57% SMM:12-13 +open - open a file for reading or writing, or create a new file OPEN.2: 1% OPEN(2)-1 +open a stream FOPEN.3S: 3% FOPEN(3S)-1 +open call OPEN.2: 31% OPEN(2)-1 + " STAT.2: 16% STAT(2)-1 +open command USD.15: 74% USD:15-21 + " USD.15: 75% USD:15-21 +open file[s] DUP.2: 41% DUP(2)-1 + " FLOCK.2: 3% FLOCK(2)-1 + " FOPEN.3S: 62% FOPEN(3S)-1 + " FOPEN.3S: 84% FOPEN(3S)-1 + " INTRO.2: 27% INTRO(2)-2 + " OPEN.2: 35% OPEN(2)-1 + " POPEN.3: 53% POPEN(3)-1 + " PS1.02: 46% PS1:2-15 + " PS1.06: 60% PS1:6-28 + " PS2.01: 32% PS2:1-5 + " PS2.01: 32% PS2:1-5 + " PS2.01: 50% PS2:1-7 + " PS2.01: 52% PS2:1-8 + " PS2.01: 54% PS2:1-8 + " PS2.01: 55% PS2:1-8 + " PS2.01: 57% PS2:1-9 + " PS2.01: 60% PS2:1-9 + " PS2.03: 20% PS2:3-4 + " PS2.03: 26% PS2:3-5 + " PS2.03: 38% PS2:3-7 + " PS2.03: 39% PS2:3-7 + " PS2.04: 79% PS2:4-8 + " PS2.04: 84% PS2:4-8 + " PS2.04: 84% PS2:4-8 + " PS2.04: 86% PS2:4-8 + " PS2.04: 87% PS2:4-9 + " PS2.05: 9% PS2:5-1 + " PS2.05: 10% PS2:5-1 + " PS2.05: 13% PS2:5-2 +open file descriptor[s] PS1.08: 98% PS1:8-41 + " PS2.03: 61% PS2:3-10 + " PS2.04: 12% PS2:4-2 +open file table entry[s] PS2.04: 87% PS2:4-9 + " PS2.04: 87% PS2:4-9 + " PS2.04: 88% PS2:4-9 + " PS2.04: 89% PS2:4-9 +open file[s] PSTAT.8: 86% PSTAT(8)-3 + " SELECT.2: 79% SELECT(2)-2 + " SELECT.2: 84% SELECT(2)-2 + " SELECT.2: 87% SELECT(2)-2 + " SMM.01: 34% SMM:1-23 + " SMM.13: 7% SMM:13-4 + " SMM.13: 14% SMM:13-6 + " SMM.13: 14% SMM:13-6 + " SMM.14: 83% SMM:14-12 + " STAT.2: 15% STAT(2)-1 + " TEST.1: 42% TEST(1)-1 +open file descriptor[s] MKTEMP.3: 87% MKTEMP(3)-1 + " OPEN.2: 68% OPEN(2)-2 + " SMM.12A: 68% SMM:12-16 +Open file handling SMM.13: 13% SMM:13-6 +open file table PSTAT.8: 80% PSTAT(8)-3 +open for read & write PS1.06: 59% PS1:6-28 +open mode USD.14: 95% USD:14-22 + " USD.15: 74% USD:15-21 + " USD.15: 74% USD:15-21 + " USD.15: 74% USD:15-21 + " USD.15: 74% USD:15-21 + " USD.15: 79% USD:15-22 + " USD.16: 44% USD:16-8 +open quote USD.24: 96% USD:24-33 + " USD.24: 24% USD:24-9 +open reference format USD.31: 16% USD:31-2 + " USD.31: 14% USD:31-2 +open statement PS1.02: 36% PS1:2-12 + " PS1.02: 46% PS1:2-15 + " PS1.02: 47% PS1:2-15 + " PS1.02: 69% PS1:2-23 + " PS1.02: 74% PS1:2-24 + " PS1.02: 75% PS1:2-25 + " PS1.02: 76% PS1:2-25 + " PS1.03: 19% PS1:3-4 + " PS1.03: 20% PS1:3-4 + " PS1.03: 24% PS1:3-4 + " PS1.03: 25% PS1:3-4 + " PS1.03: 25% PS1:3-4 + " PS1.03: 52% PS1:3-7 + " PS1.03: 54% PS1:3-7 +open statement[s] SMM.12A: 29% SMM:12-7 +Open System Interconnection (OSI) model SMM.15: 3% SMM:15-3 +Opendir DIRECTORY.3: 20% DIRECTORY(3)-1 +open with file create PS1.06: 59% PS1:6-28 +open with truncation PS1.06: 59% PS1:6-28 +open(path, oflag, mode) PS1.06: 59% PS1:6-28 +opener[s], sentence STYLE.1: 30% STYLE(1)-1 + " USD.32: 1% USD:32-1 + " USD.32: 4% USD:32-1 + " USD.32: 6% USD:32-2 + " USD.32: 41% USD:32-6 + " USD.32: 42% USD:32-6 + " USD.32: 42% USD:32-6 + " USD.32: 42% USD:32-6 + " USD.32: 68% USD:32-10 +opening datagram socket PS1.07a: 38% PS1:7-9 + " PS1.07a: 43% PS1:7-10 + " PS1.07a: 53% PS1:7-12 + " PS1.07a: 56% PS1:7-13 +opening stream socket PS1.07a: 67% PS1:7-15 + " PS1.07a: 70% PS1:7-16 + " PS1.07a: 73% PS1:7-17 + " PS1.07a: 79% PS1:7-20 + " PS1.07a: 81% PS1:7-21 +openlog - control system log SYSLOG.3: 1% SYSLOG(3)-1 +openpl PLOT.3X: 8% PLOT(3X)-1 +operand[s], illegal TRAPOV.3F: 34% TRAPOV(3F)-1 + " TRAPOV.3F: 49% TRAPOV(3F)-1 + " TRAPOV.3F: 67% TRAPOV(3F)-1 + " TRAPOV.3F: 96% TRAPOV(3F)-1 +operand fault[s] CRASH.8V: 63% CRASH(8V)-2 + " SMM.12A: 67% SMM:12-16 +Operating 4.3BSD on the VAX SMM.01: 0% SMM:1-2 + " SMM.01: 2% SMM:1-2 + " SMM.01: 4% SMM:1-4 + " SMM.01: 6% SMM:1-4 + " SMM.01: 8% SMM:1-6 + " SMM.01: 9% SMM:1-6 + " SMM.01: 11% SMM:1-8 + " SMM.01: 13% SMM:1-8 + " SMM.01: 14% SMM:1-10 + " SMM.01: 15% SMM:1-10 + " SMM.01: 16% SMM:1-12 + " SMM.01: 17% SMM:1-12 + " SMM.01: 19% SMM:1-14 + " SMM.01: 21% SMM:1-14 + " SMM.01: 22% SMM:1-16 + " SMM.01: 23% SMM:1-16 + " SMM.01: 25% SMM:1-18 + " SMM.01: 26% SMM:1-18 + " SMM.01: 28% SMM:1-20 + " SMM.01: 30% SMM:1-20 + " SMM.01: 32% SMM:1-22 + " SMM.01: 34% SMM:1-22 + " SMM.01: 36% SMM:1-24 + " SMM.01: 37% SMM:1-24 + " SMM.01: 39% SMM:1-26 + " SMM.01: 40% SMM:1-26 + " SMM.01: 41% SMM:1-28 + " SMM.01: 43% SMM:1-28 + " SMM.01: 45% SMM:1-30 + " SMM.01: 47% SMM:1-30 + " SMM.01: 50% SMM:1-32 + " SMM.01: 51% SMM:1-32 + " SMM.01: 53% SMM:1-34 + " SMM.01: 55% SMM:1-34 + " SMM.01: 57% SMM:1-36 + " SMM.01: 59% SMM:1-36 + " SMM.01: 60% SMM:1-38 + " SMM.01: 62% SMM:1-38 + " SMM.01: 64% SMM:1-40 + " SMM.01: 66% SMM:1-40 + " SMM.01: 69% SMM:1-42 + " SMM.01: 71% SMM:1-42 + " SMM.01: 72% SMM:1-44 + " SMM.01: 73% SMM:1-44 + " SMM.01: 75% SMM:1-46 + " SMM.01: 76% SMM:1-46 + " SMM.01: 78% SMM:1-48 + " SMM.01: 80% SMM:1-48 + " SMM.01: 82% SMM:1-50 + " SMM.01: 84% SMM:1-50 + " SMM.01: 85% SMM:1-52 + " SMM.01: 86% SMM:1-52 + " SMM.01: 87% SMM:1-54 + " SMM.01: 88% SMM:1-54 + " SMM.01: 89% SMM:1-56 + " SMM.01: 90% SMM:1-56 + " SMM.01: 91% SMM:1-58 + " SMM.01: 91% SMM:1-58 + " SMM.01: 93% SMM:1-60 + " SMM.01: 93% SMM:1-60 + " SMM.01: 94% SMM:1-62 + " SMM.01: 95% SMM:1-62 + " SMM.01: 97% SMM:1-64 + " SMM.01: 99% SMM:1-64 +Operating 4.3BSD on the VAX, Installing and SMM.11: 7% SMM:11-2 + " SMM.01: 0% SMM:1-1 +operand[s], lvalue PS1.01: 12% PS1:1-4 + " PS1.01: 26% PS1:1-8 + " PS1.01: 26% PS1:1-8 +operation[s], I/O PS1.18: 11% PS1:18-4 +operation[s], arithmetic BC.1: 55% BC(1)-2 + " SMM.19: 70% SMM:19-20 + " USD.05: 42% USD:5-4 + " USD.05: 45% USD:5-4 + " USD.06: 23% USD:6-3 +operation[s], Bootstrap SMM.13: 99% SMM:13-34 +operation[s], command PTY.4: 81% PTY(4)-2 + " SMM.13: 26% SMM:13-10 + " SMM.12A: 75% SMM:12-18 +operation[s], conversion SMM.19: 30% SMM:19-9 + " SMM.19: 30% SMM:19-9 + " SMM.19: 31% SMM:19-9 + " SMM.19: 31% SMM:19-9 +operation[s], non-blocking PS1.06: 25% PS1:6-13 + " PS1.06: 52% PS1:6-25 + " PS1.06: 54% PS1:6-26 +Operators, Additive PS1.01: 18% PS1:1-6 + " PS1.01: 22% PS1:1-7 + " PS1.01: 26% PS1:1-8 + " PS1.01: 29% PS1:1-9 + " PS1.01: 29% PS1:1-9 + " PS1.01: 38% PS1:1-12 +operations, copy IFCONFIG.8C: 43% IFCONFIG(8C)-1 + " SMM.14: 69% SMM:14-10 + " SMM.15: 92% SMM:15-26 +operations, editing USD.01: 27% USD:1-4 + " USD.13: 95% USD:13-16 + " USD.16: 17% USD:16-3 +operation[s], I/O HK.4: 18% HK(4)-1 + " HP.4: 9% HP(4)-1 + " HP.4: 82% HP(4)-4 + " MT.4: 78% MT(4)-1 + " SA.8: 35% SA(8)-1 + " SA.8: 37% SA(8)-1 + " SMM.02: 65% SMM:2-20 + " SMM.02: 69% SMM:2-21 + " UDA.4: 20% UDA(4)-1 + " UP.4: 16% UP(4)-1 +operation[s], ioctl MTIO.4: 34% MTIO(4)-1 + " PTY.4: 73% PTY(4)-2 + " SMM.13: 59% SMM:13-21 + " SMM.13: 80% SMM:13-27 +operation[s], multi-user INIT.8: 7% INIT(8)-1 + " INIT.8: 21% INIT(8)-1 + " INIT.8: 57% INIT(8)-1 + " INIT.8: 71% INIT(8)-1 + " REBOOT.2: 63% REBOOT(2)-1 + " REBOOT.8: 22% REBOOT(8)-1 +operation, multiuser FSCK.8: 44% FSCK(8)-1 +operation[s], numeric CSH.1: 28% CSH(1)-6 +operation[s], output FSEEK.3S: 31% FSEEK(3S)-1 + " SMM.13: 25% SMM:13-9 + " SMM.15: 47% SMM:15-14 + " SMM.15: 49% SMM:15-15 + " SMM.15: 49% SMM:15-15 +operation[s], pattern matching PICK.N: 22% PICK(1)-1 + " PICK.N: 28% PICK(1)-1 + " USD.08: 40% USD:8-47 + " USD.08: 40% USD:8-47 +operation, single user INIT.8: 9% INIT(8)-1 +operation[s], socket FCNTL.2: 97% FCNTL(2)-2 + " ICMP.4P: 58% ICMP(4P)-1 + " IDP.4P: 31% IDP(4P)-1 + " INTRO.2: 48% INTRO(2)-4 + " INTRO.2: 59% INTRO(2)-5 + " INTRO.2: 59% INTRO(2)-5 + " IP.4P: 65% IP(4P)-1 + " SMM.13: 36% SMM:13-13 + " SPP.4P: 59% SPP(4P)-1 + " TCP.4P: 74% TCP(4P)-1 + " UDP.4P: 58% UDP(4P)-1 +operations, standalone system SMM.01: 37% SMM:1-24 + " SMM.01: 37% SMM:1-24 + " SMM.01: 38% SMM:1-25 +operation[s], system SMM.01: 24% SMM:1-17 + " SMM.01: 73% SMM:1-45 + " SMM.01: 84% SMM:1-51 +Operation of UUCP, Installation and SMM.09: 3% SMM:9-2 + " SMM.09: 8% SMM:9-2 + " SMM.09: 12% SMM:9-4 + " SMM.09: 17% SMM:9-4 + " SMM.09: 22% SMM:9-6 + " SMM.09: 27% SMM:9-6 + " SMM.09: 32% SMM:9-8 + " SMM.09: 37% SMM:9-8 + " SMM.09: 43% SMM:9-10 + " SMM.09: 48% SMM:9-10 + " SMM.09: 53% SMM:9-12 + " SMM.09: 57% SMM:9-12 + " SMM.09: 61% SMM:9-14 + " SMM.09: 65% SMM:9-14 + " SMM.09: 72% SMM:9-16 + " SMM.09: 77% SMM:9-16 + " SMM.09: 83% SMM:9-18 + " SMM.09: 86% SMM:9-18 + " SMM.09: 92% SMM:9-20 + " SMM.09: 98% SMM:9-20 +operators, arithmetic PS1.15: 50% PS1:15-15 + " PS2.07: 7% PS2:7-5 + " PS2.10: 37% PS2:10-33 + " PS2.10: 37% PS2:10-33 + " PS2.10: 38% PS2:10-34 +Operator[s], Assignment PS1.01: 26% PS1:1-8 + " PS1.01: 37% PS1:1-11 + " PS1.01: 37% PS1:1-11 + " PS1.01: 95% PS1:1-33 + " PS1.09: 56% PS1:9-6 + " PS2.06: 36% PS2:6-13 + " PS2.06: 36% PS2:6-13 + " PS2.06: 36% PS2:6-13 +operator[s], binary PS1.01: 91% PS1:1-31 + " PS1.01: 95% PS1:1-32 + " PS1.15: 49% PS1:15-14 + " PS1.15: 51% PS1:15-15 + " PS2.06: 31% PS2:6-12 + " PS2.06: 32% PS2:6-12 +Operator, Comma PS1.01: 38% PS1:1-12 + " PS1.01: 39% PS1:1-12 + " PS1.01: 95% PS1:1-33 +operator[s], Comparison PS2.10: 40% PS2:10-35 + " PS2.10: 40% PS2:10-35 + " PS2.10: 41% PS2:10-35 +operators, arithmetic USD.19: 53% USD:19-5 + " USD.25: 66% USD:25-10 +operator[s], assignment CSH.1: 77% CSH(1)-16 + " SMM.19: 30% SMM:19-9 + " SMM.19: 53% SMM:19-15 + " SMM.19: 74% SMM:19-21 + " SMM.19: 77% SMM:19-22 + " USD.19: 54% USD:19-5 +operator[s], binary SMM.19: 12% SMM:19-4 + " SMM.19: 12% SMM:19-4 + " SMM.19: 12% SMM:19-4 + " SMM.19: 75% SMM:19-21 +operator[s], C AWK.1: 33% AWK(1)-1 + " DBX.1: 45% DBX(1)-3 + " SMM.19: 48% SMM:19-14 +operator[s], conversion SMM.19: 2% SMM:19-2 + " SMM.19: 3% SMM:19-2 + " SMM.19: 28% SMM:19-8 + " SMM.19: 30% SMM:19-9 + " SMM.19: 30% SMM:19-9 + " SMM.19: 30% SMM:19-9 + " SMM.19: 37% SMM:19-11 + " SMM.19: 38% SMM:19-11 + " SMM.19: 40% SMM:19-11 + " SMM.19: 64% SMM:19-18 +operator[s], logical USD.19: 69% USD:19-6 +Operator[s], Relational STRUCT.1: 18% STRUCT(1)-1 + " USD.06: 44% USD:6-5 + " USD.19: 3% USD:19-1 + " USD.19: 38% USD:19-3 + " USD.19: 68% USD:19-6 + " USD.25: 66% USD:25-10 + " USD.25: 67% USD:25-10 +Operator[s], Unary SMM.19: 12% SMM:19-4 + " SMM.19: 64% SMM:19-18 + " SMM.19: 64% SMM:19-18 +operator precedence[s] USD.24: 22% USD:24-9 + " USD.25: 67% USD:25-10 + " USD.26: 15% USD:26-2 + " EXPR.1: 21% EXPR(1)-1 +operators, expression PS1.01: 17% PS1:1-6 + " PS1.01: 18% PS1:1-6 + " PS1.05: 38% PS1:5-5 + " PS1.05: 48% PS1:5-7 +operator[s], logical PS2.06: 36% PS2:6-13 + " PS2.10: 40% PS2:10-35 + " PS2.10: 40% PS2:10-35 + " PS2.10: 40% PS2:10-35 +operator, mod PS1.15: 81% PS1:15-24 + " PS2.10: 84% PS2:10-76 + " PS2.10: 84% PS2:10-76 +Operators, Multiplicative PS1.01: 18% PS1:1-6 + " PS1.01: 28% PS1:1-9 + " PS1.01: 28% PS1:1-9 +operator[s], precedence of expression PS1.01: 17% PS1:1-6 +operator, prefix PS1.16: 88% PS1:16-11 + " PS2.06: 31% PS2:6-11 + " PS2.06: 31% PS2:6-11 +Operator[s], Relational PS1.01: 32% PS1:1-10 + " PS1.01: 33% PS1:1-10 + " PS2.06: 35% PS2:6-13 + " PS2.06: 35% PS2:6-13 + " PS2.10: 85% PS2:10-77 +Operator[s], Shift PS1.01: 31% PS1:1-9 + " PS1.01: 31% PS1:1-9 + " PS1.09: 73% PS1:9-8 +Operator[s], Unary PS1.01: 18% PS1:1-6 + " PS1.01: 22% PS1:1-7 + " PS1.01: 23% PS1:1-7 + " PS1.01: 24% PS1:1-7 + " PS1.01: 88% PS1:1-30 + " PS1.01: 91% PS1:1-31 + " PS1.01: 95% PS1:1-32 + " PS1.15: 49% PS1:15-14 + " PS1.15: 51% PS1:15-15 + " PS1.15: 51% PS1:15-15 + " PS2.06: 30% PS2:6-11 + " PS2.06: 30% PS2:6-11 + " PS2.10: 29% PS2:10-28 +operator precedence in C PS1.01: 95% PS1:1-32 +optimal size SMM.14: 35% SMM:14-6 + " SMM.14: 35% SMM:14-6 + " SMM.14: 35% SMM:14-6 +Optimization SMM.19: 36% SMM:19-11 + " SMM.12A: 23% SMM:12-6 +Optimization, Cursor Movement CURSES.3X: 19% CURSES(3X)-1 +optimization preference FS.5: 25% FS(5)-1 + " NEWFS.8: 48% NEWFS(8)-1 + " TUNEFS.8: 64% TUNEFS(8)-1 +optimization, Cursor motion PS1.18: 3% PS1:18-3 + " PS1.18: 22% PS1:18-6 +optimization[s], motion PS1.18: 3% PS1:18-3 + " PS1.18: 3% PS1:18-3 + " PS1.18: 24% PS1:18-7 + " PS1.18: 76% PS1:18-22 +optimization[s], movement PS1.18: 2% PS1:18-3 + " PS1.18: 28% PS1:18-7 +optimizer TRPFPE.3F: 92% TRPFPE(3F)-1 +optimizer, C CC.1: 33% CC(1)-1 +optimizer, object code PS1.02: 8% PS1:2-5 + " PS1.04: 72% PS1:4-37 + " PS1.04: 73% PS1:4-37 +optimizer, peephole SMM.12A: 12% SMM:12-4 +Optimizing storage utilization SMM.14: 22% SMM:14-4 +option[s], boolean USD.16: 51% USD:16-10 +options, compilation SMM.02: 49% SMM:2-15 + " SMM.07: 88% SMM:7-1 + " SMM.07: 90% SMM:7-1 + " SMM.07A: 78% SMM:07-34 + " SMM.07A: 80% SMM:07-36 +option[s], configuration file DMF.4: 93% DMF(4)-1 + " DMZ.4: 90% DMZ(4)-1 + " SMM.02: 92% SMM:2-32 + " SMM.13: 57% SMM:13-20 +options, IP IP.4P: 20% IP(4P)-1 + " IP.4P: 37% IP(4P)-1 + " IP.4P: 88% IP(4P)-1 + " SMM.12: 75% SMM:12-1 + " SMM.13: 65% SMM:13-23 + " SMM.13: 67% SMM:13-23 + " SMM.13: 67% SMM:13-23 + " SMM.13: 69% SMM:13-24 + " SMM.12A: 74% SMM:12-17 +option[s], list of mail customizing USD.07: 72% USD:7-17 +option[s], list of mh commands and USD.08: 88% USD:8-106 +options, load-time CC.1: 12% CC(1)-1 + " F77.1: 15% F77(1)-1 + " PC.1: 37% PC(1)-1 +option[s], socket GETSOCKOPT.2: 98% GETSOCKOPT(2)-2 + " IDP.4P: 51% IDP(4P)-1 + " SMM.13: 86% SMM:13-29 + " SPP.4P: 79% SPP(4P)-2 + " TCP.4P: 50% TCP(4P)-1 +option[s], socket-level GETSOCKOPT.2: 31% GETSOCKOPT(2)-1 + " SMM.15: 91% SMM:15-25 +option argument[s] GETOPT.3: 87% GETOPT(3)-2 + " GETOPT.3: 97% GETOPT(3)-2 + " PC.1: 63% PC(1)-2 + " SORT.1: 57% SORT(1)-1 + " USD.24: 1% USD:24-2 + " USD.30: 46% USD:30-5 + " GETOPT.3: 20% GETOPT(3)-1 +option argument, example of parsing GETOPT.3: 42% GETOPT(3)-2 +option flag[s] RLOGIN.1C: 90% RLOGIN(1C)-1 + " TSET.1: 14% TSET(1)-1 +option letter[s] GETOPT.3: 2% GETOPT(3)-1 + " GETOPT.3: 10% GETOPT(3)-1 + " GETOPT.3: 13% GETOPT(3)-1 + " GETOPT.3: 41% GETOPT(3)-1 +option list[s] IP.4P: 35% IP(4P)-1 + " SMM.09: 11% SMM:9-3 + " SMM.09: 12% SMM:9-3 + " USD.33: 80% USD:33-8 +option name[s] MAIL.1: 62% MAIL(1)-4 + " SMM.15: 64% SMM:15-19 + " USD.16: 51% USD:16-10 + " USD.28: 9% USD:28-2 +option value[s] DD.1: 10% DD(1)-1 + " GETSOCKOPT.2: 18% GETSOCKOPT(2)-1 + " GETSOCKOPT.2: 24% GETSOCKOPT(2)-1 + " SMM.12: 59% SMM:12-1 + " SMM.12: 59% SMM:12-1 + " USD.16: 51% USD:16-10 + " SMM.12A: 59% SMM:12-14 + " SMM.12A: 59% SMM:12-14 +options (see instead under specific commands)[s] SPELL.1: 50% SPELL(1)-1 + " USD.31: 22% USD:31-3 + " SMM.12A: 41% SMM:12-10 +OR[s] AWK.1: 82% AWK(1)-2 + " USD.19: 24% USD:19-3 +options, pi PS1.04: 66% PS1:4-34 + " PS1.04: 66% PS1:4-34 + " PS1.04: 67% PS1:4-34 +order, alphabetical PS2.07: 32% PS2:7-15 + " PS2.09: 9% PS2:9-16 + " PS2.09: 9% PS2:9-16 + " PS2.09: 20% PS2:9-39 + " PS2.09: 20% PS2:9-39 + " SORT.1: 74% SORT(1)-1 + " USD.01: 28% USD:1-5 + " USD.01: 40% USD:1-6 + " USD.01: 41% USD:1-7 + " USD.07: 72% USD:7-17 +order, ascending BAD144.8: 23% BAD144(8)-1 +order, byte PS1.08: 40% PS1:8-15 + " PS1.08: 40% PS1:8-15 + " PS1.08: 40% PS1:8-15 + " PS1.08: 40% PS1:8-15 +order, column-major PS1.02: 27% PS1:2-10 + " PS1.02: 38% PS1:2-13 + " PS2.06: 45% PS2:6-16 + " PS2.06: 64% PS2:6-22 +order[s], integer BESSEL.3F: 8% BESSEL(3F)-1 + " BESSEL.3F: 72% BESSEL(3F)-1 + " J0.3M: 66% J0(3M)-1 + " USD.06: 3% USD:6-1 + " USD.06: 58% USD:6-7 +order, network INET.3N: 37% INET(3N)-1 + " BYTEORDER.3N: 11% BYTEORDER(3N)-1 + " BYTEORDER.3N: 50% BYTEORDER(3N)-1 + " GETHOSTBYNAME.3N: 43% GETHOSTBYNAME(3) + " SMM.22: 19% SMM:22-2 +order, sort RUPTIME.1C: 83% RUPTIME(1C)-1 + " SMM.12A: 46% SMM:12-11 +order of application of sed command[s] USD.18: 15% USD:18-2 +Orphaned files FSCK.8: 84% FSCK(8)-2 +Ossanna, J. F. NROFF.1: 91% NROFF(1)-1 + " TROFF.1: 94% TROFF(1)-2 +Out of band data SMM.15: 90% SMM:15-25 +ordered - storage structure type PS2.10: 31% PS2:10-29 +ordering keys PS2.10: 23% PS2:10-23 + " PS2.10: 23% PS2:10-23 + " PS2.10: 24% PS2:10-23 +out-of-band data GETSOCKOPT.2: 74% GETSOCKOPT(2)-2 + " INTRO.4N: 20% INTRO(4N)-1 + " RCMD.3: 52% RCMD(3)-1 + " REXEC.3: 95% REXEC(3)-1 + " SMM.13: 37% SMM:13-13 + " SMM.13: 38% SMM:13-14 + " SMM.15: 56% SMM:15-17 + " SMM.15: 91% SMM:15-25 + " SOCKET.2: 48% SOCKET(2)-1 +out-of-band data PS1.06: 75% PS1:6-33 + " PS1.07a: 76% PS1:7-19 + " PS1.08: 25% PS1:8-9 + " PS1.08: 60% PS1:8-24 + " PS1.08: 61% PS1:8-24 + " PS1.08: 63% PS1:8-25 + " PS1.08: 20% PS1:8-8 + " PS1.08: 58% PS1:8-24 + " PS1.08: 58% PS1:8-24 + " PS1.08: 58% PS1:8-24 + " PS1.08: 59% PS1:8-24 + " PS1.08: 60% PS1:8-24 + " PS1.08: 60% PS1:8-24 + " PS1.08: 62% PS1:8-25 + " PS1.08: 87% PS1:8-36 +out-of-band message, high-priority PS1.06: 81% PS1:6-35 +out-of-band sender information MHOOK.N: 12% MHOOK(1)-1 +outer window[s] PS1.18: 48% PS1:18-14 + " PS1.18: 48% PS1:18-14 +outgoing line[s] TTY.4: 47% TTY(4)-5 +outgoing mail MAIL.1: 95% MAIL(1)-6 + " MAIL.1: 95% MAIL(1)-6 + " USD.07: 80% USD:7-19 + " USD.08: 83% USD:8-101 +outgoing mailer SMM.07A: 61% SMM:07-26 + " SMM.07A: 69% SMM:07-30 +outgoing message[s] GETSOCKOPT.2: 57% GETSOCKOPT(2)-2 + " IFCONFIG.8C: 41% IFCONFIG(8C)-1 + " SMM.16: 60% SMM:16-8 + " USD.07: 0% USD:7-2 +Outgoing packet[s] ICMP.4P: 46% ICMP(4P)-1 + " IMP.4P: 22% IMP(4P)-1 + " IMP.4P: 41% IMP(4P)-1 + " IP.4P: 22% IP(4P)-1 + " IP.4P: 50% IP(4P)-1 + " IP.4P: 55% IP(4P)-1 + " IP.4P: 57% IP(4P)-1 + " SMM.15: 38% SMM:15-12 + " SMM.15: 52% SMM:15-16 + " SMM.15: 81% SMM:15-23 + " SMM.15: 81% SMM:15-23 +Outline of a Sample Paper USD.22: 76% USD:22-14 +Output, Columned USD.23: 40% USD:23-5 +outgoing packet[s] PS1.08: 21% PS1:8-8 + " PS1.08: 86% PS1:8-35 + " PS1.08: 86% PS1:8-35 +output, debugging LIB2648.3X: 11% LIB2648(3X)-1 + " LIB2648.3X: 98% LIB2648(3X)-5 + " SMM.07: 90% SMM:7-1 + " SMM.09: 7% SMM:9-2 + " SMM.09: 14% SMM:9-4 + " SMM.09: 23% SMM:9-6 + " SMM.09: 35% SMM:9-8 + " SMM.19: 47% SMM:19-13 + " UUCICO.8C: 31% UUCICO(8C)-1 + " SMM.07A: 80% SMM:07-36 +output, diagnostic CSH.1: 42% CSH(1)-8 + " CSH.1: 44% CSH(1)-9 + " PI.1: 51% PI(1)-1 + " PS1.04: 25% PS1:4-15 + " PS1.13: 32% PS1:13-6 + " PS1.13: 52% PS1:13-10 + " PS1.13: 70% PS1:13-14 + " PS2.01: 67% PS2:1-10 + " PS2.10: 79% PS2:10-70 + " RCMD.3: 41% RCMD(3)-1 + " REXEC.3: 66% REXEC(3)-1 + " STTY.1: 3% STTY(1)-1 + " USD.04: 35% USD:4-16 + " USD.04: 35% USD:4-16 + " USD.04: 36% USD:4-16 + " USD.04: 36% USD:4-16 + " USD.04: 75% USD:4-36 + " USD.04: 88% USD:4-41 + " USD.08: 32% USD:8-36 +output, directing TC.1: 66% TC(1)-1 + " TK.1: 80% TK(1)-1 + " USD.09: 43% USD:9-5 +output, Error SMM.06: 42% SMM:6-3 + " SMM.06: 42% SMM:6-3 + " USD.24: 11% USD:24-5 + " USD.24: 81% USD:24-26 +output, file PS1.04: 51% PS1:4-27 + " PS1.04: 59% PS1:4-30 + " PS1.04: 59% PS1:4-30 + " PS1.04: 67% PS1:4-35 + " PS1.04: 68% PS1:4-35 + " PS1.04: 68% PS1:4-35 +output, flush FLUSH.3F: 13% FLUSH(3F)-1 + " TTY.4: 94% TTY(4)-10 + " EXIT.3F: 26% EXIT(3F)-1 +output, flush buffered EXIT.3: 67% +output, formatted PRINTF.3S: 1% PRINTF(3S)-1 +output, gathering of data for PS1.06: 53% PS1:6-25 +Output, Standard PS1.07a: 19% PS1:7-4 +output, Terminal PS1.06: 91% PS1:6-38 + " PS1.08: 62% PS1:8-25 +Output buffering PS1.04: 59% PS1:4-30 +output device PS2.10: 13% PS2:10-16 + " PS2.10: 74% PS2:10-64 + " PS2.10: 75% PS2:10-67 +output field PS1.02: 69% PS1:2-23 + " PS1.02: 70% PS1:2-23 + " PS1.02: 70% PS1:2-23 +output file[s] PS1.03: 20% PS1:3-4 + " PS1.03: 22% PS1:3-4 + " PS1.03: 24% PS1:3-4 + " PS1.03: 81% PS1:3-11 + " PS1.04: 72% PS1:4-37 + " PS1.04: 72% PS1:4-37 + " PS1.04: 87% PS1:4-44 + " PS1.04: 92% PS1:4-47 + " PS2.01: 60% PS2:1-9 + " PS2.01: 63% PS2:1-10 + " PS2.01: 68% PS2:1-10 + " PS2.01: 72% PS2:1-11 + " PS2.01: 78% PS2:1-12 + " PS2.03: 20% PS2:3-4 + " PS2.03: 21% PS2:3-4 + " PS2.03: 81% PS2:3-13 + " PS2.03: 86% PS2:3-14 + " PS2.03: 87% PS2:3-14 + " PS2.09: 77% PS2:9-126 + " PS2.10: 56% PS2:10-50 + " PS2.10: 56% PS2:10-50 + " PS2.10: 57% PS2:10-50 + " PS2.10: 57% PS2:10-50 +output functions PS1.18: 19% PS1:18-6 + " PS1.18: 32% PS1:18-8 +output port PS2.09: 36% PS2:9-65 + " PS2.09: 41% PS2:9-72 + " PS2.09: 66% PS2:9-112 +output stream PS1.04: 74% PS1:4-38 + " PS1.16: 1% PS1:16-1 + " PS2.03: 85% PS2:3-14 + " PS2.04: 60% PS2:4-6 +output unit[s] PS1.02: 71% PS1:2-24 + " PS1.02: 71% PS1:2-24 + " PS2.06: 60% PS2:6-21 + " PS2.06: 62% PS2:6-22 + " PS2.06: 81% PS2:6-28 +output(c) PS1.16: 47% PS1:16-6 +Overflow PS1.04: 93% PS1:4-47 +output, graphic PLOT.3F: 51% PLOT(3F)-1 + " PLOT.3X: 21% PLOT(3X)-1 +output, message MHL.N: 37% MHL(1)-1 + " USD.03: 88% USD:3-21 + " USD.03: 89% USD:3-21 + " USD.08: 27% USD:8-30 + " USD.08: 28% USD:8-30 +output, multicolumn COL.1: 18% COL(1)-1 +output, pending CSH.1: 7% CSH(1)-2 + " EXIT.3: 25% EXIT(3)-1 +Output, Standard CSH.1: 40% CSH(1)-8 + " CSH.1: 53% CSH(1)-11 + " SETBUF.3S: 35% SETBUF(3S)-1 + " STDIO.3S: 20% STDIO(3S)-1 +output, stopping USD.04: 22% USD:4-10 + " SMM.12A: 46% SMM:12-10 + " GETTYTAB.5: 46% GETTYTAB(5)-2 + " TTY.4: 85% TTY(4)-9 + " WINDOW.1: 39% WINDOW(1)-3 +output, suppress formatted USD.24: 2% USD:24-2 +output, Terminal STTY.1: 75% STTY(1)-2 +output, text length on the last line USD.24: 34% USD:24-12 +output, write, writev - write WRITE.2: 1% WRITE(2)-1 +output base[s] DC.1: 5% DC(1)-1 + " DC.1: 69% DC(1)-2 + " USD.05: 4% USD:5-1 + " USD.05: 22% USD:5-3 + " USD.05: 70% USD:5-6 + " USD.05: 70% USD:5-6 + " USD.05: 71% USD:5-6 + " USD.05: 72% USD:5-6 + " USD.05: 71% USD:5-6 + " USD.06: 19% USD:6-3 + " USD.06: 20% USD:6-3 +output block size DD.1: 8% DD(1)-1 + " DD.1: 15% DD(1)-1 + " DD.1: 17% DD(1)-1 +output buffer[s] SMM.15: 47% SMM:15-14 + " GETSOCKOPT.2: 78% GETSOCKOPT(2)-2 +output character[s] SMM.20: 46% SMM:20-4 + " TTY.4: 10% TTY(4)-2 + " USD.01: 15% USD:1-3 +output conversion ECVT.3: 5% ECVT(3)-1 + " PRINTF.3S: 1% PRINTF(3S)-1 + " USD.06: 22% USD:6-3 +output device resolution USD.24: 34% USD:24-12 + " SMM.12A: 42% SMM:12-10 +output field separator AWK.1: 42% AWK(1)-1 + " AWK.1: 81% AWK(1)-2 + " USD.19: 20% USD:19-2 + " USD.19: 24% USD:19-3 +output filter[s] POPEN.3: 59% POPEN(3)-1 + " POPEN.3: 88% POPEN(3)-1 + " SMM.06: 46% SMM:6-4 + " SMM.06: 50% SMM:6-4 +Output filter specification[s] SMM.06: 58% SMM:6-5 +output flush character TTY.4: 38% TTY(4)-4 +output format[s] AWK.1: 83% AWK(1)-2 + " SCAN.N: 58% SCAN(1)-1 +Output formatting USD.19: 25% USD:19-3 +output functions SMM.13: 88% SMM:13-30 +Output Line Numbering USD.24: 72% USD:24-23 + " USD.24: 10% USD:24-4 +output operation[s] FSEEK.3S: 31% FSEEK(3S)-1 + " SMM.13: 25% SMM:13-9 + " SMM.15: 47% SMM:15-14 + " SMM.15: 49% SMM:15-15 + " SMM.15: 49% SMM:15-15 +output page USD.22: 17% USD:22-3 + " USD.25: 87% USD:25-13 + " VGRIND.1: 52% VGRIND(1)-1 +output processing TTY.4: 33% TTY(4)-4 +output queue[s] MORE.1: 90% MORE(1)-3 + " SMM.13: 22% SMM:13-9 + " SMM.13: 36% SMM:13-13 + " SMM.15: 34% SMM:15-11 + " TTY.4: 19% TTY(4)-2 + " TTY.4: 34% TTY(4)-4 + " TTY.4: 34% TTY(4)-4 + " TTY.4: 39% TTY(4)-4 + " TTY.4: 70% TTY(4)-7 + " TTY.4: 79% TTY(4)-8 + " TTY.4: 80% TTY(4)-8 + " TTY.4: 14% TTY(4)-2 +output record separator AWK.1: 43% AWK(1)-1 + " AWK.1: 82% AWK(1)-2 + " USD.19: 24% USD:19-3 + " USD.19: 25% USD:19-3 +output repeatedly YES.1: 68% unknown +Output saved vertical space USD.24: 40% USD:24-14 +output speed[s] GETTYTAB.5: 36% GETTYTAB(5)-2 +output stream[s] M4.1: 46% M4(1)-1 + " M4.1: 50% M4(1)-1 + " M4.1: 57% M4(1)-1 + " PRINTF.3S: 18% PRINTF(3S)-1 + " PUTC.3S: 48% PUTC(3S)-1 + " SETBUF.3S: 16% SETBUF(3S)-1 + " USD.01: 60% USD:1-9 +output tab[s] NROFF.1: 76% NROFF(1)-1 +output text line USD.24: 33% USD:24-12 + " USD.24: 39% USD:24-13 + " USD.24: 42% USD:24-14 +Output to file[s] USD.04: 6% USD:4-4 +output translation USD.24: 61% USD:24-20 +Over Write USD.17: 52% USD:17-23 +Over Write mode USD.17: 83% USD:17-39 + " USD.17: 3% USD:17-2 +over-write-mode USD.17: 83% USD:17-39 +Overflow INFNAN.3M: 15% INFNAN(3M)-1 + " INFNAN.3M: 76% INFNAN(3M)-1 +overflow, floating point TRAPOV.3F: 4% TRAPOV(3F)-1 +overflow[s], buffer PS2.10: 89% PS2:10-79 + " PS2.10: 91% PS2:10-82 +overflow and divide check in expression evaluation PS1.01: 19% PS1:1-6 +overflow[s], integer FLOOR.3M: 91% FLOOR(3M)-1 + " MATH.3M: 15% MATH(3M)-2 + " TRAPER.3F: 21% TRAPER(3F)-1 +overflow, silo DH.4: 82% DH(4)-1 + " DHU.4: 67% DHU(4)-1 + " DMF.4: 75% DMF(4)-1 + " DMZ.4: 73% DMZ(4)-1 + " DZ.4: 77% DZ(4)-1 +overhead, system call IK.4: 37% IK(4)-1 + " PS.4: 14% PS(4)-1 + " SMM.14: 61% SMM:14-9 +overlapping window[s] PS1.18: 20% PS1:18-6 + " PS1.18: 56% PS1:18-16 +overlay(win1, win2) PS1.18: 40% PS1:18-11 +overstrike[s] UL.1: 50% UL(1)-1 + " USD.25: 41% USD:25-7 +Overstriking USD.24: 65% USD:24-21 + " USD.24: 0% USD:24-2 + " USD.24: 59% USD:24-19 +overview, mh USD.08: 2% USD:8-2 +overwrite(win1, win2) PS1.18: 40% PS1:18-11 +owner (pid/pgrp), get descriptor PS1.06: 40% PS1:6-19 +owners, List SMM.07A: 21% SMM:07-11 + " SMM.12A: 93% SMM:12-22 +ownership of a file PS1.06: 65% PS1:6-29 +O_APPEND PS1.06: 59% PS1:6-28 +O_CREAT PS1.06: 59% PS1:6-28 +O_EXCL PS1.06: 59% PS1:6-28 +O_NDELAY PS1.06: 59% PS1:6-28 +O_RDONLY PS1.06: 59% PS1:6-28 +O_RDWR PS1.06: 59% PS1:6-28 +O_TRUNC PS1.06: 59% PS1:6-28 +O_WRONLY PS1.06: 59% PS1:6-28 +P0 region PS1.06: 14% PS1:6-10 +P1 region PS1.06: 14% PS1:6-10 +ownership, file CHGRP.1: 44% CHGRP(1)-1 + " CHOWN.2: 2% CHOWN(2)-1 + " FIND.1: 35% FIND(1)-1 +ownership, quot - summarize file system QUOT.8: 6% QUOT(8)-1 +P[s] SMM.12A: 43% SMM:12-10 + " SMM.12A: 75% SMM:12-17 +P1003 committee on Unix USD.09: 88% USD:9-11 +pac SMM.12A: 90% SMM:12-21 +pac - printer/plotter accounting information PAC.8: 2% PAC(8)-1 +Package[s], Formatting USD.01: 67% USD:1-10 + " USD.01: 78% USD:1-12 + " USD.32: 71% USD:32-10 +package, screen PS1.18: 2% + " PS1.18: 7% PS1:18-3 + " PS1.18: 7% PS1:18-4 + " PS1.18: 12% PS1:18-4 + " PS1.18: 14% PS1:18-5 + " PS1.18: 15% PS1:18-5 + " PS1.18: 18% PS1:18-6 + " PS1.18: 22% PS1:18-6 + " PS1.18: 24% PS1:18-6 + " PS1.18: 24% PS1:18-7 + " PS1.18: 29% PS1:18-8 + " PS1.18: 34% PS1:18-8 + " PS1.18: 36% PS1:18-10 + " PS1.18: 39% PS1:18-10 + " PS1.18: 42% PS1:18-12 + " PS1.18: 44% PS1:18-12 + " PS1.18: 47% PS1:18-14 + " PS1.18: 51% PS1:18-14 + " PS1.18: 54% PS1:18-16 + " PS1.18: 57% PS1:18-16 + " PS1.18: 91% PS1:18-2 +packet[s], broadcast IDP.4P: 26% IDP(4P)-1 + " ROUTED.8C: 13% ROUTED(8C)-1 + " SMM.15: 37% SMM:15-11 + " SMM.15: 37% SMM:15-12 + " SMM.15: 60% SMM:15-18 + " SMM.15: 89% SMM:15-25 + " SMM.15: 90% SMM:15-25 + " UDP.4P: 45% UDP(4P)-1 + " VV.4: 26% VV(4)-1 + " XNSROUTED.8C: 23% XNSROUTED(8C)-1 +packet[s], data SMM.15: 6% SMM:15-3 + " SMM.15: 82% SMM:15-23 +packet[s], ECHO_REQUEST XNSROUTED.8C: 22% XNSROUTED(8C)-1 + " ROUTED.8C: 15% ROUTED(8C)-1 + " ROUTED.8C: 13% ROUTED(8C)-1 + " PING.8: 3% PING(8)-1 + " PING.8: 22% PING(8)-1 +packet, ECHO_RESPONSE PING.8: 66% PING(8)-1 + " PING.8: 21% PING(8)-1 + " PING.8: 66% PING(8)-1 +packet[s], outgoing PS1.08: 21% PS1:8-8 + " PS1.08: 86% PS1:8-35 + " PS1.08: 86% PS1:8-35 +packet, PEX PS1.08: 96% PS1:8-40 +Packet[s], Sequenced PS1.06: 74% PS1:6-33 +packet, zero-length PS1.08: 92% PS1:8-38 + " PS1.08: 94% PS1:8-39 +packet exchange PS1.06: 75% PS1:6-33 + " PS1.08: 91% PS1:8-38 + " PS1.08: 95% PS1:8-40 + " PS1.08: 95% PS1:8-40 +packets, error SMM.13: 58% SMM:13-20 + " SMM.13: 70% SMM:13-24 + " SMM.13: 81% SMM:13-27 +packet[s], IDP IDP.4P: 72% IDP(4P)-2 + " SMM.02: 99% SMM:2-33 +packet[s], Incoming ICMP.4P: 52% ICMP(4P)-1 + " INTRO.4N: 87% INTRO(4N)-3 + " IP.4P: 51% IP(4P)-1 + " IP.4P: 56% IP(4P)-1 + " IP.4P: 62% IP(4P)-1 + " ROUTED.8C: 32% ROUTED(8C)-1 + " SMM.13: 67% SMM:13-23 + " SMM.13: 67% SMM:13-23 + " SMM.15: 67% SMM:15-20 + " SMM.15: 67% SMM:15-20 + " SMM.15: 88% SMM:15-25 + " SMM.15: 88% SMM:15-25 + " SMM.15: 93% SMM:15-26 + " XNSROUTED.8C: 66% XNSROUTED(8C)-1 +packets, NS IFCONFIG.8C: 86% IFCONFIG(8C)-2 +packet[s], Outgoing ICMP.4P: 46% ICMP(4P)-1 + " IMP.4P: 22% IMP(4P)-1 + " IMP.4P: 41% IMP(4P)-1 + " IP.4P: 22% IP(4P)-1 + " IP.4P: 50% IP(4P)-1 + " IP.4P: 55% IP(4P)-1 + " IP.4P: 57% IP(4P)-1 + " SMM.15: 38% SMM:15-12 + " SMM.15: 52% SMM:15-16 + " SMM.15: 81% SMM:15-23 + " SMM.15: 81% SMM:15-23 +packet[s], queuing and dequeuing SMM.15: 67% SMM:15-20 +packet[s], REQUEST ROUTED.8C: 13% ROUTED(8C)-1 + " ROUTED.8C: 15% ROUTED(8C)-1 + " XNSROUTED.8C: 22% XNSROUTED(8C)-1 + " XNSROUTED.8C: 27% XNSROUTED(8C)-1 +packet[s], response ROUTED.8C: 14% ROUTED(8C)-1 + " ROUTED.8C: 16% ROUTED(8C)-1 + " ROUTED.8C: 19% ROUTED(8C)-1 + " ROUTED.8C: 31% ROUTED(8C)-1 + " XNSROUTED.8C: 25% XNSROUTED(8C)-1 + " XNSROUTED.8C: 30% XNSROUTED(8C)-1 + " XNSROUTED.8C: 36% XNSROUTED(8C)-1 + " XNSROUTED.8C: 60% XNSROUTED(8C)-1 +packets, routing INTRO.4N: 87% INTRO(4N)-3 + " SMM.01: 66% SMM:1-40 +packets, trailer ARP.4P: 46% ARP(4P)-1 + " ARP.4P: 78% ARP(4P)-2 + " SMM.13: 80% SMM:13-27 + " VV.4: 88% VV(4)-1 +packet[s], zero-length SMM.13: 40% SMM:13-14 +packet forwarding SMM.01: 67% SMM:1-41 + " SMM.15: 89% SMM:15-25 + " SMM.15: 89% SMM:15-25 +packet header[s] SMM.15: 82% SMM:15-23 + " SMM.15: 83% SMM:15-23 +Packet reception SMM.15: 67% SMM:15-20 +packet sequencing information TRSP.8C: 30% TRSP(8c)-1 + " TRPT.8C: 32% TRPT(8C)-1 +packet size ARP.4P: 98% ARP(4P)-2 + " SMM.13: 75% SMM:13-26 + " SMM.15: 55% SMM:15-17 +Packet transmission SMM.15: 65% SMM:15-19 +packet type IDP.4P: 61% IDP(4P)-1 + " IDP.4P: 73% IDP(4P)-2 + " IDP.4P: 83% IDP(4P)-2 + " VV.4: 92% VV(4)-1 +packets transferred NETSTAT.1: 62% NETSTAT(1)-2 +packf - compress a folder into a single file PACKF.N: 3% unknown + " USD.08: 39% USD:8-46 +packf format MSH.N: 5% MSH(1)-1 + " USD.08: 36% USD:8-42 +pad character[s] TERMCAP.3X: 91% TERMCAP(3X)-2 + " TERMCAP.5: 88% TERMCAP(5)-12 +pad records to size DD.1: 41% DD(1)-1 +padding in the terminal driver TERMCAP.5: 80% TERMCAP(5)-11 +Page[s] USD.25: 51% USD:25-8 + " MORE.1: 0% MORE(1)-1 +page, Begin MAN.7: 81% MAN(7)-2 + " USD.24: 31% USD:24-11 + " USD.25: 53% USD:25-8 +page[s], buffer SMM.02: 91% SMM:2-31 + " SMM.13: 55% SMM:13-19 + " SMM.13: 55% SMM:13-19 + " SMM.15: 47% SMM:15-14 +page, burst LPD.8: 39% LPD(8)-1 + " LPR.1: 49% LPR(1)-1 +page[s], data CORE.5: 63% CORE(5)-1 + " EXECVE.2: 9% EXECVE(2)-1 + " SMM.15: 46% SMM:15-14 + " SMM.15: 95% SMM:15-26 + " SMM.15: 96% SMM:15-26 +Page[s], First USD.20: 14% USD:20-2 +page, index USD.11: 22% USD:11-4 + " USD.11: 23% USD:11-4 + " USD.11: 23% USD:11-4 + " USD.11: 27% USD:11-4 + " USD.11: 29% USD:11-5 + " USD.11: 29% USD:11-5 + " USD.11: 29% USD:11-5 + " USD.11: 33% USD:11-5 + " USD.11: 45% USD:11-7 + " USD.11: 51% USD:11-8 + " USD.11: 56% USD:11-9 + " USD.11: 56% USD:11-9 + " USD.11: 56% USD:11-9 + " USD.11: 59% USD:11-9 + " USD.11: 63% USD:11-10 + " USD.11: 66% USD:11-10 + " USD.11: 71% USD:11-11 + " USD.11: 72% USD:11-11 +page[s], manual PS1.18: 29% PS1:18-7 +page[s], mapped PS1.06: 15% PS1:6-10 +pages, memory GETRUSAGE.2: 48% GETRUSAGE(2)-1 + " SMM.15: 45% SMM:15-14 + " VTIMES.3C: 57% VTIMES(3C)-1 +page, motion up or down the USD.25: 34% USD:25-6 +page, new USD.20: 64% USD:20-5 +page, output USD.22: 17% USD:22-3 + " USD.25: 87% USD:25-13 + " VGRIND.1: 52% VGRIND(1)-1 +pages, physical SYSTAT.1: 35% SYSTAT(1)-2 + " SYSTAT.1: 35% SYSTAT(1)-2 + " SYSTAT.1: 37% SYSTAT(1)-2 +pages, primary PS2.10: 24% PS2:10-24 + " PS2.10: 24% PS2:10-24 + " PS2.10: 25% PS2:10-24 + " PS2.10: 25% PS2:10-24 + " PS2.10: 25% PS2:10-24 +page[s], protection of PS1.06: 19% PS1:6-11 +pages are core resident, information about whether PS1.06: 20% PS1:6-12 +pages, text SMM.13: 23% SMM:13-9 + " SMM.13: 46% SMM:13-16 + " SYSTAT.1: 35% SYSTAT(1)-2 + " SYSTAT.1: 55% SYSTAT(1)-3 +page, text base-line position on the USD.24: 34% USD:24-12 +page, title USD.22: 67% USD:22-13 + " USD.22: 67% USD:22-13 + " USD.22: 67% USD:22-13 + " USD.23: 64% USD:23-8 + " USD.23: 64% USD:23-8 + " USD.31: 29% USD:31-4 +page boundary[s] LD.1: 98% LD(1)-2 + " SMM.14: 71% SMM:14-11 + " SMM.15: 42% SMM:15-13 + " SMM.15: 42% SMM:15-13 + " SMM.15: 42% SMM:15-13 + " USD.20: 56% USD:20-5 + " USD.22: 29% USD:22-5 + " USD.25: 58% USD:25-9 + " USD.25: 81% USD:25-12 + " USD.25: 81% USD:25-12 + " USD.25: 86% USD:25-13 + " VALLOC.3C: 41% VALLOC(3C)-1 +page cluster[s] PSTAT.8: 79% PSTAT(8)-3 + " SMM.13: 6% SMM:13-3 + " SMM.13: 36% SMM:13-13 + " SMM.15: 10% SMM:15-4 + " SMM.15: 12% SMM:15-5 +Page Control USD.24: 29% USD:24-11 + " USD.24: 6% USD:24-3 +page fault[s] CRASH.8V: 66% CRASH(8V)-2 + " GETRUSAGE.2: 25% GETRUSAGE(2)-1 + " GETRUSAGE.2: 62% GETRUSAGE(2)-2 + " GETRUSAGE.2: 66% GETRUSAGE(2)-2 + " SMM.13: 36% SMM:13-13 + " SYSTAT.1: 61% SYSTAT(1)-3 + " USD.04: 52% USD:4-24 + " USD.04: 97% USD:4-44 + " VMSTAT.1: 54% VMSTAT(1)-1 + " VTIMES.3C: 39% VTIMES(3C)-1 + " VTIMES.3C: 41% VTIMES(3C)-1 + " VTIMES.3C: 80% VTIMES(3C)-1 + " VTIMES.3C: 83% VTIMES(3C)-1 +page footer MS.7: 30% MS(7)-1 + " MS.7: 44% MS(7)-2 + " USD.20: 19% USD:20-2 + " USD.20: 73% USD:20-5 + " USD.28: 48% USD:28-7 +page header PR.1: 36% PR(1)-1 + " MS.7: 31% MS(7)-1 +Page heading[s] USD.20: 17% USD:20-2 + " USD.20: 17% USD:20-2 + " USD.20: 19% USD:20-2 +page headings/footing[s] USD.20: 18% USD:20-2 +Page Layout USD.25: 83% USD:25-12 + " USD.22: 16% USD:22-3 +page length PR.1: 57% PR(1)-1 + " PRINTCAP.5: 39% PRINTCAP(5)-1 + " PRINTCAP.5: 41% PRINTCAP(5)-1 + " SMM.06: 52% SMM:6-4 + " USD.23: 9% USD:23-2 + " USD.23: 68% USD:23-9 + " USD.24: 31% USD:24-11 + " USD.24: 48% USD:24-16 +page margin[s] USD.24: 83% USD:24-28 +page number[s] MS.7: 25% MS(7)-1 + " NROFF.1: 28% NROFF(1)-1 + " PR.1: 19% PR(1)-1 + " SMM.13: 46% SMM:13-16 + " TROFF.1: 24% TROFF(1)-1 + " USD.20: 17% USD:20-2 + " USD.20: 73% USD:20-5 + " USD.21: 28% USD:21-1 + " USD.22: 15% USD:22-3 + " USD.22: 16% USD:22-3 + " USD.22: 39% USD:22-7 + " USD.22: 44% USD:22-8 + " USD.22: 44% USD:22-8 + " USD.22: 44% USD:22-8 + " USD.22: 45% USD:22-8 + " USD.22: 45% USD:22-8 + " USD.22: 45% USD:22-8 + " USD.22: 68% USD:22-13 + " USD.22: 72% USD:22-13 + " USD.22: 84% USD:22-16 + " USD.22: 84% USD:22-16 + " USD.23: 38% USD:23-5 + " USD.23: 39% USD:23-5 + " USD.23: 39% USD:23-5 + " USD.23: 59% USD:23-8 + " USD.24: 2% USD:24-2 + " USD.24: 31% USD:24-11 + " USD.24: 31% USD:24-11 + " USD.24: 31% USD:24-11 + " USD.24: 31% USD:24-11 + " USD.24: 31% USD:24-11 + " USD.24: 41% USD:24-14 + " USD.24: 72% USD:24-23 + " USD.24: 85% USD:24-28 + " USD.24: 85% USD:24-28 + " USD.24: 85% USD:24-28 + " USD.24: 86% USD:24-29 + " USD.24: 87% USD:24-29 + " USD.25: 60% USD:25-9 + " USD.25: 61% USD:25-9 + " USD.25: 61% USD:25-9 + " USD.25: 61% USD:25-9 + " USD.25: 61% USD:25-9 + " USD.25: 63% USD:25-9 + " USD.25: 76% USD:25-11 + " USD.29: 40% USD:29-4 + " USD.29: 42% USD:29-5 + " USD.29: 77% USD:29-8 + " USD.29: 77% USD:29-8 + " USD.29: 77% USD:29-8 + " USD.31: 33% USD:31-5 +Page number character USD.24: 72% USD:24-23 +page number in Arabic, .ar Set USD.23: 48% USD:23-6 +page number in roman numeral, .ro Set USD.23: 48% USD:23-6 +page offset ROFFBIB.1: 78% ROFFBIB(1)-1 + " USD.23: 7% USD:23-2 + " USD.24: 31% USD:24-11 + " USD.24: 31% USD:24-11 + " USD.25: 25% USD:25-4 + " USD.25: 25% USD:25-4 + " USD.29: 35% USD:29-4 + " MS.7: 79% MS(7)-3 +page position USD.24: 47% USD:24-16 + " USD.24: 83% USD:24-28 + " USD.24: 93% USD:24-31 +page reclaims GETRUSAGE.2: 24% GETRUSAGE(2)-1 +page size BRK.2: 18% BRK(2)-1 + " GETPAGESIZE.2: 63% GETPAGESIZE(2)- + " SMM.15: 10% SMM:15-4 +page table[s] SMM.02: 89% SMM:2-31 + " SMM.13: 45% SMM:13-16 + " SMM.13: 57% SMM:13-20 + " SMM.15: 86% SMM:15-24 + " SYSTAT.1: 28% SYSTAT(1)-2 + " SYSTAT.1: 97% SYSTAT(1)-5 + " SMM.13: 14% SMM:13-6 + " SMM.13: 46% SMM:13-16 + " SMM.13: 52% SMM:13-18 +page title[s] MS.7: 49% MS(7)-2 + " USD.20: 2% USD:20-1 + " USD.25: 81% USD:25-12 +page traps USD.24: 47% USD:24-16 +page width ADB.1: 72% ADB(1)-4 + " LP.4: 79% LP(4)-1 + " LPD.8: 69% LPD(8)-2 + " LPR.1: 68% LPR(1)-2 + " PRINTCAP.5: 39% PRINTCAP(5)-1 + " PRINTCAP.5: 40% PRINTCAP(5)-1 + " PRINTCAP.5: 73% PRINTCAP(5)-2 +page-next-window (ESC C-V) USD.17: 83% USD:17-39 +page-number register USD.24: 72% USD:24-23 +PAGER environment variable USD.11: 84% USD:11-12 + " MAIL.1: 90% MAIL(1)-6 + " SMM.12A: 37% SMM:12-9 + " SMM.10: 10% SMM:10-3 + " MAIL.1: 92% MAIL(1)-6 +pagesize - print system page size PAGESIZE.1: 15% unknown +paging and swapping PS1.06: 48% PS1:6-23 +paging, Scrolling and USD.15: 10% USD:15-4 +Paging activity SMM.01: 45% SMM:1-29 + " SMM.01: 45% SMM:1-30 + " VMSTAT.1: 54% VMSTAT(1)-1 +paging area[s] HP.4: 64% HP(4)-3 + " SMM.01: 6% SMM:1-4 + " SMM.01: 6% SMM:1-4 + " SMM.01: 18% SMM:1-13 + " SMM.01: 18% SMM:1-13 + " SMM.01: 43% SMM:1-28 + " SMM.01: 44% SMM:1-29 + " SMM.01: 46% SMM:1-30 + " SMM.02: 26% SMM:2-8 + " SMM.02: 43% SMM:2-13 + " SMM.02: 79% SMM:2-26 + " SMM.02: 93% SMM:2-32 + " SMM.02: 93% SMM:2-32 + " SMM.02: 95% SMM:2-32 + " UDA.4: 61% UDA(4)-2 + " UP.4: 58% UP(4)-2 +paging device[s] CRASH.8V: 32% CRASH(8V)-1 + " DRUM.4: 9% DRUM(4)-1 + " DRUM.4: 18% DRUM(4)-1 + " SMM.02: 16% SMM:2-5 + " SMM.02: 25% SMM:2-7 + " SWAPON.8: 80% SWAPON(8)-1 +Paging space SMM.01: 44% SMM:1-29 + " SMM.01: 45% SMM:1-29 + " SMM.02: 93% SMM:2-32 +paging/swapping, swapon - add a swap device for interleaved SWAPON.2: 2% SWAPON(2)-1 +pair[s], key/content DBM.3X: 17% DBM(3X)-1 + " DBM.3X: 83% DBM(3X)-2 + " DBM.3X: 86% DBM(3X)-2 + " NDBM.3: 20% NDBM(3)-1 + " NDBM.3: 85% NDBM(3)-2 + " NDBM.3: 88% NDBM(3)-2 +pair[s], register SMM.19: 54% SMM:19-15 + " SMM.19: 68% SMM:19-19 + " SMM.19: 77% SMM:19-22 + " SMM.19: 78% SMM:19-22 + " SMM.19: 79% SMM:19-22 +Panic CRASH.8V: 4% CRASH(8V)-1 +pairs of socket[s] PS1.06: 79% PS1:6-34 +panic condition SYSLOG.3: 22% SYSLOG(3)-1 +panic message[s] CRASH.8V: 15% CRASH(8V)-1 + " CRASH.8V: 27% CRASH(8V)-1 + " CRASH.8V: 92% CRASH(8V)-3 +Paper, Outline of a Sample USD.22: 76% USD:22-14 +panic[s], Translator PS1.04: 47% PS1:4-25 +paper loading NROFF.1: 43% NROFF(1)-1 + " TROFF.1: 35% TROFF(1)-1 + " USD.24: 2% USD:24-2 +Paragraph[s] USD.22: 11% USD:22-2 + " USD.22: 11% USD:22-2 + " USD.22: 50% USD:22-9 + " USD.22: 50% USD:22-9 + " MS.7: 48% MS(7)-2 + " USD.15: 32% USD:15-10 + " USD.16: 89% USD:16-17 + " USD.20: 7% USD:20-1 + " USD.20: 28% USD:20-2 + " USD.24: 0% USD:24-2 + " USD.24: 87% USD:24-29 +paragraph, .lp Begin left-justified USD.23: 9% USD:23-2 +paragraph[s], .np numbered USD.23: 12% USD:23-2 +paragraph[s], annotation REFER.1: 64% REFER(1)-2 + " ROFFBIB.1: 36% ROFFBIB(1)-1 + " USD.29: 35% USD:29-4 + " USD.29: 70% USD:29-7 +paragraph, Begin MAN.7: 51% MAN(7)-1 + " MAN.7: 63% MAN(7)-1 +paragraph, exdented USD.21: 39% USD:21-2 +paragraph, format a FMT.1: 69% FMT(1)-1 +paragraph[s], indented USD.22: 53% USD:22-10 + " USD.23: 11% USD:23-2 + " USD.20: 32% USD:20-3 +paragraph, left-aligned (block) USD.20: 7% USD:20-1 +paragraph[s], left-justified block-style USD.22: 50% USD:22-9 +paragraph[s], manipulating sentences and USD.17: 25% USD:17-11 +paragraph commands USD.15: 33% USD:15-10 + " USD.15: 33% USD:15-10 + " USD.17: 26% USD:17-12 +paragraph distance MS.7: 76% MS(7)-3 +paragraph indent USD.22: 55% USD:22-10 + " USD.23: 3% USD:23-1 + " USD.23: 4% USD:23-1 + " USD.24: 88% USD:24-29 + " USD.25: 49% USD:25-8 + " MS.7: 78% MS(7)-3 +paragraph macro[s] USD.15: 33% USD:15-10 + " USD.15: 33% USD:15-10 + " USD.23: 8% USD:23-2 + " USD.23: 11% USD:23-2 + " USD.24: 87% USD:24-29 + " USD.25: 49% USD:25-8 + " USD.25: 64% USD:25-10 + " USD.29: 63% USD:29-7 +Paragraphing USD.23: 8% USD:23-2 +parallel printer port on the DMF32 SMM.13: 96% SMM:13-33 +Parameter[s] DBX.5: 25% DBX(5)-1 +parameter[s], formal PS1.01: 23% PS1:1-7 + " PS1.01: 70% PS1:1-24 + " PS1.01: 71% PS1:1-24 + " PS1.01: 72% PS1:1-24 + " PS1.01: 72% PS1:1-24 + " PS1.01: 78% PS1:1-26 + " PS1.01: 78% PS1:1-26 + " PS1.01: 83% PS1:1-28 + " PS1.04: 80% PS1:4-41 + " PS2.06: 29% PS2:6-11 + " PS2.09: 24% PS2:9-46 + " PS2.09: 24% PS2:9-46 + " PS2.09: 54% PS2:9-95 + " PS2.09: 54% PS2:9-95 + " PS2.09: 55% PS2:9-95 + " PS2.09: 55% PS2:9-95 + " PS2.09: 55% PS2:9-95 + " PS2.09: 56% PS2:9-98 +parameter[s], functional PS2.07: 60% PS2:7-28 + " PS2.07: 68% PS2:7-30 + " PS2.07: 77% PS2:7-33 +parameter[s], object PS2.07: 20% PS2:7-10 + " PS2.07: 21% PS2:7-10 + " PS2.07: 23% PS2:7-11 +PARAMETER Statement PS1.02: 55% PS1:2-18 +parameters, configuration SMM.02: 29% SMM:2-9 + " SMM.13: 43% SMM:13-15 + " SMM.07A: 26% SMM:07-13 +parameter[s], file system NEWFS.8: 23% NEWFS(8)-1 + " SMM.01: 46% SMM:1-30 + " SMM.01: 46% SMM:1-30 + " MKFS.8: 30% MKFS(8)-1 +parameter[s], formal SMM.19: 22% SMM:19-7 + " USD.06: 73% USD:6-10 +parameters, Global configuration SMM.02: 21% SMM:2-7 + " SMM.02: 21% SMM:2-7 + " SMM.02: 24% SMM:2-7 + " SMM.02: 50% SMM:2-15 +parameters, Keyword USD.03: 55% USD:3-14 + " USD.03: 56% USD:3-14 + " USD.03: 57% USD:3-15 + " USD.03: 57% USD:3-15 +parameter[s], optional IFCONFIG.8C: 90% IFCONFIG(8C)-2 + " RDIST.1: 58% RDIST(1)-2 + " SMM.02: 7% SMM:2-3 +parameter[s], positional CSH.1: 79% CSH(1)-17 + " SH.1: 20% SH(1)-2 + " SH.1: 23% SH(1)-2 + " SH.1: 23% SH(1)-2 + " SH.1: 25% SH(1)-2 + " SH.1: 28% SH(1)-2 + " SH.1: 83% SH(1)-5 + " USD.03: 22% USD:3-5 + " USD.03: 22% USD:3-5 + " USD.03: 25% USD:3-6 + " USD.03: 36% USD:3-9 + " USD.03: 56% USD:3-14 + " USD.03: 61% USD:3-15 + " USD.03: 70% USD:3-17 + " USD.03: 70% USD:3-17 +parameter[s], set USD.16: 50% USD:16-10 +parameter passing USD.03: 0% USD:3-1 +Parameter substitution SH.1: 19% SH(1)-2 + " USD.03: 33% USD:3-8 + " USD.03: 52% USD:3-13 + " USD.03: 59% USD:3-15 + " USD.03: 64% USD:3-16 + " USD.03: 65% USD:3-16 + " USD.03: 66% USD:3-16 + " USD.03: 69% USD:3-17 +paren-flash-delay (variable) USD.17: 83% USD:17-40 +parent directory DIR.5: 93% DIR(5)-2 + " INTRO.2: 83% INTRO(2)-6 + " MKDIR.1: 80% MKDIR(1)-1 + " MKDIR.2: 16% MKDIR(2)-1 + " RENAME.2: 94% RENAME(2)-2 + " SMM.02: 10% SMM:2-4 + " SMM.14: 90% SMM:14-13 + " USD.03: 15% USD:3-3 + " USD.04: 68% USD:4-34 + " USD.04: 68% USD:4-34 +parent folder RMF.N: 39% RMF(1)-1 + " RMF.N: 79% RMF(1)-1 + " USD.08: 50% USD:8-60 +parent process PS1.02: 48% PS1:2-16 + " PS1.06: 9% PS1:6-7 + " PS1.06: 9% PS1:6-7 + " PS1.07a: 17% PS1:7-4 + " PS1.07a: 18% PS1:7-4 + " PS2.01: 52% PS2:1-8 + " PS2.01: 71% PS2:1-11 + " PS2.01: 75% PS2:1-11 + " PS2.04: 18% PS2:4-3 +parent processes EXIT.2: 34% EXIT(2)-1 + " EXIT.3F: 36% EXIT(3F)-1 + " EXIT.3F: 51% EXIT(3F)-1 + " FORK.2: 61% FORK(2)-1 + " FORK.2: 64% FORK(2)-1 + " PTRACE.2: 4% PTRACE(2)-1 + " SMM.13: 11% SMM:13-5 + " VFORK.2: 32% VFORK(2)-1 + " VFORK.2: 61% VFORK(2)-1 + " WAIT.1: 48% WAIT(1)-1 + " WAIT.2: 68% WAIT(2)-1 + " FORK.2: 21% FORK(2)-1 +parent process ID EXECVE.2: 46% EXECVE(2)-1 + " EXIT.2: 54% EXIT(2)-1 + " FORK.2: 19% FORK(2)-1 + " INTRO.2: 63% INTRO(2)-5 + " INTRO.2: 63% INTRO(2)-5 + " GETPID.2: 76% +parenthesis[s], closing USD.17: 52% USD:17-23 +Parenthesis and Brace Matching USD.17: 48% USD:17-21 +parenthesis matching USD.17: 52% USD:17-23 +parenthesized command[s] CSH.1: 89% CSH(1)-19 +parity GETTYTAB.5: 13% GETTYTAB(5)-1 + " GETTYTAB.5: 20% GETTYTAB(5)-1 + " GETTYTAB.5: 86% GETTYTAB(5)-3 + " PS1.06: 93% PS1:6-39 +Parser PS2.07: 55% PS2:7-27 + " PS2.10: 80% PS2:10-70 + " PS2.10: 84% PS2:10-76 + " PS2.10: 88% PS2:10-78 + " PS1.15: 2% PS1:15-1 + " PS1.15: 25% PS1:15-7 +parity REMOTE.5: 75% REMOTE(5)-1 + " STTY.1: 11% STTY(1)-1 +parity, odd OD.1: 18% OD(1)-1 + " TTY.4: 17% TTY(4)-2 + " GETTYTAB.5: 35% GETTYTAB(5)-2 +parse addresses AP.N: 2% AP(8)-1 +parse-error[s] USD.17: 83% USD:17-40 +parse-special-error[s] USD.17: 84% USD:17-40 +parser, bottom-up SMM.19: 10% SMM:19-4 + " SMM.19: 18% SMM:19-6 + " SMM.19: 18% SMM:19-6 +Parsing, Error Message USD.17: 50% USD:17-22 +Parsing, LR YACC.1: 70% YACC(1)-1 +parser[s], Yacc PS1.15: 25% PS1:15-7 + " PS1.15: 67% PS1:15-19 + " PS1.16: 71% PS1:16-9 +parser actions PS1.15: 32% PS1:15-9 + " PS1.15: 46% PS1:15-14 + " PS1.15: 65% PS1:15-18 +Parser error message summary PS2.10: 82% PS2:10-76 +parser generator[s] PS1.15: 42% PS1:15-12 + " PS1.16: 12% PS1:16-2 + " PS1.16: 13% PS1:16-2 +parsing conflicts PS1.15: 49% PS1:15-14 + " PS1.15: 49% PS1:15-14 + " PS1.15: 53% PS1:15-16 +Pascal PS1.04: 0% + " PS1.04: 0% + " PS1.04: 18% PS1:4-11 + " PS1.04: 21% PS1:4-11 + " PS1.04: 33% PS1:4-18 + " PS1.04: 33% PS1:4-18 + " PS1.04: 34% PS1:4-19 + " PS1.04: 36% PS1:4-20 + " PS1.04: 39% PS1:4-21 + " PS1.04: 41% PS1:4-22 + " PS1.04: 41% PS1:4-22 + " PS1.04: 43% PS1:4-23 + " PS1.04: 43% PS1:4-23 + " PS1.04: 57% PS1:4-30 + " PS1.04: 59% PS1:4-30 + " PS1.04: 60% PS1:4-31 + " PS1.04: 62% PS1:4-32 + " PS1.04: 69% PS1:4-35 + " PS1.04: 69% PS1:4-35 + " PS1.04: 83% PS1:4-43 + " PS1.04: 89% PS1:4-45 + " PS1.04: 90% PS1:4-45 + " PS1.04: 90% PS1:4-46 + " PS2.01: 6% PS2:1-2 + " PS2.07: 6% PS2:7-5 + " PS2.08: 14% PS2:8-2 + " PS2.08: 82% PS2:8-11 + " PS2.09: 61% PS2:9-105 + " PS2.09: 61% PS2:9-105 + " PS2.09: 61% PS2:9-106 + " PS2.09: 64% PS2:9-108 +Pascal, Berkeley PS1.04: 0% + " PS1.04: 7% PS1:4-4 + " PS1.04: 10% PS1:4-6 + " PS1.04: 10% PS1:4-6 + " PS1.04: 20% PS1:4-11 + " PS1.04: 43% PS1:4-22 + " PS1.04: 45% PS1:4-24 + " PS1.04: 54% PS1:4-28 + " PS1.04: 55% PS1:4-29 + " PS1.04: 78% PS1:4-40 + " PS1.04: 83% PS1:4-42 + " PS1.04: 83% PS1:4-42 + " PS1.04: 98% PS1:4-49 + " PS1.04: 98% PS1:4-49 + " PS1.04: 98% PS1:4-50 + " PS1.04: 99% PS1:4-50 +Pascal, Extensions to the language PS1.04: 83% PS1:4-42 +Pascal, nonstandard functions and procedures in Berkeley PS1.04: 96% PS1:4-49 +Pascal, Standard PS1.04: 69% PS1:4-35 +Pascal 6000-3 PS1.04: 36% PS1:4-19 + " PS1.04: 43% PS1:4-22 + " PS1.04: 67% PS1:4-34 + " PS1.04: 67% PS1:4-34 + " PS1.04: 83% PS1:4-42 + " PS1.04: 90% PS1:4-46 + " PS1.04: 98% PS1:4-49 + " PS1.04: 98% PS1:4-49 + " PS1.04: 99% PS1:4-50 + " PS1.04: 99% PS1:4-50 + " PS1.04: 99% PS1:4-50 +Pascal document[s] PS1.04: 7% PS1:4-4 + " PS1.04: 6% PS1:4-3 +Pascal file[s] PS1.04: 53% PS1:4-28 + " PS1.04: 60% PS1:4-31 + " PS1.04: 61% PS1:4-31 + " PS1.04: 61% PS1:4-31 + " PS1.04: 85% PS1:4-43 + " PS1.04: 95% PS1:4-48 + " PS2.09: 36% PS2:9-65 +Pascal file variable[s], associations of UNIX file names with PS1.04: 60% PS1:4-31 +Pascal prettyprinter PS1.04: 75% PS1:4-39 +Pascal program[s] PS1.04: 13% PS1:4-8 + " PS1.04: 14% PS1:4-8 + " PS1.04: 52% PS1:4-27 + " PS1.04: 54% PS1:4-28 + " PS1.04: 55% PS1:4-29 + " PS1.04: 67% PS1:4-34 + " PS1.04: 71% PS1:4-36 + " PS1.04: 80% PS1:4-41 + " PS1.04: 80% PS1:4-41 + " PS1.04: 96% PS1:4-49 + " PS1.04: 97% PS1:4-49 + " PS2.09: 62% PS2:9-106 +Pascal system[s] PS1.04: 13% PS1:4-7 + " PS1.04: 51% PS1:4-26 + " PS1.04: 54% PS1:4-28 + " PS1.04: 55% PS1:4-29 + " PS1.04: 55% PS1:4-29 + " PS1.04: 56% PS1:4-29 + " PS1.04: 56% PS1:4-29 + " PS1.04: 57% PS1:4-30 + " PS1.04: 59% PS1:4-30 + " PS1.04: 59% PS1:4-30 + " PS1.04: 60% PS1:4-31 + " PS1.04: 61% PS1:4-31 + " PS1.04: 87% PS1:4-44 + " PS1.04: 87% PS1:4-44 + " PS1.04: 87% PS1:4-45 +Pascal translator PS1.04: 11% PS1:4-7 + " PS1.04: 40% PS1:4-21 + " PS1.04: 41% PS1:4-22 + " PS1.04: 45% PS1:4-24 +Pascal User's Manual, Berkeley PS1.04: 0% unknown +parsing, LR(1) YACC.1: 13% YACC(1)-1 +Part[s] USD.32: 7% USD:32-2 +Part of a File, Writing out USD.13: 79% USD:13-13 +partial citation[s] USD.29: 36% USD:29-4 + " USD.29: 36% USD:29-4 + " USD.29: 37% USD:29-4 + " USD.29: 42% USD:29-5 + " USD.29: 56% USD:29-6 + " USD.29: 81% USD:29-9 +partial letter USD.07: 4% USD:7-2 + " USD.07: 80% USD:7-19 +partial line[s] USD.24: 35% USD:24-12 + " USD.24: 36% USD:24-12 + " USD.25: 87% USD:25-13 +partition SMM.14: 15% SMM:14-3 +partition[s], disk FSTAB.5: 72% FSTAB(5)-1 + " HK.4: 47% HK(4)-1 + " HK.4: 67% HK(4)-2 + " HP.4: 72% HP(4)-4 + " HP.4: 84% HP(4)-4 + " REBOOT.8: 48% REBOOT(8)-1 + " REBOOT.8: 74% REBOOT(8)-2 + " SMM.01: 5% SMM:1-4 + " SMM.01: 6% SMM:1-4 + " SMM.01: 10% SMM:1-7 + " SMM.01: 15% SMM:1-10 + " SMM.01: 25% SMM:1-18 + " SMM.01: 28% SMM:1-20 + " SMM.01: 28% SMM:1-20 + " SMM.01: 28% SMM:1-20 + " SMM.01: 29% SMM:1-20 + " SMM.01: 41% SMM:1-28 + " SMM.01: 43% SMM:1-28 + " SMM.01: 84% SMM:1-51 + " SMM.01: 97% SMM:1-63 + " SMM.01: 97% SMM:1-63 + " SMM.01: 97% SMM:1-63 + " SMM.02: 83% SMM:2-26 + " SMM.02: 83% SMM:2-27 + " SMM.05: 7% SMM:5-3 + " SMM.05: 8% SMM:5-3 + " SMM.14: 9% SMM:14-3 + " SMM.14: 17% SMM:14-4 + " SMM.14: 19% SMM:14-4 + " UP.4: 66% UP(4)-3 + " UP.4: 79% UP(4)-3 + " DISKTAB.5: 9% DISKTAB(5)-1 + " SMM.01: 5% SMM:1-4 +partition[s], dump SMM.02: 82% SMM:2-26 + " SMM.02: 82% SMM:2-26 + " SMM.02: 82% SMM:2-26 + " SMM.12A: 93% SMM:12-22 +partition[s], file system BAD144.8: 26% BAD144(8)-1 + " FORMAT.8V: 44% FORMAT(8V)-1 + " SMM.02: 26% SMM:2-8 + " SMM.02: 26% SMM:2-8 +partitions, RK06 HK.4: 32% HK(4)-1 +partitions, RM03 HP.4: 23% HP(4)-2 +partitions, RM05 HP.4: 25% HP(4)-2 +partition, swap SMM.01: 29% SMM:1-20 + " SMM.02: 80% SMM:2-26 + " SMM.02: 80% SMM:2-26 +partition size[s] HK.4: 97% HK(4)-2 + " SMM.01: 42% SMM:1-28 + " SMM.01: 43% SMM:1-28 + " SMM.02: 28% SMM:2-8 +partition table[s] HK.4: 93% HK(4)-2 + " HP.4: 97% HP(4)-4 + " SMM.01: 45% SMM:1-29 + " SMM.13: 98% SMM:13-34 + " UDA.4: 27% UDA(4)-1 + " UDA.4: 32% UDA(4)-1 + " UDA.4: 33% UDA(4)-1 + " UP.4: 96% UP(4)-3 +parts of speech STYLE.1: 84% STYLE(1)-1 +Pascal CTAGS.1: 5% CTAGS(1)-1 + " DBX.1: 44% DBX(1)-3 + " DBX.5: 32% DBX(5)-1 + " ERROR.1: 33% ERROR(1)-1 + " ERROR.1: 69% ERROR(1)-2 + " FILE.1: 89% FILE(1)-1 + " PI.1: 11% PI(1)-1 + " PI.1: 28% PI(1)-1 + " PX.1: 73% PX(1)-1 + " VGRIND.1: 57% VGRIND(1)-1 + " VGRIND.1: 78% VGRIND(1)-2 + " SMM.12A: 3% SMM:12-2 + " PIX.1: 24% PIX(1)-1 + " SMM.12A: 41% SMM:12-10 +Pascal, Berkeley DBX.5: 31% DBX(5)-1 +Pascal compiler[s] PC.1: 1% PC(1)-1 + " PC.1: 3% PC(1)-1 + " SMM.19: 88% SMM:19-24 + " SMM.19: 88% SMM:19-24 + " INTRO.3: 2% INTRO(3)-1 + " INTRO.3: 12% INTRO(3)-1 +Pascal compiler pc STAB.5: 6% STAB(5)-1 +Pascal convention[s] SMM.12A: 42% SMM:12-10 +Pascal cross-reference program PXREF.1: 8% PXREF(1)-1 +pascal debugger, pdx - PDX.1: 0% PDX(1)-1 +Pascal execution profiler, pxp - PXP.1: 1% PXP(1)-1 +Pascal program[s] PMERGE.1: 22% PMERGE(1)-1 + " PX.1: 16% PX(1)-1 +passive socket[s] SPP.4P: 15% SPP(4P)-1 + " SPP.4P: 17% SPP(4P)-1 + " SPP.4P: 21% SPP(4P)-1 + " TCP.4P: 22% TCP(4P)-1 + " TCP.4P: 25% TCP(4P)-1 + " TCP.4P: 29% TCP(4P)-1 +passive verb[s] STYLE.1: 73% STYLE(1)-1 + " USD.32: 7% USD:32-2 + " USD.32: 35% USD:32-5 + " USD.32: 35% USD:32-5 + " USD.32: 36% USD:32-5 + " USD.32: 36% USD:32-6 +passwd SMM.12A: 42% SMM:12-10 +passwd, struct GETPWENT.3: 28% GETPWENT(3)-1 +passwd - change password PASSWD.1: 2% PASSWD(1)-1 +passwd - password file PASSWD.5: 3% PASSWD(5)-1 +passwdfile.dir MKPASSWD.8: 69% MKPASSWD(8)-1 +passwdfile.pag MKPASSWD.8: 66% MKPASSWD(8)-1 +Password[s] SMM.18: 73% SMM:18-5 + " USD.14: 12% USD:14-4 + " REXECD.8C: 30% REXECD(8C)-1 +password file PS2.01: 77% PS2:1-12 + " PS2.01: 79% PS2:1-12 + " PS2.01: 81% PS2:1-12 + " PS2.03: 96% PS2:3-15 + " PS2.09: 35% PS2:9-63 + " PS2.09: 41% PS2:9-72 + " PS2.09: 47% PS2:9-84 +Patching file[s] PS1.10: 60% PS1:10-12 +password[s], encrypted ADDUSER.8: 27% ADDUSER(8)-1 + " CRYPT.3: 45% CRYPT(3)-1 + " GETGRENT.3: 49% GETGRENT(3)-1 + " GROUP.5: 59% GROUP(5)-1 + " PASSWD.5: 60% PASSWD(5)-1 + " SMM.17: 77% SMM:17-3 + " SMM.18: 89% SMM:18-5 + " PASSWD.5: 14% PASSWD(5)-1 +password, getpass - read a GETPASS.3: 9% +password, root SMM.01: 31% SMM:1-21 + " SU.1: 66% SU(1)-1 +Password[s], Salted SMM.18: 72% SMM:18-5 +password database MKPASSWD.8: 25% unknown +password encryption CRYPT.3: 14% CRYPT(3)-1 +password file ADDUSER.8: 8% ADDUSER(8)-1 + " CHOWN.8: 30% CHOWN(8)-1 + " FTPD.8C: 63% FTPD(8C)-2 + " GETPW.3C: 40% GETPW(3C)-1 + " GETPWENT.3: 25% GETPWENT(3)-1 + " GETPWENT.3: 47% GETPWENT(3)-1 + " INITGROUPS.3: 54% INITGROUPS(3)-1 + " LOGIN.1: 43% LOGIN(1)-1 + " LPD.8: 42% LPD(8)-1 + " PASSWD.5: 4% PASSWD(5)-1 + " RSHD.8C: 44% RSHD(8C)-1 + " SMM.01: 59% SMM:1-36 + " SMM.17: 90% SMM:17-3 + " SMM.17: 91% SMM:17-3 + " SMM.17: 91% SMM:17-3 + " SMM.18: 16% SMM:18-2 + " SMM.18: 17% SMM:18-2 + " SMM.18: 19% SMM:18-2 + " SMM.18: 20% SMM:18-2 + " SMM.18: 21% SMM:18-2 + " SMM.18: 26% SMM:18-2 + " SMM.18: 28% SMM:18-2 + " SMM.18: 29% SMM:18-2 + " SMM.18: 30% SMM:18-2 + " SMM.18: 34% SMM:18-2 + " SMM.18: 35% SMM:18-3 + " SMM.18: 41% SMM:18-3 + " SMM.18: 42% SMM:18-3 + " SMM.18: 75% SMM:18-5 + " SMM.18: 76% SMM:18-5 + " SMM.18: 76% SMM:18-5 + " SORT.1: 80% SORT(1)-2 + " SU.1: 41% SU(1)-1 + " USD.04: 81% USD:4-39 + " VIPW.8: 9% VIPW(8)-1 + " VIPW.8: 18% VIPW(8)-1 + " VIPW.8: 31% VIPW(8)-1 + " VIPW.8: 36% VIPW(8)-1 + " VIPW.8: 74% VIPW(8)-1 + " SMM.12A: 2% SMM:12-2 + " SMM.12A: 33% SMM:12-8 + " SMM.12A: 42% SMM:12-10 +password file entry[s] GETLOGIN.3: 29% GETLOGIN(3)-1 + " GETPWENT.3: 5% GETPWENT(3)-1 +password security SMM.17: 73% SMM:17-3 + " SMM.18: 0% SMM:18-1 +Password Security: A Case History SMM.18: 0% SMM:18-1 +paste, cut and USD.13: 65% USD:13-11 +patch SMM.12A: 98% SMM:12-23 +patch - a program for applying a diff file to an original PATCH.N: 0% PATCH(1)-1 +patch file[s] PATCH.N: 2% PATCH(1)-1 + " PATCH.N: 40% PATCH(1)-1 + " PATCH.N: 48% PATCH(1)-2 + " PATCH.N: 50% PATCH(1)-2 + " PATCH.N: 55% PATCH(1)-2 + " PATCH.N: 60% PATCH(1)-2 + " PATCH.N: 83% PATCH(1)-3 +Path MH.N: 17% MH(1)-1 + " SH.1: 30% SH(1)-2 + " USD.03: 39% USD:3-9 + " USD.08: 8% USD:8-6 +path, output data SMM.15: 44% SMM:15-14 + " SMM.15: 45% SMM:15-14 +path, search CSH.1: 84% CSH(1)-18 + " CSH.1: 88% CSH(1)-18 + " MAN.1: 58% MAN(1)-1 + " MAN.1: 59% MAN(1)-1 + " MAN.1: 66% MAN(1)-1 + " PS2.09: 38% PS2:9-67 + " PS2.09: 38% PS2:9-68 + " PS2.09: 38% PS2:9-68 +path name[s] PS1.06: 57% PS1:6-27 + " PS1.06: 57% PS1:6-27 + " PS1.06: 57% PS1:6-27 + " PS1.06: 58% PS1:6-27 + " PS1.07a: 30% PS1:7-8 + " PS1.08: 12% PS1:8-5 + " PS2.01: 14% PS2:1-3 + " PS2.01: 14% PS2:1-3 + " PS2.01: 17% PS2:1-3 + " PS2.01: 29% PS2:1-5 + " PS2.01: 38% PS2:1-6 + " PS2.01: 44% PS2:1-7 + " PS2.01: 58% PS2:1-9 + " PS2.04: 78% PS2:4-7 + " PS2.04: 78% PS2:4-7 + " PS2.04: 78% PS2:4-7 + " PS2.04: 83% PS2:4-8 + " PS2.04: 83% PS2:4-8 + " PS2.04: 93% PS2:4-9 + " PS1.06: 57% PS1:6-27 +path, search RSH.1C: 71% RSH(1C)-1 + " SH.1: 30% SH(1)-2 + " SH.1: 64% SH(1)-4 + " SH.1: 65% SH(1)-4 + " SMM.09: 63% SMM:9-14 + " USD.03: 39% USD:3-9 + " USD.04: 28% USD:4-12 + " USD.04: 50% USD:4-23 + " USD.04: 68% USD:4-34 + " USD.08: 9% USD:8-8 +PATH environment variable[s] SMM.10: 89% SMM:10-21 + " SMM.10: 89% SMM:10-21 + " SMM.10: 15% SMM:10-4 + " SMM.09: 90% SMM:9-19 + " SMM.09: 19% SMM:9-5 + " MH-PROFILE.N: 5% MH-PROFILE(5)-1 + " MH-PROFILE.N: 3% MH-PROFILE(5)-1 + " ENVIRON.7: 20% ENVIRON(7)-1 + " CSH.1: 78% CSH(1)-17 + " CSH.1: 69% CSH(1)-14 + " WHICH.1: 60% WHICH(1)-1 +path name[s] CHDIR.2: 20% CHDIR(2)-1 + " CHDIR.2: 67% CHDIR(2)-1 + " CHDIR.2: 83% CHDIR(2)-1 + " CHROOT.2: 21% CHROOT(2)-1 + " CSH.1: 84% CSH(1)-18 + " CSH.1: 89% CSH(1)-18 + " FS.5: 83% FS(5)-3 + " INTRO.2: 7% INTRO(2)-1 + " INTRO.2: 24% INTRO(2)-2 + " INTRO.2: 58% INTRO(2)-5 + " INTRO.2: 58% INTRO(2)-5 + " INTRO.2: 79% INTRO(2)-6 + " INTRO.2: 79% INTRO(2)-6 + " INTRO.2: 80% INTRO(2)-6 + " INTRO.2: 80% INTRO(2)-6 + " MOUNT.2: 13% MOUNT(2)-1 + " OPEN.2: 13% OPEN(2)-1 + " RCP.1C: 46% RCP(1C)-1 + " SMM.01: 39% SMM:1-26 + " SMM.05: 35% SMM:5-7 + " SMM.10: 12% SMM:10-4 + " SMM.10: 47% SMM:10-13 + " SMM.17: 46% SMM:17-2 + " USD.07: 31% USD:7-8 + " USD.07: 73% USD:7-17 + " USD.08: 2% USD:8-2 + " SMM.12A: 31% SMM:12-7 + " SMM.12A: 38% SMM:12-9 + " CHDIR.3F: 70% CHDIR(3F)-1 + " GETCWD.3F: 11% GETCWD(3F)-1 + " GETCWD.3F: 79% GETCWD(3F)-1 + " USD.04: 11% USD:4-6 + " USD.08: 84% USD:8-103 +path prefix[s] CHDIR.2: 53% CHDIR(2)-1 +path shell variable CSH.1: 67% CSH(1)-14 + " CSH.1: 78% CSH(1)-17 + " CSH.1: 84% CSH(1)-18 +path variable USD.04: 89% USD:4-41 +pathalia[s] SMM.12A: 99% SMM:12-23 +Pathname[s] USD.04: 90% USD:4-41 + " SMM.14: 87% SMM:14-13 +pathname, UNIX PS1.04: 61% PS1:4-31 + " PS1.08: 15% PS1:8-6 + " PS2.10: 6% PS2:10-8 +Pc PS1.04: 67% PS1:4-35 + " PS1.04: 72% PS1:4-37 + " PS1.04: 79% PS1:4-41 + " PS1.18: 62% PS1:18-18 +PDP-10 CMULisp PS2.09: 79% PS2:9-128 + " PS2.09: 87% PS2:9-140 + " PS2.09: 87% PS2:9-140 +PDP-11 PS1.01: 2% + " PS1.01: 10% PS1:1-4 + " PS1.01: 41% PS1:1-13 + " PS1.01: 50% PS1:1-16 + " PS1.01: 50% PS1:1-16 + " PS1.02: 3% PS1:2-4 + " PS1.04: 48% PS1:4-25 + " PS1.04: 93% PS1:4-47 + " PS1.09: 39% PS1:9-4 + " PS1.09: 53% PS1:9-6 + " PS1.09: 55% PS1:9-6 + " PS1.09: 70% PS1:9-7 + " PS1.09: 73% PS1:9-8 + " PS2.01: 8% PS2:1-2 + " PS2.03: 78% PS2:3-12 +PDP-11, DEC PS1.01: 2% + " PS1.01: 0% + " PS1.01: 6% PS1:1-3 +pathname[s], absolute SMM.14: 87% SMM:14-13 + " SMM.14: 88% SMM:14-13 + " SMM.14: 88% SMM:14-13 + " TERMCAP.5: 32% TERMCAP(5)-6 + " USD.04: 11% USD:4-6 + " USD.04: 12% USD:4-6 + " USD.04: 45% USD:4-20 + " USD.04: 69% USD:4-34 + " USD.04: 93% USD:4-43 + " USD.07: 76% USD:7-18 +pathname, last component of a USD.04: 60% USD:4-29 +pathname[s], relative SMM.14: 87% SMM:14-13 + " USD.04: 69% USD:4-34 + " USD.04: 93% USD:4-42 + " USD.04: 93% USD:4-42 +Pattern[s] USD.14: 36% USD:14-9 + " USD.19: 27% USD:19-3 + " AWK.1: 54% AWK(1)-1 + " USD.18: 26% USD:18-3 +Pattern[s], AWK USD.19: 3% USD:19-1 + " USD.19: 38% USD:19-3 +Pattern[s], DICTION USD.32: 82% USD:32-14 +pattern[s], Grep GREP.1: 10% GREP(1)-1 + " PICK.N: 11% PICK(1)-1 + " USD.08: 39% USD:8-47 +pattern, most recent USD.13: 45% USD:13-8 +pattern[s], replacement USD.14: 78% USD:14-19 + " USD.16: 68% USD:16-13 + " USD.16: 71% USD:16-13 + " USD.16: 76% USD:16-14 + " USD.16: 76% USD:16-14 + " USD.16: 76% USD:16-14 + " USD.16: 76% USD:16-14 + " USD.16: 77% USD:16-14 + " USD.16: 86% USD:16-16 +pattern[s], search PICK.N: 21% PICK(1)-1 + " USD.08: 40% USD:8-47 + " USD.13: 93% USD:13-15 + " USD.15: 87% USD:15-24 + " USD.17: 22% USD:17-10 + " USD.17: 80% USD:17-38 +pattern[s], searching for lines which match any of a set of USD.19: 6% USD:19-1 +patterns, substitute replacement USD.16: 68% USD:16-13 + " USD.16: 76% USD:16-14 + " USD.16: 76% USD:16-14 +pattern[s], test FORMAT.8V: 9% FORMAT(8V)-1 + " FORMAT.8V: 20% FORMAT(8V)-1 + " SMM.01: 14% SMM:1-10 +pattern BEGIN USD.19: 28% USD:19-3 +pattern END USD.19: 29% USD:19-3 +pattern matching CSH.1: 37% CSH(1)-7 + " AWK.1: 3% AWK(1)-1 + " REGEX.3: 17% REGEX(3)-1 + " USD.12: 81% USD:12-9 +pattern matching, approximate PATCH.N: 56% PATCH(1)-2 +pattern matching operation[s] PICK.N: 22% PICK(1)-1 + " PICK.N: 28% PICK(1)-1 + " USD.08: 40% USD:8-47 + " USD.08: 40% USD:8-47 + " SMM.16: 62% SMM:16-9 + " USD.01: 42% USD:1-7 + " USD.03: 28% USD:3-7 + " USD.18: 19% USD:18-2 + " USD.18: 80% USD:18-8 + " USD.18: 81% USD:18-8 + " USD.32: 46% USD:32-7 +Pattern Range[s] USD.19: 42% USD:19-4 +Pattern Scanning and Processing Language, Awk - A USD.19: 0% USD:19-1 +pattern space[s] SED.1: 11% SED(1)-1 + " SED.1: 14% SED(1)-1 + " SED.1: 15% SED(1)-1 + " SED.1: 16% SED(1)-1 + " SED.1: 21% SED(1)-1 + " SED.1: 22% SED(1)-1 + " SED.1: 23% SED(1)-1 + " SED.1: 26% SED(1)-1 + " SED.1: 27% SED(1)-1 + " SED.1: 32% SED(1)-1 + " SED.1: 49% SED(1)-1 + " SED.1: 52% SED(1)-2 + " SED.1: 54% SED(1)-2 + " SED.1: 55% SED(1)-2 + " SED.1: 57% SED(1)-2 + " SED.1: 59% SED(1)-2 + " SED.1: 60% SED(1)-2 + " SED.1: 62% SED(1)-2 + " SED.1: 62% SED(1)-2 + " SED.1: 64% SED(1)-2 + " SED.1: 66% SED(1)-2 + " SED.1: 67% SED(1)-2 + " SED.1: 74% SED(1)-2 + " SED.1: 78% SED(1)-2 + " SED.1: 79% SED(1)-2 + " SED.1: 85% SED(1)-2 + " SED.1: 97% SED(1)-3 + " USD.18: 19% USD:18-2 + " USD.18: 19% USD:18-2 + " USD.18: 19% USD:18-2 + " USD.18: 28% USD:18-3 + " USD.18: 28% USD:18-3 + " USD.18: 30% USD:18-3 + " USD.18: 35% USD:18-4 + " USD.18: 80% USD:18-8 + " USD.18: 81% USD:18-8 + " USD.18: 82% USD:18-8 + " USD.18: 82% USD:18-8 + " USD.18: 82% USD:18-8 + " USD.18: 83% USD:18-8 + " USD.18: 83% USD:18-8 + " USD.18: 84% USD:18-8 + " USD.18: 85% USD:18-9 + " USD.18: 85% USD:18-9 + " USD.18: 86% USD:18-9 + " USD.18: 86% USD:18-9 + " USD.18: 87% USD:18-9 + " USD.18: 87% USD:18-9 +Pattern-space USD.18: 19% USD:18-2 +pause - stop until signal PAUSE.3C: 9% PAUSE(3C)-1 +pause-jove USD.17: 10% USD:17-5 +pause-jove (ESC S) USD.17: 84% USD:17-40 +Pausing - Leaving JOVE, Exiting and USD.17: 10% USD:17-5 +Payne, Jonathan JOVE.N: 99% JOVE(1)-3 + " JOVE_RECOVER.N: 98% JOVE_RECOVER(1) + " TEACHJOVE.N: 91% TEACHJOVE(1)-1 + " USD.17: 0% USD:17-1 +PC DBX.5: 30% DBX(5)-1 + " SMM.19: 87% SMM:19-24 +pc, Pascal compiler INTRO.3: 2% INTRO(3)-1 + " INTRO.3: 12% INTRO(3)-1 + " STAB.5: 6% STAB(5)-1 +pc - Pascal compiler PC.1: 1% PC(1)-1 +pcl - DEC CSS PCL-11 B Network Interface PCL.4: 1% PCL(4)-1 +pclose POPEN.3: 3% POPEN(3)-1 +PD para. spacing USD.20: 70% USD:20-5 +PDP-10 FTP.1C: 85% FTP(1C)-6 +PDP-20 FTP.1C: 85% FTP(1C)-6 +pdx - pascal debugger PDX.1: 0% PDX(1)-1 +pdxinit PDX.1: 6% PDX(1)-1 +PEEK SMM.15: 56% SMM:15-17 +peek at incoming message PS1.06: 81% PS1:6-35 + " PS1.07a: 92% PS1:7-23 + " PS1.08: 21% PS1:8-8 + " PS1.08: 59% PS1:8-24 +peeking at a message without reading PS1.06: 81% PS1:6-35 +peephole optimizer SMM.12A: 12% SMM:12-4 +peer, connected SMM.15: 53% SMM:15-16 + " GETPEERNAME.2: 7% GETPEERNAME(2)- +pending connections ACCEPT.2: 20% ACCEPT(2)-1 + " ACCEPT.2: 26% ACCEPT(2)-1 + " ACCEPT.2: 35% ACCEPT(2)-1 + " LISTEN.2: 43% LISTEN(2)-1 + " PS1.07a: 62% PS1:7-14 + " PS1.07a: 75% PS1:7-18 + " PS1.08: 18% PS1:8-7 + " SMM.13: 42% SMM:13-15 + " SMM.15: 52% SMM:15-16 +pending input TTY.4: 3% TTY(4)-1 + " TTY.4: 26% TTY(4)-3 + " TTY.4: 39% TTY(4)-4 +pending output CSH.1: 7% CSH(1)-2 + " EXIT.3: 25% EXIT(3)-1 +pending system calls SMM.13: 12% SMM:13-5 + " SMM.12A: 1% SMM:12-2 +per-user statistics SA.8: 91% SA(8)-2 +percent sign USD.01: 9% USD:1-2 +performance, file system SMM.14: 2% SMM:14-2 + " SMM.14: 8% SMM:14-2 + " SMM.14: 13% SMM:14-3 + " SMM.14: 57% SMM:14-9 +performance, uucp SMM.21: 72% SMM:21-5 +performance enhancements MH-PROFILE.N: 75% MH-PROFILE(5)-5 + " SMM.13: 86% SMM:13-29 + " SMM.12A: 93% SMM:12-22 +performance improvement[s] SMM.01: 1% SMM:1-2 + " SMM.09: 35% SMM:9-8 + " SMM.09: 36% SMM:9-8 + " SMM.13: 0% SMM:13-2 +performance monitoring SMM.01: 0% SMM:1-1 +peripheral devices PS2.03: 25% PS2:3-5 + " PS2.03: 25% PS2:3-5 + " PS2.03: 30% PS2:3-5 + " SMM.02: 22% SMM:2-7 +Permission[s] CHMOD.1: 45% CHMOD(1)-1 + " LS.1: 67% LS(1)-2 +permission, execute PS1.06: 65% PS1:6-29 +permission, read PS1.06: 65% PS1:6-29 +permission, retrieve PS2.10: 9% PS2:10-9 + " PS2.10: 49% PS2:10-42 + " PS2.10: 67% PS2:10-58 +permission, write PS1.06: 65% PS1:6-29 +permission[s], access EXECVE.2: 82% EXECVE(2)-2 + " GETGID.2: 65% GETGID(2)-1 + " INTRO.2: 86% INTRO(2)-7 + " INTRO.2: 87% INTRO(2)-7 + " INTRO.2: 89% INTRO(2)-7 + " SMM.09: 55% SMM:9-12 + " SMM.21: 29% SMM:21-2 +permission, execute ACCESS.3F: 50% ACCESS(3F)-1 +permission[s], file CHMOD.1: 20% CHMOD(1)-1 + " GROUPS.1: 68% unknown +Permission[s], File Access INTRO.2: 73% INTRO(2)-6 + " INTRO.2: 88% INTRO(2)-7 + " INTRO.2: 85% INTRO(2)-7 + " USERFILE.5: 3% USERFILE(5)-1 +permission, read ACCESS.3F: 44% ACCESS(3F)-1 +permission[s], read/write CO.N: 88% CO(1)-3 + " SMM.09: 30% SMM:9-7 +permission, test for execute (search) ACCESS.2: 9% ACCESS(2)-1 +permission, test for read ACCESS.2: 5% ACCESS(2)-1 +permission, test for write ACCESS.2: 7% ACCESS(2)-1 +permission, Write UNLINK.2: 57% UNLINK(2)-1 + " ACCESS.3F: 47% ACCESS(3F)-1 + " CHMOD.1: 80% CHMOD(1)-1 +permit - add permissions to a relation PS2.10: 32% PS2:10-30 +permit statement[s] PS2.10: 32% PS2:10-30 + " PS2.10: 32% PS2:10-30 + " PS2.10: 32% PS2:10-30 + " PS2.10: 32% PS2:10-30 + " PS2.10: 33% PS2:10-30 + " PS2.10: 33% PS2:10-30 + " PS2.10: 33% PS2:10-30 + " PS2.10: 33% PS2:10-30 + " PS2.10: 85% PS2:10-77 + " PS2.10: 90% PS2:10-80 + " PS2.10: 91% PS2:10-81 + " PS2.10: 91% PS2:10-81 +PEX PS1.08: 8% PS1:8-4 + " PS1.08: 95% PS1:8-40 + " PS1.08: 95% PS1:8-40 + " PS1.08: 95% PS1:8-40 + " PS1.08: 97% PS1:8-41 + " PS1.08: 97% PS1:8-41 +PEX packet PS1.08: 96% PS1:8-40 +Pi PS1.04: 67% PS1:4-34 + " PS1.04: 70% PS1:4-36 + " PS1.04: 98% PS1:4-49 +PI, Berkeley Pascal PS1.04: 28% PS1:4-16 + " PS1.04: 36% PS1:4-19 + " PS1.04: 38% PS1:4-20 + " PS1.04: 39% PS1:4-21 + " PS1.04: 44% PS1:4-23 + " PS1.04: 53% PS1:4-28 +permuted index PTX.1: 6% PTX(1)-1 + " USD.01: 75% USD:1-11 +perror SMM.12A: 68% SMM:12-16 +perror[s], gerror[s], ierrno - get system error message PERROR.3F: 2% PERROR(3F)-1 +perror[s], sys_errlist[s], sys_nerr - system error message PERROR.3: 4% PERROR(3)-1 +personal name POST.N: 74% POST(8)-1 + " SEND.N: 52% SEND(1)-1 + " USD.08: 54% USD:8-64 + " USD.08: 78% USD:8-96 +Phasers USD.34: 57% USD:34-7 + " USD.34: 58% USD:34-7 + " USD.34: 59% USD:34-7 +PhD thesis USD.22: 70% USD:22-13 + " USD.23: 65% USD:23-8 + " USD.31: 42% USD:31-7 + " USD.31: 42% USD:31-7 +phone, home ADDUSER.8: 37% ADDUSER(8)-1 + " PASSWD.1: 76% PASSWD(1)-1 + " PASSWD.5: 21% PASSWD(5)-1 +phone line[s] L-DEVICES.5: 53% L-DEVICES(5)-1 + " SMM.01: 52% SMM:1-33 + " SMM.10: 72% SMM:10-18 + " TTY.4: 47% TTY(4)-5 + " USD.10: 12% USD:10-2 + " USD.11: 7% USD:11-2 +phone number[s] DN.4: 23% DN(4)-1 + " DN.4: 41% DN(4)-1 + " FINGER.1: 15% FINGER(1)-1 + " L-DIALCODES.5: 11% L-DIALCODES(5)- + " L-DIALCODES.5: 85% L-DIALCODES(5)- + " L_SYS.5: 2% L.SYS(5)-1 + " L_SYS.5: 53% L.SYS(5)-2 + " L_SYS.5: 57% L.SYS(5)-2 + " PASSWD.1: 78% PASSWD(1)-1 + " PHONES.5: 40% PHONES(5)-1 + " PHONES.5: 73% PHONES(5)-1 + " REMOTE.5: 25% REMOTE(5)-1 + " SMM.01: 59% SMM:1-36 + " SMM.01: 59% SMM:1-36 + " SMM.01: 59% SMM:1-36 + " SMM.09: 25% SMM:9-6 + " SMM.09: 26% SMM:9-6 + " SMM.09: 59% SMM:9-13 + " SMM.09: 70% SMM:9-15 + " SMM.09: 71% SMM:9-15 + " SMM.09: 91% SMM:9-19 + " SMM.21: 34% SMM:21-3 + " TIP.1C: 44% TIP(1C)-2 + " SMM.12A: 42% SMM:12-10 + " SMM.12A: 52% SMM:12-12 + " SMM.12A: 52% SMM:12-12 +phone numbers for remote hosts HIER.7: 21% HIER(7)-2 +phones - remote host phone number data base PHONES.5: 4% PHONES(5)-1 +PHONES environment variable TIP.1C: 96% TIP(1C)-3 +Photocomposition USD.26: 10% USD:26-2 +photon torpedo[s] USD.34: 4% USD:34-1 + " USD.34: 29% USD:34-4 + " USD.34: 64% USD:34-8 + " USD.34: 66% USD:34-8 + " USD.34: 75% USD:34-9 +phototypesetter TROFF.1: 57% TROFF(1)-2 + " USD.23: 7% USD:23-2 + " USD.27: 0% USD:27-1 +phototypesetter, Graphic Systems EQN.1: 5% EQN(1)-1 + " TC.1: 15% TC(1)-1 + " USD.24: 0% USD:24-2 + " USD.24: 19% USD:24-8 + " USD.26: 10% USD:26-2 +phototypesetter accounting TROFF.1: 78% TROFF(1)-1 +phototypesetter commands LPD.8: 53% LPD(8)-1 + " LPR.1: 21% LPR(1)-1 +phrases, verb USD.32: 8% USD:32-2 + " USD.32: 33% USD:32-5 + " USD.32: 33% USD:32-5 + " USD.32: 34% USD:32-5 + " USD.32: 34% USD:32-5 + " USD.32: 38% USD:32-6 +physical addresses SMM.13: 83% SMM:13-28 + " SMM.13: 88% SMM:13-30 +physical device SMM.01: 5% SMM:1-4 + " SMM.01: 6% SMM:1-4 +physical disk DISKPART.8: 48% DISKPART(8)-1 + " SMM.01: 6% SMM:1-4 + " SMM.01: 42% SMM:1-28 +physical ethernet address DE.4: 69% DE(4)-1 + " IL.4: 58% IL(4)-1 + " IX.4: 67% IX(4)-1 +physical i/o PS.1: 84% PS(1)-3 +physical line[s] USD.15: 59% USD:15-17 + " USD.15: 60% USD:15-17 + " USD.15: 61% USD:15-17 + " USD.24: 62% USD:24-20 +physical location SMM.19: 39% SMM:19-11 +physical memory[s] GETRLIMIT.2: 34% GETRLIMIT(2)-1 + " MEM.4: 37% MEM(4)-1 + " SMM.02: 83% SMM:2-27 + " SMM.02: 90% SMM:2-31 + " SMM.02: 90% SMM:2-31 + " SMM.02: 91% SMM:2-31 + " SMM.02: 95% SMM:2-32 + " SMM.13: 43% SMM:13-15 + " SMM.13: 43% SMM:13-15 + " SMM.13: 43% SMM:13-15 + " SMM.13: 44% SMM:13-16 + " VLIMIT.3C: 47% VLIMIT(3C)-1 +physical pages SYSTAT.1: 35% SYSTAT(1)-2 + " SYSTAT.1: 35% SYSTAT(1)-2 + " SYSTAT.1: 37% SYSTAT(1)-2 +physical record[s] TOPEN.3F: 43% TOPEN(3F)-1 + " TOPEN.3F: 53% TOPEN(3F)-1 +physical space SMM.14: 15% SMM:14-3 +physical terminal WINDOW.1: 14% WINDOW(1)-1 + " WINDOW.1: 15% WINDOW(1)-1 + " WINDOW.1: 96% WINDOW(1)-7 +pi - Pascal interpreter code translator PI.1: 1% unknown + " PX.1: 10% PX(1)-1 +PI para. indent USD.20: 71% USD:20-5 +pi options PS1.04: 66% PS1:4-34 + " PS1.04: 66% PS1:4-34 + " PS1.04: 67% PS1:4-34 +Pipe[s] PS2.01: 53% PS2:1-8 + " PS1.06: 80% PS1:6-35 + " PS1.07a: 3% PS1:7-1 + " PS1.07a: 12% PS1:7-2 +Pix PS1.04: 67% PS1:4-35 +pic picture, .PE End USD.23: 54% USD:23-7 +pic picture, .PS Begin USD.23: 54% USD:23-7 +pick - select messages by content PICK.N: 0% PICK(1)-1 + " USD.08: 39% USD:8-47 +pick command USD.08: 7% USD:8-6 + " USD.08: 80% USD:8-98 +pigs display[s] SYSTAT.1: 16% SYSTAT(1)-1 + " SMM.01: 78% SMM:1-48 +Pike, Rob APPLY.1: 78% APPLY(1)-1 +pile, cpile - centered USD.27: 61% USD:27-7 +pile, lpile - left-justified USD.27: 60% USD:27-7 +pile, rpile - right-justified USD.27: 60% USD:27-7 +ping - send ICMP ECHO_REQUEST packets to network host[s] PING.8: 2% PING(8)-1 +pipe[s] CSH.1: 44% CSH(1)-9 + " FORK.2: 48% FORK(2)-1 + " SOCKETPAIR.2: 89% SOCKETPAIR(2)-1 +pipe, create a POPEN.3: 27% POPEN(3)-1 +pipe - create an interprocess communication channel PIPE.2: 3% PIPE(2)-1 +pipe and copy to a file TEE.1: 52% unknown +Pipe the message MAIL.1: 75% MAIL(1)-5 + " MHOOK.N: 21% MHOOK(1)-2 +Pipeline[s] USD.03: 8% USD:3-2 + " CSH.1: 4% CSH(1)-1 + " SH.1: 5% SH(1)-1 + " WAIT.1: 76% WAIT(1)-1 + " USD.04: 8% USD:4-5 + " USD.04: 90% USD:4-41 +pix - Pascal interpreter and executor PIX.1: 5% PIX(1)-1 +PKT mode SMM.13: 26% SMM:13-10 + " SMM.13: 26% SMM:13-10 + " SMM.12A: 75% SMM:12-17 + " SMM.12A: 75% SMM:12-17 +place, vertical USD.24: 7% USD:24-3 + " USD.24: 21% USD:24-8 + " USD.24: 32% USD:24-11 + " USD.24: 47% USD:24-16 + " USD.24: 69% USD:24-22 +plan file[s] FINGER.1: 40% FINGER(1)-1 +Plot LPD.8: 58% LPD(8)-2 + " LPR.1: 27% LPR(1)-1 + " SMM.12A: 42% SMM:12-10 + " SMM.12A: 68% SMM:12-16 +plot - graphics filter[s] PLOT.1G: 2% PLOT(1G)-1 +plot - graphics interface PLOT.5: 1% PLOT(5)-1 +plot filters GRAPH.1G: 14% unknown +plot mode SMM.06: 51% SMM:6-4 + " SMM.20: 9% SMM:20-2 + " SMM.20: 10% SMM:20-2 + " SMM.20: 18% SMM:20-2 + " SMM.20: 19% SMM:20-2 + " SMM.20: 19% SMM:20-2 + " SMM.20: 19% SMM:20-2 + " SMM.20: 21% SMM:20-2 + " SMM.20: 32% SMM:20-3 + " SMM.20: 33% SMM:20-3 + " SMM.20: 40% SMM:20-4 + " SMM.20: 41% SMM:20-4 + " SMM.20: 41% SMM:20-4 + " SMM.20: 47% SMM:20-4 + " SMM.20: 48% SMM:20-4 + " SMM.20: 58% SMM:20-5 + " VP.4: 32% VP(4)-1 +plot: openpl et al. - f77 library interface to plot (3X) library[s] PLOT.3F: 3% PLOT(3F)-1 +plotting area PLOT.5: 73% PLOT(5)-1 + " PLOT.5: 80% PLOT(5)-1 + " PLOT.5: 85% PLOT(5)-1 + " PLOT.5: 86% PLOT(5)-1 +plotting instruction[s] PLOT.5: 10% PLOT(5)-1 +pmerge - pascal file merger PMERGE.1: 6% PMERGE(1)-1 +pmon.out PC.1: 61% PC(1)-2 +PO page offset USD.20: 71% USD:20-5 +Point[s] USD.17: 13% USD:17-6 + " USD.17: 14% USD:17-6 + " USD.17: 29% USD:17-13 + " USD.17: 40% USD:17-17 + " USD.17: 74% USD:17-35 + " USD.17: 82% USD:17-39 + " USD.17: 89% USD:17-43 + " USD.17: 91% USD:17-44 + " USD.17: 92% USD:17-44 + " USD.24: 20% USD:24-8 + " PLOT.3F: 32% PLOT(3F)-1 + " PLOT.3X: 15% PLOT(3X)-1 + " USD.17: 1% USD:17-1 + " USD.17: 12% USD:17-6 + " USD.17: 89% USD:17-43 +point, exclamation SMM.07A: 66% SMM:07-28 +point size[s] EQN.1: 72% EQN(1)-2 + " MS.7: 42% MS(7)-2 + " MS.7: 55% MS(7)-2 + " USD.20: 21% USD:20-2 + " USD.22: 92% USD:22-18 + " USD.23: 31% USD:23-4 + " USD.23: 69% USD:23-9 + " USD.24: 22% USD:24-9 + " USD.24: 26% USD:24-9 + " USD.24: 26% USD:24-9 + " USD.24: 28% USD:24-10 + " USD.24: 38% USD:24-13 + " USD.25: 8% USD:25-2 + " USD.25: 9% USD:25-2 + " USD.25: 9% USD:25-2 + " USD.25: 11% USD:25-2 + " USD.25: 11% USD:25-2 + " USD.25: 13% USD:25-3 + " USD.25: 14% USD:25-3 + " USD.25: 14% USD:25-3 + " USD.25: 27% USD:25-5 + " USD.25: 28% USD:25-5 + " USD.25: 28% USD:25-5 + " USD.25: 34% USD:25-6 + " USD.25: 58% USD:25-9 + " USD.25: 58% USD:25-9 + " USD.25: 64% USD:25-10 + " USD.25: 64% USD:25-10 + " USD.25: 64% USD:25-10 + " USD.25: 65% USD:25-10 + " USD.25: 71% USD:25-11 + " USD.25: 75% USD:25-11 + " USD.28: 24% USD:28-4 + " USD.28: 25% USD:28-4 + " USD.28: 25% USD:28-4 + " USD.28: 29% USD:28-5 + " USD.28: 37% USD:28-6 + " VGRIND.1: 49% VGRIND(1)-1 + " MS.7: 74% MS(7)-3 +point size[s], P USD.20: 6% USD:20-1 +point size change[s] USD.28: 24% USD:28-4 +point to point address INTRO.4N: 83% INTRO(4N)-3 +point to point link IFCONFIG.8C: 80% IFCONFIG(8C)-2 +point, starting PS2.01: 13% PS2:1-3 +Pointers PS1.01: 15% PS1:1-5 + " PS1.01: 22% PS1:1-7 + " PS1.01: 85% PS1:1-29 +point-to-point interface[s] SMM.13: 59% SMM:13-21 + " SMM.13: 84% SMM:13-28 + " NSIP.4: 34% NSIP(4)-1 +point-to-point links ROUTED.8C: 39% ROUTED(8C)-1 + " SMM.08: 49% SMM:8-2 + " SMM.13: 62% SMM:13-22 + " SMM.15: 71% SMM:15-21 + " SMM.12A: 86% SMM:12-20 +pointer, character PS1.06: 6% PS1:6-5 + " PS1.09: 36% PS1:9-4 + " PS1.09: 37% PS1:9-4 + " PS2.03: 32% PS2:3-6 + " PS2.03: 88% PS2:3-14 +pointer[s], argument SMM.13: 8% SMM:13-4 + " SMM.19: 39% SMM:19-11 +pointer[s], character DBX.1: 72% DBX(1)-5 + " EXECL.3: 53% EXECL(3)-1 + " EXECVE.2: 20% EXECVE(2)-1 + " EXECVE.2: 26% EXECVE(2)-1 + " EXECVE.2: 57% EXECVE(2)-2 + " PRINTF.3S: 79% PRINTF(3S)-2 + " SMM.19: 35% SMM:19-10 +pointer[s], file FCNTL.2: 16% FCNTL(2)-1 + " FORK.2: 30% FORK(2)-1 + " LSEEK.2: 28% LSEEK(2)-1 + " LSEEK.2: 77% LSEEK(2)-1 + " OPEN.2: 38% OPEN(2)-1 + " PS2.03: 13% PS2:3-3 + " PS2.03: 15% PS2:3-3 + " PS2.03: 16% PS2:3-3 + " PS2.03: 16% PS2:3-3 + " PS2.03: 19% PS2:3-4 + " PS2.03: 19% PS2:3-4 + " PS2.03: 19% PS2:3-4 + " PS2.03: 22% PS2:3-4 + " PS2.03: 23% PS2:3-4 + " PS2.03: 26% PS2:3-5 + " PS2.03: 27% PS2:3-5 + " PS2.03: 34% PS2:3-6 + " PS2.03: 83% PS2:3-13 +pointer[s], I/O PS2.04: 84% PS2:4-8 + " PS2.04: 85% PS2:4-8 + " PS2.04: 85% PS2:4-8 + " PS2.04: 85% PS2:4-8 + " PS2.04: 86% PS2:4-8 + " PS2.04: 86% PS2:4-8 + " PS2.04: 86% PS2:4-8 + " PS2.04: 89% PS2:4-9 +pointer, input PS1.03: 36% PS1:3-5 + " PS1.16: 57% PS1:16-7 +pointer, null PS1.11a: 19% PS1:11-2 + " PS1.11a: 35% PS1:11-3 + " PS1.11a: 56% PS1:11-4 +Pointer Alignment PS1.09: 52% PS1:9-6 +Pointer Conversion, Explicit PS1.01: 88% PS1:1-30 +pointer[s], file SORTBIB.1: 22% SORTBIB(1)-1 + " STDIO.3S: 38% STDIO(3S)-1 + " STDIO.3S: 41% STDIO(3S)-1 + " WRITE.2: 56% WRITE(2)-1 + " SMM.12A: 70% SMM:12-16 +pointer, frame DBX.5: 10% DBX(5)-1 + " DBX.5: 29% DBX(5)-1 + " SIGRETURN.2: 36% SIGRETURN(2)-1 +pointer[s], stack BRK.2: 21% BRK(2)-1 + " SMM.19: 49% SMM:19-14 + " TRPFPE.3F: 83% TRPFPE(3F)-1 +pointsiz[s], TROFF default USD.24: 38% USD:24-13 +pointsize (and line spacing), .sz set USD.23: 42% USD:23-6 +pointsize, .sm smaller USD.23: 47% USD:23-6 +Polhemus 3-D digitizer TB.4: 53% TB(4)-1 +policy[s], allocation SMM.14: 0% SMM:14-2 +policy[s], Layout SMM.14: 37% SMM:14-6 +policy note USD.11: 62% USD:11-10 +poll a remote UUCP site UUPOLL.8C: 4% UUPOLL(8C)-1 +polling a remote system UUCICO.8C: 24% unknown +polling system[s] SMM.09: 23% SMM:9-6 +pop-mark USD.17: 84% USD:17-40 +popd CSH.1: 66% CSH(1)-14 + " USD.17: 85% USD:17-40 +popd command USD.04: 47% USD:4-21 + " USD.04: 92% USD:4-42 + " USD.04: 90% USD:4-41 +popen SMM.12A: 69% SMM:12-16 +popen, pclose - initiate I/O to/from a process POPEN.3: 3% POPEN(3)-1 +port, default PS2.09: 35% PS2:9-63 + " PS2.09: 35% PS2:9-63 + " PS2.09: 35% PS2:9-63 + " PS2.09: 36% PS2:9-65 + " PS2.09: 39% PS2:9-69 + " PS2.09: 39% PS2:9-70 + " PS2.09: 40% PS2:9-71 + " PS2.09: 40% PS2:9-71 + " PS2.09: 40% PS2:9-71 + " PS2.09: 40% PS2:9-72 +port[s], Internet RCMD.3: 59% RCMD(3)-1 +port[s], Privileged Internet RCMD.3: 59% RCMD(3)-1 +port, source RLOGIND.8C: 19% RLOGIND(8C)-1 + " RLOGIND.8C: 32% RLOGIND(8C)-1 + " RSHD.8C: 12% RSHD(8C)-1 + " RSHD.8C: 22% RSHD(8C)-1 +port[s], TCP L_SYS.5: 44% L.SYS(5)-2 + " TCP.4P: 16% TCP(4P)-1 + " TCP.4P: 39% TCP(4P)-1 + " UDP.4P: 44% UDP(4P)-1 +port, terminal BK.4: 38% BK(4)-1 + " INIT.8: 23% INIT(8)-1 + " TTYNAM.3F: 13% TTYNAM(3F)-1 +port, ttynam, isatty - find name of a terminal TTYNAM.3F: 8% TTYNAM(3F)-1 +PORT command[s] FTP.1C: 64% FTP(1C)-5 + " FTP.1C: 65% FTP(1C)-5 + " FTP.1C: 65% FTP(1C)-5 +port identifier UDP.4P: 35% UDP(4P)-1 +port name[s] L_SYS.5: 51% L.SYS(5)-2 + " SMM.09: 70% SMM:9-15 +port number[s] FTPD.8C: 93% FTPD(8C)-2 + " GETSERVENT.3N: 49% GETSERVENT(3N)- + " GETSERVENT.3N: 51% GETSERVENT(3N)- + " GETSERVENT.3N: 76% GETSERVENT(3N)- + " L-DEVICES.5: 43% L-DEVICES(5)-1 + " L_SYS.5: 51% L.SYS(5)-2 + " NAMED.8: 12% NAMED(8)-1 + " NAMED.8: 13% NAMED(8)-1 + " NS.3N: 27% NS(3N)-1 + " NS.4F: 64% NS(4F)-1 + " RCMD.3: 16% RCMD(3)-1 + " REXECD.8C: 21% REXECD(8C)-1 + " RLOGIND.8C: 10% RLOGIND(8C)-1 + " RSHD.8C: 6% RSHD(8C)-1 + " RSHD.8C: 19% RSHD(8C)-1 + " SERVICES.5: 43% SERVICES(5)-1 + " SMM.09: 58% SMM:9-13 + " SMM.09: 70% SMM:9-15 + " SMM.11: 58% SMM:11-8 + " SMM.13: 77% SMM:13-26 + " SMM.13: 83% SMM:13-28 + " SMM.13: 85% SMM:13-29 +port selector[s] L_SYS.5: 89% L.SYS(5)-4 + " REMOTE.5: 46% REMOTE(5)-1 + " SMM.09: 46% SMM:9-10 + " SMM.09: 47% SMM:9-10 + " SMM.09: 77% SMM:9-16 +port[s], foreign PS1.08: 10% PS1:8-4 + " PS1.08: 73% PS1:8-30 + " PS1.08: 73% PS1:8-30 + " PS1.08: 77% PS1:8-31 +port[s], Internet PS1.08: 41% PS1:8-15 + " PS1.08: 46% PS1:8-19 + " PS1.08: 75% PS1:8-31 + " PS1.08: 76% PS1:8-31 +port, output PS2.09: 36% PS2:9-65 + " PS2.09: 41% PS2:9-72 + " PS2.09: 66% PS2:9-112 +port number[s] PS1.06: 87% PS1:6-37 + " PS1.07a: 47% PS1:7-11 + " PS1.07a: 50% PS1:7-11 + " PS1.07a: 50% PS1:7-11 + " PS1.07a: 50% PS1:7-11 + " PS1.07a: 51% PS1:7-11 + " PS1.07a: 52% PS1:7-11 + " PS1.07a: 56% PS1:7-13 + " PS1.07a: 70% PS1:7-16 + " PS1.07a: 74% PS1:7-18 + " PS1.08: 11% PS1:8-5 + " PS1.08: 37% PS1:8-14 + " PS1.08: 47% PS1:8-19 + " PS1.08: 50% PS1:8-20 + " PS1.08: 73% PS1:8-30 + " PS1.08: 74% PS1:8-30 + " PS1.08: 74% PS1:8-30 + " PS1.08: 74% PS1:8-30 + " PS1.08: 75% PS1:8-31 + " PS1.08: 75% PS1:8-31 + " PS1.08: 75% PS1:8-31 + " PS1.08: 76% PS1:8-31 + " PS1.08: 76% PS1:8-31 + " PS1.08: 77% PS1:8-31 + " PS1.08: 77% PS1:8-31 + " PS1.08: 79% PS1:8-32 + " PS1.08: 98% PS1:8-41 +port number, restricted PS1.08: 47% PS1:8-19 +portability restriction[s] PS1.09: 1% PS1:9-1 +Portable Fortran 77 compiler PS1.02: 0% + " PS1.02: 1% PS1:2-4 + " PS1.02: 5% PS1:2-4 + " PS1.02: 9% PS1:2-6 + " PS1.02: 13% PS1:2-6 + " PS1.02: 18% PS1:2-8 + " PS1.02: 21% PS1:2-8 + " PS1.02: 26% PS1:2-10 + " PS1.02: 29% PS1:2-10 + " PS1.02: 32% PS1:2-12 + " PS1.02: 36% PS1:2-12 + " PS1.02: 40% PS1:2-14 + " PS1.02: 42% PS1:2-14 + " PS1.02: 47% PS1:2-16 + " PS1.02: 48% PS1:2-16 + " PS1.02: 52% PS1:2-18 + " PS1.02: 55% PS1:2-18 + " PS1.02: 59% PS1:2-20 + " PS1.02: 62% PS1:2-20 + " PS1.02: 64% PS1:2-22 + " PS1.02: 67% PS1:2-22 + " PS1.02: 70% PS1:2-24 + " PS1.02: 74% PS1:2-24 + " PS1.02: 78% PS1:2-26 + " PS1.02: 81% PS1:2-26 + " PS1.02: 83% PS1:2-28 + " PS1.02: 85% PS1:2-2 + " PS1.02: 99% PS1:2-4 + " PS1.03: 59% PS1:3-7 +Portal creation PS1.06: 62% PS1:6-28 +portability, check LINT.1: 38% LINT(1)-1 +Portable C Compiler STAB.5: 85% STAB(5)-2 +Portable C Compiler, Tour Through the SMM.19: 0% unknown +Portable Compiler[s] SMM.19: 1% SMM:19-2 + " SMM.19: 1% SMM:19-2 + " SMM.19: 2% SMM:19-2 + " SMM.19: 4% SMM:19-2 + " SMM.19: 28% SMM:19-8 + " SMM.19: 31% SMM:19-9 + " SMM.19: 40% SMM:19-12 + " SMM.19: 43% SMM:19-12 + " SMM.19: 45% SMM:19-13 + " SMM.19: 81% SMM:19-23 + " SMM.19: 87% SMM:19-24 + " SMM.19: 87% SMM:19-24 + " SMM.19: 91% SMM:19-25 + " SMM.19: 96% SMM:19-27 +portal removal, File, device, and PS1.06: 63% PS1:6-29 +portal(name, server, param, dtype, protocol, domain, socktype) PS1.06: 62% PS1:6-28 +position, File FSEEK.3S: 34% FSEEK(3S)-1 +position, home PS1.18: 31% PS1:18-8 + " PS1.18: 53% PS1:18-15 + " TERMCAP.5: 47% TERMCAP(5)-8 + " TERMCAP.5: 48% TERMCAP(5)-8 + " TERMCAP.5: 48% TERMCAP(5)-8 +position, horizontal USD.24: 65% USD:24-21 + " USD.25: 29% USD:25-5 + " USD.26: 52% USD:26-4 + " USD.27: 50% USD:27-6 +position, page USD.24: 47% USD:24-16 + " USD.24: 83% USD:24-28 + " USD.24: 93% USD:24-31 +position, starting PS1.18: 6% PS1:18-3 +position[s], rotational FS.5: 70% FS(5)-3 + " FS.5: 71% FS(5)-3 + " SMM.14: 44% SMM:14-7 + " SMM.14: 44% SMM:14-7 + " SMM.14: 44% SMM:14-7 + " SMM.14: 44% SMM:14-7 + " SMM.14: 45% SMM:14-7 + " SMM.14: 45% SMM:14-7 +position, trap USD.24: 32% USD:24-11 + " USD.24: 40% USD:24-13 + " USD.24: 47% USD:24-16 + " USD.24: 48% USD:24-16 + " USD.24: 48% USD:24-16 + " USD.24: 51% USD:24-17 + " USD.24: 86% USD:24-28 +position[s], vertical USD.24: 30% USD:24-11 + " USD.24: 46% USD:24-15 + " USD.25: 36% USD:25-6 + " USD.25: 55% USD:25-9 + " USD.25: 63% USD:25-9 +Position Traps USD.24: 42% USD:24-14 + " USD.24: 8% USD:24-3 +positional parameter[s] CSH.1: 79% CSH(1)-17 + " SH.1: 20% SH(1)-2 + " SH.1: 23% SH(1)-2 + " SH.1: 23% SH(1)-2 + " SH.1: 25% SH(1)-2 + " SH.1: 28% SH(1)-2 + " SH.1: 83% SH(1)-5 + " USD.03: 22% USD:3-5 + " USD.03: 22% USD:3-5 + " USD.03: 25% USD:3-6 + " USD.03: 36% USD:3-9 + " USD.03: 56% USD:3-14 + " USD.03: 61% USD:3-15 + " USD.03: 70% USD:3-17 + " USD.03: 70% USD:3-17 +positional parameters $1, $2, .... USD.03: 21% USD:3-5 +Post SMM.10: 3% SMM:10-1 + " SMM.10: 4% SMM:10-2 + " SMM.10: 77% SMM:10-19 + " USD.09: 24% USD:9-3 + " USD.10: 40% USD:10-5 +post - deliver a message POST.N: 1% POST(8)-1 + " USD.08: 77% USD:8-96 +post-mortem backtrace[s] PS1.04: 71% PS1:4-36 + " PS1.04: 71% PS1:4-36 + " PS1.04: 79% PS1:4-41 + " PX.1: 26% PX(1)-1 +post-mortem control flow backtrace PI.1: 25% PI(1)-1 +Post-mortem dump[s] SMM.03: 44% SMM:3-1 + " SMM.03: 66% SMM:3-1 +Posting USD.10: 22% USD:10-3 + " USD.10: 30% USD:10-4 + " USD.10: 32% USD:10-4 + " USD.10: 34% USD:10-4 +posting file LOOKBIB.1: 44% LOOKBIB(1)-1 + " USD.30: 15% USD:30-2 + " USD.30: 15% USD:30-2 + " USD.30: 16% USD:30-2 +posting of message[s] MSGS.1: 54% MSGS(1)-1 +posting of software packages & documentation USD.09: 79% USD:9-10 +posting program[s] USD.10: 42% USD:10-5 +posting time MH-ALIAS.N: 70% MH-ALIAS(5)-2 + " USD.08: 63% USD:8-76 +postmaster MAILADDR.7: 70% MAILADDR(7)-2 +postnew[s] USD.09: 33% USD:9-4 + " USD.10: 42% USD:10-5 +pow - multiple precision integer arithmetic MP.3X: 2% MP(3X)-1 +pow - power EXP.3M: 2% EXP(3M)-1 +Power fail and crash recovery REBOOT.8: 18% REBOOT(8)-1 +Pr[s] SMM.12A: 43% SMM:12-10 +pr - print file PR.1: 3% PR(1)-1 +pr command[s] USD.01: 40% USD:1-6 + " USD.04: 91% USD:4-42 + " USD.01: 33% USD:1-5 +Precedence[s] USD.27: 82% USD:27-9 + " VACATION.1: 91% VACATION(1)-1 + " VACATION.1: 92% VACATION(1)-1 + " SMM.07A: 29% SMM:07-14 + " SMM.07A: 40% SMM:07-19 + " SMM.07A: 40% SMM:07-19 + " SMM.07A: 73% SMM:07-32 + " SMM.07A: 79% SMM:07-36 +precedence in C, operator PS1.01: 95% PS1:1-32 +precedence level[s] PS1.05: 37% PS1:5-5 + " PS1.15: 48% PS1:15-14 + " PS1.15: 50% PS1:15-15 + " PS1.15: 52% PS1:15-15 +precedence of expression operator[s] PS1.01: 17% PS1:1-6 +precedence, operator USD.24: 22% USD:24-9 + " USD.25: 67% USD:25-10 + " USD.26: 15% USD:26-2 +precedence rule[s] YACC.1: 17% YACC(1)-1 + " USD.26: 67% USD:26-5 +precision specification PRINTF.3S: 68% PRINTF(3S)-2 + " PRINTF.3S: 74% PRINTF(3S)-2 + " PRINTF.3S: 82% PRINTF(3S)-2 +Predefined String in -me[s] USD.23: 68% USD:23-9 +PREDEFINED VARIABLES CSH.1: 77% CSH(1)-17 +Prefix Character[s] USD.17: 6% USD:17-3 + " USD.17: 6% USD:17-3 + " USD.17: 6% USD:17-3 + " USD.17: 6% USD:17-3 + " USD.17: 6% USD:17-3 +prefix command[s] USD.17: 54% USD:17-24 + " USD.17: 54% USD:17-24 + " USD.17: 96% USD:17-46 +Prefix-1 (Escape) USD.17: 55% USD:17-25 +prefix operator PS1.16: 88% PS1:16-11 + " PS2.06: 31% PS2:6-11 + " PS2.06: 31% PS2:6-11 +preparation, document PS2.01: 3% PS2:1-1 + " PS2.01: 95% PS2:1-14 + " PS2.01: 98% PS2:1-15 + " PS2.08: 0% + " PS2.08: 0% + " PS2.08: 5% PS2:8-2 + " PS2.08: 15% PS2:8-2 + " PS2.08: 23% PS2:8-4 + " PS2.08: 30% PS2:8-4 + " PS2.08: 36% PS2:8-6 + " PS2.08: 44% PS2:8-6 + " PS2.08: 52% PS2:8-8 + " PS2.08: 60% PS2:8-8 + " PS2.08: 67% PS2:8-10 + " PS2.08: 74% PS2:8-10 + " PS2.08: 83% PS2:8-12 + " PS2.08: 93% PS2:8-12 + " PS1.01: 81% PS1:1-27 + " USD.01: 0% USD:1-1 + " USD.01: 4% USD:1-1 + " USD.01: 24% USD:1-4 + " USD.01: 34% USD:1-6 + " USD.01: 66% USD:1-10 + " USD.01: 66% USD:1-10 + " USD.01: 71% USD:1-11 + " USD.01: 94% USD:1-14 + " USD.25: 5% USD:25-2 +preparing tbl input USD.28: 4% USD:28-1 +preprocessor[s], C F77.1: 8% F77(1)-1 + " F77.1: 27% F77(1)-1 + " F77.1: 54% F77(1)-2 + " SMM.19: 96% SMM:19-27 + " XSTR.1: 61% XSTR(1)-1 + " XSTR.1: 72% XSTR(1)-1 + " SMM.12A: 6% SMM:12-2 + " SMM.12A: 10% SMM:12-3 + " CC.1: 40% CC(1)-2 + " DIFF.1: 73% DIFF(1)-2 + " UNIFDEF.1: 12% UNIFDEF(1)-1 +preprocessor, macro CC.1: 37% CC(1)-2 +Preprocessor extension[s] SMM.19: 95% SMM:19-26 +prerequisites line PATCH.N: 35% PATCH(1)-1 +preserve USD.16: 45% USD:16-9 +preserve command USD.07: 22% USD:7-5 + " USD.07: 22% USD:7-6 + " USD.07: 58% USD:7-14 + " USD.16: 49% USD:16-9 +pretty-printer PXP.1: 9% PXP(1)-1 + " VGRIND.1: 87% VGRIND(1)-2 +prettyprint USD.17: 52% USD:17-23 +prettyprinter CB.1: 16% + " INDENT.1: 4% INDENT(1)-1 +prettyprinter, Pascal PS1.04: 75% PS1:4-39 +Primary Expression[s] PS1.01: 18% PS1:1-6 + " PS1.01: 19% PS1:1-6 + " PS1.01: 19% PS1:1-6 + " PS1.01: 20% PS1:1-6 + " PS1.01: 20% PS1:1-7 + " PS1.01: 20% PS1:1-7 + " PS1.01: 21% PS1:1-7 + " PS1.01: 21% PS1:1-7 + " PS1.01: 21% PS1:1-7 + " PS1.01: 21% PS1:1-7 + " PS1.01: 22% PS1:1-7 + " PS1.01: 22% PS1:1-7 + " PS1.01: 23% PS1:1-7 + " PS1.01: 24% PS1:1-7 + " PS1.01: 39% PS1:1-12 +prettyprinter, lisp VLP.1: 2% VLP(1)-1 +prev - show the previous message PREV.N: 2% PREV(1)-1 + " USD.08: 42% USD:8-51 +previewing, colcrt - filter nroff output for CRT COLCRT.1: 3% COLCRT(1)-1 +previous context USD.15: 12% USD:15-4 +previous message PREV.N: 17% PREV(1)-1 +previous-error (C-X C-P) USD.17: 85% USD:17-40 +previous-line (C-P) USD.17: 85% USD:17-40 +previous-page (ESC V) USD.17: 85% USD:17-41 +Previous-Sequence INC.N: 47% INC(1)-1 + " SHOW.N: 52% SHOW(1)-1 + " USD.08: 24% USD:8-26 + " USD.08: 45% USD:8-54 + " USD.08: 56% USD:8-66 + " USD.08: 69% USD:8-85 + " USD.08: 82% USD:8-101 + " USD.08: 82% USD:8-101 + " USD.08: 82% USD:8-101 +previous-window (C-X P and C-X O) USD.17: 85% USD:17-41 +previously executed commands LASTCOMM.1: 16% LASTCOMM(1)-1 +primary alias file MH-ALIAS.N: 78% MH-ALIAS(5)-3 + " MH-ALIAS.N: 83% MH-ALIAS(5)-3 + " POST.N: 59% POST(8)-1 + " USD.08: 63% USD:8-77 + " USD.08: 78% USD:8-96 +Primary Master Name Server SMM.11: 70% SMM:11-10 + " SMM.11: 71% SMM:11-10 + " SMM.11: 72% SMM:11-10 + " SMM.11: 15% SMM:11-3 + " SMM.11: 16% SMM:11-3 + " SMM.11: 17% SMM:11-3 + " SMM.11: 53% SMM:11-7 + " SMM.11: 70% SMM:11-10 +Primary prompt string SH.1: 32% SH(1)-2 +primary memory PS2.04: 7% PS2:4-1 + " PS2.04: 7% PS2:4-1 + " PS2.04: 8% PS2:4-1 + " PS2.04: 11% PS2:4-2 + " PS2.04: 18% PS2:4-3 + " PS2.04: 23% PS2:4-3 + " PS2.04: 24% PS2:4-3 + " PS2.04: 24% PS2:4-3 + " PS2.04: 25% PS2:4-3 + " PS2.04: 25% PS2:4-3 + " PS2.04: 25% PS2:4-3 + " PS2.04: 26% PS2:4-3 + " PS2.04: 27% PS2:4-3 + " PS2.04: 28% PS2:4-3 + " PS2.04: 33% PS2:4-4 + " PS2.04: 62% PS2:4-6 + " PS2.04: 76% PS2:4-7 +primary pages PS2.10: 24% PS2:10-24 + " PS2.10: 24% PS2:10-24 + " PS2.10: 25% PS2:10-24 + " PS2.10: 25% PS2:10-24 + " PS2.10: 25% PS2:10-24 +primary relation PS2.10: 12% PS2:10-15 + " PS2.10: 14% PS2:10-17 + " PS2.10: 14% PS2:10-17 + " PS2.10: 70% PS2:10-60 + " PS2.10: 70% PS2:10-60 + " PS2.10: 70% PS2:10-60 +primary swap area CRASH.8V: 87% CRASH(8V)-3 + " SMM.01: 29% SMM:1-20 + " SMM.13: 48% SMM:13-17 +Print[s] SMM.12A: 43% SMM:12-10 +primitives, Interprocess communication PS1.06: 73% PS1:6-32 + " PS1.08: 0% +primitives, Kernel PS1.06: 6% PS1:6-6 + " PS1.06: 94% PS1:6-41 +print - print relation PS2.10: 33% PS2:10-30 +Print command[s] PS2.10: 64% PS2:10-56 + " PS2.10: 67% PS2:10-58 + " PS2.10: 86% PS2:10-77 +print name[s] PS2.09: 2% PS2:9-4 + " PS2.09: 2% PS2:9-4 + " PS2.09: 3% PS2:9-7 + " PS2.09: 3% PS2:9-7 + " PS2.09: 4% PS2:9-8 + " PS2.09: 11% PS2:9-20 + " PS2.09: 11% PS2:9-21 + " PS2.09: 12% PS2:9-22 + " PS2.09: 12% PS2:9-22 + " PS2.09: 12% PS2:9-22 + " PS2.09: 12% PS2:9-22 + " PS2.09: 12% PS2:9-22 + " PS2.09: 12% PS2:9-22 + " PS2.09: 12% PS2:9-22 + " PS2.09: 12% PS2:9-23 + " PS2.09: 12% PS2:9-23 + " PS2.09: 13% PS2:9-24 + " PS2.09: 13% PS2:9-24 + " PS2.09: 36% PS2:9-65 + " PS2.09: 36% PS2:9-65 + " PS2.09: 39% PS2:9-69 + " PS2.09: 39% PS2:9-69 + " PS2.09: 47% PS2:9-83 + " PS2.09: 50% PS2:9-89 + " PS2.09: 51% PS2:9-89 + " PS2.09: 54% PS2:9-95 + " PS2.09: 54% PS2:9-95 + " PS2.09: 54% PS2:9-95 + " PS2.09: 68% PS2:9-113 +print relation[s] PS2.10: 1% PS2:10-3 + " PS2.10: 33% PS2:10-30 + " PS2.10: 67% PS2:10-58 +print statement[s] PS1.02: 25% PS1:2-9 + " PS1.02: 29% PS1:2-10 + " PS1.02: 71% PS1:2-24 + " PS1.03: 32% PS1:3-5 +print the value of variable[s] PS1.11a: 49% PS1:11-3 +print, lpr - off line LPR.1: 1% LPR(1)-1 +print a field or field[s] USD.19: 19% USD:19-2 +print a message USD.08: 6% USD:8-6 +print a window of text USD.16: 63% USD:16-12 +print command[s] MAIL.1: 31% MAIL(1)-2 + " USD.07: 52% USD:7-13 + " USD.12: 29% USD:12-3 + " USD.12: 29% USD:12-3 + " USD.13: 54% USD:13-9 + " USD.14: 46% USD:14-11 + " USD.14: 69% USD:14-17 + " USD.17: 53% USD:17-23 + " ED.1: 59% CONS(4)-1 +print error message[s] SMM.07A: 70% SMM:07-30 +print file[s] PR.1: 3% PR(1)-1 +Print footer, .$f USD.23: 27% USD:23-4 +print function USD.18: 70% USD:18-7 +print index USD.22: 75% USD:22-14 + " USD.23: 39% USD:23-5 +Print macro[s] USD.24: 80% USD:24-26 +print mode SMM.06: 51% SMM:6-4 +print out the manual MAN.1: 2% MAN(1)-1 +Print section heading, .$p USD.23: 18% USD:23-3 +print statement[s] USD.19: 20% USD:19-2 + " USD.19: 25% USD:19-3 + " USD.19: 59% USD:19-5 +Print string on standard error USD.24: 81% USD:24-26 +print working directory USD.04: 45% USD:4-20 +printable ASCII approximation TROFF.1: 62% TROFF(1)-2 +printable ASCII characters TIP.1C: 85% TIP(1C)-3 +printable character[s] USD.24: 24% USD:24-9 +printcap LPD.8: 5% LPD(8)-1 +printcap - printer capability data base PRINTCAP.5: 1% PRINTCAP(5)-1 +printcap database SMM.06: 10% SMM:6-2 + " SMM.06: 34% SMM:6-3 + " SMM.06: 63% SMM:6-5 + " SMM.06: 77% SMM:6-6 + " SMM.06: 78% SMM:6-6 +printcap file PRINTCAP.5: 5% PRINTCAP(5)-1 + " SMM.06: 9% SMM:6-2 + " SMM.06: 34% SMM:6-3 + " SMM.06: 34% SMM:6-3 + " SMM.06: 67% SMM:6-5 +printcap file, Creating a SMM.06: 34% SMM:6-3 +printenv - print out the environment PRINTENV.1: 11% unknown +printer, default ENVIRON.7: 68% ENVIRON(7)-1 + " LPR.1: 10% LPR(1)-1 + " LPRM.1: 71% LPRM(1)-1 + " PAC.8: 39% PAC(8)-1 + " PRINTCAP.5: 10% PRINTCAP(5)-1 +printer[s], Imagen laser PLOT.3X: 73% PLOT(3X)-1 +printer[s], laser SMM.01: 55% SMM:1-34 + " PLOT.1G: 23% PLOT(1G)-1 + " SMM.12A: 43% SMM:12-10 + " SMM.12A: 68% SMM:12-16 +printer[s], line COLCRT.1: 52% COLCRT(1)-1 + " LP.4: 4% LP(4)-1 + " LP.4: 16% LP(4)-1 + " LPC.8: 7% LPC(8)-1 + " LPQ.1: 9% LPQ(1)-1 + " PLOT.1G: 63% PLOT(1G)-1 + " PRINTCAP.5: 4% PRINTCAP(5)-1 + " PS1.04: 18% PS1:4-10 + " PS1.04: 25% PS1:4-14 + " PS1.04: 52% PS1:4-27 + " PS2.01: 9% PS2:1-2 + " PS2.04: 51% PS2:4-5 + " PS2.04: 63% PS2:4-6 + " PS2.10: 34% PS2:10-31 + " SCRIPT.1: 39% SCRIPT(1)-1 + " SMM.01: 55% SMM:1-34 + " SMM.02: 34% SMM:2-10 + " SMM.06: 23% SMM:6-2 + " SMM.06: 59% SMM:6-5 + " USD.04: 11% USD:4-6 + " USD.04: 32% USD:4-15 + " USD.04: 88% USD:4-41 + " USD.17: 70% USD:17-32 + " USD.20: 46% USD:20-4 + " USD.22: 4% USD:22-1 + " SMM.12A: 69% SMM:12-16 +printer[s], Remote SMM.06: 43% SMM:6-4 +printers, status of LPC.8: 13% LPC(8)-1 +printers, test LPTEST.1: 39% LPTEST(1)-1 +printer access SMM.06: 11% SMM:6-2 + " SMM.06: 57% SMM:6-4 + " LPD.8: 94% unknown +printer daemon[s] LPC.8: 63% LPC(8)-1 + " LPC.8: 87% LPC(8)-2 + " LPQ.1: 68% LPQ(1)-1 + " SMM.06: 25% SMM:6-2 +PRINTER environment variable LPQ.1: 21% LPQ(1)-1 + " LPRM.1: 73% LPRM(1)-1 + " ENVIRON.7: 66% ENVIRON(7)-1 + " PRINTCAP.5: 11% PRINTCAP(5)-1 + " PAC.8: 43% PAC(8)-1 + " LPR.1: 12% LPR(1)-1 +printer job[s] LPC.8: 40% LPC(8)-1 + " LPC.8: 44% LPC(8)-1 + " SMM.01: 55% SMM:1-34 +printer queue[s] LPC.8: 41% LPC(8)-1 + " LPC.8: 43% LPC(8)-1 + " LPC.8: 48% LPC(8)-1 + " LPC.8: 85% LPC(8)-2 + " SMM.06: 75% SMM:6-6 +printer/plotter[s], Versatec SMM.06: 59% SMM:6-5 + " VP.4: 8% VP(4)-1 +printer/plotter accounting PAC.8: 12% PAC(8)-1 +printers attached via serial line[s] SMM.01: 55% SMM:1-34 + " SMM.06: 2% SMM:6-2 +Printers on serial line[s] SMM.06: 36% SMM:6-3 +printf, fprintf, sprintf - formatted output conversion PRINTF.3S: 0% PRINTF(3S)-1 +printing, save text for later USD.22: 38% USD:22-7 +printing beginning of file HEAD.1: 14% HEAD(1)-1 +printing character[s] CTYPE.3: 62% CTYPE(3)-1 +printing error message[s] PERROR.3: 7% PERROR(3)-1 +printing fields AWK.1: 85% AWK(1)-2 +printing files USD.01: 0% USD:1-1 + " USD.01: 31% USD:1-5 + " CAT.1: 2% CAT(1)-1 +printing information about processes PS.1: 1% PS(1)-1 +printing long lines on short terminal[s] USD.13: 6% USD:13-2 +printing signal message[s] PSIGNAL.3: 19% PSIGNAL(3)-1 +Printing the Bibliography USD.29: 26% USD:29-3 +Printing the contents of the buffer USD.12: 28% USD:12-3 +printing trace record[s] TRPT.8C: 9% TRPT(8C)-1 +printr - print relation[s] PS2.10: 67% PS2:10-58 +printw() PS1.18: 19% PS1:18-6 +printw(fmt, arg1, arg2, ...) PS1.18: 41% PS1:18-11 +priority data PS1.07a: 84% PS1:7-22 + " PS1.07a: 84% PS1:7-22 + " PS1.07a: 85% PS1:7-22 +priority, alter RENICE.8: 3% RENICE(8)-1 +priority, getpriority, setpriority - get/set program scheduling GETPRIORITY.2: 2% GETPRIORITY(2)- +priority, lowering and raising CSH.1: 63% CSH(1)-13 +priority[s], message SYSLOGD.8: 18% SYSLOGD(8)-1 + " SMM.07A: 15% SMM:07-9 + " SMM.07A: 72% SMM:07-32 +priority, nice, nohup - run a command at low NICE.1: 3% NICE(1)-1 +priority, nice - set program NICE.3C: 5% NICE(3C)-1 +priority[s], process GETPRIORITY.2: 94% GETPRIORITY(2)- + " PS.1: 17% PS(1)-1 + " PS.1: 17% PS(1)-1 +priority[s], Processor SMM.13: 3% SMM:13-2 + " SMM.13: 4% SMM:13-2 + " SMM.13: 17% SMM:13-7 + " SMM.13: 21% SMM:13-8 +priorities, queue SMM.07A: 26% SMM:07-13 + " SMM.07A: 28% SMM:07-14 +priority[s], scheduling CSH.1: 63% CSH(1)-13 + " GETPRIORITY.2: 14% GETPRIORITY(2)- + " NICE.1: 14% NICE(1)-1 + " NICE.3C: 18% NICE(3C)-1 + " RENICE.8: 11% RENICE(8)-1 + " RENICE.8: 23% RENICE(8)-1 + " RENICE.8: 28% RENICE(8)-1 + " RENICE.8: 80% RENICE(8)-1 + " RENICE.8: 91% RENICE(8)-1 +priority[s], syslog message SYSLOG.3: 18% SYSLOG(3)-1 +private file SMM.17: 89% SMM:17-3 + " USD.30: 65% USD:30-7 + " USD.30: 66% USD:30-7 + " USD.30: 98% USD:30-12 + " USD.31: 22% USD:31-3 +private file of reference[s] USD.30: 98% USD:30-12 +private page map CRASH.8V: 79% CRASH(8V)-2 + " SMM.15: 10% SMM:15-4 + " SMM.15: 85% SMM:15-24 +private sequence[s] MH-PROFILE.N: 15% MH-PROFILE(5)-1 + " RMF.N: 55% RMF(1)-1 + " USD.08: 45% USD:8-54 + " USD.08: 50% USD:8-60 + " USD.08: 70% USD:8-86 + " USD.08: 74% USD:8-89 + " USD.08: 81% USD:8-100 + " USD.08: 81% USD:8-100 + " USD.08: 81% USD:8-100 +privilege, user with least SMM.01: 32% SMM:1-21 +Privileged Internet port[s] RCMD.3: 59% RCMD(3)-1 +prmail SMM.12A: 43% SMM:12-10 +probe[s], system SMM.02: 29% SMM:2-9 + " SMM.02: 65% SMM:2-20 +probe routine SMM.02: 57% SMM:2-17 + " SMM.02: 58% SMM:2-17 + " SMM.02: 58% SMM:2-17 + " SMM.02: 58% SMM:2-18 + " SMM.02: 59% SMM:2-18 + " SMM.02: 59% SMM:2-18 + " SMM.02: 60% SMM:2-18 + " SMM.02: 73% SMM:2-23 + " SMM.02: 74% SMM:2-23 +proc table SMM.13: 18% SMM:13-7 + " SMM.13: 18% SMM:13-7 + " SMM.13: 19% SMM:13-8 +procedure, authentication RLOGIND.8C: 87% RLOGIND(8C)-1 + " RSHD.8C: 83% RSHD(8C)-2 + " RSHD.8C: 92% RSHD(8C)-2 +procedure[s], bootstrap CRASH.8V: 28% CRASH(8V)-1 + " SMM.01: 8% SMM:1-5 + " SMM.01: 9% SMM:1-7 + " SMM.01: 9% SMM:1-7 + " SMM.01: 41% SMM:1-27 +procedure[s], built-in PS1.04: 20% PS1:4-11 + " PS1.04: 42% PS1:4-22 + " PS1.04: 88% PS1:4-45 + " PS1.04: 95% PS1:4-48 +procedure[s], C PS1.02: 12% PS1:2-6 + " PS1.02: 37% PS1:2-13 + " PS1.02: 37% PS1:2-13 +procedure[s], Fortran PS1.02: 37% PS1:2-13 + " PS1.02: 37% PS1:2-13 + " PS2.06: 81% PS2:6-28 + " PS2.06: 97% PS2:6-35 + " PS2.06: 98% PS2:6-35 + " PS2.06: 99% PS2:6-35 +procedure argument[s] PS1.02: 41% PS1:2-14 + " PS2.06: 21% PS2:6-8 + " PS2.06: 24% PS2:6-10 +procedure call[s] PS1.04: 32% PS1:4-18 + " PS1.08: 95% PS1:8-40 + " PS2.06: 29% PS2:6-11 +Procedure Invocation[s] PS2.06: 25% PS2:6-10 + " PS2.06: 26% PS2:6-10 + " PS2.06: 26% PS2:6-10 + " PS2.06: 27% PS2:6-10 + " PS2.06: 44% PS2:6-15 + " PS2.06: 47% PS2:6-16 + " PS2.06: 47% PS2:6-16 + " PS2.06: 73% PS2:6-25 +procedure name[s] PS1.02: 37% PS1:2-13 + " PS1.02: 37% PS1:2-13 + " PS2.06: 25% PS2:6-10 + " PS2.06: 44% PS2:6-15 + " PS2.06: 44% PS2:6-15 + " PS2.06: 73% PS2:6-25 + " PS2.06: 98% PS2:6-35 + " PS2.06: 16% PS2:6-7 + " PS2.06: 25% PS2:6-10 + " PS2.06: 44% PS2:6-16 + " PS2.06: 65% PS2:6-23 +procedure[s], dummy DBX.1: 98% DBX(1)-7 + " DBX.1: 98% DBX(1)-7 +procedure[s], initialization SMM.15: 28% SMM:15-9 + " SMM.12A: 33% SMM:12-8 +procedure, installation SMM.01: 22% SMM:1-16 +procedures in Berkeley Pascal, nonstandard functions and PS1.04: 96% PS1:4-49 +Processes PS1.06: 7% PS1:6-6 + " PS1.06: 26% PS1:6-13 + " PS1.06: 44% PS1:6-21 + " PS2.01: 52% PS2:1-8 + " PS2.01: 53% PS2:1-8 + " PS2.01: 57% PS2:1-9 + " PS2.03: 44% PS2:3-7 + " PS2.03: 68% PS2:3-11 + " PS2.04: 18% PS2:4-3 + " PS2.04: 27% PS2:4-3 + " PS2.04: 87% PS2:4-8 + " PS2.10: 28% PS2:10-27 + " PS2.10: 65% PS2:10-56 + " PS2.10: 80% PS2:10-70 + " PS2.10: 80% PS2:10-70 + " PS2.10: 80% PS2:10-71 +procedures, shutdown SMM.01: 73% SMM:1-45 + " SMM.05: 20% SMM:5-5 + " SMM.05: 21% SMM:5-5 +procedure traceback DBX.1: 21% DBX(1)-2 +procedures for recompiling and reinstalling system software SMM.01: 0% SMM:1-1 +proceedings, conference USD.31: 34% USD:31-5 + " USD.31: 88% USD:31-16 +PROCESS[s] INTRO.2: 74% INTRO(2)-6 +processes, asynchronous KILL.1: 69% KILL(1)-1 + " SH.1: 98% SH(1)-6 +process, auto-login FTP.1C: 53% FTP(1C)-4 + " FTP.1C: 90% FTP(1C)-7 + " FTP.1C: 93% FTP(1C)-7 + " FTP.1C: 94% FTP(1C)-7 + " FTP.1C: 94% FTP(1C)-7 + " FTP.1C: 95% FTP(1C)-7 + " FTP.1C: 96% FTP(1C)-7 +process, autoconfiguration SMM.02: 0% SMM:2-2 + " SMM.02: 1% SMM:2-2 + " SMM.02: 7% SMM:2-3 + " SMM.02: 29% SMM:2-8 +process, child PS1.06: 9% PS1:6-7 + " PS1.06: 9% PS1:6-7 + " PS1.07a: 27% PS1:7-7 + " PS1.08: 66% PS1:8-26 + " PS1.08: 66% PS1:8-26 + " PS2.01: 53% PS2:1-8 + " PS2.01: 53% PS2:1-8 + " PS2.01: 56% PS2:1-8 + " PS2.01: 71% PS2:1-11 + " PS2.01: 71% PS2:1-11 + " PS2.01: 78% PS2:1-12 + " PS2.03: 54% PS2:3-9 + " PS2.03: 60% PS2:3-9 + " PS2.03: 62% PS2:3-10 + " PS2.03: 62% PS2:3-10 + " PS2.04: 19% PS2:4-3 + " PS2.04: 21% PS2:4-3 + " PS2.09: 42% PS2:9-75 +processes, client PS1.08: 43% PS1:8-17 + " PS1.08: 43% PS1:8-17 + " PS1.08: 49% PS1:8-20 + " PS1.08: 68% PS1:8-27 + " PS1.08: 69% PS1:8-27 +processes, background W.1: 80% W(1)-1 +process[s], child CSH.1: 65% CSH(1)-14 + " FORK.2: 10% FORK(2)-1 + " FORK.2: 15% FORK(2)-1 + " FORK.2: 17% FORK(2)-1 + " FORK.2: 23% FORK(2)-1 + " FORK.2: 37% FORK(2)-1 + " FORK.2: 57% FORK(2)-1 + " FORK.2: 65% FORK(2)-1 + " FORK.2: 72% FORK(2)-1 + " GETRUSAGE.2: 6% GETRUSAGE(2)-1 + " GETRUSAGE.2: 97% GETRUSAGE(2)-2 + " NICE.3C: 59% NICE(3C)-1 + " PTRACE.2: 5% PTRACE(2)-1 + " PTRACE.2: 23% PTRACE(2)-1 + " SH.1: 90% SH(1)-6 + " SMM.13: 18% SMM:13-7 + " TTY.4: 5% TTY(4)-1 + " UMASK.2: 74% UMASK(2)-1 + " USD.03: 84% USD:3-21 + " WAIT.2: 14% WAIT(2)-1 + " WAIT.2: 26% WAIT(2)-1 + " WAIT.2: 34% WAIT(2)-1 + " WAIT.2: 75% WAIT(2)-1 + " WAIT.2: 78% WAIT(2)-1 + " WAIT.3F: 33% WAIT(3F)-1 +processes, communicating PS1.07a: 28% PS1:7-7 + " PS1.07a: 90% PS1:7-22 + " PS1.08: 2% PS1:8-2 + " PS1.08: 10% PS1:8-4 + " SAIL.6: 5% SAIL(6)-1 +process, control RCMD.3: 38% RCMD(3)-1 + " RCMD.3: 40% RCMD(3)-1 + " REXEC.3: 60% REXEC(3)-1 + " REXEC.3: 65% REXEC(3)-1 +processes, cooperating FLOCK.2: 26% FLOCK(2)-1 + " PIPE.2: 34% PIPE(2)-1 +process, current W.1: 54% W(1)-1 +process[s], daemon LPD.8: 32% LPD(8)-1 + " SMM.01: 31% SMM:1-21 + " SMM.14: 85% SMM:14-12 + " SYSLOG.3: 48% SYSLOG(3)-1 + " SMM.12A: 81% SMM:12-19 + " SMM.12A: 88% SMM:12-21 +process, fork - create a new FORK.2: 2% FORK(2)-1 +process, init INIT.8: 56% INIT(8)-1 + " INIT.8: 77% INIT(8)-1 + " SMM.01: 53% SMM:1-33 +process, initialization CRASH.8V: 29% CRASH(8V)-1 + " CRON.8: 26% CRON(8)-1 + " EXIT.2: 64% EXIT(2)-1 + " WAIT.2: 70% WAIT(2)-1 + " INTRO.2: 74% INTRO(2)-6 +process[s], interactive USD.17: 45% USD:17-20 + " USD.17: 68% USD:17-32 + " USD.17: 75% USD:17-35 + " USD.17: 75% USD:17-35 + " USD.17: 75% USD:17-35 + " USD.17: 77% USD:17-36 + " USD.17: 78% USD:17-37 + " USD.17: 86% USD:17-41 +process, logging IMPLOGD.8C: 64% IMPLOGD(8C)-1 +process, login FTP.1C: 94% FTP(1C)-7 + " GETTYTAB.5: 76% GETTYTAB(5)-2 + " RLOGIND.8C: 40% RLOGIND(8C)-1 + " RLOGIND.8C: 40% RLOGIND(8C)-1 + " RLOGIND.8C: 44% RLOGIND(8C)-1 + " TELNETD.8C: 22% TELNETD(8C)-1 + " TELNETD.8C: 32% TELNETD(8C)-1 + " USD.14: 13% USD:14-4 +processes, maximum number of SMM.02: 86% SMM:2-30 +process[s], parent FORK.2: 21% FORK(2)-1 +processes, printing information about PS.1: 1% PS(1)-1 +process, routing ROUTED.8C: 71% ROUTED(8C)-2 + " ROUTED.8C: 93% ROUTED(8C)-3 + " SMM.15: 78% SMM:15-22 +process, routing table management SMM.01: 66% SMM:1-40 +processes, runnable PSTAT.8: 63% PSTAT(8)-3 + " SYSLINE.1: 13% SYSLINE(1)-1 +processes, running GCORE.1: 15% GCORE(1)-1 + " RENICE.8: 4% RENICE(8)-1 + " RENICE.8: 13% RENICE(8)-1 +process[s], Shell INIT.8: 48% INIT(8)-1 + " SH.1: 67% SH(1)-4 + " USD.17: 48% USD:17-21 +process[s], suspended SYSLINE.1: 15% SYSLINE(1)-1 +process, terminate a EXIT.2: 4% EXIT(2)-1 + " EXIT.3: 15% EXIT(3)-1 + " KILL.1: 3% KILL(1)-1 +process, terminated CORE.5: 13% CORE(5)-1 + " WAIT.2: 48% WAIT(2)-1 +processes, cooperating PS1.06: 70% PS1:6-31 + " PS1.06: 70% PS1:6-31 + " PS1.07a: 0% PS1:7-1 + " PS1.07a: 8% PS1:7-2 + " PS2.03: 55% PS2:3-9 +process, login PS1.08: 49% PS1:8-20 + " PS1.08: 50% PS1:8-20 + " PS1.08: 61% PS1:8-24 +process, parent PS1.02: 48% PS1:2-16 + " PS1.06: 9% PS1:6-7 + " PS1.06: 9% PS1:6-7 + " PS1.07a: 17% PS1:7-4 + " PS1.07a: 18% PS1:7-4 + " PS2.01: 52% PS2:1-8 + " PS2.01: 71% PS2:1-11 + " PS2.01: 75% PS2:1-11 + " PS2.04: 18% PS2:4-3 +process, resources used by a PS1.06: 45% PS1:6-21 +process[s], server PS1.06: 62% PS1:6-29 + " PS1.06: 63% PS1:6-29 + " PS1.08: 16% PS1:8-6 + " PS1.08: 17% PS1:8-7 + " PS1.08: 31% PS1:8-11 + " PS1.08: 42% PS1:8-17 + " PS1.08: 43% PS1:8-17 + " PS1.08: 43% PS1:8-17 + " PS1.08: 43% PS1:8-17 + " PS1.08: 43% PS1:8-17 + " PS1.08: 49% PS1:8-20 + " PS1.08: 52% PS1:8-21 + " PS1.08: 60% PS1:8-24 + " PS1.08: 68% PS1:8-27 + " PS1.08: 69% PS1:8-27 + " PS1.08: 75% PS1:8-30 +process, sharing of data between PS1.06: 14% PS1:6-10 +process, swapping PS2.04: 24% PS2:4-3 + " PS2.04: 25% PS2:4-3 + " PS2.04: 26% PS2:4-3 + " PS2.04: 33% PS2:4-4 +process, UNIX PS1.04: 62% PS1:4-31 + " PS1.04: 95% PS1:4-48 + " PS1.06: 0% +process[s], user PS1.06: 86% PS1:6-37 + " PS1.08: 19% PS1:8-7 + " PS2.04: 4% PS2:4-1 + " PS2.04: 5% PS2:4-1 + " PS2.04: 10% PS2:4-2 + " PS2.04: 13% PS2:4-2 + " PS2.04: 39% PS2:4-4 +process[s], waiting PS1.06: 22% PS1:6-12 + " PS2.03: 64% PS2:3-10 + " PS2.04: 8% PS2:4-1 +process control PS1.06: 1% + " PS1.06: 24% PS1:6-13 + " PS2.04: 4% PS2:4-1 + " PS2.09: 1% PS2:9-3 +Process creation and termination PS1.06: 8% PS1:6-7 +Process descriptor[s] PS1.06: 51% PS1:6-24 +Process group[s] PS1.06: 12% PS1:6-9 + " PS1.06: 12% PS1:6-9 + " PS1.06: 12% PS1:6-9 + " PS1.06: 12% PS1:6-9 + " PS1.06: 13% PS1:6-9 + " PS1.06: 13% PS1:6-9 + " PS1.06: 13% PS1:6-9 + " PS1.06: 13% PS1:6-9 + " PS1.06: 13% PS1:6-9 + " PS1.06: 13% PS1:6-9 + " PS1.06: 13% PS1:6-9 + " PS1.06: 13% PS1:6-9 + " PS1.06: 26% PS1:6-13 + " PS1.06: 30% PS1:6-14 + " PS1.06: 41% PS1:6-19 + " PS1.06: 41% PS1:6-19 + " PS1.06: 44% PS1:6-21 + " PS1.06: 90% PS1:6-38 + " PS1.06: 90% PS1:6-38 + " PS1.06: 93% PS1:6-39 + " PS1.08: 47% PS1:8-19 + " PS1.08: 59% PS1:8-24 + " PS1.08: 59% PS1:8-24 + " PS1.08: 64% PS1:8-26 + " PS1.08: 65% PS1:8-26 + " PS1.08: 66% PS1:8-26 +process group id PS1.08: 64% PS1:8-26 +process id PS1.06: 8% PS1:6-7 + " PS1.06: 8% PS1:6-7 + " PS1.06: 13% PS1:6-9 + " PS1.07a: 10% PS1:7-2 + " PS1.08: 59% PS1:8-24 + " PS1.08: 64% PS1:8-26 + " PS1.08: 64% PS1:8-26 + " PS1.08: 66% PS1:8-26 + " PS1.17: 75% PS1:17-5 + " PS2.03: 51% PS2:3-8 + " PS2.03: 53% PS2:3-9 + " PS2.09: 44% PS2:9-78 + " PS2.09: 44% PS2:9-79 + " PS2.09: 77% PS2:9-126 +process identifier[s] PS1.06: 7% PS1:6-6 + " PS1.06: 9% PS1:6-7 +process naming and protection PS1.06: 0% +process number PS1.08: 66% PS1:8-26 + " PS1.08: 66% PS1:8-26 + " PS2.03: 51% PS2:3-8 + " PS2.09: 42% PS2:9-75 + " PS2.10: 78% PS2:10-70 + " PS2.10: 79% PS2:10-70 +Process priority[s] PS1.06: 44% PS1:6-21 +process profiling PS1.06: 35% PS1:6-17 +process table[s] PS2.04: 13% PS2:4-2 + " PS2.04: 14% PS2:4-2 + " PS2.04: 14% PS2:4-2 + " PS2.04: 25% PS2:4-3 + " PS2.04: 25% PS2:4-3 + " PS2.10: 66% PS2:10-57 + " PS2.10: 66% PS2:10-57 + " PS2.10: 78% PS2:10-70 + " PS2.10: 78% PS2:10-70 + " PS2.10: 79% PS2:10-70 + " PS2.10: 81% PS2:10-74 + " PS2.10: 81% PS2:10-74 +process table entry PS2.04: 13% PS2:4-2 + " PS2.04: 14% PS2:4-2 + " PS2.04: 30% PS2:4-4 + " PS2.04: 31% PS2:4-4 +process termination PS1.06: 25% PS1:6-13 + " PS1.06: 27% PS1:6-14 + " PS2.03: 67% PS2:3-10 +process virtual time PS1.06: 34% PS1:6-16 + " PS1.06: 33% PS1:6-16 +Processor, M4 Macro PS1.17: 0% + " PS1.17: 0% + " PS1.17: 6% PS1:17-1 + " PS1.17: 13% PS1:17-2 + " PS1.17: 33% PS1:17-2 + " PS1.17: 51% PS1:17-4 + " PS1.17: 72% PS1:17-4 + " PS1.17: 91% PS1:17-6 +processes, terminated child GETRUSAGE.2: 11% GETRUSAGE(2)-1 + " TIMES.3C: 27% TIMES(3C)-1 + " VTIMES.3C: 13% VTIMES(3C)-1 +processes, total number of FORK.2: 78% FORK(2)-1 +process, trace PTRACE.2: 1% PTRACE(2)-1 +process[s], user GETGROUPS.2: 24% GETGROUPS(2)-1 + " IK.4: 90% IK(4)-1 + " PS.4: 12% PS(4)-1 + " PS.4: 23% PS(4)-1 + " PS.4: 74% PS(4)-1 + " PSTAT.8: 76% PSTAT(8)-3 + " SETGROUPS.2: 26% SETGROUPS(2)-1 + " SMM.05: 17% SMM:5-5 + " SMM.15: 77% SMM:15-22 + " SMM.15: 77% SMM:15-22 + " SPP.4P: 98% SPP(4P)-2 +process, wait - await completion of WAIT.1: 8% WAIT(1)-1 +process[s], waiting PSTAT.8: 62% PSTAT(8)-3 +process buffer USD.17: 86% USD:17-41 +process context SIGNAL.3C: 78% SIGNAL(3C)-2 + " SIGRETURN.2: 76% SIGRETURN(2)-1 + " SIGVEC.2: 5% SIGVEC(2)-1 +Process creation SMM.13: 18% SMM:13-7 + " TTY.4: 52% TTY(4)-5 +process entry[s] LASTCOMM.1: 45% LASTCOMM(1)-1 + " SMM.13: 7% SMM:13-4 +process file EXECVE.2: 5% EXECVE(2)-1 + " EXECVE.2: 76% EXECVE(2)-2 + " EXECVE.2: 79% EXECVE(2)-2 + " EXECVE.2: 82% EXECVE(2)-2 + " EXECVE.2: 84% EXECVE(2)-2 + " EXECVE.2: 91% EXECVE(2)-2 + " USD.03: 46% USD:3-11 +process group[s] FCNTL.2: 39% FCNTL(2)-1 + " FCNTL.2: 41% FCNTL(2)-1 + " FCNTL.2: 44% FCNTL(2)-1 + " FCNTL.2: 45% FCNTL(2)-1 + " FCNTL.2: 61% FCNTL(2)-1 + " GETPGRP.2: 7% GETPGRP(2)-1 + " GETPGRP.2: 18% GETPGRP(2)-1 + " GETPGRP.2: 33% GETPGRP(2)-1 + " GETPGRP.2: 49% GETPGRP(2)-1 + " GETPGRP.2: 70% GETPGRP(2)-1 + " GETPGRP.2: 84% GETPGRP(2)-1 + " GETPRIORITY.2: 16% GETPRIORITY(2)- + " GETPRIORITY.2: 35% GETPRIORITY(2)- + " INTRO.2: 7% INTRO(2)-1 + " INTRO.2: 64% INTRO(2)-5 + " KILL.1: 46% KILL(1)-1 + " KILL.2: 32% KILL(2)-1 + " KILL.2: 83% KILL(2)-1 + " KILL.2: 91% KILL(2)-1 + " KILLPG.2: 6% KILLPG(2)-1 + " KILLPG.2: 23% KILLPG(2)-1 + " KILLPG.2: 68% KILLPG(2)-1 + " KILLPG.2: 72% KILLPG(2)-1 + " KILLPG.2: 78% KILLPG(2)-1 + " RCMD.3: 45% RCMD(3)-1 + " RENICE.8: 21% RENICE(8)-1 + " REXEC.3: 74% REXEC(3)-1 + " SETPGRP.2: 16% SETPGRP(2)-1 + " SETPGRP.2: 66% SETPGRP(2)-1 + " SMM.13: 20% SMM:13-8 + " SMM.13: 24% SMM:13-9 + " SMM.13: 38% SMM:13-14 + " SOCKET.2: 74% SOCKET(2)-2 + " STTY.1: 90% STTY(1)-3 + " TTY.4: 8% TTY(4)-1 + " TTY.4: 8% TTY(4)-1 + " TTY.4: 8% TTY(4)-1 + " TTY.4: 9% TTY(4)-2 + " TTY.4: 10% TTY(4)-2 + " TTY.4: 48% TTY(4)-5 + " TTY.4: 50% TTY(4)-5 + " TTY.4: 52% TTY(4)-5 + " TTY.4: 52% TTY(4)-5 + " TTY.4: 55% TTY(4)-5 + " TTY.4: 99% TTY(4)-10 + " VHANGUP.2: 71% VHANGUP(2)-1 + " SMM.12A: 57% SMM:12-13 + " SMM.12A: 57% SMM:12-13 + " SMM.12A: 60% SMM:12-14 + " SMM.12A: 56% SMM:12-13 +process group ID EXECVE.2: 46% EXECVE(2)-1 + " INTRO.2: 64% INTRO(2)-5 + " KILL.2: 57% KILL(2)-1 + " TTY.4: 83% TTY(4)-9 + " RENICE.8: 17% unknown +process group leaders PS.1: 32% PS(1)-2 +process id (see also id, process) CSH.1: 59% CSH(1)-12 +process identifier[s] GETPRIORITY.2: 27% GETPRIORITY(2)- + " CSH.1: 6% CSH(1)-2 + " EXECVE.2: 45% EXECVE(2)-1 + " FCNTL.2: 39% FCNTL(2)-1 + " FCNTL.2: 49% FCNTL(2)-1 + " FCNTL.2: 90% FCNTL(2)-2 + " FORK.2: 16% FORK(2)-1 + " FORK.3F: 30% FORK(3F)-1 + " GETPID.2: 45% GETPID(2)-1 + " GETPID.3F: 22% GETPID(3F)-1 + " INTRO.2: 63% INTRO(2)-5 + " INTRO.2: 64% INTRO(2)-5 + " KILL.2: 80% KILL(2)-1 + " KILL.3F: 37% KILL(3F)-1 + " LOGGER.1: 48% LOGGER(1)-1 + " LPD.8: 85% LPD(8)-2 + " M4.1: 94% M4(1)-2 + " MKTEMP.3: 51% MKTEMP(3)-1 + " SMM.10: 80% SMM:10-20 + " SMM.11: 84% SMM:11-13 + " SYSLINE.1: 59% SYSLINE(1)-1 + " SYSLINE.1: 65% SYSLINE(1)-1 + " SYSLOG.3: 44% SYSLOG(3)-1 + " SYSLOGD.8: 89% SYSLOGD(8)-2 + " USD.11: 93% USD:11-14 + " WAIT.2: 17% WAIT(2)-1 + " WAIT.2: 70% WAIT(2)-1 + " INTRO.2: 74% INTRO(2)-6 + " RENICE.8: 16% RENICE(8)-1 + " RENICE.8: 33% RENICE(8)-1 + " RENICE.8: 46% RENICE(8)-1 +process image[s] CORE.5: 66% CORE(5)-1 + " EXECVE.2: 18% EXECVE(2)-1 + " PSTAT.8: 61% PSTAT(8)-3 +process management SMM.01: 39% SMM:1-26 +process number[s] CSH.1: 34% CSH(1)-7 + " KILL.1: 43% KILL(1)-1 + " KILL.1: 57% KILL(1)-1 + " KILL.1: 67% KILL(1)-1 + " KILL.1: 73% KILL(1)-1 + " KILL.2: 29% KILL(2)-1 + " KILL.2: 34% KILL(2)-1 + " KILL.2: 42% KILL(2)-1 + " KILL.2: 54% KILL(2)-1 + " KILL.2: 60% KILL(2)-1 + " PS.1: 52% PS(1)-2 + " SH.1: 29% SH(1)-2 + " SH.1: 29% SH(1)-2 + " USD.01: 62% USD:1-10 + " USD.01: 63% USD:1-10 + " USD.03: 6% USD:3-2 + " USD.03: 37% USD:3-9 + " USD.03: 37% USD:3-9 + " USD.03: 37% USD:3-9 + " USD.04: 38% USD:4-17 + " USD.04: 39% USD:4-17 + " USD.04: 39% USD:4-17 + " USD.04: 40% USD:4-18 + " USD.04: 41% USD:4-18 + " USD.04: 42% USD:4-19 + " USD.04: 56% USD:4-26 + " USD.04: 56% USD:4-26 + " USD.04: 91% USD:4-42 + " USD.04: 91% USD:4-42 + " USD.04: 92% USD:4-42 + " KILL.2: 8% KILL(2)-1 +process priority[s] GETPRIORITY.2: 94% GETPRIORITY(2)- + " PS.1: 17% PS(1)-1 + " PS.1: 17% PS(1)-1 +process resource accounting SMM.01: 82% SMM:1-50 +process scheduling SYSTAT.1: 31% SYSTAT(1)-2 +process statistics PS.1: 58% PS(1)-2 +process status longword SIGRETURN.2: 87% SIGRETURN(2)-1 +process table[s] INTRO.2: 15% INTRO(2)-2 + " SMM.13: 11% SMM:13-5 + " SMM.13: 11% SMM:13-5 + " SMM.13: 19% SMM:13-8 + " PSTAT.8: 33% PSTAT(8)-2 +process table entry[s] SMM.13: 11% SMM:13-5 +Process table management SMM.13: 11% SMM:13-5 +process termination ABORT.3: 38% ABORT(3)-1 + " CLOSE.2: 32% CLOSE(2)-1 +process TIME[s] TIMES.3C: 5% TIMES(3C)-1 +process time accounting file SMM.13: 16% SMM:13-7 +process virtual time GETITIMER.2: 54% GETITIMER(2)-1 + " GETITIMER.2: 59% GETITIMER(2)-1 +process-bind-to-key USD.17: 85% USD:17-41 +process-prompt (variable) USD.17: 86% USD:17-41 +Processes Under JOVE USD.17: 43% USD:17-19 +Processor priority[s] SMM.13: 3% SMM:13-2 +processor time USD.30: 26% USD:30-3 + " USD.30: 26% USD:30-3 +processor use statistics SYSTAT.1: 20% SYSTAT(1)-2 +processor[s], macro PS1.12: 6% PS1:12-1 + " PS1.17: 1% PS1:17-1 + " PS1.17: 3% PS1:17-1 + " PS1.17: 4% PS1:17-1 + " PS1.17: 6% PS1:17-1 + " PS1.17: 7% PS1:17-1 + " PS2.10: 17% PS2:10-20 + " PS2.10: 18% PS2:10-20 + " PS2.10: 18% PS2:10-20 + " PS2.10: 28% PS2:10-27 +producing a core file TTY.4: 50% TTY(4)-5 +production system SMM.16: 1% SMM:16-1 + " SMM.16: 1% SMM:16-1 + " SMM.16: 61% SMM:16-8 +PROF CC.1: 27% CC(1)-1 + " F77.1: 21% F77(1)-1 + " MONITOR.3: 15% MONITOR(3)-1 + " SMM.12A: 43% SMM:12-10 +prof - display profile data PROF.1: 2% PROF(1)-1 +profil MONITOR.3: 27% MONITOR(3)-1 +profil - execution time profile PROFIL.2: 4% PROFIL(2)-1 +profil(buf, bufsize, offset, scale) PS1.06: 35% PS1:6-17 +profile[s] PS1.02: 6% PS1:2-5 +profile[s], execution CC.1: 26% CC(1)-1 + " CC.1: 32% CC(1)-1 + " F77.1: 24% F77(1)-1 + " MONITOR.3: 3% MONITOR(3)-1 + " PS1.04: 26% PS1:4-15 + " PS1.04: 28% PS1:4-16 + " PS1.04: 70% PS1:4-36 + " PS1.04: 73% PS1:4-37 + " PXP.1: 10% PXP(1)-1 + " PXP.1: 56% PXP(1)-1 + " USD.01: 89% USD:1-13 + " GPROF.1: 3% GPROF(1)-1 +profile buffers KGMON.8: 6% KGMON(8)-1 + " KGMON.8: 45% KGMON(8)-1 + " KGMON.8: 49% KGMON(8)-1 +profile file[s] GPROF.1: 12% GPROF(1)-1 + " GPROF.1: 14% GPROF(1)-1 + " GPROF.1: 64% GPROF(1)-2 + " PROF.1: 18% PROF(1)-1 + " PROF.1: 32% PROF(1)-1 + " PROF.1: 46% PROF(1)-1 + " PROF.1: 61% PROF(1)-1 +profiled system SMM.02: 20% SMM:2-6 + " SMM.02: 20% SMM:2-6 + " SMM.02: 20% SMM:2-6 +profiled system, Building SMM.02: 19% SMM:2-6 +profiler, pxp - Pascal execution PXP.1: 1% PXP(1)-1 +profiling CONFIG.8: 22% CONFIG(8)-1 + " F77.1: 21% F77(1)-1 + " GETITIMER.2: 64% GETITIMER(2)-1 + " LISZT.1: 25% LISZT(1)-1 + " PC.1: 41% PC(1)-1 +profiling, execution PC.1: 59% PC(1)-2 + " PI.1: 36% PI(1)-1 +profiling, kernel KGMON.8: 15% KGMON(8)-1 + " SMM.02: 49% SMM:2-15 +profiling, process PS1.06: 35% PS1:6-17 +program, calling SMM.21: 52% SMM:21-4 +program, definition of USD.14: 6% USD:14-3 +program[s], C PS1.11a: 10% PS1:11-1 +program, compiling a Lex source PS1.16: 67% PS1:16-9 +program[s], EFL PS2.06: 0% PS2:6-1 + " PS2.06: 1% PS2:6-1 + " PS2.06: 4% PS2:6-3 + " PS2.06: 46% PS2:6-16 + " PS2.06: 65% PS2:6-23 +program[s], Fortran PS1.02: 9% PS1:2-5 + " PS1.02: 16% PS1:2-7 + " PS1.02: 41% PS1:2-14 + " PS1.02: 43% PS1:2-15 + " PS2.08: 8% PS2:8-2 + " PS2.08: 87% PS2:8-12 + " PS2.09: 58% PS2:9-101 +program[s], Lex PS1.15: 25% PS1:15-7 + " PS1.16: 13% PS1:16-2 + " PS1.16: 16% PS1:16-3 + " PS1.16: 19% PS1:16-3 +program[s], indentations of USD.17: 0% USD:17-1 +Program[s], Mail to Files and SMM.16: 42% SMM:16-6 +program[s], lisp PS2.09: 1% PS2:9-4 + " PS2.09: 44% PS2:9-78 + " PS2.09: 44% PS2:9-78 + " PS2.09: 44% PS2:9-78 + " PS2.09: 70% PS2:9-116 + " PS2.09: 77% PS2:9-126 + " PS2.09: 87% PS2:9-140 + " PS2.09: 87% PS2:9-140 +Programs, Maintaining Computer PS1.12: 0% + " PS1.12: 0% + " PS1.12: 12% PS1:12-2 + " PS1.12: 24% PS1:12-2 + " PS1.12: 36% PS1:12-4 + " PS1.12: 53% PS1:12-4 + " PS1.12: 64% PS1:12-6 + " PS1.12: 73% PS1:12-6 + " PS1.12: 80% PS1:12-8 + " PS1.12: 90% PS1:12-8 +program[s], multi-file PS1.01: 76% PS1:1-26 + " PS1.04: 78% PS1:4-40 + " PS1.04: 88% PS1:4-45 +program[s], Pascal PS1.04: 13% PS1:4-8 + " PS1.04: 14% PS1:4-8 + " PS1.04: 52% PS1:4-27 + " PS1.04: 54% PS1:4-28 + " PS1.04: 55% PS1:4-29 + " PS1.04: 67% PS1:4-34 + " PS1.04: 71% PS1:4-36 + " PS1.04: 80% PS1:4-41 + " PS1.04: 80% PS1:4-41 + " PS1.04: 96% PS1:4-49 + " PS1.04: 97% PS1:4-49 + " PS2.09: 62% PS2:9-106 +program[s], object CC.1: 5% CC(1)-1 +program, send mail directly to a USD.07: 45% USD:7-11 +program[s], server INETD.8: 74% INETD(8)-1 + " SMM.01: 68% SMM:1-41 + " SMM.01: 68% SMM:1-41 +programs, Ratfor PS2.06: 71% PS2:6-24 + " PS2.08: 2% PS2:8-1 + " PS2.08: 3% PS2:8-1 +programs, run PS1.10: 1% + " PS2.01: 87% PS2:1-13 +program[s], source PS1.02: 4% PS1:2-4 + " PS1.02: 4% PS1:2-4 + " PS1.04: 32% PS1:4-18 + " PS1.05: 30% PS1:5-4 + " PS2.01: 89% PS2:1-13 +program counter PS1.10: 13% PS1:10-3 + " PS1.06: 35% PS1:6-17 +program development PS1.12: 11% PS1:12-1 + " PS2.01: 95% PS2:1-14 + " PS2.09: 85% PS2:9-137 +program fault[s] PS1.04: 26% PS1:4-15 + " PS2.01: 82% PS2:1-12 + " PS2.03: 65% PS2:3-10 + " PS2.03: 65% PS2:3-10 +program listing PS1.04: 26% PS1:4-15 + " PS1.04: 26% PS1:4-15 + " PS1.04: 69% PS1:4-35 +program source PS1.02: 30% PS1:2-11 + " PS1.18: 5% PS1:18-3 +Programming, Functional PS2.07: 0% unknown +Programming, UNIX PS2.03: 0% + " PS2.03: 0% + " PS2.03: 3% PS2:3-2 + " PS2.03: 10% PS2:3-2 + " PS2.03: 18% PS2:3-4 + " PS2.03: 25% PS2:3-4 + " PS2.03: 32% PS2:3-6 + " PS2.03: 38% PS2:3-6 + " PS2.03: 45% PS2:3-8 + " PS2.03: 53% PS2:3-8 + " PS2.03: 60% PS2:3-10 + " PS2.03: 68% PS2:3-10 + " PS2.03: 75% PS2:3-12 + " PS2.03: 79% PS2:3-12 + " PS2.03: 84% PS2:3-14 + " PS2.03: 90% PS2:3-14 + " PS2.03: 96% PS2:3-16 +Programming Language EFL PS2.06: 0% + " PS2.06: 0% + " PS2.06: 3% PS2:6-2 + " PS2.06: 7% PS2:6-4 + " PS2.06: 10% PS2:6-4 + " PS2.06: 12% PS2:6-6 + " PS2.06: 15% PS2:6-6 + " PS2.06: 18% PS2:6-8 + " PS2.06: 21% PS2:6-8 + " PS2.06: 24% PS2:6-10 + " PS2.06: 27% PS2:6-10 + " PS2.06: 31% PS2:6-12 + " PS2.06: 35% PS2:6-12 + " PS2.06: 38% PS2:6-14 + " PS2.06: 40% PS2:6-14 + " PS2.06: 44% PS2:6-16 + " PS2.06: 47% PS2:6-16 + " PS2.06: 50% PS2:6-18 + " PS2.06: 52% PS2:6-18 + " PS2.06: 55% PS2:6-20 + " PS2.06: 57% PS2:6-20 + " PS2.06: 61% PS2:6-22 + " PS2.06: 64% PS2:6-22 + " PS2.06: 68% PS2:6-24 + " PS2.06: 72% PS2:6-24 + " PS2.06: 74% PS2:6-26 + " PS2.06: 76% PS2:6-26 + " PS2.06: 79% PS2:6-28 + " PS2.06: 82% PS2:6-28 + " PS2.06: 84% PS2:6-30 + " PS2.06: 90% PS2:6-32 + " PS2.06: 97% PS2:6-34 +Project library[s] PS1.13: 2% PS1:13-1 +programs, set-UID SMM.17: 61% SMM:17-2 + " SMM.17: 85% SMM:17-3 + " SMM.17: 99% SMM:17-3 +program[s], shell DIFF.1: 42% DIFF(1)-1 + " ECHO.1: 68% ECHO(1)-1 + " USD.03: 42% USD:3-10 + " WINDOW.1: 13% WINDOW(1)-1 + " WINDOW.1: 92% WINDOW(1)-7 +program, stopping a TTY.4: 49% TTY(4)-5 +program[s], utility HIER.7: 6% HIER(7)-1 +programs, very large A_OUT.5: 40% A.OUT(5)-2 +program counter MONITOR.3: 36% MONITOR(3)-1 + " PROFIL.2: 26% PROFIL(2)-1 + " SMM.02: 19% SMM:2-6 +program error[s] SIGNAL.3C: 6% SIGNAL(3C)-1 +program file[s] UUCP.1C: 63% UUCP(1C)-1 + " WHICH.1: 8% WHICH(1)-1 +program listing[s] PC.1: 53% PC(1)-1 + " PI.1: 21% PI(1)-1 + " VGRIND.1: 2% VGRIND(1)-1 +Programming USD.01: 80% USD:1-12 + " USD.01: 97% USD:1-14 + " USD.01: 85% USD:1-13 + " USD.01: 98% USD:1-14 +programming language[s] USD.01: 5% USD:1-2 + " USD.01: 80% USD:1-12 + " USD.19: 1% USD:19-1 + " USD.19: 5% USD:19-1 +Programming Language EFL EFL.1: 93% EFL(1)-1 +programming the shell USD.01: 1% USD:1-1 +PROJECT environment variable SCCS.1: 74% SCCS(1)-2 +project file FINGER.1: 43% FINGER(1)-1 +prolog[s], function SMM.19: 20% SMM:19-6 + " SMM.19: 38% SMM:19-11 + " SMM.19: 42% SMM:19-12 +prolog[s], subroutine SMM.19: 2% SMM:19-2 + " SMM.19: 3% SMM:19-2 + " SMM.19: 6% SMM:19-3 + " SMM.19: 6% SMM:19-3 +prom[s], MRSP SMM.01: 99% SMM:1-65 + " SMM.01: 99% SMM:1-65 + " TU.4: 5% TU(4)-1 + " TU.4: 33% TU(4)-1 + " TU.4: 36% TU(4)-1 + " TU.4: 38% TU(4)-1 + " TU.4: 48% TU(4)-1 + " TU.4: 54% TU(4)-1 + " TU.4: 93% TU(4)-1 +Prompt[s] USD.16: 89% USD:16-17 +prompt, login GETTYTAB.5: 30% GETTYTAB(5)-2 +prompt[s], shell SH.1: 43% SH(1)-3 + " USD.03: 41% USD:3-10 + " USD.04: 65% USD:4-32 + " USD.04: 91% USD:4-42 +prompt character USD.01: 8% USD:1-2 +Prompt shell variable CSH.1: 78% CSH(1)-17 + " CSH.1: 85% CSH(1)-18 + " USD.04: 49% USD:4-22 +PROMPTER FORW.N: 55% FORW(1)-2 + " USD.08: 8% USD:8-8 +prompter - prompting editor front-end PROMPTER.N: 1% PROMPTER(1)-1 + " USD.08: 43% USD:8-52 +Prompting SH.1: 43% SH(1)-3 + " USD.03: 17% USD:3-4 +Pronoun[s] USD.32: 37% USD:32-6 +property, separator PS2.09: 48% PS2:9-85 + " PS2.09: 49% PS2:9-87 + " PS2.09: 49% PS2:9-87 + " PS2.09: 50% PS2:9-88 + " PS2.09: 50% PS2:9-89 + " PS2.09: 53% PS2:9-94 + " PS2.09: 53% PS2:9-94 + " PS2.09: 54% PS2:9-94 + " PS2.09: 54% PS2:9-95 +property list[s] PS2.07: 61% PS2:7-29 + " PS2.09: 2% PS2:9-4 + " PS2.09: 2% PS2:9-4 + " PS2.09: 11% PS2:9-21 + " PS2.09: 12% PS2:9-22 + " PS2.09: 13% PS2:9-24 + " PS2.09: 13% PS2:9-25 + " PS2.09: 17% PS2:9-32 + " PS2.09: 17% PS2:9-33 + " PS2.09: 17% PS2:9-33 + " PS2.09: 17% PS2:9-33 + " PS2.09: 17% PS2:9-33 + " PS2.09: 17% PS2:9-34 + " PS2.09: 17% PS2:9-34 + " PS2.09: 17% PS2:9-34 + " PS2.09: 18% PS2:9-34 + " PS2.09: 18% PS2:9-34 + " PS2.09: 18% PS2:9-34 + " PS2.09: 18% PS2:9-34 + " PS2.09: 20% PS2:9-39 + " PS2.09: 26% PS2:9-51 + " PS2.09: 28% PS2:9-54 + " PS2.09: 66% PS2:9-111 + " PS2.09: 69% PS2:9-116 + " PS2.09: 97% PS2:9-152 + " PS2.09: 97% PS2:9-152 + " PS2.09: 97% PS2:9-152 + " PS2.09: 98% PS2:9-154 +Protection PS1.06: 7% PS1:6-6 +protection bits PS1.06: 65% PS1:6-29 + " PS2.01: 23% PS2:1-4 + " PS2.01: 37% PS2:1-6 +protection mode PS2.01: 36% PS2:1-6 + " PS2.01: 79% PS2:1-12 + " PS2.03: 36% PS2:3-6 +protection of page[s] PS1.06: 19% PS1:6-11 +Protocol[s] PS1.07a: 34% PS1:7-8 +protection, armor USD.33: 19% USD:33-3 +protection bits SMM.17: 25% SMM:17-1 +protection mode[s] FIND.1: 60% FIND(1)-2 + " SMM.17: 51% SMM:17-2 + " SMM.17: 54% SMM:17-2 + " SMM.17: 70% SMM:17-2 +protection scheme SMM.14: 81% SMM:14-12 + " SMM.14: 82% SMM:14-12 + " SMM.17: 53% SMM:17-2 +protection system INTRO.2: 18% INTRO(2)-2 +Proteon proNET ring network VV.4: 9% VV(4)-1 +PROTOCOL[s] INETD.8: 26% INETD(8)-1 + " INTRO.4N: 4% INTRO(4N)-1 +Protocol, Address Resolution (see also ARP) ARP.4P: 1% ARP(4P)-1 + " ARP.8C: 21% ARP(8C)-1 + " DE.4: 17% DE(4)-1 + " EC.4: 26% EC(4)-1 + " EX.4: 23% EX(4)-1 + " IFCONFIG.8C: 44% IFCONFIG(8C)-1 + " IL.4: 20% IL(4)-1 + " IX.4: 31% IX(4)-1 + " QE.4: 43% QE(4)-1 + " SMM.02: 36% SMM:2-10 + " SMM.02: 44% SMM:2-13 + " SMM.13: 59% SMM:13-21 + " SMM.13: 79% SMM:13-27 + " SMM.13: 79% SMM:13-27 + " SMM.15: 37% SMM:15-11 + " SMM.15: 38% SMM:15-12 +Protocol, Berkeley UNIX Time Synchronization SMM.22: 0% SMM:22-2 + " SMM.22: 12% SMM:22-2 + " SMM.22: 23% SMM:22-2 + " SMM.22: 33% SMM:22-4 + " SMM.22: 43% SMM:22-4 + " SMM.22: 53% SMM:22-6 + " SMM.22: 63% SMM:22-6 + " SMM.22: 74% SMM:22-8 + " SMM.22: 83% SMM:22-8 + " SMM.22: 93% SMM:22-10 +protocol[s], communication INTRO.2: 56% INTRO(2)-5 + " PS1.08: 4% PS1:8-3 + " PS1.08: 5% PS1:8-3 + " PS1.08: 6% PS1:8-3 + " PS1.08: 36% PS1:8-14 +protocol[s], DARPA standard Internet PS1.08: 29% PS1:8-11 +Protocol[s], Domains and PS1.07a: 27% PS1:7-7 +protocol[s], Internet standard PS1.07a: 30% PS1:7-8 +protocol, login PS1.08: 48% PS1:8-19 + " PS1.08: 49% PS1:8-20 + " PS1.08: 50% PS1:8-20 +protocol[s], communication SMM.01: 60% SMM:1-38 + " SMM.15: 3% SMM:15-3 + " SMM.15: 15% SMM:15-6 + " SMM.15: 15% SMM:15-6 + " SMM.15: 47% SMM:15-15 + " INTRO.2: 98% INTRO(2)-7 + " SMM.12: 73% SMM:12-1 + " SOCKET.2: 50% SOCKET(2)-1 + " SMM.12A: 73% SMM:12-17 +Protocol, Error NS.4F: 70% NS(4F)-1 + " NS.4F: 81% NS(4F)-2 +Protocol, Exterior Gateway (see also EGP) ROUTED.8C: 85% ROUTED(8C)-2 + " SMM.01: 67% SMM:1-41 + " SMM.15: 78% SMM:15-22 +Protocol, File Transfer (see also FTP) FTP.1C: 0% FTP(1C)-1 + " SMM.12A: 97% SMM:12-23 + " SMM.12A: 98% SMM:12-23 + " FTP.1C: 60% FTP(1C)-5 + " FTP.1C: 77% FTP(1C)-6 + " SMM.07: 76% SMM:7-1 + " TFTP.1C: 23% TFTP(1C)-1 + " SMM.07A: 68% SMM:07-28 +protocol[s], Internet ARP.4P: 7% ARP(4P)-1 + " DDN.4: 26% DDN(4)-1 + " GETPROTOENT.3N: 94% GETPROTOENT(3N) + " IFCONFIG.8C: 50% IFCONFIG(8C)-1 + " INET.4F: 6% INET(4F)-1 + " INET.4F: 95% INET(4F)-2 + " IP.4P: 1% IP(4P)-1 + " SMM.02: 42% SMM:2-13 + " SMM.13: 58% SMM:13-20 + " SMM.13: 67% SMM:13-23 + " SMM.15: 59% SMM:15-17 + " SMM.15: 59% SMM:15-18 + " SOCKET.2: 13% SOCKET(2)-1 +Protocol, Internet Control Message (see also ICMP) ICMP.4P: 3% ICMP(4P)-1 + " INET.4F: 39% INET(4F)-1 + " SMM.15: 63% SMM:15-19 +Protocol[s], Internet Transport (see also IP) NS.4F: 93% NS(4F)-2 + " ROUTED.8C: 90% ROUTED(8C)-3 + " XNSROUTED.8C: 96% XNSROUTED(8C)-2 +protocol, IP INTRO.4N: 28% INTRO(4N)-1 +protocol, line SMM.09: 20% SMM:9-5 + " SMM.09: 28% SMM:9-7 + " SMM.09: 28% SMM:9-7 + " SMM.21: 24% SMM:21-2 + " SMM.21: 50% SMM:21-4 + " SMM.21: 50% SMM:21-4 + " SMM.21: 51% SMM:21-4 + " SMM.21: 73% SMM:21-5 +protocol, locking SMM.01: 34% SMM:1-22 + " SMM.01: 56% SMM:1-35 + " TIP.1C: 38% TIP(1C)-2 +protocol, MH window management USD.08: 58% USD:8-69 +protocol[s], network INTRO.4N: 6% INTRO(4N)-1 + " SMM.15: 46% SMM:15-14 + " SOCKET.2: 29% SOCKET(2)-1 +protocol, remote magtape RMT.8C: 1% RMT(8C)-1 +protocol[s], routing IFCONFIG.8C: 59% IFCONFIG(8C)-1 + " ROUTED.8C: 48% ROUTED(8C)-2 + " ROUTED.8C: 94% ROUTED(8C)-3 + " SMM.01: 67% SMM:1-41 + " SMM.13: 78% SMM:13-27 +Protocol, Routing Information XNSROUTED.8C: 7% XNSROUTED(8C)-1 +Protocol, Tape Mass Storage Control SMM.13: 57% SMM:13-20 + " SMM.13: 97% SMM:13-33 + " TMSCP.4: 11% TMSCP(4)-1 +Protocol, tcp - Internet Transmission Control TCP.4P: 1% TCP(4P)-1 +Protocol, Time Synchronization DATE.1: 57% DATE(1)-1 + " SMM.22: 1% SMM:22-2 + " TIMED.8: 95% TIMED(8)-1 + " TIMEDC.8: 85% TIMEDC(8)-1 +protocol[s], Trailer SMM.15: 38% SMM:15-12 + " SMM.15: 44% SMM:15-14 + " SMM.15: 92% SMM:15-26 + " SMM.15: 94% SMM:15-26 + " SMM.15: 94% SMM:15-26 + " SMM.15: 95% SMM:15-26 + " SMM.15: 96% SMM:15-26 +Protocol, Trivial File Transfer TFTP.1C: 6% TFTP(1C)-1 + " TFTPD.8C: 18% TFTPD(8C)-1 +Protocol, udp - Internet User Datagram UDP.4P: 2% UDP(4P)-1 +protocol, virtual terminal TELNETD.8C: 8% TELNETD(8C)-1 +Protocol, Xerox Internet Datagram (see also IDP) IDP.4P: 1% IDP(4P)-1 + " SMM.12A: 74% SMM:12-17 +protocols, Socket types and PS1.06: 73% PS1:6-33 + " PS1.06: 86% PS1:6-37 +protocol, TCP PS1.08: 9% PS1:8-4 + " PS1.08: 37% PS1:8-14 + " PS1.08: 61% PS1:8-24 + " PS1.06: 86% PS1:6-37 +protocol name[s] PS1.08: 36% PS1:8-14 +protocol number PS1.06: 85% PS1:6-36 + " PS1.08: 36% PS1:8-14 + " PS1.08: 71% PS1:8-28 +protocols, Xerox Network Systems SMM.13: 81% SMM:13-28 + " SOCKET.2: 14% SOCKET(2)-1 +protocol[s], Xerox NS (see also NS) INTRO.4N: 35% INTRO(4N)-1 + " SMM.02: 42% SMM:2-13 + " SMM.02: 99% SMM:2-33 + " SMM.13: 58% SMM:13-20 + " SMM.13: 81% SMM:13-28 +protocol[s], Xerox PUP SMM.12A: 99% SMM:12-23 +Protocol, Xerox Sequenced Packet (see also SPP) SMM.12: 76% SMM:12-1 + " SPP.4P: 1% SPP(4P)-1 + " SMM.12A: 76% SMM:12-18 +Protocol buffering policy[s] SMM.15: 87% SMM:15-24 +protocol control block[s] NETSTAT.1: 19% NETSTAT(1)-1 + " SMM.13: 10% SMM:13-5 + " SMM.13: 66% SMM:13-23 + " SMM.13: 69% SMM:13-24 + " SMM.13: 84% SMM:13-29 + " SMM.15: 17% SMM:15-6 + " SMM.15: 18% SMM:15-6 + " SMM.15: 79% SMM:15-23 + " TRPT.8C: 48% TRPT(8C)-1 + " TRPT.8C: 57% TRPT(8C)-1 + " TRSP.8C: 42% TRSP(8c)-1 + " TRSP.8C: 57% TRSP(8c)-1 + " TRPT.8C: 20% TRPT(8C)-1 +protocol family[s] IFCONFIG.8C: 91% IFCONFIG(8C)-2 + " IFCONFIG.8C: 93% IFCONFIG(8C)-2 + " INTRO.2: 45% INTRO(2)-4 + " INTRO.4N: 3% INTRO(4N)-1 + " INTRO.4N: 4% INTRO(4N)-1 + " INTRO.4N: 6% INTRO(4N)-1 + " INTRO.4N: 6% INTRO(4N)-1 + " INTRO.4N: 9% INTRO(4N)-1 + " INTRO.4N: 10% INTRO(4N)-1 + " INTRO.4N: 11% INTRO(4N)-1 + " INTRO.4N: 14% INTRO(4N)-1 + " INTRO.4N: 22% INTRO(4N)-1 + " INTRO.4N: 30% INTRO(4N)-1 + " INTRO.4N: 30% INTRO(4N)-1 + " INTRO.4N: 50% INTRO(4N)-2 + " INTRO.4N: 52% INTRO(4N)-2 + " INTRO.4N: 81% INTRO(4N)-3 + " INTRO.4N: 82% INTRO(4N)-3 + " INTRO.4N: 83% INTRO(4N)-3 + " INTRO.4N: 84% INTRO(4N)-3 + " INTRO.4N: 85% INTRO(4N)-3 + " INTRO.4N: 85% INTRO(4N)-3 + " NS.4F: 2% NS(4F)-1 + " SMM.13: 58% SMM:13-20 + " SMM.15: 6% SMM:15-3 + " SMM.15: 27% SMM:15-8 + " SMM.15: 28% SMM:15-9 + " SMM.15: 33% SMM:15-10 + " SMM.15: 39% SMM:15-12 + " SMM.15: 58% SMM:15-17 + " SMM.15: 64% SMM:15-19 + " SMM.15: 67% SMM:15-20 + " SMM.15: 80% SMM:15-23 + " SMM.15: 80% SMM:15-23 + " SMM.15: 82% SMM:15-23 + " SOCKET.2: 7% SOCKET(2)-1 + " SOCKET.2: 8% SOCKET(2)-1 + " SOCKET.2: 35% SOCKET(2)-1 +protocol feature[s] SMM.07: 85% SMM:7-1 + " SMM.15: 78% SMM:15-22 + " SMM.07A: 76% SMM:07-32 +protocol layer SMM.13: 58% SMM:13-20 + " SMM.15: 27% SMM:15-8 + " SMM.12A: 59% SMM:12-14 +protocol level[s] GETSOCKOPT.2: 29% GETSOCKOPT(2)-1 + " SMM.15: 63% SMM:15-19 +protocol module[s] GETSOCKOPT.2: 26% GETSOCKOPT(2)-1 + " IMPLOGD.8C: 72% IMPLOGD(8C)-1 + " SMM.15: 28% SMM:15-9 + " SMM.15: 47% SMM:15-15 + " SMM.15: 50% SMM:15-15 + " SMM.15: 50% SMM:15-15 + " SMM.15: 50% SMM:15-15 + " SMM.15: 50% SMM:15-15 + " SMM.15: 51% SMM:15-16 + " SMM.15: 52% SMM:15-16 + " SMM.15: 53% SMM:15-16 + " SMM.15: 56% SMM:15-17 + " SMM.15: 57% SMM:15-17 + " SMM.15: 57% SMM:15-17 + " SMM.15: 58% SMM:15-17 + " SMM.15: 58% SMM:15-17 + " SMM.15: 58% SMM:15-17 + " SMM.15: 58% SMM:15-17 + " SMM.15: 61% SMM:15-18 + " SMM.15: 61% SMM:15-18 + " SMM.15: 67% SMM:15-20 + " SMM.15: 67% SMM:15-20 +protocol name[s] GETSERVENT.3N: 79% GETSERVENT(3N)- + " PROTOCOLS.5: 66% PROTOCOLS(5)-1 + " SERVICES.5: 45% SERVICES(5)-1 + " GETPROTOENT.3N: 77% GETPROTOENT(3N) + " GETSERVENT.3N: 75% GETSERVENT(3N)- +protocol number GETPROTOENT.3N: 43% GETPROTOENT(3N) + " GETPROTOENT.3N: 54% GETPROTOENT(3N) + " GETPROTOENT.3N: 78% GETPROTOENT(3N) + " GETSOCKOPT.2: 13% GETSOCKOPT(2)-1 + " IP.4P: 54% IP(4P)-1 + " IP.4P: 61% IP(4P)-1 + " SMM.13: 60% SMM:13-21 + " SMM.15: 28% SMM:15-9 + " SMM.15: 32% SMM:15-10 + " SMM.15: 80% SMM:15-23 + " SMM.15: 82% SMM:15-23 + " SOCKET.2: 38% SOCKET(2)-1 + " TCP.4P: 67% TCP(4P)-1 +protocol statistics NETSTAT.1: 35% NETSTAT(1)-1 +protocol switch table SMM.13: 67% SMM:13-23 + " SMM.15: 47% SMM:15-15 + " SMM.15: 53% SMM:15-16 + " SMM.15: 28% SMM:15-9 +protocol trace TRPT.8C: 2% TRPT(8C)-1 +protocol type SMM.15: 95% SMM:15-26 + " SOCKET.2: 84% SOCKET(2)-2 +Protocol/network-interface interface SMM.15: 64% SMM:15-19 +Protocol/protocol interface SMM.15: 58% SMM:15-17 +protocols - protocol name data base PROTOCOLS.5: 6% PROTOCOLS(5)-1 +protoent, struct GETPROTOENT.3N: 35% GETPROTOENT(3N) +prototype file MKPROTO.8: 17% MKPROTO(8)-1 +PRU_ACCEPT SMM.15: 52% SMM:15-16 +PRU_ATTACH SMM.15: 50% SMM:15-15 +PRU_BIND SMM.15: 50% SMM:15-15 +PRU_CONNECT SMM.15: 51% SMM:15-16 +PRU_CONTROL SMM.15: 54% SMM:15-16 +PRU_DETACH SMM.15: 50% SMM:15-15 +PRU_DISCONNECT SMM.15: 52% SMM:15-16 +PRU_LISTEN SMM.15: 51% SMM:15-15 +PRU_RCVD SMM.15: 53% SMM:15-16 +PRU_RCVOOB SMM.15: 55% SMM:15-17 +PRU_SEND SMM.15: 53% SMM:15-16 +PRU_SENSE SMM.15: 55% SMM:15-16 +pr_ctlinput SMM.15: 61% SMM:15-18 +pr_ctloutput SMM.15: 63% SMM:15-19 +pr_input SMM.15: 60% SMM:15-18 +prototype header[s] PS1.08: 7% PS1:8-3 + " PS1.08: 86% PS1:8-35 + " PS1.08: 88% PS1:8-36 + " PS1.08: 88% PS1:8-36 + " PS1.08: 89% PS1:8-36 + " PS1.08: 91% PS1:8-38 + " PS1.08: 91% PS1:8-38 + " PS1.08: 92% PS1:8-38 +prt, sccs PS1.14: 46% PS1:14-7 +Pseudo terminal[s] PS1.08: 72% PS1:8-29 + " PS1.08: 67% PS1:8-27 +ps - Evans and Sutherland Picture System 2 graphics device interface PS.4: 1% unknown +ps - process status PS.1: 0% PS(1)-1 +ps command USD.03: 6% USD:3-2 + " USD.04: 41% USD:4-18 + " USD.04: 92% USD:4-42 + " USD.04: 92% USD:4-42 +PS point size USD.20: 70% USD:20-5 +psc750.bin REBOOT.8: 89% REBOOT(8)-2 +Pseudo device[s] SMM.02: 7% SMM:2-3 + " SMM.02: 7% SMM:2-3 + " SMM.02: 35% SMM:2-10 + " SMM.02: 35% SMM:2-10 + " SMM.02: 36% SMM:2-10 + " SMM.02: 42% SMM:2-13 + " IMP.4: 45% IMP(4)-1 +Pseudo terminal[s] PTY.4: 4% PTY(4)-1 + " PTY.4: 4% PTY(4)-1 + " PTY.4: 14% PTY(4)-1 + " PTY.4: 31% PTY(4)-1 + " PTY.4: 34% PTY(4)-1 + " PTY.4: 65% PTY(4)-2 + " PTY.4: 70% PTY(4)-2 + " PTY.4: 83% PTY(4)-2 + " PTY.4: 85% PTY(4)-2 + " RLOGIND.8C: 34% RLOGIND(8C)-1 + " RLOGIND.8C: 37% RLOGIND(8C)-1 + " RLOGIND.8C: 74% RLOGIND(8C)-1 + " SMM.01: 52% SMM:1-33 + " SMM.01: 62% SMM:1-39 + " SMM.01: 62% SMM:1-39 + " SMM.01: 62% SMM:1-39 + " SMM.01: 62% SMM:1-39 + " SMM.01: 62% SMM:1-39 + " SMM.01: 62% SMM:1-39 + " SMM.01: 62% SMM:1-39 + " SMM.02: 35% SMM:2-10 + " SMM.02: 43% SMM:2-13 +pseudo-page transition USD.24: 30% USD:24-11 +pseudo-terminal WINDOW.1: 13% WINDOW(1)-1 +pseudo-variables $1, $2, . . . PS1.15: 17% PS1:15-5 +psignal SMM.12A: 69% SMM:12-16 +psignal[s], sys_siglist - system signal message PSIGNAL.3: 5% PSIGNAL(3)-1 +pstat SMM.12A: 90% SMM:12-21 +pstat - print system fact[s] PSTAT.8: 0% PSTAT(8)-1 +psychoanalyst, doctor - interact with a DOCTOR.6: 7% DOCTOR(6)-1 +pti SMM.12A: 43% SMM:12-10 +PTR SMM.11: 59% SMM:11-8 + " SMM.11: 60% SMM:11-8 +ptrace EXECL.3: 43% EXECL(3)-1 + " WAIT.2: 64% WAIT(2)-1 + " SMM.12A: 57% SMM:12-13 +ptrace - process trace PTRACE.2: 0% PTRACE(2)-1 +ptx SMM.12A: 43% SMM:12-10 +ptx - permuted index PTX.1: 2% PTX(1)-1 +pty SMM.01: 51% SMM:1-32 + " SMM.12A: 75% SMM:12-17 +pty - pseudo terminal driver PTY.4: 1% PTY(4)-1 +pty master SMM.13: 26% SMM:13-10 + " SMM.12A: 75% SMM:12-17 +pubindex USD.29: 53% USD:29-5 +public directory UUX.1C: 19% UUX(1C)-1 + " UUCP.1C: 22% UUCP(1C)-1 +public domain USD.08: 91% USD:8-112 + " USD.08: 92% USD:8-112 + " USD.10: 32% USD:10-4 +public sequences MH-PROFILE.N: 14% MH-PROFILE(5)-1 + " MH-PROFILE.N: 14% MH-PROFILE(5)-1 + " USD.08: 69% USD:8-85 + " USD.08: 69% USD:8-85 + " USD.08: 81% USD:8-100 + " USD.08: 81% USD:8-100 +public-key cryptosystem XSEND.1: 29% XSEND(1)-1 +publicly-writable directory[s] SMM.01: 35% SMM:1-23 +publishing house[s] USD.31: 29% USD:31-4 + " USD.31: 52% USD:31-9 +punch cards BCD.6: 26% BCD(6)-1 +punctuation USD.15: 18% USD:15-6 +punctuation character CTYPE.3: 57% CTYPE(3)-1 + " USD.17: 98% USD:17-47 +PUP SMM.13: 58% SMM:13-20 + " SMM.12A: 99% SMM:12-23 +purge - destroy all expired and temporary relation[s] PS2.10: 67% PS2:10-59 +Pxp PS1.04: 30% PS1:4-17 + " PS1.04: 73% PS1:4-37 + " PS1.04: 73% PS1:4-37 + " PS1.04: 73% PS1:4-37 + " PS1.04: 73% PS1:4-38 + " PS1.04: 75% PS1:4-39 + " PS1.04: 75% PS1:4-39 + " PS1.04: 32% PS1:4-18 +QED PS1.16: 11% PS1:16-2 + " PS1.16: 22% PS1:16-3 + " PS2.01: 5% PS2:1-2 +push character back into input stream UNGETC.3S: 8% UNGETC(3S)-1 +push directory USD.04: 92% USD:4-42 + " USD.04: 46% USD:4-21 +Push Option USD.08: 85% USD:8-104 +pushd CSH.1: 66% CSH(1)-14 + " USD.17: 87% USD:17-42 +pushd command USD.04: 47% USD:4-21 + " USD.04: 47% USD:4-21 + " USD.04: 75% USD:4-36 + " USD.04: 90% USD:4-41 + " USD.04: 92% USD:4-42 + " USD.17: 85% USD:17-40 +putc PRINTF.3S: 92% PRINTF(3S)-2 +putc, fputc - write a character to a fortran logical unit PUTC.3F: 7% PUTC(3F)-1 +putc, putchar, fputc, putw - put character or word on a stream PUTC.3S: 4% PUTC(3S)-1 +puts, fputs - put a string on a stream PUTS.3S: 7% PUTS(3S)-1 +Putting Two or More Files Together USD.13: 70% USD:13-12 +pwd USD.17: 87% USD:17-42 +pwd - print working directory name PWD.1: 10% unknown +PX USD.21: 59% USD:21-2 +px - Pascal interpreter PX.1: 2% PX(1)-1 +px instruction PDX.1: 82% PDX(1)-3 +pxp - Pascal execution profiler PXP.1: 1% PXP(1)-1 +pxref - Pascal cross-reference program PXREF.1: 7% PXREF(1)-1 +Q-bus INTRO.4: 33% INTRO(4)-1 + " AUTOCONF.4: 14% AUTOCONF(4)-1 +qe - DEC DEQNA Q-bus 10 Mb/s Ethernet interface QE.4: 5% QE(4)-1 +qelem, struct INSQUE.3: 66% unknown +qlinker function PS2.09: 70% PS2:9-116 + " PS2.09: 70% PS2:9-116 + " PS2.09: 79% PS2:9-128 +QUEL PS2.10: 0% PS2:10-2 + " PS2.10: 0% PS2:10-3 + " PS2.10: 0% PS2:10-3 + " PS2.10: 0% PS2:10-3 + " PS2.10: 0% PS2:10-3 + " PS2.10: 0% PS2:10-3 + " PS2.10: 0% PS2:10-3 + " PS2.10: 0% PS2:10-3 + " PS2.10: 1% PS2:10-3 + " PS2.10: 1% PS2:10-3 + " PS2.10: 1% PS2:10-3 + " PS2.10: 1% PS2:10-3 + " PS2.10: 1% PS2:10-3 + " PS2.10: 1% PS2:10-3 + " PS2.10: 1% PS2:10-3 + " PS2.10: 1% PS2:10-3 + " PS2.10: 1% PS2:10-3 + " PS2.10: 1% PS2:10-3 + " PS2.10: 1% PS2:10-3 + " PS2.10: 1% PS2:10-4 + " PS2.10: 1% PS2:10-4 + " PS2.10: 1% PS2:10-4 + " PS2.10: 1% PS2:10-4 + " PS2.10: 3% PS2:10-6 + " PS2.10: 4% PS2:10-6 + " PS2.10: 5% PS2:10-8 + " PS2.10: 7% PS2:10-8 + " PS2.10: 9% PS2:10-10 + " PS2.10: 9% PS2:10-10 + " PS2.10: 10% PS2:10-12 + " PS2.10: 10% PS2:10-12 + " PS2.10: 11% PS2:10-14 + " PS2.10: 11% PS2:10-14 + " PS2.10: 12% PS2:10-16 + " PS2.10: 14% PS2:10-16 + " PS2.10: 15% PS2:10-18 + " PS2.10: 15% PS2:10-18 + " PS2.10: 17% PS2:10-20 + " PS2.10: 19% PS2:10-20 + " PS2.10: 21% PS2:10-22 + " PS2.10: 22% PS2:10-22 + " PS2.10: 24% PS2:10-24 + " PS2.10: 25% PS2:10-24 + " PS2.10: 26% PS2:10-26 + " PS2.10: 27% PS2:10-26 + " PS2.10: 29% PS2:10-28 + " PS2.10: 31% PS2:10-29 + " PS2.10: 32% PS2:10-30 + " PS2.10: 33% PS2:10-30 + " PS2.10: 34% PS2:10-32 + " PS2.10: 35% PS2:10-32 + " PS2.10: 36% PS2:10-32 + " PS2.10: 36% PS2:10-32 + " PS2.10: 36% PS2:10-32 + " PS2.10: 38% PS2:10-34 + " PS2.10: 39% PS2:10-34 + " PS2.10: 39% PS2:10-34 + " PS2.10: 41% PS2:10-36 + " PS2.10: 43% PS2:10-36 + " PS2.10: 43% PS2:10-36 + " PS2.10: 44% PS2:10-38 + " PS2.10: 46% PS2:10-38 + " PS2.10: 46% PS2:10-38 + " PS2.10: 47% PS2:10-40 + " PS2.10: 47% PS2:10-40 + " PS2.10: 48% PS2:10-42 + " PS2.10: 49% PS2:10-42 + " PS2.10: 50% PS2:10-44 + " PS2.10: 50% PS2:10-44 + " PS2.10: 62% PS2:10-53 + " PS2.10: 83% PS2:10-76 +qsort - quick sort QSORT.3F: 5% QSORT(3F)-1 +qsort - quicker sort QSORT.3: 6% unknown +Quadratic hash SMM.14: 57% SMM:14-9 +Query Replace USD.17: 88% USD:17-42 + " USD.17: 23% USD:17-10 +quel - QUEry Language for INGRE[s] PS2.10: 34% PS2:10-32 +Quel Statements PS2.10: 58% PS2:10-51 + " PS2.10: 58% PS2:10-51 + " PS2.10: 62% PS2:10-53 +Query PS2.10: 84% PS2:10-76 + " PS2.10: 88% PS2:10-79 + " PS2.10: 93% PS2:10-83 + " PS2.10: 93% PS2:10-83 + " PS2.10: 93% PS2:10-83 + " PS2.10: 93% PS2:10-83 + " PS2.10: 93% PS2:10-83 +query buffer PS2.10: 17% PS2:10-19 + " PS2.10: 17% PS2:10-19 + " PS2.10: 17% PS2:10-19 + " PS2.10: 26% PS2:10-26 + " PS2.10: 26% PS2:10-26 + " PS2.10: 26% PS2:10-26 + " PS2.10: 26% PS2:10-26 + " PS2.10: 26% PS2:10-26 + " PS2.10: 26% PS2:10-26 + " PS2.10: 26% PS2:10-26 + " PS2.10: 26% PS2:10-26 + " PS2.10: 26% PS2:10-26 + " PS2.10: 27% PS2:10-26 + " PS2.10: 27% PS2:10-26 + " PS2.10: 27% PS2:10-26 + " PS2.10: 27% PS2:10-27 + " PS2.10: 27% PS2:10-27 + " PS2.10: 27% PS2:10-27 + " PS2.10: 27% PS2:10-27 + " PS2.10: 28% PS2:10-27 + " PS2.10: 28% PS2:10-27 + " PS2.10: 28% PS2:10-27 + " PS2.10: 28% PS2:10-27 + " PS2.10: 30% PS2:10-29 + " PS2.10: 30% PS2:10-29 + " PS2.10: 30% PS2:10-29 + " PS2.10: 91% PS2:10-82 + " PS2.10: 91% PS2:10-82 +QUEry Language for INGRE[s], quel - PS2.10: 34% PS2:10-32 +query modification PS2.10: 53% PS2:10-47 + " PS2.10: 53% PS2:10-47 + " PS2.10: 53% PS2:10-47 + " PS2.10: 53% PS2:10-47 + " PS2.10: 53% PS2:10-47 + " PS2.10: 54% PS2:10-47 + " PS2.10: 82% PS2:10-75 + " PS2.10: 85% PS2:10-77 + " PS2.10: 91% PS2:10-81 + " PS2.10: 91% PS2:10-81 +Query Modification error message summary PS2.10: 89% PS2:10-80 +query-replace-string USD.17: 87% USD:17-42 +Question[s], Answers to Frequently Asked USD.10: 78% USD:10-10 +question mark[s] GREP.1: 77% GREP(1)-2 + " USD.13: 42% USD:13-8 +queue[s], character PS2.04: 57% PS2:4-6 + " PS2.04: 59% PS2:4-6 + " PS2.05: 39% PS2:5-3 +queue[s], data SMM.15: 17% SMM:15-6 + " SMM.15: 22% SMM:15-7 +queue, Forcing the SMM.07A: 16% SMM:07-9 +queue[s], device PS2.05: 64% PS2:5-5 + " PS2.05: 89% PS2:5-6 + " PS2.05: 91% PS2:5-6 + " PS2.05: 92% PS2:5-6 +queue[s], input PSTAT.8: 66% PSTAT(8)-3 + " PSTAT.8: 68% PSTAT(8)-3 + " SMM.15: 61% SMM:15-18 + " TTY.4: 43% TTY(4)-4 + " TTY.4: 72% TTY(4)-7 + " TTY.4: 73% TTY(4)-7 + " TTY.4: 79% TTY(4)-8 +queue, insque, remque - insert/remove element from a INSQUE.3: 8% INSQUE(3)-1 +queue, mail SENDMAIL.8: 90% SENDMAIL(8)-3 + " SMM.07A: 8% SMM:07-6 + " SMM.07A: 11% SMM:07-7 + " SMM.07A: 13% SMM:07-8 + " SMM.07A: 13% SMM:07-8 + " SMM.07A: 18% SMM:07-10 + " SMM.07A: 67% SMM:07-28 + " SMM.07A: 88% SMM:07-38 + " SMM.07A: 88% SMM:07-38 +queue[s], output MORE.1: 90% MORE(1)-3 + " SMM.13: 22% SMM:13-9 + " SMM.13: 36% SMM:13-13 + " SMM.15: 34% SMM:15-11 + " TTY.4: 19% TTY(4)-2 + " TTY.4: 34% TTY(4)-4 + " TTY.4: 34% TTY(4)-4 + " TTY.4: 39% TTY(4)-4 + " TTY.4: 70% TTY(4)-7 + " TTY.4: 79% TTY(4)-8 + " TTY.4: 80% TTY(4)-8 + " TTY.4: 14% TTY(4)-2 +queue[s], printer LPC.8: 41% LPC(8)-1 + " LPC.8: 43% LPC(8)-1 + " LPC.8: 48% LPC(8)-1 + " LPC.8: 85% LPC(8)-2 + " SMM.06: 75% SMM:6-6 +queue, raw SMM.13: 26% SMM:13-10 +queue[s], run SMM.13: 21% SMM:13-8 + " UPTIME.1: 55% UPTIME(1)-1 + " VMSTAT.1: 42% VMSTAT(1)-1 + " W.1: 18% W(1)-1 +queue[s], spooling LPC.8: 10% LPC(8)-1 + " LPC.8: 12% LPC(8)-1 + " SMM.01: 55% SMM:1-34 + " SMM.01: 55% SMM:1-34 + " SMM.06: 9% SMM:6-2 + " SMM.06: 24% SMM:6-2 + " SMM.06: 24% SMM:6-2 + " LPC.8: 60% LPC(8)-1 + " LPQ.1: 24% LPQ(1)-1 + " LPRM.1: 10% LPRM(1)-1 + " LPRM.1: 27% LPRM(1)-1 + " SMM.01: 55% SMM:1-34 + " SMM.06: 71% SMM:6-5 + " SMM.06: 74% SMM:6-5 +queue, UUCP spool SMM.09: 37% SMM:9-8 +queue directory SMM.07A: 18% SMM:07-10 + " SMM.07A: 18% SMM:07-10 + " SMM.07A: 71% SMM:07-32 +queue file[s] SENDMAIL.8: 70% SENDMAIL(8)-3 + " SMM.07A: 13% SMM:07-8 + " SMM.07A: 13% SMM:07-8 + " SMM.07A: 72% SMM:07-32 + " SMM.07A: 72% SMM:07-32 +queue interval SMM.07A: 23% SMM:07-12 + " SMM.07A: 27% SMM:07-14 + " SMM.07A: 31% SMM:07-15 +queue priorities SMM.07A: 26% SMM:07-13 + " SMM.07A: 28% SMM:07-14 +queuing and dequeuing packet[s] SMM.15: 67% SMM:15-20 +quiet USD.07: 80% USD:7-19 +Quit character STTY.1: 33% STTY(1)-1 +QUIT signal[s] FSCK.8: 39% FSCK(8)-1 + " SMM.01: 74% SMM:1-45 + " USD.04: 21% USD:4-9 + " USD.04: 21% USD:4-10 + " USD.04: 21% USD:4-10 + " USD.04: 38% USD:4-17 + " SIGNAL.3C: 20% unknown + " SH.1: 61% SH(1)-4 +quiz - test your knowledge QUIZ.6: 3% unknown +quot - summarize file system ownership QUOT.8: 6% QUOT(8)-1 +Quota[s] SMM.01: 83% SMM:1-50 + " SMM.02: 22% SMM:2-7 + " SMM.04: 3% SMM:4-1 + " SMM.04: 12% SMM:4-1 + " USD.14: 89% USD:14-21 + " SMM.12A: 43% SMM:12-10 +quota[s], disc EDQUOTA.8: 25% EDQUOTA(8)-1 + " QUOTACHECK.8: 42% QUOTACHECK(8)-1 + " QUOTAON.8: 20% QUOTAON(8)-1 + " QUOTAON.8: 66% QUOTAON(8)-1 + " SETQUOTA.2: 8% SETQUOTA(2)-1 + " SMM.01: 83% SMM:1-50 + " SMM.02: 88% SMM:2-31 + " SMM.02: 88% SMM:2-31 + " SMM.04: 0% SMM:4-1 + " SMM.04: 0% SMM:4-1 + " SMM.04: 7% SMM:4-1 + " SMM.04: 8% SMM:4-1 + " SMM.04: 9% SMM:4-1 + " SMM.04: 27% SMM:4-2 + " SMM.04: 66% SMM:4-2 + " INTRO.2: 60% INTRO(2)-5 +quota[s], disk FSTAB.5: 33% FSTAB(5)-1 + " FSTAB.5: 64% FSTAB(5)-1 + " MTAB.5: 74% MTAB(5)-1 + " QUOTA.2: 1% QUOTA(2)-1 + " QUOTA.2: 6% QUOTA(2)-1 + " SMM.01: 77% SMM:1-47 + " SMM.01: 83% SMM:1-50 + " SMM.01: 83% SMM:1-50 + " SMM.02: 8% SMM:2-3 + " SMM.02: 17% SMM:2-6 + " SMM.02: 22% SMM:2-7 + " SMM.02: 45% SMM:2-14 + " SMM.01: 39% SMM:1-26 + " SMM.14: 91% SMM:14-13 +quotas, Disk PS1.06: 71% PS1:6-32 + " PS1.06: 72% PS1:6-32 + " PS1.06: 72% PS1:6-32 +quota(cmd, uid, arg, addr) PS1.06: 72% PS1:6-32 +quotas, edquota - edit user EDQUOTA.8: 4% EDQUOTA(8)-1 +quota[s], File system FSTAB.5: 65% FSTAB(5)-1 + " SMM.02: 89% SMM:2-31 + " QUOTACHECK.8: 4% QUOTACHECK(8)-1 +quota, summarize REPQUOTA.8: 8% REPQUOTA(8)-1 +quota - display disc usage and limit[s] QUOTA.1: 6% QUOTA(1)-1 +quota - manipulate disk quota[s] QUOTA.2: 1% QUOTA(2)-1 +quota file[s] QUOTACHECK.8: 25% QUOTACHECK(8)-1 + " QUOTACHECK.8: 67% QUOTACHECK(8)-1 + " SETQUOTA.2: 22% SETQUOTA(2)-1 + " SMM.04: 62% SMM:4-2 + " SMM.04: 77% SMM:4-3 + " SMM.12A: 43% SMM:12-10 +quota of disk blocks CREAT.2: 72% CREAT(2)-1 +quota of inodes CREAT.2: 78% CREAT(2)-2 +Quota structure[s] SMM.02: 88% SMM:2-31 + " SMM.02: 88% SMM:2-31 +quota system SMM.04: 4% SMM:4-1 + " SMM.04: 6% SMM:4-1 + " SMM.04: 40% SMM:4-2 + " SMM.04: 46% SMM:4-2 + " SMM.04: 56% SMM:4-2 + " SMM.04: 60% SMM:4-2 + " SMM.04: 65% SMM:4-2 + " SMM.04: 86% SMM:4-3 + " SMM.13: 33% SMM:13-12 +quotacheck - file system quota consistency checker QUOTACHECK.8: 3% QUOTACHECK(8)-1 +quotaoff SMM.04: 57% SMM:4-2 +quotaon SMM.04: 54% SMM:4-2 +quotaon, quotaoff - turn file system quotas on and off QUOTAON.8: 3% QUOTAON(8)-1 +Quotation USD.04: 16% USD:4-8 +quotation mark[s] PS1.02: 19% PS1:2-8 + " PS1.02: 59% PS1:2-20 + " PS1.04: 78% PS1:4-40 + " PS2.06: 10% PS2:6-4 + " USD.21: 70% USD:21-2 +quotation mechanism USD.04: 64% USD:4-31 +Quote[s] USD.22: 25% USD:22-5 + " USD.22: 96% USD:22-18 +quote character[s] PS1.01: 6% PS1:1-3 + " PS1.17: 39% PS1:17-3 + " PS1.17: 39% PS1:17-3 +quote mark[s] PS1.02: 19% PS1:2-8 + " PS1.02: 67% PS1:2-22 + " PS2.06: 10% PS2:6-4 + " PS2.09: 6% PS2:9-10 +quote, .(q Begin major USD.23: 31% USD:23-4 +quote, .)q End major USD.23: 31% USD:23-4 +quote[s], Double SMM.16: 41% SMM:16-6 + " USD.03: 69% USD:3-17 + " USD.25: 45% USD:25-7 +quote, Left USD.23: 71% USD:23-9 +quote, left and right USD.22: 97% USD:22-18 +quote, Right USD.23: 71% USD:23-9 +quote character[s] USD.22: 96% USD:22-18 +quote indent MS.7: 78% MS(7)-3 +quote mark[s] SH.1: 41% SH(1)-3 + " USD.03: 18% USD:3-4 + " USD.22: 87% USD:22-16 + " USD.22: 87% USD:22-16 + " USD.22: 87% USD:22-16 + " USD.22: 88% USD:22-17 + " USD.22: 98% USD:22-18 + " USD.23: 46% USD:23-6 +quoted string CSH.1: 24% CSH(1)-5 +Quoted Text USD.27: 45% USD:27-5 +Quoting SH.1: 40% SH(1)-3 + " USD.03: 15% USD:3-4 +quoting PS1.16: 24% PS1:16-4 + " PS1.17: 30% PS1:17-2 +quoting, Evaluation and USD.03: 65% USD:3-16 +quoting convention[s] USD.03: 30% USD:3-7 + " USD.03: 60% USD:3-15 + " USD.03: 63% USD:3-16 + " CSH.1: 4% CSH(1)-1 + " CSH.1: 23% CSH(1)-5 + " EXPR.1: 86% EXPR(1)-1 + " GREP.1: 49% GREP(1)-2 + " USD.17: 8% USD:17-4 + " USD.26: 50% USD:26-4 +quoting mechanism[s] USD.03: 17% USD:3-4 + " USD.03: 17% USD:3-4 + " USD.03: 66% USD:3-16 + " USD.03: 69% USD:3-17 + " USD.03: 69% USD:3-17 + " USD.03: 70% USD:3-17 + " USD.03: 71% USD:3-18 +RA60 SMM.01: 1% SMM:1-2 + " SMM.01: 43% SMM:1-28 + " SMM.01: 43% SMM:1-28 +RA60 partition[s] UDA.4: 41% UDA(4)-1 +RA80 SMM.01: 43% SMM:1-28 + " SMM.01: 43% SMM:1-28 +RA80 partition[s] UDA.4: 46% UDA(4)-2 +RA81 SMM.01: 43% SMM:1-28 +RA81 partition[s] UDA.4: 50% UDA(4)-2 +Racal-Vadic modem[s] L-DEVICES.5: 49% L-DEVICES(5)-1 + " L_SYS.5: 50% L.SYS(5)-2 + " SMM.09: 69% SMM:9-15 + " SMM.09: 40% SMM:9-9 + " SMM.09: 40% SMM:9-9 + " TIP.1C: 46% TIP(1C)-2 +Race condition[s] BINMAIL.1: 89% BINMAIL(1)-2 + " SMM.13: 58% SMM:13-20 +Radial Serial Protocol (RSP) TU.4: 20% TU(4)-1 +radix, default ADB.1: 70% ADB(1)-4 + " ADB.1: 71% ADB(1)-4 + " ADB.1: 71% ADB(1)-4 +radix, number DC.1: 62% DC(1)-1 + " DC.1: 66% DC(1)-1 + " USD.05: 20% USD:5-3 + " USD.05: 21% USD:5-3 +railmag file LPR.1: 75% LPR(1)-2 +rain - animated raindrops display RAIN.6: 9% unknown +rand[s], drand[s], irand - return random value RAND.3F: 5% RAND(3F)-1 +rand, srand - random number generator RAND.3C: 8% RAND(3C)-1 +Rand MH Message Handling System: User's Manual USD.08: 0% USD:8-2 +RANDOM SMM.12A: 69% SMM:12-16 +random, drandm, irandm - better random number generator RANDOM.3F: 6% RANDOM(3F)-1 +random, srandom - better random number generator RANDOM.3: 1% RANDOM(3)-1 +random number[s] RAND.3F: 35% RAND(3F)-1 + " RANDOM.3: 48% RANDOM(3)-1 + " RANDOM.3F: 35% RANDOM(3F)-1 + " RAND.3F: 42% RAND(3F)-1 + " RAND.3F: 55% RAND(3F)-1 + " RANDOM.3F: 58% RANDOM(3F)-1 +random number generator CHING.6: 66% CHING(6)-1 + " RAND.3C: 10% RAND(3C)-1 + " RAND.3F: 51% RAND(3F)-1 + " RANDOM.3: 2% RANDOM(3)-1 + " RANDOM.3: 16% RANDOM(3)-1 + " RANDOM.3: 46% RANDOM(3)-1 + " RANDOM.3: 84% RANDOM(3)-1 + " RANDOM.3F: 10% RANDOM(3F)-1 + " RANDOM.3F: 53% RANDOM(3F)-1 +range - declare a variable to range over a relation PS2.10: 47% PS2:10-40 +range of line[s] USD.13: 51% USD:13-9 +RANLIB LORDER.1: 65% LORDER(1)-1 + " SMM.12A: 43% SMM:12-10 +range statement[s] PS2.10: 10% PS2:10-13 + " PS2.10: 10% PS2:10-13 + " PS2.10: 16% PS2:10-19 + " PS2.10: 30% PS2:10-29 + " PS2.10: 37% PS2:10-33 + " PS2.10: 47% PS2:10-40 + " PS2.10: 83% PS2:10-76 + " PS2.10: 84% PS2:10-76 + " PS2.10: 84% PS2:10-76 +Ratfor PS1.02: 3% PS1:2-4 + " PS1.02: 4% PS1:2-4 + " PS1.02: 7% PS1:2-5 + " PS1.16: 2% PS1:16-1 + " PS1.17: 1% PS1:17-1 + " PS1.17: 6% PS1:17-1 + " PS1.17: 9% PS1:17-1 + " PS2.06: 90% PS2:6-33 + " PS2.06: 90% PS2:6-33 + " PS2.06: 90% PS2:6-33 + " PS2.08: 0% + " PS2.08: 0% + " PS2.08: 2% PS2:8-1 + " PS2.08: 3% PS2:8-1 + " PS2.08: 5% PS2:8-1 + " PS2.08: 5% PS2:8-2 + " PS2.08: 9% PS2:8-2 + " PS2.08: 11% PS2:8-2 + " PS2.08: 12% PS2:8-2 + " PS2.08: 12% PS2:8-2 + " PS2.08: 12% PS2:8-2 + " PS2.08: 15% PS2:8-2 + " PS2.08: 16% PS2:8-3 + " PS2.08: 16% PS2:8-3 + " PS2.08: 17% PS2:8-3 + " PS2.08: 18% PS2:8-3 + " PS2.08: 19% PS2:8-3 + " PS2.08: 19% PS2:8-3 + " PS2.08: 20% PS2:8-3 + " PS2.08: 20% PS2:8-3 + " PS2.08: 23% PS2:8-4 + " PS2.08: 24% PS2:8-4 + " PS2.08: 24% PS2:8-4 + " PS2.08: 25% PS2:8-4 + " PS2.08: 27% PS2:8-4 + " PS2.08: 29% PS2:8-4 + " PS2.08: 30% PS2:8-4 + " PS2.08: 33% PS2:8-5 + " PS2.08: 35% PS2:8-5 + " PS2.08: 36% PS2:8-6 + " PS2.08: 36% PS2:8-6 + " PS2.08: 39% PS2:8-6 + " PS2.08: 40% PS2:8-6 + " PS2.08: 44% PS2:8-6 + " PS2.08: 52% PS2:8-8 + " PS2.08: 58% PS2:8-8 + " PS2.08: 59% PS2:8-8 + " PS2.08: 60% PS2:8-8 + " PS2.08: 61% PS2:8-9 + " PS2.08: 67% PS2:8-10 + " PS2.08: 69% PS2:8-10 + " PS2.08: 70% PS2:8-10 + " PS2.08: 70% PS2:8-10 + " PS2.08: 72% PS2:8-10 + " PS2.08: 74% PS2:8-10 + " PS2.08: 78% PS2:8-11 + " PS2.08: 80% PS2:8-11 + " PS2.08: 83% PS2:8-12 + " PS2.08: 83% PS2:8-12 + " PS2.08: 84% PS2:8-12 + " PS2.08: 85% PS2:8-12 + " PS2.08: 86% PS2:8-12 + " PS2.08: 87% PS2:8-12 + " PS2.08: 88% PS2:8-12 + " PS2.08: 88% PS2:8-12 + " PS2.08: 89% PS2:8-12 + " PS2.08: 90% PS2:8-12 + " PS2.08: 93% PS2:8-12 + " PS2.08: 99% PS2:8-14 +Ratfor, EFL and PS2.06: 90% PS2:6-33 +RATFOR - A Preprocessor for a Rational Fortran PS2.08: 0% +Ratfor grammar PS2.08: 71% PS2:8-10 +Ratfor programs PS2.06: 71% PS2:6-24 + " PS2.08: 2% PS2:8-1 + " PS2.08: 3% PS2:8-1 +Ratfor source PS2.08: 70% PS2:8-10 + " PS2.08: 98% PS2:8-14 +Ratfor statement PS2.08: 17% PS2:8-3 + " PS2.08: 24% PS2:8-4 + " PS2.08: 24% PS2:8-4 + " PS2.08: 24% PS2:8-4 + " PS2.08: 25% PS2:8-4 + " PS2.08: 34% PS2:8-5 + " PS2.08: 35% PS2:8-5 + " PS2.08: 44% PS2:8-6 + " PS2.08: 44% PS2:8-7 + " PS2.08: 48% PS2:8-7 + " PS2.08: 54% PS2:8-8 + " PS2.08: 0% + " PS2.08: 0% + " PS2.08: 5% PS2:8-2 + " PS2.08: 15% PS2:8-2 + " PS2.08: 23% PS2:8-4 + " PS2.08: 30% PS2:8-4 + " PS2.08: 36% PS2:8-6 + " PS2.08: 44% PS2:8-6 + " PS2.08: 52% PS2:8-8 + " PS2.08: 60% PS2:8-8 + " PS2.08: 67% PS2:8-10 + " PS2.08: 74% PS2:8-10 + " PS2.08: 83% PS2:8-12 + " PS2.08: 93% PS2:8-12 +ranlib - convert archives to random library[s] RANLIB.1: 4% RANLIB(1)-1 +raster image[s] LPD.8: 61% LPD(8)-2 + " LPR.1: 30% LPR(1)-1 + " SMM.06: 52% SMM:6-4 +rates, telephone L_SYS.5: 20% L.SYS(5)-1 +Ratfor F77.1: 10% F77(1)-1 + " M4.1: 3% M4(1)-1 + " STRUCT.1: 36% STRUCT(1)-1 + " STRUCT.1: 51% STRUCT(1)-1 + " USD.01: 89% USD:1-13 + " USD.01: 90% USD:1-13 + " VGRIND.1: 60% VGRIND(1)-1 + " F77.1: 58% F77(1)-2 +ratfor - rational Fortran dialect RATFOR.1: 4% RATFOR(1)-1 +Ratfor program[s] STRUCT.1: 9% STRUCT(1)-1 +Rational Fortran RATFOR.1: 5% RATFOR(1)-1 +raw device[s] FSCK.8: 90% FSCK(8)-2 + " HK.4: 88% HK(4)-2 + " HP.4: 94% HP(4)-4 + " QUOTACHECK.8: 82% QUOTACHECK(8)-1 + " SMM.01: 8% SMM:1-5 + " SMM.01: 8% SMM:1-5 + " SMM.01: 8% SMM:1-5 + " UP.4: 93% UP(4)-3 +raw files HK.4: 21% HK(4)-1 + " HK.4: 42% HK(4)-1 + " HP.4: 11% HP(4)-1 + " HP.4: 69% HP(4)-3 + " UDA.4: 22% UDA(4)-1 + " UP.4: 18% UP(4)-1 + " UP.4: 63% UP(4)-3 +raw I/O HK.4: 19% HK(4)-1 + " HK.4: 84% HK(4)-2 + " HP.4: 10% HP(4)-1 + " HP.4: 92% HP(4)-4 + " UDA.4: 21% UDA(4)-1 + " UP.4: 17% UP(4)-1 + " UP.4: 91% UP(4)-3 +RAW interface INET.4F: 46% INET(4F)-1 + " NS.4F: 17% NS(4F)-1 +Raw IP socket[s] IP.4P: 39% IP(4P)-1 + " SMM.13: 67% SMM:13-23 + " SMM.13: 69% SMM:13-24 + " SMM.15: 79% SMM:15-22 +raw magnetic tape MTIO.4: 35% MTIO(4)-1 +RAW mode[s] BK.4: 59% BK(4)-1 + " STTY.1: 85% STTY(1)-3 + " TB.4: 68% TB(4)-1 + " TSET.1: 61% TSET(1)-3 + " TTY.4: 16% TTY(4)-2 + " TTY.4: 70% TTY(4)-7 + " GETTYTAB.5: 90% GETTYTAB(5)-3 + " STTY.1: 12% STTY(1)-1 + " TTY.4: 13% TTY(4)-2 + " TTY.4: 35% TTY(4)-4 +raw mode PS1.06: 89% PS1:6-38 + " PS1.06: 89% PS1:6-38 +raw queue SMM.13: 26% SMM:13-10 +raw socket[s] ICMP.4P: 20% ICMP(4P)-1 + " INET.4F: 49% INET(4F)-1 + " IP.4P: 14% IP(4P)-1 + " PS1.06: 74% PS1:6-33 + " PS1.06: 87% PS1:6-37 + " PS1.06: 88% PS1:6-37 + " PS1.06: 88% PS1:6-37 + " PS1.08: 6% PS1:8-3 + " PS1.08: 6% PS1:8-3 + " PS1.08: 7% PS1:8-3 + " PS1.08: 72% PS1:8-30 + " PS1.08: 91% PS1:8-38 + " PS1.08: 70% PS1:8-28 + " ROUTE.8C: 52% ROUTE(8C)-1 + " SMM.13: 61% SMM:13-21 + " SMM.13: 61% SMM:13-21 + " SMM.13: 67% SMM:13-23 + " SMM.13: 67% SMM:13-23 + " SMM.15: 78% SMM:15-22 + " SMM.15: 78% SMM:15-22 + " SMM.15: 78% SMM:15-22 + " SMM.15: 78% SMM:15-22 + " SMM.15: 79% SMM:15-23 + " SMM.15: 80% SMM:15-23 + " SMM.15: 82% SMM:15-23 + " SOCKET.2: 29% SOCKET(2)-1 + " SOCKET.2: 70% SOCKET(2)-2 +Raw socket interface[s] INTRO.4N: 27% INTRO(4N)-1 + " SMM.15: 5% SMM:15-3 + " SMM.15: 8% SMM:15-4 + " SMM.15: 79% SMM:15-22 + " SMM.15: 81% SMM:15-23 + " SMM.15: 83% SMM:15-24 +RAW socket type[s] INET.4F: 11% INET(4F)-1 + " NS.4F: 16% NS(4F)-1 + " NS.4F: 16% NS(4F)-1 +raw() PS1.18: 46% PS1:18-13 +RC[s] PS1.12: 67% PS1:12-6 + " PS1.12: 98% PS1:12-9 + " PS1.13: 0% + " PS1.13: 0% PS1:13-1 + " PS1.13: 1% PS1:13-1 + " PS1.13: 1% PS1:13-1 + " PS1.13: 1% PS1:13-1 + " PS1.13: 2% PS1:13-1 + " PS1.13: 3% PS1:13-1 + " PS1.13: 4% PS1:13-1 + " PS1.13: 4% PS1:13-1 + " PS1.13: 5% PS1:13-2 + " PS1.13: 5% PS1:13-2 + " PS1.13: 6% PS1:13-2 + " PS1.13: 6% PS1:13-2 + " PS1.13: 6% PS1:13-2 + " PS1.13: 7% PS1:13-2 + " PS1.13: 7% PS1:13-2 + " PS1.13: 8% PS1:13-2 + " PS1.13: 11% PS1:13-2 + " PS1.13: 12% PS1:13-3 + " PS1.13: 15% PS1:13-3 + " PS1.13: 16% PS1:13-3 + " PS1.13: 16% PS1:13-3 + " PS1.13: 17% PS1:13-4 + " PS1.13: 18% PS1:13-4 + " PS1.13: 20% PS1:13-4 + " PS1.13: 21% PS1:13-4 + " PS1.13: 35% PS1:13-6 + " PS1.13: 43% PS1:13-8 + " PS1.13: 52% PS1:13-10 + " PS1.13: 56% PS1:13-10 + " PS1.13: 61% PS1:13-12 + " PS1.13: 61% PS1:13-12 + " PS1.13: 61% PS1:13-12 + " PS1.13: 71% PS1:13-14 + " PS1.13: 73% PS1:13-14 + " PS1.13: 74% PS1:13-15 + " PS1.13: 79% PS1:13-16 + " PS1.13: 83% PS1:13-18 + " PS1.13: 84% PS1:13-19 + " PS1.13: 94% PS1:13-20 + " PS1.13: 95% PS1:13-21 +rc - command script for auto-reboot and daemon[s] RC.8: 3% RC(8)-1 +RC25 partition[s] UDA.4: 35% UDA(4)-1 +rcmd SMM.12A: 69% SMM:12-16 +rcp SMM.12A: 44% SMM:12-10 +rcp - remote file copy RCP.1C: 2% RCP(1C)-1 +rcs - change RCS file attribute[s] PS1.13: 61% PS1:13-12 +RCS file[s] PS1.13: 9% PS1:13-2 + " PS1.13: 10% PS1:13-2 + " PS1.13: 11% PS1:13-2 + " PS1.13: 12% PS1:13-3 + " PS1.13: 12% PS1:13-3 + " PS1.13: 12% PS1:13-3 + " PS1.13: 17% PS1:13-3 + " PS1.13: 18% PS1:13-4 + " PS1.13: 20% PS1:13-4 + " PS1.13: 22% PS1:13-4 + " PS1.13: 22% PS1:13-5 + " PS1.13: 22% PS1:13-5 + " PS1.13: 22% PS1:13-5 + " PS1.13: 23% PS1:13-5 + " PS1.13: 24% PS1:13-5 + " PS1.13: 24% PS1:13-5 + " PS1.13: 26% PS1:13-5 + " PS1.13: 33% PS1:13-6 + " PS1.13: 34% PS1:13-6 + " PS1.13: 34% PS1:13-6 + " PS1.13: 34% PS1:13-6 + " PS1.13: 35% PS1:13-7 + " PS1.13: 35% PS1:13-7 + " PS1.13: 35% PS1:13-7 + " PS1.13: 35% PS1:13-7 + " PS1.13: 37% PS1:13-8 + " PS1.13: 37% PS1:13-8 + " PS1.13: 38% PS1:13-8 + " PS1.13: 38% PS1:13-8 + " PS1.13: 39% PS1:13-8 + " PS1.13: 39% PS1:13-8 + " PS1.13: 39% PS1:13-8 + " PS1.13: 41% PS1:13-8 + " PS1.13: 52% PS1:13-10 + " PS1.13: 53% PS1:13-10 + " PS1.13: 54% PS1:13-10 + " PS1.13: 54% PS1:13-10 + " PS1.13: 61% PS1:13-12 + " PS1.13: 61% PS1:13-13 + " PS1.13: 62% PS1:13-13 + " PS1.13: 62% PS1:13-13 + " PS1.13: 62% PS1:13-13 + " PS1.13: 63% PS1:13-13 + " PS1.13: 63% PS1:13-13 + " PS1.13: 66% PS1:13-13 + " PS1.13: 69% PS1:13-14 + " PS1.13: 71% PS1:13-14 + " PS1.13: 71% PS1:13-14 + " PS1.13: 71% PS1:13-14 + " PS1.13: 71% PS1:13-14 + " PS1.13: 73% PS1:13-15 + " PS1.13: 76% PS1:13-16 + " PS1.13: 83% PS1:13-19 + " PS1.13: 86% PS1:13-19 + " PS1.13: 88% PS1:13-20 + " PS1.13: 88% PS1:13-20 + " PS1.13: 88% PS1:13-20 + " PS1.13: 88% PS1:13-20 + " PS1.13: 89% PS1:13-20 + " PS1.13: 90% PS1:13-20 + " PS1.13: 95% PS1:13-21 + " PS1.13: 95% PS1:13-21 + " PS1.13: 97% PS1:13-22 + " PS1.13: 97% PS1:13-22 + " PS1.13: 97% PS1:13-22 + " PS1.13: 98% PS1:13-22 + " PS1.13: 98% PS1:13-22 + " PS1.13: 98% PS1:13-22 +RCS file, access list of the PS1.13: 40% PS1:13-8 + " PS1.13: 63% PS1:13-13 + " PS1.13: 63% PS1:13-13 + " PS1.13: 63% PS1:13-13 +RCS file, rcsfile - format of PS1.13: 76% PS1:13-16 +RCS file, rlog - print log messages and other information about PS1.13: 88% PS1:13-20 +RCS file attribute[s], rcs - change PS1.13: 61% PS1:13-12 +RCS file name PS1.13: 22% PS1:13-5 + " PS1.13: 38% PS1:13-8 + " PS1.13: 51% PS1:13-10 + " PS1.13: 51% PS1:13-10 + " PS1.13: 70% PS1:13-14 + " PS1.13: 73% PS1:13-15 + " PS1.13: 84% PS1:13-19 + " PS1.13: 89% PS1:13-20 + " PS1.13: 90% PS1:13-20 + " PS1.13: 90% PS1:13-20 +RCS revisions PS1.13: 37% PS1:13-8 + " PS1.13: 73% PS1:13-14 + " PS1.13: 83% PS1:13-18 +RCS revision[s], ci - check in PS1.13: 21% PS1:13-4 +RCS revision[s], co - check out PS1.13: 37% PS1:13-8 +RCS revision[s], rcsdiff - compare PS1.13: 73% PS1:13-14 +RCS revision[s], rcsmerge - merge PS1.13: 83% PS1:13-18 +rcs - change RCS file attributes RCS.N: 0% unknown +rcs command[s] CI.N: 22% CI(1)-1 + " RCSINTRO.N: 8% RCSINTRO(1)-1 + " RCS.N: 33% RCS(1)-1 + " IDENT.N: 28% IDENT(1)-1 +RCS file[s] RCSINTRO.N: 61% unknown +RCS file attributes RCS.N: 1% unknown +RCS file from SCCS file, sccstorcs - build SCCSTORCS.N: 3% SCCSTORCS(8)-1 +RCS file name CI.N: 7% CI(1)-1 + " CO.N: 5% CO(1)-1 + " CO.N: 68% CO(1)-2 + " CO.N: 71% CO(1)-3 + " RLOG.N: 11% RLOG(1)-1 + " RLOG.N: 29% RLOG(1)-1 + " RLOG.N: 30% RLOG(1)-1 +RCS files, printing information about RLOG.N: 4% RLOG(1)-1 +RCS revisions CO.N: 0% CO(1)-1 + " RCSDIFF.N: 4% RCSDIFF(1)-1 + " RCSMERGE.N: 3% RCSMERGE(1)-1 + " CI.N: 0% CI(1)-1 +RCS revision[s], rcsdiff - compare RCSDIFF.N: 3% RCSDIFF(1)-1 +RCS version of diff3 SMM.12A: 16% SMM:12-4 +rcsdiff - compare RCS revision[s] PS1.13: 73% PS1:13-14 + " RCSDIFF.N: 3% RCSDIFF(1)-1 +rcsfile - format of RCS file PS1.13: 76% PS1:13-16 + " RCSFILE.N: 1% RCSFILE(5)-2 +rcsintro - introduction to RCS command[s] RCSINTRO.N: 5% RCSINTRO(1)-1 +rcsmerge - merge RCS revision[s] PS1.13: 83% PS1:13-18 + " RCSMERGE.N: 2% RCSMERGE(1)-1 +rcvdist MHOOK.N: 75% MHOOK(1)-3 +rcvpack MHOOK.N: 76% MHOOK(1)-3 +rcvstore - incorporate new mail asynchronously USD.08: 44% USD:8-54 +rcvtty MHOOK.N: 76% MHOOK(1)-3 +rcvtty program MHOOK.N: 82% MHOOK(1)-3 + " MHOOK.N: 88% MHOOK(1)-4 + " USD.08: 34% USD:8-38 + " USD.08: 34% USD:8-38 +rd request NROFF.1: 58% NROFF(1)-1 + " TROFF.1: 50% TROFF(1)-1 + " USD.24: 2% USD:24-2 +RD52 partition[s] UDA.4: 37% UDA(4)-1 +RD53 partition[s] UDA.4: 39% UDA(4)-1 +rdist CATMAN.8: 61% CATMAN(8)-1 + " SMM.12A: 44% SMM:12-10 +rdist - remote file distribution program RDIST.1: 0% RDIST(1)-1 +rdump - file system dump across the network RDUMP.8C: 7% RDUMP(8C)-1 +READ[s] STAT.2: 37% STAT(2)-1 +read & write, open for PS1.06: 59% PS1:6-28 +read and write with socket[s] PS1.06: 83% PS1:6-36 +read permission PS1.06: 65% PS1:6-29 +read() PS1.07a: 76% PS1:7-19 +read(fd, buf, nbytes) PS1.06: 52% PS1:6-25 +read, readv - read input READ.2: 1% READ(2)-1 +read - Bourne shell command SH.1: 0% SH(1)-1 +read a string GETS.3S: 26% GETS(3S)-1 +read access CSH.1: 47% CSH(1)-9 +read an EBCDIC tape DD.1: 65% +Read command[s] ADB.1: 60% ADB(1)-4 + " USD.12: 25% USD:12-3 + " ED.1: 62% CONS(4)-1 +read from the terminal CSH.1: 44% CSH(1)-9 +read permission ACCESS.3F: 44% ACCESS(3F)-1 +read specific messages MH.N: 31% MH(1)-1 +read system call SMM.14: 68% SMM:14-10 +Read the Network News, How to USD.09: 0% USD:9-1 +Read timeout[s] SMM.07A: 27% SMM:07-14 +Read-ahead USD.01: 14% USD:1-3 +read-macros-from-file USD.17: 88% USD:17-43 + " USD.17: 99% USD:17-48 +read-only file system MOUNT.2: 21% MOUNT(2)-1 + " MOUNT.8: 35% MOUNT(8)-1 +read-only folder[s] FOLDER.N: 24% FOLDER(1)-1 + " RMF.N: 53% RMF(1)-1 + " USD.08: 19% USD:8-20 + " USD.08: 50% USD:8-60 +read-word-abbrev-file USD.17: 88% USD:17-42 + " USD.17: 98% USD:17-48 +read/write SMM.13: 13% SMM:13-6 +read/write permission[s] CO.N: 88% CO(1)-3 + " SMM.09: 30% SMM:9-7 +readability index[s] STYLE.1: 64% STYLE(1)-1 + " STYLE.1: 80% STYLE(1)-1 + " USD.32: 6% USD:32-2 + " USD.32: 22% USD:32-4 + " USD.32: 6% USD:32-2 + " USD.32: 15% USD:32-3 + " USD.32: 15% USD:32-3 + " USD.32: 15% USD:32-3 +Readdir DIRECTORY.3: 34% DIRECTORY(3)-1 +reader, BBoard MSH.N: 0% MSH(1)-1 + " USD.08: 36% USD:8-42 +reading, mail USD.07: 28% USD:7-7 + " SMM.12A: 98% SMM:12-23 +reading, peeking at a message without PS1.06: 81% PS1:6-35 +reading, scatter READ.2: 15% READ(2)-1 +Reading additional file[s] USD.14: 85% USD:14-21 +reading commands USD.04: 23% USD:4-11 + " USD.04: 56% USD:4-26 + " USD.04: 91% USD:4-42 +reading files FOPEN.3S: 24% FOPEN(3S)-1 +Reading List USD.01: 5% USD:1-2 +reading news PATCH.N: 38% PATCH(1)-1 +reading notes USD.11: 22% USD:11-4 + " USD.11: 23% USD:11-4 + " USD.11: 33% USD:11-5 + " USD.11: 43% USD:11-7 + " USD.11: 59% USD:11-9 +Reading Response[s] USD.11: 43% USD:11-7 + " USD.11: 40% USD:11-7 +Reading text from a file USD.12: 21% USD:12-2 + " USD.12: 25% USD:12-3 +readlink LN.1: 57% LN(1)-1 + " SMM.12A: 58% SMM:12-13 +readlink - read value of a symbolic link READLINK.2: 4% READLINK(2)-1 +readlink(path, buf, bufsize) PS1.06: 67% PS1:6-30 +readnew[s] USD.09: 12% USD:9-2 + " USD.09: 15% USD:9-2 +readnews command[s] USD.09: 39% USD:9-5 + " USD.09: 50% USD:9-6 + " USD.09: 51% USD:9-6 +readonly - Bourne shell command SH.1: 0% SH(1)-1 +real constants PS1.02: 72% PS1:2-24 + " PS2.06: 19% PS2:6-8 + " PS2.06: 19% PS2:6-8 +real group ID ACCESS.2: 27% ACCESS(2)-1 + " GETGID.2: 35% GETGID(2)-1 + " GETGID.2: 47% GETGID(2)-1 + " INTRO.2: 69% INTRO(2)-6 + " SETREGID.2: 30% SETREGID(2)-1 + " GETUID.3F: 62% GETUID(3F)-1 + " INTRO.2: 67% INTRO(2)-5 + " SETUID.3: 62% SETUID(3)-1 +real hostname GETTYTAB.5: 73% GETTYTAB(5)-2 + " GETTYTAB.5: 74% GETTYTAB(5)-2 + " L_ALIASES.5: 71% L.ALIASES(5)-1 +real memory PS.1: 67% PS(1)-2 + " PS.1: 67% PS(1)-2 + " SMM.01: 17% SMM:1-12 + " VMSTAT.1: 47% VMSTAT(1)-1 +real memory address OD.1: 84% OD(1)-1 +real number[s] FLMIN.3F: 78% FLMIN(3F)-1 + " PS1.04: 34% PS1:4-19 + " PS1.04: 43% PS1:4-23 + " PS1.04: 51% PS1:4-27 + " PS1.04: 56% PS1:4-29 + " PS1.16: 65% PS1:16-8 +Real time PS1.06: 32% PS1:6-16 + " PS1.06: 33% PS1:6-16 +real time[s] CSH.1: 87% CSH(1)-18 + " GETITIMER.2: 50% GETITIMER(2)-1 + " SA.8: 31% SA(8)-1 + " SA.8: 52% SA(8)-1 + " SA.8: 73% SA(8)-1 +real user ID ACCESS.2: 25% ACCESS(2)-1 + " EXECVE.2: 43% EXECVE(2)-1 + " GETUID.2: 35% GETUID(2)-1 + " GETUID.2: 46% GETUID(2)-1 + " INTRO.2: 67% INTRO(2)-5 + " SETREUID.2: 42% SETREUID(2)-1 + " SETUID.3: 60% SETUID(3)-1 + " SH.1: 33% SH(1)-2 + " SMM.12A: 47% SMM:12-11 + " SMM.12A: 55% SMM:12-13 + " EXECVE.2: 96% EXECVE(2)-2 + " SMM.10: 55% SMM:10-14 + " SMM.10: 56% SMM:10-15 + " SMM.17: 27% SMM:17-1 + " USERFILE.5: 55% USERFILE(5)-1 + " USERFILE.5: 58% USERFILE(5)-1 + " USERFILE.5: 62% USERFILE(5)-1 + " EXECVE.2: 39% EXECVE(2)-1 + " SMM.12: 60% SMM:12-1 + " SMM.13: 19% SMM:13-8 + " USD.10: 90% USD:10-11 + " SMM.12A: 60% SMM:12-14 + " GETUID.3F: 59% GETUID(3F)-1 + " INTRO.2: 67% INTRO(2)-5 +real user id PS1.06: 10% PS1:6-8 +realloc MALLOC.3: 2% MALLOC(3)-1 +Rearranging a Line with \ \( ... \ \) USD.13: 37% USD:13-7 +rearranging and duplicating text USD.15: 34% USD:15-10 +Reboot CONS.4: 95% + " FASTBOOT.8: 43% + " ICHECK.8: 96% ICHECK(8)-1 + " INIT.8: 73% INIT(8)-1 + " SHUTDOWN.8: 65% SHUTDOWN(8)-1 + " SMM.01: 73% SMM:1-45 +reboot, automatic FSCK.8: 7% FSCK(8)-1 + " FSCK.8: 31% FSCK(8)-1 + " FSCK.8: 41% FSCK(8)-1 + " RC.8: 13% RC(8)-1 + " RC.8: 21% RC(8)-1 + " CRASH.8V: 6% CRASH(8V)-1 +reboot - reboot system or halt processor REBOOT.2: 2% REBOOT(2)-1 +reboot - UNIX bootstrapping procedure[s] REBOOT.8: 0% REBOOT(8)-1 +reboot switch SMM.01: 11% SMM:1-8 + " SMM.01: 11% SMM:1-8 +reboot, machine halt or PS1.06: 48% PS1:6-23 +reboot(how) PS1.06: 48% PS1:6-23 +rebooting the completed root file system SMM.01: 20% SMM:1-14 +receive datagram[s] PS1.06: 77% PS1:6-34 +receive messages from a socket RECV.2: 15% RECV(2)-1 +Received SENDMAIL.8: 33% SENDMAIL(8)-2 + " SMM.07A: 71% SMM:07-32 + " SMM.07A: 79% SMM:07-36 +receive primitive[s] PS1.06: 80% PS1:6-35 +recipients, carbon copy MAIL.1: 67% MAIL(1)-4 + " MAIL.1: 68% MAIL(1)-4 + " MAIL.1: 81% MAIL(1)-5 + " USD.07: 75% USD:7-18 +recipients, sighted POST.N: 49% POST(8)-1 + " SEND.N: 45% SEND(1)-1 + " USD.08: 54% USD:8-64 + " USD.08: 78% USD:8-96 +recipient addresses SENDMAIL.8: 41% SENDMAIL(8)-2 + " SMM.16: 26% SMM:16-4 + " SMM.16: 29% SMM:16-4 + " SMM.16: 50% SMM:16-7 + " SMM.07A: 15% SMM:07-9 + " SMM.07A: 50% SMM:07-23 + " SMM.07A: 53% SMM:07-23 + " SMM.07A: 53% SMM:07-23 + " SMM.07A: 64% SMM:07-27 +recipient line SMM.07A: 23% SMM:07-12 + " SMM.07A: 23% SMM:07-12 +recipient list MAIL.1: 74% MAIL(1)-5 + " SMM.16: 30% SMM:16-4 + " SMM.16: 33% SMM:16-5 + " USD.07: 34% USD:7-9 + " USD.07: 34% USD:7-9 +recompile the entire system source SMM.01: 80% SMM:1-48 +Recompiling and reinstalling system software SMM.01: 80% SMM:1-48 +Record DBX.5: 84% DBX(5)-4 + " MAIL.1: 94% MAIL(1)-6 + " USD.07: 80% USD:7-19 +record, input PS1.02: 22% PS1:2-9 + " PS1.03: 72% PS1:3-9 + " PS1.06: 90% PS1:6-38 +record[s], logical PS1.03: 5% PS1:3-3 + " PS1.03: 5% PS1:3-3 + " PS1.03: 6% PS1:3-3 + " PS1.03: 7% PS1:3-3 + " PS1.03: 11% PS1:3-3 + " PS1.03: 12% PS1:3-3 + " PS1.03: 13% PS1:3-3 + " PS1.03: 14% PS1:3-3 + " PS2.04: 96% PS2:4-9 +record boundaries PS1.06: 75% PS1:6-33 + " PS1.08: 5% PS1:8-3 + " PS1.08: 6% PS1:8-3 + " PS1.08: 7% PS1:8-3 +record length[s] PS1.02: 36% PS1:2-12 + " PS1.02: 43% PS1:2-15 + " PS1.02: 43% PS1:2-15 + " PS1.02: 77% PS1:2-25 + " PS1.02: 77% PS1:2-25 + " PS1.02: 77% PS1:2-25 + " PS1.02: 82% PS1:2-27 + " PS1.03: 10% PS1:3-3 + " PS1.03: 10% PS1:3-3 +Recursion, Left PS1.15: 67% PS1:15-19 +records, disk HK.4: 14% HK(4)-1 + " HP.4: 7% HP(4)-1 + " UDA.4: 17% UDA(4)-1 + " UP.4: 13% UP(4)-1 +records, fixed length DD.1: 35% DD(1)-1 +record[s], input BK.4: 72% BK(4)-1 + " BK.4: 72% BK(4)-1 + " DD.1: 22% DD(1)-1 + " DD.1: 41% DD(1)-1 + " USD.19: 15% USD:19-2 + " USD.19: 16% USD:19-2 + " USD.19: 61% USD:19-5 +record[s], physical TOPEN.3F: 43% TOPEN(3F)-1 + " TOPEN.3F: 53% TOPEN(3F)-1 +record[s], resource SMM.11: 38% SMM:11-6 + " SMM.11: 39% SMM:11-6 + " SMM.11: 41% SMM:11-6 + " SMM.11: 44% SMM:11-6 + " SMM.11: 51% SMM:11-7 + " SMM.11: 59% SMM:11-8 + " SMM.11: 59% SMM:11-8 + " SMM.11: 63% SMM:11-9 +record[s], skip over files and/or TOPEN.3F: 69% TOPEN(3F)-2 +records, trace TRPT.8C: 17% TRPT(8C)-1 + " TRPT.8C: 47% TRPT(8C)-1 + " TRPT.8C: 72% TRPT(8C)-1 + " TRSP.8C: 19% TRSP(8c)-1 + " TRSP.8C: 41% TRSP(8c)-1 + " TRSP.8C: 70% TRSP(8c)-1 +records, variable length DD.1: 33% DD(1)-1 +record all outgoing mail MAIL.1: 95% MAIL(1)-6 +record boundary[s] SMM.15: 24% SMM:15-8 + " SMM.15: 32% SMM:15-10 +record length[s] DIR.5: 66% DIR(5)-1 +record number TOPEN.3F: 84% TOPEN(3F)-2 + " USD.19: 21% USD:19-2 + " AWK.1: 79% AWK(1)-2 +record separator[s] USD.19: 14% USD:19-2 + " USD.19: 16% USD:19-2 + " USD.19: 17% USD:19-2 + " USD.19: 17% USD:19-2 +Records and Field[s] USD.19: 13% USD:19-2 +RECOVER USD.16: 49% USD:16-9 +recover JOVE buffers after a system/editor crash JOVE_RECOVER.N: 1% JOVE_RECOVER(1) +recoverable ECC error HK.4: 65% HK(4)-2 + " HP.4: 83% HP(4)-4 + " UP.4: 78% UP(4)-3 +recovering after an editor or system crash USD.16: 4% USD:16-1 +Recovering files lost in a crash[s] USD.14: 87% USD:14-21 + " USD.14: 70% USD:14-18 + " USD.14: 3% USD:14-2 +Recovering from hangups and crash[s] USD.16: 13% USD:16-3 +Recovering from system/editor crash[s] USD.17: 34% USD:17-15 +Recovering lost file[s] USD.15: 49% USD:15-14 +Recovering lost line[s] USD.15: 48% USD:15-14 +recovery, backups and disaster SMM.01: 75% SMM:1-46 +recovery, error SMM.13: 94% SMM:13-32 +recursive editing level USD.17: 24% USD:17-11 + " USD.17: 24% USD:17-11 + " USD.17: 24% USD:17-11 + " USD.17: 88% USD:17-42 +recursively list subdirectories LS.1: 47% LS(1)-1 +recv call PS1.08: 21% PS1:8-8 + " PS1.08: 21% PS1:8-8 + " PS1.08: 60% PS1:8-24 +recv() PS1.07a: 86% PS1:7-22 +recv(s, buf, len, flags) PS1.06: 81% PS1:6-35 +recv, recvfrom, recvmsg - receive a message from a socket RECV.2: 1% RECV(2)-1 +recv call RECV.2: 16% RECV(2)-1 +recvfrom PS1.08: 23% PS1:8-9 +recvfrom calls ICMP.4P: 34% ICMP(4P)-1 + " IDP.4P: 12% IDP(4P)-1 + " IP.4P: 42% IP(4P)-1 + " UDP.4P: 21% UDP(4P)-1 +recvfrom() PS1.07a: 87% PS1:7-22 +recvfrom(s, buf, len, flags, from, fromlenaddr) PS1.06: 80% PS1:6-35 +recvmsg() PS1.07a: 88% PS1:7-22 +recvmsg(s, msg, flags) PS1.06: 83% PS1:6-36 +redirect[s], ICMP SMM.01: 67% SMM:1-41 + " SMM.02: 97% SMM:2-33 +redirect, ICMP routing SMM.01: 66% SMM:1-40 +redirecting I/O USD.01: 0% USD:1-1 +redirection[s], I/O CSH.1: 68% CSH(1)-14 + " USD.01: 80% USD:1-12 +redirection, input output SH.1: 67% SH(1)-4 + " USD.03: 6% USD:3-2 + " USD.03: 85% USD:3-21 + " USD.04: 19% USD:4-9 + " WINDOW.1: 3% WINDOW(1)-1 +redirection[s], Input/output CSH.1: 29% CSH(1)-6 + " CSH.1: 58% CSH(1)-12 + " SH.1: 44% SH(1)-3 +Redraw[s] USD.16: 90% USD:16-17 +redraw-display USD.17: 39% USD:17-17 +redraw-display (C-L) USD.17: 89% USD:17-43 +REFER REFER.1: 5% REFER(1)-1 + " USD.29: 0% USD:29-1 + " USD.29: 0% USD:29-1 + " USD.29: 0% USD:29-1 + " USD.29: 8% USD:29-2 + " USD.29: 18% USD:29-2 + " USD.29: 31% USD:29-4 + " USD.29: 35% USD:29-4 + " USD.29: 41% USD:29-4 + " LOOKBIB.1: 12% LOOKBIB(1)-1 + " USD.31: 1% USD:31-1 + " SMM.12A: 44% SMM:12-10 +Refer - A Bibliography System USD.29: 0% USD:29-1 +reduce action PS1.15: 28% PS1:15-8 +reduce/reduce conflict[s] PS1.15: 40% PS1:15-12 + " PS1.15: 41% PS1:15-12 + " PS1.15: 41% PS1:15-12 + " PS1.15: 42% PS1:15-12 + " PS1.15: 54% PS1:15-16 + " PS1.15: 55% PS1:15-16 +refer - find and insert literature references in document[s] REFER.1: 0% REFER(1)-1 +refer and -m[s] USD.30: 85% USD:30-10 +Refer Bugs and Some Solution[s] USD.29: 61% USD:29-6 +REFER environment variable REFER.1: 46% REFER(1)-1 +Refer Option[s] USD.30: 85% USD:30-10 +Refer's Command-line Option[s] USD.29: 44% USD:29-5 +Reference[s] REFER.1: 6% REFER(1)-1 + " USD.29: 2% USD:29-1 +reference[s], array PS2.06: 21% PS2:6-8 + " PS2.09: 29% PS2:9-55 + " PS2.09: 63% PS2:9-108 +reference, descriptor PS1.06: 37% PS1:6-18 + " PS1.06: 37% PS1:6-18 + " PS1.06: 38% PS1:6-18 + " PS1.06: 38% PS1:6-18 +reference[s], bibliographic LOOKBIB.1: 13% LOOKBIB(1)-1 + " LOOKBIB.1: 16% LOOKBIB(1)-1 + " LOOKBIB.1: 49% LOOKBIB(1)-1 +reference[s], illegal memory PS2.03: 65% PS2:3-10 + " PS2.09: 20% PS2:9-38 + " PS2.09: 34% PS2:9-62 +references, external LD.1: 2% LD(1)-1 +reference[s], footnoted USD.31: 21% USD:31-3 +reference, history CSH.1: 22% CSH(1)-5 + " CSH.1: 22% CSH(1)-5 + " CSH.1: 23% CSH(1)-5 +reference, locality of SMM.14: 48% SMM:14-8 +reference[s], name cache SMM.13: 27% SMM:13-10 + " SMM.13: 27% SMM:13-10 + " SMM.13: 29% SMM:13-11 +reference[s], number USD.29: 34% USD:29-4 +references, numbering REFER.1: 37% REFER(1)-1 + " USD.29: 48% USD:29-5 + " USD.29: 50% USD:29-5 +reference[s], private file of USD.30: 98% USD:30-12 +reference, See USD.29: 81% USD:29-8 + " USD.30: 94% USD:30-11 + " USD.30: 94% USD:30-11 +references, sort REFER.1: 51% REFER(1)-1 + " USD.31: 23% USD:31-3 +reference[s], String USD.24: 43% USD:24-14 +reference[s], structure SMM.19: 39% SMM:19-11 +reference card JOVE.N: 50% JOVE(1)-2 +reference count[s] INTRO.4N: 55% INTRO(4N)-2 + " SMM.05: 42% SMM:5-9 + " SMM.13: 27% SMM:13-10 +reference file[s] BIB.N: 60% BIB(1)-1 + " LOOKBIB.1: 73% LOOKBIB(1)-1 + " USD.30: 4% USD:30-1 + " USD.30: 68% USD:30-8 + " USD.30: 68% USD:30-8 + " USD.30: 69% USD:30-8 + " USD.31: 1% USD:31-1 + " USD.31: 2% USD:31-1 + " USD.31: 7% USD:31-2 + " USD.31: 23% USD:31-3 + " USD.31: 24% USD:31-4 + " USD.31: 79% USD:31-13 +Reference File Format[s] USD.31: 24% USD:31-4 +reference format[s] BIB.N: 17% BIB(1)-1 + " USD.31: 20% USD:31-3 + " USD.31: 38% USD:31-6 + " USD.31: 40% USD:31-7 +Reference Format Designer's Guide USD.31: 45% USD:31-8 +Reference Formatting USD.31: 72% USD:31-12 +reference item[s] USD.31: 24% USD:31-4 + " USD.31: 24% USD:31-4 + " USD.31: 24% USD:31-4 + " USD.31: 44% USD:31-8 +reference list[s] USD.31: 0% USD:31-1 +reference number[s] REFER.1: 52% REFER(1)-1 + " USD.29: 46% USD:29-5 + " USD.29: 76% USD:29-8 + " USD.30: 91% USD:30-11 +references at the end of a chapter USD.29: 44% USD:29-5 +refile - file message in other folder[s] REFILE.N: 1% REFILE(1)-1 + " USD.08: 45% USD:8-55 +Refresh SMM.11: 48% SMM:11-7 + " SMM.11: 75% SMM:11-11 + " SMM.11: 76% SMM:11-12 + " SMM.11: 81% SMM:11-13 +Regenerating /etc/hosts and /etc/network[s] SMM.01: 69% SMM:1-42 +Registers USD.20: 8% USD:20-1 + " USD.20: 68% USD:20-5 + " USD.24: 52% USD:24-17 +refresh() PS1.18: 8% PS1:18-4 + " PS1.18: 16% PS1:18-5 + " PS1.18: 19% PS1:18-6 + " PS1.18: 41% PS1:18-11 +register declaration[s] PS1.01: 40% PS1:1-13 + " PS1.01: 41% PS1:1-13 + " PS1.01: 41% PS1:1-13 +register symbol[s] PS1.05: 46% PS1:5-7 +Register variable[s] PS1.01: 9% PS1:1-4 + " PS1.01: 56% PS1:1-18 + " PS1.01: 63% PS1:1-21 + " PS1.01: 67% PS1:1-22 + " PS1.01: 92% PS1:1-31 + " PS1.10: 37% PS1:10-8 + " PS1.10: 66% PS1:10-13 +register, Assign format to USD.24: 53% USD:24-17 +register[s], control status SMM.01: 90% SMM:1-57 + " SMM.01: 91% SMM:1-57 + " SMM.02: 33% SMM:2-10 + " SMM.02: 33% SMM:2-10 +registers, device SMM.02: 11% SMM:2-4 + " SMM.02: 51% SMM:2-16 +registers, interface IK.4: 24% IK(4)-1 + " PS.4: 9% PS(4)-1 + " PS.4: 19% PS(4)-1 + " PS.4: 24% PS(4)-1 +register[s], list of string MS.7: 87% MS(7)-3 +register[s], list of troff number USD.24: 15% USD:24-7 +registers, map SMM.02: 54% SMM:2-16 + " SMM.02: 67% SMM:2-20 + " SMM.02: 73% SMM:2-22 + " SMM.13: 98% SMM:13-33 + " SMM.15: 40% SMM:15-12 + " SMM.15: 42% SMM:15-13 +register[s], number MS.7: 72% MS(7)-3 + " ROFFBIB.1: 61% ROFFBIB(1)-1 + " USD.20: 69% USD:20-5 + " USD.20: 95% USD:20-7 + " USD.23: 5% USD:23-1 + " USD.23: 14% USD:23-2 + " USD.23: 22% USD:23-3 + " USD.23: 37% USD:23-5 + " USD.24: 2% USD:24-2 + " USD.24: 9% USD:24-4 + " USD.24: 20% USD:24-8 + " USD.24: 22% USD:24-9 + " USD.24: 39% USD:24-13 + " USD.24: 43% USD:24-15 + " USD.24: 51% USD:24-17 + " USD.24: 52% USD:24-17 + " USD.24: 52% USD:24-17 + " USD.24: 52% USD:24-17 + " USD.24: 52% USD:24-17 + " USD.24: 53% USD:24-17 + " USD.24: 64% USD:24-21 + " USD.24: 69% USD:24-22 + " USD.24: 83% USD:24-28 + " USD.25: 62% USD:25-9 + " USD.25: 62% USD:25-9 + " USD.25: 62% USD:25-9 + " USD.25: 62% USD:25-9 + " USD.25: 63% USD:25-10 + " USD.25: 64% USD:25-10 + " USD.25: 67% USD:25-10 + " USD.25: 72% USD:25-11 + " USD.25: 75% USD:25-11 + " USD.28: 47% USD:28-7 + " USD.24: 44% USD:24-15 + " USD.25: 61% USD:25-9 + " USD.29: 34% USD:29-4 +register, page-number USD.24: 72% USD:24-23 +register, Remove USD.24: 54% USD:24-18 +register[s], scratch SMM.19: 53% SMM:19-15 + " SMM.19: 54% SMM:19-15 + " SMM.19: 54% SMM:19-15 + " SMM.19: 56% SMM:19-16 + " SMM.19: 56% SMM:19-16 + " SMM.19: 57% SMM:19-16 + " SMM.19: 58% SMM:19-16 + " SMM.19: 58% SMM:19-16 + " SMM.19: 60% SMM:19-17 + " SMM.19: 64% SMM:19-18 + " SMM.19: 65% SMM:19-18 + " SMM.19: 67% SMM:19-19 + " SMM.19: 69% SMM:19-19 + " SMM.19: 77% SMM:19-22 + " SMM.19: 79% SMM:19-22 + " SMM.19: 79% SMM:19-22 + " SMM.19: 80% SMM:19-22 + " SMM.19: 81% SMM:19-23 + " SMM.19: 81% SMM:19-23 + " SMM.19: 81% SMM:19-23 + " SMM.19: 83% SMM:19-23 + " SMM.19: 92% SMM:19-25 +register, target SMM.19: 68% SMM:19-19 + " SMM.19: 83% SMM:19-23 + " SMM.19: 83% SMM:19-23 +register allocation SMM.19: 50% SMM:19-14 + " SMM.19: 59% SMM:19-17 + " SMM.19: 66% SMM:19-19 + " SMM.19: 67% SMM:19-19 + " SMM.19: 70% SMM:19-20 + " SMM.19: 82% SMM:19-23 + " SMM.19: 83% SMM:19-23 + " SMM.19: 91% SMM:19-25 + " SMM.19: 97% SMM:19-27 +register declaration[s] SMM.19: 25% SMM:19-8 +register name[s] ADB.1: 20% ADB(1)-2 + " ADB.1: 21% ADB(1)-2 + " ADB.1: 22% ADB(1)-2 + " SMM.19: 9% SMM:19-3 + " SMM.19: 50% SMM:19-14 + " USD.20: 94% USD:20-7 + " USD.20: 94% USD:20-7 + " USD.24: 52% USD:24-17 +register name[s], list of -ms macros and USD.20: 89% USD:20-7 +register number[s] SMM.19: 26% SMM:19-8 + " SMM.19: 40% SMM:19-11 + " SMM.19: 49% SMM:19-14 + " SMM.19: 50% SMM:19-14 + " SMM.19: 50% SMM:19-14 + " SMM.19: 61% SMM:19-17 + " SMM.19: 73% SMM:19-20 + " SMM.19: 82% SMM:19-23 + " SMM.19: 82% SMM:19-23 + " SMM.19: 90% SMM:19-25 +register pair[s] SMM.19: 54% SMM:19-15 + " SMM.19: 68% SMM:19-19 + " SMM.19: 77% SMM:19-22 + " SMM.19: 78% SMM:19-22 + " SMM.19: 79% SMM:19-22 +Register variable[s] SMM.13: 54% SMM:13-19 + " SMM.19: 7% SMM:19-3 + " SMM.19: 26% SMM:19-8 + " SMM.19: 42% SMM:19-12 + " SMM.19: 42% SMM:19-12 + " SMM.19: 42% SMM:19-12 + " SMM.19: 49% SMM:19-14 + " DBX.5: 10% DBX(5)-1 +Regular expression[s] USD.17: 22% USD:17-10 + " USD.17: 80% USD:17-38 + " AWK.1: 55% AWK(1)-1 + " ED.1: 8% ED(1)-2 + " EXPR.1: 58% EXPR(1)-1 + " GREP.1: 11% GREP(1)-1 + " LEX.1: 18% LEX(1)-1 + " MORE.1: 35% MORE(1)-1 + " PICK.N: 10% PICK(1)-1 + " SED.1: 73% SED(1)-2 + " USD.12: 84% USD:12-9 + " USD.13: 93% USD:13-15 + " USD.15: 17% USD:15-5 + " USD.15: 68% USD:15-19 + " USD.16: 68% USD:16-13 + " USD.18: 9% USD:18-1 + " USD.19: 30% USD:19-3 +regular expression handler REGEX.3: 4% REGEX(3)-1 +regular expression summary USD.16: 71% USD:16-14 +regular expression[s] PS1.16: 0% PS1:16-1 +Regular expressions in Lex PS1.16: 94% PS1:16-12 +REJECT PS1.16: 57% PS1:16-7 + " PS1.16: 57% PS1:16-7 + " PS1.16: 58% PS1:16-7 + " PS1.16: 58% PS1:16-8 + " PS1.16: 59% PS1:16-8 + " PS1.16: 60% PS1:16-8 + " PS1.16: 60% PS1:16-8 + " PS1.16: 96% PS1:16-13 + " PS1.16: 96% PS1:16-13 + " PS1.16: 56% PS1:16-7 +rehash command USD.04: 50% USD:4-23 +rehash shell command CSH.1: 67% CSH(1)-14 +related file[s], maintaining a group of USD.04: 53% USD:4-25 +relation, create - create a new PS2.10: 9% PS2:10-11 +relation, database PS2.10: 2% PS2:10-4 + " PS2.10: 2% PS2:10-4 + " PS2.10: 63% PS2:10-55 + " PS2.10: 67% PS2:10-58 +relation, destroy - destroy existing PS2.10: 11% PS2:10-15 +relation, emp PS2.10: 9% PS2:10-9 + " PS2.10: 12% PS2:10-15 + " PS2.10: 25% PS2:10-24 + " PS2.10: 25% PS2:10-24 + " PS2.10: 33% PS2:10-31 + " PS2.10: 50% PS2:10-43 +relation, index - create a secondary index on an existing PS2.10: 14% PS2:10-16 +relational database JOIN.1: 3% JOIN(1)-1 +relational expression[s] AWK.1: 56% AWK(1)-1 + " AWK.1: 61% AWK(1)-2 + " AWK.1: 65% AWK(1)-2 + " AWK.1: 70% AWK(1)-2 + " SMM.19: 68% SMM:19-19 + " USD.19: 37% USD:19-3 + " USD.19: 38% USD:19-3 +Relational Operator[s] STRUCT.1: 18% STRUCT(1)-1 + " USD.06: 44% USD:6-5 + " USD.19: 3% USD:19-1 + " USD.19: 38% USD:19-3 + " USD.19: 68% USD:19-6 + " USD.25: 66% USD:25-10 + " USD.25: 67% USD:25-10 +relations, integrities PS2.10: 71% PS2:10-62 + " PS2.10: 72% PS2:10-62 + " PS2.10: 72% PS2:10-62 +relation, modify - convert the storage structure of a PS2.10: 22% PS2:10-22 +relation, permit - add permissions to a PS2.10: 32% PS2:10-30 +relation, primary PS2.10: 12% PS2:10-15 + " PS2.10: 14% PS2:10-17 + " PS2.10: 14% PS2:10-17 + " PS2.10: 70% PS2:10-60 + " PS2.10: 70% PS2:10-60 + " PS2.10: 70% PS2:10-60 +relation[s], print PS2.10: 1% PS2:10-3 + " PS2.10: 33% PS2:10-30 + " PS2.10: 67% PS2:10-58 +relation, print - print PS2.10: 33% PS2:10-30 +relation[s], printr - print PS2.10: 67% PS2:10-58 +relation[s], purge - destroy all expired and temporary PS2.10: 67% PS2:10-59 +relation, range - declare a variable to range over a PS2.10: 47% PS2:10-40 +relation, replace - replace values of domains in a PS2.10: 47% PS2:10-41 +relation, retrieve - retrieve tuples from a PS2.10: 48% PS2:10-42 +relation, view - define a virtual PS2.10: 50% PS2:10-44 +relation name[s] PS2.10: 10% PS2:10-13 + " PS2.10: 48% PS2:10-41 + " PS2.10: 51% PS2:10-45 + " PS2.10: 52% PS2:10-46 + " PS2.10: 74% PS2:10-65 +Relational Operator[s] PS1.01: 32% PS1:1-10 + " PS1.01: 33% PS1:1-10 + " PS2.06: 35% PS2:6-13 + " PS2.06: 35% PS2:6-13 + " PS2.10: 85% PS2:10-77 +relative path name[s] PS1.07a: 41% PS1:7-10 + " PS1.06: 57% PS1:6-27 +relative pathname[s] SMM.14: 87% SMM:14-13 + " USD.04: 69% USD:4-34 + " USD.04: 93% USD:4-42 + " USD.04: 93% USD:4-42 +Relative size change[s] USD.25: 12% USD:25-3 + " USD.25: 12% USD:25-3 +release blocked signal[s] SIGPAUSE.2: 8% SIGPAUSE(2)-1 +release[s], Creating new PS1.14: 37% PS1:14-5 +release a lock PS1.06: 21% PS1:6-12 +release and configuration control PS1.13: 5% PS1:13-1 +release number PS1.14: 37% PS1:14-5 + " PS1.14: 38% PS1:14-6 + " PS1.14: 62% PS1:14-9 + " PS1.14: 99% PS1:14-15 +released paper format USD.20: 68% USD:20-5 +reliable datagram[s] PS1.06: 74% PS1:6-33 +reliable delivery GETSOCKOPT.2: 62% GETSOCKOPT(2)-2 +reliably-delivered message PS1.06: 74% PS1:6-33 +relocatable PS1.05: 50% PS1:5-8 +Remote login client code PS1.08: 42% PS1:8-16 +relocation bits LD.1: 7% LD(1)-1 + " LD.1: 62% LD(1)-2 + " LD.1: 67% LD(1)-2 + " STRIP.1: 16% STRIP(1)-1 + " STRIP.1: 37% STRIP(1)-1 +relocation information A_OUT.5: 19% A.OUT(5)-1 + " A_OUT.5: 83% A.OUT(5)-3 + " A_OUT.5: 87% A.OUT(5)-3 + " A_OUT.5: 93% A.OUT(5)-3 +remap USD.16: 90% USD:16-17 +remote - remote host description file REMOTE.5: 1% REMOTE(5)-1 +remote command REXEC.3: 3% REXEC(3)-1 +remote diagnosis CONS.4: 61% CONS(4)-1 +REMOTE environment variable TIP.1C: 95% unknown +remote execution REXECD.8C: 6% REXECD(8C)-1 + " RSHD.8C: 5% RSHD(8C)-1 +remote file copy RCP.1C: 2% RCP(1C)-1 +remote file distribution RDIST.1: 0% RDIST(1)-1 +remote file name RCP.1C: 13% RCP(1C)-1 +remote host REMOTE.5: 1% REMOTE(5)-1 +remote hosts, description of HIER.7: 21% HIER(7)-2 +remote host phone number PHONES.5: 5% PHONES(5)-1 +remote login RLOGIND.8C: 7% RLOGIND(8C)-1 +remote login protocol PS1.08: 48% PS1:8-19 + " PS1.08: 49% PS1:8-20 + " PS1.08: 50% PS1:8-20 +remote login to IBM VM/CM, tn3270 - full-screen TN3270.1: 1% TN3270(1)-1 +remote machine FINGER.1: 47% FINGER(1)-1 + " FTP.1C: 20% FTP(1C)-2 +remote magtape protocol RMT.8C: 1% RMT(8C)-1 +Remote Master Site Message SMM.22: 86% SMM:22-9 +Remote printer[s] SMM.06: 43% SMM:6-4 +remote tar command[s] TAR.1: 76% TAR(1)-2 +remote troff commands DEROFF.1: 5% DEROFF(1)-1 +remote user information FINGERD.8C: 3% FINGERD(8C)-1 +removable file system[s] MOUNT.2: 6% MOUNT(2)-1 + " MOUNT.2: 26% MOUNT(2)-1 + " MOUNT.8: 16% MOUNT(8)-1 + " MOUNT.8: 38% MOUNT(8)-1 +Removal of a file RM.1: 21% RM(1)-1 +Remove SMM.05: 77% SMM:5-17 +removable volume PS2.01: 21% PS2:1-4 + " PS2.01: 21% PS2:1-4 + " PS2.01: 21% PS2:1-4 + " PS2.01: 23% PS2:1-4 +removal, File, device, and portal PS1.06: 63% PS1:6-29 +remove aliases USD.04: 52% USD:4-24 +remove directory entry UNLINK.2: 3% UNLINK(2)-1 +remove environment variable[s] USD.04: 52% USD:4-24 +remove eqn commands DEROFF.1: 7% DEROFF(1)-1 +remove files SMM.06: 26% SMM:6-3 +remove jobs ATRM.1: 6% ATRM(1)-1 + " LPRM.1: 2% LPRM(1)-1 + " SMM.06: 16% SMM:6-2 + " SMM.06: 21% SMM:6-2 +remove message[s] MH.N: 39% MH(1)-1 + " RMM.N: 2% RMM(1)-1 + " USD.08: 51% USD:8-61 +remove nroff commands DEROFF.1: 5% DEROFF(1)-1 +Remove register USD.24: 54% USD:24-18 +Remove request, macro, or string USD.24: 50% USD:24-16 +remove tbl commands DEROFF.1: 5% DEROFF(1)-1 +removing a directory RM.1: 53% RM(1)-1 +Removing a File USD.13: 70% USD:13-12 +removing a subtree RM.1: 61% RM(1)-1 +removing columns COLRM.1: 10% +removing old files FIND.1: 89% +removing users FIND.1: 38% FIND(1)-1 +remque INSQUE.3: 9% INSQUE(3)-1 +Rename FTP.1C: 59% FTP(1C)-5 + " SMM.11: 62% SMM:11-9 + " STAT.2: 49% STAT(2)-2 + " SMM.12A: 58% SMM:12-13 +rename - change the name of a file RENAME.2: 1% RENAME(2)-1 +rename - rename a file RENAME.3F: 7% unknown +rename call INTRO.2: 60% INTRO(2)-5 + " SMM.14: 90% SMM:14-13 +Rename request, macro, or string USD.24: 50% USD:24-17 +rename(oldname, newname) PS1.06: 67% PS1:6-30 +rename-buffer USD.17: 89% USD:17-43 +renaming directory[s] SMM.14: 90% SMM:14-13 +renaming files and directory[s] MV.1: 13% MV(1)-1 +renaming, Links and PS1.06: 66% PS1:6-30 +renaming of file system resident object[s] PS1.06: 67% PS1:6-30 +renice - alter priority of running processes RENICE.8: 2% RENICE(8)-1 +repair corrupted file system[s] SMM.05: 1% SMM:5-2 +repeat command[s] USD.04: 93% USD:4-43 + " USD.04: 50% USD:4-23 + " USD.15: 85% USD:15-24 + " USD.15: 88% USD:15-25 + " USD.15: 96% USD:15-27 +repeat count[s] ADB.1: 37% ADB(1)-3 + " USD.17: 26% USD:17-12 +repeat form[s] PS2.09: 28% PS2:9-53 + " PS2.09: 28% PS2:9-53 + " PS2.09: 28% PS2:9-54 +Repeat Statement PS2.06: 53% PS2:6-19 + " PS2.06: 53% PS2:6-19 + " PS2.06: 53% PS2:6-19 +repeat shell command CSH.1: 67% CSH(1)-14 +Repeat-By BUGFILER.8: 43% BUGFILER(8)-1 + " SMM.12A: 47% SMM:12-11 +repeated line[s] UNIQ.1: 5% unknown +Repeated Search[s] USD.13: 44% USD:13-8 +repeating commands CSH.1: 15% CSH(1)-3 +repetition character USD.12: 86% USD:12-9 +repetition count[s] USD.17: 11% USD:17-5 + " USD.15: 62% USD:15-18 +repl - reply to a message REPL.N: 0% REPL(1)-1 + " USD.08: 47% USD:8-57 +repl command[s] SCAN.N: 20% SCAN(1)-1 + " USD.08: 51% USD:8-62 + " USD.08: 83% USD:8-102 + " USD.08: 85% USD:8-104 +replace - replace values of domains in a relation PS2.10: 47% PS2:10-41 +replace-in-region USD.17: 89% USD:17-43 +replace-string (ESC R) USD.17: 89% USD:17-43 +Replacement Command[s] USD.17: 23% USD:17-10 +replacement pattern[s] USD.14: 78% USD:14-19 + " USD.16: 68% USD:16-13 + " USD.16: 71% USD:16-13 + " USD.16: 76% USD:16-14 + " USD.16: 76% USD:16-14 + " USD.16: 76% USD:16-14 + " USD.16: 76% USD:16-14 + " USD.16: 77% USD:16-14 + " USD.16: 86% USD:16-16 +Replacement sector[s] BAD144.8: 15% BAD144(8)-1 + " BAD144.8: 21% BAD144(8)-1 + " BAD144.8: 24% BAD144(8)-1 + " BAD144.8: 30% BAD144(8)-1 + " BAD144.8: 66% BAD144(8)-1 + " BAD144.8: 83% BAD144(8)-2 + " SMM.12A: 81% SMM:12-19 +replacement text M4.1: 34% M4(1)-1 + " PS1.17: 47% PS1:17-3 + " PS2.10: 16% PS2:10-19 + " PS2.10: 19% PS2:10-21 + " PS2.10: 19% PS2:10-21 + " USD.12: 91% USD:12-10 + " USD.13: 33% USD:13-6 +replacing your kernel SMM.01: 25% SMM:1-18 +replcomp[s] REPL.N: 23% unknown + " USD.08: 47% USD:8-57 +Replied: MH-MAIL.N: 93% MH-MAIL(5)-3 + " USD.08: 69% USD:8-84 +Reply MAIL.1: 30% MAIL(1)-2 + " MAIL.1: 30% MAIL(1)-2 + " USD.07: 9% USD:7-3 + " USD.07: 12% USD:7-4 + " SMM.12A: 38% SMM:12-9 +reply command MAIL.1: 13% MAIL(1)-1 + " USD.07: 9% USD:7-3 + " USD.07: 11% USD:7-4 + " USD.07: 12% USD:7-4 + " USD.07: 42% USD:7-11 + " USD.07: 52% USD:7-13 + " USD.09: 23% USD:9-3 +reply template REPL.N: 7% REPL(1)-1 + " REPL.N: 63% REPL(1)-2 + " REPL.N: 75% REPL(1)-2 + " REPL.N: 91% REPL(1)-3 + " REPL.N: 94% REPL(1)-3 + " USD.08: 47% USD:8-57 + " USD.08: 49% USD:8-58 + " USD.08: 49% USD:8-58 + " USD.08: 49% USD:8-59 + " USD.08: 50% USD:8-59 +Reply-To BUGFILER.8: 95% BUGFILER(8)-2 + " MH-MAIL.N: 60% MH-MAIL(5)-2 + " MHOOK.N: 26% MHOOK(1)-2 + " REPL.N: 12% REPL(1)-1 + " SMM.10: 15% SMM:10-4 + " USD.08: 32% USD:8-36 + " USD.08: 47% USD:8-57 + " USD.08: 68% USD:8-83 + " USD.08: 79% USD:8-97 +Replyall SMM.12A: 38% SMM:12-9 + " MAIL.1: 88% MAIL(1)-6 +replying to mail MAIL.1: 13% MAIL(1)-1 +Report USD.16: 91% USD:16-17 +report[s], Bug BUGFILER.8: 30% BUGFILER(8)-1 + " BUGFILER.8: 61% BUGFILER(8)-1 + " SENDBUG.1: 17% SENDBUG(1)-1 + " SENDBUG.1: 27% SENDBUG(1)-1 + " USD.08: 92% USD:8-112 + " USD.09: 6% USD:9-1 + " USD.09: 81% USD:9-10 +report[s], technical USD.31: 40% USD:31-7 + " USD.31: 40% USD:31-7 +report generation USD.19: 80% USD:19-6 +repquota SMM.12A: 90% SMM:12-21 +repquota - summarize quotas for a file system REPQUOTA.8: 7% REPQUOTA(8)-1 +reprint character TTY.4: 26% TTY(4)-3 +reprint line character STTY.1: 95% STTY(1)-3 +Request[s] IMP.4: 60% IMP(4)-1 +REQUEST packet[s] ROUTED.8C: 13% ROUTED(8C)-1 +Resent-Bcc: MH-MAIL.N: 84% MH-MAIL(5)-2 + " USD.08: 68% USD:8-83 + " USD.08: 17% USD:8-18 + " DIST.N: 23% DIST(1)-1 +Resent-cc: MH-MAIL.N: 82% MH-MAIL(5)-2 + " DIST.N: 11% DIST(1)-1 + " DIST.N: 23% DIST(1)-1 + " USD.08: 17% USD:8-18 + " USD.08: 17% USD:8-18 + " USD.08: 68% USD:8-83 +Resent-Date MH-MAIL.N: 79% MH-MAIL(5)-2 +Resent-Date: USD.08: 68% USD:8-83 +Resent-Fcc: MH-MAIL.N: 85% MH-MAIL(5)-2 + " USD.08: 68% USD:8-84 + " USD.08: 17% USD:8-18 + " DIST.N: 24% DIST(1)-1 +Resent-From MH-MAIL.N: 80% MH-MAIL(5)-2 +Resent-From: USD.08: 68% USD:8-83 +Resent-Message-Id: MH-MAIL.N: 88% MH-MAIL(5)-3 + " USD.08: 78% USD:8-96 + " USD.08: 68% USD:8-84 + " POST.N: 62% POST(8)-1 +Resent-To: USD.08: 68% USD:8-84 + " USD.08: 68% USD:8-84 + " USD.08: 68% USD:8-83 + " USD.08: 68% USD:8-83 + " USD.08: 68% USD:8-83 + " USD.08: 17% USD:8-18 + " USD.08: 17% USD:8-18 + " MH-MAIL.N: 90% MH-MAIL(5)-3 + " MH-MAIL.N: 86% MH-MAIL(5)-2 + " MH-MAIL.N: 85% MH-MAIL(5)-2 + " MH-MAIL.N: 83% MH-MAIL(5)-2 + " MH-MAIL.N: 81% MH-MAIL(5)-2 + " DIST.N: 22% DIST(1)-1 + " DIST.N: 11% DIST(1)-1 +Resent: MH-MAIL.N: 91% MH-MAIL(5)-3 + " USD.08: 68% USD:8-84 +request[s], asynchronous notification of I/O PS1.08: 65% PS1:8-26 +request[s], stop PS1.11a: 47% PS1:11-3 + " PS1.11a: 81% PS1:11-6 + " PS1.11a: 81% PS1:11-6 +reserved word[s] PS1.15: 70% PS1:15-20 +reset[s], UNIBUS HK.4: 80% HK(4)-2 + " SMM.13: 50% SMM:13-18 + " SMM.13: 53% SMM:13-19 + " SMM.13: 89% SMM:13-30 + " SMM.13: 98% SMM:13-33 + " SMM.15: 44% SMM:15-14 + " SMM.15: 45% SMM:15-14 + " UP.4: 88% UP(4)-3 +resetting tty stat[s] PS1.18: 48% PS1:18-14 + " PS1.18: 48% PS1:18-14 +resetty() PS1.18: 59% PS1:18-17 +resident set size GETRLIMIT.2: 32% GETRLIMIT(2)-1 + " GETRUSAGE.2: 41% GETRUSAGE(2)-1 +resident, information about whether pages are core PS1.06: 20% PS1:6-12 +residual count USD.24: 37% USD:24-13 +resolution, output device USD.24: 34% USD:24-12 + " SMM.12A: 42% SMM:12-10 +resolution[s], vertical SMM.20: 14% SMM:20-2 + " SMM.20: 20% SMM:20-2 + " SMM.20: 38% SMM:20-4 + " USD.24: 19% USD:24-8 + " USD.24: 19% USD:24-8 + " USD.24: 88% USD:24-29 +resolver configuration file RESOLVER.5: 7% RESOLVER(5)-1 + " RESOLVER.5: 2% RESOLVER(5)-1 +resolver routines RESOLVER.3: 2% RESOLVER(3)-1 + " RESOLVER.3: 21% RESOLVER(3)-1 + " RESOLVER.5: 11% RESOLVER(5)-1 + " SMM.11: 5% SMM:11-2 + " SMM.11: 91% SMM:11-14 +resource control[s] PS1.06: 0% + " PS1.06: 24% PS1:6-13 + " PS1.06: 43% PS1:6-20 + " PS1.06: 97% PS1:6-42 +Resource limit[s] PS1.06: 2% PS1:6-2 + " PS1.06: 46% PS1:6-22 + " PS1.06: 26% PS1:6-13 +resources consumed PS1.06: 9% PS1:6-7 +resources used by a process PS1.06: 45% PS1:6-21 +resources, system GETRLIMIT.2: 9% GETRLIMIT(2)-1 +resource[s], UNIBUS (see instead UNIBUS) HY.4: 30% HY(4)-1 + " SMM.02: 69% SMM:2-21 + " SMM.02: 72% SMM:2-22 + " SMM.13: 87% SMM:13-29 + " SMM.15: 41% SMM:15-13 +resource consumption GETRLIMIT.2: 2% GETRLIMIT(2)-1 +resource consumption, vlimit - control maximum system VLIMIT.3C: 2% unknown +resource control[s] SMM.01: 0% SMM:1-1 + " SMM.01: 82% SMM:1-50 + " SMM.01: 82% SMM:1-50 +resource limit[s] EXECVE.2: 50% EXECVE(2)-1 + " GETRLIMIT.2: 39% GETRLIMIT(2)-1 + " GETRLIMIT.2: 46% GETRLIMIT(2)-1 + " GETRLIMIT.2: 85% GETRLIMIT(2)-2 + " SMM.13: 20% SMM:13-8 + " SMM.13: 47% SMM:13-16 + " CSH.1: 60% CSH(1)-13 + " CSH.1: 74% CSH(1)-16 +resource record[s] SMM.11: 38% SMM:11-6 + " SMM.11: 39% SMM:11-6 + " SMM.11: 41% SMM:11-6 + " SMM.11: 44% SMM:11-6 + " SMM.11: 51% SMM:11-7 + " SMM.11: 59% SMM:11-8 + " SMM.11: 59% SMM:11-8 + " SMM.11: 63% SMM:11-9 +resource usage[s] EXECVE.2: 49% EXECVE(2)-1 + " SMM.01: 83% SMM:1-50 + " SMM.14: 1% SMM:14-2 +resource utilization GETRUSAGE.2: 2% GETRUSAGE(2)-1 + " VTIMES.3C: 3% VTIMES(3C)-1 + " FORK.2: 50% FORK(2)-1 +respond to the current message MH.N: 41% MH(1)-1 +response packet[s] ROUTED.8C: 14% ROUTED(8C)-1 + " ROUTED.8C: 16% ROUTED(8C)-1 + " ROUTED.8C: 19% ROUTED(8C)-1 + " ROUTED.8C: 31% ROUTED(8C)-1 + " XNSROUTED.8C: 25% XNSROUTED(8C)-1 + " XNSROUTED.8C: 30% XNSROUTED(8C)-1 + " XNSROUTED.8C: 36% XNSROUTED(8C)-1 + " XNSROUTED.8C: 60% XNSROUTED(8C)-1 +restart of system call[s] PS1.06: 35% PS1:6-17 +restarting system call[s] PS1.06: 28% PS1:6-14 + " SIGINTERRUPT.3: 11% SIGINTERRUPT(3) +restoration of complete subtree[s] RESTORE.8: 65% RESTORE(8)-2 +restore - incremental file system restore RESTORE.8: 0% RESTORE(8)-1 +restore - recover from an INGRES or UNIX crash PS2.10: 68% PS2:10-60 +Restoring Old Version[s] PS1.14: 39% PS1:14-6 +restore a complete dump tape RESTORE.8: 9% RESTORE(8)-1 +restore an incremental dump tape RESTORE.8: 9% RESTORE(8)-1 +Restore spacing USD.24: 41% USD:24-14 +restoresymtab RESTORE.8: 13% RESTORE(8)-1 +restoring the root file system SMM.01: 18% SMM:1-13 +Retry SMM.11: 48% SMM:11-7 + " SMM.11: 75% SMM:11-11 + " SMM.11: 77% SMM:11-12 + " SMM.11: 81% SMM:11-13 +RETRIES, MAX L_SYS.5: 39% L.SYS(5)-2 + " L_SYS.5: 40% L.SYS(5)-2 + " SMM.09: 68% SMM:9-15 + " SMM.09: 68% SMM:9-15 +restricted port number PS1.08: 47% PS1:8-19 +retrieve - retrieve tuples from a relation PS2.10: 48% PS2:10-42 +retrieve command[s] PS2.10: 57% PS2:10-50 + " PS2.10: 64% PS2:10-56 + " PS2.10: 86% PS2:10-77 +retrieve permission PS2.10: 9% PS2:10-9 + " PS2.10: 49% PS2:10-42 + " PS2.10: 67% PS2:10-58 +retry time L_SYS.5: 39% L.SYS(5)-2 + " SMM.09: 45% SMM:9-10 + " SMM.09: 68% SMM:9-15 +return addresses MAILADDR.7: 66% MAILADDR(7)-2 +return code[s] INTRO.1: 91% INTRO(1)-1 + " INTRO.2: 3% INTRO(2)-1 + " USD.03: 1% USD:3-1 + " USD.03: 36% USD:3-9 + " USD.03: 36% USD:3-9 + " USD.08: 34% USD:8-38 +return from signal SIGRETURN.2: 4% SIGRETURN(2)-1 +Return Statement[s] SMM.19: 36% SMM:19-10 + " USD.06: 41% USD:6-5 + " USD.06: 73% USD:6-10 + " USD.06: 74% USD:6-10 + " USD.06: 74% USD:6-10 +Return upward only to a marked vertical place USD.24: 32% USD:24-12 +Return-Receipt-To: SMM.07A: 22% SMM:07-12 +return[s], alternate PS1.02: 40% PS1:2-14 + " PS1.02: 53% PS1:2-18 + " PS1.02: 53% PS1:2-18 + " PS1.02: 64% PS1:2-21 + " PS1.02: 64% PS1:2-21 +return[s], Error PS1.06: 53% PS1:6-25 + " PS2.01: 28% PS2:1-5 + " PS2.01: 56% PS2:1-8 + " PS2.10: 82% PS2:10-74 + " PS2.10: 82% PS2:10-75 +Return Statement[s] PS1.01: 68% PS1:1-23 + " PS1.01: 68% PS1:1-23 + " PS1.02: 64% PS1:2-21 + " PS2.06: 26% PS2:6-10 + " PS2.06: 68% PS2:6-23 + " PS2.08: 58% PS2:8-8 +return value[s] PS1.01: 89% PS1:1-30 + " PS1.02: 37% PS1:2-13 + " PS1.02: 39% PS1:2-13 + " PS1.02: 39% PS1:2-13 + " PS1.08: 64% PS1:8-26 + " PS1.09: 28% PS1:9-3 + " PS1.09: 34% PS1:9-4 + " PS1.09: 36% PS1:9-4 + " PS2.03: 21% PS2:3-4 + " PS2.03: 30% PS2:3-5 + " PS2.03: 62% PS2:3-10 + " PS2.03: 64% PS2:3-10 + " PS2.06: 69% PS2:6-24 + " PS2.06: 76% PS2:6-26 + " PS2.09: 85% PS2:9-136 +returned value PS1.01: 68% PS1:1-23 + " PS1.02: 40% PS1:2-14 + " PS2.01: 33% PS2:1-5 + " PS2.01: 53% PS2:1-8 + " PS2.03: 30% PS2:3-5 + " PS2.09: 83% PS2:9-133 +returning, Marking and USD.15: 40% USD:15-12 +rev - reverse lines of a file REV.1: 15% REV(1)-1 +reverse direction USD.12: 99% USD:12-10 + " USD.13: 45% USD:13-8 + " USD.14: 77% USD:14-19 + " USD.15: 91% USD:15-25 +reverse line feed[s] COL.1: 11% COL(1)-1 + " COL.1: 85% COL(1)-1 + " COLCRT.1: 12% COLCRT(1)-1 + " REV.1: 17% REV(1)-1 + " COLCRT.1: 11% COLCRT(1)-1 +reverse line motion[s] COL.1: 42% COL(1)-1 + " MS.7: 5% MS(7)-1 + " USD.26: 92% USD:26-7 +reverse order AWK.1: 89% AWK(1)-2 + " LAST.1: 70% LAST(1)-1 + " NM.1: 88% NM(1)-1 + " SCAN.N: 73% SCAN(1)-2 + " USD.04: 10% USD:4-5 + " USD.09: 43% USD:9-5 + " USD.12: 66% USD:12-7 + " USD.19: 20% USD:19-2 +reverse Polish notation USD.05: 3% USD:5-1 +reverse the effects of the last command USD.14: 60% USD:14-15 +reverse video SYSLINE.1: 55% SYSLINE(1)-1 + " TERMCAP.5: 61% TERMCAP(5)-9 + " TERMCAP.5: 62% TERMCAP(5)-9 + " TERMCAP.5: 64% TERMCAP(5)-10 + " USD.17: 41% USD:17-18 + " USD.17: 81% USD:17-38 + " WINDOW.1: 8% WINDOW(1)-1 + " WINDOW.1: 16% WINDOW(1)-1 + " WINDOW.1: 20% WINDOW(1)-2 + " WINDOW.1: 74% WINDOW(1)-5 + " WINDOW.1: 75% WINDOW(1)-5 + " WINDOW.1: 95% WINDOW(1)-7 +Revised Version of -m[s] USD.21: 0% USD:21-1 +revision, checked-in CI.N: 36% CI(1)-1 + " CI.N: 71% CI(1)-2 + " CI.N: 73% CI(1)-2 + " PS1.13: 27% PS1:13-5 + " PS1.13: 32% PS1:13-6 + " PS1.13: 33% PS1:13-6 +revision, latest CO.N: 40% CO(1)-2 +revision, lock a RCS.N: 29% RCS(1)-1 +revision[s], ci - check in RCS PS1.13: 21% PS1:13-4 +revision[s], co - check out RCS PS1.13: 37% PS1:13-8 +revision, deposited PS1.13: 26% PS1:13-5 + " PS1.13: 30% PS1:13-6 + " PS1.13: 31% PS1:13-6 + " PS1.13: 31% PS1:13-6 + " PS1.13: 31% PS1:13-6 +revision[s], multiple PS1.13: 1% PS1:13-1 +revisions, RCS CI.N: 0% CI(1)-1 +revision[s], rcsdiff - compare RCS RCSDIFF.N: 3% RCSDIFF(1)-1 +revision, unlock a RCS.N: 34% RCS(1)-1 +Revision Control System (see also RCS)[s] CI.N: 97% CI(1)-3 + " CO.N: 94% CO(1)-3 + " IDENT.N: 86% IDENT(1)-1 + " RCS.N: 97% RCS(1)-2 + " RCSDIFF.N: 90% RCSDIFF(1)-1 + " RCSINTRO.N: 11% RCSINTRO(1)-1 + " RCSINTRO.N: 87% RCSINTRO(1)-1 + " RCSMERGE.N: 89% RCSMERGE(1)-1 + " RLOG.N: 96% RLOG(1)-2 + " SCCSTORCS.N: 67% SCCSTORCS(8)-1 + " CO.N: 0% CO(1)-1 + " RCSDIFF.N: 4% RCSDIFF(1)-1 + " RCSMERGE.N: 3% RCSMERGE(1)-1 +revision number[s] CI.N: 38% CI(1)-1 + " CI.N: 40% CI(1)-1 + " CI.N: 47% CI(1)-2 + " CI.N: 55% CI(1)-2 + " CI.N: 57% CI(1)-2 + " CO.N: 23% CO(1)-1 + " CO.N: 23% CO(1)-1 + " CO.N: 48% CO(1)-2 + " CO.N: 68% CO(1)-2 + " CO.N: 71% CO(1)-3 + " CO.N: 74% CO(1)-3 + " CO.N: 76% CO(1)-3 + " RCS.N: 57% RCS(1)-2 +revision tree RCSFILE.N: 88% RCSFILE(5)-2 +revisions of text RCS.N: 4% unknown +revisions of text files RCSINTRO.N: 16% unknown +revisions, RCS PS1.13: 37% PS1:13-8 + " PS1.13: 73% PS1:13-14 + " PS1.13: 83% PS1:13-18 +revision[s], rcsdiff - compare RCS PS1.13: 73% PS1:13-14 +revision[s], rcsmerge - merge RCS PS1.13: 83% PS1:13-18 +Revision Control System PS1.13: 0% PS1:13-1 + " PS1.13: 0% PS1:13-1 + " PS1.13: 1% PS1:13-1 + " PS1.13: 36% PS1:13-7 + " PS1.13: 55% PS1:13-10 + " PS1.13: 58% PS1:13-11 + " PS1.13: 72% PS1:13-14 + " PS1.13: 76% PS1:13-15 + " PS1.13: 87% PS1:13-19 + " PS1.13: 96% PS1:13-21 + " PS1.13: 99% PS1:13-22 +revision number[s] PS1.13: 4% PS1:13-1 + " PS1.13: 5% PS1:13-2 + " PS1.13: 9% PS1:13-2 + " PS1.13: 27% PS1:13-5 + " PS1.13: 28% PS1:13-5 + " PS1.13: 29% PS1:13-6 + " PS1.13: 30% PS1:13-6 + " PS1.13: 30% PS1:13-6 +rewind FOPEN.3S: 41% FOPEN(3S)-1 + " FSEEK.3S: 6% FSEEK(3S)-1 +rewind a tape TOPEN.3F: 59% TOPEN(3F)-1 +rewind the argument list USD.16: 50% USD:16-10 +Rewind the tape MT.1: 65% unknown +Rewinddir DIRECTORY.3: 68% +rewrite call[s] PS1.04: 60% PS1:4-31 + " PS1.04: 61% PS1:4-31 + " PS1.04: 86% PS1:4-44 + " PS1.04: 87% PS1:4-44 +RFLAG[s] PS1.12: 99% PS1:12-9 + " PS1.12: 68% PS1:12-6 +rewriting rule[s] SMM.16: 57% SMM:16-8 + " SMM.16: 61% SMM:16-8 + " SMM.19: 60% SMM:19-17 + " SMM.19: 62% SMM:19-17 + " SMM.19: 66% SMM:19-18 + " SMM.19: 66% SMM:19-18 + " SMM.19: 66% SMM:19-19 + " SMM.19: 66% SMM:19-19 + " SMM.19: 72% SMM:19-20 + " SMM.19: 73% SMM:19-21 + " SMM.19: 74% SMM:19-21 + " SMM.19: 74% SMM:19-21 + " SMM.19: 74% SMM:19-21 + " SMM.19: 75% SMM:19-21 + " SMM.19: 77% SMM:19-22 + " SMM.19: 91% SMM:19-25 + " SMM.19: 91% SMM:19-25 + " SMM.19: 92% SMM:19-25 + " SMM.07A: 36% SMM:07-17 + " SMM.07A: 36% SMM:07-17 + " SMM.07A: 36% SMM:07-17 + " SMM.07A: 36% SMM:07-17 + " SMM.07A: 37% SMM:07-17 + " SMM.07A: 44% SMM:07-20 + " SMM.07A: 46% SMM:07-21 + " SMM.07A: 60% SMM:07-26 + " SMM.12A: 94% SMM:12-22 +rewriting set[s] SMM.07A: 36% SMM:07-17 + " SMM.07A: 36% SMM:07-17 + " SMM.07A: 36% SMM:07-17 + " SMM.07A: 48% SMM:07-22 + " SMM.07A: 64% SMM:07-27 + " SMM.07A: 64% SMM:07-27 + " SMM.07A: 79% SMM:07-36 +rexec - return stream to a remote command REXEC.3: 2% REXEC(3)-1 +rexecd - remote execution server REXECD.8C: 1% REXECD(8C)-1 +re_comp, re_exec - regular expression handler REGEX.3: 3% REGEX(3)-1 +RFC 733 SMM.16: 48% SMM:16-7 +RFC 810 HTABLE.8: 11% HTABLE(8)-1 +RFC 812: Nicname/Whoi[s] WHOIS.1: 93% WHOIS(1)-1 +RFC 822 SMM.10: 25% SMM:10-7 +RFC 959 FTPD.8C: 41% FTPD(8C)-1 +RFC-822 MH-MAIL.N: 16% MH-MAIL(5)-1 + " USD.08: 67% USD:8-82 +RFC-919 SMM.13: 64% SMM:13-22 + " SMM.01: 64% SMM:1-40 +RFC-934 BURST.N: 44% BURST(1)-2 +RFC-950 SMM.13: 63% SMM:13-22 + " SMM.01: 63% SMM:1-39 +RFC733 SMM.16: 2% SMM:16-1 +RFC733 header[s] SMM.12A: 37% SMM:12-9 +RFC819 SMM.07A: 58% SMM:07-25 + " SMM.07A: 59% SMM:07-25 +RFC821 SENDMAIL.8: 19% SENDMAIL(8)-1 + " SENDMAIL.8: 98% SENDMAIL(8)-4 + " SMM.07A: 75% SMM:07-32 + " SMM.07A: 75% SMM:07-32 + " SMM.07A: 76% SMM:07-32 +RFC822 MAILADDR.7: 99% MAILADDR(7)-3 + " SENDMAIL.8: 98% SENDMAIL(8)-4 + " SMM.07A: 58% SMM:07-25 + " DIST.N: 84% DIST(1)-2 + " MH-MAIL.N: 35% MH-MAIL(5)-1 + " USD.08: 18% USD:8-19 + " USD.08: 67% USD:8-82 + " DP.N: 77% DP(8)-1 + " MH-MAIL.N: 98% MH-MAIL(5)-3 + " POST.N: 86% POST(8)-1 + " USD.08: 69% USD:8-84 + " USD.08: 75% USD:8-91 + " USD.08: 77% USD:8-94 + " USD.08: 78% USD:8-97 + " SMM.16: 2% SMM:16-1 +RFC822 format BUGFILER.8: 31% BUGFILER(8)-1 +RFC822 header[s] SMM.12A: 37% SMM:12-9 +RFC882 NAMED.8: 97% NAMED(8)-2 + " RESOLVER.3: 97% RESOLVER(3)-2 + " SMM.11: 8% SMM:11-2 + " SMM.11: 38% SMM:11-6 + " SMM.11: 96% SMM:11-16 +RFC883 NAMED.8: 5% NAMED(8)-1 + " NAMED.8: 30% NAMED(8)-1 + " NAMED.8: 72% NAMED(8)-2 + " NAMED.8: 97% NAMED(8)-2 + " RESOLVER.3: 97% RESOLVER(3)-2 + " SMM.11: 8% SMM:11-2 + " SMM.11: 97% SMM:11-16 +RFC934 FORW.N: 85% FORW(1)-3 + " USD.08: 14% USD:8-14 + " USD.08: 23% USD:8-25 +RFC959 SMM.12A: 32% SMM:12-8 +RFC973 NAMED.8: 97% NAMED(8)-2 + " RESOLVER.3: 97% RESOLVER(3)-2 + " SMM.11: 8% SMM:11-2 + " SMM.11: 38% SMM:11-6 + " SMM.11: 97% SMM:11-16 +RFC974 NAMED.8: 97% NAMED(8)-2 + " RESOLVER.3: 97% RESOLVER(3)-2 + " SMM.11: 8% SMM:11-2 + " SMM.11: 68% SMM:11-9 + " SMM.11: 98% SMM:11-16 +RH right heading USD.20: 72% USD:20-5 +rights, access PS1.06: 50% PS1:6-24 + " PS1.06: 60% PS1:6-28 + " PS1.06: 60% PS1:6-28 + " PS1.06: 60% PS1:6-28 + " PS1.06: 82% PS1:6-35 + " PS1.06: 82% PS1:6-35 + " PS1.06: 83% PS1:6-36 +Right marginal comment[s] PS1.04: 76% PS1:4-39 + " PS1.04: 77% PS1:4-39 + " PS1.04: 77% PS1:4-40 +right recursive rule[s] PS1.15: 67% PS1:15-19 +Ritchie, D. M. PS2.01: 0% PS2:1-1 + " PS2.01: 98% PS2:1-15 + " PS2.03: 78% PS2:3-12 + " PS2.03: 78% PS2:3-12 + " PS2.03: 79% PS2:3-13 + " PS2.04: 99% PS2:4-10 +Ritchie, Dennis M. PS1.01: 0% + " PS1.17: 0% + " PS2.03: 0% PS2:3-1 + " PS2.05: 0% +rights, access RECV.2: 62% RECV(2)-1 + " RECV.2: 74% RECV(2)-2 + " RECV.2: 77% RECV(2)-2 + " SMM.13: 5% SMM:13-3 + " SMM.13: 5% SMM:13-3 + " SMM.13: 35% SMM:13-13 + " SMM.13: 36% SMM:13-13 + " SMM.13: 39% SMM:13-14 + " SMM.13: 39% SMM:13-14 + " SMM.13: 41% SMM:13-15 + " SMM.13: 41% SMM:13-15 + " SMM.15: 24% SMM:15-8 + " SMM.15: 24% SMM:15-8 + " SMM.15: 25% SMM:15-8 + " SMM.15: 25% SMM:15-8 + " SMM.15: 27% SMM:15-9 + " SMM.15: 28% SMM:15-9 + " SMM.15: 28% SMM:15-9 +right margin[s] USD.20: 64% USD:20-5 +Right quote USD.23: 71% USD:23-9 +right quote, left and USD.22: 97% USD:22-18 +right-adjusted column entry USD.28: 12% USD:28-3 +right-margin USD.17: 89% USD:17-43 +rindex INDEX.3F: 6% INDEX(3F)-1 +rindex - string operation STRING.3: 7% STRING(3)-1 +ring, kill USD.17: 17% USD:17-8 +Ring of Mark[s] USD.17: 13% USD:17-6 +ringing or noisy terminal line INIT.8: 83% INIT(8)-1 +rint - round-to-nearest-integer function FLOOR.3M: 4% FLOOR(3M)-1 +Ritchie, Dennis M. SMM.17: 0% SMM:17-1 +RK06 HK.4: 1% HK(4)-1 +RK06 partitions HK.4: 32% HK(4)-1 +RK07[s] DMF.4: 73% DMF(4)-1 + " DMZ.4: 70% DMZ(4)-1 + " FORMAT.8V: 84% FORMAT(8V)-3 + " REBOOT.8: 52% REBOOT(8)-2 + " REBOOT.8: 53% REBOOT(8)-2 + " REBOOT.8: 58% REBOOT(8)-2 + " SMM.02: 54% SMM:2-16 + " AUTOCONF.4: 34% AUTOCONF(4)-1 + " FORMAT.8V: 81% FORMAT(8V)-3 + " REBOOT.8: 52% REBOOT(8)-2 + " SMM.01: 23% SMM:1-17 + " HK.4: 1% HK(4)-1 + " SMM.01: 7% SMM:1-5 +RL02 ARFF.8V: 71% ARFF(8V)-1 +RL02 disk[s] CRL.4: 30% CRL(4)-1 + " CRL.4: 37% CRL(4)-1 + " CRL.4: 17% CRL(4)-1 +rlimit, struct PS1.06: 47% PS1:6-22 + " PS1.06: 47% PS1:6-22 + " PS1.06: 47% PS1:6-22 +rlog - print log messages and other information about RCS file[s] PS1.13: 88% PS1:13-20 + " RLOG.N: 1% RLOG(1)-1 +rlogin PTY.4: 52% PTY(4)-1 + " SMM.12A: 45% SMM:12-10 +rlogin - remote login RLOGIN.1C: 2% RLOGIN(1C)-1 +rlogind PTY.4: 53% PTY(4)-1 + " SMM.12A: 45% SMM:12-10 + " SMM.12A: 91% SMM:12-21 +rlogind - remote login server RLOGIND.8C: 2% RLOGIND(8C)-1 +rm SMM.12A: 46% SMM:12-11 +rm[s], rmdir - remove (unlink) files or directory RM.1: 3% RM(1)-1 +RM03 BAD144.8: 74% BAD144(8)-2 + " HP.4: 19% HP(4)-1 + " SMM.01: 5% SMM:1-4 + " SMM.01: 42% SMM:1-28 + " SMM.01: 42% SMM:1-28 +RM03 partitions HP.4: 23% HP(4)-2 +RM05 BAD144.8: 74% BAD144(8)-2 + " HP.4: 20% HP(4)-1 + " SMM.01: 5% SMM:1-4 + " SMM.01: 42% SMM:1-28 +RM05 partitions HP.4: 25% HP(4)-2 +RM80[s] HP.4: 20% HP(4)-1 + " SMM.01: 50% SMM:1-32 + " SMM.01: 50% SMM:1-32 + " SMM.01: 50% SMM:1-32 + " SMM.01: 5% SMM:1-4 + " SMM.01: 50% SMM:1-32 + " SMM.01: 50% SMM:1-32 + " BAD144.8: 91% BAD144(8)-2 +RM80 partitions HP.4: 32% HP(4)-2 +rmail - handle remote mail received via uucp RMAIL.1: 9% RMAIL(1)-1 +rmdir SMM.12A: 46% SMM:12-11 +rmdir - remove a directory file RMDIR.2: 2% RMDIR(2)-1 +rmdir(path) PS1.06: 58% PS1:6-27 +rmf - remove folder RMF.N: 1% RMF(1)-1 + " USD.08: 50% USD:8-60 +rmm - remove message[s] RMM.N: 2% RMM(1)-1 + " USD.08: 51% USD:8-61 +rmt SMM.12A: 91% SMM:12-21 +rmt - remote magtape protocol module RMT.8C: 1% RMT(8C)-1 +rn - new interface for reading (or ignoring) news SMM.12A: 99% SMM:12-23 +rnews program SMM.10: 40% SMM:10-12 + " SMM.10: 78% SMM:10-19 + " SMM.10: 78% SMM:10-19 +robots - fight off villainous robot[s] ROBOTS.6: 1% unknown +roffbib USD.29: 3% USD:29-1 +roffbib - run off bibliographic database ROFFBIB.1: 2% ROFFBIB(1)-1 +Rogue USD.33: 8% USD:33-2 + " USD.33: 11% USD:33-2 + " USD.33: 50% USD:33-5 + " USD.33: 92% USD:33-9 + " USD.33: 97% USD:33-9 +rogue - Exploring The Dungeons of Doom ROGUE.6: 2% ROGUE(6)-1 +rogue option[s] USD.33: 80% USD:33-8 +ROGUEOPTS USD.33: 74% USD:33-7 + " USD.33: 78% USD:33-8 + " USD.33: 78% USD:33-8 +Roman, Times USD.22: 85% USD:22-16 + " USD.24: 25% USD:24-9 + " USD.24: 61% USD:24-20 + " USD.24: 95% USD:24-32 + " USD.25: 17% USD:25-3 +Roman font MS.7: 51% MS(7)-2 + " USD.25: 49% USD:25-8 + " USD.27: 83% USD:27-9 + " USD.29: 66% USD:29-7 +roman numeral, .ro Set page number in USD.23: 48% USD:23-6 +roman numeral page numbering USD.21: 37% USD:21-2 +root, mini SMM.01: 3% SMM:1-3 + " SMM.01: 10% SMM:1-7 + " SMM.01: 10% SMM:1-7 + " SMM.01: 15% SMM:1-11 + " SMM.01: 15% SMM:1-11 + " SMM.01: 15% SMM:1-11 + " SMM.01: 16% SMM:1-11 + " SMM.01: 16% SMM:1-11 + " SMM.01: 16% SMM:1-12 + " SMM.01: 16% SMM:1-12 + " SMM.01: 16% SMM:1-12 + " SMM.01: 28% SMM:1-20 + " SMM.01: 85% SMM:1-52 +root, primary SMM.01: 37% SMM:1-24 + " SMM.01: 37% SMM:1-24 + " SMM.01: 37% SMM:1-24 + " SMM.01: 37% SMM:1-24 + " SMM.01: 37% SMM:1-24 + " SMM.01: 37% SMM:1-25 +root, square PS1.02: 13% PS1:2-6 + " PS2.09: 24% PS2:9-46 + " PS2.10: 41% PS2:10-36 +root directory context PS1.06: 57% PS1:6-27 + " PS1.06: 58% PS1:6-27 + " PS1.06: 58% PS1:6-27 +root[s], square DC.1: 56% DC(1)-1 + " EQN.1: 37% EQN(1)-1 + " INTRO.3F: 16% INTRO(3F)-1 + " SQRT.3M: 9% SQRT(3M)-1 + " USD.05: 18% USD:5-2 + " USD.05: 18% USD:5-2 + " USD.05: 61% USD:5-5 + " USD.05: 97% USD:5-7 + " USD.06: 26% USD:6-3 + " USD.06: 74% USD:6-10 + " USD.19: 46% USD:19-4 + " USD.26: 41% USD:26-3 + " USD.27: 31% USD:27-4 + " USD.27: 31% USD:27-4 + " USD.27: 32% USD:27-4 + " USD.27: 32% USD:27-4 +root, user SMM.06: 31% SMM:6-3 + " SMM.10: 15% SMM:10-4 +root device AUTOCONF.4: 32% AUTOCONF(4)-1 + " AUTOCONF.4: 38% AUTOCONF(4)-1 + " SMM.01: 14% SMM:1-10 + " SMM.01: 16% SMM:1-12 + " SMM.01: 17% SMM:1-13 + " SMM.01: 18% SMM:1-13 + " SMM.01: 18% SMM:1-13 + " SMM.01: 20% SMM:1-14 + " SMM.01: 20% SMM:1-14 + " SMM.01: 20% SMM:1-14 + " SMM.01: 98% SMM:1-64 + " SMM.02: 11% SMM:2-4 + " SMM.02: 26% SMM:2-8 + " SMM.02: 80% SMM:2-26 + " SMM.02: 80% SMM:2-26 + " SMM.02: 80% SMM:2-26 + " SMM.02: 80% SMM:2-26 +root directory CHROOT.2: 19% CHROOT(2)-1 + " CHROOT.2: 26% CHROOT(2)-1 + " CHROOT.2: 48% CHROOT(2)-1 + " DIR.5: 94% DIR(5)-2 + " EXECVE.2: 48% EXECVE(2)-1 + " INTRO.2: 81% INTRO(2)-6 + " INTRO.2: 81% INTRO(2)-6 + " INTRO.2: 84% INTRO(2)-6 + " INTRO.2: 85% INTRO(2)-6 + " INTRO.2: 85% INTRO(2)-7 + " MKFS.8: 20% MKFS(8)-1 + " RESTORE.8: 21% RESTORE(8)-1 + " RESTORE.8: 23% RESTORE(8)-1 + " SCCS.1: 64% SCCS(1)-2 + " SMM.05: 38% SMM:5-8 + " USD.01: 46% USD:1-7 + " USD.04: 11% USD:4-6 + " USD.04: 69% USD:4-34 + " USD.04: 90% USD:4-41 + " USD.04: 93% USD:4-43 + " USD.04: 94% USD:4-43 +root file system CONFIG.8: 61% CONFIG(8)-1 + " FSCK.8: 13% FSCK(8)-1 + " FSTAB.5: 43% FSTAB(5)-1 + " HP.4: 63% HP(4)-3 + " ICHECK.8: 38% ICHECK(8)-1 + " ICHECK.8: 97% ICHECK(8)-1 + " INTRO.2: 85% INTRO(2)-7 + " REBOOT.2: 34% REBOOT(2)-1 + " SMM.01: 3% SMM:1-3 + " SMM.01: 6% SMM:1-4 + " SMM.01: 10% SMM:1-7 + " SMM.01: 10% SMM:1-7 + " SMM.01: 15% SMM:1-10 + " SMM.01: 15% SMM:1-10 + " SMM.01: 16% SMM:1-11 + " SMM.01: 18% SMM:1-13 + " SMM.01: 18% SMM:1-13 + " SMM.01: 18% SMM:1-13 + " SMM.01: 18% SMM:1-13 + " SMM.01: 18% SMM:1-13 + " SMM.01: 19% SMM:1-13 + " SMM.01: 19% SMM:1-13 + " SMM.01: 20% SMM:1-14 + " SMM.01: 29% SMM:1-20 + " SMM.01: 29% SMM:1-20 + " SMM.01: 42% SMM:1-28 + " SMM.01: 43% SMM:1-28 + " SMM.01: 44% SMM:1-29 + " SMM.01: 45% SMM:1-29 + " SMM.01: 45% SMM:1-30 + " SMM.01: 50% SMM:1-32 + " SMM.01: 50% SMM:1-32 + " SMM.01: 50% SMM:1-32 + " SMM.01: 77% SMM:1-47 + " SMM.01: 77% SMM:1-47 + " SMM.01: 78% SMM:1-47 + " SMM.01: 78% SMM:1-47 + " SMM.01: 78% SMM:1-47 + " SMM.01: 95% SMM:1-63 + " SMM.01: 97% SMM:1-63 + " SMM.01: 97% SMM:1-64 + " SMM.01: 97% SMM:1-64 + " SMM.01: 97% SMM:1-64 + " SMM.01: 97% SMM:1-64 + " SMM.01: 98% SMM:1-64 + " SMM.01: 98% SMM:1-64 + " SMM.01: 98% SMM:1-64 + " SMM.01: 98% SMM:1-64 + " SMM.01: 98% SMM:1-64 + " SMM.01: 98% SMM:1-64 + " SMM.02: 2% SMM:2-2 + " SMM.02: 2% SMM:2-2 + " SMM.02: 5% SMM:2-3 + " SMM.02: 12% SMM:2-5 + " SMM.02: 15% SMM:2-5 + " SMM.02: 15% SMM:2-5 + " SMM.02: 15% SMM:2-5 + " SMM.02: 24% SMM:2-7 + " SMM.02: 25% SMM:2-7 + " SMM.02: 26% SMM:2-8 + " SMM.02: 26% SMM:2-8 + " SMM.02: 41% SMM:2-12 + " SMM.02: 79% SMM:2-26 + " TUNEFS.8: 92% TUNEFS(8)-1 + " UDA.4: 60% UDA(4)-2 + " UP.4: 57% UP(4)-2 + " AUTOCONF.4: 30% AUTOCONF(4)-1 + " CRASH.8V: 22% CRASH(8V)-1 + " CRASH.8V: 23% CRASH(8V)-1 + " CRASH.8V: 24% CRASH(8V)-1 + " CRASH.8V: 29% CRASH(8V)-1 + " SMM.01: 1% SMM:1-2 + " SMM.01: 1% SMM:1-2 + " SMM.01: 19% SMM:1-14 + " SMM.01: 28% SMM:1-20 + " SMM.01: 88% SMM:1-55 + " SMM.02: 15% SMM:2-5 +root inode FS.5: 55% FS(5)-2 + " FS.5: 56% FS(5)-2 +root name USD.04: 78% USD:4-37 + " USD.04: 79% USD:4-38 +root password SMM.01: 31% SMM:1-21 + " SU.1: 66% SU(1)-1 +ROOTID SMM.10: 5% SMM:10-2 + " SMM.10: 7% SMM:10-2 + " SMM.10: 24% SMM:10-7 + " SMM.10: 76% SMM:10-19 + " SMM.10: 76% SMM:10-19 +rotational layout tables FS.5: 89% FS(5)-3 + " FS.5: 92% FS(5)-3 + " SMM.14: 44% SMM:14-7 + " SMM.14: 56% SMM:14-9 +rotational position[s] FS.5: 70% FS(5)-3 + " FS.5: 71% FS(5)-3 + " SMM.14: 44% SMM:14-7 + " SMM.14: 44% SMM:14-7 + " SMM.14: 44% SMM:14-7 + " SMM.14: 44% SMM:14-7 + " SMM.14: 45% SMM:14-7 + " SMM.14: 45% SMM:14-7 +rotationally optimal block[s] SMM.14: 44% SMM:14-7 +rounding mode[s] FLOOR.3M: 61% FLOOR(3M)-1 + " SQRT.3M: 70% SQRT(3M)-1 + " FLOOR.3M: 39% FLOOR(3M)-1 +Roundoff ASINH.3M: 39% ASINH(3M)-1 + " EXP.3M: 16% EXP(3M)-1 + " HYPOT.3M: 32% HYPOT(3M)-1 + " SINH.3M: 52% SINH(3M)-1 + " SQRT.3M: 46% SQRT(3M)-1 +ROUTE SMM.12A: 91% SMM:12-21 +route, add a ROUTE.8C: 11% ROUTE(8C)-1 +route, default SMM.12A: 92% SMM:12-21 +route, delete a ROUTE.8C: 12% ROUTE(8C)-1 +routes, multiple INTRO.4N: 64% INTRO(4N)-2 + " SMM.15: 74% SMM:15-21 + " SMM.15: 74% SMM:15-21 +route[s], wildcard INTRO.4N: 49% INTRO(4N)-2 + " INTRO.4N: 67% INTRO(4N)-3 + " INTRO.4N: 69% INTRO(4N)-3 + " SMM.01: 65% SMM:1-40 +route - manually manipulate the routing table[s] ROUTE.8C: 1% ROUTE(8C)-1 +routed ROUTE.8C: 9% ROUTE(8C)-1 + " SMM.12A: 91% SMM:12-21 +routed - network routing daemon ROUTED.8C: 0% ROUTED(8C)-1 +router[s], internetwork ROUTED.8C: 7% ROUTED(8C)-1 + " ROUTED.8C: 24% ROUTED(8C)-1 + " ROUTED.8C: 36% ROUTED(8C)-1 + " ROUTED.8C: 46% ROUTED(8C)-2 + " ROUTED.8C: 50% ROUTED(8C)-2 + " ROUTED.8C: 84% ROUTED(8C)-2 + " XNSROUTED.8C: 47% XNSROUTED(8C)-1 + " XNSROUTED.8C: 74% XNSROUTED(8C)-1 + " XNSROUTED.8C: 79% XNSROUTED(8C)-1 + " SPP.4P: 91% SPP(4P)-2 +Router, Internetwork Mail SENDMAIL.8: 98% SENDMAIL(8)-4 + " SMM.16: 0% SMM:16-1 + " SMM.16: 7% SMM:16-1 + " SMM.16: 7% SMM:16-2 + " SMM.16: 17% SMM:16-2 + " SMM.16: 23% SMM:16-4 + " SMM.16: 31% SMM:16-4 + " SMM.16: 39% SMM:16-6 + " SMM.16: 46% SMM:16-6 + " SMM.16: 54% SMM:16-8 + " SMM.16: 61% SMM:16-8 + " SMM.16: 69% SMM:16-10 + " SMM.16: 77% SMM:16-10 +routine[s], C SMM.12A: 71% SMM:12-16 +routine[s], I/O PS1.18: 11% PS1:18-4 +routine[s], compatibility INTRO.3: 9% INTRO(3)-1 +routine[s], ctlinput SMM.13: 69% SMM:13-24 + " SMM.13: 79% SMM:13-27 + " SMM.13: 85% SMM:13-29 +routine[s], ctloutput SMM.13: 67% SMM:13-23 + " SMM.13: 69% SMM:13-24 + " SMM.15: 58% SMM:15-17 +routines, Fortran library SMM.12A: 61% SMM:12-14 + " SMM.12A: 61% SMM:12-14 +routines, host table lookup SMM.01: 33% SMM:1-22 + " SMM.11: 4% SMM:11-2 + " SMM.11: 10% SMM:11-2 +routine[s], I/O STDIO.3S: 50% STDIO(3S)-1 +routines, interface SMM.15: 95% SMM:15-26 +routine[s], library INDEX.3F: 65% INDEX(3F)-1 + " SMM.12A: 30% SMM:12-7 +routines, network library HTABLE.8: 12% HTABLE(8)-1 + " SMM.01: 68% SMM:1-41 +routine, probe SMM.02: 57% SMM:2-17 + " SMM.02: 58% SMM:2-17 + " SMM.02: 58% SMM:2-17 + " SMM.02: 58% SMM:2-18 + " SMM.02: 59% SMM:2-18 + " SMM.02: 59% SMM:2-18 + " SMM.02: 60% SMM:2-18 + " SMM.02: 73% SMM:2-23 + " SMM.02: 74% SMM:2-23 +routines, resolver RESOLVER.3: 2% RESOLVER(3)-1 + " RESOLVER.3: 21% RESOLVER(3)-1 + " RESOLVER.5: 11% RESOLVER(5)-1 + " SMM.11: 5% SMM:11-2 + " SMM.11: 91% SMM:11-14 +routine[s], Signal SIGVEC.2: 11% SIGVEC(2)-1 +routines, screen PS1.18: 50% PS1:18-14 + " PS1.18: 50% PS1:18-14 + " PS1.18: 58% PS1:18-17 + " PS1.18: 59% PS1:18-17 +routine, signal handling PS1.06: 29% PS1:6-14 +routines, socket SMM.15: 23% SMM:15-8 + " SMM.15: 24% SMM:15-8 + " SMM.15: 31% SMM:15-10 + " SMM.15: 31% SMM:15-10 + " SMM.15: 47% SMM:15-15 + " SMM.15: 54% SMM:15-16 + " SMM.15: 57% SMM:15-17 + " SMM.15: 87% SMM:15-24 +routine[s], strategy SMM.13: 91% SMM:13-31 +routine[s], timer SMM.13: 78% SMM:13-27 + " SMM.15: 34% SMM:15-11 + " SMM.15: 36% SMM:15-11 +routine, usrreq SMM.13: 36% SMM:13-13 + " SMM.15: 47% SMM:15-15 + " SMM.15: 57% SMM:15-17 + " SMM.15: 58% SMM:15-17 + " SMM.15: 92% SMM:15-25 +routine[s], watchdog SMM.02: 87% SMM:2-30 + " SMM.15: 36% SMM:15-11 + " VV.4: 30% VV(4)-1 +Routing SMM.01: 65% SMM:1-40 + " SMM.13: 61% SMM:13-21 +routing packet, send data without PS1.08: 20% PS1:8-8 +routing, uucp path SMM.12A: 99% SMM:12-23 +routing a message manually MAILADDR.7: 61% MAILADDR(7)-2 +routing change[s] SMM.13: 66% SMM:13-23 + " SMM.13: 67% SMM:13-23 + " SMM.13: 69% SMM:13-24 + " SMM.13: 84% SMM:13-29 +routing daemon[s] HTABLE.8: 28% HTABLE(8)-1 + " INTRO.4N: 39% INTRO(4N)-2 + " SMM.01: 65% SMM:1-40 + " SMM.01: 65% SMM:1-40 + " SMM.01: 65% SMM:1-40 + " SMM.01: 65% SMM:1-40 + " SMM.01: 65% SMM:1-40 + " SMM.01: 66% SMM:1-40 + " SMM.15: 78% SMM:15-22 +routing decision[s] SMM.15: 33% SMM:15-10 + " SMM.15: 60% SMM:15-18 + " SMM.15: 65% SMM:15-19 +routing entry[s] INET.4F: 71% INET(4F)-1 + " INTRO.4N: 54% INTRO(4N)-2 + " INTRO.4N: 57% INTRO(4N)-2 + " SMM.13: 61% SMM:13-21 + " SMM.15: 77% SMM:15-22 +Routing Information Protocol XNSROUTED.8C: 7% XNSROUTED(8C)-1 +routing issue[s], Gateways and SMM.15: 69% SMM:15-20 +routing metric IFCONFIG.8C: 57% IFCONFIG(8C)-1 + " IFCONFIG.8C: 58% IFCONFIG(8C)-1 + " INTRO.4N: 80% INTRO(4N)-3 + " SMM.13: 60% SMM:13-21 +routing oriented statistics SMM.01: 66% SMM:1-40 +routing packets INTRO.4N: 87% INTRO(4N)-3 + " SMM.01: 66% SMM:1-40 +routing policy, User level SMM.15: 77% SMM:15-22 +routing process ROUTED.8C: 71% ROUTED(8C)-2 + " ROUTED.8C: 93% ROUTED(8C)-3 + " SMM.15: 78% SMM:15-22 +routing protocol[s] IFCONFIG.8C: 59% IFCONFIG(8C)-1 + " ROUTED.8C: 48% ROUTED(8C)-2 + " ROUTED.8C: 94% ROUTED(8C)-3 + " SMM.01: 67% SMM:1-41 + " SMM.13: 78% SMM:13-27 +Routing redirect control message[s] SMM.15: 74% SMM:15-21 +routing redirect message[s] SMM.01: 66% SMM:1-40 +routing statistics NETSTAT.1: 37% NETSTAT(1)-1 +routing table[s] INTRO.4N: 37% INTRO(4N)-2 + " INTRO.4N: 57% INTRO(4N)-2 + " INTRO.4N: 61% INTRO(4N)-2 + " NETSTAT.1: 36% NETSTAT(1)-1 + " PING.8: 36% PING(8)-1 + " ROUTE.8C: 2% ROUTE(8C)-1 + " ROUTE.8C: 56% ROUTE(8C)-1 + " ROUTE.8C: 58% ROUTE(8C)-1 + " ROUTED.8C: 8% ROUTED(8C)-1 + " ROUTED.8C: 20% ROUTED(8C)-1 + " ROUTED.8C: 26% ROUTED(8C)-1 + " ROUTED.8C: 28% ROUTED(8C)-1 + " ROUTED.8C: 36% ROUTED(8C)-1 + " ROUTED.8C: 40% ROUTED(8C)-1 + " ROUTED.8C: 57% ROUTED(8C)-2 + " ROUTED.8C: 65% ROUTED(8C)-2 + " ROUTED.8C: 92% ROUTED(8C)-3 + " SMM.01: 65% SMM:1-40 + " SMM.01: 66% SMM:1-40 + " SMM.15: 70% SMM:15-21 + " SMM.15: 70% SMM:15-21 + " SMM.15: 71% SMM:15-21 + " SMM.15: 71% SMM:15-21 + " SMM.15: 75% SMM:15-22 + " SMM.15: 75% SMM:15-22 + " SMM.15: 77% SMM:15-22 + " XNSROUTED.8C: 13% XNSROUTED(8C)-1 + " XNSROUTED.8C: 37% XNSROUTED(8C)-1 + " XNSROUTED.8C: 49% XNSROUTED(8C)-1 + " XNSROUTED.8C: 55% XNSROUTED(8C)-1 + " XNSROUTED.8C: 64% XNSROUTED(8C)-1 + " XNSROUTED.8C: 75% XNSROUTED(8C)-1 + " XNSROUTED.8C: 93% XNSROUTED(8C)-2 +routing table entry[s] INTRO.4N: 41% INTRO(4N)-2 + " INTRO.4N: 42% INTRO(4N)-2 + " INTRO.4N: 47% INTRO(4N)-2 + " INTRO.4N: 50% INTRO(4N)-2 + " INTRO.4N: 55% INTRO(4N)-2 + " ROUTE.8C: 70% ROUTE(8C)-1 + " ROUTE.8C: 80% ROUTE(8C)-1 + " ROUTED.8C: 33% ROUTED(8C)-1 + " SMM.01: 66% SMM:1-40 + " SMM.01: 66% SMM:1-40 + " SMM.01: 66% SMM:1-40 + " SMM.15: 72% SMM:15-21 + " SMM.15: 74% SMM:15-21 + " SMM.15: 77% SMM:15-22 + " XNSROUTED.8C: 68% XNSROUTED(8C)-1 +routing table management daemon ROUTE.8C: 8% ROUTE(8C)-1 +routing table management process SMM.01: 66% SMM:1-40 +RP05 partitions HP.4: 35% HP(4)-2 +RP06 BAD144.8: 74% BAD144(8)-2 + " DISKPART.8: 92% DISKPART(8)-1 + " FORMAT.8V: 91% FORMAT(8V)-3 + " HP.4: 20% HP(4)-1 + " SMM.01: 42% SMM:1-28 +RP06 partitions HP.4: 29% HP(4)-2 +RP07 partitions HP.4: 38% HP(4)-2 +RP0X FORMAT.8V: 81% FORMAT(8V)-3 + " FORMAT.8V: 89% FORMAT(8V)-3 + " FORMAT.8V: 91% FORMAT(8V)-3 +rpile - right-justified pile USD.27: 60% USD:27-7 +rpow - multiple precision integer arithmetic MP.3X: 3% MP(3X)-1 +rrestore - restore a file system dump across the network RRESTORE.8C: 8% RRESTORE(8C)-1 +rresvport PS1.08: 76% PS1:8-31 + " RCMD.3: 1% RCMD(3)-1 +RS awk variable (input record separator) USD.19: 16% USD:19-2 +rsh SMM.12A: 46% SMM:12-11 +rsh - remote shell RSH.1C: 2% RSH(1C)-1 +Rshd RCMD.3: 24% RCMD(3)-1 +rshd - remote shell server RSHD.8C: 1% RSHD(8C)-1 +Rubout[s] DOCTOR.6: 54% DOCTOR(6)-1 + " USD.04: 83% USD:4-39 + " USD.04: 94% USD:4-43 + " USD.04: 94% USD:4-43 + " USD.11: 58% USD:11-9 + " USD.17: 4% USD:17-2 + " USD.17: 8% USD:17-4 +rule[s], built-in PS1.12: 20% PS1:12-2 + " PS1.12: 35% PS1:12-3 + " PS1.12: 46% PS1:12-4 + " PS1.12: 57% PS1:12-5 + " PS1.12: 60% PS1:12-5 +rule, default PS1.13: 18% PS1:13-4 + " PS1.13: 20% PS1:13-4 + " PS1.14: 79% PS1:14-11 +rule[s], disambiguating PS1.15: 2% PS1:15-1 + " PS1.15: 40% PS1:15-12 + " PS1.15: 40% PS1:15-12 + " PS1.15: 41% PS1:15-12 + " PS1.15: 42% PS1:15-12 + " PS1.15: 42% PS1:15-12 + " PS1.15: 45% PS1:15-13 + " PS1.15: 49% PS1:15-14 + " PS1.15: 49% PS1:15-14 + " PS1.15: 54% PS1:15-16 + " USD.26: 70% USD:26-6 +rule[s], error PS1.15: 57% PS1:15-16 + " PS1.15: 58% PS1:15-17 + " PS1.15: 58% PS1:15-17 + " PS1.15: 59% PS1:15-17 + " PS1.15: 59% PS1:15-17 +rule[s], grammar PS1.15: 3% PS1:15-1 + " PS1.15: 3% PS1:15-1 + " PS1.15: 3% PS1:15-1 + " PS1.15: 5% PS1:15-2 + " PS1.15: 7% PS1:15-2 + " PS1.15: 9% PS1:15-3 + " PS1.15: 11% PS1:15-3 + " PS1.15: 11% PS1:15-3 + " PS1.15: 12% PS1:15-3 + " PS1.15: 13% PS1:15-4 + " PS1.15: 13% PS1:15-4 + " PS1.15: 13% PS1:15-4 + " PS1.15: 13% PS1:15-4 + " PS1.15: 14% PS1:15-4 + " PS1.15: 14% PS1:15-4 + " PS1.15: 15% PS1:15-4 + " PS1.15: 18% PS1:15-5 + " PS1.15: 25% PS1:15-7 + " PS1.15: 28% PS1:15-8 + " PS1.15: 29% PS1:15-8 + " PS1.15: 37% PS1:15-11 + " PS1.15: 37% PS1:15-11 + " PS1.15: 38% PS1:15-11 + " PS1.15: 39% PS1:15-11 + " PS1.15: 41% PS1:15-12 + " PS1.15: 41% PS1:15-12 + " PS1.15: 42% PS1:15-12 + " PS1.15: 46% PS1:15-14 + " PS1.15: 46% PS1:15-14 + " PS1.15: 46% PS1:15-14 + " PS1.15: 47% PS1:15-14 + " PS1.15: 49% PS1:15-14 + " PS1.15: 52% PS1:15-15 + " PS1.15: 52% PS1:15-15 + " PS1.15: 52% PS1:15-15 + " PS1.15: 53% PS1:15-16 + " PS1.15: 53% PS1:15-16 + " PS1.15: 54% PS1:15-16 + " PS1.15: 54% PS1:15-16 + " PS1.15: 56% PS1:15-16 + " PS1.15: 67% PS1:15-19 + " PS1.15: 82% PS1:15-24 +rule[s], Lex PS1.16: 21% PS1:16-3 + " PS1.16: 55% PS1:16-7 + " PS1.16: 61% PS1:16-8 + " PS1.16: 62% PS1:16-8 + " PS1.16: 70% PS1:16-9 +rule[s], make default PS1.12: 97% PS1:12-9 +rule[s], rewriting SMM.16: 57% SMM:16-8 + " SMM.16: 61% SMM:16-8 + " SMM.19: 60% SMM:19-17 + " SMM.19: 62% SMM:19-17 + " SMM.19: 66% SMM:19-18 + " SMM.19: 66% SMM:19-18 + " SMM.19: 66% SMM:19-19 + " SMM.19: 66% SMM:19-19 + " SMM.19: 72% SMM:19-20 + " SMM.19: 73% SMM:19-21 + " SMM.19: 74% SMM:19-21 + " SMM.19: 74% SMM:19-21 + " SMM.19: 74% SMM:19-21 + " SMM.19: 75% SMM:19-21 + " SMM.19: 77% SMM:19-22 + " SMM.19: 91% SMM:19-25 + " SMM.19: 91% SMM:19-25 + " SMM.19: 92% SMM:19-25 + " SMM.07A: 36% SMM:07-17 + " SMM.07A: 36% SMM:07-17 + " SMM.07A: 36% SMM:07-17 + " SMM.07A: 36% SMM:07-17 + " SMM.07A: 37% SMM:07-17 + " SMM.07A: 44% SMM:07-20 + " SMM.07A: 46% SMM:07-21 + " SMM.07A: 60% SMM:07-26 + " SMM.12A: 94% SMM:12-22 +rule[s], right recursive PS1.15: 67% PS1:15-19 +RULES, SCOPE PS1.01: 70% PS1:1-24 + " PS1.01: 72% PS1:1-25 + " PS1.01: 74% PS1:1-25 + " PS1.01: 74% PS1:1-25 +rules section PS1.15: 11% PS1:15-3 + " PS1.15: 14% PS1:15-4 + " PS1.15: 82% PS1:15-24 + " PS1.15: 87% PS1:15-27 + " PS1.15: 99% PS1:15-33 + " PS1.16: 61% PS1:16-8 +run queue[s] SMM.13: 21% SMM:13-8 + " UPTIME.1: 55% UPTIME(1)-1 + " VMSTAT.1: 42% VMSTAT(1)-1 + " W.1: 18% W(1)-1 +run time IOINIT.3F: 11% IOINIT(3F)-1 + " PS1.02: 54% PS1:2-18 + " PS1.03: 60% PS1:3-7 + " PS1.03: 63% PS1:3-8 + " PS1.04: 61% PS1:4-31 + " PS1.04: 70% PS1:4-36 + " PS1.10: 35% PS1:10-7 + " PS2.09: 74% PS2:9-120 + " PS2.10: 59% PS2:10-51 + " PS2.10: 59% PS2:10-51 + " PS2.10: 60% PS2:10-52 + " PS2.10: 91% PS2:10-82 + " PS2.10: 91% PS2:10-82 +Run-time error[s] PS1.04: 49% PS1:4-26 + " PS1.04: 49% PS1:4-26 + " PS1.04: 49% PS1:4-26 + " PS2.10: 56% PS2:10-50 + " PS2.10: 58% PS2:10-51 +run-time recording mechanism CC.1: 28% CC(1)-1 + " F77.1: 22% F77(1)-1 +runnable processes PSTAT.8: 63% PSTAT(8)-3 + " SYSLINE.1: 13% SYSLINE(1)-1 +running processes GCORE.1: 15% GCORE(1)-1 + " RENICE.8: 4% RENICE(8)-1 + " RENICE.8: 13% RENICE(8)-1 +Running Processes in JOVE Window[s] USD.17: 46% USD:17-20 +running text[s] SMM.13: 45% SMM:13-16 + " USD.24: 85% USD:24-28 + " USD.26: 12% USD:26-2 +running time SMM.14: 61% SMM:14-9 +runtime check[s] PC.1: 48% PC(1)-1 +runtime error[s] PS1.04: 27% PS1:4-15 + " PS1.04: 84% PS1:4-43 + " PS1.04: 84% PS1:4-43 + " PS1.04: 87% PS1:4-44 +runtime tests PI.1: 30% PI(1)-1 +ruptime SMM.12A: 46% SMM:12-11 +ruptime - show host status of local machine[s] RUPTIME.1C: 6% RUPTIME(1C)-1 +ruptime output PS1.08: 52% PS1:8-21 +rusage, struct PS1.06: 10% PS1:6-8 + " PS1.06: 45% PS1:6-21 + " PS1.06: 45% PS1:6-21 +ruserok RCMD.3: 1% RCMD(3)-1 + " SMM.12A: 69% SMM:12-16 +rval field SMM.19: 24% SMM:19-7 + " SMM.19: 25% SMM:19-8 + " SMM.19: 39% SMM:19-11 + " SMM.19: 39% SMM:19-11 + " SMM.19: 39% SMM:19-11 + " SMM.19: 40% SMM:19-11 +rwho SMM.12A: 46% SMM:12-11 +rwho - who's logged in on local machine[s] RWHO.1C: 5% RWHO(1C)-1 +rwho server[s] PS1.08: 51% PS1:8-20 + " PS1.08: 52% PS1:8-21 + " PS1.08: 52% PS1:8-21 + " PS1.08: 53% PS1:8-21 + " PS1.08: 54% PS1:8-21 + " PS1.08: 56% PS1:8-22 + " PS1.08: 52% PS1:8-21 +S-expression[s] PS2.09: 73% PS2:9-120 + " PS2.09: 83% PS2:9-133 + " PS2.09: 84% PS2:9-135 +rwho server[s] RWHOD.8C: 66% RWHOD(8C)-1 +rwhod SMM.12A: 92% SMM:12-22 +rwhod - system status server RWHOD.8C: 1% RWHOD(8C)-1 +rx - DEC RX02 floppy disk interface RX.4: 0% RX(4)-1 +RX01, DEC FL.4: 16% FL(4)-1 +RX01 floppy disk RX.4: 14% RX(4)-1 +rxformat SMM.12A: 92% SMM:12-22 +rxformat - format floppy disk[s] RXFORMAT.8V: 4% RXFORMAT(8V)-1 +s-expression[s], Lisp USD.15: 84% USD:15-24 +Sa SMM.12A: 92% SMM:12-22 +s-file PS1.14: 3% PS1:14-1 + " PS1.14: 7% PS1:14-1 +sa, accton - system accounting SA.8: 1% SA(8)-1 +sail - multi-user wooden ships and iron man[s] SAIL.6: 0% SAIL(6)-1 +Salted Password[s] SMM.18: 72% SMM:18-5 +sample configuration file[s] SMM.02: 83% SMM:2-28 +Sample Paper, Outline of a USD.22: 76% USD:22-14 +sample sendmail configuration file[s] SMM.01: 33% SMM:1-22 +Sample shell script USD.04: 58% USD:4-27 + " USD.04: 58% USD:4-28 +Save a contiguous vertical block USD.24: 40% USD:24-14 +save - save a relation until a date PS2.10: 50% PS2:10-43 +save command USD.07: 26% USD:7-6 + " USD.07: 26% USD:7-6 + " USD.07: 27% USD:7-6 + " USD.07: 66% USD:7-16 + " USD.07: 66% USD:7-16 + " USD.07: 67% USD:7-16 + " USD.07: 71% USD:7-17 + " USD.07: 71% USD:7-17 +save text for later printing USD.22: 38% USD:22-7 +save-file USD.17: 10% USD:17-5 +save-file (C-X C-S) USD.17: 89% USD:17-43 +savecore CRASH.8V: 87% CRASH(8V)-3 + " SMM.12A: 92% SMM:12-22 +savecore - save a core dump of the operating system SAVECORE.8: 3% unknown +savehist shell variable CSH.1: 85% CSH(1)-18 +savetty() PS1.18: 59% PS1:18-17 +saving notes in file[s] USD.11: 52% USD:11-8 +Saving the modified text USD.14: 47% USD:14-12 +SBI fault[s] CRASH.8V: 49% CRASH(8V)-2 + " CRASH.8V: 49% CRASH(8V)-2 + " CRASH.8V: 47% CRASH(8V)-2 +sbrk END.3: 88% + " MALLOC.3: 32% MALLOC(3)-1 +sbrk - change data segment size BRK.2: 2% BRK(2)-1 +SC-21V, Emulex SMM.02: 66% SMM:2-20 + " SMM.02: 71% SMM:2-22 + " UP.4: 25% UP(4)-1 + " SMM.02: 43% SMM:2-13 + " SMM.02: 43% SMM:2-13 + " SMM.02: 55% SMM:2-17 + " SMM.02: 84% SMM:2-29 + " SMM.02: 84% SMM:2-29 + " UP.4: 2% UP(4)-1 + " SMM.02: 43% SMM:2-13 + " SMM.02: 55% SMM:2-17 + " SMM.02: 84% SMM:2-29 + " UP.4: 1% UP(4)-1 +SC750, Emulex HP.4: 14% HP(4)-1 +sbrk(incr) PS1.06: 14% PS1:6-10 +scalar PS1.01: 56% PS1:1-18 +scalar value[s] PS2.10: 42% PS2:10-36 + " PS2.10: 42% PS2:10-36 + " PS2.10: 60% PS2:10-51 +scale factor PS1.02: 70% PS1:2-23 + " PS1.03: 43% PS1:3-6 + " PS1.03: 48% PS1:3-6 +scale factor[s] USD.05: 22% USD:5-3 + " USD.05: 23% USD:5-3 + " USD.05: 23% USD:5-3 + " USD.05: 31% USD:5-3 + " USD.05: 43% USD:5-4 + " USD.05: 44% USD:5-4 + " USD.05: 63% USD:5-5 + " USD.05: 76% USD:5-6 + " USD.25: 16% USD:25-3 + " USD.25: 28% USD:25-5 + " USD.22: 65% USD:22-12 + " USD.23: 1% USD:23-1 + " USD.23: 3% USD:23-1 +scale indicator[s] USD.24: 12% USD:24-5 + " USD.24: 20% USD:24-8 + " USD.25: 68% USD:25-10 + " USD.25: 68% USD:25-10 + " USD.25: 69% USD:25-10 +scale specifier USD.25: 35% USD:25-6 +Scaling USD.06: 22% USD:6-3 +Scan[s] USD.15: 90% USD:15-25 +scan - produce a one line per message scan listing SCAN.N: 0% SCAN(1)-1 + " USD.08: 51% USD:8-62 +scan command USD.03: 83% USD:3-20 + " USD.08: 3% USD:8-2 + " USD.08: 5% USD:8-4 +scan listing INC.N: 14% INC(1)-1 + " MH-FORMAT.N: 4% MH-FORMAT(5)-1 + " SCAN.N: 31% SCAN(1)-1 + " SCAN.N: 45% SCAN(1)-1 + " SCAN.N: 61% SCAN(1)-1 + " USD.08: 5% USD:8-4 + " USD.08: 23% USD:8-26 + " USD.08: 52% USD:8-62 + " USD.08: 52% USD:8-62 + " USD.08: 52% USD:8-62 + " USD.08: 80% USD:8-98 +scandir SMM.12A: 69% SMM:12-16 +scandir, alphasort - scan a directory SCANDIR.3: 3% SCANDIR(3)-1 +scanf, fscanf, sscanf - formatted input conversion SCANF.3S: 0% SCANF(3S)-1 +scanning, backward SMM.12A: 40% SMM:12-9 +Scanning and Processing Language, Awk - A Pattern USD.19: 0% USD:19-1 +scanw(fmt, arg1, arg2, ...) PS1.18: 46% PS1:18-13 +Scatter/gather PS1.06: 82% PS1:6-35 +Scattering of data on input PS1.06: 53% PS1:6-25 +SCCS PS1.14: 0% PS1:14-1 + " PS1.14: 1% PS1:14-1 + " PS1.14: 2% PS1:14-1 + " PS1.14: 12% PS1:14-2 + " PS1.14: 16% PS1:14-3 + " PS1.14: 17% PS1:14-3 + " PS1.14: 18% PS1:14-3 + " PS1.14: 19% PS1:14-3 + " PS1.14: 37% PS1:14-5 + " PS1.14: 44% PS1:14-6 + " PS1.14: 55% PS1:14-8 + " PS1.14: 56% PS1:14-8 + " PS1.14: 59% PS1:14-9 + " PS1.14: 61% PS1:14-9 + " PS1.14: 64% PS1:14-9 + " PS1.14: 74% PS1:14-10 + " PS1.14: 74% PS1:14-10 +scatter reading READ.2: 15% READ(2)-1 +SCCS SCCS.1: 3% SCCS(1)-1 + " WHAT.1: 68% WHAT(1)-1 + " WHAT.1: 82% WHAT(1)-1 +sccs - front end for the SCCS subsystem SCCS.1: 0% SCCS(1)-1 +SCCS command[s] SCCS.1: 13% SCCS(1)-1 + " SCCS.1: 97% SCCS(1)-2 +SCCS file[s] SCCS.1: 25% SCCS(1)-1 + " SCCS.1: 29% SCCS(1)-1 + " SCCS.1: 52% SCCS(1)-1 + " SCCS.1: 65% SCCS(1)-2 + " SCCS.1: 67% SCCS(1)-2 +SCCS file, sccstorcs - build RCS file from SCCSTORCS.N: 3% SCCSTORCS(8)-1 +SCCS ID[s] INTRO.3F: 22% INTRO(3F)-1 + " SMM.10: 27% SMM:10-8 +sccs admin PS1.14: 15% PS1:14-2 + " PS1.14: 62% PS1:14-9 +sccs check PS1.14: 85% PS1:14-13 + " PS1.14: 26% PS1:14-4 +sccs commands and option, summary of PS1.14: 90% PS1:14-14 +sccs delget PS1.14: 51% PS1:14-8 +sccs delta PS1.14: 21% PS1:14-3 + " PS1.14: 27% PS1:14-4 +sccs edit PS1.14: 20% PS1:14-3 +SCCS file[s] PS1.13: 97% PS1:13-22 + " PS1.13: 97% PS1:13-22 + " PS1.13: 99% PS1:13-22 + " PS1.14: 21% PS1:14-3 + " PS1.14: 37% PS1:14-5 + " PS1.14: 53% PS1:14-8 + " PS1.14: 60% PS1:14-9 + " PS1.14: 64% PS1:14-9 + " PS1.14: 67% PS1:14-9 + " PS1.14: 76% PS1:14-11 + " PS1.14: 76% PS1:14-11 + " PS1.14: 77% PS1:14-11 +SCCS File, Creating PS1.14: 3% PS1:14-1 +sccs fix PS1.14: 52% PS1:14-8 +SCCS Id PS1.14: 10% PS1:14-2 +sccs info PS1.14: 57% PS1:14-8 + " PS1.14: 26% PS1:14-4 +sccs prt PS1.14: 46% PS1:14-7 +sccs what PS1.14: 31% PS1:14-5 +Sccstorcs PS1.13: 97% PS1:13-22 + " PS1.13: 98% PS1:13-22 + " PS1.13: 98% PS1:13-22 + " PS1.13: 99% PS1:13-22 +sccstorcs - build RCS file from SCCS file PS1.13: 97% PS1:13-22 +Scope, Lexical PS1.01: 73% PS1:1-25 + " PS1.01: 73% PS1:1-25 + " PS1.01: 73% PS1:1-25 + " PS1.01: 74% PS1:1-25 + " PS1.01: 74% PS1:1-25 +Scope of External[s] PS1.01: 75% PS1:1-25 +SCOPE RULES PS1.01: 70% PS1:1-24 + " PS1.01: 72% PS1:1-25 + " PS1.01: 74% PS1:1-25 + " PS1.01: 74% PS1:1-25 +sccstorcs - build RCS file from SCCS file SCCSTORCS.N: 3% SCCSTORCS(8)-1 +schedule signal after specified time UALARM.3: 5% unknown +scheduler INTRO.2: 74% INTRO(2)-6 +scheduling priority[s] CSH.1: 63% CSH(1)-13 + " GETPRIORITY.2: 14% GETPRIORITY(2)- + " NICE.1: 14% NICE(1)-1 + " NICE.3C: 18% NICE(3C)-1 + " RENICE.8: 11% RENICE(8)-1 + " RENICE.8: 23% RENICE(8)-1 + " RENICE.8: 28% RENICE(8)-1 + " RENICE.8: 80% RENICE(8)-1 + " RENICE.8: 91% RENICE(8)-1 +scratch file[s] USD.04: 94% USD:4-43 +scratch register[s] SMM.19: 53% SMM:19-15 + " SMM.19: 54% SMM:19-15 + " SMM.19: 54% SMM:19-15 + " SMM.19: 56% SMM:19-16 + " SMM.19: 56% SMM:19-16 + " SMM.19: 57% SMM:19-16 + " SMM.19: 58% SMM:19-16 + " SMM.19: 58% SMM:19-16 + " SMM.19: 60% SMM:19-17 + " SMM.19: 64% SMM:19-18 + " SMM.19: 65% SMM:19-18 + " SMM.19: 67% SMM:19-19 + " SMM.19: 69% SMM:19-19 + " SMM.19: 77% SMM:19-22 + " SMM.19: 79% SMM:19-22 + " SMM.19: 79% SMM:19-22 + " SMM.19: 80% SMM:19-22 + " SMM.19: 81% SMM:19-23 + " SMM.19: 81% SMM:19-23 + " SMM.19: 81% SMM:19-23 + " SMM.19: 83% SMM:19-23 + " SMM.19: 92% SMM:19-25 +Screen USD.07: 80% USD:7-19 +screen, graphics LIB2648.3X: 17% LIB2648(3X)-1 + " LIB2648.3X: 30% LIB2648(3X)-2 +screen, Moving around on the USD.15: 15% USD:15-5 +screen, split the USD.17: 40% USD:17-18 +screen, terminal MH-PROFILE.N: 52% MH-PROFILE(5)-4 + " PS1.18: 4% PS1:18-3 + " PS1.18: 4% PS1:18-3 + " PS1.18: 5% PS1:18-3 + " PS1.18: 7% PS1:18-4 + " PS1.18: 8% PS1:18-4 + " PS1.18: 8% PS1:18-4 + " PS1.18: 13% PS1:18-5 + " PS1.18: 41% PS1:18-11 + " PS1.18: 53% PS1:18-15 + " PS1.18: 4% PS1:18-3 +screen package PS1.18: 2% + " PS1.18: 7% PS1:18-3 + " PS1.18: 7% PS1:18-4 + " PS1.18: 12% PS1:18-4 + " PS1.18: 14% PS1:18-5 + " PS1.18: 15% PS1:18-5 + " PS1.18: 18% PS1:18-6 + " PS1.18: 22% PS1:18-6 + " PS1.18: 24% PS1:18-6 + " PS1.18: 24% PS1:18-7 + " PS1.18: 29% PS1:18-8 + " PS1.18: 34% PS1:18-8 + " PS1.18: 36% PS1:18-10 + " PS1.18: 39% PS1:18-10 + " PS1.18: 42% PS1:18-12 + " PS1.18: 44% PS1:18-12 + " PS1.18: 47% PS1:18-14 + " PS1.18: 51% PS1:18-14 + " PS1.18: 54% PS1:18-16 + " PS1.18: 57% PS1:18-16 +screen routines PS1.18: 50% PS1:18-14 + " PS1.18: 50% PS1:18-14 + " PS1.18: 58% PS1:18-17 + " PS1.18: 59% PS1:18-17 +Screen Updating PS1.18: 6% PS1:18-3 + " PS1.18: 75% PS1:18-22 +Screen Updating and Cursor Movement Optimization: A Library Package PS1.18: 0% unknown +screen updating functions PS1.18: 23% PS1:18-6 + " PS1.18: 23% PS1:18-6 +screen updating section[s] PS1.18: 75% PS1:18-22 +screen, terminal TERMCAP.5: 91% TERMCAP(5)-13 + " TN3270.1: 26% TN3270(1)-1 + " USD.08: 72% USD:8-88 + " USD.15: 61% USD:15-17 + " WINDOW.1: 6% WINDOW(1)-1 + " WINDOW.1: 21% WINDOW(1)-2 +screen clear USD.08: 27% USD:8-30 + " GETTYTAB.5: 17% GETTYTAB(5)-1 +screen editor (see also display editor)[s] VI.1: 95% VI(1)-1 + " USD.07: 73% USD:7-17 + " USD.07: 73% USD:7-17 + " USD.07: 71% USD:7-17 + " USD.07: 31% USD:7-8 + " USD.07: 30% USD:7-8 + " MAIL.1: 75% MAIL(1)-5 + " ERROR.1: 7% ERROR(1)-1 +screen size MHL.N: 35% MHL(1)-1 + " MHL.N: 46% MHL(1)-2 + " SYSTAT.1: 69% SYSTAT(1)-3 + " USD.08: 28% USD:8-30 + " USD.08: 28% USD:8-31 + " USD.15: 62% USD:15-18 + " USD.15: 99% USD:15-28 + " USD.16: 63% USD:16-12 +script SMM.12A: 47% SMM:12-11 +script file[s] PS2.07: 39% PS2:7-17 + " PS2.07: 39% PS2:7-17 +script, advanced file handling USD.02: 39% USD:2-5 +script, basic file handling USD.02: 40% USD:2-5 +script, Bourne shell FALSE.1: 34% FALSE(1)-1 + " TRUE.1: 35% TRUE(1)-1 + " SMM.12A: 32% SMM:12-8 +script[s], command CSH.1: 1% CSH(1)-1 + " RC.8: 3% RC(8)-1 + " RC.8: 11% RC(8)-1 + " SMM.01: 69% SMM:1-41 + " USD.04: 55% USD:4-25 + " USD.04: 52% USD:4-25 +script, ed PATCH.N: 55% PATCH(1)-2 + " PATCH.N: 86% PATCH(1)-3 +scripts, Editing DIFF.1: 91% DIFF(1)-2 + " USD.13: 1% USD:13-2 + " USD.13: 95% USD:13-16 + " USD.18: 5% USD:18-1 +script[s], editor ED.1: 3% ED(1)-1 + " USD.01: 61% USD:1-10 + " USD.04: 63% USD:4-31 + " USD.16: 3% USD:16-1 +script, expect/send L_SYS.5: 65% L.SYS(5)-3 + " L_SYS.5: 88% L.SYS(5)-4 + " SMM.09: 61% SMM:9-13 + " SMM.09: 72% SMM:9-16 + " SMM.09: 77% SMM:9-16 + " L-DEVICES.5: 88% L-DEVICES(5)-2 +script[s], lesson LEARN.1: 48% LEARN(1)-1 + " LEARN.1: 50% LEARN(1)-1 + " LEARN.1: 77% LEARN(1)-1 + " USD.02: 4% USD:2-1 + " USD.02: 4% USD:2-1 +script[s], shell command USD.04: 81% USD:4-39 + " USD.04: 88% USD:4-41 + " USD.04: 94% USD:4-43 + " USD.04: 98% USD:4-44 +script - make typescript of terminal session SCRIPT.1: 6% SCRIPT(1)-1 +script file[s] TIP.1C: 86% TIP(1C)-3 +Scroll USD.16: 92% USD:16-17 +scroll command[s] USD.15: 62% USD:15-18 +Scroll the current window WINDOW.1: 36% WINDOW(1)-3 +scroll(win) PS1.18: 59% PS1:18-17 +scroll-down (ESC Z) USD.17: 90% USD:17-43 +scroll-step (variable) USD.17: 90% USD:17-43 +scroll-up (C-Z) USD.17: 90% USD:17-43 +Scrolling and paging USD.15: 10% USD:15-4 +scrolling command[s] USD.17: 39% USD:17-17 +scrolling through text ED.1: 87% ED(1)-5 +Sdb STAB.5: 6% STAB(5)-1 +scrollok() PS1.18: 16% PS1:18-5 +scrollok(win, boolf) PS1.18: 55% PS1:18-16 +sdb, debugger CC.1: 18% CC(1)-1 +sdiv - multiple precision integer arithmetic MP.3X: 5% MP(3X)-1 +search path PS2.09: 38% PS2:9-67 + " PS2.09: 38% PS2:9-68 + " PS2.09: 38% PS2:9-68 +search[s], context USD.01: 73% USD:1-11 + " USD.12: 59% USD:12-6 + " USD.12: 61% USD:12-7 + " USD.12: 62% USD:12-7 + " USD.12: 66% USD:12-7 + " USD.12: 66% USD:12-7 + " USD.12: 67% USD:12-7 + " USD.12: 77% USD:12-8 + " USD.12: 81% USD:12-9 + " USD.12: 82% USD:12-9 + " USD.13: 42% USD:13-8 + " USD.13: 51% USD:13-9 + " USD.14: 65% USD:14-16 + " USD.14: 76% USD:14-19 + " USD.18: 56% USD:18-6 +search, incremental USD.17: 19% USD:17-9 + " USD.17: 19% USD:17-9 + " USD.17: 20% USD:17-9 + " USD.17: 74% USD:17-35 + " USD.17: 74% USD:17-35 + " USD.17: 90% USD:17-44 +search, key CRYPT.3: 25% CRYPT(3)-1 + " SMM.18: 38% SMM:18-3 + " SMM.18: 40% SMM:18-3 + " SMM.18: 71% SMM:18-4 +Search[s], Repeated USD.13: 44% USD:13-8 +search, string OD.1: 38% OD(1)-1 +search again for the same string USD.17: 21% USD:17-10 +search command[s] MORE.1: 66% MORE(1)-2 + " USD.13: 47% USD:13-8 + " USD.14: 59% USD:14-15 + " USD.14: 76% USD:14-19 + " USD.15: 44% USD:15-12 + " USD.17: 19% USD:17-9 + " USD.17: 19% USD:17-9 + " USD.17: 20% USD:17-9 + " USD.17: 21% USD:17-9 +search key[s] USD.30: 80% USD:30-9 + " USD.30: 82% USD:30-9 + " USD.30: 82% USD:30-10 +search path CSH.1: 84% CSH(1)-18 + " CSH.1: 88% CSH(1)-18 + " MAN.1: 58% MAN(1)-1 + " MAN.1: 59% MAN(1)-1 + " MAN.1: 66% MAN(1)-1 + " RSH.1C: 71% RSH(1C)-1 + " SH.1: 30% SH(1)-2 + " SH.1: 64% SH(1)-4 + " SH.1: 65% SH(1)-4 + " SMM.09: 63% SMM:9-14 + " USD.03: 39% USD:3-9 + " USD.04: 28% USD:4-12 + " USD.04: 50% USD:4-23 + " USD.04: 68% USD:4-34 + " USD.08: 9% USD:8-8 +search pattern[s] PICK.N: 21% PICK(1)-1 + " USD.08: 40% USD:8-47 + " USD.13: 93% USD:13-15 + " USD.15: 87% USD:15-24 + " USD.17: 22% USD:17-10 + " USD.17: 80% USD:17-38 +Search permission ACCESS.2: 60% ACCESS(2)-1 + " ACCESS.2: 75% ACCESS(2)-1 + " CHDIR.2: 79% CHDIR(2)-1 + " CHMOD.2: 70% CHMOD(2)-1 + " UNLINK.2: 53% UNLINK(2)-1 +search-exit-char (variable) USD.17: 90% USD:17-44 +search-forward (C-S) USD.17: 90% USD:17-44 +search-reverse (C-R) USD.17: 91% USD:17-44 +Searching USD.17: 19% USD:17-9 + " USD.17: 22% USD:17-10 + " USD.17: 80% USD:17-38 + " USD.30: 4% USD:30-1 + " ED.1: 25% ED(1)-2 + " ED.1: 26% ED(1)-2 + " USD.14: 75% USD:14-19 + " USD.15: 12% USD:15-4 +searching, context USD.12: 1% USD:12-1 +searching, ignore case in GREP.1: 30% GREP(1)-1 +searching, word GREP.1: 37% GREP(1)-1 +Searching for Author[s] USD.11: 57% USD:11-9 +searching for lines which match any of a set of pattern[s] USD.19: 6% USD:19-1 +searching for string[s] USD.15: 67% USD:15-19 +searching notes for keyword[s] USD.11: 56% USD:11-9 +secondary control connection FTP.1C: 51% FTP(1C)-4 + " FTP.1C: 52% FTP(1C)-4 + " FTP.1C: 54% FTP(1C)-4 + " FTP.1C: 54% FTP(1C)-4 + " FTP.1C: 55% FTP(1C)-4 +Secondary Master Server SMM.11: 16% SMM:11-3 + " SMM.11: 29% SMM:11-4 + " SMM.11: 71% SMM:11-10 +Secondary prompt string SH.1: 32% SH(1)-2 +secondary index PS2.10: 1% PS2:10-3 + " PS2.10: 6% PS2:10-8 + " PS2.10: 6% PS2:10-8 + " PS2.10: 12% PS2:10-15 + " PS2.10: 14% PS2:10-16 + " PS2.10: 14% PS2:10-17 + " PS2.10: 65% PS2:10-56 + " PS2.10: 70% PS2:10-60 + " PS2.10: 70% PS2:10-60 + " PS2.10: 70% PS2:10-60 + " PS2.10: 70% PS2:10-61 + " PS2.10: 83% PS2:10-76 + " PS2.10: 84% PS2:10-76 + " PS2.10: 92% PS2:10-82 + " PS2.10: 92% PS2:10-82 +secondary indices PS2.10: 12% PS2:10-15 + " PS2.10: 14% PS2:10-17 + " PS2.10: 14% PS2:10-17 + " PS2.10: 14% PS2:10-17 + " PS2.10: 14% PS2:10-17 + " PS2.10: 14% PS2:10-17 + " PS2.10: 14% PS2:10-17 + " PS2.10: 14% PS2:10-17 + " PS2.10: 24% PS2:10-23 + " PS2.10: 71% PS2:10-62 + " PS2.10: 92% PS2:10-82 +secondary memory PS2.04: 6% PS2:4-1 + " PS2.04: 8% PS2:4-2 + " PS2.04: 9% PS2:4-2 + " PS2.04: 9% PS2:4-2 + " PS2.04: 22% PS2:4-3 + " PS2.04: 23% PS2:4-3 + " PS2.04: 24% PS2:4-3 + " PS2.04: 24% PS2:4-3 +secondary server SMM.11: 28% SMM:11-4 + " SMM.11: 30% SMM:11-4 + " SMM.11: 51% SMM:11-7 +secret mail XSEND.1: 7% XSEND(1)-1 +Section[s] USD.15: 32% USD:15-10 + " USD.24: 0% USD:24-2 +section, format USD.28: 18% USD:28-3 + " USD.28: 18% USD:28-3 + " USD.28: 30% USD:28-5 + " USD.28: 30% USD:28-5 +Section boundary[s] USD.15: 33% USD:15-10 + " USD.15: 85% USD:15-24 + " USD.15: 93% USD:15-26 + " USD.15: 93% USD:15-26 + " USD.15: 99% USD:15-28 +section command[s] USD.15: 34% USD:15-10 + " USD.15: 34% USD:15-10 + " USD.15: 34% USD:15-10 +section depth USD.22: 66% USD:22-12 + " USD.23: 17% USD:23-3 + " USD.23: 21% USD:23-3 +section header[s] MS.7: 54% MS(7)-2 + " USD.22: 66% USD:22-12 +section heading[s] USD.13: 62% USD:13-11 + " USD.13: 62% USD:13-11 + " USD.20: 26% USD:20-2 + " USD.20: 27% USD:20-2 + " USD.22: 61% USD:22-12 + " USD.22: 67% USD:22-13 + " USD.23: 13% USD:23-2 + " USD.20: 26% USD:20-2 +section lists SMM.10: 27% SMM:10-8 +section macro[s] USD.16: 92% USD:16-17 +section number[s] USD.22: 61% USD:22-12 + " USD.22: 62% USD:22-12 + " USD.22: 62% USD:22-12 + " USD.22: 62% USD:22-12 + " USD.22: 62% USD:22-12 + " USD.22: 63% USD:22-12 + " USD.22: 64% USD:22-12 + " USD.22: 64% USD:22-12 + " USD.22: 66% USD:22-12 + " USD.23: 13% USD:23-2 + " USD.23: 13% USD:23-2 + " USD.23: 14% USD:23-2 + " USD.23: 14% USD:23-2 + " USD.23: 16% USD:23-3 + " USD.23: 17% USD:23-3 + " USD.23: 18% USD:23-3 + " USD.23: 19% USD:23-3 + " USD.23: 21% USD:23-3 + " USD.24: 88% USD:24-29 + " USD.25: 74% USD:25-11 + " USD.25: 77% USD:25-11 +section title USD.22: 62% USD:22-12 + " USD.22: 64% USD:22-12 + " USD.23: 15% USD:23-2 + " USD.23: 15% USD:23-3 + " USD.23: 16% USD:23-3 + " USD.23: 20% USD:23-3 + " USD.23: 20% USD:23-3 + " USD.23: 20% USD:23-3 + " USD.25: 74% USD:25-11 +section[s], screen updating PS1.18: 75% PS1:18-22 +sector[s], disk HK.4: 23% HK(4)-1 + " HP.4: 12% HP(4)-1 + " SMM.01: 8% SMM:1-5 + " SMM.01: 12% SMM:1-8 + " SMM.01: 12% SMM:1-8 + " SMM.01: 44% SMM:1-29 + " UDA.4: 24% UDA(4)-1 + " UP.4: 20% UP(4)-1 +sector[s], Replacement BAD144.8: 15% BAD144(8)-1 + " BAD144.8: 21% BAD144(8)-1 + " BAD144.8: 24% BAD144(8)-1 + " BAD144.8: 30% BAD144(8)-1 + " BAD144.8: 66% BAD144(8)-1 + " BAD144.8: 83% BAD144(8)-2 + " SMM.12A: 81% SMM:12-19 +sector information BAD144.8: 2% BAD144(8)-1 + " BAD144.8: 11% BAD144(8)-1 + " BAD144.8: 17% BAD144(8)-1 + " BAD144.8: 23% BAD144(8)-1 + " BAD144.8: 29% BAD144(8)-1 +sector offset[s] SMM.12A: 84% SMM:12-20 +sector size[s] CRL.4: 77% CRL(4)-1 + " FS.5: 91% FS(5)-3 + " SMM.01: 44% SMM:1-29 +secure communication XSEND.1: 16% XSEND(1)-1 +security, password SMM.17: 73% SMM:17-3 +security, system FTPD.8C: 71% FTPD(8C)-2 + " SMM.17: 62% SMM:17-2 + " SMM.18: 11% SMM:18-1 + " SMM.18: 15% SMM:18-2 + " WRITE.2: 40% WRITE(2)-1 + " SMM.10: 7% SMM:10-2 + " SMM.17: 53% SMM:17-2 + " SMM.18: 3% SMM:18-1 + " SMM.17: 0% SMM:17-1 + " SMM.17: 0% SMM:17-1 + " SMM.17: 28% SMM:17-2 + " SMM.17: 70% SMM:17-2 + " TFTPD.8C: 77% TFTPD(8C)-1 + " SMM.01: 31% SMM:1-21 +security, uucp SMM.09: 89% SMM:9-19 +security hole[s] FTPD.8C: 97% FTPD(8C)-2 + " SMM.12A: 88% SMM:12-21 + " SMM.12A: 94% SMM:12-22 + " USERFILE.5: 79% unknown + " UUCICO.8C: 73% UUCICO(8C)-2 + " XSEND.1: 91% XSEND(1)-1 + " SMM.17: 89% SMM:17-3 +security option[s] SMM.01: 33% SMM:1-22 +security policy NCHECK.8: 67% NCHECK(8)-1 +security problem[s] RLOGIN.1C: 39% RLOGIN(1C)-1 + " SMM.01: 72% SMM:1-43 + " SMM.01: 72% SMM:1-43 +Sed USD.13: 97% USD:13-16 + " USD.13: 99% USD:13-16 + " USD.13: 97% USD:13-16 + " SMM.12A: 47% SMM:12-11 +sed, lex, awk performance comparison, wc, grep, egrep, fgrep, USD.19: 85% USD:19-6 +SED - A Non-interactive Text Editor USD.18: 0% USD:18-1 +sed - stream editor SED.1: 0% SED(1)-1 +sed command, order of application of USD.18: 15% USD:18-2 +sed example USD.18: 54% USD:18-5 +sed input/output function[s] USD.18: 70% USD:18-7 +See reference USD.29: 81% USD:29-8 + " USD.30: 94% USD:30-11 + " USD.30: 94% USD:30-11 +Seeing New Notes and Response[s] USD.11: 66% USD:11-10 +seek FSEEK.3S: 26% FSEEK(3S)-1 +seek pointer LSEEK.2: 9% LSEEK(2)-1 +Seekdir DIRECTORY.3: 44% DIRECTORY(3)-1 +seeking LSEEK.2: 52% LSEEK(2)-1 +segment[s], bss LD.1: 91% LD(1)-2 + " PS1.05: 7% PS1:5-2 + " PS1.05: 26% PS1:5-4 + " PS1.05: 29% PS1:5-4 + " PS1.05: 44% PS1:5-6 + " PS1.05: 72% PS1:5-10 + " PS1.05: 73% PS1:5-11 + " SIZE.1: 54% SIZE(1)-1 +segment[s], code SMM.02: 71% SMM:2-22 +segment[s], data ADB.1: 88% ADB(1)-5 + " AS.1: 59% AS(1)-1 + " A_OUT.5: 25% A.OUT(5)-1 + " A_OUT.5: 29% A.OUT(5)-1 + " A_OUT.5: 32% A.OUT(5)-2 + " A_OUT.5: 43% A.OUT(5)-2 + " A_OUT.5: 49% A.OUT(5)-2 + " BRK.2: 48% BRK(2)-1 + " BRK.2: 77% BRK(2)-1 + " BRK.2: 95% BRK(2)-1 + " DBX.5: 22% DBX(5)-1 + " GETRLIMIT.2: 20% GETRLIMIT(2)-1 + " GETRUSAGE.2: 53% GETRUSAGE(2)-1 + " LD.1: 40% LD(1)-1 + " LD.1: 88% LD(1)-2 + " LD.1: 92% LD(1)-2 + " PS1.05: 7% PS1:5-2 + " PS1.05: 26% PS1:5-4 + " PS1.05: 27% PS1:5-4 + " PS1.05: 28% PS1:5-4 + " PS1.05: 30% PS1:5-4 + " PS1.05: 43% PS1:5-6 + " PS1.05: 95% PS1:5-13 + " PS1.10: 44% PS1:10-9 + " PS1.10: 45% PS1:10-9 + " PS1.10: 48% PS1:10-9 + " PS1.10: 48% PS1:10-9 + " PS1.10: 50% PS1:10-10 + " PS1.10: 52% PS1:10-10 + " PS1.10: 53% PS1:10-11 + " PS1.10: 55% PS1:10-11 + " PS1.10: 55% PS1:10-11 + " PS2.04: 10% PS2:4-2 + " PS2.04: 10% PS2:4-2 + " PS2.04: 20% PS2:4-3 + " PS2.04: 20% PS2:4-3 + " SMM.02: 91% SMM:2-31 + " SMM.02: 93% SMM:2-32 + " SMM.13: 43% SMM:13-16 + " SMM.13: 43% SMM:13-16 + " SMM.13: 76% SMM:13-26 + " SYSTAT.1: 26% SYSTAT(1)-2 + " BRK.2: 12% BRK(2)-1 + " SIZE.1: 51% SIZE(1)-1 +segment[s], stack GETRLIMIT.2: 25% GETRLIMIT(2)-1 + " GETRLIMIT.2: 26% GETRLIMIT(2)-1 + " GETRUSAGE.2: 57% GETRUSAGE(2)-1 + " INTRO.2: 17% INTRO(2)-2 +segment[s], text AS.1: 61% AS(1)-1 + " A_OUT.5: 6% A.OUT(5)-1 + " A_OUT.5: 25% A.OUT(5)-1 + " A_OUT.5: 26% A.OUT(5)-1 + " A_OUT.5: 28% A.OUT(5)-1 + " A_OUT.5: 29% A.OUT(5)-1 + " A_OUT.5: 33% A.OUT(5)-2 + " A_OUT.5: 33% A.OUT(5)-2 + " A_OUT.5: 35% A.OUT(5)-2 + " A_OUT.5: 35% A.OUT(5)-2 + " DBX.5: 19% DBX(5)-1 + " GETRUSAGE.2: 44% GETRUSAGE(2)-1 + " PS1.05: 26% PS1:5-4 + " PS1.05: 28% PS1:5-4 + " PS1.05: 42% PS1:5-6 + " PS1.05: 95% PS1:5-13 + " PS2.04: 8% PS2:4-2 + " PS2.04: 8% PS2:4-2 + " PS2.04: 10% PS2:4-2 + " PS2.04: 18% PS2:4-3 + " PS2.04: 22% PS2:4-3 +segment, user data PS2.04: 11% PS2:4-2 + " PS2.04: 22% PS2:4-3 + " PS2.04: 22% PS2:4-3 +Select PS2.09: 77% PS2:9-125 + " PS1.06: 42% PS1:6-19 + " PS1.08: 25% PS1:8-9 +segment[s], text SMM.02: 86% SMM:2-30 + " SMM.02: 92% SMM:2-32 + " SYSTAT.1: 25% SYSTAT(1)-2 + " SIZE.1: 50% SIZE(1)-1 +segment size SMM.13: 20% SMM:13-8 + " SMM.13: 75% SMM:13-26 + " SMM.13: 76% SMM:13-26 + " SMM.13: 76% SMM:13-26 + " SMM.13: 76% SMM:13-26 +segmentation violation SIGNAL.3C: 24% unknown +Seiden, Mark USD.01: 0% USD:1-1 + " USD.03: 0% USD:3-1 + " USD.04: 0% USD:4-1 + " USD.13: 0% USD:13-2 + " USD.17: 0% USD:17-1 + " USD.24: 0% USD:24-2 + " USD.25: 0% USD:25-1 +Select CONNECT.2: 66% CONNECT(2)-1 + " USLEEP.3: 79% USLEEP(3)-1 + " SMM.01: 35% SMM:1-23 + " SMM.12A: 58% SMM:12-14 +select - synchronous I/O multiplexing SELECT.2: 1% SELECT(2)-1 +select call PS1.06: 38% PS1:6-18 + " PS1.06: 39% PS1:6-19 + " PS1.06: 55% PS1:6-26 + " PS1.08: 25% PS1:8-9 + " PS1.08: 26% PS1:8-9 + " PS1.08: 27% PS1:8-9 + " PS1.08: 59% PS1:8-24 +Select Statement[s] PS2.06: 49% PS2:6-17 + " PS2.06: 49% PS2:6-17 + " PS2.06: 56% PS2:6-20 + " PS2.06: 58% PS2:6-21 +select call SMM.13: 22% SMM:13-9 +Select for exceptional conditions on socket[s] SMM.13: 38% SMM:13-14 +select messages PICK.N: 0% PICK(1)-1 + " USD.08: 39% USD:8-47 +Select window WINDOW.1: 24% WINDOW(1)-2 +select-buffer (C-X B) USD.17: 91% USD:17-44 +selected messages PICK.N: 52% PICK(1)-2 + " USD.08: 41% USD:8-48 + " USD.08: 80% USD:8-98 +selecting a fragment size SMM.01: 48% SMM:1-31 +Selecting Buffer[s], Creating and USD.17: 35% USD:17-16 +Selecting lines for editing USD.18: 22% USD:18-2 +selector[s], port L_SYS.5: 89% L.SYS(5)-4 + " REMOTE.5: 46% REMOTE(5)-1 + " SMM.09: 46% SMM:9-10 + " SMM.09: 47% SMM:9-10 + " SMM.09: 77% SMM:9-16 +Semantics of rewriting rule set[s] SMM.07A: 48% SMM:07-22 +semantics of communication PS1.06: 74% PS1:6-33 +semaphore file CI.N: 90% CI(1)-3 + " CO.N: 89% CO(1)-3 + " RCS.N: 86% RCS(1)-2 +Semicolon USD.13: 53% USD:13-9 +Send, Expect L-DEVICES.5: 8% L-DEVICES(5)-1 + " L_SYS.5: 5% L.SYS(5)-1 + " SMM.09: 63% SMM:9-14 +semaphore[s] PS1.06: 21% PS1:6-12 +semaphore file PS1.13: 35% PS1:13-7 + " PS1.13: 54% PS1:13-10 + " PS1.13: 71% PS1:13-14 +send data without routing packet[s] PS1.08: 20% PS1:8-8 +send() PS1.07a: 86% PS1:7-22 +send(s, buf, len, flags) PS1.06: 80% PS1:6-35 +Sending an Internet domain datagram PS1.07a: 57% PS1:7-14 +send, sendto, sendmsg - send a message from a socket SEND.2: 1% SEND(2)-1 +send - send a message SEND.N: 0% SEND(1)-1 + " USD.08: 53% USD:8-64 +send a file to a remote host UUSEND.1C: 4% UUSEND(1C)-1 +send mail directly to a program USD.07: 45% USD:7-11 +send-typeout-to-buffer (variable) USD.17: 91% USD:17-44 +sendbug SMM.12A: 47% SMM:12-11 +sendbug - mail a system bug report to 4bsd-bug[s] SENDBUG.1: 6% SENDBUG(1)-1 +Sender MH-MAIL.N: 58% MH-MAIL(5)-2 + " MH-MAIL.N: 61% MH-MAIL(5)-2 + " MH-MAIL.N: 65% MH-MAIL(5)-2 + " MHMAIL.N: 64% MHMAIL(1)-1 + " SEND.N: 64% SEND(1)-1 + " SEND.N: 66% SEND(1)-1 + " SENDMAIL.8: 15% SENDMAIL(8)-1 + " USD.08: 31% USD:8-34 + " USD.08: 33% USD:8-37 + " USD.08: 54% USD:8-65 + " USD.08: 54% USD:8-65 + " USD.08: 68% USD:8-83 + " USD.08: 68% USD:8-83 + " USD.08: 68% USD:8-83 +sender addresses SMM.07A: 40% SMM:07-19 + " SMM.07A: 50% SMM:07-23 +Sending mail MAIL.1: 3% MAIL(1)-1 + " USD.01: 0% USD:1-1 +sending datagram[s] PS1.07a: 87% PS1:7-22 +Sending signal[s] PS1.06: 30% PS1:6-14 +sending of datagram[s] SOCKET.2: 70% SOCKET(2)-2 +sending signals CSH.1: 59% CSH(1)-12 + " KILL.1: 21% KILL(1)-1 + " KILL.2: 6% KILL(2)-1 + " KILLPG.2: 13% KILLPG(2)-1 +SendMail MHOOK.N: 5% MHOOK(1)-1 + " USD.08: 31% USD:8-35 + " SMM.07A: 0% SMM:07-1 + " SMM.07A: 16% SMM:07-9 + " SMM.07A: 19% SMM:07-11 + " SMM.07A: 30% SMM:07-15 + " SMM.07A: 33% SMM:07-16 + " SMM.07A: 36% SMM:07-17 + " SMM.07A: 53% SMM:07-23 + " SMM.07A: 72% SMM:07-32 + " ALIASES.5: 5% ALIASES(5)-1 + " RMAIL.1: 62% unknown + " SMM.12A: 93% SMM:12-22 +SENDMAIL - An Internetwork Mail Router SMM.16: 0% unknown +sendmail - send mail over the internet SENDMAIL.8: 0% SENDMAIL(8)-1 +sendmail configuration SMM.16: 55% SMM:16-8 +sendmail configuration file, sample SMM.01: 33% SMM:1-22 +sendmail frozen configuration file SMM.01: 33% SMM:1-22 +sendmail installation SMM.07A: 1% SMM:07-1 +SENDMAIL Installation and Operation Guide SMM.07A: 2% SMM:07-1 + " SMM.07A: 2% SMM:07-4 + " SMM.07A: 5% SMM:07-4 + " SMM.07A: 7% SMM:07-6 + " SMM.07A: 9% SMM:07-6 + " SMM.07A: 12% SMM:07-8 + " SMM.07A: 14% SMM:07-8 + " SMM.07A: 17% SMM:07-10 + " SMM.07A: 19% SMM:07-10 + " SMM.07A: 22% SMM:07-12 + " SMM.07A: 24% SMM:07-12 + " SMM.07A: 27% SMM:07-14 + " SMM.07A: 29% SMM:07-14 + " SMM.07A: 32% SMM:07-16 + " SMM.07A: 35% SMM:07-16 + " SMM.07A: 38% SMM:07-18 + " SMM.07A: 40% SMM:07-18 + " SMM.07A: 42% SMM:07-20 + " SMM.07A: 45% SMM:07-20 + " SMM.07A: 47% SMM:07-22 + " SMM.07A: 50% SMM:07-22 + " SMM.07A: 53% SMM:07-24 + " SMM.07A: 57% SMM:07-24 + " SMM.07A: 60% SMM:07-26 + " SMM.07A: 63% SMM:07-26 + " SMM.07A: 65% SMM:07-28 + " SMM.07A: 68% SMM:07-28 + " SMM.07A: 68% SMM:07-30 + " SMM.07A: 71% SMM:07-30 + " SMM.07A: 71% SMM:07-32 + " SMM.07A: 76% SMM:07-32 + " SMM.07A: 76% SMM:07-34 + " SMM.07A: 79% SMM:07-34 + " SMM.07A: 79% SMM:07-36 + " SMM.07A: 82% SMM:07-36 + " SMM.07A: 85% SMM:07-38 + " SMM.07A: 89% SMM:07-38 + " SMM.07A: 89% SMM:07-2 +sendmsg() PS1.07a: 88% PS1:7-22 +sendmsg(s, msg, flags) PS1.06: 83% PS1:6-36 +sendto ICMP.4P: 34% ICMP(4P)-1 + " IDP.4P: 12% IDP(4P)-1 + " IP.4P: 41% IP(4P)-1 + " PS1.08: 22% PS1:8-8 + " UDP.4P: 20% UDP(4P)-1 +Sentence[s] USD.15: 32% USD:15-9 +sendto call[s] PS1.08: 60% PS1:8-24 + " PS1.08: 83% PS1:8-34 + " PS1.08: 92% PS1:8-38 +sendto() PS1.07a: 87% PS1:7-22 +sendto(s, buf, len, flags, to, tolen) PS1.06: 80% PS1:6-35 +Separate Compilation PS1.04: 79% PS1:4-41 + " PS1.04: 84% PS1:4-43 + " PS1.04: 84% PS1:4-43 + " PS1.04: 98% PS1:4-50 +sentence[s], complex USD.32: 28% USD:32-5 + " USD.32: 28% USD:32-5 + " USD.32: 44% USD:32-6 + " USD.32: 58% USD:32-9 +sentence[s], compound-complex USD.32: 29% USD:32-5 + " USD.32: 38% USD:32-6 + " USD.32: 58% USD:32-9 +sentence, end of a USD.24: 34% USD:24-12 +Sentences, Finding USD.32: 69% USD:32-10 + " USD.32: 69% USD:32-10 + " USD.32: 70% USD:32-10 +sentence[s], imperative USD.32: 13% USD:32-3 + " USD.32: 13% USD:32-3 + " USD.32: 25% USD:32-4 + " USD.32: 59% USD:32-9 + " USD.32: 68% USD:32-10 + " USD.32: 68% USD:32-10 +sentences, wordy DICTION.1: 7% DICTION(1)-1 +sentence boundary[s] USD.15: 33% USD:15-10 + " USD.32: 70% USD:32-10 +Sentence Command[s] USD.17: 25% USD:17-11 +Sentence Identification USD.32: 65% USD:32-10 +sentence length STYLE.1: 25% STYLE(1)-1 + " USD.32: 6% USD:32-2 + " USD.32: 23% USD:32-4 + " USD.32: 23% USD:32-4 + " USD.32: 30% USD:32-5 +sentence opener[s] STYLE.1: 30% STYLE(1)-1 + " USD.32: 1% USD:32-1 + " USD.32: 4% USD:32-1 + " USD.32: 6% USD:32-2 + " USD.32: 41% USD:32-6 + " USD.32: 42% USD:32-6 + " USD.32: 42% USD:32-6 + " USD.32: 42% USD:32-6 + " USD.32: 68% USD:32-10 +sentence structure[s] USD.32: 23% USD:32-4 + " USD.32: 24% USD:32-4 + " USD.32: 29% USD:32-5 +sentence type[s] USD.32: 1% USD:32-1 + " USD.32: 4% USD:32-1 + " USD.32: 10% USD:32-2 + " USD.32: 25% USD:32-4 + " USD.32: 38% USD:32-6 + " USD.32: 53% USD:32-8 + " USD.32: 61% USD:32-9 + " USD.32: 66% USD:32-10 + " USD.32: 66% USD:32-10 + " USD.32: 67% USD:32-10 +sentences and paragraph, manipulating USD.17: 25% USD:17-11 +separate compilation facility PS1.04: 0% + " PS1.04: 48% PS1:4-25 + " PS1.04: 79% PS1:4-41 +separator property PS2.09: 48% PS2:9-85 + " PS2.09: 49% PS2:9-87 + " PS2.09: 49% PS2:9-87 + " PS2.09: 50% PS2:9-88 + " PS2.09: 50% PS2:9-89 + " PS2.09: 53% PS2:9-94 + " PS2.09: 53% PS2:9-94 + " PS2.09: 54% PS2:9-94 + " PS2.09: 54% PS2:9-95 +separator[s], field USD.19: 18% USD:19-2 + " USD.19: 29% USD:19-3 + " USD.19: 58% USD:19-5 +separator, output field AWK.1: 42% AWK(1)-1 + " AWK.1: 81% AWK(1)-2 + " USD.19: 20% USD:19-2 + " USD.19: 24% USD:19-3 +separator, output record AWK.1: 43% AWK(1)-1 + " AWK.1: 82% AWK(1)-2 + " USD.19: 24% USD:19-3 + " USD.19: 25% USD:19-3 +separator[s], record USD.19: 14% USD:19-2 + " USD.19: 16% USD:19-2 + " USD.19: 17% USD:19-2 + " USD.19: 17% USD:19-2 +sequence[s], Command USD.17: 54% USD:17-24 + " XSTR.1: 70% XSTR(1)-1 +sequence[s], calling PS1.02: 0% + " PS1.02: 2% PS1:2-4 + " PS2.01: 28% PS2:1-5 +sequence, clear-screen PS1.18: 34% PS1:18-9 + " PS1.18: 36% PS1:18-9 + " PS1.18: 37% PS1:18-10 +sequence[s], escape LIB2648.3X: 12% LIB2648(3X)-1 + " MORE.1: 20% MORE(1)-1 + " MORE.1: 20% MORE(1)-1 + " MORE.1: 22% MORE(1)-1 + " MORE.1: 32% MORE(1)-1 + " PS1.01: 4% PS1:1-2 + " PS2.01: 34% PS2:1-5 + " PS2.10: 59% PS2:10-51 +Sequenced Packet[s] PS1.06: 74% PS1:6-33 +Sequential access PS1.03: 7% PS1:3-3 + " PS1.03: 22% PS1:3-4 + " PS1.03: 71% PS1:3-9 + " PS2.01: 90% PS2:1-13 +sequence[s], escape SED.1: 20% SED(1)-1 + " SMM.09: 46% SMM:9-10 + " TERMCAP.5: 29% TERMCAP(5)-6 + " TERMCAP.5: 83% TERMCAP(5)-12 + " TERMCAP.5: 88% TERMCAP(5)-12 + " TTY.4: 40% TTY(4)-4 + " USD.15: 96% USD:15-27 + " USD.17: 53% USD:17-24 + " USD.24: 63% USD:24-20 + " USD.24: 65% USD:24-21 +sequence[s], expect/send SMM.09: 46% SMM:9-10 + " SMM.09: 46% SMM:9-10 + " SMM.09: 46% SMM:9-10 + " SMM.09: 46% SMM:9-10 + " SMM.09: 77% SMM:9-17 +sequence[s], login FTP.1C: 70% FTP(1C)-5 + " SMM.01: 59% SMM:1-36 + " SMM.01: 59% SMM:1-36 + " USD.14: 13% USD:14-4 +sequence[s], message MARK.N: 5% MARK(1)-1 + " MARK.N: 9% MARK(1)-1 + " MARK.N: 14% MARK(1)-1 + " MARK.N: 16% MARK(1)-1 + " MARK.N: 74% MARK(1)-1 + " MARK.N: 81% MARK(1)-1 + " PICK.N: 62% PICK(1)-2 + " USD.08: 25% USD:8-28 + " USD.08: 25% USD:8-28 + " USD.08: 25% USD:8-28 + " USD.08: 25% USD:8-28 + " USD.08: 26% USD:8-28 + " USD.08: 27% USD:8-29 + " USD.08: 41% USD:8-48 + " USD.08: 79% USD:8-98 +sequence[s], private MH-PROFILE.N: 15% MH-PROFILE(5)-1 + " RMF.N: 55% RMF(1)-1 + " USD.08: 45% USD:8-54 + " USD.08: 50% USD:8-60 + " USD.08: 70% USD:8-86 + " USD.08: 74% USD:8-89 + " USD.08: 81% USD:8-100 + " USD.08: 81% USD:8-100 + " USD.08: 81% USD:8-100 +sequences, public MH-PROFILE.N: 14% MH-PROFILE(5)-1 + " MH-PROFILE.N: 14% MH-PROFILE(5)-1 + " USD.08: 69% USD:8-85 + " USD.08: 69% USD:8-85 + " USD.08: 81% USD:8-100 + " USD.08: 81% USD:8-100 +SEQUENCES, USER-DEFINED USD.08: 79% USD:8-98 + " USD.08: 79% USD:8-98 +sequence count SMM.21: 34% SMM:21-3 +sequence number[s] SMM.09: 24% SMM:9-6 + " SMM.10: 39% SMM:10-11 + " SMM.13: 76% SMM:13-26 + " SMM.13: 76% SMM:13-26 + " SMM.15: 4% SMM:15-3 + " SMM.15: 5% SMM:15-3 + " SMM.21: 34% SMM:21-3 + " SMM.22: 16% SMM:22-2 + " USD.19: 55% USD:19-5 +Sequence-Negation USD.08: 69% USD:8-85 + " USD.08: 81% USD:8-101 + " USD.08: 81% USD:8-101 + " USD.08: 82% USD:8-101 + " USD.08: 82% USD:8-101 +Sequenced Packet Protocol SMM.13: 85% SMM:13-29 + " NS.4F: 72% NS(4F)-1 +sequenced packet protocol trace TRSP.8C: 3% TRSP(8c)-1 +sequenced packet socket type SPP.4P: 5% SPP(4P)-1 + " NS.4F: 15% NS(4F)-1 + " LISTEN.2: 37% LISTEN(2)-1 + " SOCKET.2: 23% SOCKET(2)-1 +sequencer, notesfile USD.11: 63% USD:11-10 +sequencer mode USD.11: 17% USD:11-3 + " USD.11: 17% USD:11-3 + " USD.11: 65% USD:11-10 + " USD.11: 81% USD:11-12 +Serial SMM.11: 48% SMM:11-7 + " SMM.11: 75% SMM:11-11 + " SMM.11: 76% SMM:11-12 + " SMM.11: 81% SMM:11-13 +sequential file[s] PS1.03: 7% PS1:3-3 + " PS1.03: 15% PS1:3-3 + " PS1.03: 73% PS1:3-9 +sequential I/O PS1.02: 47% PS1:2-15 + " PS1.02: 71% PS1:2-24 + " PS1.02: 80% PS1:2-26 + " PS1.02: 80% PS1:2-26 + " PS1.02: 80% PS1:2-26 + " PS1.03: 71% PS1:3-9 +serial line[s] DMF.4: 41% DMF(4)-1 + " SLATTACH.8C: 6% SLATTACH(8C)-1 + " SMM.06: 36% SMM:6-3 + " TB.4: 12% TB(4)-1 + " TU.4: 22% TU(4)-1 +serial line[s], Printers on SMM.06: 36% SMM:6-3 +Server[s] SMM.11: 32% SMM:11-5 + " SMM.11: 73% SMM:11-11 + " SMM.11: 99% SMM:11-16 +servent, struct PS1.08: 37% PS1:8-14 + " PS1.08: 41% PS1:8-16 + " PS1.08: 45% PS1:8-18 +Server[s] PS1.08: 45% PS1:8-17 +server[s], FTP FTP.1C: 2% FTP(1C)-1 + " FTP.1C: 21% FTP(1C)-2 + " FTP.1C: 49% FTP(1C)-4 + " FTP.1C: 50% FTP(1C)-4 + " FTP.1C: 52% FTP(1C)-4 + " FTP.1C: 57% FTP(1C)-4 + " FTP.1C: 58% FTP(1C)-5 + " FTP.1C: 60% FTP(1C)-5 + " FTP.1C: 67% FTP(1C)-5 + " FTP.1C: 69% FTP(1C)-5 + " FTP.1C: 70% FTP(1C)-5 + " FTP.1C: 71% FTP(1C)-5 + " FTP.1C: 72% FTP(1C)-6 + " FTPD.8C: 11% FTPD(8C)-1 + " FTPD.8C: 15% FTPD(8C)-1 + " FTPD.8C: 42% FTPD(8C)-1 + " SMM.01: 72% SMM:1-43 + " SMM.01: 73% SMM:1-44 + " SMM.01: 73% SMM:1-44 + " SMM.12A: 85% SMM:12-20 +server[s], Internet domain name NAMED.8: 1% NAMED(8)-1 + " NAMED.8: 4% NAMED(8)-1 + " RESOLVER.3: 20% RESOLVER(3)-1 +server, login LOGIN.1: 90% LOGIN(1)-1 + " RLOGIND.8C: 2% RLOGIND(8C)-1 +server[s], name GETHOSTBYNAME.3N: 17% GETHOSTBYNAME(3) + " GETHOSTBYNAME.3N: 19% GETHOSTBYNAME(3) + " GETHOSTBYNAME.3N: 29% GETHOSTBYNAME(3) + " GETHOSTBYNAME.3N: 50% GETHOSTBYNAME(3) + " GETHOSTBYNAME.3N: 77% GETHOSTBYNAME(3) + " GETHOSTBYNAME.3N: 85% GETHOSTBYNAME(3) + " HOSTS.5: 32% HOSTS(5)-1 + " HOSTS.5: 36% HOSTS(5)-1 + " HOSTS.5: 38% HOSTS(5)-1 + " HOSTS.5: 69% HOSTS(5)-1 + " NAMED.8: 17% NAMED(8)-1 + " NAMED.8: 19% NAMED(8)-1 + " NAMED.8: 37% NAMED(8)-1 + " NETWORKS.5: 92% NETWORKS(5)-1 + " PROTOCOLS.5: 88% PROTOCOLS(5)-1 + " RESOLVER.3: 47% RESOLVER(3)-2 + " RESOLVER.3: 53% RESOLVER(3)-2 + " RESOLVER.3: 71% RESOLVER(3)-2 + " RESOLVER.5: 25% RESOLVER(5)-1 + " RESOLVER.5: 52% RESOLVER(5)-1 + " RESOLVER.5: 56% RESOLVER(5)-1 + " RESOLVER.5: 59% RESOLVER(5)-1 + " RESOLVER.5: 62% RESOLVER(5)-1 + " SMM.01: 32% SMM:1-22 + " SMM.01: 32% SMM:1-22 + " SMM.01: 32% SMM:1-22 + " SMM.01: 32% SMM:1-22 + " SMM.01: 33% SMM:1-22 + " SMM.01: 33% SMM:1-22 + " SMM.01: 54% SMM:1-34 + " SMM.01: 70% SMM:1-42 + " SMM.01: 70% SMM:1-42 + " SMM.01: 71% SMM:1-42 + " SMM.11: 1% SMM:11-2 + " SMM.11: 2% SMM:11-2 + " SMM.11: 4% SMM:11-2 + " SMM.11: 5% SMM:11-2 + " SMM.11: 7% SMM:11-2 + " SMM.11: 8% SMM:11-2 + " SMM.11: 8% SMM:11-2 + " SMM.11: 9% SMM:11-2 + " SMM.11: 11% SMM:11-2 + " SMM.11: 19% SMM:11-3 + " SMM.11: 19% SMM:11-3 + " SMM.11: 20% SMM:11-3 + " SMM.11: 29% SMM:11-4 + " SMM.11: 32% SMM:11-5 + " SMM.11: 41% SMM:11-6 + " SMM.11: 49% SMM:11-7 + " SMM.11: 50% SMM:11-7 + " SMM.11: 52% SMM:11-7 + " SMM.11: 52% SMM:11-7 + " SMM.11: 70% SMM:11-10 + " SMM.11: 84% SMM:11-13 + " SMM.16: 83% SMM:16-11 + " SMM.07A: 3% SMM:07-4 + " SMM.07A: 3% SMM:07-4 + " SMM.07A: 4% SMM:07-4 + " SMM.12A: 3% SMM:12-2 + " SMM.12A: 64% SMM:12-15 + " SMM.12A: 64% SMM:12-15 + " SMM.12A: 65% SMM:12-15 + " SMM.12A: 65% SMM:12-15 + " SMM.12A: 65% SMM:12-15 + " SMM.12A: 94% SMM:12-22 +server, name domain SMM.12A: 3% SMM:12-2 +Server, Primary Master SMM.11: 15% SMM:11-3 + " SMM.11: 16% SMM:11-3 + " SMM.11: 17% SMM:11-3 + " SMM.11: 53% SMM:11-7 + " SMM.11: 70% SMM:11-10 +Server, Primary Master Name SMM.11: 70% SMM:11-10 + " SMM.11: 71% SMM:11-10 + " SMM.11: 72% SMM:11-10 +server, rexecd - remote execution REXECD.8C: 1% REXECD(8C)-1 +server, rlogind - remote login RLOGIND.8C: 2% RLOGIND(8C)-1 +server, rshd - remote shell RSHD.8C: 1% RSHD(8C)-1 +server[s], rwho PS1.08: 51% PS1:8-20 + " PS1.08: 52% PS1:8-21 + " PS1.08: 52% PS1:8-21 + " PS1.08: 53% PS1:8-21 + " PS1.08: 54% PS1:8-21 + " PS1.08: 56% PS1:8-22 + " PS1.08: 52% PS1:8-21 +server processes PS1.06: 62% PS1:6-29 + " PS1.06: 63% PS1:6-29 + " PS1.08: 16% PS1:8-6 + " PS1.08: 17% PS1:8-7 + " PS1.08: 31% PS1:8-11 + " PS1.08: 42% PS1:8-17 + " PS1.08: 43% PS1:8-17 + " PS1.08: 43% PS1:8-17 + " PS1.08: 43% PS1:8-17 + " PS1.08: 43% PS1:8-17 + " PS1.08: 49% PS1:8-20 + " PS1.08: 52% PS1:8-21 + " PS1.08: 60% PS1:8-24 + " PS1.08: 68% PS1:8-27 + " PS1.08: 69% PS1:8-27 + " PS1.08: 75% PS1:8-30 +server[s], rwho RWHOD.8C: 66% RWHOD(8C)-1 +server, rwhod - system status RWHOD.8C: 1% RWHOD(8C)-1 +server, secondary SMM.11: 28% SMM:11-4 + " SMM.11: 30% SMM:11-4 + " SMM.11: 51% SMM:11-7 +Server, Secondary Master SMM.11: 16% SMM:11-3 + " SMM.11: 29% SMM:11-4 + " SMM.11: 71% SMM:11-10 +server, SMTP SMM.16: 2% SMM:16-1 + " SMM.07A: 27% SMM:07-14 +server, talkd - remote user communication TALKD.8C: 4% unknown +server, telnet TELNET.1C: 20% TELNET(1C)-1 +server, telnetd - DARPA TELNET protocol TELNETD.8C: 2% TELNETD(8C)-1 +server, tftpd - DARPA Trivial File Transfer Protocol TFTPD.8C: 5% TFTPD(8C)-1 +servers, time ADJTIME.2: 54% ADJTIME(2)-1 + " ADJTIME.2: 58% ADJTIME(2)-1 + " TIMED.8: 13% TIMED(8)-1 +server processes COMSAT.8C: 9% COMSAT(8C)-1 + " NETSTAT.1: 22% NETSTAT(1)-1 + " SMM.01: 72% SMM:1-43 + " TTY.4: 8% TTY(4)-1 +server program[s] INETD.8: 74% INETD(8)-1 + " SMM.01: 68% SMM:1-41 + " SMM.01: 68% SMM:1-41 + " INETD.8: 27% INETD(8)-1 +service definition PS1.08: 49% PS1:8-20 + " PS1.08: 45% PS1:8-17 +service name[s] PS1.08: 31% PS1:8-11 + " PS1.08: 36% PS1:8-14 + " PS1.08: 37% PS1:8-14 + " PS2.09: 17% PS2:9-32 +service, character generator INETD.8: 84% INETD(8)-2 +service, daytime INETD.8: 85% INETD(8)-2 +service, discard INETD.8: 86% INETD(8)-2 +service, echo INETD.8: 84% INETD(8)-2 +service[s], Network SMM.01: 60% SMM:1-38 + " SMM.11: 1% SMM:11-2 + " SMM.15: 3% SMM:15-3 + " SMM.21: 87% SMM:21-6 +service, time INETD.8: 86% INETD(8)-2 +service name[s] INETD.8: 31% INETD(8)-1 + " SERVICES.5: 71% SERVICES(5)-1 + " SMM.01: 68% SMM:1-41 + " INETD.8: 26% INETD(8)-1 + " SERVICES.5: 30% SERVICES(5)-1 +service specification[s] GETTABLE.8C: 54% GETTABLE(8C)-1 + " REXECD.8C: 11% REXECD(8C)-1 + " RLOGIND.8C: 14% RLOGIND(8C)-1 + " RSHD.8C: 9% RSHD(8C)-1 + " RWHOD.8C: 25% RWHOD(8C)-1 +services - service name data base SERVICES.5: 5% SERVICES(5)-1 +session, editing USD.12: 24% USD:12-3 + " USD.14: 14% USD:14-4 + " USD.14: 14% USD:14-5 + " USD.14: 19% USD:14-6 + " USD.14: 24% USD:14-7 + " USD.14: 30% USD:14-8 + " USD.14: 37% USD:14-10 + " USD.14: 48% USD:14-12 + " USD.14: 48% USD:14-12 + " USD.14: 51% USD:14-13 + " USD.14: 63% USD:14-16 + " USD.14: 82% USD:14-20 + " USD.14: 93% USD:14-22 + " USD.15: 64% USD:15-18 + " USD.16: 32% USD:16-6 + " USD.17: 10% USD:17-5 + " USD.17: 55% USD:17-24 + " USD.17: 55% USD:17-24 + " USD.15: 10% USD:15-4 + " USD.15: 10% USD:15-4 + " USD.16: 3% USD:16-1 +session, FTP FTP.1C: 8% FTP(1C)-1 + " FTP.1C: 11% FTP(1C)-1 + " FTPD.8C: 10% FTPD(8C)-1 +session, hard-copy record of terminal SCRIPT.1: 63% SCRIPT(1)-1 +session, history of your USD.17: 46% USD:17-20 +session, terminal SCRIPT.1: 9% SCRIPT(1)-1 + " USD.04: 23% USD:4-11 +session layer SMM.15: 4% SMM:15-3 +session script TIP.1C: 82% TIP(1C)-3 +set - Bourne shell command SH.1: 0% SH(1)-1 +set breakpoint[s] ADB.1: 75% ADB(1)-5 + " PS1.10: 96% PS1:10-27 +set command[s] CSH.1: 69% CSH(1)-14 + " JOVE.N: 64% JOVE(1)-2 + " SH.1: 95% SH(1)-6 + " USD.03: 56% USD:3-14 + " USD.04: 24% USD:4-11 + " USD.04: 26% USD:4-12 + " USD.04: 27% USD:4-12 + " USD.04: 65% USD:4-32 + " USD.04: 84% USD:4-39 + " USD.04: 95% USD:4-43 + " USD.07: 14% USD:7-4 + " USD.07: 14% USD:7-4 + " USD.07: 18% USD:7-5 + " USD.07: 18% USD:7-5 + " USD.07: 19% USD:7-5 + " USD.07: 68% USD:7-16 + " USD.07: 91% USD:7-22 + " USD.15: 46% USD:15-13 + " USD.15: 47% USD:15-13 + " USD.15: 47% USD:15-14 + " USD.17: 53% USD:17-23 + " USD.17: 58% USD:17-26 + " USD.17: 91% USD:17-44 + " CSH.1: 27% CSH(1)-6 + " CSH.1: 68% CSH(1)-14 +Set Date Acknowledgment Message SMM.22: 74% SMM:22-8 +Set Date Message SMM.22: 73% SMM:22-7 + " SMM.22: 67% SMM:22-7 +Set Date Request Message SMM.22: 77% SMM:22-8 + " SMM.22: 70% SMM:22-7 +set descriptor option[s] PS1.06: 40% PS1:6-19 +set descriptor owner (pid/pgrp) PS1.06: 40% PS1:6-19 +set dot USD.13: 54% USD:13-10 + " USD.13: 56% USD:13-10 + " USD.13: 62% USD:13-11 +set group id STAT.2: 59% STAT(2)-2 + " CHMOD.1: 15% CHMOD(1)-1 + " CHMOD.2: 14% CHMOD(2)-1 +Set Network Time Message SMM.22: 36% SMM:22-4 +set mask PS1.08: 26% PS1:8-9 + " PS1.08: 27% PS1:8-10 +set of pattern[s], searching for lines which match any of a USD.19: 6% USD:19-1 +set parameter[s] USD.16: 50% USD:16-10 +Set prevailing indent MAN.7: 50% MAN(7)-1 + " MAN.7: 63% MAN(7)-1 + " MAN.7: 65% MAN(7)-1 +Set the mark USD.17: 12% USD:17-6 +set user id SCCS.1: 5% SCCS(1)-1 + " SCCS.1: 64% SCCS(1)-2 + " SCCS.1: 79% SCCS(1)-2 + " SMM.09: 91% SMM:9-19 + " STAT.2: 58% STAT(2)-2 + " CHMOD.1: 14% CHMOD(1)-1 + " CHMOD.2: 13% CHMOD(2)-1 +set user id shell script[s] SMM.12A: 14% SMM:12-4 +Set vertical base-line spacing USD.24: 39% USD:24-13 +set-GID SMM.17: 38% SMM:17-2 +set-group- id SMM.12A: 40% SMM:12-9 +set-group-ID GETGID.2: 71% + " INTRO.2: 72% INTRO(2)-6 + " LS.1: 80% LS(1)-2 + " PTRACE.2: 71% PTRACE(2)-2 + " SMM.01: 31% SMM:1-21 + " SMM.01: 31% SMM:1-21 +set-group-id program[s] CHOWN.2: 27% CHOWN(2)-1 + " SMM.12A: 49% SMM:12-11 + " SMM.12A: 55% SMM:12-13 +set-mark (C-@) USD.17: 91% USD:17-44 +set-UID SMM.17: 38% SMM:17-2 +set-UID programs SMM.17: 61% SMM:17-2 + " SMM.17: 85% SMM:17-3 + " SMM.17: 99% SMM:17-3 + " ACCESS.2: 30% ABS(3)-1 +set-user ID shell script CSH.1: 91% CSH(1)-19 +set-user-id CHOWN.2: 26% CHOWN(2)-1 + " GETUID.2: 57% GETUID(2)-1 + " INTRO.2: 72% INTRO(2)-6 + " LS.1: 82% LS(1)-2 + " NCHECK.8: 61% NCHECK(8)-1 + " PTRACE.2: 71% unknown + " WRITE.2: 38% WRITE(2)-1 +setbuf, setbuffer, setlinebuf - assign buffering to a stream SETBUF.3S: 2% SETBUF(3S)-1 +setenv command CSH.1: 75% CSH(1)-16 + " ENVIRON.7: 78% ENVIRON(7)-1 + " USD.04: 51% USD:4-23 + " CSH.1: 69% CSH(1)-14 +setenv TERM TSET.1: 35% TSET(1)-2 + " USD.15: 4% USD:15-2 + " USD.15: 4% USD:15-2 +setfsent GETFSENT.3: 6% GETFSENT(3)-1 +setgrent GETGRENT.3: 5% GETGRENT(3)-1 +setgroups - set group access list SETGROUPS.2: 5% SETGROUPS(2)-1 +Sethi-Ullman number[s] SMM.19: 52% SMM:19-15 + " SMM.19: 54% SMM:19-15 + " SMM.19: 54% SMM:19-15 + " SMM.19: 54% SMM:19-15 + " SMM.19: 54% SMM:19-15 + " SMM.19: 54% SMM:19-15 + " SMM.19: 55% SMM:19-15 + " SMM.19: 77% SMM:19-22 + " SMM.19: 80% SMM:19-22 + " SMM.19: 80% SMM:19-22 + " SMM.19: 80% SMM:19-22 + " SMM.19: 80% SMM:19-22 + " SMM.19: 81% SMM:19-23 + " SMM.19: 81% SMM:19-23 + " SMM.19: 82% SMM:19-23 + " SMM.19: 83% SMM:19-23 + " SMM.19: 92% SMM:19-25 +setgroups(gidsetsize, gidset) PS1.06: 12% PS1:6-9 +sethostent GETHOSTBYNAME.3N: 2% GETHOSTBYNAME(3) +sethostid - set unique identifier of current host GETHOSTID.2: 9% GETHOSTID(2)-1 +sethostid(hostid) PS1.06: 7% PS1:6-7 +sethostname - set name of current host GETHOSTNAME.2: 5% GETHOSTNAME(2)- +sethostname(name, len) PS1.06: 8% PS1:6-7 +setitimer USLEEP.3: 87% USLEEP(3)-1 +setitimer - set value of interval timer GETITIMER.2: 2% GETITIMER(2)-1 +setitimer(which, value, ovalue) PS1.06: 34% PS1:6-17 +setjmp SMM.12A: 70% SMM:12-16 +setjmp, longjmp - non-local goto SETJMP.3: 3% SETJMP(3)-1 +setlogmask - control system log SYSLOG.3: 1% SYSLOG(3)-1 +setnetent GETNETENT.3N: 4% GETNETENT(3N)-1 +setpgrp - set process group SETPGRP.2: 5% SETPGRP(2)-1 +setpriority SMM.12A: 59% SMM:12-14 +setpriority - set program scheduling priority GETPRIORITY.2: 3% GETPRIORITY(2)- +setpriority(which, who, prio) PS1.06: 44% PS1:6-21 +setprotoent GETPROTOENT.3N: 6% GETPROTOENT(3N) +setpwent GETPWENT.3: 4% GETPWENT(3)-1 +setpwfile GETPWENT.3: 5% GETPWENT(3)-1 +setquota - enable/disable quotas on a file system SETQUOTA.2: 2% SETQUOTA(2)-1 +setquota(special, file) PS1.06: 72% PS1:6-32 +setregid - set real and effective group ID SETREGID.2: 5% SETREGID(2)-1 +setregid(rgid, egid) PS1.06: 12% PS1:6-9 +setreuid SMM.12A: 60% SMM:12-14 +setreuid - set real and effective user ID'[s] SETREUID.2: 6% SETREUID(2)-1 +setreuid(ruid, euid) PS1.06: 12% PS1:6-9 +setrlimit GETRLIMIT.2: 1% GETRLIMIT(2)-1 +setservent GETSERVENT.3N: 4% GETSERVENT(3N)- +setsockopt IP.4P: 23% IP(4P)-1 + " SMM.12A: 59% SMM:12-14 +setsockopt - set options on socket[s] GETSOCKOPT.2: 1% GETSOCKOPT(2)-1 +setsockopt call[s] GETSOCKOPT.2: 67% GETSOCKOPT(2)-2 + " SPP.4P: 92% SPP(4P)-2 + " TCP.4P: 66% TCP(4P)-1 +setsockopt(s, level, optname, optval, optlen) PS1.06: 85% PS1:6-36 + " PS1.08: 84% PS1:8-35 +setstate RANDOM.3: 2% RANDOM(3)-1 +setsyntax function PS2.09: 48% PS2:9-85 + " PS2.09: 52% PS2:9-92 + " PS2.09: 54% PS2:9-95 +setterm, Variables Set By PS1.18: 63% PS1:18-18 +setterm() PS1.18: 22% PS1:18-6 + " PS1.18: 26% PS1:18-7 +setterm(name) PS1.18: 59% PS1:18-17 +settimeofday PS1.06: 32% PS1:6-16 +settings, default USD.20: 68% USD:20-5 +settings, nmap FTP.1C: 18% FTP(1C)-2 + " FTP.1C: 32% FTP(1C)-3 + " FTP.1C: 35% FTP(1C)-3 + " FTP.1C: 56% FTP(1C)-4 +Setting up a UUCP connection SMM.01: 56% SMM:1-35 +setting up the /usr file system SMM.01: 20% SMM:1-14 +Setting up the mail system SMM.01: 55% SMM:1-35 +setting up the new 4.3BSD filesystem[s] SMM.01: 24% SMM:1-17 +setting up your terminal TSET.1: 2% TSET(1)-1 +setting variable[s] SH.1: 20% SH(1)-2 + " SH.1: 77% SH(1)-5 +setttyent GETTTYENT.3: 2% GETTTYENT(3)-1 +setuid SMM.09: 99% SMM:9-21 +setusershell GETUSERSHELL.3: 8% GETUSERSHELL(3) +Sex in Crustacean[s] USD.21: 42% USD:21-2 +sgttyb, struct STTY.3C: 18% STTY(3C)-1 + " STTY.3C: 24% STTY(3C)-1 + " TTY.4: 58% TTY(4)-6 + " TTY.4: 75% TTY(4)-8 +SH FLOCK.2: 6% FLOCK(2)-1 + " SMM.12A: 47% SMM:12-11 +sharable executable file[s] STICKY.8: 18% STICKY(8)-1 + " STICKY.8: 38% STICKY(8)-1 + " STICKY.8: 45% STICKY(8)-1 +shared text PS1.10: 43% PS1:10-9 +shared, calendars, CALENDAR.1: 69% +shared lock[s] FLOCK.2: 45% FLOCK(2)-1 + " SMM.14: 83% SMM:14-12 + " FLOCK.2: 6% FLOCK(2)-1 + " SMM.14: 82% SMM:14-12 +shared string[s] XSTR.1: 4% XSTR(1)-1 +shared text EXECVE.2: 84% EXECVE(2)-2 + " LD.1: 58% LD(1)-2 +Sharing object module[s] SMM.02: 16% SMM:2-6 +Shell[s] FIND.1: 79% FIND(1)-2 + " GREP.1: 48% GREP(1)-1 + " MAIL.1: 38% MAIL(1)-3 + " PASSWD.5: 26% PASSWD(5)-1 + " SU.1: 26% SU(1)-1 + " SU.1: 38% SU(1)-1 + " SYSTEM.3F: 39% SYSTEM(3F)-1 + " USD.01: 59% USD:1-9 + " USD.01: 80% USD:1-12 + " USD.07: 73% USD:7-17 + " USD.11: 85% USD:11-13 + " USD.17: 47% USD:17-21 + " VGRIND.1: 59% VGRIND(1)-1 + " WAIT.1: 51% WAIT(1)-1 + " WAIT.1: 81% WAIT(1)-1 + " ENVIRON.7: 51% ENVIRON(7)-1 +Shell, Bourne JOVE.N: 12% JOVE(1)-1 + " MHOOK.N: 22% MHOOK(1)-2 + " TSET.1: 34% TSET(1)-2 + " USD.08: 32% USD:8-36 + " USD.15: 4% USD:15-2 + " SH.1: 1% SH(1)-1 + " TSET.1: 39% TSET(1)-2 +sharing of data between processes PS1.06: 14% PS1:6-10 +shell, C JOVE.N: 11% JOVE(1)-1 + " LEARN.1: 8% LEARN(1)-1 + " TSET.1: 35% TSET(1)-2 + " USD.04: 0% USD:4-1 + " USD.04: 0% USD:4-1 + " USD.04: 2% USD:4-2 + " USD.04: 2% USD:4-2 + " USD.04: 5% USD:4-4 + " USD.04: 8% USD:4-4 + " USD.04: 10% USD:4-6 + " USD.04: 13% USD:4-6 + " USD.04: 16% USD:4-8 + " USD.04: 18% USD:4-8 + " USD.04: 21% USD:4-10 + " USD.04: 23% USD:4-10 + " USD.04: 26% USD:4-12 + " USD.04: 28% USD:4-12 + " USD.04: 31% USD:4-14 + " USD.04: 32% USD:4-14 + " USD.04: 34% USD:4-16 + " USD.04: 37% USD:4-16 + " USD.04: 40% USD:4-18 + " USD.04: 41% USD:4-18 + " USD.04: 43% USD:4-20 + " USD.04: 45% USD:4-20 + " USD.04: 48% USD:4-22 + " USD.04: 50% USD:4-22 + " USD.04: 51% USD:4-24 + " USD.04: 52% USD:4-24 + " USD.04: 56% USD:4-26 + " USD.04: 58% USD:4-28 + " USD.04: 60% USD:4-28 + " USD.04: 61% USD:4-30 + " USD.04: 63% USD:4-30 + " USD.04: 64% USD:4-32 + " USD.04: 66% USD:4-32 + " USD.04: 67% USD:4-34 + " USD.04: 70% USD:4-34 + " USD.04: 72% USD:4-36 + " USD.04: 75% USD:4-36 + " USD.04: 78% USD:4-38 + " USD.04: 81% USD:4-38 + " USD.04: 84% USD:4-40 + " USD.04: 87% USD:4-40 + " USD.04: 90% USD:4-42 + " USD.04: 93% USD:4-42 + " USD.04: 96% USD:4-44 + " USD.04: 99% USD:4-44 +shell, chsh - change login PASSWD.1: 2% PASSWD(1)-1 +shell, Control flow in the USD.03: 23% USD:3-5 +shell, default MAIL.1: 91% MAIL(1)-6 + " MH-PROFILE.N: 50% MH-PROFILE(5)-4 + " USD.08: 72% USD:8-88 + " USD.17: 93% USD:17-45 + " WINDOW.1: 84% WINDOW(1)-6 +shell, Escaping to a USD.15: 39% USD:15-11 +shell, Fork a USD.11: 22% USD:11-4 +shells, getusershells, setusershells, endusershell - get legal user GETUSERSHELL.3: 7% GETUSERSHELL(3) +shell[s], interactive SH.1: 69% SH(1)-4 + " SH.1: 94% SH(1)-6 + " USD.03: 73% USD:3-18 + " USD.03: 74% USD:3-18 + " USD.03: 92% USD:3-22 + " USD.07: 68% USD:7-16 + " USD.17: 10% USD:17-5 + " USD.17: 75% USD:17-35 + " SMM.12A: 54% SMM:12-13 + " SMM.12A: 66% SMM:12-15 +shell, Introduction to the C USD.04: 0% USD:4-1 +Shell, Introduction to the UNIX USD.03: 0% USD:3-1 +shell, Metacharacters in the USD.04: 8% USD:4-5 +shell, MH MSH.N: 0% MSH(1)-1 + " USD.08: 36% USD:8-42 +shell, programming the USD.01: 1% USD:1-1 +shell, rsh - remote RSH.1C: 2% RSH(1C)-1 +shell, single user REBOOT.8: 26% REBOOT(8)-1 + " RC.8: 53% RC(8)-1 + " INIT.8: 72% INIT(8)-1 +shell, Terminal usage of the USD.04: 2% USD:4-3 +shell, UNIX USD.03: 0% USD:3-1 + " USD.03: 0% USD:3-1 + " USD.03: 2% USD:3-1 + " USD.03: 5% USD:3-2 + " USD.03: 10% USD:3-2 + " USD.03: 15% USD:3-4 + " USD.03: 20% USD:3-4 + " USD.03: 23% USD:3-6 + " USD.03: 28% USD:3-6 + " USD.03: 31% USD:3-8 + " USD.03: 35% USD:3-8 + " USD.03: 40% USD:3-10 + " USD.03: 45% USD:3-10 + " USD.03: 48% USD:3-12 + " USD.03: 50% USD:3-12 + " USD.03: 53% USD:3-14 + " USD.03: 57% USD:3-14 + " USD.03: 62% USD:3-16 + " USD.03: 67% USD:3-16 + " USD.03: 71% USD:3-18 + " USD.03: 75% USD:3-18 + " USD.03: 80% USD:3-20 + " USD.03: 83% USD:3-20 + " USD.03: 90% USD:3-22 + " USD.03: 95% USD:3-22 + " USD.03: 98% USD:3-24 +shell, user RC.8: 53% RC(8)-1 + " REBOOT.8: 26% REBOOT(8)-1 +shell characters SMM.09: 10% SMM:9-3 + " SMM.09: 13% SMM:9-4 + " UUCP.1C: 85% UUCP(1C)-2 + " UUX.1C: 29% UUX(1C)-1 +shell command[s] CSH.1: 10% CSH(1)-2 + " CSH.1: 43% CSH(1)-9 + " FTP.1C: 79% FTP(1C)-6 + " FTP.1C: 80% FTP(1C)-6 + " MAIL.1: 67% MAIL(1)-4 + " SH.1: 66% SH(1)-4 + " SMM.10: 52% SMM:10-14 + " SMM.16: 44% SMM:16-6 + " SYSTEM.3: 13% SYSTEM(3)-1 + " USD.03: 44% USD:3-10 + " USD.04: 89% USD:4-41 + " USD.07: 24% USD:7-6 + " USD.14: 81% USD:14-20 + " USD.16: 93% USD:16-17 + " USD.17: 86% USD:17-41 +shell command script[s] USD.04: 81% USD:4-39 + " USD.04: 94% USD:4-43 + " USD.04: 98% USD:4-44 + " EXECL.3: 95% EXECL(3)-2 + " USD.01: 84% USD:1-13 + " USD.04: 33% USD:4-15 + " USD.08: 9% USD:8-8 +shell comment[s] USD.04: 54% USD:4-25 + " USD.04: 61% USD:4-29 + " CSH.1: 3% CSH(1)-1 +Shell control structure[s] USD.04: 52% USD:4-25 +SHELL environment variable USD.17: 92% USD:17-44 + " USD.04: 35% USD:4-16 + " TERM.7: 12% TERM(7)-1 + " PDX.1: 78% PDX(1)-3 + " DBX.1: 89% DBX(1)-6 + " WINDOW.1: 84% WINDOW(1)-6 +shell escape[s] USD.16: 21% USD:16-4 + " USD.16: 22% USD:16-4 + " USD.16: 64% USD:16-12 +shell escape command USD.16: 93% USD:16-17 + " USD.16: 98% USD:16-19 +shell exits CSH.1: 54% CSH(1)-11 + " SU.1: 52% SU(1)-1 +shell file[s] SH.1: 97% SH(1)-6 + " SMM.10: 31% SMM:10-9 + " SMM.10: 38% SMM:10-11 + " SMM.10: 38% SMM:10-11 + " SMM.10: 83% SMM:10-20 +Shell in a Window USD.17: 45% USD:17-20 +shell input CSH.1: 31% CSH(1)-6 + " CSH.1: 40% CSH(1)-8 + " SH.1: 48% SH(1)-3 + " SH.1: 93% SH(1)-6 + " USD.03: 1% USD:3-1 + " USD.03: 87% USD:3-21 + " USD.03: 92% USD:3-22 +Shell metacharacter[s] APPLY.1: 80% APPLY(1)-1 + " RSH.1C: 42% RSH(1C)-1 + " USD.03: 71% USD:3-17 + " USD.04: 90% USD:4-41 + " USD.07: 73% USD:7-17 + " UUCP.1C: 12% UUCP(1C)-1 + " UUX.1C: 92% UUX(1C)-2 + " CSH.1: 3% CSH(1)-1 + " EXPR.1: 86% EXPR(1)-1 +shell procedure[s] USD.03: 3% USD:3-1 + " USD.03: 20% USD:3-5 + " USD.03: 20% USD:3-5 + " USD.03: 22% USD:3-5 + " USD.03: 23% USD:3-5 + " USD.03: 30% USD:3-7 + " USD.03: 51% USD:3-13 + " USD.03: 55% USD:3-14 + " USD.03: 55% USD:3-14 + " USD.03: 57% USD:3-15 + " USD.03: 57% USD:3-15 + " USD.03: 58% USD:3-15 + " USD.03: 58% USD:3-15 + " USD.03: 61% USD:3-15 + " USD.03: 61% USD:3-15 + " USD.03: 64% USD:3-16 + " USD.03: 77% USD:3-19 + " USD.04: 53% USD:4-25 + " USD.04: 64% USD:4-31 + " USD.04: 69% USD:4-34 +Shell process[s] INIT.8: 48% INIT(8)-1 + " SH.1: 67% SH(1)-4 + " USD.17: 48% USD:17-21 +shell program[s] ECHO.1: 68% ECHO(1)-1 + " USD.03: 42% USD:3-10 + " WINDOW.1: 13% WINDOW(1)-1 + " WINDOW.1: 92% WINDOW(1)-7 +shell prompt[s] SH.1: 43% SH(1)-3 + " USD.03: 41% USD:3-10 + " USD.04: 65% USD:4-32 + " USD.04: 91% USD:4-42 +shell script[s] CSH.1: 34% CSH(1)-7 + " CSH.1: 46% CSH(1)-9 + " CSH.1: 48% CSH(1)-9 + " CSH.1: 64% CSH(1)-13 + " CSH.1: 65% CSH(1)-13 + " CSH.1: 83% CSH(1)-17 + " CSH.1: 91% CSH(1)-19 + " CSH.1: 92% CSH(1)-19 + " CSH.1: 93% CSH(1)-19 + " CSH.1: 94% CSH(1)-20 + " SMM.10: 5% SMM:10-2 + " SMM.10: 6% SMM:10-2 + " SMM.10: 67% SMM:10-17 + " SMM.10: 80% SMM:10-20 + " SMM.10: 81% SMM:10-20 + " SMM.10: 81% SMM:10-20 + " SMM.10: 82% SMM:10-20 + " TSET.1: 39% TSET(1)-2 + " TSET.1: 40% TSET(1)-2 + " USD.04: 0% USD:4-1 + " USD.04: 53% USD:4-25 + " USD.04: 53% USD:4-25 + " USD.04: 54% USD:4-25 + " USD.04: 54% USD:4-25 + " USD.04: 55% USD:4-25 + " USD.04: 55% USD:4-26 + " USD.04: 56% USD:4-26 + " USD.04: 59% USD:4-28 + " USD.04: 60% USD:4-29 + " USD.04: 62% USD:4-30 + " USD.04: 62% USD:4-30 + " USD.04: 62% USD:4-30 + " USD.04: 63% USD:4-31 + " USD.04: 64% USD:4-31 + " USD.04: 64% USD:4-31 + " USD.04: 64% USD:4-31 + " USD.04: 69% USD:4-34 + " USD.04: 70% USD:4-35 + " USD.08: 74% USD:8-90 + " USD.17: 47% USD:17-20 + " USD.29: 30% USD:29-3 + " SMM.12A: 32% SMM:12-7 + " SMM.12A: 32% SMM:12-7 + " CSH.1: 89% CSH(1)-19 +shell shell variable CSH.1: 78% CSH(1)-17 + " CSH.1: 86% CSH(1)-18 +Shell startup and termination USD.04: 23% USD:4-11 +Shell variable[s] CSH.1: 31% CSH(1)-6 + " CSH.1: 68% CSH(1)-14 + " CSH.1: 76% CSH(1)-16 + " CSH.1: 78% CSH(1)-17 + " USD.03: 33% USD:3-8 + " USD.03: 55% USD:3-14 + " USD.04: 26% USD:4-12 + " USD.04: 26% USD:4-12 + " USD.04: 26% USD:4-12 + " USD.04: 26% USD:4-12 + " USD.04: 54% USD:4-25 + " USD.04: 94% USD:4-43 + " USD.04: 98% USD:4-44 + " CSH.1: 26% CSH(1)-6 + " EXPR.1: 74% EXPR(1)-1 +shell-command (C-X !) USD.17: 92% USD:17-44 +shell-flags (variable) USD.17: 93% USD:17-45 +shift - Bourne shell command SH.1: 0% SH(1)-1 +shift action PS1.15: 27% PS1:15-8 + " PS1.15: 27% PS1:15-8 +Shift Operator[s] PS1.01: 31% PS1:1-9 + " PS1.01: 31% PS1:1-9 + " PS1.09: 73% PS1:9-8 +shift operations BIT.3F: 54% BIT(3F)-1 +shift shell command CSH.1: 70% CSH(1)-15 +shift/reduce conflict[s] PS1.15: 40% PS1:15-12 + " PS1.15: 45% PS1:15-13 + " PS1.15: 45% PS1:15-13 + " PS1.15: 46% PS1:15-14 + " PS1.15: 48% PS1:15-14 + " PS1.15: 54% PS1:15-16 + " PS1.15: 54% PS1:15-16 +Shutdown operation[s] PS1.06: 48% PS1:6-23 +shifting line[s] USD.16: 66% USD:16-13 +shiftwidth USD.16: 93% USD:16-17 +short - integer object conversion LONG.3F: 9% unknown +Shorthand for In-line Equation[s] USD.27: 65% USD:27-7 +shorthand notation[s] USD.01: 40% USD:1-6 +show - show (list) message[s] SHOW.N: 0% SHOW(1)-1 + " USD.08: 55% USD:8-66 +show command USD.08: 6% USD:8-6 +Show Match USD.17: 52% USD:17-23 +show program NEXT.N: 78% NEXT(1)-1 + " PREV.N: 78% PREV(1)-1 + " USD.08: 39% USD:8-45 + " USD.08: 43% USD:8-51 +show-match-mode USD.17: 93% USD:17-45 +showmatch USD.15: 54% USD:15-15 + " USD.16: 4% USD:16-1 + " USD.16: 93% USD:16-18 +showproc NEXT.N: 25% NEXT(1)-1 + " SHOW.N: 10% SHOW(1)-1 + " USD.08: 38% USD:8-45 + " USD.08: 43% USD:8-51 +shrink-window USD.17: 93% USD:17-45 +SHUTDOWN INTRO.2: 55% INTRO(2)-5 + " LOGIN.1: 63% LOGIN(1)-1 + " REBOOT.8: 6% REBOOT(8)-1 + " SMM.12A: 95% SMM:12-22 +shutdown - close down the system at a given time SHUTDOWN.8: 2% SHUTDOWN(8)-1 +shutdown - shut down part of a full-duplex connection SHUTDOWN.2: 6% SHUTDOWN(2)-1 +shutdown log SAVECORE.8: 23% SAVECORE(8)-1 +shutdown procedures SMM.01: 73% SMM:1-45 + " SMM.05: 20% SMM:5-5 + " SMM.05: 21% SMM:5-5 +SID[s] SCCS.1: 44% SCCS(1)-1 +shutdown(s, direction) PS1.06: 84% PS1:6-36 +SID PS1.14: 10% PS1:14-2 + " PS1.14: 11% PS1:14-2 + " PS1.14: 12% PS1:14-2 + " PS1.14: 13% PS1:14-2 + " PS1.14: 22% PS1:14-3 + " PS1.14: 40% PS1:14-6 + " PS1.14: 48% PS1:14-7 + " PS1.14: 68% PS1:14-10 + " PS1.14: 92% PS1:14-14 + " PS1.14: 93% PS1:14-14 + " PS1.14: 99% PS1:14-15 +SIGALRM signal PS1.06: 33% PS1:6-16 +sigblock SIGPAUSE.2: 62% SIGPAUSE(2)-1 +sigblock - block signal[s] SIGBLOCK.2: 7% SIGBLOCK(2)-1 +SIGCHLD SIGNAL.3C: 30% unknown +SIGCONT SIGNAL.3C: 29% unknown +sigblock(mask) PS1.06: 30% PS1:6-15 +SIGBU[s] PS1.06: 24% PS1:6-13 +SIGCHLD PS1.08: 48% PS1:8-19 + " PS1.08: 66% PS1:8-26 + " PS1.08: 66% PS1:8-27 +SIGCHLD signal PS1.06: 26% PS1:6-13 + " PS1.08: 67% PS1:8-27 +SIGCONT signal PS1.06: 26% PS1:6-13 +SIGFPE PS1.06: 24% PS1:6-13 +SIGHUP PS1.06: 25% PS1:6-13 + " PS1.06: 93% PS1:6-39 + " PS2.03: 63% PS2:3-10 + " PS2.03: 64% PS2:3-10 +SIGILL PS1.06: 24% PS1:6-13 +SIGINT PS1.06: 25% PS1:6-13 + " PS2.03: 63% PS2:3-10 + " PS2.03: 63% PS2:3-10 + " PS2.03: 67% PS2:3-10 + " PS2.03: 67% PS2:3-10 + " PS2.03: 68% PS2:3-11 + " PS2.03: 68% PS2:3-11 + " PS2.03: 70% PS2:3-11 + " PS2.03: 70% PS2:3-11 + " PS2.03: 75% PS2:3-12 + " PS2.03: 75% PS2:3-12 + " PS2.03: 77% PS2:3-12 + " PS2.03: 77% PS2:3-12 +SIGIO PS1.06: 41% PS1:6-19 + " PS1.08: 59% PS1:8-24 + " PS1.08: 65% PS1:8-26 + " PS1.08: 66% PS1:8-26 + " PS1.06: 25% PS1:6-13 +SIGIO signal PS1.08: 64% PS1:8-26 +SIGKILL PS1.06: 25% PS1:6-13 +sigcontext, struct SIGNAL.3C: 77% SIGNAL(3C)-2 + " SIGRETURN.2: 8% SIGRETURN(2)-1 + " SIGRETURN.2: 18% SIGRETURN(2)-1 + " SIGVEC.2: 80% SIGVEC(2)-3 +SIGEMT SIGNAL.3C: 22% unknown +SIGFPE SIGNAL.3C: 22% unknown +SIGHUP SIGNAL.3C: 19% unknown +SIGINT SIGNAL.3C: 19% unknown +SIGINT signal TTY.4: 49% TTY(4)-5 +siginterrupt SMM.12A: 70% SMM:12-16 +siginterrupt - allow signals to interrupt system call[s] SIGINTERRUPT.3: 3% SIGINTERRUPT(3) +SIGIO FCNTL.2: 40% FCNTL(2)-1 + " SIGNAL.3C: 33% SIGNAL(3C)-1 +SIGIOT SIGNAL.3C: 21% unknown +SIGKILL SIGNAL.3C: 23% unknown +sigmask, macro SIGBLOCK.2: 52% SIGBLOCK(2)-1 + " SIGSETMASK.2: 53% SIGSETMASK(2)-1 +sign extension PS1.01: 13% PS1:1-5 + " PS1.01: 92% PS1:1-31 + " PS2.03: 33% PS2:3-6 + " SMM.12A: 6% SMM:12-2 +Signal[s] SIGNAL.3C: 3% SIGNAL(3C)-1 + " SIGNAL.3C: 9% SIGNAL(3C)-1 + " SIGNAL.3C: 65% SIGNAL(3C)-2 + " SMM.12A: 57% SMM:12-13 + " KILL.2: 7% KILL(2)-1 + " KILLPG.2: 14% KILLPG(2)-1 + " SIGNAL.3C: 43% SIGNAL(3C)-2 + " FLOCK.2: 80% FLOCK(2)-1 + " GETPGRP.2: 38% GETPGRP(2)-1 + " PTRACE.2: 12% PTRACE(2)-1 + " SH.1: 61% SH(1)-4 + " SMM.13: 12% SMM:13-5 + " SMM.12A: 70% SMM:12-16 +sign-extension PS1.01: 13% PS1:1-5 +Signal[s] PS1.06: 22% PS1:6-12 + " PS1.06: 30% PS1:6-14 + " PS1.06: 96% PS1:6-41 + " PS1.08: 65% PS1:8-26 +signal[s], mask of blocked PS1.06: 29% PS1:6-14 +signal[s], Sending PS1.06: 30% PS1:6-14 +signal, SIGCHLD PS1.08: 67% PS1:8-27 +signal, SIGURG PS1.06: 26% PS1:6-13 + " PS1.06: 40% PS1:6-19 + " PS1.07a: 85% PS1:7-22 + " PS1.08: 59% PS1:8-24 + " PS1.08: 59% PS1:8-24 +signal[s], trapping specified PS1.11a: 81% PS1:11-6 +Signal delivery PS1.06: 28% PS1:6-14 + " PS1.06: 23% PS1:6-12 +Signal handler[s] PS1.06: 26% PS1:6-13 +signal handling routine PS1.06: 29% PS1:6-14 +signal mask[s] PS1.06: 27% PS1:6-14 + " PS1.06: 27% PS1:6-14 + " PS1.06: 28% PS1:6-14 + " PS1.06: 29% PS1:6-14 +Signal routine[s] PS1.06: 24% PS1:6-13 + " PS1.06: 32% PS1:6-15 + " PS2.03: 77% PS2:3-12 +Signal stack[s] PS1.06: 28% PS1:6-14 + " PS1.06: 31% PS1:6-15 + " PS1.06: 31% PS1:6-15 + " PS1.06: 31% PS1:6-15 + " PS1.06: 31% PS1:6-15 + " PS1.06: 32% PS1:6-15 + " PS1.06: 32% PS1:6-15 +signals, Blocked EXECVE.2: 35% EXECVE(2)-1 +signals, broadcasting KILL.2: 37% KILL(2)-1 +signals, caught EXECVE.2: 34% EXECVE(2)-1 +signal, continue CSH.1: 60% CSH(1)-13 + " KILLPG.2: 33% ABS(3)-1 +signal, default action for SIGNAL.3C: 42% SIGNAL(3C)-2 +signal[s], hangup EXIT.2: 74% EXIT(2)-1 + " INETD.8: 93% INETD(8)-2 + " INIT.8: 45% INIT(8)-1 + " INIT.8: 55% INIT(8)-1 + " SMM.01: 53% SMM:1-33 + " SMM.01: 53% SMM:1-33 + " STTY.1: 89% STTY(1)-3 + " STTY.1: 89% STTY(1)-3 + " SYSLOGD.8: 17% SYSLOGD(8)-1 + " USD.16: 14% USD:16-3 + " VHANGUP.2: 67% VHANGUP(2)-1 + " WINDOW.1: 33% WINDOW(1)-3 + " EXIT.2: 75% EXIT(2)-1 + " INETD.8: 94% INETD(8)-2 + " TTY.4: 46% TTY(4)-5 + " VHANGUP.2: 69% VHANGUP(2)-1 + " SIGNAL.3C: 19% unknown + " GETTYTAB.5: 25% GETTYTAB(5)-2 +signal[s], ignored USD.03: 91% USD:3-22 + " EXECVE.2: 33% EXECVE(2)-1 + " SIGNAL.3C: 47% SIGNAL(3C)-2 +signal[s], INTERRUPT USD.04: 17% USD:4-8 + " USD.04: 17% USD:4-8 + " SIGNAL.3C: 20% unknown +signal, kill SMM.06: 61% SMM:6-5 + " USD.17: 75% USD:17-35 + " SMM.12A: 35% SMM:12-8 + " DBX.1: 33% DBX(1)-2 + " SIGBLOCK.2: 65% SIGBLOCK(2)-1 + " SIGNAL.3C: 68% SIGNAL(3C)-2 + " SIGSETMASK.2: 68% SIGSETMASK(2)-1 + " SIGVEC.2: 67% SIGVEC(2)-2 + " SIGVEC.2: 76% SIGVEC(2)-3 + " SIGNAL.3C: 23% unknown +signal, pause - stop until PAUSE.3C: 9% PAUSE(3C)-1 +signal[s], QUIT FSCK.8: 39% FSCK(8)-1 + " SMM.01: 74% SMM:1-45 + " USD.04: 21% USD:4-9 + " USD.04: 21% USD:4-10 + " USD.04: 21% USD:4-10 + " USD.04: 38% USD:4-17 + " SIGNAL.3C: 20% unknown + " SH.1: 61% SH(1)-4 +signal[s], release blocked SIGPAUSE.2: 8% SIGPAUSE(2)-1 +signal, return from SIGRETURN.2: 4% SIGRETURN(2)-1 +signals, sending CSH.1: 59% CSH(1)-12 + " KILL.1: 21% KILL(1)-1 + " KILL.2: 6% KILL(2)-1 + " KILLPG.2: 13% KILLPG(2)-1 +signal, SIGALRM GETITIMER.2: 51% GETITIMER(2)-1 + " UALARM.3: 46% UALARM(3)-1 + " DBX.1: 33% DBX(1)-2 + " SIGNAL.3C: 26% SIGNAL(3C)-1 + " SIGVEC.2: 40% SIGVEC(2)-2 +signal[s], sigblock - block SIGBLOCK.2: 7% SIGBLOCK(2)-1 +signal[s], SIGBU SIGNAL.3C: 23% SIGNAL(3C)-1 + " SIGVEC.2: 38% SIGVEC(2)-2 +signal, SIGCHLD EXIT.2: 41% EXIT(2)-1 + " SIGVEC.2: 44% SIGVEC(2)-2 + " SMM.13: 20% SMM:13-8 + " SYSLOG.3: 60% SYSLOG(3)-1 + " SMM.12A: 58% SMM:12-13 +signal, SIGCONT DBX.1: 33% DBX(1)-2 + " SIGBLOCK.2: 68% SIGBLOCK(2)-1 + " SIGNAL.3C: 69% SIGNAL(3C)-2 + " SIGSETMASK.2: 71% SIGSETMASK(2)-1 + " SIGVEC.2: 67% SIGVEC(2)-2 + " SIGVEC.2: 77% SIGVEC(2)-3 + " USD.17: 63% USD:17-28 +signal, SIGFPE SIGVEC.2: 37% SIGVEC(2)-2 + " SMM.09: 45% SMM:9-10 + " UUCICO.8C: 46% UUCICO(8C)-1 + " SMM.12A: 22% SMM:12-6 + " SIGNAL.3C: 85% SIGNAL(3C)-2 + " SIGNAL.3C: 86% SIGNAL(3C)-2 + " SIGVEC.2: 89% SIGVEC(2)-3 + " SIGVEC.2: 90% SIGVEC(2)-3 +signal, SIGILL SIGNAL.3C: 20% SIGNAL(3C)-1 + " SIGVEC.2: 35% SIGVEC(2)-1 + " SMM.12A: 62% SMM:12-14 +signal, SIGINT SMM.06: 61% SMM:6-5 + " TTY.4: 49% TTY(4)-5 + " DBX.1: 32% DBX(1)-2 + " PRINTCAP.5: 88% PRINTCAP(5)-2 +signal, SIGIO FCNTL.2: 60% FCNTL(2)-1 + " SMM.15: 21% SMM:15-7 + " TTY.4: 14% TTY(4)-2 + " SMM.12A: 56% SMM:12-13 + " SMM.13: 38% SMM:13-14 + " SOCKET.2: 77% SOCKET(2)-2 + " SMM.12A: 60% SMM:12-14 +signal, SIGPIPE GETSOCKOPT.2: 56% GETSOCKOPT(2)-2 + " SMM.13: 36% SMM:13-13 + " SOCKET.2: 63% SOCKET(2)-2 +signal, SIGPROF GETITIMER.2: 67% GETITIMER(2)-1 + " SIGNAL.3C: 36% SIGNAL(3C)-1 + " SIGVEC.2: 48% SIGVEC(2)-2 +signal, SIGQUIT TTY.4: 50% TTY(4)-5 + " SIGNAL.3C: 20% SIGNAL(3C)-1 + " SIGVEC.2: 34% SIGVEC(2)-1 +signal, SIGSTOP WAIT.2: 44% WAIT(2)-1 + " SIGBLOCK.2: 67% SIGBLOCK(2)-1 + " SIGNAL.3C: 68% SIGNAL(3C)-2 + " SIGSETMASK.2: 69% SIGSETMASK(2)-1 + " SIGVEC.2: 67% SIGVEC(2)-2 + " SIGVEC.2: 76% SIGVEC(2)-3 +signal, SIGTSTP TTY.4: 50% TTY(4)-5 + " TTY.4: 51% TTY(4)-5 + " SIGNAL.3C: 29% SIGNAL(3C)-1 + " SIGVEC.2: 42% SIGVEC(2)-2 + " WAIT.2: 43% WAIT(2)-1 +signal[s], SIGTTIN TTY.4: 52% TTY(4)-5 + " VFORK.2: 91% VFORK(2)-1 + " SIGNAL.3C: 31% SIGNAL(3C)-1 + " SIGVEC.2: 44% SIGVEC(2)-2 + " TTY.4: 52% TTY(4)-5 + " TTY.4: 52% TTY(4)-5 + " WAIT.2: 43% WAIT(2)-1 +signal, SIGTTOU VFORK.2: 91% VFORK(2)-1 + " WAIT.2: 43% WAIT(2)-1 + " SMM.12A: 35% SMM:12-8 + " TTY.4: 53% TTY(4)-5 +signal, SIGURG SOCKET.2: 75% SOCKET(2)-2 + " SMM.13: 38% SMM:13-14 + " SMM.13: 38% SMM:13-14 + " SMM.12A: 57% SMM:12-13 + " FCNTL.2: 41% FCNTL(2)-1 +signal, SIGVTALRM GETITIMER.2: 56% GETITIMER(2)-1 + " SIGNAL.3C: 36% SIGNAL(3C)-1 + " SIGVEC.2: 48% SIGVEC(2)-2 +signal[s], SIGWINCH SMM.13: 24% SMM:13-9 + " TTY.4: 55% TTY(4)-5 + " TTY.4: 98% TTY(4)-10 + " SMM.12A: 45% SMM:12-10 + " SIGNAL.3C: 37% SIGNAL(3C)-1 + " SIGVEC.2: 49% SIGVEC(2)-2 + " SMM.13: 8% SMM:13-4 + " SMM.12A: 60% SMM:12-14 +signal, software termination SIGNAL.3C: 27% unknown +signal, STOP CSH.1: 6% CSH(1)-2 + " CSH.1: 7% CSH(1)-2 + " CSH.1: 71% CSH(1)-15 + " USD.04: 19% USD:4-9 + " USD.04: 19% USD:4-9 + " USD.04: 39% USD:4-17 + " USD.04: 42% USD:4-19 + " USD.04: 48% USD:4-22 + " USD.04: 96% USD:4-44 + " USD.17: 94% USD:17-46 + " RSH.1C: 91% RSH(1C)-1 +signal, stop process TTY.4: 93% TTY(4)-10 + " TTY.4: 94% TTY(4)-10 +signal, terminal stop INIT.8: 69% INIT(8)-1 +signal[s], terminate CSH.1: 94% CSH(1)-20 + " CSH.1: 95% CSH(1)-20 + " ERROR.1: 85% ERROR(1)-2 + " KILL.1: 33% KILL(1)-1 + " NICE.1: 36% NICE(1)-1 + " RSH.1C: 19% RSH(1C)-1 + " SHUTDOWN.8: 58% SHUTDOWN(8)-1 + " SYSLOGD.8: 92% SYSLOGD(8)-2 + " CSH.1: 59% CSH(1)-12 +signal[s], unmasking SIGRETURN.2: 23% SIGRETURN(2)-1 +signal - change the action for a signal SIGNAL.3F: 3% SIGNAL(3F)-1 +signal - simplified software signal facility[s] SIGNAL.3C: 0% SIGNAL(3C)-1 +signal action[s] SIGNAL.3F: 44% SIGNAL(3F)-1 + " SMM.13: 21% SMM:13-8 +signal catcher[s] GPROF.1: 91% GPROF(1)-2 + " GPROF.1: 93% GPROF(1)-2 + " GPROF.1: 95% GPROF(1)-2 +Signal delivery SIGVEC.2: 4% SIGVEC(2)-1 + " SMM.12A: 70% SMM:12-16 +signal handler[s] PAUSE.3C: 51% PAUSE(3C)-1 + " SIGINTERRUPT.3: 54% SIGINTERRUPT(3) + " SIGINTERRUPT.3: 73% SIGINTERRUPT(3) + " SIGVEC.2: 9% SIGVEC(2)-1 + " SIGVEC.2: 20% SIGVEC(2)-1 + " SIGVEC.2: 25% SIGVEC(2)-1 + " SIGVEC.2: 51% SIGVEC(2)-2 + " SIGVEC.2: 71% SIGVEC(2)-2 + " SMM.13: 12% SMM:13-5 + " SMM.13: 13% SMM:13-6 + " TRAPOV.3F: 30% TRAPOV(3F)-1 + " TRPFPE.3F: 24% TRPFPE(3F)-1 + " SIGSTACK.2: 55% SIGSTACK(2)-1 +Signal handling CSH.1: 94% CSH(1)-20 + " SH.1: 85% SH(1)-5 +signal handling semantics, 4.2 BSD SIGINTERRUPT.3: 50% SIGINTERRUPT(3) +signal inheritance SIGNAL.3C: 61% SIGNAL(3C)-2 +signal mask[s] EXECVE.2: 51% EXECVE(2)-1 + " SIGINTERRUPT.3: 60% SIGINTERRUPT(3) + " SIGSETMASK.2: 12% SIGSETMASK(2)-1 + " SIGSETMASK.2: 34% SIGSETMASK(2)-1 + " SIGVEC.2: 14% SIGVEC(2)-1 + " SIGVEC.2: 19% SIGVEC(2)-1 + " SIGVEC.2: 25% SIGVEC(2)-1 + " SIGVEC.2: 27% SIGVEC(2)-1 + " SIGVEC.2: 27% SIGVEC(2)-1 + " SIGVEC.2: 63% SIGVEC(2)-2 + " SMM.13: 54% SMM:13-19 + " SETJMP.3: 59% SETJMP(3)-1 +signal mechanism SMM.12A: 1% SMM:12-2 +signal name[s] CSH.1: 60% CSH(1)-12 + " KILL.1: 16% KILL(1)-1 + " KILL.1: 25% KILL(1)-1 + " PSIGNAL.3: 56% PSIGNAL(3)-1 + " PSIGNAL.3: 70% PSIGNAL(3)-1 +signal number PSIGNAL.3: 47% PSIGNAL(3)-1 + " PSIGNAL.3: 64% PSIGNAL(3)-1 + " PTRACE.2: 49% PTRACE(2)-1 + " PTRACE.2: 51% PTRACE(2)-1 + " PTRACE.2: 61% PTRACE(2)-2 + " PTRACE.2: 81% PTRACE(2)-2 + " SH.1: 85% SH(1)-5 + " SH.1: 88% SH(1)-6 + " SIGNAL.3C: 73% SIGNAL(3C)-2 + " SIGNAL.3F: 27% SIGNAL(3F)-1 + " SIGNAL.3F: 95% SIGNAL(3F)-1 + " SIGVEC.2: 81% SIGVEC(2)-3 +Signal routine[s] SIGVEC.2: 11% SIGVEC(2)-1 +signal SIGALRM ALARM.3C: 25% GETRUSAGE(2)-1 +signal SIGFPE TRAPER.3F: 62% TRAPER(3F)-1 +signal SIGTRAP PTRACE.2: 74% PTRACE(2)-2 +signal stack[s] EXECVE.2: 36% EXECVE(2)-1 + " GETRLIMIT.2: 72% GETRLIMIT(2)-1 + " SIGSTACK.2: 25% SIGSTACK(2)-1 + " SIGSTACK.2: 37% SIGSTACK(2)-1 + " SIGSTACK.2: 49% SIGSTACK(2)-1 + " SIGSTACK.2: 52% SIGSTACK(2)-1 + " SIGSTACK.2: 61% SIGSTACK(2)-1 + " SIGVEC.2: 11% SIGVEC(2)-1 + " SIGVEC.2: 31% SIGVEC(2)-1 + " SIGVEC.2: 63% SIGVEC(2)-2 + " SMM.13: 8% SMM:13-4 + " SMM.13: 12% SMM:13-5 + " SMM.13: 13% SMM:13-6 + " SMM.13: 13% SMM:13-6 + " SMM.13: 13% SMM:13-6 +signal usage in 4.3BSD SMM.13: 13% SMM:13-6 +signal.h SIGNAL.3C: 19% unknown +signals, list of SIGVEC.2: 33% unknown +signals, SIGUSR SMM.12: 60% SMM:12-1 + " SMM.13: 8% SMM:13-4 + " SMM.12A: 60% SMM:12-14 + " SIGNAL.3C: 38% SIGNAL(3C)-1 + " SIGVEC.2: 50% SIGVEC(2)-2 + " SMM.12: 60% SMM:12-1 + " SMM.13: 8% SMM:13-4 + " SMM.12A: 60% SMM:12-14 +Signature MH-PROFILE.N: 35% MH-PROFILE(5)-3 + " MH-PROFILE.N: 49% MH-PROFILE(5)-4 + " SEND.N: 54% SEND(1)-1 + " SEND.N: 57% SEND(1)-1 + " USD.08: 54% USD:8-64 + " USD.08: 54% USD:8-64 + " USD.08: 71% USD:8-87 + " USD.08: 72% USD:8-88 + " USD.10: 73% USD:10-9 +signature, mail MH-PROFILE.N: 36% MH-PROFILE(5)-3 + " MH-PROFILE.N: 48% MH-PROFILE(5)-3 + " USD.08: 71% USD:8-87 +SIGNATURE environment variable MH-PROFILE.N: 36% MH-PROFILE(5)-3 + " MH-PROFILE.N: 48% MH-PROFILE(5)-3 + " POST.N: 73% POST(8)-1 + " SEND.N: 51% SEND(1)-1 + " USD.08: 54% USD:8-64 + " USD.08: 71% USD:8-87 +Signature line USD.20: 67% USD:20-5 + " USD.20: 66% USD:20-5 +signed conversion[s] PRINTF.3S: 40% PRINTF(3S)-1 +signed decimal OD.1: 35% OD(1)-1 +significant bits MATH.3M: 18% MATH(3M)-2 +Signing off USD.14: 27% USD:14-7 +significant character[s] PS2.10: 27% PS2:10-26 +significant sort key[s] PS2.10: 23% PS2:10-23 + " PS2.10: 23% PS2:10-23 + " PS2.10: 23% PS2:10-23 +sigpause - atomically release blocked signals and wait for interrupt SIGPAUSE.2: 6% SIGPAUSE(2)-1 +SIGPROF SIGNAL.3C: 36% unknown +SIGQUIT signal TTY.4: 50% TTY(4)-5 +sigpause(mask) PS1.06: 31% PS1:6-15 +SIGPIPE PS1.07a: 59% PS1:7-14 +SIGQUIT PS1.06: 25% PS1:6-13 + " PS2.03: 63% PS2:3-10 + " PS2.03: 63% PS2:3-10 + " PS2.03: 77% PS2:3-12 + " PS2.03: 77% PS2:3-12 +SIGSEGV PS1.06: 24% PS1:6-13 +sigreturn SMM.12A: 60% SMM:12-14 +sigreturn - return from signal SIGRETURN.2: 3% SIGRETURN(2)-1 +SIGSEGV GETRLIMIT.2: 70% GETRLIMIT(2)-1 + " SIGNAL.3C: 24% unknown +sigsetmask - set current signal mask SIGSETMASK.2: 8% SIGSETMASK(2)-1 +sigsetmask(mask) PS1.06: 30% PS1:6-15 +sigstack, struct PS1.06: 31% PS1:6-15 + " PS1.06: 31% PS1:6-15 + " PS1.06: 31% PS1:6-15 +SIGTERM PS1.06: 25% PS1:6-13 +SIGTSTP PS1.06: 26% PS1:6-13 +SIGTSTP signal PS1.06: 90% PS1:6-38 +SIGTTIN PS1.06: 26% PS1:6-13 +SIGTTOU PS1.06: 26% PS1:6-13 +SIGURG PS1.08: 65% PS1:8-26 + " PS1.06: 41% PS1:6-19 +SIGURG signal PS1.06: 26% PS1:6-13 + " PS1.06: 40% PS1:6-19 + " PS1.07a: 85% PS1:7-22 + " PS1.08: 59% PS1:8-24 + " PS1.08: 59% PS1:8-24 +SIGUSR1 PS1.06: 25% PS1:6-13 +SIGUSR2 PS1.06: 25% PS1:6-13 +sigstack, struct SIGSTACK.2: 9% SIGSTACK(2)-1 + " SIGSTACK.2: 14% SIGSTACK(2)-1 +sigstack - set and/or get signal stack context SIGSTACK.2: 3% SIGSTACK(2)-1 +SIGSTOP SIGNAL.3C: 28% unknown +SIGSTOP signal WAIT.2: 44% WAIT(2)-1 +SIGSY[s] SIGNAL.3C: 24% unknown +SIGTERM SIGNAL.3C: 26% unknown +SIGTRAP PTRACE.2: 61% PTRACE(2)-2 + " SIGNAL.3C: 21% unknown +SIGTRAP, signal PTRACE.2: 74% PTRACE(2)-2 +SIGTSTP INIT.8: 69% INIT(8)-1 +SIGTTIN TTY.4: 21% TTY(4)-3 + " VFORK.2: 91% unknown +SIGTTOU SIGNAL.3C: 32% SIGNAL(3C)-1 +SIGTTOU signal TTY.4: 53% TTY(4)-5 +SIGURG SIGNAL.3C: 27% unknown +SIGURG signal FCNTL.2: 41% FCNTL(2)-1 +sigvec SIGNAL.3C: 4% SIGNAL(3C)-1 + " SMM.12A: 60% SMM:12-14 +sigvec, struct PS1.06: 27% PS1:6-14 + " PS1.06: 27% PS1:6-14 + " PS1.06: 27% PS1:6-14 +SIGXCPU PS1.06: 26% PS1:6-13 +SIGXFSZ PS1.06: 26% PS1:6-13 +SIG_DEF PS1.06: 27% PS1:6-14 +SIG_IGN PS1.06: 27% PS1:6-14 +sigvec, struct SIGVEC.2: 1% SIGVEC(2)-1 + " SIGVEC.2: 2% SIGVEC(2)-1 +sigvec - software signal facility[s] SIGVEC.2: 0% SIGVEC(2)-1 +sigvec call[s] SIGVEC.2: 52% SIGVEC(2)-2 + " SMM.13: 12% SMM:13-5 +SIGXCPU SIGVEC.2: 46% SIGVEC(2)-2 + " SIGNAL.3C: 34% SIGNAL(3C)-1 +SIGXFSZ SIGVEC.2: 47% SIGVEC(2)-2 + " SIGNAL.3C: 35% SIGNAL(3C)-1 +SIG_DFL SIGVEC.2: 56% SIGVEC(2)-2 + " SIGVEC.2: 54% SIGVEC(2)-2 + " SIGNAL.3C: 46% SIGNAL(3C)-2 + " SIGNAL.3C: 42% SIGNAL(3C)-2 +SILENT MAKE.1: 76% MAKE(1)-2 + " MAKE.1: 90% MAKE(1)-2 +silo overflow DH.4: 82% DH(4)-1 + " DHU.4: 67% DHU(4)-1 + " DMF.4: 75% DMF(4)-1 + " DMZ.4: 73% DMZ(4)-1 + " DZ.4: 77% DZ(4)-1 +silo timeout[s] DMF.4: 93% DMF(4)-1 + " DMZ.4: 89% DMZ(4)-1 + " SMM.13: 95% SMM:13-32 +sin[s], cos[s], tan[s], asin[s], acos[s], atan[s], atan2 - ... SIN.3M: 1% SIN(3M)-1 +sine BC.1: 41% BC(1)-1 +Single column horizontal line[s] USD.28: 33% USD:28-5 +Single precision arithmetic SMM.19: 93% SMM:19-26 +single precision floating point SMM.12A: 1% SMM:12-2 +single step ADB.1: 83% ADB(1)-5 + " DBX.1: 80% DBX(1)-6 + " PS1.10: 40% PS1:10-8 +single user SMM.01: 20% SMM:1-14 +single user operation INIT.8: 9% INIT(8)-1 +single user shell REBOOT.8: 26% REBOOT(8)-1 + " RC.8: 53% RC(8)-1 + " INIT.8: 72% INIT(8)-1 +single user state SMM.01: 75% SMM:1-45 +single-precision arithmetic SMM.19: 89% SMM:19-25 +single-stepping PS1.11a: 47% PS1:11-3 +SIOCATMARK PS1.08: 60% PS1:8-24 + " PS1.08: 62% PS1:8-25 + " PS1.08: 60% PS1:8-24 +SIOCGIFCONF ioctl PS1.08: 80% PS1:8-32 +SIOCGIFDSTADDR PS1.08: 83% PS1:8-34 + " PS1.08: 83% PS1:8-34 +SIOCGIFFLAGS ioctl PS1.08: 82% PS1:8-33 +single-user mode SMM.01: 51% SMM:1-33 + " SMM.01: 73% SMM:1-45 + " INIT.8: 58% INIT(8)-1 +single-user state SHUTDOWN.8: 61% SHUTDOWN(8)-1 +sinh[s], cosh[s], tanh - hyperbolic function SINH.3M: 8% SINH(3M)-1 +sink, null - data NULL.4: 20% unknown +SIOCGIFADDR INTRO.4N: 82% INTRO(4N)-3 +SIOCGIFBRDADDR INTRO.4N: 85% INTRO(4N)-3 +SIOCGIFCONF INTRO.4N: 91% INTRO(4N)-4 + " ROUTED.8C: 9% ROUTED(8C)-1 +SIOCGIFDSTADDR INTRO.4N: 83% INTRO(4N)-3 +SIOCGIFFLAGS INTRO.4N: 88% INTRO(4N)-4 +SIOCGIFMETRIC INTRO.4N: 90% INTRO(4N)-4 +SIOCGIFNETMASK INET.4F: 83% INET(4F)-2 +SIOCSIFADDR INTRO.4N: 81% INTRO(4N)-3 +SIOCSIFADDR ioctl IX.4: 29% IX(4)-1 +SIOCSIFBRDADDR INTRO.4N: 84% INTRO(4N)-3 +SIOCSIFDSTADDR INTRO.4N: 83% INTRO(4N)-3 +SIOCSIFFLAGS INTRO.4N: 86% INTRO(4N)-3 +SIOCSIFMETRIC INTRO.4N: 89% INTRO(4N)-4 +SIOCSIFNETMASK INET.4F: 77% INET(4F)-1 +SIOCSPGRP ioctl SMM.12A: 60% SMM:12-14 +site[s], Local UUCICO.8C: 34% UUCICO(8C)-1 + " SMM.09: 45% SMM:9-10 + " SMM.09: 44% SMM:9-10 +site[s], USENET SMM.10: 0% SMM:10-1 + " USD.10: 11% USD:10-2 + " USD.10: 15% USD:10-2 + " USD.10: 18% USD:10-3 + " USD.10: 19% USD:10-3 +site[s], UUCP UUPOLL.8C: 5% UUPOLL(8C)-1 + " SMM.07A: 4% SMM:07-4 +site administrator[s] SMM.10: 11% SMM:10-3 + " SMM.10: 70% SMM:10-18 + " SMM.11: 20% SMM:11-3 +site name SMM.01: 54% SMM:1-34 + " SMM.01: 54% SMM:1-34 + " SMM.01: 59% SMM:1-36 + " SMM.10: 15% SMM:10-4 +site-specific modification[s] SMM.02: 46% SMM:2-14 +SIZE[s] SMM.12A: 47% SMM:12-11 +size[s], change USD.27: 37% USD:27-5 +size[s], Character USD.24: 26% USD:24-9 + " USD.24: 28% USD:24-10 + " USD.24: 38% USD:24-13 + " USD.24: 75% USD:24-24 + " USD.25: 13% USD:25-3 + " USD.26: 49% USD:26-4 +size[s], data A_OUT.5: 38% A.OUT(5)-2 + " GETRUSAGE.2: 21% GETRUSAGE(2)-1 + " SMM.13: 57% SMM:13-20 +size, data segment ADB.1: 88% ADB(1)-5 +size, default buffer SMM.13: 73% SMM:13-25 +size, default window MORE.1: 41% MORE(1)-2 + " MORE.1: 42% MORE(1)-2 + " USD.15: 61% USD:15-17 + " USD.15: 61% USD:15-17 +size[s], lex internal array PS1.16: 93% PS1:16-12 +sizes, disk partition DISKPART.8: 9% DISKPART(8)-1 + " DISKPART.8: 38% DISKPART(8)-1 + " SMM.01: 29% SMM:1-20 + " SMM.01: 42% SMM:1-28 + " SMM.01: 43% SMM:1-28 + " SMM.01: 44% SMM:1-29 +size[s], file ADB.1: 95% ADB(1)-5 + " LSEEK.2: 15% LSEEK(2)-1 + " QUOT.8: 58% QUOT(8)-1 + " SMM.01: 47% SMM:1-31 +size, file-system SMM.05: 24% SMM:5-6 + " SMM.05: 24% SMM:5-6 + " SMM.05: 25% SMM:5-6 +Size[s], Fonts and USD.23: 42% USD:23-6 +size[s], fragment MKFS.8: 42% MKFS(8)-1 + " NEWFS.8: 37% NEWFS(8)-1 + " SMM.01: 46% SMM:1-30 + " SMM.01: 47% SMM:1-30 + " SMM.01: 47% SMM:1-30 + " SMM.01: 47% SMM:1-31 + " SMM.01: 48% SMM:1-31 + " SMM.01: 48% SMM:1-31 + " SMM.01: 48% SMM:1-31 + " SMM.01: 48% SMM:1-31 + " SMM.01: 49% SMM:1-31 + " SMM.01: 50% SMM:1-31 + " SMM.05: 14% SMM:5-4 + " SMM.05: 15% SMM:5-4 + " SMM.14: 29% SMM:14-5 +size, horizontal TTY.4: 97% TTY(4)-10 + " USD.24: 34% USD:24-12 + " USD.24: 46% USD:24-15 +size, memory SMM.13: 45% SMM:13-16 + " SMM.12A: 93% SMM:12-22 +size, message SMM.07A: 29% SMM:07-14 + " SMM.07A: 29% SMM:07-14 + " SMM.12A: 94% SMM:12-22 +size, optimal SMM.14: 35% SMM:14-6 + " SMM.14: 35% SMM:14-6 + " SMM.14: 35% SMM:14-6 +size, output block DD.1: 8% DD(1)-1 + " DD.1: 15% DD(1)-1 + " DD.1: 17% DD(1)-1 +size, packet ARP.4P: 98% ARP(4P)-2 + " SMM.13: 75% SMM:13-26 + " SMM.15: 55% SMM:15-17 +size, page BRK.2: 18% BRK(2)-1 + " GETPAGESIZE.2: 63% GETPAGESIZE(2)- + " SMM.15: 10% SMM:15-4 +size[s], partition HK.4: 97% HK(4)-2 + " SMM.01: 42% SMM:1-28 + " SMM.01: 43% SMM:1-28 + " SMM.02: 28% SMM:2-8 +size[s], point EQN.1: 72% EQN(1)-2 + " MS.7: 42% MS(7)-2 + " MS.7: 55% MS(7)-2 + " USD.20: 21% USD:20-2 + " USD.22: 92% USD:22-18 + " USD.23: 31% USD:23-4 + " USD.23: 69% USD:23-9 + " USD.24: 22% USD:24-9 + " USD.24: 26% USD:24-9 + " USD.24: 26% USD:24-9 + " USD.24: 28% USD:24-10 + " USD.24: 38% USD:24-13 + " USD.25: 8% USD:25-2 + " USD.25: 9% USD:25-2 + " USD.25: 9% USD:25-2 + " USD.25: 11% USD:25-2 + " USD.25: 11% USD:25-2 + " USD.25: 13% USD:25-3 + " USD.25: 14% USD:25-3 + " USD.25: 14% USD:25-3 + " USD.25: 27% USD:25-5 + " USD.25: 28% USD:25-5 + " USD.25: 28% USD:25-5 + " USD.25: 34% USD:25-6 + " USD.25: 58% USD:25-9 + " USD.25: 58% USD:25-9 + " USD.25: 64% USD:25-10 + " USD.25: 64% USD:25-10 + " USD.25: 64% USD:25-10 + " USD.25: 65% USD:25-10 + " USD.25: 71% USD:25-11 + " USD.25: 75% USD:25-11 + " USD.28: 24% USD:28-4 + " USD.28: 25% USD:28-4 + " USD.28: 25% USD:28-4 + " USD.28: 29% USD:28-5 + " USD.28: 37% USD:28-6 + " VGRIND.1: 49% VGRIND(1)-1 + " MS.7: 74% MS(7)-3 +size, resident set GETRLIMIT.2: 32% GETRLIMIT(2)-1 + " GETRUSAGE.2: 41% GETRUSAGE(2)-1 +size, screen MHL.N: 35% MHL(1)-1 + " MHL.N: 46% MHL(1)-2 + " SYSTAT.1: 69% SYSTAT(1)-3 + " USD.08: 28% USD:8-30 + " USD.08: 28% USD:8-31 + " USD.15: 62% USD:15-18 + " USD.15: 99% USD:15-28 + " USD.16: 63% USD:16-12 +size, segment SMM.13: 20% SMM:13-8 + " SMM.13: 75% SMM:13-26 + " SMM.13: 76% SMM:13-26 + " SMM.13: 76% SMM:13-26 + " SMM.13: 76% SMM:13-26 +size, Space-character USD.24: 27% USD:24-10 +size, system page GETPAGESIZE.2: 15% GETPAGESIZE(2)- + " GETPAGESIZE.2: 66% GETPAGESIZE(2)- + " SMM.15: 93% SMM:15-26 +size, tape block RESTORE.8: 55% RESTORE(8)-2 + " SMM.12A: 91% SMM:12-21 +size, terminal SMM.13: 9% SMM:13-4 + " STTY.1: 55% STTY(1)-2 + " STTY.1: 55% STTY(1)-2 + " TTY.4: 54% TTY(4)-5 +size[s], type USD.22: 93% USD:22-18 + " USD.23: 10% USD:23-2 + " USD.24: 19% USD:24-8 + " USD.24: 38% USD:24-13 + " USD.28: 27% USD:28-4 +size, vertical TTY.4: 97% TTY(4)-10 + " USD.24: 46% USD:24-15 + " USD.24: 46% USD:24-15 + " USD.24: 48% USD:24-16 + " USD.24: 91% USD:24-30 + " USD.24: 92% USD:24-30 + " USD.25: 85% USD:25-13 +size[s], window MORE.1: 56% MORE(1)-2 + " RLOGIN.1C: 48% RLOGIN(1C)-1 + " RLOGIND.8C: 70% RLOGIND(8C)-1 + " SMM.13: 24% SMM:13-9 + " SMM.13: 24% SMM:13-9 + " TTY.4: 96% TTY(4)-10 + " USD.15: 34% USD:15-10 + " USD.15: 34% USD:15-10 + " USD.15: 43% USD:15-12 + " USD.15: 62% USD:15-18 + " USD.15: 62% USD:15-18 + " USD.16: 5% USD:16-2 + " WINDOW.1: 36% WINDOW(1)-3 + " WINDOW.1: 37% WINDOW(1)-3 + " WINDOW.1: 37% WINDOW(1)-3 + " WINDOW.1: 38% WINDOW(1)-3 + " WINDOW.1: 38% WINDOW(1)-3 + " SMM.12A: 48% SMM:12-11 + " SMM.12A: 52% SMM:12-12 + " SMM.12A: 16% SMM:12-5 +size - size of an object file SIZE.1: 13% SIZE(1)-1 +Size change[s] CHECKNR.1: 22% CHECKNR(1)-1 + " EQN.1: 67% EQN(1)-2 + " USD.20: 47% USD:20-4 +Size Control, Font and Character USD.24: 6% USD:24-3 +size of the label USD.22: 55% USD:22-10 +skip over files and/or record[s] TOPEN.3F: 69% TOPEN(3F)-2 +Sklower, Keith ARFF.8V: 96% ARFF(8V)-2 + " LISP.1: 63% LISP(1)-1 +slash USD.13: 42% USD:13-8 +slash mark[s] SMM.16: 44% SMM:16-6 + " USD.14: 36% USD:14-9 + " USD.14: 76% USD:14-19 +slattach - attach serial lines as network interface[s] SLATTACH.8C: 5% SLATTACH(8C)-1 +Slave Active message SMM.22: 43% SMM:22-5 +slave device PTY.4: 6% PTY(4)-1 + " PTY.4: 7% PTY(4)-1 + " PTY.4: 12% PTY(4)-1 + " PTY.4: 16% PTY(4)-1 + " PTY.4: 17% PTY(4)-1 +slave number[s] SMM.01: 4% SMM:1-3 + " SMM.01: 4% SMM:1-3 + " SMM.02: 70% SMM:2-22 +slave time daemon[s] SMM.08: 10% SMM:8-2 + " SMM.08: 17% SMM:8-2 + " SMM.08: 21% SMM:8-2 + " SMM.08: 52% SMM:8-2 + " SMM.08: 56% SMM:8-2 + " SMM.22: 3% SMM:22-2 + " SMM.22: 6% SMM:22-2 + " SMM.22: 7% SMM:22-2 +sleep SMM.12A: 70% SMM:12-16 +sleep - suspend execution for an interval SLEEP.1: 10% SLEEP(1)-1 + " SLEEP.3F: 12% SLEEP(3F)-1 +sleep - suspend execution for interval SLEEP.3: 5% SLEEP(3)-1 +sleep time ALARM.3F: 92% ALARM(3F)-1 + " SLEEP.1: 21% SLEEP(1)-1 + " SLEEP.3: 69% SLEEP(3)-1 + " SMM.13: 20% SMM:13-8 + " USLEEP.3: 49% USLEEP(3)-1 +slime bomb HUNT.6: 29% HUNT(6)-1 + " HUNT.6: 30% HUNT(6)-1 + " HUNT.6: 36% HUNT(6)-1 + " HUNT.6: 36% HUNT(6)-1 +SLIPDISC SMM.13: 26% SMM:13-10 +slow terminal[s], Editing on USD.15: 42% USD:15-12 +SMD disk[s] SMM.01: 8% SMM:1-5 +smiley face USD.10: 69% USD:10-8 + " USD.10: 70% USD:10-8 + " USD.10: 84% USD:10-10 + " USD.10: 84% USD:10-10 +SMTP SENDMAIL.8: 20% SENDMAIL(8)-1 + " SMM.07A: 65% SMM:07-27 + " SMM.07A: 70% SMM:07-30 + " SMM.07A: 71% SMM:07-30 + " SMM.07A: 76% SMM:07-32 + " SMM.07A: 81% SMM:07-36 +SMTP connection[s] SENDMAIL.8: 17% SENDMAIL(8)-1 +SMTP help file SENDMAIL.8: 61% SENDMAIL(8)-2 + " SMM.07A: 88% SMM:07-38 +SMTP over an IPC connection SMM.16: 26% SMM:16-4 +SMTP over pipe[s] SMM.16: 25% SMM:16-4 +SMTP server SMM.16: 2% SMM:16-1 + " SMM.07A: 27% SMM:07-14 +snake, snscore - display chase game SNAKE.6: 1% SNAKE(6)-1 +Snapshot, Uusnap - Uucp Queue SMM.09: 19% SMM:9-5 +SNARK PC.1: 81% PC(1)-2 +sockaddr structure SMM.15: 7% SMM:15-4 +sockaddr, struct PS1.06: 77% PS1:6-34 + " PS1.06: 78% PS1:6-34 + " PS1.06: 78% PS1:6-34 + " PS1.06: 78% PS1:6-34 + " PS1.06: 79% PS1:6-34 + " PS1.07a: 37% PS1:7-9 + " PS1.07a: 38% PS1:7-9 + " PS1.07a: 39% PS1:7-9 + " PS1.07a: 43% PS1:7-10 + " PS1.07a: 43% PS1:7-10 + " PS1.07a: 53% PS1:7-12 + " PS1.07a: 53% PS1:7-12 + " PS1.07a: 55% PS1:7-13 + " PS1.07a: 67% PS1:7-15 + " PS1.07a: 73% PS1:7-17 + " PS1.07a: 75% PS1:7-18 + " PS1.07a: 78% PS1:7-20 + " PS1.07a: 79% PS1:7-20 + " PS1.07a: 81% PS1:7-21 + " PS1.07a: 81% PS1:7-21 + " PS1.07a: 92% PS1:7-23 + " PS1.07a: 93% PS1:7-23 + " PS1.08: 12% PS1:8-5 + " PS1.08: 12% PS1:8-5 + " PS1.08: 13% PS1:8-5 + " PS1.08: 13% PS1:8-5 + " PS1.08: 14% PS1:8-6 + " PS1.08: 14% PS1:8-6 + " PS1.08: 14% PS1:8-6 + " PS1.08: 15% PS1:8-6 + " PS1.08: 15% PS1:8-6 + " PS1.08: 15% PS1:8-6 + " PS1.08: 15% PS1:8-6 + " PS1.08: 15% PS1:8-6 + " PS1.08: 15% PS1:8-6 + " PS1.08: 18% PS1:8-7 + " PS1.08: 18% PS1:8-7 + " PS1.08: 18% PS1:8-7 + " PS1.08: 18% PS1:8-7 + " PS1.08: 22% PS1:8-8 + " PS1.08: 23% PS1:8-9 + " PS1.08: 34% PS1:8-13 + " PS1.08: 41% PS1:8-16 + " PS1.08: 45% PS1:8-18 + " PS1.08: 46% PS1:8-18 + " PS1.08: 46% PS1:8-18 + " PS1.08: 47% PS1:8-19 + " PS1.08: 50% PS1:8-20 + " PS1.08: 55% PS1:8-22 + " PS1.08: 55% PS1:8-22 + " PS1.08: 67% PS1:8-27 + " PS1.08: 74% PS1:8-30 + " PS1.08: 74% PS1:8-30 + " PS1.08: 75% PS1:8-31 + " PS1.08: 78% PS1:8-31 + " PS1.08: 79% PS1:8-32 + " PS1.08: 79% PS1:8-32 + " PS1.08: 83% PS1:8-34 + " PS1.08: 88% PS1:8-36 + " PS1.08: 88% PS1:8-36 + " PS1.08: 88% PS1:8-36 + " PS1.08: 89% PS1:8-37 + " PS1.08: 91% PS1:8-38 + " PS1.08: 99% PS1:8-41 + " PS1.08: 99% PS1:8-41 +Socket[s] PS1.06: 87% PS1:6-37 + " PS1.07a: 54% PS1:7-12 + " PS1.07a: 71% PS1:7-16 + " PS1.07a: 74% PS1:7-18 + " PS1.07a: 81% PS1:7-21 + " PS1.08: 4% PS1:8-3 + " PS1.08: 4% PS1:8-3 + " PS1.08: 5% PS1:8-3 + " PS1.08: 55% PS1:8-22 + " PS1.08: 74% PS1:8-30 + " PS1.08: 78% PS1:8-31 + " PS1.08: 79% PS1:8-32 + " PS1.08: 85% PS1:8-35 + " PS1.08: 86% PS1:8-35 + " PS1.06: 50% PS1:6-24 +sockbuf, struct SMM.15: 17% SMM:15-6 + " SMM.15: 17% SMM:15-6 + " SMM.15: 22% SMM:15-7 +SOCKET[s] CLOSE.2: 21% CLOSE(2)-1 + " FIND.1: 34% FIND(1)-1 + " GETPEERNAME.2: 25% GETPEERNAME(2)- + " INTRO.2: 94% INTRO(2)-7 + " LS.1: 64% LS(1)-2 + " SMM.15: 16% SMM:15-6 + " SMM.12A: 31% SMM:12-7 + " SMM.12A: 60% SMM:12-14 +socket, accept - accept a connection on a ACCEPT.2: 2% ACCEPT(2)-1 +socket, accepting a connection from another PS1.06: 77% PS1:6-34 +socket, binding stream PS1.07a: 70% PS1:7-16 + " PS1.07a: 74% PS1:7-18 + " PS1.07a: 81% PS1:7-21 +socket, connecting to another PS1.06: 77% PS1:6-34 +socket, connection to a named PS1.06: 79% PS1:6-34 +socket[s], active NETSTAT.1: 10% NETSTAT(1)-1 + " SPP.4P: 12% SPP(4P)-1 + " TCP.4P: 19% TCP(4P)-1 +socket, connect - initiate a connection on a CONNECT.2: 1% CONNECT(2)-1 +socket, connected GETHOSTBYNAME.3N: 47% GETHOSTBYNAME(3) + " GETSOCKOPT.2: 53% GETSOCKOPT(2)-2 + " INTRO.2: 52% INTRO(2)-4 + " RECV.2: 17% RECV(2)-1 + " SMM.13: 35% SMM:13-13 +socket[s], create PS1.07a: 28% PS1:7-7 + " PS1.07a: 37% PS1:7-8 + " PS1.07a: 38% PS1:7-9 + " PS1.07a: 43% PS1:7-10 + " PS1.07a: 53% PS1:7-12 + " PS1.07a: 56% PS1:7-13 + " PS1.07a: 67% PS1:7-15 + " PS1.07a: 70% PS1:7-16 + " PS1.07a: 73% PS1:7-17 + " PS1.07a: 79% PS1:7-20 + " PS1.07a: 81% PS1:7-21 +socket[s], datagram CONNECT.2: 28% CONNECT(2)-1 + " CONNECT.2: 30% CONNECT(2)-1 + " GETSOCKOPT.2: 87% GETSOCKOPT(2)-2 + " INTRO.2: 44% INTRO(2)-4 + " INTRO.2: 53% INTRO(2)-4 + " PS1.06: 74% PS1:6-33 + " PS1.06: 77% PS1:6-34 + " PS1.06: 79% PS1:6-34 + " PS1.07a: 36% PS1:7-8 + " PS1.07a: 47% PS1:7-11 + " PS1.07a: 53% PS1:7-12 + " PS1.07a: 77% PS1:7-19 + " PS1.08: 6% PS1:8-3 + " PS1.08: 6% PS1:8-3 + " PS1.08: 6% PS1:8-3 + " PS1.08: 8% PS1:8-4 + " PS1.08: 9% PS1:8-4 + " PS1.08: 22% PS1:8-8 + " PS1.08: 22% PS1:8-8 + " PS1.08: 23% PS1:8-9 + " PS1.08: 24% PS1:8-9 + " PS1.08: 25% PS1:8-9 + " PS1.08: 50% PS1:8-20 + " PS1.08: 51% PS1:8-20 + " PS1.08: 78% PS1:8-32 + " PS1.08: 79% PS1:8-32 + " PS1.08: 84% PS1:8-34 + " PS1.08: 86% PS1:8-35 + " PS1.06: 77% PS1:6-34 +socket, opening datagram PS1.07a: 38% PS1:7-9 + " PS1.07a: 43% PS1:7-10 + " PS1.07a: 53% PS1:7-12 + " PS1.07a: 56% PS1:7-13 +socket, opening stream PS1.07a: 67% PS1:7-15 + " PS1.07a: 70% PS1:7-16 + " PS1.07a: 73% PS1:7-17 + " PS1.07a: 79% PS1:7-20 + " PS1.07a: 81% PS1:7-21 +socket[s], datagram SMM.13: 35% SMM:13-13 + " SMM.13: 41% SMM:13-15 + " SMM.13: 42% SMM:13-15 + " SMM.13: 42% SMM:13-15 + " SMM.15: 24% SMM:15-8 + " INET.4F: 74% INET(4F)-1 + " INETD.8: 43% INETD(8)-1 +socket[s], debugging TRSP.8C: 12% TRSP(8c)-1 + " TRPT.8C: 10% TRPT(8C)-1 +socket, fstat system call on a SMM.15: 55% SMM:15-16 +socket[s], IDP IDP.4P: 10% IDP(4P)-1 +socket, ioctl system call on a SMM.15: 54% SMM:15-16 +socket, listen - listen for connections on a LISTEN.2: 4% LISTEN(2)-1 +socket, nonblocking RECV.2: 38% RECV(2)-1 +socket[s], pairs of PS1.06: 79% PS1:6-34 +socket[s], passive SPP.4P: 15% SPP(4P)-1 + " SPP.4P: 17% SPP(4P)-1 + " SPP.4P: 21% SPP(4P)-1 + " TCP.4P: 22% TCP(4P)-1 + " TCP.4P: 25% TCP(4P)-1 + " TCP.4P: 29% TCP(4P)-1 +socket[s], raw ICMP.4P: 20% ICMP(4P)-1 + " INET.4F: 49% INET(4F)-1 + " IP.4P: 14% IP(4P)-1 + " PS1.06: 74% PS1:6-33 + " PS1.06: 87% PS1:6-37 + " PS1.06: 88% PS1:6-37 + " PS1.06: 88% PS1:6-37 + " PS1.08: 6% PS1:8-3 + " PS1.08: 6% PS1:8-3 + " PS1.08: 7% PS1:8-3 + " PS1.08: 72% PS1:8-30 + " PS1.08: 91% PS1:8-38 + " PS1.08: 70% PS1:8-28 + " ROUTE.8C: 52% ROUTE(8C)-1 + " SMM.13: 61% SMM:13-21 + " SMM.13: 61% SMM:13-21 + " SMM.13: 67% SMM:13-23 + " SMM.13: 67% SMM:13-23 + " SMM.15: 78% SMM:15-22 + " SMM.15: 78% SMM:15-22 + " SMM.15: 78% SMM:15-22 + " SMM.15: 78% SMM:15-22 + " SMM.15: 79% SMM:15-23 + " SMM.15: 80% SMM:15-23 + " SMM.15: 82% SMM:15-23 + " SOCKET.2: 29% SOCKET(2)-1 + " SOCKET.2: 70% SOCKET(2)-2 +socket[s], Raw IP IP.4P: 39% IP(4P)-1 + " SMM.13: 67% SMM:13-23 + " SMM.13: 69% SMM:13-24 + " SMM.15: 79% SMM:15-22 +socket[s], Select for exceptional conditions on SMM.13: 38% SMM:13-14 +socket, send, sendto, sendmsg - send a message from a SEND.2: 1% SEND(2)-1 +socket[s], read and write with PS1.06: 83% PS1:6-36 +socket[s], setsockopt - set options on GETSOCKOPT.2: 1% GETSOCKOPT(2)-1 +socket[s], socketpair - create a pair of connected SOCKETPAIR.2: 4% SOCKETPAIR(2)-1 +socket[s], stream CONNECT.2: 26% CONNECT(2)-1 + " PS1.07a: 58% PS1:7-14 + " PS1.07a: 58% PS1:7-14 + " PS1.07a: 68% PS1:7-15 + " PS1.07a: 79% PS1:7-20 + " PS1.08: 5% PS1:8-3 + " PS1.08: 6% PS1:8-3 + " PS1.08: 7% PS1:8-3 + " PS1.08: 7% PS1:8-3 + " PS1.08: 9% PS1:8-4 + " PS1.08: 21% PS1:8-8 + " PS1.08: 24% PS1:8-9 + " PS1.08: 58% PS1:8-24 + " PS1.08: 64% PS1:8-26 + " PS1.08: 76% PS1:8-31 +socket[s], UNIX domain PS1.07a: 37% PS1:7-8 + " PS1.08: 12% PS1:8-5 + " PS1.08: 99% PS1:8-41 +Socket and protocol option[s] PS1.06: 84% PS1:6-36 +socket call PS1.06: 76% PS1:6-33 + " PS1.08: 9% PS1:8-4 + " PS1.08: 10% PS1:8-4 + " PS1.08: 63% PS1:8-25 + " PS1.08: 70% PS1:8-28 +Socket creation PS1.06: 76% PS1:6-33 + " PS1.08: 8% PS1:8-4 +socket I/O, Interrupt driven PS1.08: 64% PS1:8-26 +Socket name[s] PS1.06: 86% PS1:6-37 + " PS1.07a: 54% PS1:7-12 + " PS1.07a: 71% PS1:7-16 + " PS1.07a: 74% PS1:7-18 +Socket naming PS1.06: 87% PS1:6-37 +socket option[s] PS1.08: 84% PS1:8-35 +socket type[s] PS1.06: 74% PS1:6-33 + " PS1.06: 74% PS1:6-33 + " PS1.06: 75% PS1:6-33 + " PS1.06: 76% PS1:6-33 + " PS1.06: 76% PS1:6-33 + " PS1.07a: 35% PS1:7-8 + " PS1.08: 5% PS1:8-3 + " PS1.08: 9% PS1:8-4 + " PS1.08: 86% PS1:8-35 +Socket types and protocols PS1.06: 73% PS1:6-33 + " PS1.06: 86% PS1:6-37 +socket's bound name PS1.06: 78% PS1:6-34 +socket(domain, type, protocol) PS1.06: 76% PS1:6-34 +Socketpair[s] PS1.07a: 22% PS1:7-4 +socket[s], stream SMM.13: 40% SMM:13-14 + " SMM.13: 41% SMM:13-15 + " SMM.15: 91% SMM:15-25 + " SOCKET.2: 42% SOCKET(2)-1 + " SOCKET.2: 67% SOCKET(2)-2 + " SMM.15: 90% SMM:15-25 +socket[s], UNIX domain WINDOW.1: 14% WINDOW(1)-1 +socket, urgent condition present on SIGNAL.3C: 27% unknown +socket - create an endpoint for communication SOCKET.2: 0% SOCKET(2)-1 +socket abstraction[s] INTRO.4N: 12% INTRO(4N)-1 + " INTRO.4N: 13% INTRO(4N)-1 + " INTRO.4N: 17% INTRO(4N)-1 + " SMM.15: 15% SMM:15-6 + " SMM.15: 16% SMM:15-6 +socket call ICMP.4P: 25% ICMP(4P)-1 + " SMM.15: 16% SMM:15-6 +Socket connection queuing SMM.15: 26% SMM:15-8 +socket creation time SMM.15: 18% SMM:15-6 + " SMM.15: 18% SMM:15-6 + " SMM.15: 87% SMM:15-24 +Socket data queue[s] SMM.15: 22% SMM:15-7 +socket layer SMM.13: 38% SMM:13-14 + " SMM.15: 16% SMM:15-6 + " GETSOCKOPT.2: 37% GETSOCKOPT(2)-1 + " SMM.13: 37% SMM:13-13 + " SMM.13: 37% SMM:13-13 + " SMM.13: 37% SMM:13-14 +socket operation[s] FCNTL.2: 97% FCNTL(2)-2 + " ICMP.4P: 58% ICMP(4P)-1 + " IDP.4P: 31% IDP(4P)-1 + " INTRO.2: 48% INTRO(2)-4 + " INTRO.2: 59% INTRO(2)-5 + " INTRO.2: 59% INTRO(2)-5 + " IP.4P: 65% IP(4P)-1 + " SMM.13: 36% SMM:13-13 + " SPP.4P: 59% SPP(4P)-1 + " TCP.4P: 74% TCP(4P)-1 + " UDP.4P: 58% UDP(4P)-1 +socket option[s] GETSOCKOPT.2: 98% GETSOCKOPT(2)-2 + " IDP.4P: 51% IDP(4P)-1 + " SMM.13: 86% SMM:13-29 + " SPP.4P: 79% SPP(4P)-2 + " TCP.4P: 50% TCP(4P)-1 +socket routines SMM.15: 23% SMM:15-8 + " SMM.15: 24% SMM:15-8 + " SMM.15: 31% SMM:15-10 + " SMM.15: 31% SMM:15-10 + " SMM.15: 47% SMM:15-15 + " SMM.15: 54% SMM:15-16 + " SMM.15: 57% SMM:15-17 + " SMM.15: 87% SMM:15-24 +Socket state SMM.15: 19% SMM:15-7 + " NETSTAT.1: 21% NETSTAT(1)-1 +socket structure[s] PSTAT.8: 87% PSTAT(8)-3 + " SMM.15: 18% SMM:15-6 + " SMM.15: 18% SMM:15-6 + " SMM.15: 26% SMM:15-8 + " SMM.15: 26% SMM:15-8 + " SYSTAT.1: 29% SYSTAT(1)-2 +socket type[s] ACCEPT.2: 65% ACCEPT(2)-1 + " INETD.8: 34% INETD(8)-1 + " INTRO.2: 41% INTRO(2)-4 + " INTRO.2: 43% INTRO(2)-4 + " INTRO.2: 97% INTRO(2)-7 + " INTRO.4N: 11% INTRO(4N)-1 + " INTRO.4N: 18% INTRO(4N)-1 + " SMM.15: 27% SMM:15-8 + " SMM.15: 28% SMM:15-9 + " SMM.15: 28% SMM:15-9 + " SMM.15: 32% SMM:15-10 + " SOCKET.2: 35% SOCKET(2)-1 + " SPP.4P: 55% SPP(4P)-1 + " INETD.8: 26% INETD(8)-1 +socket-level option[s] GETSOCKOPT.2: 31% GETSOCKOPT(2)-1 + " SMM.15: 91% SMM:15-25 +Socket/protocol interface SMM.15: 47% SMM:15-15 +Socketpair[s] PIPE.2: 57% PIPE(2)-1 +socketpair - create a pair of connected socket[s] SOCKETPAIR.2: 4% SOCKETPAIR(2)-1 +socketpair(domain, type, protocol, sv) PS1.06: 80% PS1:6-35 +SOCK_DGRAM PS1.06: 74% PS1:6-33 + " PS1.06: 86% PS1:6-37 +SOCK_RAW PS1.06: 74% PS1:6-33 +SOCK_RDM PS1.06: 74% PS1:6-33 +SOCK_SEQPACKET PS1.06: 74% PS1:6-33 +SOCK_STREAM PS1.06: 74% PS1:6-33 + " PS1.06: 86% PS1:6-37 +soelim - eliminate .so's from nroff input SOELIM.1: 5% SOELIM(1)-1 +soft limit[s] GETRLIMIT.2: 40% GETRLIMIT(2)-1 + " INTRO.2: 18% INTRO(2)-2 + " PS1.06: 72% PS1:6-32 + " SMM.01: 83% SMM:1-50 + " SMM.14: 92% SMM:14-13 +soft limit (quota) SMM.04: 14% SMM:4-1 +Software, User Contributed SMM.12A: 33% SMM:12-8 + " SMM.12A: 97% SMM:12-23 + " SMM.01: 23% SMM:1-17 +software condition[s] PS1.06: 24% PS1:6-13 +software distribution CI.N: 59% CI(1)-2 +Software interrupts and terminal multiplexor[s] SMM.13: 14% SMM:13-6 +software distribution PS1.13: 30% PS1:13-6 + " PS1.13: 7% PS1:13-2 +software interrupt[s] PS1.06: 0% + " PS1.06: 13% PS1:6-9 +software loopback LO.4: 13% LO(4)-1 +software loopback interface ROUTED.8C: 11% ROUTED(8C)-1 + " SMM.13: 60% SMM:13-21 + " XNSROUTED.8C: 18% XNSROUTED(8C)-1 +software maintenance SMM.21: 4% SMM:21-1 + " SMM.21: 61% SMM:21-5 + " SMM.21: 66% SMM:21-5 + " SMM.21: 80% SMM:21-6 + " RDIST.1: 2% RDIST(1)-1 +software packages & documentation, posting of USD.09: 79% USD:9-10 +software termination signal SIGNAL.3C: 27% unknown +Software Tools RATFOR.1: 94% RATFOR(1)-1 +Software-Practice and Experience USD.31: 14% USD:31-2 +Sort UNIQ.1: 33% unknown + " SMM.12A: 47% SMM:12-11 +sort, qsort - quick QSORT.3F: 5% QSORT(3F)-1 +sort, qsort - quicker QSORT.3: 6% unknown +sort, tsort - topological TSORT.1: 6% unknown +sort by field[s] USD.29: 28% USD:29-3 +Sort by time LS.1: 22% LS(1)-1 +sort command USD.04: 9% USD:4-5 + " USD.04: 10% USD:4-5 + " USD.04: 10% USD:4-5 + " USD.04: 10% USD:4-5 + " USD.04: 36% USD:4-16 +sort key[s] SORT.1: 33% SORT(1)-1 + " SORT.1: 53% SORT(1)-1 + " SORTBIB.1: 43% SORTBIB(1)-1 +sort order RUPTIME.1C: 83% RUPTIME(1C)-1 + " SMM.12A: 46% SMM:12-11 +sort template USD.31: 60% USD:31-10 + " USD.31: 60% USD:31-10 + " USD.31: 63% USD:31-10 +SORTACTIVE SMM.10: 18% SMM:10-5 + " SMM.10: 27% SMM:10-8 + " SMM.10: 59% SMM:10-15 +Sortbib USD.29: 26% USD:29-3 +sortbib database[s] ROFFBIB.1: 20% ROFFBIB(1)-1 + " SORTBIB.1: 51% SORTBIB(1)-1 + " SORTBIB.1: 72% SORTBIB(1)-1 + " USD.29: 3% USD:29-1 +sorted list[s] LOOK.1: 11% LOOK(1)-1 + " USD.04: 10% USD:4-5 + " USD.04: 16% USD:4-8 +sorting a bibliography USD.29: 3% USD:29-1 +sorting the bibliography USD.29: 27% USD:29-3 +sortm - sort message[s] USD.08: 57% USD:8-68 +Source USD.17: 93% USD:17-45 +source, /sys/sys - machine independent kernel SMM.01: 39% SMM:1-26 +source, Lex PS1.16: 0% PS1:16-1 + " PS1.16: 18% PS1:16-3 + " PS1.16: 63% PS1:16-8 + " PS1.16: 67% PS1:16-9 +source, program PS1.02: 30% PS1:2-11 + " PS1.18: 5% PS1:18-3 +source, Ratfor PS2.08: 70% PS2:8-10 + " PS2.08: 98% PS2:8-14 + " PS2.09: 1% PS2:9-4 + " PS1.11a: 4% PS1:11-1 + " PS1.11a: 7% PS1:11-1 + " PS1.11a: 49% PS1:11-3 + " PS1.11a: 93% PS1:11-6 +source code, compiling changed PS1.12: 9% PS1:12-1 +source code control system PS1.13: 0% PS1:13-1 + " PS1.14: 0% PS1:14-1 + " PS1.14: 6% PS1:14-1 + " PS1.14: 7% PS1:14-2 + " PS1.14: 16% PS1:14-3 + " PS1.14: 22% PS1:14-4 + " PS1.14: 30% PS1:14-4 + " PS1.14: 38% PS1:14-6 + " PS1.14: 46% PS1:14-6 + " PS1.14: 52% PS1:14-8 + " PS1.14: 59% PS1:14-8 + " PS1.14: 67% PS1:14-10 + " PS1.14: 74% PS1:14-10 + " PS1.14: 80% PS1:14-12 + " PS1.14: 85% PS1:14-12 + " PS1.14: 90% PS1:14-14 + " PS1.14: 96% PS1:14-14 +source file[s] PS1.11a: 92% PS1:11-6 + " PS1.11a: 93% PS1:11-6 + " PS1.11a: 94% PS1:11-6 +source line PS1.11a: 82% PS1:11-6 + " PS1.11a: 83% PS1:11-6 +source management PS1.14: 1% PS1:14-1 +SO_DEFAULT_HEADER[s] PS1.08: 92% PS1:8-38 +SO_ERROR PS1.08: 24% PS1:8-9 +SO_HEADERS_ON_OUTPUT PS1.08: 91% PS1:8-38 +SO_OOBINLINE PS1.08: 62% PS1:8-24 +source[s], compiler SMM.19: 8% SMM:19-3 + " SMM.12A: 11% SMM:12-3 +source[s], lisp CTAGS.1: 6% CTAGS(1)-1 +source, recompile the entire system SMM.01: 80% SMM:1-48 +source[s], system CONFIG.8: 26% CONFIG(8)-1 + " SMM.01: 22% SMM:1-16 + " SMM.01: 22% SMM:1-16 + " SMM.01: 23% SMM:1-16 + " SMM.01: 39% SMM:1-26 + " SMM.01: 50% SMM:1-32 + " SMM.01: 80% SMM:1-48 + " SMM.01: 81% SMM:1-49 + " SMM.01: 89% SMM:1-56 + " SMM.02: 8% SMM:2-4 + " SMM.02: 10% SMM:2-4 + " SMM.12A: 79% SMM:12-19 + " HIER.7: 25% HIER(7)-2 + " SMM.01: 31% SMM:1-21 +source code CRASH.8V: 16% CRASH(8V)-1 + " ERROR.1: 6% ERROR(1)-1 + " SMM.01: 23% SMM:1-17 + " SMM.01: 34% SMM:1-22 + " SMM.01: 42% SMM:1-28 + " SMM.01: 47% SMM:1-30 + " SMM.01: 47% SMM:1-30 + " SMM.02: 8% SMM:2-4 + " SMM.02: 18% SMM:2-6 + " SMM.02: 47% SMM:2-14 + " SMM.13: 0% SMM:13-2 + " SMM.19: 2% SMM:19-2 + " SMM.19: 41% SMM:19-12 + " USD.10: 32% USD:10-4 +source code, finding WHEREIS.1: 71% WHEREIS(1)-1 +source code control system (see also SCCS) SCCS.1: 95% SCCS(1)-2 + " WHAT.1: 41% WHAT(1)-1 +source code dependency[s] SMM.02: 13% SMM:2-5 +source code for utilities HIER.7: 80% HIER(7)-5 +Source command[s] CSH.1: 70% CSH(1)-15 + " CSH.1: 70% CSH(1)-15 + " CSH.1: 70% CSH(1)-15 + " MAIL.1: 59% MAIL(1)-4 + " USD.04: 51% USD:4-23 + " USD.07: 68% USD:7-16 + " USD.16: 3% USD:16-1 + " USD.16: 52% USD:16-10 + " USD.17: 55% USD:17-24 + " VI.1: 78% VI(1)-1 +source directory MAKE.1: 73% MAKE(1)-2 + " SMM.13: 2% SMM:13-2 +source for manuals MAN.1: 88% unknown +source level debugging DBX.1: 1% DBX(1)-1 + " PDX.1: 1% PDX(1)-1 +source line number[s] ASSERT.3: 87% ASSERT(3)-1 + " DBX.1: 20% DBX(1)-2 + " ERROR.1: 65% ERROR(1)-2 + " PDX.1: 21% PDX(1)-1 + " SMM.19: 41% SMM:19-12 + " SMM.19: 41% SMM:19-12 +source module[s] SMM.02: 18% SMM:2-6 + " SMM.02: 48% SMM:2-15 +source port RLOGIND.8C: 19% RLOGIND(8C)-1 + " RLOGIND.8C: 32% RLOGIND(8C)-1 + " RSHD.8C: 12% RSHD(8C)-1 + " RSHD.8C: 22% RSHD(8C)-1 +source shell command CSH.1: 57% CSH(1)-12 +sourceany option SMM.12A: 17% SMM:12-5 +SO_DEBUG SMM.01: 84% SMM:1-50 +sp ASCII.7: 65% ASCII(7)-1 +Space[s] PLOT.3F: 38% PLOT(3F)-1 + " PLOT.3X: 17% PLOT(3X)-1 +space, buffer INTRO.2: 51% INTRO(2)-4 + " SMM.13: 8% SMM:13-4 + " SMM.13: 36% SMM:13-13 + " SMM.15: 60% SMM:15-18 +space, disk DBX.1: 94% DBX(1)-7 + " DCHECK.8: 82% DCHECK(8)-1 + " FS.5: 50% FS(5)-2 + " FS.5: 76% FS(5)-3 + " MKFS.8: 46% MKFS(8)-1 + " SMM.01: 3% SMM:1-3 + " SMM.01: 3% SMM:1-3 + " SMM.01: 10% SMM:1-7 + " SMM.01: 46% SMM:1-30 + " SMM.01: 48% SMM:1-31 + " SMM.01: 49% SMM:1-31 + " SMM.01: 49% SMM:1-31 + " SMM.01: 82% SMM:1-50 + " SMM.02: 17% SMM:2-6 + " SMM.05: 12% SMM:5-4 + " SMM.10: 17% SMM:10-5 + " SMM.17: 16% SMM:17-1 + " USD.04: 94% USD:4-43 + " USD.09: 10% USD:9-2 + " SMM.12A: 89% SMM:12-21 + " SMM.01: 2% SMM:1-3 +space, double MS.7: 12% MS(7)-1 +space, file DBM.3X: 92% DBM(3X)-2 + " NDBM.3: 93% NDBM(3)-2 + " RANLIB.1: 35% RANLIB(1)-1 + " USD.04: 7% USD:4-4 + " SMM.01: 77% SMM:1-47 +space, free DF.1: 51% DF(1)-1 + " DIR.5: 40% DIR(5)-1 + " NEWFS.8: 43% NEWFS(8)-1 + " SMM.10: 25% SMM:10-7 + " SMM.14: 38% SMM:14-6 + " SMM.14: 38% SMM:14-6 + " SMM.14: 57% SMM:14-9 + " SMM.14: 61% SMM:14-9 + " SMM.14: 77% SMM:14-11 + " SMM.15: 87% SMM:15-24 +space, I/O MEM.4: 74% MEM(4)-1 + " SMM.15: 47% SMM:15-14 + " SMM.15: 47% SMM:15-14 +space[s], name BIND.2: 14% BIND(2)-1 + " SMM.11: 11% SMM:11-2 + " SMM.13: 83% SMM:13-28 + " SMM.14: 1% SMM:14-2 + " SMM.12A: 3% SMM:12-2 +space, need vertical USD.24: 31% USD:24-11 +space[s], non-breakable USD.31: 4% USD:31-1 +space, Output saved vertical USD.24: 40% USD:24-14 +space, Paging SMM.01: 44% SMM:1-29 + " SMM.01: 45% SMM:1-29 + " SMM.02: 93% SMM:2-32 +space[s], pattern SED.1: 11% SED(1)-1 + " SED.1: 14% SED(1)-1 + " SED.1: 15% SED(1)-1 + " SED.1: 16% SED(1)-1 + " SED.1: 21% SED(1)-1 + " SED.1: 22% SED(1)-1 + " SED.1: 23% SED(1)-1 + " SED.1: 26% SED(1)-1 + " SED.1: 27% SED(1)-1 + " SED.1: 32% SED(1)-1 + " SED.1: 49% SED(1)-1 + " SED.1: 52% SED(1)-2 + " SED.1: 54% SED(1)-2 + " SED.1: 55% SED(1)-2 + " SED.1: 57% SED(1)-2 + " SED.1: 59% SED(1)-2 + " SED.1: 60% SED(1)-2 + " SED.1: 62% SED(1)-2 + " SED.1: 62% SED(1)-2 + " SED.1: 64% SED(1)-2 + " SED.1: 66% SED(1)-2 + " SED.1: 67% SED(1)-2 + " SED.1: 74% SED(1)-2 + " SED.1: 78% SED(1)-2 + " SED.1: 79% SED(1)-2 + " SED.1: 85% SED(1)-2 + " SED.1: 97% SED(1)-3 + " USD.18: 19% USD:18-2 + " USD.18: 19% USD:18-2 + " USD.18: 19% USD:18-2 + " USD.18: 28% USD:18-3 + " USD.18: 28% USD:18-3 + " USD.18: 30% USD:18-3 + " USD.18: 35% USD:18-4 + " USD.18: 80% USD:18-8 + " USD.18: 81% USD:18-8 + " USD.18: 82% USD:18-8 + " USD.18: 82% USD:18-8 + " USD.18: 82% USD:18-8 + " USD.18: 83% USD:18-8 + " USD.18: 83% USD:18-8 + " USD.18: 84% USD:18-8 + " USD.18: 85% USD:18-9 + " USD.18: 85% USD:18-9 + " USD.18: 86% USD:18-9 + " USD.18: 86% USD:18-9 + " USD.18: 87% USD:18-9 + " USD.18: 87% USD:18-9 +space, physical SMM.14: 15% SMM:14-3 +space, stack GETRLIMIT.2: 65% GETRLIMIT(2)-1 + " SMM.19: 7% SMM:19-3 + " VLIMIT.3C: 67% VLIMIT(3C)-1 +space, swap BRK.2: 89% BRK(2)-1 + " FORK.2: 93% FORK(2)-1 + " FSTAB.5: 55% FSTAB(5)-1 + " INTRO.2: 16% INTRO(2)-2 + " INTRO.2: 17% INTRO(2)-2 + " SMM.02: 28% SMM:2-8 + " SMM.02: 94% SMM:2-32 + " SMM.13: 47% SMM:13-17 + " SMM.17: 15% SMM:17-1 + " SMM.17: 16% SMM:17-1 +space, text GPROF.1: 40% GPROF(1)-1 + " SMM.02: 20% SMM:2-6 + " SMM.02: 20% SMM:2-6 +space, user address SMM.13: 17% SMM:13-7 +space[s], vertical USD.24: 38% USD:24-13 + " USD.24: 39% USD:24-13 + " USD.24: 39% USD:24-13 + " USD.24: 39% USD:24-13 + " USD.24: 39% USD:24-13 + " USD.24: 39% USD:24-13 + " USD.24: 40% USD:24-14 + " USD.24: 40% USD:24-14 + " USD.24: 40% USD:24-14 + " USD.24: 72% USD:24-23 + " USD.25: 15% USD:25-3 + " USD.25: 16% USD:25-3 + " USD.25: 16% USD:25-3 + " USD.25: 16% USD:25-3 + " USD.25: 49% USD:25-8 +space[s], virtual address SMM.02: 90% SMM:2-31 + " SMM.14: 7% SMM:14-2 +space, wasted SMM.14: 24% SMM:14-5 + " SMM.14: 35% SMM:14-6 +space, white AWK.1: 14% AWK(1)-1 + " GETOPT.3: 18% GETOPT(3)-1 + " PR.1: 75% PR(1)-1 + " RESOLVER.5: 90% RESOLVER(5)-1 + " SMM.10: 92% SMM:10-23 + " SMM.19: 95% SMM:19-26 + " USD.15: 51% USD:15-15 + " USD.15: 51% USD:15-15 + " USD.15: 58% USD:15-16 + " USD.15: 77% USD:15-22 + " USD.15: 90% USD:15-25 + " USD.16: 39% USD:16-7 + " USD.16: 39% USD:16-7 + " USD.16: 39% USD:16-7 + " USD.16: 40% USD:16-8 + " USD.16: 66% USD:16-13 + " USD.16: 79% USD:16-15 + " USD.16: 79% USD:16-15 + " USD.16: 80% USD:16-15 + " USD.16: 89% USD:16-17 + " USD.17: 16% USD:17-7 + " USD.19: 15% USD:19-2 + " USD.22: 17% USD:22-3 + " USD.22: 18% USD:22-3 + " USD.23: 32% USD:23-4 + " USD.24: 18% USD:24-8 + " USD.26: 33% USD:26-3 +Space between column[s] USD.28: 21% USD:28-4 +space character[s] SCANF.3S: 45% SCANF(3S)-1 + " SCANF.3S: 47% SCANF(3S)-1 + " SCANF.3S: 61% SCANF(3S)-2 + " USD.22: 14% USD:22-3 + " USD.24: 33% USD:24-12 + " USD.24: 34% USD:24-12 + " USD.24: 36% USD:24-12 + " USD.24: 44% USD:24-15 + " USD.24: 59% USD:24-19 +Space vertically USD.24: 40% USD:24-14 +Space-character size USD.24: 27% USD:24-10 +spacing, Base-line USD.24: 37% USD:24-13 + " USD.24: 85% USD:24-28 + " USD.24: 86% USD:24-28 + " USD.24: 86% USD:24-28 + " USD.24: 87% USD:24-29 +Spacing, Double USD.22: 16% USD:22-3 +spacing, line ME.7: 13% ME(7)-1 + " MS.7: 11% MS(7)-1 + " USD.23: 42% USD:23-6 + " USD.23: 42% USD:23-6 + " USD.25: 9% USD:25-2 + " USD.25: 16% USD:25-3 + " USD.25: 64% USD:25-10 + " USD.24: 39% USD:24-13 +spacing, minimum interword USD.24: 34% USD:24-12 +spacing, Restore USD.24: 41% USD:24-14 +spacing, Set vertical base-line USD.24: 39% USD:24-13 +spacing, vertical FPR.1: 28% FPR(1)-1 + " USD.22: 93% USD:22-18 + " USD.23: 29% USD:23-4 + " USD.24: 7% USD:24-3 + " USD.24: 37% USD:24-13 + " USD.24: 37% USD:24-13 + " USD.24: 86% USD:24-28 + " USD.24: 94% USD:24-32 + " USD.25: 13% USD:25-3 + " USD.25: 13% USD:25-3 + " USD.25: 13% USD:25-3 + " USD.25: 14% USD:25-3 + " USD.25: 14% USD:25-3 + " USD.25: 14% USD:25-3 + " USD.25: 15% USD:25-3 + " USD.25: 64% USD:25-10 + " USD.25: 64% USD:25-10 + " USD.25: 65% USD:25-10 + " USD.27: 61% USD:27-7 + " USD.28: 26% USD:28-4 + " MS.7: 74% MS(7)-3 +spanned heading USD.28: 13% USD:28-3 +spanning, Vertical USD.28: 22% USD:28-4 +Special Character[s] USD.12: 56% USD:12-6 + " USD.12: 67% USD:12-7 + " USD.12: 81% USD:12-9 + " USD.14: 78% USD:14-19 + " USD.23: 72% USD:23-9 + " USD.25: 21% USD:25-4 + " SMM.20: 45% SMM:20-4 +special characters for advanced editing USD.12: 2% USD:12-1 +Special characters: ESC, CR and DEL USD.15: 6% USD:15-3 +Special file[s] FIND.1: 63% FIND(1)-2 + " HIER.7: 4% HIER(7)-1 + " INTRO.4: 1% INTRO(4)-1 + " MAKEDEV.8: 5% MAKEDEV(8)-1 + " MKNOD.2: 2% MKNOD(2)-1 + " MKNOD.8: 24% MKNOD(8)-1 + " SMM.01: 6% SMM:1-4 +Special Font USD.24: 23% USD:24-9 + " USD.24: 24% USD:24-9 + " USD.24: 25% USD:24-9 +Special Mathematical Font USD.24: 66% USD:24-21 + " USD.24: 25% USD:24-9 +Specifier[s], Type SMM.19: 61% SMM:19-17 +speech, parts of STYLE.1: 84% STYLE(1)-1 +SPELL SMM.12A: 47% SMM:12-11 +speed, line PS1.06: 93% PS1:6-39 +spell-buffer USD.17: 94% USD:17-45 +spelling, Australian QUOTA.2: 96% QUOTA(2)-2 +Spelling Checking USD.17: 50% USD:17-22 +spelling errors USD.17: 51% USD:17-22 + " USD.32: 2% USD:32-1 + " SMM.12A: 80% SMM:12-19 +spelling list[s] SPELL.1: 11% SPELL(1)-1 + " SPELL.1: 15% SPELL(1)-1 + " SPELL.1: 23% SPELL(1)-1 + " SPELL.1: 37% SPELL(1)-1 + " SPELL.1: 47% SPELL(1)-1 + " SPELL.1: 83% SPELL(1)-1 +spelling mistake[s] USD.01: 72% USD:1-11 + " USD.01: 73% USD:1-11 + " USD.12: 51% USD:12-6 +splicing macro PS2.09: 52% PS2:9-93 + " PS2.09: 52% PS2:9-93 + " PS2.09: 53% PS2:9-93 + " PS2.09: 53% PS2:9-93 + " PS2.09: 53% PS2:9-93 + " PS2.09: 53% PS2:9-93 +SPP PS1.08: 95% PS1:8-40 +SPP connection[s] PS1.08: 90% PS1:8-37 + " PS1.08: 92% PS1:8-38 + " PS1.08: 92% PS1:8-38 +SPP header PS1.08: 86% PS1:8-35 +split - split a file into piece[s] SPLIT.1: 9% unknown +split a multi-routine Fortran file FSPLIT.1: 3% FSPLIT(1)-1 +split into field[s] USD.19: 57% USD:19-5 +split the screen USD.17: 40% USD:17-18 +split-current-window (C-X 2) USD.17: 94% USD:17-45 +splitting line[s] USD.13: 34% USD:13-6 +SPOOL SMM.10: 48% SMM:10-13 + " SMM.10: 61% SMM:10-16 +spool directory[s] LPD.8: 29% LPD(8)-1 + " SMM.01: 31% SMM:1-21 + " SMM.09: 2% SMM:9-2 + " SMM.09: 4% SMM:9-2 + " SMM.09: 11% SMM:9-3 + " SMM.09: 12% SMM:9-3 + " SMM.09: 15% SMM:9-4 + " SMM.09: 16% SMM:9-4 + " SMM.09: 18% SMM:9-5 + " SMM.09: 20% SMM:9-5 + " SMM.09: 22% SMM:9-5 + " SMM.09: 23% SMM:9-6 + " SMM.09: 24% SMM:9-6 + " SMM.09: 29% SMM:9-7 + " SMM.09: 30% SMM:9-7 + " SMM.09: 31% SMM:9-7 + " SMM.09: 32% SMM:9-7 + " SMM.09: 33% SMM:9-8 + " SMM.09: 34% SMM:9-8 + " SMM.09: 37% SMM:9-8 + " SMM.09: 53% SMM:9-12 + " SMM.09: 53% SMM:9-12 + " SMM.09: 54% SMM:9-12 + " SMM.09: 93% SMM:9-20 + " SMM.09: 93% SMM:9-20 + " SMM.09: 94% SMM:9-20 + " SMM.09: 96% SMM:9-20 + " SMM.10: 77% SMM:10-19 + " SMM.10: 82% SMM:10-20 + " SMM.10: 82% SMM:10-20 + " SMM.10: 82% SMM:10-20 + " SMM.10: 82% SMM:10-20 + " UUCICO.8C: 9% UUCICO(8C)-1 + " UUCLEAN.8C: 22% UUCLEAN(8C)-1 + " UUCLEAN.8C: 88% UUCLEAN(8C)-1 + " UUCP.1C: 39% UUCP(1C)-1 + " UUCP.1C: 41% UUCP(1C)-1 + " UUCP.1C: 58% UUCP(1C)-1 +spool file[s] SMM.06: 29% SMM:6-3 + " SMM.09: 30% SMM:9-7 + " SMM.10: 16% SMM:10-5 + " SMM.12A: 5% SMM:12-2 +spool queue[s] LPC.8: 60% LPC(8)-1 + " LPQ.1: 24% LPQ(1)-1 + " LPRM.1: 10% LPRM(1)-1 + " LPRM.1: 27% LPRM(1)-1 + " SMM.01: 55% SMM:1-34 + " SMM.06: 74% SMM:6-5 +Spooler Manual, 4.3BSD Line Printer SMM.06: 0% unknown +spooling area[s] LPQ.1: 7% LPQ(1)-1 + " SMM.01: 57% SMM:1-35 + " SMM.01: 57% SMM:1-36 + " SMM.01: 58% SMM:1-36 + " SMM.06: 17% SMM:6-2 + " SMM.06: 25% SMM:6-3 + " SMM.06: 26% SMM:6-3 + " SMM.06: 26% SMM:6-3 + " SMM.06: 28% SMM:6-3 + " SMM.06: 28% SMM:6-3 + " SMM.14: 84% SMM:14-12 +spooling daemon[s] LPC.8: 32% LPC(8)-1 + " LPC.8: 75% LPC(8)-2 + " LPC.8: 80% LPC(8)-2 + " LPR.1: 5% LPR(1)-1 + " LPR.1: 15% LPR(1)-1 + " SMM.06: 69% SMM:6-5 + " SMM.06: 74% SMM:6-5 + " SMM.14: 59% SMM:14-9 +spooling directory[s] LPQ.1: 54% LPQ(1)-1 + " LPQ.1: 74% LPQ(1)-1 + " LPQ.1: 97% LPQ(1)-1 + " LPRM.1: 12% LPRM(1)-1 + " SMM.01: 33% SMM:1-22 + " SMM.01: 59% SMM:1-36 + " SMM.06: 46% SMM:6-4 +spooling queue[s] LPC.8: 10% LPC(8)-1 + " LPC.8: 12% LPC(8)-1 + " SMM.01: 55% SMM:1-34 + " SMM.01: 55% SMM:1-34 + " SMM.06: 9% SMM:6-2 + " SMM.06: 21% SMM:6-2 + " SMM.06: 24% SMM:6-2 + " SMM.06: 24% SMM:6-2 +SPP IDP.4P: 21% IDP(4P)-1 + " NS.4F: 73% NS(4F)-1 + " NS.4F: 76% NS(4F)-2 + " SMM.01: 60% SMM:1-38 + " SMM.13: 85% SMM:13-29 + " SMM.12A: 59% SMM:12-14 +spp - Xerox Sequenced Packet Protocol SPP.4P: 1% SPP(4P)-1 +SPP trace record[s] TRSP.8C: 10% TRSP(8c)-1 +sprintf PRINTF.3S: 1% PRINTF(3S)-1 +SQRT SQRT.3M: 6% SQRT(3M)-1 + " SQRT.3M: 19% SQRT(3M)-1 + " SQRT.3M: 28% SQRT(3M)-1 + " SQRT.3M: 36% SQRT(3M)-1 + " SQRT.3M: 53% SQRT(3M)-1 + " SQRT.3M: 59% SQRT(3M)-1 +square bracket[s] SMM.19: 7% SMM:19-3 + " SMM.19: 7% SMM:19-3 + " USD.06: 64% USD:6-9 + " USD.18: 29% USD:18-3 +square brackets PS1.01: 21% PS1:1-7 + " PS2.06: 5% PS2:6-3 + " PS2.09: 7% PS2:9-10 +square root PS1.02: 13% PS1:2-6 + " PS2.09: 24% PS2:9-46 + " PS2.10: 41% PS2:10-36 +square root[s] DC.1: 56% DC(1)-1 + " EQN.1: 37% EQN(1)-1 + " INTRO.3F: 16% INTRO(3F)-1 + " SQRT.3M: 9% SQRT(3M)-1 + " USD.05: 18% USD:5-2 + " USD.05: 18% USD:5-2 + " USD.05: 61% USD:5-5 + " USD.05: 97% USD:5-7 + " USD.06: 26% USD:6-3 + " USD.06: 74% USD:6-10 + " USD.19: 46% USD:19-4 + " USD.26: 41% USD:26-3 + " USD.27: 31% USD:27-4 + " USD.27: 31% USD:27-4 + " USD.27: 32% USD:27-4 + " USD.27: 32% USD:27-4 +srand RAND.3C: 9% RAND(3C)-1 +srandom RANDOM.3: 1% RANDOM(3)-1 +sscanf - formatted input conversion SCANF.3S: 1% SCANF(3S)-1 +sstk(incr) PS1.06: 14% PS1:6-10 +stab - symbol table type[s] STAB.5: 1% STAB(5)-1 +stab directive[s] PS1.05: 77% PS1:5-11 +stab entry[s] DBX.5: 11% DBX(5)-1 + " DBX.5: 35% DBX(5)-1 + " DBX.5: 95% DBX(5)-5 + " STAB.5: 2% STAB(5)-1 +stabd directive PS1.05: 79% PS1:5-11 + " PS1.05: 80% PS1:5-11 + " PS1.05: 80% PS1:5-11 + " PS1.05: 81% PS1:5-12 + " STAB.5: 13% STAB(5)-1 +stabs assembler directive STAB.5: 8% STAB(5)-1 +STACK VLIMIT.3C: 39% VLIMIT(3C)-1 + " A_OUT.5: 43% A.OUT(5)-2 +stack, C SETJMP.3: 63% SETJMP(3)-1 +stack, directory CSH.1: 53% CSH(1)-11 + " CSH.1: 66% CSH(1)-14 + " CSH.1: 66% CSH(1)-14 + " CSH.1: 66% CSH(1)-14 + " CSH.1: 66% CSH(1)-14 + " CSH.1: 67% CSH(1)-14 + " CSH.1: 67% CSH(1)-14 + " SYSLINE.1: 30% SYSLINE(1)-1 + " USD.04: 46% USD:4-21 + " USD.04: 47% USD:4-21 + " USD.04: 47% USD:4-21 + " USD.04: 75% USD:4-36 + " USD.04: 75% USD:4-36 + " USD.04: 75% USD:4-36 + " USD.04: 75% USD:4-37 + " USD.17: 48% USD:17-21 + " USD.17: 48% USD:17-21 + " USD.17: 67% USD:17-31 + " USD.17: 85% USD:17-40 + " USD.17: 87% USD:17-42 +stack, lisp runtime PS2.09: 25% PS2:9-49 + " PS2.09: 41% PS2:9-73 + " PS2.09: 41% PS2:9-73 + " PS2.09: 44% PS2:9-79 +stack[s], Signal PS1.06: 28% PS1:6-14 + " PS1.06: 31% PS1:6-15 + " PS1.06: 31% PS1:6-15 + " PS1.06: 31% PS1:6-15 + " PS1.06: 31% PS1:6-15 + " PS1.06: 32% PS1:6-15 + " PS1.06: 32% PS1:6-15 +stack, value PS1.15: 32% PS1:15-9 + " PS1.15: 32% PS1:15-9 + " PS1.15: 32% PS1:15-9 + " PS1.15: 89% PS1:15-28 + " PS2.09: 57% PS2:9-98 + " PS2.09: 57% PS2:9-99 +stack, Yacc value PS1.15: 74% PS1:15-21 + " PS1.15: 75% PS1:15-22 + " PS1.15: 78% PS1:15-22 + " PS1.15: 89% PS1:15-28 +stack area[s] PS1.06: 14% PS1:6-10 + " PS1.06: 14% PS1:6-10 + " PS1.06: 14% PS1:6-10 + " PS1.06: 14% PS1:6-10 +stack frame[s] PS1.10: 20% PS1:10-5 + " PS1.10: 21% PS1:10-5 + " PS2.09: 86% PS2:9-139 + " PS2.09: 86% PS2:9-139 +stack position PS2.03: 70% PS2:3-11 + " PS2.09: 85% PS2:9-137 + " PS2.09: 85% PS2:9-137 +stack trace[s] PS1.10: 27% PS1:10-6 + " PS1.11a: 28% PS1:11-2 + " PS1.18: 32% PS1:18-8 +Standard Fortran PS1.02: 2% PS1:2-4 + " PS2.06: 79% PS2:6-27 + " PS2.06: 91% PS2:6-33 + " PS2.06: 87% PS2:6-31 +Standard I/O library PS2.03: 10% PS2:3-2 + " PS2.03: 10% PS2:3-2 + " PS2.03: 79% PS2:3-12 + " PS1.18: 7% PS1:18-3 +Standard Input PS1.07a: 18% PS1:7-4 +Standard Output PS1.07a: 19% PS1:7-4 +Standard Pascal PS1.04: 69% PS1:4-35 +stack[s], signal EXECVE.2: 36% EXECVE(2)-1 + " GETRLIMIT.2: 72% GETRLIMIT(2)-1 + " SIGSTACK.2: 25% SIGSTACK(2)-1 + " SIGSTACK.2: 37% SIGSTACK(2)-1 + " SIGSTACK.2: 49% SIGSTACK(2)-1 + " SIGSTACK.2: 52% SIGSTACK(2)-1 + " SIGSTACK.2: 61% SIGSTACK(2)-1 + " SIGVEC.2: 11% SIGVEC(2)-1 + " SIGVEC.2: 31% SIGVEC(2)-1 + " SIGVEC.2: 63% SIGVEC(2)-2 + " SMM.13: 8% SMM:13-4 + " SMM.13: 12% SMM:13-5 + " SMM.13: 13% SMM:13-6 + " SMM.13: 13% SMM:13-6 + " SMM.13: 13% SMM:13-6 +stack, Yacc value SMM.19: 18% SMM:19-6 +stack frame[s] DBX.1: 70% DBX(1)-5 + " DBX.5: 28% DBX(5)-1 + " MALLOC.3: 56% MALLOC(3)-1 + " SMM.19: 4% SMM:19-2 + " SMM.19: 42% SMM:19-12 + " SMM.19: 42% SMM:19-12 + " SMM.19: 44% SMM:19-12 + " SMM.19: 44% SMM:19-13 + " SMM.19: 73% SMM:19-20 + " VARARGS.3: 79% VARARGS(3)-1 + " SMM.12A: 4% SMM:12-2 +stack level USD.05: 23% USD:5-3 +stack of mark[s] USD.17: 13% USD:17-6 +stack pointer[s] BRK.2: 21% BRK(2)-1 + " SMM.19: 49% SMM:19-14 + " TRPFPE.3F: 83% TRPFPE(3F)-1 +stack segment[s] GETRLIMIT.2: 25% GETRLIMIT(2)-1 + " GETRLIMIT.2: 26% GETRLIMIT(2)-1 + " GETRUSAGE.2: 57% GETRUSAGE(2)-1 + " INTRO.2: 17% INTRO(2)-2 +stack size limit CSH.1: 62% CSH(1)-13 +stack space GETRLIMIT.2: 65% GETRLIMIT(2)-1 + " SMM.19: 7% SMM:19-3 + " VLIMIT.3C: 67% VLIMIT(3C)-1 +stack trace[s] CRASH.8V: 93% CRASH(8V)-3 + " DBX.1: 71% DBX(1)-5 +stand-alone bibliography[s] REFER.1: 85% REFER(1)-2 + " USD.29: 32% USD:29-4 + " USD.29: 84% USD:29-9 + " REFER.1: 8% REFER(1)-1 +standalone disk test DRTEST.8: 3% DRTEST(8)-1 +standalone I/O library FORMAT.8V: 40% FORMAT(8V)-1 +standalone program[s] DRTEST.8: 6% DRTEST(8)-1 + " FORMAT.8V: 5% FORMAT(8V)-1 + " SMM.01: 96% SMM:1-63 +standalone system operation[s] SMM.01: 37% SMM:1-24 + " SMM.01: 37% SMM:1-24 + " SMM.01: 38% SMM:1-25 + " SMM.01: 5% SMM:1-4 + " SMM.01: 6% SMM:1-4 + " SMM.01: 7% SMM:1-5 + " SMM.01: 78% SMM:1-48 +standard[s], C language USD.09: 88% USD:9-11 +standard error ECHO.1: 84% + " SETBUF.3S: 38% SETBUF(3S)-1 + " STDIO.3S: 21% STDIO(3S)-1 + " SMM.12A: 3% SMM:12-2 +standard error, Print string on USD.24: 81% USD:24-26 +standard I/O functions HIER.7: 89% HIER(7)-6 +Standard I/O library STDIO.3S: 1% STDIO(3S)-1 + " INTRO.3: 6% INTRO(3)-1 +Standard Input USD.24: 11% USD:24-5 + " USD.24: 77% USD:24-24 + " RCS.N: 74% RCS(1)-2 + " RCS.N: 79% RCS(1)-2 + " CSH.1: 34% CSH(1)-7 + " CSH.1: 40% CSH(1)-8 + " CSH.1: 44% CSH(1)-9 + " FORK.2: 44% FORK(2)-1 + " GETS.3S: 29% GETS(3S)-1 + " STDIO.3S: 19% STDIO(3S)-1 +Standard Input/Output Library SMM.14: 35% SMM:14-6 +standard libraries LD.1: 49% LD(1)-1 +Standard Output CSH.1: 40% CSH(1)-8 + " CSH.1: 53% CSH(1)-11 + " PUTS.3S: 39% PUTS(3S)-1 + " SETBUF.3S: 35% SETBUF(3S)-1 + " STDIO.3S: 20% STDIO(3S)-1 +standard output from a command USD.03: 1% USD:3-1 +Standard Resource Record Format SMM.11: 34% SMM:11-5 + " SMM.11: 34% SMM:11-5 + " SMM.11: 38% SMM:11-6 +standend() PS1.18: 42% PS1:18-12 +standout mode PS1.18: 43% PS1:18-12 + " PS1.18: 43% PS1:18-12 + " TERMCAP.5: 61% TERMCAP(5)-9 + " TERMCAP.5: 66% TERMCAP(5)-10 + " TERMCAP.5: 66% TERMCAP(5)-10 + " TERMCAP.5: 66% TERMCAP(5)-10 + " TERMCAP.5: 95% TERMCAP(5)-13 + " UL.1: 46% UL(1)-1 + " USD.16: 84% USD:16-16 +Stangenberger, Al ADDBIB.1: 97% ADDBIB(1)-2 +Star (metacharacter) USD.13: 22% USD:13-4 +Star Trek USD.34: 0% USD:34-1 + " USD.34: 8% USD:34-2 + " USD.34: 17% USD:34-2 + " USD.34: 25% USD:34-4 + " USD.34: 34% USD:34-4 + " USD.34: 43% USD:34-6 + " USD.34: 51% USD:34-6 + " USD.34: 61% USD:34-8 + " USD.34: 71% USD:34-8 + " USD.34: 78% USD:34-10 + " USD.34: 86% USD:34-10 + " USD.34: 93% USD:34-12 + " USD.34: 95% USD:34-12 +standout() PS1.18: 42% PS1:18-12 +start character[s] RLOGIN.1C: 67% RLOGIN(1C)-1 + " STTY.1: 23% STTY(1)-1 + " STTY.1: 71% STTY(1)-2 + " STTY.1: 73% STTY(1)-2 + " TTY.4: 41% TTY(4)-4 + " TTY.4: 43% TTY(4)-4 + " TTY.4: 72% TTY(4)-7 + " STTY.1: 34% STTY(1)-1 +Start Tracing Message SMM.22: 77% SMM:22-8 +start condition[s] PS1.16: 33% PS1:16-5 + " PS1.16: 34% PS1:16-5 + " PS1.16: 67% PS1:16-9 + " PS1.16: 83% PS1:16-11 + " PS1.16: 84% PS1:16-11 + " PS1.16: 84% PS1:16-11 + " PS1.16: 84% PS1:16-11 + " PS1.16: 87% PS1:16-11 + " PS1.16: 87% PS1:16-11 + " PS1.16: 87% PS1:16-11 + " PS1.16: 88% PS1:16-11 + " PS1.16: 88% PS1:16-11 + " PS1.16: 93% PS1:16-12 +start symbol PS1.15: 14% PS1:15-4 + " PS1.15: 14% PS1:15-4 + " PS1.15: 14% PS1:15-4 + " PS1.15: 14% PS1:15-4 + " PS1.15: 15% PS1:15-4 +start-remembering (C-X () USD.17: 94% USD:17-45 +starting point PS2.01: 13% PS2:1-3 +starting position PS1.18: 6% PS1:18-3 +startup file for csh HIER.7: 75% HIER(7)-5 +startup file for ex HIER.7: 75% HIER(7)-5 +startup file for mail HIER.7: 78% HIER(7)-5 +startup file for msgs HIER.7: 77% HIER(7)-5 +startup file for various network programs HIER.7: 77% HIER(7)-5 +stat LN.1: 50% LN(1)-1 +stat, lstat, fstat - get file status STAT.2: 0% STAT(2)-1 + " STAT.3F: 5% STAT(3F)-1 +stat, struct PS1.06: 64% PS1:6-29 + " PS1.06: 64% PS1:6-29 + " PS1.06: 64% PS1:6-29 + " STAT.2: 3% STAT(2)-1 + " STAT.2: 4% STAT(2)-1 + " STAT.2: 5% STAT(2)-1 + " STAT.2: 19% STAT(2)-1 +stat structure SMM.15: 55% SMM:15-16 + " STAT.2: 17% STAT(2)-1 + " STAT.2: 88% STAT(2)-2 +state, Socket SMM.15: 19% SMM:15-7 + " NETSTAT.1: 21% NETSTAT(1)-1 +state, stopped PTRACE.2: 15% PTRACE(2)-1 + " PTRACE.2: 17% PTRACE(2)-1 +state, terminal STTY.3C: 8% STTY(3C)-1 +statements, action USD.19: 44% USD:19-4 + " USD.19: 44% USD:19-4 +statement[s], assignment FP.1: 17% FP(1)-1 + " USD.06: 52% USD:6-7 + " USD.06: 53% USD:6-7 +Statement[s], Break USD.06: 95% USD:6-13 +statement[s], compound INDENT.1: 95% INDENT(1)-1 +statements, control F77.1: 66% F77(1)-2 + " USD.06: 42% USD:6-5 + " USD.06: 44% USD:6-5 + " USD.06: 49% USD:6-6 +statement[s], error-handling MATH.3M: 76% MATH(3M)-5 + " MATH.3M: 78% MATH(3M)-5 + " MATH.3M: 79% MATH(3M)-5 +Statement[s], Goto STRUCT.1: 34% STRUCT(1)-1 + " STRUCT.1: 38% STRUCT(1)-1 + " USD.04: 62% USD:4-30 +statement[s], print USD.19: 20% USD:19-2 + " USD.19: 25% USD:19-3 + " USD.19: 59% USD:19-5 +statement[s], Unreachable LINT.1: 10% LINT(1)-1 +statement limit PI.1: 27% PI(1)-1 +statement number[s] F77.1: 65% F77(1)-2 + " STRUCT.1: 13% STRUCT(1)-1 +Static SMM.19: 21% SMM:19-7 +static storage DBM.3X: 81% DBM(3X)-2 +static variables ADB.1: 69% ADB(1)-4 + " SMM.19: 26% SMM:19-8 +statically allocated variable DBX.5: 20% DBX(5)-1 +statistics, command usage SA.8: 43% SA(8)-1 +statistics, disk i/o SYSTAT.1: 6% SYSTAT(1)-1 + " SYSTAT.1: 72% SYSTAT(1)-3 + " SYSTAT.1: 73% SYSTAT(1)-3 +statistics, disk throughput SYSTAT.1: 20% SYSTAT(1)-2 +statistics, iostat - report I/O IOSTAT.1: 2% IOSTAT(1)-1 +statistics, mbuf NETSTAT.1: 31% NETSTAT(1)-1 + " SYSTAT.1: 29% SYSTAT(1)-2 +statistics, notesfile system USD.11: 95% USD:11-14 +statistics, process PS.1: 58% PS(1)-2 +statistics, processor use SYSTAT.1: 20% SYSTAT(1)-2 +statistics, protocol NETSTAT.1: 35% NETSTAT(1)-1 +statistics, routing NETSTAT.1: 37% NETSTAT(1)-1 +statistics, routing oriented SMM.01: 66% SMM:1-40 +statistics, system KG.4: 39% KG(4)-1 + " SYSTAT.1: 1% SYSTAT(1)-1 + " PSTAT.8: 0% PSTAT(8)-1 +statistics, virtual memory PS.1: 46% PS(1)-2 + " SYSTAT.1: 6% SYSTAT(1)-1 + " SYSTAT.1: 30% SYSTAT(1)-2 +statistics, vmstat - report virtual memory VMSTAT.1: 1% VMSTAT(1)-1 +stats, tty PS1.18: 58% PS1:18-17 +stat(path, stb) PS1.06: 64% PS1:6-29 +state, tty PS1.18: 60% PS1:18-17 + " PS1.18: 60% PS1:18-17 +Statement, Do PS1.01: 64% PS1:1-21 +Statement, For PS1.01: 64% PS1:1-22 +statement[s], Unreachable PS1.04: 45% PS1:4-24 + " PS1.09: 24% PS1:9-3 + " PS1.04: 46% PS1:4-24 +statement label[s] PS1.02: 40% PS1:2-14 + " PS1.10: 22% PS1:10-5 + " PS2.06: 72% PS2:6-25 +statement limit PS1.04: 26% PS1:4-15 + " PS1.04: 49% PS1:4-26 + " PS1.04: 71% PS1:4-36 + " PS1.04: 96% PS1:4-48 + " PS1.04: 96% PS1:4-48 +statement number[s] PS1.02: 8% PS1:2-5 + " PS1.02: 16% PS1:2-7 + " PS1.02: 17% PS1:2-7 + " PS1.02: 65% PS1:2-22 + " PS1.04: 79% PS1:4-41 + " PS2.08: 6% PS2:8-2 + " PS2.08: 33% PS2:8-5 + " PS2.08: 33% PS2:8-5 +statistics, dynamic PS2.07: 32% PS2:7-15 + " PS2.07: 35% PS2:7-16 + " PS2.07: 66% PS2:7-30 +statistics function[s], time and PS1.06: 0% +statistics gathering PS1.16: 74% PS1:16-10 +statistics line[s] PS1.04: 25% PS1:4-15 + " PS1.04: 25% PS1:4-15 + " PS1.04: 25% PS1:4-15 + " PS1.04: 25% PS1:4-15 +status, error GETSOCKOPT.2: 86% GETSOCKOPT(2)-2 + " PS1.07a: 63% PS1:7-14 + " PS1.07a: 86% PS1:7-22 + " PS1.08: 24% PS1:8-9 + " PS1.08: 25% PS1:8-9 + " SMM.13: 8% SMM:13-4 + " SMM.12A: 59% SMM:12-14 +status, Exit CSH.1: 86% CSH(1)-18 +status, exit PS1.06: 9% PS1:6-7 + " PS1.08: 66% PS1:8-26 + " PS1.13: 34% PS1:13-6 + " PS1.13: 52% PS1:13-10 + " PS1.13: 70% PS1:13-14 + " PS1.13: 95% PS1:13-21 + " PS1.14: 95% PS1:14-14 +status field[s] PS2.10: 54% PS2:10-47 + " PS2.10: 64% PS2:10-56 + " PS2.10: 65% PS2:10-56 + " PS2.10: 72% PS2:10-63 + " PS2.10: 72% PS2:10-63 + " PS2.10: 74% PS2:10-65 +status information PS1.08: 16% PS1:8-7 + " PS1.08: 50% PS1:8-20 + " PS1.08: 52% PS1:8-21 + " PS1.08: 52% PS1:8-21 + " PS1.08: 52% PS1:8-21 + " PS1.08: 54% PS1:8-21 + " PS1.08: 54% PS1:8-21 + " PS1.08: 56% PS1:8-22 + " PS1.08: 56% PS1:8-23 + " PS1.08: 56% PS1:8-23 + " PS1.08: 57% PS1:8-23 + " PS1.08: 58% PS1:8-23 + " PS2.05: 35% PS2:5-3 + " PS2.10: 63% PS2:10-55 + " PS2.10: 67% PS2:10-58 +status, file STAT.2: 1% STAT(2)-1 + " STAT.2: 46% STAT(2)-2 + " STAT.3F: 7% STAT(3F)-1 +status, netstat - show network NETSTAT.1: 1% NETSTAT(1)-1 +status, ps - process PS.1: 0% PS(1)-1 +status[s], termination SH.1: 89% SH(1)-6 + " WAIT.2: 28% WAIT(2)-1 + " WAIT.2: 58% WAIT(2)-1 + " WAIT.2: 65% WAIT(2)-1 + " WAIT.3F: 67% WAIT(3F)-1 +status buffer SMM.15: 55% SMM:15-17 +status command SMM.12A: 87% SMM:12-21 +status field[s] QUOTAON.8: 81% QUOTAON(8)-1 +status information IMPLOGD.8C: 79% IMPLOGD(8C)-1 + " SMM.13: 13% SMM:13-6 + " SMM.13: 66% SMM:13-23 + " SMM.15: 75% SMM:15-22 + " SMM.21: 57% SMM:21-4 + " USD.03: 5% USD:3-2 +status line RUPTIME.1C: 23% RUPTIME(1C)-1 + " SYSLINE.1: 1% SYSLINE(1)-1 + " SYSLINE.1: 6% SYSLINE(1)-1 + " SYSLINE.1: 7% SYSLINE(1)-1 + " SYSLINE.1: 23% SYSLINE(1)-1 + " SYSLINE.1: 35% SYSLINE(1)-1 + " SYSLINE.1: 56% SYSLINE(1)-1 + " SYSLINE.1: 69% SYSLINE(1)-2 + " SYSLINE.1: 72% SYSLINE(1)-2 + " SYSLINE.1: 77% SYSLINE(1)-2 + " TERMCAP.5: 82% TERMCAP(5)-12 + " TERMCAP.5: 82% TERMCAP(5)-12 + " TERMCAP.5: 83% TERMCAP(5)-12 + " TERMCAP.5: 83% TERMCAP(5)-12 + " TERMCAP.5: 83% TERMCAP(5)-12 + " TERMCAP.5: 83% TERMCAP(5)-12 + " TERMCAP.5: 84% TERMCAP(5)-12 + " TERMCAP.5: 84% TERMCAP(5)-12 + " TERMCAP.5: 84% TERMCAP(5)-12 +status line of a terminal, sysline - display system status on SYSLINE.1: 1% SYSLINE(1)-1 +status message[s] LPC.8: 56% LPC(8)-1 + " RWHOD.8C: 79% RWHOD(8C)-1 + " SMM.12A: 87% SMM:12-20 +status of printers LPC.8: 13% LPC(8)-1 +status report[s] RUPTIME.1C: 44% RUPTIME(1C)-1 + " SYSLINE.1: 17% SYSLINE(1)-1 +status shell variable CSH.1: 54% CSH(1)-11 + " CSH.1: 78% CSH(1)-17 + " CSH.1: 86% CSH(1)-18 + " USD.04: 58% USD:4-27 +stayopen flag GETHOSTBYNAME.3N: 48% GETHOSTBYNAME(3) + " GETNETENT.3N: 62% GETNETENT(3N)-1 + " GETPROTOENT.3N: 63% GETPROTOENT(3N) + " GETSERVENT.3N: 63% GETSERVENT(3N)- +std. input PS1.13: 33% PS1:13-6 + " PS1.13: 34% PS1:13-6 + " PS1.13: 70% PS1:13-14 + " PS1.13: 70% PS1:13-14 +stderr STDIO.3S: 21% STDIO(3S)-1 +stdin STDIO.3S: 19% STDIO(3S)-1 +stdio SMM.12A: 70% SMM:12-16 +stdio - standard buffered input/output package STDIO.3S: 1% STDIO(3S)-1 +stdio.h INTRO.3: 7% INTRO(3)-1 + " STDIO.3S: 27% STDIO(3S)-1 +stdout STDIO.3S: 20% STDIO(3S)-1 +step command DBX.1: 38% DBX(1)-3 + " PDX.1: 49% PDX(1)-2 +step, single PS1.10: 40% PS1:10-8 +stepping mode PS2.09: 83% PS2:9-133 + " PS2.09: 83% PS2:9-133 + " PS2.09: 83% PS2:9-133 + " PS2.09: 83% PS2:9-133 + " PS2.09: 83% PS2:9-135 + " PS2.09: 84% PS2:9-135 + " PS2.09: 84% PS2:9-136 + " PS2.09: 86% PS2:9-137 + " PS2.09: 86% PS2:9-139 +sticky - persistent text and append-only directory[s] STICKY.8: 3% STICKY(8)-1 +sticky bit CHMOD.1: 17% CHMOD(1)-1 + " CHMOD.2: 15% CHMOD(2)-1 + " STICKY.8: 7% STICKY(8)-1 + " SMM.01: 35% SMM:1-23 +STICKY DIRECTORY[s] STICKY.8: 47% STICKY(8)-1 + " STICKY.8: 57% STICKY(8)-1 + " STICKY.8: 80% STICKY(8)-1 + " UNLINK.2: 73% UNLINK(2)-1 +sticky text SMM.13: 31% SMM:13-11 + " SMM.12A: 58% SMM:12-13 + " SMM.12A: 61% SMM:12-14 + " STICKY.8: 86% STICKY(8)-1 +stop character[s] STTY.1: 22% STTY(1)-1 + " TTY.4: 41% TTY(4)-4 + " TTY.4: 42% TTY(4)-4 + " TTY.4: 42% TTY(4)-4 + " TTY.4: 42% TTY(4)-4 + " TTY.4: 72% TTY(4)-7 + " STTY.1: 36% STTY(1)-2 +stop command[s] DBX.1: 30% DBX(1)-2 + " USD.04: 39% USD:4-17 + " USD.04: 40% USD:4-18 + " USD.04: 42% USD:4-19 + " USD.04: 91% USD:4-42 + " USD.04: 95% USD:4-43 + " USD.04: 97% USD:4-44 + " CSH.1: 71% CSH(1)-15 + " USD.16: 53% USD:16-10 +stop output GETTYTAB.5: 46% GETTYTAB(5)-2 + " TTY.4: 85% TTY(4)-9 + " WINDOW.1: 39% WINDOW(1)-3 +stop process signal TTY.4: 93% TTY(4)-10 + " TTY.4: 94% TTY(4)-10 + " CSH.1: 6% CSH(1)-2 + " CSH.1: 7% CSH(1)-2 + " CSH.1: 71% CSH(1)-15 + " USD.04: 19% USD:4-9 + " USD.04: 19% USD:4-9 + " USD.04: 39% USD:4-17 + " USD.04: 42% USD:4-19 + " USD.04: 48% USD:4-22 + " USD.04: 96% USD:4-44 + " USD.17: 94% USD:17-46 +STOP signal RSH.1C: 91% RSH(1C)-1 + " SIGNAL.3C: 28% unknown +stop-proces USD.17: 94% USD:17-46 +stop-remembering (C-X )) USD.17: 94% USD:17-46 +stop[s], tab PS1.04: 76% PS1:4-39 + " PS1.04: 92% PS1:4-46 + " PS1.04: 92% PS1:4-46 +stop bit[s] PS1.06: 93% PS1:6-39 +stop request[s] PS1.11a: 47% PS1:11-3 + " PS1.11a: 81% PS1:11-6 + " PS1.11a: 81% PS1:11-6 +stopped state PTRACE.2: 15% PTRACE(2)-1 + " PTRACE.2: 17% PTRACE(2)-1 +stopping a program TTY.4: 49% TTY(4)-5 + " USD.01: 15% USD:1-3 +stopping output USD.04: 22% USD:4-10 + " SMM.12A: 46% SMM:12-10 +storage class PS1.01: 8% PS1:1-3 + " PS1.01: 8% PS1:1-3 + " PS1.01: 8% PS1:1-4 + " PS1.01: 43% PS1:1-14 + " PS1.01: 44% PS1:1-14 + " PS1.01: 61% PS1:1-20 + " PS1.01: 71% PS1:1-24 + " PS1.01: 72% PS1:1-25 + " PS1.01: 83% PS1:1-28 + " PS1.01: 83% PS1:1-28 + " PS1.01: 83% PS1:1-28 + " PS1.01: 83% PS1:1-28 + " PS2.06: 19% PS2:6-8 +storage class specifier[s] PS1.01: 40% PS1:1-12 + " PS1.01: 40% PS1:1-12 + " PS1.01: 40% PS1:1-13 +storage, file SMM.05: 4% SMM:5-3 +storage, static DBM.3X: 81% DBM(3X)-2 + " NDBM.3: 83% NDBM(3)-2 +Storage Allocation SMM.19: 20% SMM:19-6 +storage allocator USD.05: 32% USD:5-4 +storage class[s] SMM.19: 17% SMM:19-6 + " SMM.19: 21% SMM:19-7 + " SMM.19: 21% SMM:19-7 + " SMM.19: 21% SMM:19-7 + " SMM.19: 21% SMM:19-7 + " SMM.19: 25% SMM:19-8 + " SMM.19: 25% SMM:19-8 + " SMM.19: 25% SMM:19-8 + " SMM.19: 39% SMM:19-11 + " SMM.19: 20% SMM:19-6 + " SMM.19: 20% SMM:19-6 + " SMM.19: 21% SMM:19-7 +storage management SMM.14: 2% SMM:14-2 +Store DBM.3X: 9% DBM(3X)-1 +Strange Terminal Behavior USD.01: 11% USD:1-2 +strategy routine[s] PS2.05: 83% PS2:5-6 + " PS2.05: 84% PS2:5-6 + " PS2.05: 87% PS2:5-6 + " PS2.05: 88% PS2:5-6 + " PS2.05: 91% PS2:5-6 + " PS2.05: 96% PS2:5-7 + " SMM.13: 91% SMM:13-31 +stray xmit interrupt ACC.4: 66% ACC(4)-1 + " IL.4: 92% IL(4)-1 + " IX.4: 78% IX(4)-1 + " PCL.4: 51% PCL(4)-1 +strcat[s], strcmp[s], strcpy[s], strlen - string operation STRING.3: 3% STRING(3)-1 +STREAM STDIO.3S: 12% STDIO(3S)-1 +stream, block buffered SETBUF.3S: 21% SETBUF(3S)-1 +stream, data PS1.08: 59% PS1:8-24 + " PS1.08: 60% PS1:8-24 + " PS1.08: 60% PS1:8-24 + " PS1.08: 60% PS1:8-24 + " PS1.08: 62% PS1:8-25 +stream, output PS1.04: 74% PS1:4-38 + " PS1.16: 1% PS1:16-1 + " PS2.03: 85% PS2:3-14 + " PS2.04: 60% PS2:4-6 +stream communication PS1.07a: 1% PS1:7-1 + " PS1.07a: 31% PS1:7-8 + " PS1.07a: 93% PS1:7-23 +stream socket[s] PS1.07a: 58% PS1:7-14 + " PS1.07a: 58% PS1:7-14 + " PS1.07a: 68% PS1:7-15 + " PS1.07a: 79% PS1:7-20 + " PS1.08: 5% PS1:8-3 + " PS1.08: 6% PS1:8-3 + " PS1.08: 7% PS1:8-3 + " PS1.08: 7% PS1:8-3 + " PS1.08: 9% PS1:8-4 + " PS1.08: 21% PS1:8-8 + " PS1.08: 24% PS1:8-9 + " PS1.08: 58% PS1:8-24 + " PS1.08: 64% PS1:8-26 + " PS1.08: 76% PS1:8-31 +stream[s], byte SOCKET.2: 19% SOCKET(2)-1 + " SOCKET.2: 41% SOCKET(2)-1 +stream, data SMM.15: 91% SMM:15-25 +stream, line buffered SETBUF.3S: 24% SETBUF(3S)-1 +stream[s], output M4.1: 46% M4(1)-1 + " M4.1: 50% M4(1)-1 + " M4.1: 57% M4(1)-1 + " PRINTF.3S: 18% PRINTF(3S)-1 + " PUTC.3S: 48% PUTC(3S)-1 + " SETBUF.3S: 16% SETBUF(3S)-1 + " USD.01: 60% USD:1-9 + " FCLOSE.3S: 60% FCLOSE(3S)-1 + " FREAD.3S: 69% FREAD(3S)-1 + " PRINTF.3S: 9% PRINTF(3S)-1 + " PUTC.3S: 30% PUTC(3S)-1 + " PUTS.3S: 56% PUTS(3S)-1 +STREAM abstraction INTRO.4N: 19% INTRO(4N)-1 + " SPP.4P: 9% SPP(4P)-1 + " TCP.4P: 9% TCP(4P)-1 +stream editor USD.13: 97% USD:13-16 +stream socket[s] CONNECT.2: 26% CONNECT(2)-1 + " SMM.13: 40% SMM:13-14 + " SMM.13: 41% SMM:13-15 + " SMM.15: 91% SMM:15-25 + " SOCKET.2: 42% SOCKET(2)-1 + " SOCKET.2: 67% SOCKET(2)-2 + " SMM.15: 90% SMM:15-25 +STREAM socket type ACCEPT.2: 66% ACCEPT(2)-1 + " CONNECT.2: 18% CONNECT(2)-1 + " GETSOCKOPT.2: 84% GETSOCKOPT(2)-2 + " INTRO.2: 41% INTRO(2)-4 + " LISTEN.2: 36% LISTEN(2)-1 + " NS.4F: 14% NS(4F)-1 + " NS.4F: 77% NS(4F)-2 + " RCMD.3: 34% RCMD(3)-1 + " REXEC.3: 53% REXEC(3)-1 + " SMM.13: 37% SMM:13-14 + " SMM.15: 26% SMM:15-8 + " SMM.15: 32% SMM:15-10 + " SOCKET.2: 41% SOCKET(2)-1 + " SOCKET.2: 51% SOCKET(2)-1 + " SPP.4P: 4% SPP(4P)-1 + " TCP.4P: 5% TCP(4P)-1 +strict locking PS1.13: 10% PS1:13-2 + " PS1.13: 66% PS1:13-13 + " RCS.N: 42% RCS(1)-1 +strict type checking LINT.1: 75% LINT(1)-1 + " DBX.1: 75% DBX(1)-5 + " DBX.1: 76% DBX(1)-5 +STRING[s] USD.24: 8% USD:24-3 + " USD.24: 42% USD:24-14 + " USD.23: 5% USD:23-1 + " SMM.12A: 71% SMM:12-16 +string concatenation PS1.02: 59% PS1:2-20 +string, Append USD.24: 50% USD:24-16 +string, appends a copy of STRING.3: 45% STRING(3)-1 +String[s], Character SCANF.3S: 40% SCANF(3S)-1 +string[s], database of constant XSTR.1: 32% XSTR(1)-1 +string, Define a USD.24: 49% USD:24-16 +string, definition of a USD.25: 45% USD:25-7 +string, find a character in STRING.3: 91% STRING(3)-1 +string, format MH-FORMAT.N: 2% MH-FORMAT(5)-1 +string, length of STRING.3: 85% STRING(3)-1 +string[s], lexicographic comparison of STRING.3: 61% STRING(3)-1 +string, quoted CSH.1: 24% CSH(1)-5 +string, read a GETS.3S: 26% GETS(3S)-1 +string, Remove request, macro, or USD.24: 50% USD:24-16 +string, search again for the same USD.17: 21% USD:17-10 +string[s], searching for USD.15: 67% USD:15-19 +string[s], shared XSTR.1: 4% XSTR(1)-1 +string compare function BSTRING.3: 52% +string comparison[s] USD.19: 40% USD:19-4 + " USD.25: 80% USD:25-12 +String Concatenation USD.19: 59% USD:19-5 +string copy function BSTRING.3: 46% +string name[s], Macro and USD.24: 42% USD:24-14 +string operation[s] STRING.3: 8% STRING(3)-1 +String reference[s] USD.24: 43% USD:24-14 +string register[s], list of MS.7: 87% MS(7)-3 +String registers used in -m[s] USD.20: 96% USD:20-7 +string search OD.1: 38% OD(1)-1 +string substitution USD.03: 0% USD:3-1 +string zero function BSTRING.3: 68% +string-length USD.17: 95% USD:17-46 +strings - find the printable strings in a object, or other binary, file STRINGS.1: 6% STRINGS(1)-1 +strip INSTALL.1: 80% unknown + " LD.1: 65% LD(1)-2 +strip - remove symbols and relocation bit[s] STRIP.1: 10% STRIP(1)-1 +strncat[s], strncmp[s], strncpy - string operation STRING.3: 3% STRING(3)-1 +struct - structure Fortran program[s] STRUCT.1: 2% STRUCT(1)-1 +struct disktab GETDISK.3: 8% GETDISKBYNAME(3) + " GETDISK.3: 47% GETDISKBYNAME(3) + " GETDISK.3: 85% GETDISKBYNAME(3) +struct domain SMM.15: 27% SMM:15-9 + " SMM.15: 27% SMM:15-9 + " SMM.15: 28% SMM:15-9 +struct qelem INSQUE.3: 66% unknown +struct sockbuf SMM.15: 17% SMM:15-6 + " SMM.15: 17% SMM:15-6 + " SMM.15: 22% SMM:15-7 +struct tchar[s] TTY.4: 84% TTY(4)-9 +struct, typedef PS1.01: 61% PS1:1-20 +struct hostent PS1.07a: 56% PS1:7-13 + " PS1.07a: 67% PS1:7-15 + " PS1.08: 31% PS1:8-11 + " PS1.08: 41% PS1:8-16 +struct idp PS1.08: 96% PS1:8-40 + " PS1.08: 89% PS1:8-37 +struct ifreq PS1.08: 81% PS1:8-33 + " PS1.08: 81% PS1:8-33 + " PS1.08: 82% PS1:8-34 + " PS1.08: 82% PS1:8-34 +struct iovec PS1.06: 53% PS1:6-25 + " PS1.06: 53% PS1:6-25 + " PS1.06: 53% PS1:6-25 + " PS1.07a: 92% PS1:7-23 + " PS1.07a: 92% PS1:7-23 +struct itimerval PS1.06: 34% PS1:6-16 + " PS1.06: 34% PS1:6-17 + " PS1.06: 34% PS1:6-17 + " PS1.06: 34% PS1:6-17 +struct listcell PS2.09: 61% PS2:9-105 + " PS2.09: 61% PS2:9-105 + " PS2.09: 61% PS2:9-105 + " PS2.09: 61% PS2:9-105 +struct listoffixnumscell PS2.09: 61% PS2:9-105 + " PS2.09: 61% PS2:9-105 + " PS2.09: 61% PS2:9-105 +struct msghdr PS1.06: 82% PS1:6-35 + " PS1.06: 83% PS1:6-36 + " PS1.06: 83% PS1:6-36 +struct netent PS1.08: 35% PS1:8-13 +struct pex PS1.08: 96% PS1:8-40 +struct protoent PS1.08: 36% PS1:8-14 +struct rlimit PS1.06: 47% PS1:6-22 + " PS1.06: 47% PS1:6-22 + " PS1.06: 47% PS1:6-22 +struct rusage PS1.06: 10% PS1:6-8 + " PS1.06: 45% PS1:6-21 + " PS1.06: 45% PS1:6-21 +struct servent PS1.08: 37% PS1:8-14 + " PS1.08: 41% PS1:8-16 + " PS1.08: 45% PS1:8-18 +struct sigstack PS1.06: 31% PS1:6-15 + " PS1.06: 31% PS1:6-15 + " PS1.06: 31% PS1:6-15 +struct sigvec PS1.06: 27% PS1:6-14 + " PS1.06: 27% PS1:6-14 + " PS1.06: 27% PS1:6-14 +struct sockaddr PS1.06: 77% PS1:6-34 + " PS1.06: 78% PS1:6-34 + " PS1.06: 78% PS1:6-34 + " PS1.06: 78% PS1:6-34 + " PS1.06: 79% PS1:6-34 + " PS1.07a: 37% PS1:7-9 + " PS1.07a: 38% PS1:7-9 + " PS1.07a: 39% PS1:7-9 + " PS1.07a: 43% PS1:7-10 + " PS1.07a: 43% PS1:7-10 + " PS1.07a: 53% PS1:7-12 + " PS1.07a: 53% PS1:7-12 + " PS1.07a: 55% PS1:7-13 + " PS1.07a: 67% PS1:7-15 + " PS1.07a: 73% PS1:7-17 + " PS1.07a: 75% PS1:7-18 + " PS1.07a: 78% PS1:7-20 + " PS1.07a: 79% PS1:7-20 + " PS1.07a: 81% PS1:7-21 + " PS1.07a: 81% PS1:7-21 + " PS1.07a: 92% PS1:7-23 + " PS1.07a: 93% PS1:7-23 + " PS1.08: 12% PS1:8-5 + " PS1.08: 12% PS1:8-5 + " PS1.08: 13% PS1:8-5 + " PS1.08: 13% PS1:8-5 + " PS1.08: 14% PS1:8-6 + " PS1.08: 14% PS1:8-6 + " PS1.08: 14% PS1:8-6 + " PS1.08: 15% PS1:8-6 + " PS1.08: 15% PS1:8-6 + " PS1.08: 15% PS1:8-6 + " PS1.08: 15% PS1:8-6 + " PS1.08: 15% PS1:8-6 + " PS1.08: 15% PS1:8-6 + " PS1.08: 18% PS1:8-7 + " PS1.08: 18% PS1:8-7 + " PS1.08: 18% PS1:8-7 + " PS1.08: 18% PS1:8-7 + " PS1.08: 22% PS1:8-8 + " PS1.08: 23% PS1:8-9 + " PS1.08: 34% PS1:8-13 + " PS1.08: 41% PS1:8-16 + " PS1.08: 45% PS1:8-18 + " PS1.08: 46% PS1:8-18 + " PS1.08: 46% PS1:8-18 + " PS1.08: 47% PS1:8-19 + " PS1.08: 50% PS1:8-20 + " PS1.08: 55% PS1:8-22 + " PS1.08: 55% PS1:8-22 + " PS1.08: 67% PS1:8-27 + " PS1.08: 74% PS1:8-30 + " PS1.08: 74% PS1:8-30 + " PS1.08: 75% PS1:8-31 + " PS1.08: 78% PS1:8-31 + " PS1.08: 79% PS1:8-32 + " PS1.08: 79% PS1:8-32 + " PS1.08: 83% PS1:8-34 + " PS1.08: 88% PS1:8-36 + " PS1.08: 88% PS1:8-36 + " PS1.08: 88% PS1:8-36 + " PS1.08: 89% PS1:8-37 + " PS1.08: 91% PS1:8-38 + " PS1.08: 99% PS1:8-41 + " PS1.08: 99% PS1:8-41 +struct stat PS1.06: 64% PS1:6-29 + " PS1.06: 64% PS1:6-29 + " PS1.06: 64% PS1:6-29 +struct timeval PS1.06: 32% PS1:6-16 + " PS1.06: 32% PS1:6-16 + " PS1.06: 32% PS1:6-16 + " PS1.06: 34% PS1:6-16 + " PS1.06: 34% PS1:6-16 + " PS1.06: 39% PS1:6-19 + " PS1.06: 65% PS1:6-30 + " PS1.07a: 73% PS1:7-17 +struct timezone PS1.06: 32% PS1:6-16 + " PS1.06: 32% PS1:6-16 + " PS1.06: 32% PS1:6-16 +struct ttychar[s] PS1.06: 92% PS1:6-39 +struct ttymode PS1.06: 92% PS1:6-39 +Structure[s] PS1.01: 83% PS1:1-28 +structure, block SMM.19: 26% SMM:19-8 +structure, cmap SMM.13: 5% SMM:13-3 + " SMM.13: 43% SMM:13-15 + " SMM.13: 56% SMM:13-20 +structure, ctlr SMM.02: 64% SMM:2-20 + " SMM.02: 67% SMM:2-21 + " SMM.02: 68% SMM:2-21 +structure, directory PS2.01: 17% PS2:1-3 + " PS2.01: 17% PS2:1-3 + " PS2.04: 74% PS2:4-7 +structure, hostent PS1.08: 31% PS1:8-11 + " PS1.08: 32% PS1:8-11 + " PS1.08: 32% PS1:8-11 + " PS1.08: 32% PS1:8-11 +structure[s], device SMM.02: 65% SMM:2-20 + " SMM.02: 68% SMM:2-21 + " SMM.02: 69% SMM:2-21 + " SMM.02: 70% SMM:2-21 + " SMM.02: 70% SMM:2-21 + " SMM.02: 70% SMM:2-21 + " SMM.02: 74% SMM:2-23 + " SMM.13: 51% SMM:13-18 +structure[s], directory SMM.05: 30% SMM:5-6 + " SMM.14: 2% SMM:14-2 + " USD.04: 93% USD:4-43 +structure, domain SMM.13: 7% SMM:13-4 + " SMM.15: 28% SMM:15-9 + " SMM.15: 32% SMM:15-10 +structure, HdrInfo SMM.07A: 85% SMM:07-38 +structure, hostent SMM.12A: 65% SMM:12-15 +structure, ifnet SMM.13: 60% SMM:13-21 + " SMM.13: 84% SMM:13-28 + " SMM.15: 46% SMM:15-14 + " SMM.15: 55% SMM:15-16 +structure, ltchars TTY.4: 93% TTY(4)-10 + " TTY.4: 95% TTY(4)-10 + " TTY.4: 95% TTY(4)-10 +structure[s], ifreq PS1.08: 80% PS1:8-32 + " PS1.08: 82% PS1:8-33 + " PS1.08: 82% PS1:8-33 + " PS1.08: 82% PS1:8-33 +structure, list PS2.09: 8% PS2:9-14 + " PS2.09: 8% PS2:9-15 + " PS2.09: 10% PS2:9-18 + " PS2.09: 17% PS2:9-33 + " PS2.09: 71% PS2:9-116 + " PS2.09: 92% PS2:9-147 +structure, tconc PS2.09: 18% PS2:9-35 + " PS2.09: 18% PS2:9-35 + " PS2.09: 18% PS2:9-35 + " PS2.09: 18% PS2:9-35 + " PS2.09: 18% PS2:9-36 + " PS2.09: 18% PS2:9-36 + " PS2.09: 53% PS2:9-93 + " PS2.09: 53% PS2:9-94 + " PS2.09: 53% PS2:9-94 + " PS2.09: 53% PS2:9-94 + " PS2.09: 53% PS2:9-94 +structure, WINDOW PS1.18: 68% PS1:18-20 + " PS1.18: 68% PS1:18-20 +Structure and Union Declaration[s] PS1.01: 48% PS1:1-16 +structure declaration PS1.01: 53% PS1:1-17 + " PS2.06: 37% PS2:6-13 + " PS2.06: 41% PS2:6-15 +structure member[s] PS1.01: 49% PS1:1-16 + " PS1.01: 83% PS1:1-28 + " PS1.01: 90% PS1:1-30 + " PS2.06: 24% PS2:6-10 + " PS2.06: 26% PS2:6-10 + " PS2.06: 29% PS2:6-11 + " PS2.06: 31% PS2:6-11 + " PS2.06: 36% PS2:6-13 + " PS2.06: 37% PS2:6-13 + " PS2.06: 61% PS2:6-21 + " PS2.06: 67% PS2:6-23 + " PS2.06: 76% PS2:6-26 +Structure Modification Command[s] PS2.09: 91% PS2:9-146 + " PS2.09: 91% PS2:9-146 + " PS2.09: 93% PS2:9-148 +Structure of Fortran File[s] PS1.02: 43% PS1:2-15 +structure tag[s] PS1.01: 51% PS1:1-16 + " PS1.01: 51% PS1:1-16 + " PS1.01: 51% PS1:1-16 + " PS1.01: 55% PS1:1-18 + " PS2.03: 13% PS2:3-3 +Structured device[s] PS1.06: 93% PS1:6-39 +structure[s], sentence USD.32: 23% USD:32-4 + " USD.32: 24% USD:32-4 + " USD.32: 29% USD:32-5 +structure[s], socket PSTAT.8: 87% PSTAT(8)-3 + " SMM.15: 18% SMM:15-6 + " SMM.15: 18% SMM:15-6 + " SMM.15: 26% SMM:15-8 + " SMM.15: 26% SMM:15-8 + " SYSTAT.1: 29% SYSTAT(1)-2 +structure, stat SMM.15: 55% SMM:15-16 + " STAT.2: 17% STAT(2)-1 + " STAT.2: 88% STAT(2)-2 +structures, system data SMM.01: 17% SMM:1-12 + " SMM.02: 0% SMM:2-2 + " SMM.02: 1% SMM:2-2 + " SMM.02: 5% SMM:2-3 + " SMM.02: 5% SMM:2-3 + " SMM.02: 24% SMM:2-7 + " SMM.02: 42% SMM:2-13 + " SMM.02: 50% SMM:2-15 + " SMM.02: 85% SMM:2-30 +structure, tree USD.04: 94% USD:4-43 +structure, tty SMM.13: 24% SMM:13-9 + " SMM.13: 25% SMM:13-10 +structure, user CORE.5: 56% CORE(5)-1 + " PTRACE.2: 36% PTRACE(2)-1 + " SMM.01: 35% SMM:1-23 + " SMM.01: 35% SMM:1-23 + " SMM.02: 95% SMM:2-32 + " SMM.13: 11% SMM:13-5 + " SMM.13: 14% SMM:13-6 + " SMM.13: 17% SMM:13-7 + " SMM.13: 45% SMM:13-16 + " SYSTAT.1: 28% SYSTAT(1)-2 + " SYSTAT.1: 97% SYSTAT(1)-5 +structure assignment[s] SMM.13: 67% SMM:13-23 + " SMM.19: 29% SMM:19-9 + " SMM.19: 46% SMM:19-13 + " SMM.19: 75% SMM:19-21 + " SMM.19: 86% SMM:19-24 +structure declaration[s] SMM.19: 23% SMM:19-7 + " SMM.19: 27% SMM:19-8 +structure member[s] SMM.19: 26% SMM:19-8 + " SMM.19: 27% SMM:19-8 +structure of a TSP message SMM.22: 19% SMM:22-2 +structure reference[s] SMM.19: 39% SMM:19-11 +STST file[s] UUSNAP.8C: 62% UUSNAP(8C)-1 + " SMM.09: 94% SMM:9-20 + " SMM.09: 94% SMM:9-20 +stty PS1.18: 26% PS1:18-7 + " SMM.12A: 48% SMM:12-11 +stty, gtty - set and get terminal state (defunct) STTY.3C: 5% STTY(3C)-1 +stty - set terminal option[s] STTY.1: 0% STTY(1)-1 +stty -tab[s] USD.01: 12% USD:1-2 +stty all USD.01: 16% USD:1-3 +stty tostop CSH.1: 7% CSH(1)-2 + " USD.04: 43% USD:4-20 + " USD.04: 44% USD:4-20 +STYLE USD.32: 6% USD:32-2 + " USD.32: 7% USD:32-2 + " USD.32: 13% USD:32-3 + " USD.32: 13% USD:32-3 + " USD.32: 16% USD:32-3 + " USD.32: 20% USD:32-4 + " USD.32: 22% USD:32-4 + " USD.32: 27% USD:32-4 + " USD.32: 31% USD:32-5 + " USD.32: 42% USD:32-6 + " USD.32: 45% USD:32-7 + " USD.32: 46% USD:32-7 + " USD.32: 56% USD:32-8 + " USD.32: 56% USD:32-8 + " USD.32: 65% USD:32-10 + " USD.32: 66% USD:32-10 + " USD.32: 72% USD:32-11 + " USD.32: 73% USD:32-11 +style, yacc grammar hints on PS1.15: 65% PS1:15-19 +SU PS1.03: 50% PS1:3-6 + " PS1.03: 51% PS1:3-6 + " PS1.03: 52% PS1:3-7 +style[s], citation USD.31: 12% USD:31-2 + " USD.31: 12% USD:31-2 + " USD.31: 88% USD:31-16 +styles, document USD.31: 5% USD:31-1 + " USD.31: 9% USD:31-2 + " USD.31: 9% USD:31-2 +style[s], formatting INDENT.1: 66% INDENT(1)-1 + " VGRIND.1: 87% VGRIND(1)-2 +style, names in Caps-Small Caps BIB.N: 38% BIB(1)-1 + " USD.31: 20% USD:31-3 + " USD.31: 20% USD:31-3 +style, writing STYLE.1: 20% STYLE(1)-1 + " USD.10: 62% USD:10-7 + " USD.32: 0% USD:32-1 + " USD.32: 2% USD:32-1 + " USD.32: 3% USD:32-1 + " USD.32: 4% USD:32-1 + " USD.32: 23% USD:32-4 + " USD.32: 30% USD:32-5 + " USD.32: 76% USD:32-11 +style - analyze surface characteristics of a document STYLE.1: 3% STYLE(1)-1 +STYLE Abbreviation[s] USD.32: 81% USD:32-12 +STYLE and DICTION Programs USD.32: 0% USD:32-1 + " USD.32: 0% USD:32-1 + " USD.32: 6% USD:32-2 + " USD.32: 12% USD:32-2 + " USD.32: 19% USD:32-4 + " USD.32: 28% USD:32-4 + " USD.32: 36% USD:32-6 + " USD.32: 44% USD:32-6 + " USD.32: 51% USD:32-8 + " USD.32: 58% USD:32-8 + " USD.32: 65% USD:32-10 + " USD.32: 72% USD:32-10 + " USD.32: 77% USD:32-12 + " USD.32: 81% USD:32-12 + " USD.32: 82% USD:32-14 + " USD.32: 93% USD:32-14 +Su SMM.10: 2% SMM:10-1 + " SMM.11: 95% SMM:11-16 + " CSH.1: 71% CSH(1)-15 + " SMM.12A: 48% SMM:12-11 +su - substitute user id temporarily SU.1: 5% SU(1)-1 +sub-networks IFCONFIG.8C: 68% IFCONFIG(8C)-2 +subdirectories, recursively list LS.1: 47% LS(1)-1 +subexpression elimination SMM.12A: 18% SMM:12-5 + " SMM.12A: 23% SMM:12-6 +Subject MH-MAIL.N: 76% MH-MAIL(5)-2 + " MHMAIL.N: 39% MHMAIL(1)-1 +subject, -subject MH-CHART.N: 37% MH-CHART(1)-1 + " MHMAIL.N: 7% MHMAIL(1)-1 + " MHMAIL.N: 36% MHMAIL(1)-1 + " USD.08: 30% USD:8-34 + " USD.08: 31% USD:8-34 + " USD.08: 89% USD:8-109 +subject field[s] MAIL.1: 15% MAIL(1)-1 + " MAIL.1: 74% MAIL(1)-5 + " MAIL.1: 80% MAIL(1)-5 + " MH.N: 26% MH(1)-1 + " USD.07: 74% USD:7-17 +Subject: USD.08: 68% USD:8-83 +subnet addressing INET.4F: 72% INET(4F)-1 +subnet field IFCONFIG.8C: 78% IFCONFIG(8C)-2 + " SMM.01: 65% SMM:1-40 +SUBNETSARELOCAL SMM.02: 98% SMM:2-33 +subnetting SMM.12A: 41% SMM:12-9 +subnetwork[s], Local SMM.01: 62% SMM:1-39 +subnetwork addressing SMM.13: 63% SMM:13-22 +subrange variable[s] PI.1: 31% PI(1)-1 +subroutine call[s] PS1.02: 64% PS1:2-21 + " PS2.01: 56% PS2:1-8 + " PS2.06: 47% PS2:6-16 + " PS2.06: 47% PS2:6-16 + " PS2.06: 72% PS2:6-25 + " PS2.09: 97% PS2:9-152 +subroutines, Fortran SMM.12A: 28% SMM:12-7 +subroutines, user USD.11: 88% USD:11-13 +subroutine prolog[s] SMM.19: 2% SMM:19-2 + " SMM.19: 3% SMM:19-2 + " SMM.19: 6% SMM:19-3 + " SMM.19: 6% SMM:19-3 +subschema, define - define PS2.10: 10% PS2:10-12 +Subscripting PS1.01: 85% PS1:1-29 +subscript[s] COLCRT.1: 55% COLCRT(1)-1 + " EQN.1: 31% EQN(1)-1 + " TERMCAP.5: 85% TERMCAP(5)-12 + " USD.23: 70% USD:23-9 + " USD.27: 21% USD:27-3 +Subscripted variable[s] USD.06: 40% USD:6-5 +subscription list SMM.10: 45% SMM:10-13 + " SMM.10: 91% SMM:10-23 + " SMM.10: 92% SMM:10-23 + " SMM.10: 93% SMM:10-23 + " SMM.10: 93% SMM:10-23 + " USD.09: 4% USD:9-1 + " USD.09: 11% USD:9-2 + " USD.09: 16% USD:9-2 + " USD.09: 27% USD:9-3 + " USD.09: 29% USD:9-4 +subscripts and superscript[s] USD.26: 36% USD:26-3 +subsequencer files USD.11: 74% USD:11-11 + " USD.11: 74% USD:11-11 + " USD.11: 74% USD:11-11 +subshell SH.1: 17% SH(1)-1 +substitute command[s] ED.1: 73% ED(1)-4 + " ED.1: 74% ED(1)-4 + " USD.04: 32% USD:4-15 + " USD.12: 1% USD:12-1 + " USD.12: 46% USD:12-5 + " USD.12: 46% USD:12-5 + " USD.12: 49% USD:12-5 + " USD.12: 54% USD:12-6 + " USD.12: 56% USD:12-6 + " USD.12: 68% USD:12-7 + " USD.12: 81% USD:12-9 + " USD.12: 82% USD:12-9 + " USD.12: 83% USD:12-9 + " USD.12: 88% USD:12-9 + " USD.12: 91% USD:12-10 + " USD.13: 7% USD:13-2 + " USD.13: 8% USD:13-2 + " USD.13: 10% USD:13-2 + " USD.13: 11% USD:13-2 + " USD.13: 11% USD:13-2 + " USD.13: 18% USD:13-4 + " USD.13: 20% USD:13-4 + " USD.13: 40% USD:13-7 + " USD.13: 42% USD:13-8 + " USD.13: 45% USD:13-8 + " USD.13: 49% USD:13-9 + " USD.13: 59% USD:13-10 + " USD.13: 60% USD:13-10 + " USD.13: 61% USD:13-10 + " USD.13: 64% USD:13-11 + " USD.14: 40% USD:14-10 + " USD.14: 41% USD:14-10 + " USD.14: 43% USD:14-11 + " USD.14: 72% USD:14-18 + " USD.14: 73% USD:14-18 + " USD.14: 78% USD:14-19 + " USD.14: 94% USD:14-22 + " USD.16: 67% USD:16-13 + " USD.16: 68% USD:16-13 + " USD.16: 75% USD:16-14 + " USD.16: 83% USD:16-15 + " ED.1: 65% ED(1)-4 + " USD.16: 52% USD:16-10 +Substitute Function USD.18: 55% USD:18-6 +substitute replacement patterns USD.16: 68% USD:16-13 + " USD.16: 76% USD:16-14 + " USD.16: 76% USD:16-14 +substituting USD.14: 75% USD:14-19 +Substituting Newline[s] USD.13: 34% USD:13-6 +Substitution[s] USD.04: 96% USD:4-44 +substitution, macro PS1.01: 77% PS1:1-26 + " PS1.09: 50% PS1:9-6 + " PS2.06: 12% PS2:6-5 +substitution[s], Command CSH.1: 29% CSH(1)-6 + " CSH.1: 35% CSH(1)-7 + " CSH.1: 35% CSH(1)-7 + " CSH.1: 36% CSH(1)-7 + " CSH.1: 40% CSH(1)-8 + " CSH.1: 41% CSH(1)-8 + " CSH.1: 96% CSH(1)-20 + " SH.1: 18% SH(1)-2 + " SH.1: 33% SH(1)-2 + " SH.1: 42% SH(1)-3 + " SH.1: 49% SH(1)-3 + " USD.03: 62% USD:3-16 + " USD.03: 63% USD:3-16 + " USD.03: 65% USD:3-16 + " USD.03: 66% USD:3-16 + " USD.03: 69% USD:3-17 + " USD.03: 69% USD:3-17 + " USD.03: 85% USD:3-21 + " USD.03: 87% USD:3-21 + " USD.04: 67% USD:4-33 + " USD.04: 72% USD:4-35 + " USD.04: 72% USD:4-35 +substitution, filename CSH.1: 30% CSH(1)-6 + " CSH.1: 34% CSH(1)-7 + " CSH.1: 36% CSH(1)-7 + " CSH.1: 36% CSH(1)-7 + " CSH.1: 37% CSH(1)-7 + " CSH.1: 80% CSH(1)-17 +Substitution[s], History CSH.1: 0% CSH(1)-1 + " CSH.1: 15% CSH(1)-3 + " CSH.1: 16% CSH(1)-3 + " CSH.1: 16% CSH(1)-4 + " CSH.1: 16% CSH(1)-4 + " CSH.1: 23% CSH(1)-5 + " CSH.1: 80% CSH(1)-17 + " CSH.1: 87% CSH(1)-18 + " CSH.1: 92% CSH(1)-19 + " USD.04: 50% USD:4-23 + " USD.04: 54% USD:4-25 +substitution, keyword CO.N: 25% CO(1)-1 + " CO.N: 60% CO(1)-2 +substitution, Parameter SH.1: 19% SH(1)-2 + " USD.03: 33% USD:3-8 + " USD.03: 52% USD:3-13 + " USD.03: 59% USD:3-15 + " USD.03: 64% USD:3-16 + " USD.03: 65% USD:3-16 + " USD.03: 66% USD:3-16 + " USD.03: 69% USD:3-17 +substitution, string USD.03: 0% USD:3-1 +Substring[s] M4.1: 78% CSH(1)-12 +substr PS1.17: 84% PS1:17-5 +substring notation PS2.10: 37% PS2:10-33 + " PS2.10: 37% PS2:10-33 + " PS2.10: 38% PS2:10-33 + " PS2.10: 45% PS2:10-38 +subtree, lid PS2.10: 31% PS2:10-29 + " PS2.10: 31% PS2:10-29 + " PS2.10: 32% PS2:10-29 +subtree, removing a RM.1: 61% RM(1)-1 +subtree[s], restoration of complete RESTORE.8: 65% RESTORE(8)-2 +SUFFIXES MAKE.1: 40% MAKE(1)-1 + " MAKE.1: 43% MAKE(1)-1 + " MAKE.1: 89% MAKE(1)-2 +subwin() PS1.18: 17% PS1:18-5 +subwin(win, lines, cols, beginy, beginx) PS1.18: 56% PS1:18-16 +subwindow PS1.18: 48% PS1:18-14 +SUFFIXES PS1.12: 92% PS1:12-9 + " PS1.12: 96% PS1:12-9 + " PS1.12: 97% PS1:12-9 + " PS1.12: 98% PS1:12-9 +suffixes, file CSH.1: 14% CSH(1)-3 +suffix, filename BASENAME.1: 20% BASENAME(1)-1 +sum - sum and count blocks in a file SUM.1: 9% unknown +sumacc SMM.12A: 99% SMM:12-23 +summarize quotas REPQUOTA.8: 8% unknown +Summary of ed Commands and Line Number[s] USD.12: 92% USD:12-10 +summary of 4.3 BSD kernel facility[s] PS1.06: 94% PS1:6-41 +summary of adb command[s] PS1.10: 95% PS1:10-26 +summary of C syntax PS1.01: 94% PS1:1-32 +summary of dbx command[s] PS1.11a: 77% PS1:11-6 +summary of m4 built-in macro[s] PS1.17: 94% PS1:17-6 +summary of nroff/troff request[s] USD.24: 5% USD:24-3 +summary of sccs commands and option[s] PS1.14: 90% PS1:14-14 +Sun workstation PS1.08: 14% PS1:8-5 +summation[s] USD.26: 42% USD:26-4 + " USD.27: 33% USD:27-4 +Sun SMM.12A: 99% SMM:12-23 +sunrpc SMM.12A: 99% SMM:12-23 +super block DUMPFS.8: 30% DUMPFS(8)-1 + " FS.5: 5% FS(5)-1 + " MOUNT.2: 58% MOUNT(2)-2 + " UPDATE.8: 9% UPDATE(8)-1 +super block, alternate FSCK.8: 62% FSCK(8)-2 +super block, sync - update the SYNC.8: 7% SYNC(8)-1 +Super-block SMM.05: 24% SMM:5-6 + " FS.5: 44% FS(5)-2 + " FSCK.8: 27% FSCK(8)-1 + " ICHECK.8: 50% ICHECK(8)-1 + " SMM.14: 9% SMM:14-3 +super-block, default SMM.05: 7% SMM:5-3 + " SMM.05: 25% SMM:5-6 + " SMM.14: 18% SMM:14-4 +super-block, sync - update SYNC.2: 8% SYNC(2)-1 +Super-block checking SMM.05: 24% SMM:5-6 +super-user WALL.1: 51% WALL(1)-1 + " ACCT.2: 27% ACCT(2)-1 + " CSH.1: 84% CSH(1)-18 + " INTRO.2: 73% INTRO(2)-6 + " INTRO.2: 5% INTRO(2)-1 + " LASTCOMM.1: 71% LASTCOMM(1)-1 + " SMM.01: 18% SMM:1-13 +super-user, becoming SU.1: 54% SU(1)-1 +Superblock SMM.05: 6% SMM:5-3 + " SMM.13: 5% SMM:13-3 +Superscript[s] USD.27: 21% USD:27-3 + " COLCRT.1: 54% COLCRT(1)-1 + " EQN.1: 32% EQN(1)-1 + " TERMCAP.5: 85% TERMCAP(5)-12 + " USD.23: 69% USD:23-9 +superscript[s], subscripts and USD.26: 36% USD:26-3 +Supplying input to command[s] USD.04: 62% USD:4-30 +superuser, INGRES PS2.10: 54% PS2:10-47 + " PS2.10: 55% PS2:10-48 + " PS2.10: 55% PS2:10-49 + " PS2.10: 56% PS2:10-49 + " PS2.10: 64% PS2:10-56 + " PS2.10: 67% PS2:10-59 + " PS2.10: 67% PS2:10-59 + " PS2.10: 68% PS2:10-59 + " PS2.10: 68% PS2:10-59 + " PS2.10: 68% PS2:10-60 + " PS2.10: 69% PS2:10-60 + " PS2.10: 71% PS2:10-62 + " PS2.10: 81% PS2:10-74 +suppress formatted output USD.24: 2% USD:24-2 +suspend CSH.1: 71% CSH(1)-15 +suspend execution SLEEP.1: 11% SLEEP(1)-1 + " SLEEP.3: 6% SLEEP(3)-1 + " SLEEP.3F: 14% SLEEP(3F)-1 + " USLEEP.3: 5% USLEEP(3)-1 +suspend execution for interval USLEEP.3: 5% USLEEP(3)-1 +suspend process character STTY.1: 93% STTY(1)-3 +suspend the editor USD.15: 40% USD:15-11 +suspend the rlogin session RLOGIN.1C: 78% RLOGIN(1C)-1 +Suspend window WINDOW.1: 27% WINDOW(1)-2 +suspend-jove (ESC S) USD.17: 95% USD:17-46 +suspended job[s] CSH.1: 11% CSH(1)-2 + " USD.04: 40% USD:4-18 + " USD.04: 42% USD:4-19 + " USD.04: 70% USD:4-34 +suspended processes SYSLINE.1: 15% SYSLINE(1)-1 +swab - swap byte[s] SWAB.3: 12% unknown +swap area[s] BADSECT.8: 27% BADSECT(8)-1 + " BRK.2: 82% BRK(2)-1 + " HK.4: 38% HK(4)-1 + " SMM.01: 1% SMM:1-2 + " SMM.01: 10% SMM:1-7 + " SMM.02: 26% SMM:2-8 + " SMM.02: 28% SMM:2-8 + " SMM.02: 28% SMM:2-8 + " SMM.02: 28% SMM:2-8 + " SMM.02: 80% SMM:2-26 + " SMM.02: 81% SMM:2-26 + " SMM.02: 81% SMM:2-26 + " STICKY.8: 89% STICKY(8)-1 + " SWAPON.2: 21% SWAPON(2)-1 +swap byte[s] SWAB.3: 14% SWAB(3)-1 +swap configuration table SWAPON.8: 66% SWAPON(8)-1 +swap device[s] SWAPON.2: 3% SWAPON(2)-1 + " SWAPON.2: 72% SWAPON(2)-1 + " SWAPON.8: 41% SWAPON(8)-1 + " SWAPON.8: 56% SWAPON(8)-1 + " SYSTAT.1: 24% SYSTAT(1)-2 + " SMM.12A: 61% SMM:12-14 +swap every pair of bytes DD.1: 39% DD(1)-1 +swap partition SMM.01: 29% SMM:1-20 + " SMM.02: 80% SMM:2-26 + " SMM.02: 80% SMM:2-26 +swap space BRK.2: 89% BRK(2)-1 + " FORK.2: 93% FORK(2)-1 + " FSTAB.5: 55% FSTAB(5)-1 + " INTRO.2: 16% INTRO(2)-2 + " INTRO.2: 17% INTRO(2)-2 + " SMM.02: 28% SMM:2-8 + " SMM.02: 94% SMM:2-32 + " SMM.13: 47% SMM:13-17 + " SMM.17: 15% SMM:17-1 + " SMM.17: 16% SMM:17-1 +swap space usage SYSTAT.1: 5% SYSTAT(1)-1 +swap/paging area, Multiple SMM.02: 80% SMM:2-26 +swapon SMM.12A: 61% SMM:12-14 + " SMM.12A: 95% SMM:12-22 +swapon - add a swap device for interleaved paging/swapping SWAPON.2: 2% SWAPON(2)-1 +swapon - specify additional device for paging and swapping SWAPON.8: 4% SWAPON(8)-1 +swapon(blkdev, size) PS1.06: 48% PS1:6-23 +swapping CONFIG.8: 61% CONFIG(8)-1 +swapping activity SMM.01: 78% SMM:1-48 + " SMM.01: 79% SMM:1-48 + " SWAPON.8: 45% SWAPON(8)-1 + " SYSTAT.1: 47% SYSTAT(1)-3 +swapping, paging and PS1.06: 48% PS1:6-23 +swapping process PS2.04: 24% PS2:4-3 + " PS2.04: 25% PS2:4-3 + " PS2.04: 26% PS2:4-3 + " PS2.04: 33% PS2:4-4 +Switch Statement PS1.01: 65% PS1:1-22 + " PS1.01: 66% PS1:1-22 + " PS1.01: 67% PS1:1-23 + " PS2.08: 27% PS2:8-4 + " PS2.08: 31% PS2:8-5 +switch[s], context GETRUSAGE.2: 77% GETRUSAGE(2)-2 + " GETRUSAGE.2: 82% GETRUSAGE(2)-2 + " SMM.13: 21% SMM:13-8 + " SMM.13: 54% SMM:13-19 + " SMM.13: 55% SMM:13-19 + " SMM.13: 55% SMM:13-19 + " SYSTAT.1: 60% SYSTAT(1)-3 +switch, reboot SMM.01: 11% SMM:1-8 + " SMM.01: 11% SMM:1-8 +switch command CSH.1: 71% CSH(1)-15 +Switch source file USD.24: 79% USD:24-25 +switch statement CSH.1: 46% CSH(1)-9 + " CSH.1: 51% CSH(1)-10 + " CSH.1: 52% CSH(1)-10 + " SMM.19: 3% SMM:19-2 + " SMM.19: 29% SMM:19-9 + " SMM.19: 36% SMM:19-10 + " STRUCT.1: 50% STRUCT(1)-1 + " USD.04: 71% USD:4-35 +switching between font[s] USD.22: 86% USD:22-16 +symbol[s], bss PS1.05: 44% PS1:5-6 + " PS1.05: 45% PS1:5-6 + " PS1.05: 45% PS1:5-6 + " PS1.05: 45% PS1:5-6 +symbol[s], data PS1.05: 43% PS1:5-6 + " PS1.05: 44% PS1:5-6 + " PS1.05: 44% PS1:5-6 + " PS1.10: 66% PS1:10-13 +symbol[s], input PS1.04: 58% PS1:4-30 + " PS1.15: 45% PS1:15-13 + " PS1.15: 45% PS1:15-13 + " PS1.15: 46% PS1:15-14 + " PS1.15: 46% PS1:15-14 + " PS1.15: 47% PS1:15-14 + " PS1.15: 47% PS1:15-14 + " PS1.15: 54% PS1:15-16 + " PS1.15: 65% PS1:15-18 + " PS1.15: 72% PS1:15-21 +symbol[s], nonterminal PS1.15: 5% PS1:15-2 + " PS1.15: 5% PS1:15-2 + " PS1.15: 10% PS1:15-3 + " PS1.15: 12% PS1:15-3 + " PS1.15: 14% PS1:15-4 + " PS1.15: 14% PS1:15-4 + " PS1.15: 14% PS1:15-4 + " PS1.15: 74% PS1:15-21 +symbol, start PS1.15: 14% PS1:15-4 + " PS1.15: 14% PS1:15-4 + " PS1.15: 14% PS1:15-4 + " PS1.15: 14% PS1:15-4 + " PS1.15: 15% PS1:15-4 +symbol[s], text PS1.05: 42% PS1:5-6 + " PS1.05: 43% PS1:5-6 + " PS1.05: 43% PS1:5-6 + " PS1.05: 44% PS1:5-6 +symbol name[s] PS1.05: 78% PS1:5-11 + " PS1.10: 66% PS1:10-13 + " PS2.09: 50% PS2:9-89 +symbol table[s] PS1.05: 10% PS1:5-2 + " PS1.05: 75% PS1:5-11 + " PS1.05: 76% PS1:5-11 + " PS1.05: 77% PS1:5-11 + " PS1.05: 78% PS1:5-11 + " PS1.05: 81% PS1:5-12 + " PS1.05: 99% PS1:5-14 + " PS1.10: 37% PS1:10-8 + " PS1.15: 69% PS1:15-20 + " PS2.09: 19% PS2:9-37 + " PS2.10: 88% PS2:10-79 + " PS1.11a: 9% PS1:11-1 + " PS1.11a: 11% PS1:11-1 + " PS1.11a: 12% PS1:11-1 + " PS1.11a: 13% PS1:11-1 + " PS1.11a: 69% PS1:11-5 +symbolic debugger[s] PS1.04: 72% PS1:4-37 + " PS1.05: 77% PS1:5-11 + " PS1.04: 72% PS1:4-37 + " PS1.11a: 2% PS1:11-1 + " PS1.11a: 3% PS1:11-1 +symbolic link PS1.06: 61% PS1:6-28 + " PS1.06: 64% PS1:6-29 + " PS1.06: 66% PS1:6-30 + " PS1.06: 67% PS1:6-30 +symbolic links PS1.06: 66% PS1:6-30 + " PS1.06: 66% PS1:6-30 + " PS1.06: 66% PS1:6-30 +symbolic name[s] PS1.02: 55% PS1:2-18 + " PS1.02: 55% PS1:2-19 + " PS1.13: 4% PS1:13-1 + " PS1.13: 67% PS1:13-13 + " PS1.13: 89% PS1:13-20 + " PS1.13: 90% PS1:13-20 +symbols, external LD.1: 80% LD(1)-2 +symbols, local LD.1: 76% LD(1)-2 +symbol[s], mathematical USD.27: 6% USD:27-1 + " USD.27: 16% USD:27-2 +symbol, undefined LD.1: 64% LD(1)-2 +symbol name[s] A_OUT.5: 76% A.OUT(5)-3 + " NM.1: 30% NM(1)-1 + " SMM.19: 11% SMM:19-4 +symbol table[s] ADB.1: 2% ADB(1)-1 + " ADB.1: 23% ADB(1)-2 + " A_OUT.5: 8% A.OUT(5)-1 + " A_OUT.5: 20% A.OUT(5)-1 + " A_OUT.5: 45% A.OUT(5)-2 + " A_OUT.5: 52% A.OUT(5)-2 + " DBX.1: 4% DBX(1)-1 + " GPROF.1: 10% GPROF(1)-1 + " LD.1: 31% LD(1)-1 + " LD.1: 34% LD(1)-1 + " LD.1: 67% LD(1)-2 + " LD.1: 73% LD(1)-2 + " LD.1: 74% LD(1)-2 + " NM.1: 13% NM(1)-1 + " PDX.1: 4% PDX(1)-1 + " PROF.1: 14% PROF(1)-1 + " RANLIB.1: 62% RANLIB(1)-1 + " SMM.01: 81% SMM:1-49 + " SMM.02: 16% SMM:2-5 + " SMM.02: 16% SMM:2-5 + " SMM.19: 2% SMM:19-2 + " SMM.19: 10% SMM:19-4 + " SMM.19: 16% SMM:19-5 + " SMM.19: 21% SMM:19-7 + " SMM.19: 21% SMM:19-7 + " SMM.19: 22% SMM:19-7 + " SMM.19: 22% SMM:19-7 + " SMM.19: 23% SMM:19-7 + " SMM.19: 23% SMM:19-7 + " SMM.19: 23% SMM:19-7 + " SMM.19: 25% SMM:19-8 + " SMM.19: 25% SMM:19-8 + " SMM.19: 26% SMM:19-8 + " SMM.19: 26% SMM:19-8 + " SMM.19: 26% SMM:19-8 + " SMM.19: 27% SMM:19-8 + " SMM.19: 41% SMM:19-12 + " SMM.19: 41% SMM:19-12 + " SMM.19: 41% SMM:19-12 + " STAB.5: 3% STAB(5)-1 + " STAB.5: 19% STAB(5)-1 + " STRIP.1: 33% STRIP(1)-1 + " SYMORDER.1: 46% SYMORDER(1)-1 +symbol table entry[s] A_OUT.5: 55% A.OUT(5)-2 + " A_OUT.5: 57% A.OUT(5)-2 + " A_OUT.5: 75% A.OUT(5)-3 + " SMM.19: 26% SMM:19-8 + " SMM.19: 27% SMM:19-8 + " SMM.19: 39% SMM:19-11 + " STAB.5: 7% STAB(5)-1 + " STAB.5: 15% STAB(5)-1 + " STAB.5: 17% STAB(5)-1 + " STAB.5: 21% STAB(5)-1 +symbol table information DBX.5: 0% DBX(5)-1 +symbol table maintenance SMM.19: 6% SMM:19-3 + " SMM.19: 16% SMM:19-5 + " SMM.19: 21% SMM:19-7 +symbol table operation[s] SMM.19: 41% SMM:19-12 + " SMM.19: 41% SMM:19-12 +Symbolic addresses DBX.1: 86% DBX(1)-6 +symbolic debugger[s] SMM.19: 11% SMM:19-4 + " SMM.19: 41% SMM:19-12 + " SMM.12A: 3% SMM:12-2 +symbolic link[s] CATMAN.8: 53% CATMAN(8)-1 + " CHOWN.2: 37% CHOWN(2)-1 + " CHOWN.2: 38% CHOWN(2)-1 + " FIND.1: 33% FIND(1)-1 + " FIND.1: 65% FIND(1)-2 + " INTRO.2: 61% INTRO(2)-5 + " LINK.3F: 66% LINK(3F)-1 + " LN.1: 41% LN(1)-1 + " LN.1: 50% LN(1)-1 + " LN.1: 60% LN(1)-1 + " LS.1: 18% LS(1)-1 + " LS.1: 29% LS(1)-1 + " LS.1: 63% LS(1)-2 + " OPEN.2: 28% OPEN(2)-1 + " READLINK.2: 6% READLINK(2)-1 + " READLINK.2: 82% READLINK(2)-1 + " RENAME.2: 15% RENAME(2)-1 + " RENAME.2: 15% RENAME(2)-1 + " SMM.01: 39% SMM:1-26 + " SMM.01: 39% SMM:1-26 + " SMM.02: 10% SMM:2-4 + " SMM.13: 32% SMM:13-12 + " SMM.13: 32% SMM:13-12 + " SMM.13: 32% SMM:13-12 + " SMM.14: 87% SMM:14-13 + " SMM.14: 87% SMM:14-13 + " SMM.14: 87% SMM:14-13 + " SMM.14: 88% SMM:14-13 + " SMM.14: 88% SMM:14-13 + " SMM.14: 88% SMM:14-13 + " STAT.2: 11% STAT(2)-1 + " STAT.2: 56% STAT(2)-2 + " SYMLINK.2: 2% SYMLINK(2)-1 + " SYMLINK.2: 11% SYMLINK(2)-1 + " SYMLINK.2: 21% SYMLINK(2)-1 + " TAR.5: 75% TAR(5)-1 + " SMM.12A: 32% SMM:12-8 + " SMM.12A: 57% SMM:12-13 + " SMM.12A: 57% SMM:12-13 + " SMM.12A: 58% SMM:12-13 + " SMM.12A: 68% SMM:12-16 + " CHDIR.2: 74% CHDIR(2)-1 + " CHGRP.1: 73% CHGRP(1)-1 + " CHMOD.1: 70% CHMOD(1)-1 + " CHOWN.8: 75% CHOWN(8)-1 + " INTRO.2: 57% INTRO(2)-5 + " INTRO.2: 58% INTRO(2)-5 + " LINK.2: 51% LINK(2)-1 + " LN.1: 22% LN(1)-1 + " LN.1: 40% LN(1)-1 + " LN.1: 61% LN(1)-1 + " LS.1: 46% LS(1)-1 + " RENAME.2: 32% RENAME(2)-1 + " RENAME.2: 63% RENAME(2)-1 + " SMM.01: 39% SMM:1-26 + " SMM.02: 18% SMM:2-6 + " SMM.14: 85% SMM:14-13 + " SMM.14: 88% SMM:14-13 + " SMM.14: 88% SMM:14-13 + " TAR.1: 74% TAR(1)-2 + " TAR.5: 62% TAR(5)-1 + " SMM.12A: 31% SMM:12-7 + " SMM.12A: 83% SMM:12-19 + " SMM.12A: 88% SMM:12-21 +symbolic links RDIST.1: 20% RDIST(1)-1 +symlink - make symbolic link to a file SYMLINK.2: 2% SYMLINK(2)-1 +symlink(path1, path2) PS1.06: 67% PS1:6-30 +symmetric protocol PS1.08: 43% PS1:8-17 +symorder SMM.12A: 48% SMM:12-11 +symorder - rearrange name list SYMORDER.1: 8% SYMORDER(1)-1 +Sync SYNC.2: 48% SYNC(2)-1 + " SYNC.2: 62% SYNC(2)-1 + " HALT.8: 36% HALT(8)-1 + " SHUTDOWN.8: 78% SHUTDOWN(8)-1 + " UPDATE.8: 78% UPDATE(8)-1 + " SMM.05: 18% SMM:5-5 +sync - update super-block SYNC.2: 8% SYNC(2)-1 +sync - update the super block SYNC.8: 7% SYNC(8)-1 +sync() PS1.06: 48% PS1:6-23 +Synchronization primitive[s] PS1.06: 21% PS1:6-12 +sync-frequency (variable) USD.17: 95% USD:17-46 +Synchronization, Clock SMM.22: 97% SMM:22-10 + " SMM.08: 4% SMM:8-2 +synchronize a file FSYNC.2: 6% ABS(3)-1 +synchronize a mapped region with the file it map[s] PS1.06: 18% PS1:6-11 +Synchronous multiplexing PS1.06: 38% PS1:6-18 + " PS1.08: 29% PS1:8-10 +synonyms for commands CSH.1: 24% CSH(1)-5 +syntax class PS2.09: 48% PS2:9-85 + " PS2.09: 49% PS2:9-87 + " PS2.09: 49% PS2:9-87 + " PS2.09: 49% PS2:9-87 + " PS2.09: 50% PS2:9-88 + " PS2.09: 50% PS2:9-89 + " PS2.09: 51% PS2:9-90 + " PS2.09: 51% PS2:9-90 + " PS2.09: 51% PS2:9-90 + " PS2.09: 51% PS2:9-90 + " PS2.09: 51% PS2:9-90 + " PS2.09: 53% PS2:9-94 + " PS2.09: 53% PS2:9-94 + " PS2.09: 54% PS2:9-95 + " PS2.09: 54% PS2:9-95 + " PS2.09: 54% PS2:9-95 + " PS2.09: 54% PS2:9-95 + " PS2.09: 54% PS2:9-95 +Syntax Classes PS2.09: 48% PS2:9-85 + " PS2.09: 51% PS2:9-90 + " PS2.09: 51% PS2:9-90 + " PS2.09: 51% PS2:9-90 + " PS2.09: 54% PS2:9-94 +Syntax error[s] PS1.04: 18% PS1:4-10 + " PS1.04: 23% PS1:4-12 + " PS1.04: 32% PS1:4-18 + " PS1.04: 35% PS1:4-19 + " PS1.05: 54% PS1:5-8 + " PS1.15: 56% PS1:15-16 + " PS1.15: 57% PS1:15-17 + " PS1.15: 63% PS1:15-18 + " PS1.15: 64% PS1:15-18 + " PS1.15: 64% PS1:15-18 + " PS1.15: 72% PS1:15-21 + " PS1.15: 92% PS1:15-28 + " PS2.07: 57% PS2:7-28 + " PS2.08: 69% PS2:8-10 + " PS2.09: 40% PS2:9-71 + " PS2.10: 86% PS2:10-78 + " PS2.10: 86% PS2:10-78 + " PS2.10: 87% PS2:10-78 + " PS2.10: 87% PS2:10-78 + " PS2.10: 87% PS2:10-78 + " PS2.10: 87% PS2:10-78 + " PS2.10: 87% PS2:10-78 + " PS2.10: 87% PS2:10-78 + " PS2.10: 87% PS2:10-78 + " PS2.10: 87% PS2:10-78 + " PS2.10: 87% PS2:10-78 + " PS2.10: 87% PS2:10-78 + " PS2.10: 87% PS2:10-78 + " PS2.10: 87% PS2:10-78 + " PS2.10: 87% PS2:10-78 + " PS2.10: 88% PS2:10-78 + " PS2.10: 88% PS2:10-78 + " PS2.10: 88% PS2:10-78 + " PS2.10: 88% PS2:10-78 +syntax, MACLISP LISZT.1: 19% LISZT(1)-1 +syscall - indirect system call SYSCALL.2: 7% SYSCALL(2)-1 +syscmd PS1.17: 73% PS1:17-5 +sysline SMM.12A: 48% SMM:12-11 +sysline - display system status on status line of a terminal SYSLINE.1: 1% SYSLINE(1)-1 +syslog FTPD.8C: 11% FTPD(8C)-1 + " HALT.8: 59% HALT(8)-1 + " LOGGER.1: 70% unknown + " LPD.8: 76% LPD(8)-2 + " PRINTCAP.5: 91% PRINTCAP(5)-2 + " REBOOT.8: 16% REBOOT(8)-1 + " SMM.01: 33% SMM:1-22 + " SMM.12A: 37% SMM:12-9 + " SMM.12A: 71% SMM:12-16 +syslog, log errors via PS1.08: 47% PS1:8-19 +syslog, openlog, closelog, setlogmask - control system log SYSLOG.3: 1% SYSLOG(3)-1 +syslog facility parameter SYSLOG.3: 65% unknown +syslog logging options SYSLOG.3: 42% unknown +syslog message priority[s] SYSLOG.3: 18% SYSLOG(3)-1 +syslogd SYSLOG.3: 17% SYSLOG(3)-1 + " SMM.07A: 12% SMM:07-8 + " SMM.12A: 95% SMM:12-22 +syslogd - log systems message[s] SYSLOGD.8: 1% SYSLOGD(8)-1 +sysmod - modify system relations to predetermined storage structure[s] PS2.10: 71% PS2:10-62 +systat SMM.01: 78% SMM:1-48 + " SMM.12A: 49% SMM:12-11 +systat - display system statistics on a crt SYSTAT.1: 0% SYSTAT(1)-1 +system abstractions for file[s] PS1.06: 1% +system call[s] PS1.06: 4% PS1:6-5 + " PS1.06: 5% PS1:6-5 + " PS1.06: 28% PS1:6-14 + " PS1.06: 35% PS1:6-17 + " PS1.06: 52% PS1:6-25 + " PS1.07a: 39% PS1:7-9 + " PS1.07a: 76% PS1:7-19 + " PS1.07a: 78% PS1:7-19 + " PS1.08: 9% PS1:8-4 + " PS2.01: 27% PS2:1-4 + " PS2.01: 51% PS2:1-8 + " PS2.01: 90% PS2:1-13 + " PS2.01: 91% PS2:1-14 + " PS2.03: 58% PS2:3-9 + " PS2.03: 61% PS2:3-10 + " PS2.03: 74% PS2:3-11 + " PS2.09: 41% PS2:9-73 + " PS2.09: 44% PS2:9-79 +system call, restarting PS1.06: 28% PS1:6-14 +system standard type[s] PS1.06: 5% PS1:6-5 +TAB[s] PS1.18: 33% PS1:18-8 +system, build a bootable SMM.02: 8% SMM:2-4 +system, building the CONFIG.8: 52% CONFIG(8)-1 + " SMM.02: 14% SMM:2-5 +systems, communication with other INTRO.1: 22% INTRO(1)-1 +system, generic distribution version of the SMM.01: 41% SMM:1-27 +system - execute a UNIX command SYSTEM.3F: 6% SYSTEM(3F)-1 +system - issue a shell command SYSTEM.3: 10% SYSTEM(3)-1 +system accounting CONFLICT.N: 73% CONFLICT(8)-1 + " SA.8: 1% SA(8)-1 + " USD.08: 76% USD:8-93 +system administrator[s] FSTAB.5: 10% FSTAB(5)-1 + " LPC.8: 4% LPC(8)-1 + " RCS.N: 49% RCS(1)-1 + " SENDMAIL.8: 45% SENDMAIL(8)-2 + " SMM.04: 13% SMM:4-1 + " SMM.04: 42% SMM:4-2 + " SMM.11: 2% SMM:11-2 + " SMM.14: 37% SMM:14-6 + " SMM.17: 68% SMM:17-2 + " SMM.17: 69% SMM:17-2 + " SMM.18: 20% SMM:18-2 + " USD.07: 18% USD:7-5 + " USD.10: 14% USD:10-2 + " USD.09: 74% USD:9-9 +system binary[s] CRASH.8V: 25% CRASH(8V)-1 + " SMM.01: 1% SMM:1-2 + " SMM.01: 1% SMM:1-2 + " SMM.01: 45% SMM:1-29 + " SMM.09: 50% SMM:9-11 +SYSTEM BUILDING PROCESS SMM.02: 16% SMM:2-5 + " SMM.02: 8% SMM:2-4 +system call[s] FCNTL.2: 25% FCNTL(2)-1 + " GETITIMER.2: 72% GETITIMER(2)-1 + " INTRO.2: 1% INTRO(2)-1 + " INTRO.2: 8% INTRO(2)-1 + " INTRO.2: 9% INTRO(2)-1 + " INTRO.2: 19% INTRO(2)-2 + " PTRACE.2: 97% PTRACE(2)-2 + " SIGINTERRUPT.3: 5% SIGINTERRUPT(3) + " SIGNAL.3C: 55% SIGNAL(3C)-2 + " SIGVEC.2: 58% SIGVEC(2)-2 + " SIGVEC.2: 66% SIGVEC(2)-2 + " SMM.01: 26% SMM:1-18 + " SMM.01: 39% SMM:1-26 + " SMM.05: 18% SMM:5-5 + " SMM.10: 7% SMM:10-2 + " SMM.10: 17% SMM:10-5 + " SMM.10: 17% SMM:10-5 + " SMM.10: 56% SMM:10-15 + " SMM.13: 12% SMM:13-5 + " SMM.13: 12% SMM:13-5 + " SMM.13: 12% SMM:13-5 + " SMM.13: 13% SMM:13-6 + " SMM.13: 13% SMM:13-6 + " SMM.13: 16% SMM:13-7 + " SMM.13: 57% SMM:13-20 + " SYSCALL.2: 10% SYSCALL(2)-1 + " SYSCALL.2: 27% SYSCALL(2)-1 + " SYSCALL.2: 48% SYSCALL(2)-1 + " SYSTAT.1: 61% SYSTAT(1)-3 + " USLEEP.3: 70% USLEEP(3)-1 + " INTRO.2: 0% INTRO(2)-1 +system call, bad argument to SIGNAL.3C: 25% unknown +system call, interrupted SIGINTERRUPT.3: 4% SIGINTERRUPT(3) +system call, restarting SIGINTERRUPT.3: 11% SIGINTERRUPT(3) +system call overhead IK.4: 37% IK(4)-1 + " PS.4: 14% PS(4)-1 + " SMM.14: 61% SMM:14-9 +system clock ADJTIME.2: 5% ADJTIME(2)-1 + " GETITIMER.2: 46% GETITIMER(2)-1 + " GETTIMEOFDAY.2: 31% GETTIMEOFDAY(2) + " SMM.02: 19% SMM:2-6 + " SMM.02: 19% SMM:2-6 + " SMM.12A: 56% SMM:12-13 + " TIMEDC.8: 57% TIMEDC(8)-1 +system configuration[s] CONFIG.8: 33% CONFIG(8)-1 + " SMM.01: 50% SMM:1-32 + " SMM.01: 52% SMM:1-33 + " SMM.01: 60% SMM:1-38 + " SMM.01: 99% SMM:1-65 + " SMM.02: 2% SMM:2-2 + " SMM.02: 26% SMM:2-8 + " SMM.02: 48% SMM:2-15 + " SMM.02: 74% SMM:2-23 + " SMM.04: 44% SMM:4-2 + " AUTOCONF.4: 7% AUTOCONF(4)-1 +system configuration file[s] CONFIG.8: 2% CONFIG(8)-1 + " CONFIG.8: 6% CONFIG(8)-1 + " CONFIG.8: 28% CONFIG(8)-1 + " SMM.01: 9% SMM:1-7 + " SMM.02: 0% SMM:2-2 + " SMM.02: 1% SMM:2-2 + " SMM.02: 96% SMM:2-33 + " SMM.02: 97% SMM:2-33 + " SMM.02: 98% SMM:2-33 + " SMM.04: 43% SMM:4-2 + " SMM.16: 57% SMM:16-8 +system console SYSLOGD.8: 71% SYSLOGD(8)-2 + " SYSLOG.3: 16% SYSLOG(3)-1 +system crash[s] CRASH.8V: 1% CRASH(8V)-1 + " CRASH.8V: 2% CRASH(8V)-1 + " CRASH.8V: 3% CRASH(8V)-1 + " CRASH.8V: 67% CRASH(8V)-2 + " CRASH.8V: 84% CRASH(8V)-3 + " JOVE.N: 39% JOVE(1)-2 + " RC.8: 81% RC(8)-1 + " SENDMAIL.8: 72% SENDMAIL(8)-3 + " SMM.01: 99% SMM:1-65 + " SMM.02: 81% SMM:2-26 + " SMM.03: 49% SMM:3-1 + " SMM.03: 69% SMM:3-1 + " SMM.14: 79% SMM:14-12 + " SMM.14: 85% SMM:14-12 + " USD.14: 88% USD:14-21 + " USD.15: 49% USD:15-14 + " USD.16: 4% USD:16-1 + " USD.16: 14% USD:16-3 + " USD.16: 49% USD:16-9 +system data structures SMM.01: 17% SMM:1-12 + " SMM.02: 0% SMM:2-2 + " SMM.02: 1% SMM:2-2 + " SMM.02: 5% SMM:2-3 + " SMM.02: 5% SMM:2-3 + " SMM.02: 24% SMM:2-7 + " SMM.02: 42% SMM:2-13 + " SMM.02: 50% SMM:2-15 + " SMM.02: 85% SMM:2-30 +system debugging CRASH.8V: 95% CRASH(8V)-3 +system description INTRO.4: 7% INTRO(4)-1 + " INTRO.4N: 24% INTRO(4N)-1 + " SMM.01: 4% SMM:1-3 +system diagnostic messages DMESG.8: 9% DMESG(8)-1 +system directory[s] CSH.1: 67% CSH(1)-14 + " SMM.09: 51% SMM:9-11 + " SMM.09: 51% SMM:9-11 + " USD.04: 89% USD:4-41 +system dump[s] CONFIG.8: 63% CONFIG(8)-1 + " SMM.02: 26% SMM:2-8 + " SMM.02: 79% SMM:2-26 + " SMM.02: 80% SMM:2-26 + " SMM.02: 81% SMM:2-26 + " SMM.02: 81% SMM:2-26 + " SMM.02: 82% SMM:2-26 + " SMM.02: 82% SMM:2-26 + " SMM.02: 83% SMM:2-26 +system error[s] PERROR.3F: 17% PERROR(3F)-1 + " PERROR.3F: 29% PERROR(3F)-1 + " SMM.07A: 81% SMM:07-36 +system error log DMESG.8: 31% DMESG(8)-1 + " INTRO.4N: 25% INTRO(4N)-1 + " INTRO.4: 10% INTRO(4)-1 +system error message[s] PERROR.3: 7% PERROR(3)-1 + " PERROR.3F: 3% PERROR(3F)-1 + " PERROR.3F: 21% PERROR(3F)-1 +system file table CREAT.2: 59% CREAT(2)-1 + " OPEN.2: 69% OPEN(2)-2 +system hang[s] SMM.01: 99% SMM:1-65 +system identification SMM.02: 2% SMM:2-2 + " SMM.02: 3% SMM:2-2 + " SMM.02: 3% SMM:2-2 + " SMM.09: 27% SMM:9-6 +system identifier SMM.02: 3% SMM:2-2 + " SMM.02: 4% SMM:2-2 + " SMM.02: 4% SMM:2-2 + " SMM.02: 11% SMM:2-4 + " SMM.02: 15% SMM:2-5 + " SMM.02: 21% SMM:2-7 +system image[s] SMM.01: 12% SMM:1-8 + " SMM.01: 40% SMM:1-27 + " SMM.01: 41% SMM:1-27 + " SMM.02: 2% SMM:2-2 + " SMM.02: 9% SMM:2-4 + " SMM.02: 12% SMM:2-5 + " SMM.02: 12% SMM:2-5 + " SMM.02: 15% SMM:2-5 + " SMM.02: 16% SMM:2-5 + " SMM.02: 17% SMM:2-6 + " SMM.02: 17% SMM:2-6 + " SMM.02: 21% SMM:2-6 + " SMM.02: 21% SMM:2-6 + " SMM.02: 25% SMM:2-7 + " SMM.02: 45% SMM:2-14 + " TRPT.8C: 86% TRPT(8C)-1 + " TRSP.8C: 84% TRSP(8c)-1 +system index INVERT.N: 29% INVERT(1)-1 + " INVERT.N: 30% INVERT(1)-1 + " USD.31: 11% USD:31-2 + " USD.31: 11% USD:31-2 +System Industries SI 9700 tape subsystem UT.4: 17% UT(4)-1 +system initialization SMM.01: 39% SMM:1-26 +system limit[s] BRK.2: 63% BRK(2)-1 + " OPEN.2: 44% OPEN(2)-1 +system load SYSTAT.1: 3% SYSTAT(1)-1 + " SMM.07A: 30% SMM:07-15 + " SMM.07A: 72% SMM:07-32 + " SMM.07A: 72% SMM:07-32 +system log LOGGER.1: 7% LOGGER(1)-1 + " SHUTDOWN.8: 55% SHUTDOWN(8)-1 + " SMM.07: 13% SMM:7-1 + " SYSLOG.3: 8% SYSLOG(3)-1 + " SMM.07A: 12% SMM:07-8 + " SMM.07A: 12% SMM:07-8 + " SMM.07A: 12% SMM:07-8 +system log, logger - make entries in the LOGGER.1: 4% LOGGER(1)-1 +system mailbox MAIL.1: 39% MAIL(1)-3 + " MAIL.1: 41% MAIL(1)-3 + " MAIL.1: 41% MAIL(1)-3 + " MAIL.1: 44% MAIL(1)-3 + " MAIL.1: 84% MAIL(1)-5 + " USD.07: 2% USD:7-2 + " USD.07: 2% USD:7-2 + " USD.07: 2% USD:7-2 + " USD.07: 2% USD:7-2 + " USD.07: 14% USD:7-4 + " USD.07: 15% USD:7-4 + " USD.07: 20% USD:7-5 + " USD.07: 21% USD:7-5 + " USD.07: 22% USD:7-6 + " USD.07: 22% USD:7-6 + " USD.07: 23% USD:7-6 + " USD.07: 23% USD:7-6 + " USD.07: 26% USD:7-6 + " USD.07: 26% USD:7-6 + " USD.07: 27% USD:7-7 + " USD.07: 27% USD:7-7 + " USD.07: 28% USD:7-7 + " USD.07: 56% USD:7-14 + " USD.07: 60% USD:7-14 + " USD.07: 64% USD:7-15 + " USD.07: 64% USD:7-15 + " USD.07: 64% USD:7-15 + " USD.07: 65% USD:7-15 + " USD.07: 65% USD:7-15 + " USD.07: 74% USD:7-17 + " USD.07: 77% USD:7-18 + " USD.07: 78% USD:7-18 +system maintenance SMM.02: 1% SMM:2-2 + " INTRO.1: 32% INTRO(1)-1 +system manager[s] GETUSERSHELL.3: 35% GETUSERSHELL(3) + " SMM.11: 85% SMM:11-13 + " SMM.11: 86% SMM:11-14 +system messages MSGS.1: 1% MSGS(1)-1 + " MSGS.1: 5% MSGS(1)-1 + " USD.04: 25% USD:4-11 +system name[s] L_ALIASES.5: 13% L.ALIASES(5)-1 + " L_ALIASES.5: 78% L.ALIASES(5)-1 + " L_SYS.5: 1% L.SYS(5)-1 + " SMM.09: 21% SMM:9-5 + " SMM.09: 22% SMM:9-5 + " SMM.09: 25% SMM:9-6 + " SMM.09: 25% SMM:9-6 + " SMM.09: 92% SMM:9-19 + " SMM.09: 94% SMM:9-20 + " SMM.09: 95% SMM:9-20 + " SMM.10: 44% SMM:10-12 + " SMM.10: 44% SMM:10-12 + " SMM.10: 44% SMM:10-12 + " SMM.10: 91% SMM:10-23 + " SMM.10: 92% SMM:10-23 + " SMM.10: 93% SMM:10-23 + " SMM.10: 95% SMM:10-23 + " SMM.10: 98% SMM:10-24 + " SMM.10: 99% SMM:10-24 + " UUCP.1C: 11% UUCP(1C)-1 + " UUNAME.1C: 54% UUNAME(1C)-1 + " SMM.07A: 4% SMM:07-4 +system name translation cacheing SYSTAT.1: 31% SYSTAT(1)-2 +system operation[s] SMM.01: 24% SMM:1-17 + " SMM.01: 73% SMM:1-45 + " SMM.01: 84% SMM:1-51 +system operation procedure[s] SMM.01: 0% SMM:1-1 +system option[s] SMM.02: 7% SMM:2-3 + " SMM.02: 7% SMM:2-3 + " SMM.02: 49% SMM:2-15 + " SMM.02: 49% SMM:2-15 +system page size GETPAGESIZE.2: 15% GETPAGESIZE(2)- + " GETPAGESIZE.2: 66% GETPAGESIZE(2)- + " SMM.15: 93% SMM:15-26 +system page table[s] SMM.02: 89% SMM:2-31 + " SMM.02: 90% SMM:2-31 + " SMM.02: 90% SMM:2-31 + " SMM.02: 94% SMM:2-32 + " SMM.13: 55% SMM:13-19 +system resources GETRLIMIT.2: 9% GETRLIMIT(2)-1 + " SMM.08: 76% SMM:8-2 + " SMM.15: 37% SMM:15-12 +system security FTPD.8C: 71% FTPD(8C)-2 + " SMM.17: 62% SMM:17-2 + " SMM.18: 11% SMM:18-1 + " SMM.18: 15% SMM:18-2 + " WRITE.2: 40% WRITE(2)-1 + " SMM.01: 31% SMM:1-21 +SYSTEM SETUP SMM.01: 36% SMM:1-24 +system size limitation[s] SMM.02: 92% SMM:2-32 +system software, procedures for recompiling and reinstalling SMM.01: 0% SMM:1-1 +system software, Recompiling and reinstalling SMM.01: 80% SMM:1-48 +system source[s] CONFIG.8: 26% CONFIG(8)-1 + " SMM.01: 22% SMM:1-16 + " SMM.01: 22% SMM:1-16 + " SMM.01: 23% SMM:1-16 + " SMM.01: 39% SMM:1-26 + " SMM.01: 50% SMM:1-32 + " SMM.01: 80% SMM:1-48 + " SMM.01: 81% SMM:1-49 + " SMM.01: 89% SMM:1-56 + " SMM.02: 8% SMM:2-4 + " SMM.02: 10% SMM:2-4 + " SMM.12A: 79% SMM:12-19 + " HIER.7: 25% HIER(7)-2 + " SMM.01: 31% SMM:1-21 +system staff ADDUSER.8: 16% ADDUSER(8)-1 + " ADDUSER.8: 19% ADDUSER(8)-1 +system statistics KG.4: 39% KG(4)-1 + " SYSTAT.1: 1% SYSTAT(1)-1 + " PSTAT.8: 0% PSTAT(8)-1 +system table[s] PSTAT.8: 2% PSTAT(8)-1 + " PSTAT.8: 91% PSTAT(8)-3 + " PSTAT.8: 92% PSTAT(8)-3 + " VHANGUP.2: 40% VHANGUP(2)-1 +system time[s] ADJTIME.2: 15% ADJTIME(2)-1 + " CSH.1: 87% CSH(1)-18 + " ETIME.3F: 63% ETIME(3F)-1 + " ETIME.3F: 74% ETIME(3F)-1 + " GETRUSAGE.2: 18% GETRUSAGE(2)-1 + " PS.1: 6% PS(1)-1 + " SA.8: 30% SA(8)-1 + " SA.8: 48% SA(8)-1 + " SA.8: 51% SA(8)-1 + " SA.8: 74% SA(8)-1 + " SH.1: 84% SH(1)-5 + " SMM.01: 79% SMM:1-48 + " SMM.01: 79% SMM:1-48 + " TIME.3F: 51% TIME(3F)-1 + " TIMES.3C: 72% TIMES(3C)-1 + " TIMES.3C: 81% TIMES(3C)-1 + " UPDATE.8: 82% UPDATE(8)-1 + " USD.04: 51% USD:4-24 + " USD.04: 52% USD:4-24 + " USD.30: 26% USD:30-3 + " VTIMES.3C: 29% VTIMES(3C)-1 + " VTIMES.3C: 49% VTIMES(3C)-1 +system utilities SMM.01: 25% SMM:1-18 + " SMM.14: 35% SMM:14-6 + " SMM.14: 88% SMM:14-13 +System V MAKE.1: 97% MAKE(1)-3 + " SMM.10: 89% SMM:10-21 + " SMM.10: 89% SMM:10-22 + " SMM.13: 20% SMM:13-8 +System V compatibility SMM.13: 5% SMM:13-3 + " SMM.12A: 77% SMM:12-18 + " KILL.2: 53% KILL(2)-1 + " SMM.09: 36% SMM:9-8 + " SMM.09: 47% SMM:9-10 + " SMM.12A: 62% SMM:12-14 + " SMM.12A: 65% SMM:12-15 +System V interrupt handling SIGINTERRUPT.3: 48% SIGINTERRUPT(3) +sys_errlist PERROR.3: 67% PERROR(3)-1 +Sys_nerr PERROR.3: 78% PERROR(3)-1 +sys_siglist PSIGNAL.3: 6% PSIGNAL(3)-1 +Sytek L-DEVICES.5: 22% L-DEVICES(5)-1 +ta command USD.15: 66% USD:15-19 + " USD.15: 66% USD:15-19 + " USD.15: 67% USD:15-19 +TAB[s] TERMCAP.5: 74% TERMCAP(5)-11 + " USD.17: 58% USD:17-26 + " USD.17: 74% USD:17-34 + " USD.24: 9% USD:24-4 + " USD.24: 54% USD:24-18 + " USD.24: 54% USD:24-18 + " USD.24: 55% USD:24-18 + " USD.24: 55% USD:24-18 + " COL.1: 73% COL(1)-1 + " USD.17: 96% USD:17-47 +tab character[s] PS1.02: 17% PS1:2-7 + " PS1.03: 56% PS1:3-7 + " PS1.16: 21% PS1:16-3 + " PS2.10: 74% PS2:10-65 + " PS2.10: 82% PS2:10-75 +tab stop[s] PS1.04: 76% PS1:4-39 + " PS1.04: 92% PS1:4-46 + " PS1.04: 92% PS1:4-46 +tab, .re Reset USD.23: 55% USD:23-7 +table, descriptor reference PS1.06: 36% PS1:6-18 + " PS1.06: 36% PS1:6-18 + " PS1.06: 36% PS1:6-18 +table[s], symbol PS1.11a: 9% PS1:11-1 + " PS1.11a: 11% PS1:11-1 + " PS1.11a: 12% PS1:11-1 + " PS1.11a: 13% PS1:11-1 + " PS1.11a: 69% PS1:11-5 +tabs, expand EXPAND.1: 6% EXPAND(1)-1 + " TIP.1C: 88% TIP(1C)-3 + " TTY.4: 36% TTY(4)-4 +tab[s], horizontal USD.25: 29% USD:25-5 +tab[s], output NROFF.1: 76% NROFF(1)-1 +tab, vertical CTYPE.3: 54% CTYPE(3)-1 + " USD.13: 7% USD:13-2 +tab character[s] SORT.1: 31% SORT(1)-1 + " USD.01: 11% USD:1-2 + " USD.15: 31% USD:15-9 + " USD.15: 78% USD:15-22 + " USD.17: 15% USD:17-7 + " USD.17: 75% USD:17-35 + " USD.17: 84% USD:17-40 +tab repetition character USD.24: 57% USD:24-18 +tab replacement character USD.25: 31% USD:25-5 + " USD.25: 31% USD:25-5 +Tab setting[s] NROFF.1: 81% NROFF(1)-1 +tab stop[s] TERMCAP.5: 78% TERMCAP(5)-11 + " TERMCAP.5: 78% TERMCAP(5)-11 + " TERMCAP.5: 78% TERMCAP(5)-11 + " TERMCAP.5: 78% TERMCAP(5)-11 + " TERMCAP.5: 79% TERMCAP(5)-11 + " TERMCAP.5: 79% TERMCAP(5)-11 + " TERMCAP.5: 80% TERMCAP(5)-11 + " TERMCAP.5: 80% TERMCAP(5)-11 + " TTY.4: 36% TTY(4)-4 + " USD.15: 30% USD:15-9 + " USD.15: 30% USD:15-9 + " USD.16: 79% USD:16-15 + " USD.17: 27% USD:17-12 + " USD.21: 9% USD:21-1 + " USD.24: 55% USD:24-18 + " USD.24: 55% USD:24-18 + " USD.24: 56% USD:24-18 + " USD.25: 29% USD:25-5 + " USD.25: 81% USD:25-12 + " USD.26: 33% USD:26-3 + " USD.27: 15% USD:27-2 +tab stops and type[s] USD.24: 56% USD:24-18 +Table[s] SMM.19: 11% SMM:19-4 + " USD.20: 51% USD:20-4 + " USD.22: 73% USD:22-13 + " USD.22: 78% USD:22-15 + " USD.23: 52% USD:23-7 + " USD.28: 0% USD:28-1 + " COLCRT.1: 32% COLCRT(1)-1 + " USD.13: 80% USD:13-13 + " USD.20: 81% USD:20-6 +table, .TH With .TS H, ends the header portion of the USD.23: 53% USD:23-7 +table[s], boxed USD.28: 10% USD:28-2 +table, center - center the USD.28: 9% USD:28-2 +table, data for the USD.28: 31% USD:28-5 +table[s], equations within USD.28: 45% USD:28-7 +table[s], formating TBL.1: 4% TBL(1)-1 + " USD.28: 0% USD:28-1 + " USD.28: 0% USD:28-1 + " USD.28: 6% USD:28-2 + " USD.28: 11% USD:28-2 + " USD.28: 19% USD:28-4 + " USD.28: 27% USD:28-4 + " USD.28: 35% USD:28-6 + " USD.28: 42% USD:28-6 + " USD.28: 50% USD:28-8 + " USD.28: 54% USD:28-8 + " USD.28: 58% USD:28-10 + " USD.28: 62% USD:28-10 + " USD.28: 67% USD:28-12 + " USD.28: 70% USD:28-12 + " USD.28: 74% USD:28-14 + " USD.28: 77% USD:28-14 + " USD.28: 83% USD:28-16 + " USD.28: 88% USD:28-16 + " USD.28: 97% USD:28-18 +table, multi-page boxed USD.28: 11% USD:28-2 +table[s], system PSTAT.8: 2% PSTAT(8)-1 + " PSTAT.8: 91% PSTAT(8)-3 + " PSTAT.8: 92% PSTAT(8)-3 + " VHANGUP.2: 40% VHANGUP(2)-1 +table, timeout CRASH.8V: 43% CRASH(8V)-2 +table[s], Troff commands within USD.28: 32% USD:28-5 +table, very long USD.20: 81% USD:20-6 +table as wide as the current line length, expand - make the USD.28: 9% USD:28-2 +table continue USD.28: 41% USD:28-6 +table end USD.28: 5% USD:28-1 +Table end, .TE USD.23: 53% USD:23-7 +table in a box, allbox - enclose each item in the USD.28: 9% USD:28-2 +table in a box, box - enclose the USD.28: 9% USD:28-2 +table in two boxe, doublebox - enclose the USD.28: 10% USD:28-2 +Table of Content[s] USD.21: 59% USD:21-2 + " USD.22: 75% USD:22-14 + " MS.7: 50% MS(7)-2 + " USD.21: 54% USD:21-2 + " USD.21: 67% USD:21-2 + " USD.22: 43% USD:22-8 +table of mounted device[s] MOUNT.8: 62% MOUNT(8)-1 +Table start USD.28: 5% USD:28-1 +Table start[s], .T USD.23: 52% USD:23-7 +table width USD.28: 48% USD:28-7 +tablet, GTCO digitizing TB.4: 88% TB(4)-1 +tablet line discipline[s] SMM.13: 9% SMM:13-4 + " SMM.13: 6% SMM:13-3 +tablet type[s] SMM.13: 26% SMM:13-10 + " SMM.13: 27% SMM:13-10 + " TB.4: 81% TB(4)-1 +tabs - set terminal tab[s] TABS.1: 10% TABS(1)-1 +tabstop USD.16: 94% USD:16-18 +TAC SMM.13: 71% SMM:13-25 + " SMM.13: 78% SMM:13-26 + " SMM.13: 78% SMM:13-26 +tac - display a file in reverse line order SMM.12A: 99% SMM:12-23 +tag[s], field USD.31: 24% USD:31-4 + " USD.31: 24% USD:31-4 + " USD.31: 25% USD:31-4 +tag, hanging USD.21: 52% USD:21-2 +tag command USD.16: 55% USD:16-10 + " USD.16: 55% USD:16-10 + " USD.16: 95% USD:16-18 + " USD.16: 4% USD:16-1 +tag command line option to JOVE USD.17: 50% USD:17-21 +tag file[s] LOOKBIB.1: 45% LOOKBIB(1)-1 + " USD.16: 95% USD:16-18 + " USD.17: 49% USD:17-21 + " USD.17: 72% USD:17-33 + " USD.17: 72% USD:17-33 + " USD.30: 16% USD:30-2 + " CTAGS.1: 1% CTAGS(1)-1 + " CTAGS.1: 4% CTAGS(1)-1 + " CTAGS.1: 7% CTAGS(1)-1 + " CTAGS.1: 10% CTAGS(1)-1 + " CTAGS.1: 18% CTAGS(1)-1 + " CTAGS.1: 68% CTAGS(1)-1 + " USD.16: 55% USD:16-11 + " USD.16: 56% USD:16-11 + " USD.17: 49% USD:17-21 + " USD.17: 49% USD:17-21 + " JOVE.N: 1% JOVE(1)-1 + " LOGGER.1: 10% LOGGER(1)-1 + " VI.1: 7% VI(1)-1 +tag name[s] USD.16: 56% USD:16-11 + " USD.16: 98% USD:16-19 + " USD.17: 43% USD:17-19 +tag-file (variable) USD.17: 95% USD:17-46 +tag[s], structure PS1.01: 51% PS1:1-16 + " PS1.01: 51% PS1:1-16 + " PS1.01: 51% PS1:1-16 + " PS1.01: 55% PS1:1-18 + " PS2.03: 13% PS2:3-3 +tags file USD.15: 66% USD:15-19 +tail SMM.12A: 49% SMM:12-11 +tail - deliver the last part of a file TAIL.1: 4% TAIL(1)-1 +talk INETD.8: 55% INETD(8)-1 + " MESG.1: 33% MESG(1)-1 + " SMM.12A: 49% SMM:12-11 +talk - talk to another user TALK.1: 2% TALK(1)-1 +talkd SMM.12A: 96% SMM:12-22 +talkd - remote user communication server TALKD.8C: 4% unknown +tall character[s] USD.24: 65% USD:24-21 +tan - trigonometric function SIN.3M: 1% SIN(3M)-1 +tandem mode TIP.1C: 41% TIP(1C)-2 + " TTY.4: 42% TTY(4)-4 + " STTY.1: 21% STTY(1)-1 +tanh - hyperbolic function SINH.3M: 10% SINH(3M)-1 +tape[s], 1600 bpi MTIO.4: 10% MTIO(4)-1 +tape[s], 6250 bpi MT.4: 15% MT(4)-1 + " MTIO.4: 11% MTIO(4)-1 +tape, 800 bpi MTIO.4: 9% MTIO(4)-1 +tape, Booting from SMM.01: 10% SMM:1-7 +tape, distribution REBOOT.8: 92% REBOOT(8)-2 + " SMM.01: 1% SMM:1-2 + " SMM.01: 3% SMM:1-3 + " SMM.01: 3% SMM:1-3 + " SMM.01: 7% SMM:1-5 + " SMM.01: 19% SMM:1-13 + " SMM.01: 23% SMM:1-17 + " SMM.01: 25% SMM:1-18 + " SMM.01: 28% SMM:1-20 + " SMM.01: 32% SMM:1-22 + " SMM.01: 78% SMM:1-47 + " SMM.01: 82% SMM:1-49 + " SMM.01: 86% SMM:1-52 + " SMM.01: 86% SMM:1-52 + " SMM.01: 86% SMM:1-53 + " SMM.01: 88% SMM:1-55 + " SMM.01: 90% SMM:1-56 + " SMM.12: 30% SMM:12-1 + " SMM.12A: 30% SMM:12-7 + " SMM.01: 85% SMM:1-52 +tape[s], dump DUMP.5: 94% DUMP(5)-2 + " DUMP.8: 24% DUMP(8)-1 + " FS.5: 57% FS(5)-2 + " RESTORE.8: 9% RESTORE(8)-1 + " RESTORE.8: 26% RESTORE(8)-1 + " RESTORE.8: 44% RESTORE(8)-2 + " RESTORE.8: 95% RESTORE(8)-3 + " SMM.01: 24% SMM:1-17 + " SMM.01: 76% SMM:1-46 +tape, incremental RESTORE.8: 14% RESTORE(8)-1 +tape[s], magnetic PS1.06: 51% PS1:6-24 + " PS1.06: 93% PS1:6-39 + " PS1.06: 94% PS1:6-39 + " PS2.01: 19% PS2:1-3 + " PS2.04: 50% PS2:4-5 + " PS2.04: 50% PS2:4-5 + " PS2.04: 51% PS2:4-5 + " PS2.05: 3% PS2:5-1 + " RMT.8C: 13% RMT(8C)-1 + " TAR.1: 3% TAR(1)-1 + " TCOPY.1: 22% TCOPY(1)-1 + " SMM.12A: 50% SMM:12-12 + " DUMP.8: 3% DUMP(8)-1 + " RRESTORE.8C: 30% RRESTORE(8C)-1 +tape, non-raw HT.4: 82% HT(4)-1 + " HT.4: 93% HT(4)-1 + " MT.4: 64% MT(4)-1 + " MT.4: 80% MT(4)-1 + " MT.4: 86% MT(4)-1 + " TM.4: 65% TM(4)-1 + " TM.4: 94% TM(4)-1 + " TS.4: 71% TS(4)-1 + " UT.4: 66% UT(4)-1 + " UT.4: 94% UT(4)-1 +tape, read an EBCDIC DD.1: 65% +tape, restore a complete dump RESTORE.8: 9% RESTORE(8)-1 +tape, restore an incremental dump RESTORE.8: 9% RESTORE(8)-1 +tape, rewind a TOPEN.3F: 59% TOPEN(3F)-1 +tape, Rewind the MT.1: 65% unknown +tape, tcopy - copy a mag TCOPY.1: 7% TCOPY(1)-1 +tape archive, tp - manipulate TP.1: 1% TP(1)-1 +tape block size RESTORE.8: 55% RESTORE(8)-2 + " SMM.12A: 91% SMM:12-21 +tape blocking TCOPY.1: 65% unknown +tape bootstrap monitor SMM.01: 11% SMM:1-7 + " SMM.01: 92% SMM:1-59 + " SMM.01: 95% SMM:1-62 + " SMM.01: 95% SMM:1-62 +tape device AUTOCONF.4: 77% AUTOCONF(4)-2 + " MT.1: 29% MT(1)-1 + " RDUMP.8C: 74% RDUMP(8C)-1 + " RRESTORE.8C: 73% RRESTORE(8C)-1 + " SMM.01: 2% SMM:1-2 +tape drive[s] AUTOCONF.4: 72% AUTOCONF(4)-1 + " AUTOCONF.4: 81% AUTOCONF(4)-2 + " HT.4: 36% HT(4)-1 + " MT.4: 26% MT(4)-1 + " SMM.01: 1% SMM:1-2 + " SMM.01: 4% SMM:1-3 + " SMM.01: 4% SMM:1-3 + " SMM.01: 11% SMM:1-8 + " TM.4: 31% TM(4)-1 + " TS.4: 36% TS(4)-1 + " UT.4: 27% UT(4)-1 + " MT.1: 15% unknown +tape drive control status register TOPEN.3F: 94% TOPEN(3F)-2 + " TOPEN.3F: 81% TOPEN(3F)-2 +tape drive interface HT.4: 15% HT(4)-1 + " MT.4: 11% MT(4)-1 + " TM.4: 12% TM(4)-1 + " TMSCP.4: 16% TMSCP(4)-1 + " TS.4: 16% TS(4)-1 + " UT.4: 12% UT(4)-1 +tape drivers SMM.13: 91% SMM:13-31 + " SMM.13: 91% SMM:13-31 + " SMM.13: 91% SMM:13-31 + " SMM.13: 94% SMM:13-32 +tape error[s] HT.4: 72% HT(4)-1 + " MT.4: 56% MT(4)-1 + " RESTORE.8: 61% RESTORE(8)-2 + " TM.4: 58% TM(4)-1 + " UT.4: 63% UT(4)-1 +tape file[s] MTIO.4: 93% MTIO(4)-2 + " TCOPY.1: 52% TCOPY(1)-1 +tape formatter[s] AUTOCONF.4: 67% AUTOCONF(4)-1 + " AUTOCONF.4: 69% AUTOCONF(4)-1 + " AUTOCONF.4: 79% AUTOCONF(4)-2 + " SMM.01: 4% SMM:1-3 + " SMM.01: 4% SMM:1-3 + " SMM.01: 7% SMM:1-5 +tape I/O, f77 TOPEN.3F: 23% TOPEN(3F)-1 +tape logical unit TOPEN.3F: 22% TOPEN(3F)-1 +tape mark[s] MTIO.4: 92% MTIO(4)-2 + " TCOPY.1: 34% TCOPY(1)-1 +Tape Mass Storage Control Protocol SMM.13: 57% SMM:13-20 + " SMM.13: 97% SMM:13-33 + " TMSCP.4: 11% TMSCP(4)-1 +tape to tape copy SMM.12A: 50% SMM:12-12 +tapemark[s] MTIO.4: 18% MTIO(4)-1 +tapes in ANSI format SMM.12A: 97% SMM:12-23 +Tar SMM.12A: 49% SMM:12-11 +tar - tape archive file format TAR.5: 1% TAR(5)-1 +tar - tape archiver TAR.1: 0% TAR(1)-1 +target directory SMM.13: 32% SMM:13-12 + " SMM.13: 32% SMM:13-12 + " SMM.14: 90% SMM:14-13 +target file[s] SMM.14: 89% SMM:14-13 + " SMM.14: 89% SMM:14-13 +target machine INTRO.2: 56% INTRO(2)-5 + " SMM.19: 2% SMM:19-2 + " SMM.19: 4% SMM:19-2 + " SMM.19: 40% SMM:19-11 + " SMM.19: 82% SMM:19-23 +target name[s] MAKE.1: 3% MAKE(1)-1 + " MAKE.1: 49% MAKE(1)-2 + " MAKE.1: 49% MAKE(1)-2 + " SMM.14: 90% SMM:14-13 +target register SMM.19: 68% SMM:19-19 + " SMM.19: 83% SMM:19-23 + " SMM.19: 83% SMM:19-23 +tb - line discipline for digitizing device[s] TB.4: 2% TB(4)-1 +TBL TBL.1: 10% TBL(1)-1 + " TBL.1: 97% TBL(1)-1 + " USD.22: 73% USD:22-13 + " USD.28: 0% USD:28-1 + " USD.28: 0% USD:28-1 + " USD.28: 0% USD:28-1 + " USD.28: 3% USD:28-1 + " USD.28: 6% USD:28-2 + " USD.28: 11% USD:28-2 + " USD.28: 19% USD:28-4 + " USD.28: 27% USD:28-4 + " USD.28: 35% USD:28-6 + " USD.28: 42% USD:28-6 + " USD.28: 50% USD:28-8 + " USD.28: 54% USD:28-8 + " USD.28: 58% USD:28-10 + " USD.28: 62% USD:28-10 + " USD.28: 67% USD:28-12 + " USD.28: 70% USD:28-12 + " USD.28: 74% USD:28-14 + " USD.28: 77% USD:28-14 + " USD.28: 83% USD:28-16 + " USD.28: 88% USD:28-16 + " USD.28: 97% USD:28-18 + " COL.1: 22% COL(1)-1 +tbl, eqn and USD.28: 44% USD:28-7 +tbl - format tables for nroff or troff TBL.1: 3% TBL(1)-1 +tbl example[s] USD.28: 50% USD:28-8 +Tbl limit[s] USD.28: 46% USD:28-7 +tbl program USD.13: 80% USD:13-13 + " USD.27: 96% USD:27-10 +tc - photoypesetter simulator TC.1: 3% TC(1)-1 +tclose - f77 tape I/O TOPEN.3F: 1% TOPEN(3F)-1 +tconc structure PS2.09: 18% PS2:9-35 + " PS2.09: 18% PS2:9-35 + " PS2.09: 18% PS2:9-35 + " PS2.09: 18% PS2:9-35 + " PS2.09: 18% PS2:9-36 + " PS2.09: 18% PS2:9-36 + " PS2.09: 53% PS2:9-93 + " PS2.09: 53% PS2:9-94 + " PS2.09: 53% PS2:9-94 + " PS2.09: 53% PS2:9-94 + " PS2.09: 53% PS2:9-94 +TCP protocol PS1.08: 9% PS1:8-4 + " PS1.08: 37% PS1:8-14 + " PS1.08: 61% PS1:8-24 + " PS1.06: 86% PS1:6-37 +TCP transmission control protocol PS1.06: 76% PS1:6-33 +TELNET protocol PS1.08: 43% PS1:8-17 +tcopy SMM.12A: 50% SMM:12-12 +tcopy - copy a mag tape TCOPY.1: 7% TCOPY(1)-1 +TCP GETHOSTBYNAME.3N: 47% GETHOSTBYNAME(3) + " GETHOSTBYNAME.3N: 51% GETHOSTBYNAME(3) + " INET.4F: 41% INET(4F)-1 + " INET.4F: 42% INET(4F)-1 + " IP.4P: 12% IP(4P)-1 + " RESOLVER.3: 44% RESOLVER(3)-2 + " SMM.01: 60% SMM:1-38 + " SMM.09: 71% SMM:9-15 + " SMM.11: 3% SMM:11-2 + " SMM.11: 56% SMM:11-8 + " SMM.11: 78% SMM:11-12 + " SMM.13: 67% SMM:13-23 + " SMM.13: 67% SMM:13-23 + " SMM.13: 69% SMM:13-24 + " SMM.13: 70% SMM:13-24 + " SMM.13: 70% SMM:13-24 + " SMM.13: 71% SMM:13-24 + " SMM.13: 76% SMM:13-26 + " SMM.13: 76% SMM:13-26 + " SMM.13: 77% SMM:13-26 + " SMM.13: 78% SMM:13-27 + " SMM.13: 78% SMM:13-27 + " SMM.13: 86% SMM:13-29 + " SMM.15: 51% SMM:15-16 + " SMM.15: 76% SMM:15-22 + " SMM.15: 90% SMM:15-25 + " UDP.4P: 33% UDP(4P)-1 + " SMM.07A: 4% SMM:07-4 + " SMM.12A: 59% SMM:12-14 + " SMM.12A: 76% SMM:12-18 +tcp - Internet Transmission Control Protocol TCP.4P: 1% TCP(4P)-1 +TCP connection[s] GETTABLE.8C: 50% GETTABLE(8C)-1 + " L_SYS.5: 51% L.SYS(5)-2 + " SMM.02: 97% SMM:2-33 + " SMM.09: 70% SMM:9-15 + " SMM.15: 51% SMM:15-16 + " RESOLVER.3: 35% RESOLVER(3)-1 +TCP connections to 4.2BSD SMM.02: 97% SMM:2-33 +TCP port[s] L_SYS.5: 44% L.SYS(5)-2 + " TCP.4P: 16% TCP(4P)-1 + " TCP.4P: 39% TCP(4P)-1 + " UDP.4P: 44% UDP(4P)-1 +TCP protocol GETSOCKOPT.2: 16% GETSOCKOPT(2)-1 + " TCP.4P: 5% TCP(4P)-1 + " TCP.4P: 18% TCP(4P)-1 +TCP/IP, UUCP on SMM.09: 42% SMM:9-9 +TCP_COMPAT_42 SMM.02: 96% SMM:2-33 +tdefine USD.27: 76% USD:27-8 +TE-16 HT.4: 3% HT(4)-1 +TEACHJOVE JOVE.N: 56% JOVE(1)-2 +TEACHJOVE - learn how to use the JOVE editor TEACHJOVE.N: 9% TEACHJOVE(1)-1 +technical documents USD.32: 5% USD:32-1 + " USD.32: 20% USD:32-4 + " USD.32: 20% USD:32-4 + " USD.32: 29% USD:32-5 + " USD.32: 52% USD:32-8 + " USD.32: 56% USD:32-8 +technical report[s] USD.31: 40% USD:31-7 + " USD.31: 40% USD:31-7 +tee SMM.12A: 50% SMM:12-12 +tee - pipe fitting TEE.1: 13% unknown +Tektronix PLOT.1G: 32% PLOT(1G)-1 + " PLOT.1G: 38% PLOT(1G)-1 + " PLOT.3F: 84% PLOT(3F)-1 + " STTY.1: 51% STTY(1)-2 + " TC.1: 20% TC(1)-1 + " TERMCAP.5: 35% TERMCAP(5)-6 + " TERMCAP.5: 47% TERMCAP(5)-8 + " TERMCAP.5: 75% TERMCAP(5)-11 + " TERMCAP.5: 86% TERMCAP(5)-12 + " USD.15: 82% USD:15-23 + " SMM.12A: 43% SMM:12-10 + " SMM.12A: 68% SMM:12-16 +Tektronix 4013 terminal PLOT.3X: 49% PLOT(3X)-1 +Tektronix 4014, tk - paginator for the TK.1: 4% TK(1)-1 +Tektronix 4014 and 4015 terminal[s] PLOT.3X: 51% PLOT(3X)-1 +telephone line[s] USD.14: 10% USD:14-4 + " USD.14: 11% USD:14-4 +telephone number[s] DN.4: 56% DN(4)-1 + " REMOTE.5: 80% REMOTE(5)-1 + " REMOTE.5: 84% REMOTE(5)-1 +telephone rates L_SYS.5: 20% L.SYS(5)-1 +TELETYPE USD.24: 19% USD:24-8 +teletype driver[s] STTY.1: 57% STTY(1)-2 + " STTY.1: 92% STTY(1)-3 + " USD.15: 79% USD:15-22 +Televideo 925/950 SYSLINE.1: 9% SYSLINE(1)-1 +Telldir DIRECTORY.3: 40% DIRECTORY(3)-1 +Telnet FTPD.8C: 44% FTPD(8C)-1 + " FTPD.8C: 45% FTPD(8C)-1 + " SMM.01: 60% SMM:1-38 + " TN3270.1: 18% unknown + " SMM.12A: 50% SMM:12-12 +telnet - user interface to the TELNET protocol TELNET.1C: 0% TELNET(1C)-1 +telnet escape character TELNET.1C: 52% TELNET(1C)-3 + " TELNET.1C: 33% TELNET(1C)-1 +TELNET protocol TELNET.1C: 0% TELNET(1C)-1 + " TELNET.1C: 92% TELNET(1C)-4 + " TELNETD.8C: 67% TELNETD(8C)-1 +telnet server TELNET.1C: 20% TELNET(1C)-1 +TELNET SYNCH sequence TELNET.1C: 84% TELNET(1C)-4 + " TELNET.1C: 34% TELNET(1C)-2 +telnetd SMM.12A: 96% SMM:12-22 +telnetd - DARPA TELNET protocol server TELNETD.8C: 2% TELNETD(8C)-1 +template, .../files/dbtmplt7 - database PS2.10: 74% PS2:10-65 +template, citation USD.31: 63% USD:31-10 + " USD.31: 66% USD:31-11 + " USD.31: 81% USD:31-13 +template[s], code SMM.19: 11% SMM:19-4 + " SMM.19: 55% SMM:19-15 + " SMM.19: 71% SMM:19-20 + " SMM.19: 83% SMM:19-23 +template, sort USD.31: 60% USD:31-10 + " USD.31: 60% USD:31-10 + " USD.31: 63% USD:31-10 +template match SMM.19: 56% SMM:19-15 + " SMM.19: 67% SMM:19-19 + " SMM.19: 74% SMM:19-21 + " SMM.19: 82% SMM:19-23 +template matching SMM.19: 59% SMM:19-17 +Template Matching Algorithm SMM.19: 62% SMM:19-18 + " SMM.19: 62% SMM:19-18 +Temporary Escape `!' USD.13: 90% USD:13-15 +Temporary indent USD.24: 42% USD:24-14 + " USD.22: 20% USD:22-4 + " USD.25: 27% USD:25-5 +TENSOR operator USD.26: 75% USD:26-6 +TERM[s] ENVIRON.7: 37% ENVIRON(7)-1 + " MH-PROFILE.N: 50% MH-PROFILE(5)-4 + " MHL.N: 18% MHL(1)-1 +temporary relation[s], purge - destroy all expired and PS2.10: 67% PS2:10-59 +TERM PS1.18: 26% PS1:18-7 +term[s], glossary of USD.04: 67% USD:4-34 +TERM, setenv TSET.1: 35% TSET(1)-2 + " USD.15: 4% USD:15-2 + " USD.15: 4% USD:15-2 +term - conventional names for terminal[s] TERM.7: 3% TERM(7)-1 +TERM environment variable[s] CSH.1: 60% CSH(1)-12 + " CSH.1: 69% CSH(1)-14 + " CSH.1: 78% CSH(1)-17 + " GETTTYENT.3: 57% GETTTYENT(3)-1 + " INIT.8: 59% INIT(8)-1 + " MSET.1: 40% MSET(1)-1 + " RLOGIND.8C: 68% RLOGIND(8C)-1 + " TERMCAP.3X: 35% TERMCAP(3X)-1 + " TSET.1: 9% TSET(1)-1 + " TSET.1: 34% TSET(1)-2 + " TSET.1: 55% TSET(1)-2 + " TSET.1: 71% TSET(1)-3 + " TSET.1: 72% TSET(1)-3 + " TSET.1: 78% TSET(1)-3 + " TSET.1: 82% TSET(1)-3 + " TSET.1: 83% TSET(1)-3 + " UL.1: 28% UL(1)-1 + " USD.16: 1% USD:16-1 + " USD.16: 2% USD:16-1 + " JOVE.N: 12% JOVE(1)-1 + " TSET.1: 34% TSET(1)-2 + " TSET.1: 71% TSET(1)-3 + " TSET.1: 72% TSET(1)-3 + " TSET.1: 78% TSET(1)-3 + " TSET.1: 81% TSET(1)-3 + " TSET.1: 83% TSET(1)-3 + " USD.15: 4% USD:15-2 + " JOVE.N: 10% JOVE(1)-1 +TERMCAP TERMCAP.5: 0% TERMCAP(5)-1 + " TERMCAP.5: 57% TERMCAP(5)-9 + " USD.16: 2% USD:16-1 + " USD.16: 2% USD:16-1 + " WINDOW.1: 15% WINDOW(1)-1 + " ENVIRON.7: 54% ENVIRON(7)-1 + " MH-PROFILE.N: 50% MH-PROFILE(5)-4 + " MHL.N: 24% MHL(1)-1 + " PLOT.3X: 88% PLOT(3X)-1 +termcap PS1.18: 1% + " PS1.18: 25% PS1:18-7 + " PS1.18: 60% PS1:18-18 +termcap - terminal capability data base TERMCAP.5: 0% TERMCAP(5)-1 +termcap capability[s] SMM.12A: 63% SMM:12-15 + " TERMCAP.5: 24% TERMCAP(5)-5 +termcap description HIER.7: 12% HIER(7)-1 + " PS1.18: 51% PS1:18-15 +Terminal[s] PS1.06: 37% PS1:6-18 + " PS1.06: 51% PS1:6-24 + " PS1.06: 88% PS1:6-38 + " PS1.06: 88% PS1:6-38 + " PS1.06: 89% PS1:6-38 + " PS1.18: 4% PS1:18-3 +termcap description TERMCAP.5: 39% TERMCAP(5)-7 + " TERMCAP.5: 75% TERMCAP(5)-11 + " TERMCAP.5: 79% TERMCAP(5)-11 +termcap entry[s] MAP3270.5: 13% MAP3270(5)-1 + " WINDOW.1: 15% WINDOW(1)-1 + " WINDOW.1: 98% WINDOW(1)-7 +TERMCAP environment variable TERMCAP.3X: 31% TERMCAP(3X)-1 + " TERMCAP.5: 32% TERMCAP(5)-6 + " TSET.1: 36% TSET(1)-2 + " USD.08: 72% USD:8-88 +termcap file ENVIRON.7: 58% ENVIRON(7)-1 + " TERMCAP.3X: 28% TERMCAP(3X)-1 + " TERMCAP.3X: 37% TERMCAP(3X)-1 + " TERMCAP.5: 22% TERMCAP(5)-5 + " TERMCAP.5: 31% TERMCAP(5)-6 +termcap file entry, example TERMCAP.5: 22% TERMCAP(5)-5 +Terminal[s] USD.01: 54% USD:1-8 +terminal, background write attempted to control SIGNAL.3C: 32% SIGNAL(3C)-1 +terminal, console AUTOCONF.4: 39% AUTOCONF(4)-1 + " LAST.1: 39% LAST(1)-1 + " SMM.01: 73% SMM:1-45 +terminal, controlling NICE.1: 37% NICE(1)-1 + " PS1.08: 46% PS1:8-18 + " PS1.08: 46% PS1:8-19 + " PS1.08: 47% PS1:8-19 + " PS1.08: 70% PS1:8-28 +terminal characteristics PS1.18: 15% PS1:18-5 + " PS1.18: 59% PS1:18-17 +terminal handler PS1.06: 89% PS1:6-38 + " PS1.06: 91% PS1:6-38 + " PS1.06: 93% PS1:6-39 + " PS1.06: 94% PS1:6-39 +Terminal hardware support PS1.06: 93% PS1:6-39 +Terminal Information PS1.18: 25% PS1:18-7 +Terminal input PS1.06: 89% PS1:6-38 + " PS1.06: 90% PS1:6-38 + " PS1.08: 68% PS1:8-27 + " PS2.04: 7% PS2:4-1 + " PS1.08: 89% PS1:8-37 + " PS1.18: 20% PS1:18-6 + " PS1.18: 20% PS1:18-6 +terminal monitor PS2.10: 21% PS2:10-22 + " PS2.10: 26% PS2:10-26 + " PS2.10: 30% PS2:10-29 + " PS2.10: 63% PS2:10-54 + " PS2.10: 65% PS2:10-56 +terminal monitor macro facility PS2.10: 1% PS2:10-3 + " PS2.10: 15% PS2:10-18 + " PS2.10: 15% PS2:10-18 +Terminal output PS1.06: 91% PS1:6-38 + " PS1.08: 62% PS1:8-25 +terminal screen PS1.18: 4% PS1:18-3 + " PS1.18: 4% PS1:18-3 + " PS1.18: 5% PS1:18-3 + " PS1.18: 7% PS1:18-4 + " PS1.18: 8% PS1:18-4 + " PS1.18: 8% PS1:18-4 + " PS1.18: 13% PS1:18-5 + " PS1.18: 41% PS1:18-11 + " PS1.18: 53% PS1:18-15 + " PS1.18: 4% PS1:18-3 +terminal type[s] PS1.06: 43% PS1:6-20 + " PS2.10: 62% PS2:10-54 + " PS2.10: 63% PS2:10-54 + " PS2.10: 81% PS2:10-73 +terminal, controlling ROUTED.8C: 54% ROUTED(8C)-2 + " SYSLOG.3: 49% SYSLOG(3)-1 + " TTY.4: 7% TTY(4)-1 + " XNSROUTED.8C: 85% XNSROUTED(8C)-1 +terminal[s], CRT EX.1: 20% EX(1)-1 + " TTY.4: 28% TTY(4)-3 + " TTY.4: 28% TTY(4)-3 + " TTY.4: 30% TTY(4)-3 + " USD.07: 69% USD:7-16 +terminal[s], Directly-linked USD.14: 10% USD:14-4 +terminal, disable a SMM.01: 53% SMM:1-33 +terminal[s], display JOVE.N: 5% JOVE(1)-1 + " USD.01: 16% USD:1-3 + " USD.08: 58% USD:8-69 + " USD.13: 8% USD:13-2 + " USD.15: 1% USD:15-1 + " VMH.N: 17% VMH(1)-1 +terminal[s], dumb USD.15: 11% USD:15-4 + " USD.15: 20% USD:15-6 + " USD.15: 22% USD:15-7 + " USD.15: 26% USD:15-8 + " USD.15: 41% USD:15-12 + " USD.15: 42% USD:15-12 + " USD.15: 42% USD:15-12 + " USD.15: 60% USD:15-17 + " USD.15: 79% USD:15-22 + " USD.15: 91% USD:15-25 + " USD.16: 90% USD:16-17 +terminal[s], Editing on slow USD.15: 42% USD:15-12 +terminal[s], graphics LIB2648.3X: 0% LIB2648(3X)-1 + " LIB2648.3X: 3% LIB2648(3X)-1 + " PLOT.1G: 67% PLOT(1G)-1 +terminal[s], hardcopy ERROR.1: 99% ERROR(1)-3 + " TERMCAP.5: 80% TERMCAP(5)-11 + " TERMCAP.5: 85% TERMCAP(5)-12 + " TERMCAP.5: 85% TERMCAP(5)-12 + " TTY.4: 28% TTY(4)-3 + " TTY.4: 28% TTY(4)-3 + " USD.15: 1% USD:15-1 + " USD.15: 74% USD:15-21 + " USD.15: 74% USD:15-21 + " USD.15: 75% USD:15-21 + " USD.15: 79% USD:15-22 +terminals, Hazeltine STTY.1: 77% STTY(1)-2 + " TERMCAP.5: 93% TERMCAP(5)-13 + " TTY.4: 40% TTY(4)-4 + " TTY.4: 89% TTY(4)-9 +terminal[s], Intelligent TERMCAP.5: 54% TERMCAP(5)-9 + " USD.15: 43% USD:15-12 + " USD.15: 43% USD:15-12 + " USD.15: 43% USD:15-12 + " USD.16: 90% USD:16-17 + " VI.1: 47% VI(1)-1 + " VI.1: 69% VI(1)-1 +terminal, lock - reserve a LOCK.1: 7% LOCK(1)-1 +terminal, physical WINDOW.1: 14% WINDOW(1)-1 + " WINDOW.1: 15% WINDOW(1)-1 + " WINDOW.1: 96% WINDOW(1)-7 +terminal[s], Pseudo PTY.4: 4% PTY(4)-1 + " PTY.4: 4% PTY(4)-1 + " PTY.4: 14% PTY(4)-1 + " PTY.4: 31% PTY(4)-1 + " PTY.4: 34% PTY(4)-1 + " PTY.4: 65% PTY(4)-2 + " PTY.4: 70% PTY(4)-2 + " PTY.4: 83% PTY(4)-2 + " PTY.4: 85% PTY(4)-2 + " RLOGIND.8C: 34% RLOGIND(8C)-1 + " RLOGIND.8C: 37% RLOGIND(8C)-1 + " RLOGIND.8C: 74% RLOGIND(8C)-1 + " SMM.01: 52% SMM:1-33 + " SMM.01: 62% SMM:1-39 + " SMM.01: 62% SMM:1-39 + " SMM.01: 62% SMM:1-39 + " SMM.01: 62% SMM:1-39 + " SMM.01: 62% SMM:1-39 + " SMM.01: 62% SMM:1-39 + " SMM.01: 62% SMM:1-39 + " SMM.02: 35% SMM:2-10 + " SMM.02: 43% SMM:2-13 +terminal, read from the CSH.1: 44% CSH(1)-9 +terminal, setting the speed GETTY.8: 46% GETTY(8)-1 +terminal, setting up your TSET.1: 2% TSET(1)-1 +terminal, sysline - display system status on status line of a SYSLINE.1: 1% SYSLINE(1)-1 +terminal[s], term - conventional names for TERM.7: 3% TERM(7)-1 +terminal, ttyname, isatty, ttyslot - find name of a TTYNAME.3: 5% TTYNAME(3)-1 +terminal[s], Upper case only USD.15: 71% USD:15-20 +terminal[s], upper case-only TTY.4: 37% TTY(4)-4 +terminal[s], window - window environment on ASCII WINDOW.1: 0% WINDOW(1)-1 +terminal, writable SMM.12A: 49% SMM:12-11 + " SMM.12A: 55% SMM:12-13 +terminal access daemon MHOOK.N: 83% MHOOK(1)-3 + " MHOOK.N: 85% MHOOK(1)-4 + " MHOOK.N: 88% MHOOK(1)-4 + " USD.08: 34% USD:8-38 + " USD.08: 34% USD:8-38 + " USD.08: 34% USD:8-38 +terminal baud rate STTY.1: 53% STTY(1)-2 +Terminal Behavior, Strange USD.01: 11% USD:1-2 +terminal bell CSH.1: 13% CSH(1)-3 + " TTY.4: 17% TTY(4)-2 +terminal capabilities ENVIRON.7: 46% ENVIRON(7)-1 + " SMM.20: 8% SMM:20-2 +terminal capability data base CLEAR.1: 80% CLEAR(1)-1 + " TERMCAP.5: 0% TERMCAP(5)-1 + " TERMCAP.3X: 17% TERMCAP(3X)-1 +terminal characteristics GETTYTAB.5: 5% GETTYTAB(5)-1 + " MORE.1: 41% MORE(1)-2 +terminal characteristic[s], setting and displaying STTY.1: 0% STTY(1)-1 +terminal dependent initialization TSET.1: 0% TSET(1)-1 +terminal description file[s] SMM.20: 1% SMM:20-2 + " SMM.20: 1% SMM:20-2 + " USD.15: 1% USD:15-1 + " TERMCAP.3X: 43% TERMCAP(3X)-1 + " TERMCAP.5: 31% TERMCAP(5)-6 + " TERMCAP.5: 32% TERMCAP(5)-6 + " TERMCAP.5: 87% TERMCAP(5)-12 + " TERMCAP.5: 88% TERMCAP(5)-12 + " TERMCAP.5: 98% TERMCAP(5)-14 +terminal device SMM.01: 51% SMM:1-33 + " SMM.01: 52% SMM:1-33 + " TEST.1: 47% TEST(1)-1 + " TTYNAM.3F: 41% TTYNAM(3F)-1 + " TTYNAM.3F: 58% TTYNAM(3F)-1 + " TTYNAM.3F: 86% TTYNAM(3F)-1 + " TTYNAME.3: 25% TTYNAME(3)-1 + " TTYNAME.3: 45% TTYNAME(3)-1 + " TTYNAME.3: 74% TTYNAME(3)-1 +terminal driver[s] GETTYTAB.5: 97% GETTYTAB(5)-3 + " SMM.13: 15% SMM:13-6 + " TERMCAP.5: 80% TERMCAP(5)-11 + " TERMCAP.5: 81% TERMCAP(5)-11 + " TTY.4: 0% TTY(4)-1 + " TTY.4: 1% TTY(4)-1 + " TTY.4: 10% TTY(4)-2 + " TTY.4: 25% TTY(4)-3 + " TTY.4: 27% TTY(4)-3 + " TTY.4: 29% TTY(4)-3 + " TTY.4: 33% TTY(4)-3 + " TTY.4: 35% TTY(4)-4 + " TTY.4: 37% TTY(4)-4 + " TTY.4: 38% TTY(4)-4 + " TTY.4: 51% TTY(4)-5 + " TTY.4: 52% TTY(4)-5 + " TTY.4: 54% TTY(4)-5 + " TTY.4: 55% TTY(4)-5 + " TTY.4: 93% TTY(4)-10 +terminal driver mode[s] TERMCAP.5: 80% TERMCAP(5)-11 + " TSET.1: 43% TSET(1)-2 + " TTY.4: 10% TTY(4)-2 +terminal file TTY.4: 4% TTY(4)-1 + " TTY.4: 5% TTY(4)-1 + " TTY.4: 5% TTY(4)-1 +terminal handler TTY.4: 25% TTY(4)-3 +terminal handling SMM.01: 39% SMM:1-26 +terminal in a funny state TSET.1: 64% TSET(1)-3 +terminal initialization string TSET.1: 59% TSET(1)-3 +terminal input CSH.1: 48% CSH(1)-9 + " TTY.4: 18% TTY(4)-2 + " TTY.4: 20% TTY(4)-3 + " TTY.4: 27% TTY(4)-3 + " USD.04: 76% USD:4-37 +terminal interface[s] TTY.4: 0% TTY(4)-1 + " TTY.4: 84% TTY(4)-9 +terminal line[s] BK.4: 25% BK(4)-1 + " GETTY.8: 22% GETTY(8)-1 + " GETTYTAB.5: 3% GETTYTAB(5)-1 + " INIT.8: 29% INIT(8)-1 + " INIT.8: 53% INIT(8)-1 + " REMOTE.5: 57% REMOTE(5)-1 + " SMM.01: 0% SMM:1-1 + " SMM.01: 27% SMM:1-19 + " SMM.01: 52% SMM:1-33 + " SMM.01: 53% SMM:1-33 + " TIP.1C: 37% TIP(1C)-2 + " TTY.4: 44% TTY(4)-4 + " TTYS.5: 49% TTYS(5)-1 +terminal line, ringing or noisy INIT.8: 84% INIT(8)-1 +terminal line discipline[s], Changes in the SMM.13: 24% SMM:13-9 +Terminal mode[s] GETTYTAB.5: 50% GETTYTAB(5)-2 + " PTY.4: 87% PTY(4)-2 + " TERMCAP.5: 45% TERMCAP(5)-8 + " TSET.1: 11% TSET(1)-1 + " SMM.12A: 40% SMM:12-9 + " GETTY.8: 2% GETTY(8)-1 +terminal multiplexor[s] DMF.4: 2% DMF(4)-1 + " SMM.01: 51% SMM:1-32 + " SMM.13: 14% SMM:13-6 + " SMM.13: 15% SMM:13-6 +terminal multiplexor[s], Software interrupts and SMM.13: 14% SMM:13-6 +terminal multiplexor handling, Changes in SMM.13: 94% SMM:13-32 +terminal name[s] FINGER.1: 9% FINGER(1)-1 + " FINGER.1: 11% FINGER(1)-1 + " SMM.01: 51% SMM:1-32 + " SMM.01: 53% SMM:1-33 + " SMM.20: 60% SMM:20-5 + " TABS.1: 38% TABS(1)-1 + " TALK.1: 31% TALK(1)-1 + " TERM.7: 9% TERM(7)-1 + " TERMCAP.3X: 21% TERMCAP(3X)-1 + " TERMCAP.3X: 28% TERMCAP(3X)-1 + " TERMCAP.5: 2% TERMCAP(5)-1 + " TERMCAP.5: 2% TERMCAP(5)-1 + " TTY.1: 14% TTY(1)-1 + " USD.04: 92% USD:4-42 + " WHO.1: 17% WHO(1)-1 + " WHO.1: 56% WHO(1)-1 + " WRITE.1: 43% WRITE(1)-1 + " SMM.12A: 86% SMM:12-20 +terminal newline USD.18: 28% USD:18-3 + " USD.18: 30% USD:18-3 + " USD.18: 82% USD:18-8 +Terminal output STTY.1: 75% STTY(1)-2 +terminal port BK.4: 38% BK(4)-1 + " INIT.8: 23% INIT(8)-1 + " TTYNAM.3F: 13% TTYNAM(3F)-1 +terminal port, ttynam, isatty - find name of a TTYNAM.3F: 8% TTYNAM(3F)-1 +terminal screen MH-PROFILE.N: 52% MH-PROFILE(5)-4 + " TERMCAP.5: 91% TERMCAP(5)-13 + " TN3270.1: 26% TN3270(1)-1 + " USD.08: 72% USD:8-88 + " USD.15: 61% USD:15-17 + " WINDOW.1: 6% WINDOW(1)-1 + " WINDOW.1: 21% WINDOW(1)-2 +terminal security SMM.12A: 49% SMM:12-11 + " SMM.12A: 55% SMM:12-13 +terminal session SCRIPT.1: 9% SCRIPT(1)-1 + " USD.04: 23% USD:4-11 +terminal session, hard-copy record of SCRIPT.1: 63% SCRIPT(1)-1 +terminal session, script - make typescript of SCRIPT.1: 6% SCRIPT(1)-1 +terminal size SMM.13: 9% SMM:13-4 + " STTY.1: 55% STTY(1)-2 + " STTY.1: 55% STTY(1)-2 + " TTY.4: 54% TTY(4)-5 +terminal state STTY.3C: 8% STTY(3C)-1 +terminal stop signal INIT.8: 69% INIT(8)-1 +terminal tabs, setting TABS.1: 14% TABS(1)-1 +terminal type[s] CLEAR.1: 52% CLEAR(1)-1 + " ENVIRON.7: 50% ENVIRON(7)-1 + " GETTTYENT.3: 27% GETTTYENT(3)-1 + " GETTYTAB.5: 77% GETTYTAB(5)-2 + " LOGIN.1: 52% LOGIN(1)-1 + " MH-PROFILE.N: 50% MH-PROFILE(5)-4 + " MSET.1: 38% MSET(1)-1 + " PLOT.1G: 26% PLOT(1G)-1 + " RLOGIN.1C: 43% RLOGIN(1C)-1 + " RLOGIN.1C: 45% RLOGIN(1C)-1 + " RLOGIND.8C: 66% RLOGIND(8C)-1 + " ROFFBIB.1: 26% ROFFBIB(1)-1 + " SMM.01: 33% SMM:1-22 + " SMM.01: 52% SMM:1-33 + " SMM.20: 4% SMM:20-2 + " SMM.20: 6% SMM:20-2 + " TELNETD.8C: 46% TELNETD(8C)-1 + " TELNETD.8C: 61% TELNETD(8C)-1 + " TERMCAP.5: 1% TERMCAP(5)-1 + " TERMCAP.5: 96% TERMCAP(5)-13 + " TSET.1: 8% TSET(1)-1 + " TSET.1: 10% TSET(1)-1 + " TSET.1: 13% TSET(1)-1 + " TSET.1: 15% TSET(1)-1 + " TSET.1: 16% TSET(1)-1 + " TSET.1: 31% TSET(1)-1 + " TSET.1: 32% TSET(1)-1 + " TSET.1: 42% TSET(1)-2 + " TSET.1: 79% TSET(1)-3 + " TTYS.5: 85% TTYS(5)-1 + " USD.08: 27% USD:8-30 + " USD.08: 72% USD:8-88 + " USD.11: 10% USD:11-2 + " USD.15: 3% USD:15-2 + " USD.16: 1% USD:16-1 + " USD.16: 95% USD:16-18 + " USD.24: 1% USD:24-2 + " USD.27: 96% USD:27-10 + " WINDOW.1: 98% WINDOW(1)-7 + " SMM.12A: 53% SMM:12-12 + " SMM.12A: 80% SMM:12-19 +Terminal usage of the shell USD.04: 2% USD:4-3 +terminal wiring SMM.01: 52% SMM:1-33 +terminals lacking lower case TTY.4: 37% TTY(4)-4 +terminate, wait, wait3 - wait for process to WAIT.2: 1% WAIT(2)-1 +terminate, wait - wait for a process to WAIT.3F: 6% WAIT(3F)-1 +terminate a process EXIT.2: 4% EXIT(2)-1 + " EXIT.3: 15% EXIT(3)-1 + " KILL.1: 3% KILL(1)-1 +terminate signal[s] CSH.1: 94% CSH(1)-20 + " CSH.1: 95% CSH(1)-20 + " KILL.1: 33% KILL(1)-1 + " NICE.1: 36% NICE(1)-1 + " SHUTDOWN.8: 58% SHUTDOWN(8)-1 + " SYSLOGD.8: 92% SYSLOGD(8)-2 + " CSH.1: 59% CSH(1)-12 +terminated child process[s] GETRUSAGE.2: 11% GETRUSAGE(2)-1 + " TIMES.3C: 27% TIMES(3C)-1 + " VTIMES.3C: 13% VTIMES(3C)-1 + " WAIT.2: 19% WAIT(2)-1 +terminated process CORE.5: 13% CORE(5)-1 + " WAIT.2: 48% WAIT(2)-1 +Terminating command[s] USD.04: 17% USD:4-8 +termination, abnormal PS1.02: 11% PS1:2-6 + " PS1.04: 27% PS1:4-15 + " PS2.10: 68% PS2:10-60 +termination, abort - abnormal ABORT.3F: 5% ABORT(3F)-1 +termination, process ABORT.3: 38% ABORT(3)-1 + " CLOSE.2: 32% CLOSE(2)-1 +termination status WAIT.2: 28% WAIT(2)-1 +termination, process PS1.06: 25% PS1:6-13 + " PS1.06: 27% PS1:6-14 + " PS2.03: 67% PS2:3-10 +terminfo TERMCAP.5: 98% TERMCAP(5)-14 +test, disk DRTEST.8: 3% DRTEST(8)-1 +test - test for various condition[s] TEST.1: 3% TEST(1)-1 +test command USD.03: 42% USD:3-10 + " USD.03: 42% USD:3-10 + " USD.03: 46% USD:3-11 +test for execute (search) permission ACCESS.2: 9% ACCESS(2)-1 +test for existence of file TEST.1: 24% TEST(1)-1 + " ACCESS.3F: 54% ACCESS(3F)-1 + " ACCESS.2: 11% ACCESS(2)-1 +test for read permission ACCESS.2: 5% ACCESS(2)-1 +test for write permission ACCESS.2: 7% ACCESS(2)-1 +test printers LPTEST.1: 39% LPTEST(1)-1 +test program[s] SMM.21: 65% SMM:21-5 +test substitution[s] USD.18: 96% USD:18-10 +Tex LPD.8: 56% LPD(8)-1 + " LPR.1: 25% LPR(1)-1 + " PRINTCAP.5: 22% PRINTCAP(5)-1 +testing, conditional PS1.17: 76% PS1:17-5 +testing interrupt handling routine[s] PS1.10: 30% PS1:10-6 +Text, data and stack PS1.06: 14% PS1:6-10 +text, adding USD.01: 26% USD:1-4 + " USD.13: 50% USD:13-9 +text, appending MAIL.1: 75% MAIL(1)-5 + " USD.14: 20% USD:14-6 +text, boxed MS.7: 22% MS(7)-1 +text, centered USD.22: 22% USD:22-4 +text, defining USD.16: 76% USD:16-14 +Text, Delayed USD.22: 42% USD:22-8 +Text, English USD.17: 24% USD:17-11 + " USD.30: 24% USD:30-3 + " USD.32: 7% USD:32-2 +text, Entering USD.14: 1% USD:14-2 + " USD.14: 16% USD:14-5 + " USD.14: 97% USD:14-23 + " USD.14: 16% USD:14-5 +text, filling of USD.17: 0% USD:17-1 +text, hints for preparing USD.22: 9% USD:22-2 +text, input PS1.04: 77% PS1:4-40 + " PS1.16: 55% PS1:16-7 + " PS1.16: 83% PS1:16-11 + " PS2.10: 16% PS2:10-19 +text, inserted USD.15: 62% USD:15-18 + " USD.15: 94% USD:15-26 + " USD.15: 94% USD:15-26 +text, killed USD.17: 18% USD:17-8 + " USD.17: 29% USD:17-13 + " USD.17: 99% USD:17-48 +text, Moving USD.12: 75% USD:12-8 + " USD.14: 51% USD:14-13 + " USD.17: 17% USD:17-8 +text, print a window of USD.16: 63% USD:16-12 +Text, Quoted USD.27: 45% USD:27-5 +text, rearranging and duplicating USD.15: 34% USD:15-10 +text, replacement M4.1: 34% M4(1)-1 + " PS1.17: 47% PS1:17-3 + " PS2.10: 16% PS2:10-19 + " PS2.10: 19% PS2:10-21 + " PS2.10: 19% PS2:10-21 + " USD.12: 91% USD:12-10 + " USD.13: 33% USD:13-6 +text, shared PS1.10: 43% PS1:10-9 +text editing PS1.04: 5% PS1:4-3 + " PS2.01: 85% PS2:1-13 +text segment[s] PS1.05: 26% PS1:5-4 + " PS1.05: 28% PS1:5-4 + " PS1.05: 42% PS1:5-6 + " PS1.05: 95% PS1:5-13 + " PS2.04: 8% PS2:4-2 + " PS2.04: 8% PS2:4-2 + " PS2.04: 10% PS2:4-2 + " PS2.04: 18% PS2:4-3 + " PS2.04: 22% PS2:4-3 +text symbol[s] PS1.05: 42% PS1:5-6 + " PS1.05: 43% PS1:5-6 + " PS1.05: 43% PS1:5-6 + " PS1.05: 44% PS1:5-6 +text[s], running SMM.13: 45% SMM:13-16 + " USD.24: 85% USD:24-28 + " USD.26: 12% USD:26-2 +text, Saving the modified USD.14: 47% USD:14-12 +text, shared EXECVE.2: 84% EXECVE(2)-2 + " LD.1: 58% LD(1)-2 +text, sticky SMM.13: 31% SMM:13-11 + " SMM.12A: 58% SMM:12-13 + " SMM.12A: 61% SMM:12-14 + " STICKY.8: 86% STICKY(8)-1 +text, viewing large sections of USD.14: 46% USD:14-12 +text, Writing USD.12: 15% USD:12-2 + " USD.14: 24% USD:14-7 +text base-line position on the page USD.24: 34% USD:24-12 +text block[s] USD.28: 26% USD:28-4 + " USD.28: 28% USD:28-5 + " USD.28: 35% USD:28-6 + " USD.28: 36% USD:28-6 + " USD.28: 36% USD:28-6 + " USD.28: 37% USD:28-6 + " USD.28: 38% USD:28-6 + " USD.28: 38% USD:28-6 +text cache SMM.13: 56% SMM:13-20 + " SMM.12A: 54% SMM:12-12 +text editing USD.12: 1% USD:12-1 + " USD.13: 1% USD:13-2 + " USD.14: 0% USD:14-1 + " USD.14: 3% USD:14-3 + " USD.14: 4% USD:14-3 + " USD.14: 5% USD:14-3 + " USD.14: 9% USD:14-3 +text editor[s] ED.1: 0% ED(1)-1 + " ED.1: 0% ED(1)-1 + " EX.1: 1% EX(1)-1 + " JOVE.N: 1% JOVE(1)-1 + " LPD.8: 28% LPD(8)-1 + " MAIL.1: 38% MAIL(1)-3 + " MAIL.1: 69% MAIL(1)-5 + " SMM.10: 12% SMM:10-4 + " USD.01: 15% USD:1-3 + " USD.01: 25% USD:1-4 + " USD.01: 26% USD:1-4 + " USD.07: 28% USD:7-8 + " USD.07: 29% USD:7-8 + " USD.07: 30% USD:7-8 + " USD.07: 30% USD:7-8 + " USD.07: 55% USD:7-13 + " USD.07: 55% USD:7-13 + " USD.07: 73% USD:7-17 + " USD.12: 2% USD:12-1 + " USD.14: 3% USD:14-3 + " USD.14: 3% USD:14-3 + " USD.14: 4% USD:14-3 + " USD.14: 5% USD:14-3 + " USD.14: 13% USD:14-4 + " USD.16: 0% USD:16-1 + " UUENCODE.1C: 77% UUENCODE(1C)-1 + " VI.1: 13% VI(1)-1 + " LEARN.1: 9% LEARN(1)-1 +text editor ex USD.14: 0% USD:14-1 +Text Filling USD.17: 27% USD:17-12 + " USD.24: 7% USD:24-3 + " USD.24: 33% USD:24-12 +text formatter[s] FMT.1: 6% FMT(1)-1 + " FMT.1: 15% FMT(1)-1 + " USD.22: 9% USD:22-2 +text formatting TROFF.1: 2% TROFF(1)-1 +text image[s] SMM.13: 23% SMM:13-9 + " SMM.13: 48% SMM:13-17 + " STICKY.8: 37% STICKY(8)-1 +Text Indentation Command[s] USD.17: 26% USD:17-12 +text input USD.15: 51% USD:15-15 + " USD.20: 13% USD:20-2 + " USD.24: 51% USD:24-17 +Text input mode USD.14: 19% USD:14-6 + " USD.14: 19% USD:14-6 + " USD.14: 19% USD:14-6 + " USD.14: 19% USD:14-6 + " USD.14: 20% USD:14-6 + " USD.14: 30% USD:14-8 + " USD.14: 69% USD:14-17 + " USD.14: 69% USD:14-17 + " USD.16: 16% USD:16-3 +text insertion mode USD.16: 17% USD:16-3 +text length on the last line output USD.24: 34% USD:24-12 +Text mode USD.17: 27% USD:17-12 + " USD.17: 36% USD:17-16 + " USD.17: 51% USD:17-22 + " USD.17: 73% USD:17-34 + " USD.17: 74% USD:17-34 +text pages SMM.13: 23% SMM:13-9 + " SMM.13: 46% SMM:13-16 + " SYSTAT.1: 35% SYSTAT(1)-2 + " SYSTAT.1: 55% SYSTAT(1)-3 +text segment[s] AS.1: 61% AS(1)-1 + " A_OUT.5: 6% A.OUT(5)-1 + " A_OUT.5: 25% A.OUT(5)-1 + " A_OUT.5: 26% A.OUT(5)-1 + " A_OUT.5: 28% A.OUT(5)-1 + " A_OUT.5: 29% A.OUT(5)-1 + " A_OUT.5: 33% A.OUT(5)-2 + " A_OUT.5: 33% A.OUT(5)-2 + " A_OUT.5: 35% A.OUT(5)-2 + " A_OUT.5: 35% A.OUT(5)-2 + " DBX.5: 19% DBX(5)-1 + " GETRUSAGE.2: 44% GETRUSAGE(2)-1 + " SMM.02: 86% SMM:2-30 + " SMM.02: 92% SMM:2-32 + " SYSTAT.1: 25% SYSTAT(1)-2 + " SIZE.1: 50% SIZE(1)-1 +text table PSTAT.8: 20% PSTAT(8)-1 + " SMM.13: 45% SMM:13-16 + " SMM.13: 48% SMM:13-17 +text-formatting USD.25: 0% USD:25-1 +Tftp SMM.12A: 51% SMM:12-12 +tftp - trivial file transfer program TFTP.1C: 1% TFTP(1C)-1 +tftpd SMM.12A: 96% SMM:12-22 +tftpd - DARPA Trivial File Transfer Protocol server TFTPD.8C: 5% TFTPD(8C)-1 +tgetent[s], tgetnum[s], tgetflag[s], tgetstr - terminal ... TERMCAP.3X: 1% TERMCAP(3X)-1 +tgoto - terminal independent operation routine[s] TERMCAP.3X: 2% TERMCAP(3X)-1 +tgoto() PS1.18: 31% PS1:18-8 +Thompson, K. PS2.01: 0% PS2:1-1 + " PS2.04: 0% + " PS2.04: 99% PS2:4-10 +Three-way Handshake PS1.08: 92% PS1:8-38 + " PS1.08: 92% PS1:8-38 + " PS1.08: 92% PS1:8-38 + " PS1.08: 93% PS1:8-38 +Tichy, Walter F. PS1.13: 0% PS1:13-1 + " PS1.13: 36% PS1:13-7 +thesaurus for diction DICTION.1: 8% DICTION(1)-1 +thesis USD.22: 68% USD:22-13 +thesis, PhD USD.22: 70% USD:22-13 + " USD.23: 65% USD:23-8 + " USD.31: 42% USD:31-7 + " USD.31: 42% USD:31-7 +thesis mode USD.21: 27% USD:21-1 + " USD.21: 36% USD:21-2 + " USD.21: 37% USD:21-2 + " USD.22: 73% USD:22-14 +thesis mode, .th Set USD.23: 59% USD:23-8 +third party copy[s] RCP.1C: 64% RCP(1C)-1 +Thompson, Ken SMM.18: 0% SMM:18-1 +Thorn USD.21: 83% USD:21-3 +Three Part Title[s] USD.24: 10% USD:24-4 + " USD.24: 71% USD:24-22 +three-part titles USD.22: 15% USD:22-3 + " USD.23: 22% USD:23-3 + " USD.24: 42% USD:24-14 +Three-way Handshake SMM.02: 99% SMM:2-33 + " SMM.02: 99% SMM:2-33 + " SMM.13: 85% SMM:13-29 +Threshold, Underflow IEEE.3M: 40% IEEE(3M)-1 +throughput rate[s] SMM.14: 0% SMM:14-2 + " SMM.14: 6% SMM:14-2 + " SMM.14: 61% SMM:14-9 + " SMM.14: 68% SMM:14-10 + " SMM.14: 73% SMM:14-11 + " SMM.14: 74% SMM:14-11 +Tichy, Walter F. CI.N: 93% CI(1)-3 + " CO.N: 91% CO(1)-3 + " MERGE.N: 78% MERGE(1)-1 + " RCS.N: 96% RCS(1)-2 + " RCSDIFF.N: 86% RCSDIFF(1)-1 + " RCSFILE.N: 95% RCSFILE(5)-3 + " RCSINTRO.N: 83% RCSINTRO(1)-1 + " RCSMERGE.N: 86% RCSMERGE(1)-1 + " RLOG.N: 88% RLOG(1)-2 + " SCCSTORCS.N: 63% SCCSTORCS(8)-1 +tick[s], clock PROFIL.2: 29% PROFIL(2)-1 + " SMM.13: 15% SMM:13-6 + " SMM.13: 15% SMM:13-6 + " SMM.13: 15% SMM:13-6 + " SMM.13: 16% SMM:13-7 + " VTIMES.3C: 63% VTIMES(3C)-1 +tilde MS.7: 94% MS(7)-3 + " USD.21: 80% USD:21-3 + " USD.23: 73% USD:23-9 + " USD.26: 33% USD:26-3 + " USD.27: 14% USD:27-2 +tilde escape[s] MAIL.1: 65% MAIL(1)-4 + " MAIL.1: 66% MAIL(1)-4 + " MAIL.1: 66% MAIL(1)-4 + " TIP.1C: 27% TIP(1C)-1 + " USD.07: 28% USD:7-8 + " USD.07: 28% USD:7-8 + " USD.07: 39% USD:7-10 + " USD.07: 62% USD:7-15 + " USD.07: 91% USD:7-23 + " USD.07: 97% USD:7-24 +Time[s] FDATE.3F: 10% FDATE(3F)-1 +time[s], access PS1.06: 48% PS1:6-23 + " PS1.06: 64% PS1:6-29 + " PS1.10: 58% PS1:10-11 + " PS2.09: 5% PS2:9-9 +time, execution PS1.03: 8% PS1:3-3 + " PS1.04: 27% PS1:4-15 + " PS1.04: 73% PS1:4-37 + " PS2.10: 27% PS2:10-26 + " PS2.10: 58% PS2:10-51 + " PS2.10: 59% PS2:10-51 +time, login PS1.06: 11% PS1:6-8 + " PS2.10: 26% PS2:10-26 + " PS2.10: 62% PS2:10-54 + " PS2.10: 74% PS2:10-64 + " PS2.10: 75% PS2:10-67 + " PS2.10: 80% PS2:10-72 + " PS2.10: 81% PS2:10-74 +time, Real PS1.06: 32% PS1:6-16 + " PS1.06: 33% PS1:6-16 +time, run PS1.02: 54% PS1:2-18 + " PS1.03: 60% PS1:3-7 + " PS1.03: 63% PS1:3-8 + " PS1.04: 61% PS1:4-31 + " PS1.04: 70% PS1:4-36 + " PS1.10: 35% PS1:10-7 + " PS2.09: 74% PS2:9-120 + " PS2.10: 59% PS2:10-51 + " PS2.10: 59% PS2:10-51 + " PS2.10: 60% PS2:10-52 + " PS2.10: 91% PS2:10-82 + " PS2.10: 91% PS2:10-82 +time and statistics function[s] PS1.06: 0% +time of last modification PS1.12: 27% PS1:12-3 +time zone PS1.06: 32% PS1:6-16 +Timer[s] PS1.06: 32% PS1:6-16 +timer[s], interval PS1.06: 25% PS1:6-13 + " PS1.06: 33% PS1:6-16 + " PS1.06: 34% PS1:6-17 +times, average seek IOSTAT.1: 53% IOSTAT(1)-1 +time[s], cpu GETRLIMIT.2: 15% GETRLIMIT(2)-1 + " GETRLIMIT.2: 43% GETRLIMIT(2)-1 + " LASTCOMM.1: 60% LASTCOMM(1)-1 + " PS.1: 6% PS(1)-1 + " TIME.1: 68% TIME(1)-1 + " USD.04: 25% USD:4-11 + " USD.04: 51% USD:4-23 + " USD.04: 51% USD:4-24 + " USD.04: 92% USD:4-42 + " VTIMES.3C: 58% VTIMES(3C)-1 + " W.1: 27% W(1)-1 + " W.1: 31% W(1)-1 + " W.1: 41% W(1)-1 + " W.1: 73% W(1)-1 +time, creation SMM.07A: 29% SMM:07-14 + " SMM.12A: 94% SMM:12-22 +time, ctime, ltime, gmtime - return system time TIME.3F: 5% TIME(3F)-1 +time, daylight savings CTIME.3: 29% CTIME(3)-1 + " CTIME.3: 54% CTIME(3)-1 + " SMM.02: 23% SMM:2-7 +time, elapsed ETIME.3F: 42% ETIME(3F)-1 + " TIME.1: 19% TIME(1)-1 + " TIME.1: 80% TIME(1)-1 + " USD.04: 51% USD:4-24 +time[s], execution ETIME.3F: 11% ETIME(3F)-1 + " GPROF.1: 16% GPROF(1)-1 + " TIME.1: 36% TIME(1)-1 + " USD.18: 17% USD:18-2 + " SMM.12A: 2% SMM:12-2 +time, ftime - get date and time TIME.3C: 3% TIME(3C)-1 +time, Greenwich mean GETTIMEOFDAY.2: 18% GETTIMEOFDAY(2) + " TIME.3C: 82% TIME(3C)-1 + " GETTIMEOFDAY.2: 63% GETTIMEOFDAY(2) + " GETTIMEOFDAY.2: 53% GETTIMEOFDAY(2) + " CTIME.3: 75% CTIME(3)-1 + " TIME.3F: 75% TIME(3F)-1 +time, idle FINGER.1: 13% FINGER(1)-1 + " FINGER.1: 18% FINGER(1)-1 + " RWHO.1C: 55% RWHO(1C)-1 + " SYSTAT.1: 43% SYSTAT(1)-2 + " SMM.12A: 54% SMM:12-13 +time, login FINGER.1: 14% FINGER(1)-1 + " GETGID.2: 52% GETGID(2)-1 + " REXECD.8C: 40% REXECD(8C)-1 + " USD.11: 85% USD:11-13 + " W.1: 40% W(1)-1 + " WHO.1: 19% WHO(1)-1 +time, network ADJTIME.2: 65% ADJTIME(2)-1 + " DATE.1: 80% DATE(1)-1 + " SMM.08: 16% SMM:8-2 + " SMM.08: 23% SMM:8-2 + " SMM.22: 5% SMM:22-2 + " SMM.22: 8% SMM:22-2 + " SMM.22: 26% SMM:22-3 + " SMM.22: 39% SMM:22-4 + " TIMED.8: 17% TIMED(8)-1 + " TIMED.8: 18% TIMED(8)-1 + " TIMED.8: 26% TIMED(8)-1 +time, posting MH-ALIAS.N: 70% MH-ALIAS(5)-2 + " USD.08: 63% USD:8-76 +time, process virtual GETITIMER.2: 54% GETITIMER(2)-1 + " GETITIMER.2: 59% GETITIMER(2)-1 +time, processor USD.30: 26% USD:30-3 + " USD.30: 26% USD:30-3 +time[s], real CSH.1: 87% CSH(1)-18 + " GETITIMER.2: 50% GETITIMER(2)-1 + " SA.8: 31% SA(8)-1 + " SA.8: 52% SA(8)-1 + " SA.8: 73% SA(8)-1 +time, retry L_SYS.5: 39% L.SYS(5)-2 + " SMM.09: 45% SMM:9-10 + " SMM.09: 68% SMM:9-15 +time, running SMM.14: 61% SMM:14-9 + " SMM.18: 41% SMM:18-3 +time, sleep ALARM.3F: 92% ALARM(3F)-1 + " SLEEP.1: 21% SLEEP(1)-1 + " SLEEP.3: 69% SLEEP(3)-1 + " SMM.13: 20% SMM:13-8 + " USLEEP.3: 49% USLEEP(3)-1 +time, socket creation SMM.15: 18% SMM:15-6 + " SMM.15: 18% SMM:15-6 + " SMM.15: 87% SMM:15-24 +time, Sort by LS.1: 22% LS(1)-1 +time[s], system ADJTIME.2: 15% ADJTIME(2)-1 + " CSH.1: 87% CSH(1)-18 + " ETIME.3F: 63% ETIME(3F)-1 + " ETIME.3F: 74% ETIME(3F)-1 + " GETRUSAGE.2: 18% GETRUSAGE(2)-1 + " PS.1: 6% PS(1)-1 + " SA.8: 30% SA(8)-1 + " SA.8: 48% SA(8)-1 + " SA.8: 51% SA(8)-1 + " SA.8: 74% SA(8)-1 + " SH.1: 84% SH(1)-5 + " SMM.01: 79% SMM:1-48 + " SMM.01: 79% SMM:1-48 + " TIME.3F: 51% TIME(3F)-1 + " TIMES.3C: 72% TIMES(3C)-1 + " TIMES.3C: 81% TIMES(3C)-1 + " UPDATE.8: 82% UPDATE(8)-1 + " USD.04: 51% USD:4-24 + " USD.04: 52% USD:4-24 + " USD.30: 26% USD:30-3 + " VTIMES.3C: 29% VTIMES(3C)-1 + " VTIMES.3C: 49% VTIMES(3C)-1 +time, user GETRUSAGE.2: 17% GETRUSAGE(2)-1 + " TIMES.3C: 69% TIMES(3C)-1 + " TIMES.3C: 76% TIMES(3C)-1 + " USD.04: 51% USD:4-24 + " USD.04: 52% USD:4-24 + " VMSTAT.1: 77% VMSTAT(1)-1 + " VTIMES.3C: 27% VTIMES(3C)-1 + " ETIME.3F: 58% ETIME(3F)-1 +time - time a command TIME.1: 5% TIME(1)-1 +time command USD.04: 51% USD:4-23 + " USD.04: 97% USD:4-44 + " CSH.1: 72% CSH(1)-16 +time daemon[s] SMM.08: 5% SMM:8-2 + " SMM.08: 6% SMM:8-2 + " SMM.08: 8% SMM:8-2 + " SMM.08: 22% SMM:8-2 + " SMM.08: 48% SMM:8-2 + " SMM.08: 48% SMM:8-2 + " SMM.08: 50% SMM:8-2 + " SMM.08: 59% SMM:8-2 + " SMM.08: 62% SMM:8-2 + " SMM.08: 64% SMM:8-2 + " SMM.08: 79% SMM:8-3 + " SMM.08: 85% SMM:8-3 + " SMM.08: 87% SMM:8-3 + " SMM.22: 4% SMM:22-2 + " SMM.22: 8% SMM:22-2 + " SMM.22: 8% SMM:22-2 + " SMM.22: 16% SMM:22-2 + " SMM.22: 22% SMM:22-2 + " SMM.22: 23% SMM:22-2 + " SMM.22: 39% SMM:22-4 + " SMM.22: 39% SMM:22-4 + " SMM.22: 53% SMM:22-5 + " SMM.22: 56% SMM:22-6 + " SMM.22: 70% SMM:22-7 + " SMM.22: 70% SMM:22-7 + " SMM.22: 77% SMM:22-8 + " SMM.22: 80% SMM:22-8 + " SMM.22: 83% SMM:22-8 + " SMM.22: 86% SMM:22-9 + " TIMED.8: 86% TIMED(8)-1 +time daemon limitation[s] SMM.08: 63% SMM:8-2 +time difference[s] SMM.08: 15% SMM:8-2 + " SMM.08: 19% SMM:8-2 + " SMM.22: 4% SMM:22-2 + " SMM.22: 6% SMM:22-2 + " SMM.22: 40% SMM:22-4 +time field SMM.09: 26% SMM:9-6 + " SMM.09: 45% SMM:9-10 + " SMM.09: 46% SMM:9-10 +time interval[s] USD.32: 97% USD:32-15 + " SMM.07A: 27% SMM:07-13 + " SMM.07A: 40% SMM:07-18 + " SMM.07A: 72% SMM:07-32 +time limit SELECT.2: 57% SELECT(2)-1 + " SELECT.2: 66% SELECT(2)-1 + " SELECT.2: 68% SELECT(2)-1 + " SMM.09: 96% SMM:9-20 +time range L_SYS.5: 28% L.SYS(5)-2 + " L_SYS.5: 29% L.SYS(5)-2 + " L_SYS.5: 31% L.SYS(5)-2 + " SMM.09: 66% SMM:9-15 + " SMM.09: 67% SMM:9-15 +time servers ADJTIME.2: 54% ADJTIME(2)-1 + " ADJTIME.2: 58% ADJTIME(2)-1 + " TIMED.8: 13% TIMED(8)-1 +time service INETD.8: 86% INETD(8)-2 +time shell variable CSH.1: 73% CSH(1)-16 + " CSH.1: 87% CSH(1)-18 +time stamp[s] SMM.16: 51% SMM:16-7 + " STAT.2: 92% STAT(2)-2 +Time Synchronization Protocol DATE.1: 57% DATE(1)-1 + " SMM.08: 7% SMM:8-2 + " SMM.22: 1% SMM:22-2 + " TIMED.8: 95% TIMED(8)-1 + " TIMEDC.8: 85% TIMEDC(8)-1 +time synchronization server SMM.12A: 4% SMM:12-2 +time the system has been up UPTIME.1: 40% UPTIME(1)-1 +time to ASCII, date and CTIME.3: 4% CTIME(3)-1 +time value[s] GETITIMER.2: 45% GETITIMER(2)-1 + " GETITIMER.2: 76% GETITIMER(2)-1 + " GETITIMER.2: 78% GETITIMER(2)-1 + " GETITIMER.2: 79% GETITIMER(2)-1 + " SELECT.2: 94% SELECT(2)-2 +time zone CTIME.3: 29% CTIME(3)-1 + " CTIME.3: 59% CTIME(3)-1 + " CTIME.3: 72% CTIME(3)-1 + " GETTIMEOFDAY.2: 20% GETTIMEOFDAY(2) + " GETTIMEOFDAY.2: 60% GETTIMEOFDAY(2) + " GETTIMEOFDAY.2: 73% GETTIMEOFDAY(2) + " SENDMAIL.8: 75% SENDMAIL(8)-3 + " TIME.3C: 78% TIME(3C)-1 + " TIME.3F: 73% TIME(3F)-1 +timed DATE.1: 41% DATE(1)-1 +timed - time server daemon TIMED.8: 1% TIMED(8)-1 +timed installation SMM.08: 79% SMM:8-3 +Timed Installation and Operation Guide SMM.08: 0% unknown +timedc SMM.22: 80% SMM:22-8 +timedc - timed control program TIMEDC.8: 3% TIMEDC(8)-1 +timeout[s], message SMM.07A: 27% SMM:07-14 + " SMM.07A: 28% SMM:07-14 +timeout[s], Read SMM.07A: 27% SMM:07-14 +timeout[s], silo DMF.4: 93% DMF(4)-1 + " DMZ.4: 89% DMZ(4)-1 + " SMM.13: 95% SMM:13-32 +timeout on read[s] SENDMAIL.8: 67% SENDMAIL(8)-2 +timeout on undelivered message[s] SENDMAIL.8: 72% SENDMAIL(8)-3 +timeout period GETSOCKOPT.2: 66% GETSOCKOPT(2)-2 + " INTRO.2: 56% INTRO(2)-5 +timeout table CRASH.8V: 43% CRASH(8V)-2 +timer routine[s] SMM.13: 78% SMM:13-27 + " SMM.15: 34% SMM:15-11 + " SMM.15: 36% SMM:15-11 +timer value GETITIMER.2: 27% GETITIMER(2)-1 +times - Bourne shell command SH.1: 0% SH(1)-1 +times - get process time[s] TIMES.3C: 4% TIMES(3C)-1 +Times Bold USD.22: 85% USD:22-16 + " USD.24: 25% USD:24-9 + " USD.24: 95% USD:24-32 +Times Italic USD.22: 85% USD:22-16 + " USD.24: 25% USD:24-9 + " USD.24: 95% USD:24-32 +Times Roman USD.22: 85% USD:22-16 + " USD.24: 25% USD:24-9 + " USD.24: 61% USD:24-20 + " USD.24: 95% USD:24-32 + " USD.25: 17% USD:25-3 +Timezone SMM.02: 4% SMM:2-2 +timeval, struct PS1.06: 32% PS1:6-16 + " PS1.06: 32% PS1:6-16 + " PS1.06: 32% PS1:6-16 + " PS1.06: 34% PS1:6-16 + " PS1.06: 34% PS1:6-16 + " PS1.06: 39% PS1:6-19 + " PS1.06: 65% PS1:6-30 + " PS1.07a: 73% PS1:7-17 +timezone, struct GETTIMEOFDAY.2: 51% GETTIMEOFDAY(2) + " PS1.06: 32% PS1:6-16 + " PS1.06: 32% PS1:6-16 + " PS1.06: 32% PS1:6-16 +TIOCGWINSZ ioctl PS1.18: 50% PS1:18-14 + " PS1.18: 60% PS1:18-17 +timing commands CSH.1: 87% CSH(1)-18 +TIOCCBRK TTY.4: 81% TTY(4)-8 + " TTY.4: 44% TTY(4)-4 +TIOCCDTR TTY.4: 45% unknown +TIOCEXCL TTY.4: 77% TTY(4)-8 +TIOCFLUSH TTY.4: 39% TTY(4)-4 + " TTY.4: 49% TTY(4)-5 +TIOCGETD ioctl TTY.4: 3% TTY(4)-1 +TIOCGETP STTY.3C: 66% STTY(3C)-1 + " TTY.4: 75% TTY(4)-8 +TIOCGPGRP GETPGRP.2: 76% GETPGRP(2)-1 + " TTY.4: 9% TTY(4)-2 +TIOCHPCL ioctl TTY.4: 47% TTY(4)-5 +TIOCNOTTY TTY.4: 7% TTY(4)-1 +TIOCOUTQ TTY.4: 83% TTY(4)-9 +TIOCPKT PTY.4: 62% PTY(4)-2 + " PTY.4: 84% PTY(4)-2 + " PTY.4: 27% PTY(4)-1 +TIOCREMOTE PTY.4: 82% PTY(4)-2 +TIOCSBRK ioctl TTY.4: 44% TTY(4)-4 +TIOCSDTR TTY.4: 45% unknown +TIOCSETD BK.4: 35% BK(4)-1 + " BK.4: 52% BK(4)-1 + " BK.4: 62% BK(4)-1 + " TB.4: 29% TB(4)-1 + " TB.4: 72% TB(4)-1 + " TTY.4: 2% TTY(4)-1 +TIOCSETN TTY.4: 20% TTY(4)-2 +TIOCSETP STTY.3C: 60% STTY(3C)-1 + " TTY.4: 76% TTY(4)-8 + " TTY.4: 76% TTY(4)-8 +TIOCSETP ioctl[s] TTY.4: 20% TTY(4)-2 +TIOCSPGRP GETPGRP.2: 77% GETPGRP(2)-1 +TIOCSPGRP ioctl TTY.4: 8% TTY(4)-1 +TIOCSTART PTY.4: 25% PTY(4)-1 +TIOCSTI ioctl TTY.4: 18% TTY(4)-2 +TIOCSTOP PTY.4: 23% PTY(4)-1 +TIOCUCNTL PTY.4: 63% PTY(4)-2 +TIP FINGERD.8C: 77% FINGERD(8C)-1 + " PHONES.5: 83% PHONES(5)-1 + " SMM.12A: 51% SMM:12-12 +tip, cu - connect to a remote system TIP.1C: 0% TIP(1C)-1 +tip.record TIP.1C: 83% TIP(1C)-3 +tiprc TIP.1C: 57% TIP(1C)-2 +Title[s] LPD.8: 43% LPD(8)-1 + " USD.22: 66% USD:22-12 + " USD.25: 51% USD:25-8 +title, bottom MS.7: 23% MS(7)-1 +title[s], chapter ME.7: 43% ME(7)-2 + " MS.7: 24% MS(7)-1 + " USD.21: 35% USD:21-2 + " USD.23: 65% USD:23-8 +title, Length of USD.24: 72% USD:24-23 +titles, note USD.11: 25% USD:11-4 + " USD.11: 56% USD:11-9 +title[s], page MS.7: 49% MS(7)-2 + " USD.20: 2% USD:20-1 + " USD.25: 81% USD:25-12 +title, section USD.22: 62% USD:22-12 + " USD.22: 64% USD:22-12 + " USD.23: 15% USD:23-2 + " USD.23: 15% USD:23-3 + " USD.23: 16% USD:23-3 + " USD.23: 20% USD:23-3 + " USD.23: 20% USD:23-3 + " USD.23: 20% USD:23-3 + " USD.25: 74% USD:25-11 +Title[s], Three Part USD.24: 10% USD:24-4 + " USD.24: 71% USD:24-22 +titles, three-part USD.22: 15% USD:22-3 + " USD.23: 22% USD:23-3 + " USD.24: 42% USD:24-14 +title length[s] USD.25: 64% USD:25-10 + " USD.25: 81% USD:25-12 + " MS.7: 75% MS(7)-3 +title page USD.22: 67% USD:22-13 + " USD.22: 67% USD:22-13 + " USD.22: 67% USD:22-13 + " USD.23: 64% USD:23-8 + " USD.23: 64% USD:23-8 + " USD.31: 29% USD:31-4 +title page, .tp Begin USD.23: 58% USD:23-8 +title-length USD.24: 71% USD:24-22 +tk - paginator for the Tektronix 4014 TK.1: 4% TK(1)-1 +TK50 MTIO.4: 77% MTIO(4)-2 + " TMSCP.4: 15% TMSCP(4)-1 +tm - TM-11/TE-10 magtape interface TM.4: 2% TM(4)-1 +TM tape[s] SMM.01: 8% SMM:1-5 +TM-03 HT.4: 3% HT(4)-1 +tm-11 TS.4: 78% TS(4)-1 +TM03 formatter MTIO.4: 3% MTIO(4)-1 +TM11 MTIO.4: 5% MTIO(4)-1 +TM78 MT.4: 2% MT(4)-1 +TM78 formatter MTIO.4: 4% MTIO(4)-1 +tmscp - DEC TMSCP magtape interface TMSCP.4: 2% TMSCP(4)-1 +tn3270 MSET.1: 19% MSET(1)-1 + " SMM.12A: 52% SMM:12-12 +tn3270 - full-screen remote login to IBM VM/CM[s] TN3270.1: 1% TN3270(1)-1 +To MH-MAIL.N: 65% MH-MAIL(5)-2 +To: USD.08: 68% USD:8-83 +toascii CTYPE.3: 11% CTYPE(3)-1 +Today's date USD.23: 70% USD:23-9 +token name[s] YACC.1: 56% YACC(1)-1 +token[s], input PS1.04: 35% PS1:4-19 + " PS1.04: 35% PS1:4-19 + " PS1.04: 76% PS1:4-39 + " PS1.15: 26% PS1:15-8 + " PS1.15: 32% PS1:15-9 + " PS1.15: 57% PS1:15-17 + " PS1.15: 59% PS1:15-17 + " PS1.15: 60% PS1:15-17 + " PS1.15: 62% PS1:15-18 + " PS1.16: 13% PS1:16-2 +token, lookahead PS1.15: 26% PS1:15-8 + " PS1.15: 27% PS1:15-8 + " PS1.15: 27% PS1:15-8 + " PS1.15: 27% PS1:15-8 + " PS1.15: 27% PS1:15-8 + " PS1.15: 28% PS1:15-8 + " PS1.15: 28% PS1:15-8 + " PS1.15: 28% PS1:15-8 + " PS1.15: 28% PS1:15-8 + " PS1.15: 30% PS1:15-8 + " PS1.15: 32% PS1:15-9 + " PS1.15: 32% PS1:15-9 + " PS1.15: 35% PS1:15-10 + " PS1.15: 35% PS1:15-10 + " PS1.15: 35% PS1:15-10 + " PS1.15: 36% PS1:15-11 + " PS1.15: 57% PS1:15-16 + " PS1.15: 57% PS1:15-16 + " PS1.15: 60% PS1:15-17 +token name[s] PS1.15: 10% PS1:15-3 + " PS1.15: 23% PS1:15-7 + " PS1.15: 23% PS1:15-7 + " PS1.15: 24% PS1:15-7 + " PS1.15: 52% PS1:15-15 + " PS1.15: 52% PS1:15-15 + " PS1.15: 56% PS1:15-16 + " PS1.15: 66% PS1:15-19 +token number[s] PS1.15: 21% PS1:15-6 + " PS1.15: 21% PS1:15-6 + " PS1.15: 23% PS1:15-7 + " PS1.15: 23% PS1:15-7 + " PS1.15: 24% PS1:15-7 + " PS1.15: 24% PS1:15-7 + " PS1.15: 24% PS1:15-7 + " PS1.15: 24% PS1:15-7 + " PS1.15: 24% PS1:15-7 + " PS1.15: 25% PS1:15-7 +tolower CTYPE.3: 11% CTYPE(3)-1 +tone dialing SMM.09: 58% SMM:9-13 + " SMM.09: 59% SMM:9-13 + " SMM.09: 59% SMM:9-13 +tool[s], debugging NS.4F: 17% NS(4F)-1 + " USD.01: 88% USD:1-13 +Tools, Software RATFOR.1: 94% RATFOR(1)-1 +topen, tclose, tread, twrite, trewin, tskipf, tstate - f77 tape I/O TOPEN.3F: 1% TOPEN(3F)-1 +topline[s] USD.07: 81% USD:7-19 +TOPS-20 DP.N: 19% DP(8)-1 + " USD.08: 76% USD:8-94 +tostop, stty CSH.1: 7% CSH(1)-2 + " USD.04: 43% USD:4-20 + " USD.04: 44% USD:4-20 +total number of processes FORK.2: 78% FORK(2)-1 + " FORK.2: 87% FORK(2)-1 +touch PS1.12: 86% PS1:12-8 +touch - update date last modified of a file TOUCH.1: 9% unknown +touch command USD.03: 80% USD:3-20 +touchline() PS1.18: 20% PS1:18-6 +touchline(win, y, startx, endx) PS1.18: 55% PS1:18-16 +touchoverlap() PS1.18: 20% PS1:18-6 +touchoverlap(win1, win2) PS1.18: 56% PS1:18-16 +touchwin() PS1.18: 20% PS1:18-6 +touchwin(win) PS1.18: 56% PS1:18-16 +toupper CTYPE.3: 10% CTYPE(3)-1 +Tour Through the Portable C Compiler SMM.19: 0% unknown +TP MAN.7: 57% MAN(7)-1 + " MAN.7: 91% MAN(7)-2 + " SMM.12A: 52% SMM:12-12 +tp - DEC/mag tape format[s] TP.5: 3% TP(5)-1 +tp - manipulate tape archive TP.1: 1% TP(1)-1 +tputs - terminal independent operation routine[s] TERMCAP.3X: 2% TERMCAP(3X)-1 +TR[s] PS.1: 47% PS(1)-2 + " SMM.01: 4% SMM:1-3 + " SMM.12A: 52% SMM:12-12 +tr - translate character[s] TR.1: 3% TR(1)-1 +trace[s], stack CRASH.8V: 93% CRASH(8V)-3 + " DBX.1: 71% DBX(1)-5 +trace, trsp - transliterate sequenced packet protocol TRSP.8C: 2% TRSP(8c)-1 +trace bit EXECL.3: 47% EXECL(3)-1 +trace fields SMM.07A: 79% SMM:07-36 + " SMM.07A: 83% SMM:07-37 +trace package LISP.1: 43% LISP(1)-1 +trace process PTRACE.2: 1% PTRACE(2)-1 +trace records TRPT.8C: 17% TRPT(8C)-1 + " TRPT.8C: 47% TRPT(8C)-1 + " TRPT.8C: 72% TRPT(8C)-1 + " TRSP.8C: 19% TRSP(8c)-1 + " TRSP.8C: 41% TRSP(8c)-1 + " TRSP.8C: 70% TRSP(8c)-1 +trace trap CRASH.8V: 65% CRASH(8V)-2 + " SIGNAL.3C: 21% unknown +trace[s], stack PS1.10: 27% PS1:10-6 + " PS1.11a: 28% PS1:11-2 + " PS1.18: 32% PS1:18-8 +Trace Information PS2.07: 68% PS2:7-30 + " PS2.09: 70% PS2:9-116 + " PS2.09: 70% PS2:9-116 + " PS2.09: 70% PS2:9-116 + " PS2.09: 70% PS2:9-116 + " PS2.09: 70% PS2:9-116 + " PS2.09: 70% PS2:9-116 + " PS2.09: 71% PS2:9-116 +trace package PS2.07: 34% PS2:7-15 + " PS2.07: 42% PS2:7-19 + " PS2.09: 2% PS2:9-4 + " PS2.09: 70% PS2:9-116 + " PS2.09: 71% PS2:9-116 + " PS2.09: 72% PS2:9-119 + " PS2.09: 72% PS2:9-119 +traceback, procedure DBX.1: 21% DBX(1)-2 +Tracing Commands DBX.1: 13% DBX(1)-2 +tracing information DBX.1: 26% DBX(1)-2 + " DBX.1: 27% DBX(1)-2 + " PDX.1: 33% PDX(1)-1 + " PS1.11a: 79% PS1:11-6 + " SMM.08: 84% SMM:8-3 +traffic, mail SMM.02: 43% SMM:2-13 + " SMM.07A: 10% SMM:07-7 +trailer encapsulation[s] ARP.4P: 70% ARP(4P)-2 + " ARP.4P: 91% ARP(4P)-2 + " ARP.8C: 77% ARP(8C)-1 + " IFCONFIG.8C: 48% IFCONFIG(8C)-1 + " SMM.13: 79% SMM:13-27 + " SMM.13: 80% SMM:13-27 + " SMM.13: 88% SMM:13-30 + " SMM.15: 38% SMM:15-12 + " SMM.15: 38% SMM:15-12 + " SMM.15: 94% SMM:15-26 + " SMM.15: 95% SMM:15-26 + " VV.4: 94% VV(4)-1 +trailer packets ARP.4P: 46% ARP(4P)-1 + " ARP.4P: 78% ARP(4P)-2 + " SMM.13: 80% SMM:13-27 + " VV.4: 88% VV(4)-1 +Trailer protocol[s] SMM.15: 38% SMM:15-12 + " SMM.15: 44% SMM:15-14 + " SMM.15: 92% SMM:15-26 + " SMM.15: 94% SMM:15-26 + " SMM.15: 94% SMM:15-26 + " SMM.15: 95% SMM:15-26 + " SMM.15: 96% SMM:15-26 +trailer protocol header SMM.15: 94% SMM:15-26 + " SMM.15: 94% SMM:15-26 + " SMM.15: 95% SMM:15-26 + " SMM.15: 95% SMM:15-26 +trailing blanks AR.5: 92% AR(5)-1 + " DD.1: 56% DD(1)-1 + " PS1.02: 79% PS1:2-26 + " PS1.04: 63% PS1:4-32 + " PS1.04: 96% PS1:4-48 + " PS2.04: 75% PS2:4-7 + " PS2.10: 23% PS2:10-23 + " PS2.10: 45% PS2:10-38 +Trailing comment[s] PS1.04: 76% PS1:4-39 + " PS1.04: 76% PS1:4-39 + " PS1.04: 77% PS1:4-39 + " PS2.06: 13% PS2:6-6 +trailing blanks USD.29: 61% USD:29-6 + " DIFF.1: 76% DIFF(1)-2 +trailing characters USD.31: 76% USD:31-12 +trampoline code SIGRETURN.2: 48% SIGRETURN(2)-1 +transfer table[s] PS2.09: 26% PS2:9-51 + " PS2.09: 45% PS2:9-80 + " PS2.09: 46% PS2:9-82 + " PS2.09: 46% PS2:9-82 + " PS2.09: 46% PS2:9-82 + " PS2.09: 70% PS2:9-116 + " PS2.09: 78% PS2:9-128 + " PS2.09: 78% PS2:9-128 + " PS2.09: 78% PS2:9-128 + " PS2.09: 79% PS2:9-128 + " PS2.09: 79% PS2:9-128 + " PS2.09: 79% PS2:9-128 +transfer table entry[s] PS2.09: 46% PS2:9-82 + " PS2.09: 79% PS2:9-128 + " PS2.09: 79% PS2:9-128 +transfer[s], dma DH.4: 68% DH(4)-1 + " DHU.4: 54% DHU(4)-1 + " DMF.4: 67% DMF(4)-1 + " DMZ.4: 60% DMZ(4)-1 + " EN.4: 10% EN(4)-1 +transfer command[s] SMM.10: 91% SMM:10-23 + " SMM.10: 96% SMM:10-24 + " SMM.10: 98% SMM:10-24 +transfer files to and from a remote machine TFTP.1C: 8% TFTP(1C)-1 +transfer rate[s] IOSTAT.1: 50% IOSTAT(1)-1 + " SMM.09: 39% SMM:9-9 + " SMM.14: 15% SMM:14-3 + " SMM.14: 37% SMM:14-6 + " SMM.14: 61% SMM:14-9 + " SMM.14: 62% SMM:14-9 +transferring files FTP.1C: 52% FTP(1C)-4 + " UUCICO.8C: 5% UUCICO(8C)-1 + " SMM.12A: 97% SMM:12-23 +transient error[s] SMM.07A: 86% SMM:07-38 + " SMM.12A: 65% SMM:12-15 +transition[s], carrier SMM.13: 95% SMM:13-32 + " STTY.1: 85% STTY(1)-3 +translation[s], character TR.1: 3% TR(1)-1 + " USD.24: 9% USD:24-4 + " USD.24: 57% USD:24-19 +translation, filename character FTP.1C: 45% FTP(1C)-4 +translation[s], name SMM.13: 30% SMM:13-11 + " SMM.13: 30% SMM:13-11 + " SYSTAT.1: 44% SYSTAT(1)-2 +translator, Pascal PS1.04: 11% PS1:4-7 + " PS1.04: 40% PS1:4-21 + " PS1.04: 41% PS1:4-22 + " PS1.04: 45% PS1:4-24 +Translator panic[s] PS1.04: 47% PS1:4-25 +translit(s, f, t) PS1.17: 86% PS1:17-5 +transliterate M4.1: 84% CSH(1)-12 +transmit a message SEND.2: 17% SEND(2)-1 +Transparent throughput USD.24: 62% USD:24-20 +transport layer INET.4F: 7% INET(4F)-1 + " INTRO.4N: 52% INTRO(4N)-2 + " NS.4F: 10% NS(4F)-1 + " SMM.15: 4% SMM:15-3 + " SMM.15: 5% SMM:15-3 +transport service USD.08: 61% USD:8-73 + " WHOM.N: 85% WHOM(1)-1 +transport system CONFLICT.N: 17% CONFLICT(8)-1 + " MH-MAIL.N: 74% MH-MAIL(5)-2 + " SEND.N: 26% SEND(1)-1 + " SEND.N: 33% SEND(1)-1 + " USD.08: 53% USD:8-64 + " USD.08: 53% USD:8-64 + " USD.08: 54% USD:8-64 +transpose a two dimensional matrix PS1.02: 38% PS1:2-13 +transpose two line[s] USD.17: 30% USD:17-14 +transpose-characters (C-T) USD.17: 95% USD:17-46 +transposing two character[s] USD.17: 30% USD:17-14 +trap USD.24: 83% USD:24-28 +trap, diversion USD.24: 32% USD:24-11 + " USD.24: 46% USD:24-15 + " USD.24: 47% USD:24-16 + " USD.24: 47% USD:24-16 + " USD.24: 51% USD:24-17 + " USD.24: 51% USD:24-17 + " USD.24: 51% USD:24-17 +trap, footer USD.24: 84% USD:24-28 + " USD.24: 92% USD:24-30 + " USD.24: 92% USD:24-30 + " USD.24: 93% USD:24-31 + " USD.24: 93% USD:24-31 +trap, Install a USD.24: 50% USD:24-17 +trap, Install a diversion USD.24: 51% USD:24-17 +trap, trace CRASH.8V: 65% CRASH(8V)-2 + " SIGNAL.3C: 21% unknown +trap - Bourne shell command SH.1: 0% SH(1)-1 +Trap command[s] SH.1: 85% SH(1)-5 + " USD.03: 77% USD:3-19 + " USD.03: 79% USD:3-19 + " USD.03: 80% USD:3-20 + " USD.03: 82% USD:3-20 +trap position USD.24: 32% USD:24-11 + " USD.24: 40% USD:24-13 + " USD.24: 47% USD:24-16 + " USD.24: 48% USD:24-16 + " USD.24: 48% USD:24-16 + " USD.24: 51% USD:24-17 + " USD.24: 86% USD:24-28 +traper - trap arithmetic error[s] TRAPER.3F: 5% TRAPER(3F)-1 +trapov - trap and repair floating point overflow TRAPOV.3F: 3% TRAPOV(3F)-1 +trapping specified signal[s] PS1.11a: 81% PS1:11-6 +traps, page USD.24: 47% USD:24-16 +tread - f77 tape I/O TOPEN.3F: 1% TOPEN(3F)-1 +tree, directory SMM.12A: 13% SMM:12-4 + " SMM.12A: 13% SMM:12-4 +tree[s], expression PS1.09: 61% PS1:9-7 + " PS2.06: 85% PS2:6-30 +Tree, Walking a PS2.06: 84% PS2:6-30 +tree[s], expression SMM.19: 8% SMM:19-3 + " SMM.19: 9% SMM:19-3 + " SMM.19: 10% SMM:19-4 + " SMM.19: 10% SMM:19-4 + " SMM.19: 11% SMM:19-4 + " SMM.19: 11% SMM:19-4 + " SMM.19: 15% SMM:19-5 + " SMM.19: 15% SMM:19-5 + " SMM.19: 28% SMM:19-8 + " SMM.19: 36% SMM:19-10 + " SMM.19: 37% SMM:19-11 + " SMM.19: 48% SMM:19-14 + " SMM.19: 48% SMM:19-14 + " SMM.19: 50% SMM:19-14 + " SMM.19: 50% SMM:19-14 + " SMM.19: 51% SMM:19-14 + " SMM.19: 54% SMM:19-15 + " SMM.19: 57% SMM:19-16 + " SMM.19: 68% SMM:19-19 + " SMM.19: 82% SMM:19-23 + " SMM.19: 92% SMM:19-26 +tree[s], expression parse SMM.19: 6% SMM:19-3 +tree, revision RCSFILE.N: 88% RCSFILE(5)-2 +tree building SMM.19: 28% SMM:19-8 +tree node[s] SMM.19: 15% SMM:19-5 + " SMM.19: 45% SMM:19-13 +tree structure USD.04: 94% USD:4-43 +trek - trekkie game TREK.6: 3% TREK(6)-1 +trewin - f77 tape I/O TOPEN.3F: 2% TOPEN(3F)-1 +trigonometric function[s] SIN.3M: 2% SIN(3M)-1 +Trivial File Transfer Protocol TFTP.1C: 6% TFTP(1C)-1 + " TFTPD.8C: 18% TFTPD(8C)-1 +trman SMM.12A: 52% SMM:12-12 +TROFF TROFF.1: 37% TROFF(1)-1 + " USD.20: 0% USD:20-1 + " USD.22: 25% USD:22-5 + " USD.22: 85% USD:22-16 + " USD.22: 90% USD:22-17 + " USD.23: 63% USD:23-8 + " USD.26: 12% USD:26-2 + " USD.27: 7% USD:27-1 + " USD.27: 7% USD:27-1 + " USD.27: 8% USD:27-1 + " USD.27: 94% USD:27-10 +troff, device independent LPR.1: 23% LPR(1)-1 + " PRINTCAP.5: 36% PRINTCAP(5)-1 +troff, device-independent USD.23: 77% USD:23-11 + " USD.25: 2% USD:25-1 + " USD.24: 0% USD:24-2 +troff, fonts for HIER.7: 55% HIER(7)-4 +troff, macro packages for INTRO.7: 35% INTRO(7)-1 +troff, macros for HIER.7: 54% HIER(7)-4 +troff, nroff - text formatting and typesetting TROFF.1: 1% TROFF(1)-1 +troff -m[s] MS.7: 1% MS(7)-1 + " USD.27: 94% USD:27-10 + " USD.20: 77% USD:20-6 +Troff and Nroff, Using the -ms Macros with USD.20: 0% USD:20-1 +troff command[s] USD.20: 5% USD:20-1 +Troff commands within table[s] USD.28: 32% USD:28-5 +troff comment USD.31: 18% USD:31-3 +TROFF default pointsiz[s] USD.24: 38% USD:24-13 +troff interpreter DEROFF.1: 86% +troff macro definition[s] ME.7: 4% ME(7)-1 + " MS.7: 2% MS(7)-1 + " USD.31: 46% USD:31-8 + " USD.24: 45% USD:24-15 +troff naming conventions for character[s] USD.24: 96% USD:24-33 +Troff number register[s] USD.28: 47% USD:28-7 +troff number register[s], list of USD.24: 15% USD:24-7 +troff requests ME.7: 9% ME(7)-1 + " MS.7: 7% MS(7)-1 + " USD.28: 40% USD:28-6 +troff request crossreference USD.24: 12% USD:24-5 +TROFF Tutorial USD.25: 0% USD:25-1 + " USD.25: 0% USD:25-1 + " USD.25: 5% USD:25-2 + " USD.25: 11% USD:25-2 + " USD.25: 19% USD:25-4 + " USD.25: 25% USD:25-4 + " USD.25: 33% USD:25-6 + " USD.25: 40% USD:25-6 + " USD.25: 47% USD:25-8 + " USD.25: 54% USD:25-8 + " USD.25: 63% USD:25-10 + " USD.25: 71% USD:25-10 + " USD.25: 78% USD:25-12 + " USD.25: 85% USD:25-12 + " USD.25: 91% USD:25-14 +troff tutorial example[s] USD.24: 82% USD:24-28 +troff width table for a font VWIDTH.1: 4% VWIDTH(1)-1 +trojan horse[s] SMM.12A: 32% SMM:12-7 +troubleshooting line printer problem[s] SMM.06: 76% SMM:6-6 +trpfpe[s], fpecnt - trap and repair floating point fault TRPFPE.3F: 3% TRPFPE(3F)-1 +trpt SMM.01: 84% SMM:1-50 + " SMM.12A: 96% SMM:12-22 +trpt - transliterate protocol trace TRPT.8C: 2% TRPT(8C)-1 +trsp - transliterate sequenced packet protocol trace TRSP.8C: 2% TRSP(8c)-1 +true - provide truth values FALSE.1: 11% FALSE(1)-1 +truncate - truncate a file to a specified length TRUNCATE.2: 3% TRUNCATE(2)-1 +truncate(path, length) PS1.06: 69% PS1:6-31 +truncating file[s] FOPEN.3S: 36% FOPEN(3S)-1 + " OPEN.2: 22% OPEN(2)-1 + " TRUNCATE.2: 3% TRUNCATE(2)-1 +truncation, open with PS1.06: 59% PS1:6-28 +trusted host[s] RLOGIND.8C: 10% RLOGIND(8C)-1 + " RSHD.8C: 7% RSHD(8C)-1 + " SMM.01: 70% SMM:1-42 +trusted user[s] SMM.07A: 40% SMM:07-19 +truth value[s] FALSE.1: 14% FALSE(1)-1 + " TRUE.1: 15% TRUE(1)-1 +ts - TS-11 magtape interface TS.4: 3% TS(4)-1 +TS tape[s] SMM.01: 8% SMM:1-5 +TS11 MTIO.4: 13% MTIO(4)-1 +TS11 formatter MTIO.4: 5% MTIO(4)-1 +tset CSH.1: 1% CSH(1)-1 + " SMM.12A: 52% SMM:12-12 +tset - terminal dependent initialization TSET.1: 0% TSET(1)-1 +tset command TERMCAP.5: 79% TERMCAP(5)-11 + " USD.04: 4% USD:4-3 + " TERMCAP.5: 76% TERMCAP(5)-11 + " TERMCAP.5: 80% TERMCAP(5)-11 + " USD.04: 97% USD:4-44 + " USD.15: 4% USD:15-2 +tskipf - f77 tape I/O TOPEN.3F: 2% TOPEN(3F)-1 +tsort LORDER.1: 40% LORDER(1)-1 +tsort - topological sort TSORT.1: 6% unknown +TSP message, structure of a SMM.22: 19% SMM:22-2 +tstate - f77 tape I/O TOPEN.3F: 2% TOPEN(3F)-1 +TTY USD.04: 98% USD:4-44 + " SMM.12A: 76% SMM:12-18 +tstp() PS1.18: 60% PS1:18-17 +tty - general terminal interface TTY.4: 0% TTY(4)-1 +tty - get terminal name TTY.1: 12% TTY(1)-1 +tty driver[s] BK.4: 8% BK(4)-1 + " CSH.1: 0% CSH(1)-1 + " CSH.1: 0% CSH(1)-1 + " CSH.1: 1% CSH(1)-1 + " GETTYTAB.5: 61% GETTYTAB(5)-2 + " TTY.4: 2% TTY(4)-1 +tty group ID INTRO.2: 65% INTRO(2)-5 +tty line GETTTYENT.3: 54% GETTTYENT(3)-1 + " GETTTYENT.3: 61% GETTTYENT(3)-1 + " GETTY.8: 7% GETTY(8)-1 + " GETTY.8: 18% GETTY(8)-1 + " SLATTACH.8C: 19% SLATTACH(8C)-1 + " SMM.06: 39% SMM:6-3 + " TTYS.5: 42% TTYS(5)-1 +tty mode flags GETTYTAB.5: 22% GETTYTAB(5)-1 + " GETTYTAB.5: 22% GETTYTAB(5)-1 + " GETTYTAB.5: 23% GETTYTAB(5)-1 +tty modes PS1.18: 22% PS1:18-6 + " PS1.18: 26% PS1:18-7 + " PS1.18: 45% PS1:18-13 +tty name[s] GETTYTAB.5: 68% GETTYTAB(5)-2 + " SMM.01: 53% SMM:1-33 +tty operations FCNTL.2: 97% FCNTL(2)-2 +tty stats PS1.18: 58% PS1:18-17 +tty state PS1.18: 60% PS1:18-17 + " PS1.18: 60% PS1:18-17 +tty structure SMM.13: 24% SMM:13-9 + " SMM.13: 25% SMM:13-10 +ttyent, struct GETTTYENT.3: 21% GETTTYENT(3)-1 +ttynam, isatty - find name of a terminal port TTYNAM.3F: 8% TTYNAM(3F)-1 +ttyname, isatty, ttyslot - find name of a terminal TTYNAME.3: 5% TTYNAME(3)-1 +ttys - terminal initialization data TTYS.5: 1% TTYS(5)-1 +ttys file GETTTYENT.3: 84% GETTTYENT(3)-2 + " INIT.8: 55% INIT(8)-1 + " SMM.12A: 77% SMM:12-18 + " SMM.12A: 80% SMM:12-19 +ttyslot SMM.12A: 72% SMM:12-17 +ttyslot - find name of a terminal TTYNAME.3: 6% TTYNAME(3)-1 +tu - VAX-11/730 and VAX-11/750 TU58 console cassette interface TU.4: 1% TU(4)-1 +TU tape[s] SMM.01: 8% SMM:1-5 +TU-77 HT.4: 4% HT(4)-1 +TU-78 MT.4: 3% MT(4)-1 +TU45 MTIO.4: 70% MTIO(4)-2 + " MTIO.4: 6% MTIO(4)-1 +TU58 ARFF.8V: 70% ARFF(8V)-1 + " REBOOT.8: 60% REBOOT(8)-2 + " TU.4: 19% TU(4)-1 + " UU.4: 23% UU(4)-1 +TU58 cassette[s] SMM.01: 13% SMM:1-9 + " TU.4: 11% TU(4)-1 + " UU.4: 13% UU(4)-1 +TU58 console cassette, VAX 11/730 and 11/750 TU.4: 7% TU(4)-1 +TU81 MTIO.4: 77% MTIO(4)-2 + " SMM.13: 1% SMM:13-2 + " SMM.13: 97% SMM:13-33 + " TMSCP.4: 15% TMSCP(4)-1 +Tuck, Richard ARFF.8V: 96% +tunef[s] SMM.12A: 96% SMM:12-23 +tunefs - tune up an existing file system TUNEFS.8: 1% TUNEFS(8)-1 +Tuthill, Bill ADDBIB.1: 97% ADDBIB(1)-2 + " SORTBIB.1: 93% SORTBIB(1)-1 + " USD.21: 0% USD:21-1 + " USD.29: 0% USD:29-1 +tuples, duplicate PS2.10: 25% PS2:10-24 + " PS2.10: 25% PS2:10-25 + " PS2.10: 49% PS2:10-42 +Tutorial, Advanced 4.3BSD IPC PS1.08: 1% PS1:8-2 + " PS1.08: 3% PS1:8-2 + " PS1.08: 8% PS1:8-4 + " PS1.08: 11% PS1:8-4 + " PS1.08: 14% PS1:8-6 + " PS1.08: 16% PS1:8-6 + " PS1.08: 20% PS1:8-8 + " PS1.08: 23% PS1:8-8 + " PS1.08: 27% PS1:8-10 + " PS1.08: 29% PS1:8-10 + " PS1.08: 33% PS1:8-12 + " PS1.08: 34% PS1:8-12 + " PS1.08: 36% PS1:8-14 + " PS1.08: 38% PS1:8-14 + " PS1.08: 41% PS1:8-16 + " PS1.08: 42% PS1:8-16 + " PS1.08: 45% PS1:8-18 + " PS1.08: 46% PS1:8-18 + " PS1.08: 48% PS1:8-20 + " PS1.08: 51% PS1:8-20 + " PS1.08: 54% PS1:8-22 + " PS1.08: 56% PS1:8-22 + " PS1.08: 58% PS1:8-24 + " PS1.08: 62% PS1:8-24 + " PS1.08: 63% PS1:8-26 + " PS1.08: 66% PS1:8-26 + " PS1.08: 69% PS1:8-28 + " PS1.08: 71% PS1:8-28 + " PS1.08: 72% PS1:8-30 + " PS1.08: 75% PS1:8-30 + " PS1.08: 78% PS1:8-32 + " PS1.08: 80% PS1:8-32 + " PS1.08: 82% PS1:8-34 + " PS1.08: 84% PS1:8-34 + " PS1.08: 87% PS1:8-36 + " PS1.08: 89% PS1:8-36 + " PS1.08: 90% PS1:8-38 + " PS1.08: 93% PS1:8-38 + " PS1.08: 94% PS1:8-40 + " PS1.08: 96% PS1:8-40 +Twinkle PS1.18: 76% PS1:18-22 + " PS1.18: 88% PS1:18-27 +tutorial, interactive JOVE.N: 92% JOVE(1)-3 +tutorial, mh USD.08: 5% USD:8-4 +Tutorial, TROFF USD.25: 0% USD:25-1 + " USD.25: 0% USD:25-1 + " USD.25: 5% USD:25-2 + " USD.25: 11% USD:25-2 + " USD.25: 19% USD:25-4 + " USD.25: 25% USD:25-4 + " USD.25: 33% USD:25-6 + " USD.25: 40% USD:25-6 + " USD.25: 47% USD:25-8 + " USD.25: 54% USD:25-8 + " USD.25: 63% USD:25-10 + " USD.25: 71% USD:25-10 + " USD.25: 78% USD:25-12 + " USD.25: 85% USD:25-12 + " USD.25: 91% USD:25-14 +tutorial examples USD.24: 48% USD:24-16 + " USD.24: 82% USD:24-28 +Tutorial Introduction to the UNIX Text Editor USD.12: 0% USD:12-1 +two-column format USD.20: 2% USD:20-1 +two-column output MS.7: 4% MS(7)-1 +twrite - f77 tape I/O TOPEN.3F: 2% TOPEN(3F)-1 +TYPE[s] GETSOCKOPT.2: 46% GETSOCKOPT(2)-1 +type[s], arithmetic PS1.01: 10% PS1:1-4 + " PS1.01: 26% PS1:1-8 + " PS1.01: 56% PS1:1-18 + " PS2.06: 28% PS2:6-11 + " PS2.06: 29% PS2:6-11 + " PS2.06: 31% PS2:6-11 +type[s], complex SMM.19: 90% SMM:19-25 +type, default F77.1: 49% F77(1)-2 + " FTP.1C: 7% FTP(1C)-1 + " FTP.1C: 68% FTP(1C)-5 +type, file FILE.1: 14% FILE(1)-1 + " RESTORE.8: 60% RESTORE(8)-2 +type, file transfer FTP.1C: 7% FTP(1C)-1 + " FTP.1C: 8% FTP(1C)-1 + " FTP.1C: 67% FTP(1C)-5 + " FTP.1C: 68% FTP(1C)-5 +type[s], data PS1.01: 59% PS1:1-19 + " PS1.02: 12% PS1:2-6 + " PS1.03: 10% PS1:3-3 + " PS1.05: 40% PS1:5-6 + " PS1.05: 68% PS1:5-10 + " PS2.06: 30% PS2:6-11 + " PS2.09: 0% PS2:9-3 + " PS2.09: 2% PS2:9-4 + " PS2.09: 42% PS2:9-76 + " PS2.09: 43% PS2:9-78 + " PS2.09: 43% PS2:9-78 + " PS2.09: 45% PS2:9-80 + " PS2.09: 63% PS2:9-108 + " PS2.10: 35% PS2:10-32 +type, datastream PS1.08: 87% PS1:8-36 + " PS1.08: 87% PS1:8-36 + " PS1.08: 87% PS1:8-36 + " PS1.08: 92% PS1:8-38 + " PS1.08: 94% PS1:8-39 +type[s], descriptor PS1.06: 54% PS1:6-25 + " PS1.06: 54% PS1:6-25 + " PS1.06: 84% PS1:6-36 +type, file PS1.03: 5% PS1:3-3 + " PS1.06: 64% PS1:6-29 + " PS1.10: 42% PS1:10-9 +type[s], function PS2.09: 2% PS2:9-4 + " PS2.09: 2% PS2:9-4 + " PS2.09: 6% PS2:9-10 + " PS2.10: 83% PS2:10-76 + " SMM.19: 44% SMM:19-12 +type[s], numeric PS2.10: 5% PS2:10-7 + " PS2.10: 38% PS2:10-34 + " PS2.10: 42% PS2:10-36 + " PS2.10: 42% PS2:10-36 + " PS2.10: 47% PS2:10-39 + " PS2.10: 48% PS2:10-41 + " PS2.10: 85% PS2:10-77 +type[s], socket PS1.06: 74% PS1:6-33 + " PS1.06: 74% PS1:6-33 + " PS1.06: 75% PS1:6-33 + " PS1.06: 76% PS1:6-33 + " PS1.06: 76% PS1:6-33 + " PS1.07a: 35% PS1:7-8 + " PS1.08: 5% PS1:8-3 + " PS1.08: 9% PS1:8-4 + " PS1.08: 86% PS1:8-35 +type[s], stab - symbol table STAB.5: 1% STAB(5)-1 +Type Casts SMM.19: 30% SMM:19-9 +type character[s] SMM.01: 51% SMM:1-32 + " TOPEN.3F: 56% TOPEN(3F)-1 +Type checking STAB.5: 91% STAB(5)-2 +type checking rules of Pascal PC.1: 27% PC(1)-1 +type coercion SMM.12A: 6% SMM:12-2 +type command USD.07: 6% USD:7-2 +type conversion[s] SMM.19: 29% SMM:19-9 +type size[s] USD.22: 93% USD:22-18 + " USD.23: 10% USD:23-2 + " USD.24: 19% USD:24-8 + " USD.24: 38% USD:24-13 + " USD.28: 27% USD:28-4 +Type Specifier[s] SMM.19: 61% SMM:19-17 +type word[s] SMM.19: 11% SMM:19-4 + " SMM.19: 14% SMM:19-5 + " SMM.19: 14% SMM:19-5 + " SMM.19: 15% SMM:19-5 + " SMM.19: 27% SMM:19-8 + " SMM.19: 30% SMM:19-9 +type[s], system standard PS1.06: 5% PS1:6-5 +type[s], terminal PS1.06: 43% PS1:6-20 + " PS2.10: 62% PS2:10-54 + " PS2.10: 63% PS2:10-54 + " PS2.10: 81% PS2:10-73 +Type Cast[s] PS1.09: 36% PS1:9-4 +Type checking PS1.04: 85% PS1:4-43 + " PS1.09: 2% PS1:9-1 + " PS1.09: 31% PS1:9-4 +type clash[s] PS1.04: 41% PS1:4-22 + " PS1.04: 42% PS1:4-22 + " PS1.04: 45% PS1:4-24 +type identifier PS1.04: 45% PS1:4-24 + " PS1.04: 45% PS1:4-24 + " PS1.04: 99% PS1:4-50 +Type Name[s] PS1.01: 23% PS1:1-7 + " PS1.01: 27% PS1:1-8 + " PS1.01: 27% PS1:1-8 + " PS1.01: 59% PS1:1-19 + " PS1.01: 59% PS1:1-19 + " PS2.03: 13% PS2:3-3 + " PS2.06: 22% PS2:6-9 + " PS2.09: 2% PS2:9-4 +type name description PS1.18: 67% PS1:18-19 +Type Specifier[s] PS1.01: 42% PS1:1-13 + " PS1.01: 69% PS1:1-24 + " PS2.10: 7% PS2:10-8 +type statement[s] PS1.02: 14% PS1:2-7 + " PS1.02: 15% PS1:2-7 + " PS1.02: 15% PS1:2-7 +Typedef PS1.01: 61% PS1:1-20 + " PS1.01: 62% PS1:1-20 +typeahead CSH.1: 7% CSH(1)-2 +TypeDef[s] CTAGS.1: 9% CTAGS(1)-1 + " SMM.13: 3% SMM:13-2 +typedef name[s] PS1.01: 42% PS1:1-13 + " PS1.01: 52% PS1:1-17 + " PS1.01: 74% PS1:1-25 + " SMM.19: 23% SMM:19-7 +typedef struct PS1.01: 61% PS1:1-20 +UCILisp PS2.09: 1% PS2:9-4 + " PS2.09: 47% PS2:9-83 + " PS2.09: 87% PS2:9-140 +UDP user datagram protocol PS1.06: 76% PS1:6-33 +types - primitive system data type[s] TYPES.5: 1% TYPES(5)-1 +types of buffering SETBUF.3S: 13% SETBUF(3S)-1 +typescript SCRIPT.1: 50% SCRIPT(1)-1 +Typesetting USD.25: 0% USD:25-1 +typesetting, troff, nroff - text formatting and TROFF.1: 1% TROFF(1)-1 +typesetting mathematics EQN.1: 4% EQN(1)-1 + " EQN.1: 95% EQN(1)-2 + " USD.26: 0% USD:26-1 + " USD.26: 0% USD:26-1 + " USD.26: 0% USD:26-1 + " USD.26: 10% USD:26-2 + " USD.26: 10% USD:26-2 + " USD.26: 26% USD:26-2 + " USD.26: 28% USD:26-2 + " USD.26: 42% USD:26-4 + " USD.26: 56% USD:26-4 + " USD.26: 69% USD:26-6 + " USD.26: 84% USD:26-6 + " USD.26: 92% USD:26-7 + " USD.26: 98% USD:26-8 + " USD.27: 0% USD:27-1 + " USD.27: 0% USD:27-1 + " USD.27: 0% USD:27-1 + " USD.27: 8% USD:27-2 + " USD.27: 18% USD:27-2 + " USD.27: 27% USD:27-4 + " USD.27: 36% USD:27-4 + " USD.27: 47% USD:27-6 + " USD.27: 57% USD:27-6 + " USD.27: 68% USD:27-8 + " USD.27: 79% USD:27-8 + " USD.27: 87% USD:27-10 +Typesetting Mathematics - User's Guide USD.27: 0% USD:27-1 +typing command[s] USD.01: 9% USD:1-2 + " USD.01: 0% USD:1-1 +typing error[s] USD.12: 47% USD:12-5 + " USD.12: 47% USD:12-5 + " USD.14: 22% USD:14-6 + " USD.14: 35% USD:14-9 + " USD.14: 54% USD:14-14 + " CSH.1: 15% CSH(1)-3 +typing mistake[s] USD.01: 12% USD:1-3 + " USD.04: 29% USD:4-13 + " USD.04: 81% USD:4-38 +u. area CORE.5: 48% CORE(5)-1 + " CORE.5: 74% CORE(5)-1 + " CORE.5: 81% CORE(5)-1 +ualarm SMM.12A: 72% SMM:12-17 +ualarm - schedule signal after specified time UALARM.3: 4% unknown +uba (see also UNIBUS) SMM.13: 53% SMM:13-19 + " SMM.13: 97% SMM:13-33 +uba_ctlr structure SMM.13: 51% SMM:13-18 +uba_device structure[s] SMM.13: 51% SMM:13-18 + " SMM.02: 70% SMM:2-21 + " SMM.02: 70% SMM:2-21 + " SMM.02: 70% SMM:2-21 + " SMM.02: 69% SMM:2-21 + " SMM.02: 68% SMM:2-21 + " SMM.02: 65% SMM:2-20 + " SMM.02: 61% SMM:2-19 + " SMM.02: 61% SMM:2-18 + " SMM.02: 57% SMM:2-17 +uba_driver structure SMM.02: 70% SMM:2-21 + " SMM.02: 57% SMM:2-17 +UCI-Lisp LISZT.1: 45% LISZT(1)-1 +uda - UDA-50 disk controller interface UDA.4: 0% UDA(4)-1 +UDA-50/RA REBOOT.8: 60% REBOOT(8)-2 +UDA50 SMM.01: 7% SMM:1-5 + " SMM.01: 43% SMM:1-28 + " UDA.4: 5% UDA(4)-1 +UDP INET.4F: 42% INET(4F)-1 + " INET.4F: 44% INET(4F)-1 + " IP.4P: 12% IP(4P)-1 + " RESOLVER.3: 35% RESOLVER(3)-1 + " RESOLVER.3: 39% RESOLVER(3)-1 + " SMM.01: 60% SMM:1-38 + " SMM.11: 3% SMM:11-2 + " SMM.11: 56% SMM:11-8 + " SMM.13: 67% SMM:13-23 + " SMM.13: 69% SMM:13-24 + " SMM.13: 78% SMM:13-27 + " SMM.15: 51% SMM:15-16 + " SMM.15: 59% SMM:15-18 + " SMM.15: 59% SMM:15-18 + " SMM.15: 60% SMM:15-18 + " SMM.15: 76% SMM:15-22 +udp - Internet User Datagram Protocol UDP.4P: 2% UDP(4P)-1 +UDP port UDP.4P: 42% UDP(4P)-1 +uid GETPW.3C: 14% GETPW(3C)-1 + " SMM.17: 25% SMM:17-1 + " SMM.17: 29% SMM:17-2 + " SMM.17: 30% SMM:17-2 + " SMM.17: 31% SMM:17-2 + " SMM.17: 34% SMM:17-2 + " SMM.17: 34% SMM:17-2 + " SMM.17: 35% SMM:17-2 + " UUCICO.8C: 69% UUCICO(8C)-2 + " UUCICO.8C: 72% UUCICO(8C)-2 + " UUCP.1C: 81% UUCP(1C)-2 +UID, effective SMM.17: 27% SMM:17-1 +uid, ID QUOTA.2: 18% QUOTA(2)-1 + " QUOTA.2: 25% QUOTA(2)-1 + " QUOTA.2: 28% QUOTA(2)-1 + " QUOTA.2: 43% QUOTA(2)-1 + " QUOTA.2: 47% QUOTA(2)-1 +uid, real EXECVE.2: 96% EXECVE(2)-2 + " SMM.10: 55% SMM:10-14 + " SMM.10: 56% SMM:10-15 + " SMM.17: 27% SMM:17-1 +uid, user ID QUOTA.2: 10% QUOTA(2)-1 + " QUOTA.2: 54% QUOTA(2)-1 +UIOCCMD PTY.4: 75% PTY(4)-2 +ul - do underlining UL.1: 3% UL(1)-1 +ul request USD.22: 24% USD:22-4 + " USD.22: 86% USD:22-16 + " USD.23: 45% USD:23-6 +ULP[s] MATH.3M: 2% MATH(3M)-1 + " SINH.3M: 57% SINH(3M)-1 + " SINH.3M: 58% SINH(3M)-1 + " SQRT.3M: 52% SQRT(3M)-1 + " SQRT.3M: 58% SQRT(3M)-1 + " SQRT.3M: 82% SQRT(3M)-1 +Ultrix SMM.11: 6% SMM:11-2 +UMASK SMM.10: 7% SMM:10-2 + " CP.1: 27% CP(1)-1 + " CSH.1: 73% CSH(1)-16 + " MKNOD.2: 14% MKNOD(2)-1 + " OPEN.2: 11% OPEN(2)-1 + " USD.17: 70% USD:17-32 +umask - Bourne shell command SH.1: 1% SH(1)-1 +umask - set file creation mode mask UMASK.2: 6% UMASK(2)-1 +umlaut MS.7: 94% MS(7)-3 + " USD.21: 81% USD:21-3 + " USD.23: 73% USD:23-9 +umodem SMM.12A: 99% SMM:12-23 +umount MOUNT.8: 3% MOUNT(8)-1 + " MTAB.5: 25% unknown +umount - unmount file system MOUNT.2: 1% MOUNT(2)-1 +Un-killing USD.17: 16% USD:17-8 +unabbreviate word USD.16: 56% USD:16-11 +unalias CSH.1: 73% CSH(1)-16 +Unary Operator[s] SMM.19: 12% SMM:19-4 + " SMM.19: 64% SMM:19-18 + " SMM.19: 64% SMM:19-18 +unary minus PS1.15: 52% PS1:15-15 + " PS1.15: 52% PS1:15-15 + " PS1.15: 82% PS1:15-24 + " PS1.15: 93% PS1:15-29 +Unary Operator[s] PS1.01: 18% PS1:1-6 + " PS1.01: 22% PS1:1-7 + " PS1.01: 23% PS1:1-7 + " PS1.01: 24% PS1:1-7 + " PS1.01: 88% PS1:1-30 + " PS1.01: 91% PS1:1-31 + " PS1.01: 95% PS1:1-32 + " PS1.15: 49% PS1:15-14 + " PS1.15: 51% PS1:15-15 + " PS1.15: 51% PS1:15-15 + " PS2.06: 30% PS2:6-11 + " PS2.06: 30% PS2:6-11 + " PS2.10: 29% PS2:10-28 +unbind-key USD.17: 96% USD:17-46 +unbuffered file[s] SMM.12A: 70% SMM:12-16 +unbuffered output stream SETBUF.3S: 17% SETBUF(3S)-1 +uncompact, compact and SMM.01: 35% SMM:1-23 +unctrl(ch) PS1.18: 57% PS1:18-16 +undefine PS1.17: 41% PS1:17-3 +undefined symbol LD.1: 64% LD(1)-2 +undefined variable[s] USD.04: 55% USD:4-26 +underdot USD.21: 82% USD:21-3 +Underflow Threshold IEEE.3M: 40% IEEE(3M)-1 +underline WINDOW.1: 74% WINDOW(1)-5 +underline, .u USD.23: 45% USD:23-6 +underline a word USD.20: 49% USD:20-4 +underline font USD.23: 45% USD:23-6 + " USD.24: 59% USD:24-19 + " USD.24: 60% USD:24-19 + " USD.24: 61% USD:24-20 +underlined USD.22: 89% USD:22-17 +Underlining TERMCAP.5: 61% TERMCAP(5)-9 + " COLCRT.1: 28% COLCRT(1)-1 + " MORE.1: 30% MORE(1)-1 + " USD.20: 44% USD:20-4 + " USD.22: 23% USD:22-4 + " USD.24: 59% USD:24-19 +underlining, ul - do UL.1: 3% UL(1)-1 +underscore[s] UL.1: 18% UL(1)-1 +underscore character CSH.1: 31% CSH(1)-6 + " USD.17: 96% USD:17-47 +Undo USD.17: 14% USD:17-6 +Undo Command ED.1: 77% ED(1)-5 + " USD.13: 10% USD:13-2 + " USD.15: 27% USD:15-8 + " USD.15: 58% USD:15-16 + " USD.14: 60% USD:14-15 + " USD.14: 60% USD:14-15 + " USD.16: 56% USD:16-11 +Undo Drastic Changes to a File USD.17: 34% USD:17-15 +undivert PS1.17: 70% PS1:17-4 +Union[s] PS1.01: 24% PS1:1-7 + " PS1.01: 74% PS1:1-25 + " PS1.01: 83% PS1:1-28 +unexpand spaces to tab[s] EXPAND.1: 15% EXPAND(1)-1 +ungetc FSEEK.3S: 53% FSEEK(3S)-1 +ungetc - push character back into input stream UNGETC.3S: 7% UNGETC(3S)-1 +unhash CSH.1: 74% CSH(1)-16 +UNIBUS AUTOCONF.4: 11% AUTOCONF(4)-1 + " AUTOCONF.4: 15% AUTOCONF(4)-1 + " CONFIG.8: 47% CONFIG(8)-1 + " DH.4: 68% DH(4)-1 + " DH.4: 75% DH(4)-1 + " DHU.4: 53% DHU(4)-1 + " DMF.4: 66% DMF(4)-1 + " DMF.4: 71% DMF(4)-1 + " DMZ.4: 60% DMZ(4)-1 + " DMZ.4: 67% DMZ(4)-1 + " EC.4: 16% EC(4)-1 + " FORMAT.8V: 19% FORMAT(8V)-1 + " FORMAT.8V: 42% FORMAT(8V)-1 + " INTRO.4: 33% INTRO(4)-1 + " MTIO.4: 5% MTIO(4)-1 + " REBOOT.8: 48% REBOOT(8)-1 + " REBOOT.8: 58% REBOOT(8)-2 + " SMM.01: 2% SMM:1-2 + " SMM.01: 7% SMM:1-5 + " SMM.01: 7% SMM:1-5 + " SMM.01: 36% SMM:1-24 + " SMM.01: 36% SMM:1-24 + " SMM.01: 90% SMM:1-57 + " SMM.02: 54% SMM:2-16 + " SMM.02: 54% SMM:2-16 + " SMM.02: 59% SMM:2-18 + " SMM.02: 60% SMM:2-18 + " SMM.02: 60% SMM:2-18 + " SMM.02: 66% SMM:2-20 + " SMM.02: 67% SMM:2-20 + " SMM.02: 71% SMM:2-22 + " SMM.02: 72% SMM:2-22 + " SMM.02: 73% SMM:2-22 + " SMM.13: 4% SMM:13-2 + " SMM.13: 87% SMM:13-29 + " SMM.14: 60% SMM:14-9 + " SMM.15: 42% SMM:15-13 + " SMM.15: 44% SMM:15-14 + " SMM.15: 44% SMM:15-14 + " UU.4: 10% UU(4)-1 + " VA.4: 93% VA(4)-2 + " SMM.12A: 72% SMM:12-17 +UNIBUS adapter[s] AUTOCONF.4: 52% AUTOCONF(4)-1 + " SMM.01: 5% SMM:1-4 + " SMM.02: 30% SMM:2-9 + " SMM.02: 30% SMM:2-9 + " SMM.02: 32% SMM:2-9 + " SMM.02: 32% SMM:2-9 + " SMM.02: 54% SMM:2-17 + " SMM.02: 67% SMM:2-21 + " SMM.02: 68% SMM:2-21 + " SMM.12A: 72% SMM:12-17 +UNIBUS adapter error DH.4: 72% DH(4)-1 + " DHU.4: 58% DHU(4)-1 + " DMF.4: 69% DMF(4)-1 + " DMZ.4: 64% DMZ(4)-1 +Unibus address EC.4: 21% EC(4)-1 + " SMM.02: 64% SMM:2-20 + " SMM.13: 98% SMM:13-33 +UNIBUS controller[s] SMM.01: 8% SMM:1-5 + " SMM.02: 32% SMM:2-9 + " SMM.02: 33% SMM:2-10 + " SMM.02: 43% SMM:2-13 + " SMM.02: 43% SMM:2-13 + " SMM.02: 55% SMM:2-17 + " SMM.02: 70% SMM:2-21 +UNIBUS device[s] AUTOCONF.4: 21% AUTOCONF(4)-1 + " AUTOCONF.4: 95% AUTOCONF(4)-2 + " EN.4: 15% EN(4)-1 + " INTRO.4: 35% INTRO(4)-1 + " INTRO.4: 37% INTRO(4)-1 + " SMM.01: 91% SMM:1-57 + " SMM.01: 99% SMM:1-64 + " SMM.02: 54% SMM:2-16 +UNIBUS device drivers and related code, /sys/vaxuba VAX SMM.01: 39% SMM:1-26 +UNIBUS disk[s] SMM.01: 8% SMM:1-5 +UNIBUS drive[s] FORMAT.8V: 46% FORMAT(8V)-1 + " REBOOT.8: 84% REBOOT(8)-2 + " SMM.02: 41% SMM:2-12 +UNIBUS interface[s] SMM.15: 39% SMM:15-12 + " SMM.15: 39% SMM:15-12 +UNIBUS memory SMM.02: 67% SMM:2-20 + " SMM.13: 50% SMM:13-18 + " SMM.13: 89% SMM:13-30 + " SMM.13: 98% SMM:13-33 + " SMM.13: 98% SMM:13-33 + " SMM.13: 98% SMM:13-33 + " SMM.13: 98% SMM:13-33 +UNIBUS reset[s] HK.4: 80% HK(4)-2 + " SMM.13: 50% SMM:13-18 + " SMM.13: 53% SMM:13-19 + " SMM.13: 89% SMM:13-30 + " SMM.13: 98% SMM:13-33 + " SMM.15: 44% SMM:15-14 + " SMM.15: 45% SMM:15-14 + " UP.4: 88% UP(4)-3 +UNIBUS resource[s] SMM.02: 69% SMM:2-21 + " SMM.02: 72% SMM:2-22 + " SMM.13: 87% SMM:13-29 + " SMM.15: 41% SMM:15-13 + " EX.4: 57% EX(4)-1 + " SMM.02: 72% SMM:2-22 + " UDA.4: 64% UDA(4)-2 +unifdef - remove ifdef'ed line[s] UNIFDEF.1: 2% UNIFDEF(1)-1 +uninitialized data A_OUT.5: 8% A.OUT(5)-1 +uniq - report repeated lines in a file UNIQ.1: 4% unknown +unique file name MKTEMP.3: 24% unknown +unique file name[s] PS1.17: 74% PS1:17-5 +unit[s], Basic USD.24: 20% USD:24-8 + " USD.23: 3% USD:23-1 + " USD.24: 19% USD:24-8 +Unit in the Last Place (see instead ULP) MATH.3M: 13% MATH(3M)-2 +unit number[s] FORMAT.8V: 42% FORMAT(8V)-1 + " REBOOT.8: 73% REBOOT(8)-2 + " SMM.01: 4% SMM:1-3 + " SMM.01: 5% SMM:1-4 + " SMM.01: 7% SMM:1-5 + " SMM.01: 51% SMM:1-32 + " SMM.02: 27% SMM:2-8 + " SMM.02: 70% SMM:2-21 + " SMM.02: 80% SMM:2-26 + " SMM.13: 81% SMM:13-27 + " SMM.13: 99% SMM:13-34 + " TYPES.5: 89% TYPES(5)-2 + " SMM.12A: 30% SMM:12-7 + " SMM.12A: 83% SMM:12-20 +unit[s], logical PS1.02: 36% PS1:2-12 + " PS1.03: 16% PS1:3-4 + " PS1.03: 17% PS1:3-4 + " PS1.03: 18% PS1:3-4 + " PS1.03: 18% PS1:3-4 + " PS1.03: 18% PS1:3-4 + " PS1.03: 19% PS1:3-4 + " PS1.03: 19% PS1:3-4 + " PS1.03: 22% PS1:3-4 + " PS1.03: 25% PS1:3-4 + " PS1.03: 25% PS1:3-4 + " PS1.03: 29% PS1:3-5 + " PS1.03: 37% PS1:3-5 + " PS1.03: 53% PS1:3-7 + " PS1.03: 53% PS1:3-7 + " PS1.03: 54% PS1:3-7 + " PS1.03: 60% PS1:3-7 + " PS1.03: 63% PS1:3-8 + " PS1.03: 63% PS1:3-8 + " PS1.03: 64% PS1:3-8 + " PS1.03: 70% PS1:3-9 + " PS1.03: 70% PS1:3-9 + " PS1.03: 70% PS1:3-9 + " PS1.03: 70% PS1:3-9 + " PS1.03: 71% PS1:3-9 + " PS1.03: 71% PS1:3-9 + " PS1.03: 74% PS1:3-10 + " PS1.03: 78% PS1:3-10 +unit[s], output PS1.02: 71% PS1:2-24 + " PS1.02: 71% PS1:2-24 + " PS2.06: 60% PS2:6-21 + " PS2.06: 62% PS2:6-22 + " PS2.06: 81% PS2:6-28 +unit number[s] PS1.02: 74% PS1:2-25 + " PS1.02: 78% PS1:2-26 + " PS1.03: 17% PS1:3-4 + " PS1.03: 20% PS1:3-4 + " PS1.03: 54% PS1:3-7 + " PS1.03: 64% PS1:3-8 + " PS1.03: 70% PS1:3-9 +UNIX, information about general features of PS1.04: 2% PS1:4-2 +UNIX, versions of PS1.06: 33% PS1:6-16 + " PS1.06: 35% PS1:6-17 + " PS1.06: 35% PS1:6-17 +UNIX 32/V PS2.02: 0% + " PS2.02: 24% PS2:2-2 + " PS2.02: 29% PS2:2-2 + " PS2.02: 37% PS2:2-2 + " PS2.02: 42% PS2:2-3 + " PS2.02: 48% PS2:2-3 + " PS2.02: 56% PS2:2-5 + " PS2.02: 61% PS2:2-7 + " PS2.02: 69% PS2:2-7 + " PS2.02: 73% PS2:2-9 + " PS2.02: 82% PS2:2-9 + " PS2.02: 85% PS2:2-11 + " PS2.02: 94% PS2:2-11 +UNIX crash PS2.10: 2% PS2:10-4 + " PS2.10: 68% PS2:10-60 + " PS2.10: 68% PS2:10-60 +UNIX domain PS1.06: 85% PS1:6-36 + " PS1.06: 86% PS1:6-36 + " PS1.07a: 24% PS1:7-4 + " PS1.07a: 29% PS1:7-8 + " PS1.07a: 30% PS1:7-8 + " PS1.07a: 39% PS1:7-9 + " PS1.07a: 83% PS1:7-21 + " PS1.07a: 88% PS1:7-22 + " PS1.08: 4% PS1:8-3 + " PS1.08: 5% PS1:8-3 + " PS1.08: 7% PS1:8-3 + " PS1.08: 9% PS1:8-4 + " PS1.08: 10% PS1:8-4 + " PS1.08: 12% PS1:8-5 + " PS1.08: 15% PS1:8-6 + " PS1.08: 18% PS1:8-7 +UNIX domain, Names in the PS1.07a: 40% PS1:7-10 + " PS1.07a: 42% PS1:7-10 + " PS1.07a: 51% PS1:7-11 +UNIX domain names PS1.07a: 30% PS1:7-8 + " PS1.07a: 45% PS1:7-11 + " PS1.08: 45% PS1:8-17 +UNIX domain socket[s] PS1.07a: 37% PS1:7-8 + " PS1.08: 12% PS1:8-5 + " PS1.08: 99% PS1:8-41 +UNIX domain stream connection PS1.07a: 83% PS1:7-21 + " PS1.07a: 80% PS1:7-20 +UNIX file name PS1.04: 86% PS1:4-44 +UNIX file names with Pascal file variable[s], associations of PS1.04: 60% PS1:4-31 +UNIX file system PS1.06: 48% PS1:6-23 + " PS1.08: 2% PS1:8-2 + " PS2.04: 1% PS2:4-1 + " PS2.04: 64% PS2:4-6 + " PS2.10: 56% PS2:10-49 +UNIX I/O System (describes version 7) PS2.05: 0% + " PS2.05: 0% + " PS2.05: 11% PS2:5-2 + " PS2.05: 28% PS2:5-2 + " PS2.05: 44% PS2:5-4 + " PS2.05: 62% PS2:5-4 + " PS2.05: 78% PS2:5-6 + " PS2.05: 93% PS2:5-6 +UNIX Implementation (describes version 7) PS2.04: 0% + " PS2.04: 0% + " PS2.04: 8% PS2:4-2 + " PS2.04: 17% PS2:4-2 + " PS2.04: 29% PS2:4-4 + " PS2.04: 41% PS2:4-4 + " PS2.04: 53% PS2:4-6 + " PS2.04: 65% PS2:4-6 + " PS2.04: 79% PS2:4-8 + " PS2.04: 87% PS2:4-8 + " PS2.04: 98% PS2:4-10 + " PS2.05: 2% PS2:5-1 +UNIX kernel PS1.03: 68% PS1:3-9 + " PS2.04: 1% PS2:4-1 + " PS2.04: 95% PS2:4-9 + " PS2.04: 96% PS2:4-9 + " PS2.04: 96% PS2:4-9 +UNIX pathname PS1.04: 61% PS1:4-31 + " PS1.08: 15% PS1:8-6 + " PS2.10: 6% PS2:10-8 +UNIX process PS1.04: 62% PS1:4-31 + " PS1.04: 95% PS1:4-48 + " PS1.06: 0% +UNIX Programming PS2.03: 0% + " PS2.03: 0% + " PS2.03: 3% PS2:3-2 + " PS2.03: 10% PS2:3-2 + " PS2.03: 18% PS2:3-4 + " PS2.03: 25% PS2:3-4 + " PS2.03: 32% PS2:3-6 + " PS2.03: 38% PS2:3-6 + " PS2.03: 45% PS2:3-8 + " PS2.03: 53% PS2:3-8 + " PS2.03: 60% PS2:3-10 + " PS2.03: 68% PS2:3-10 + " PS2.03: 75% PS2:3-12 + " PS2.03: 79% PS2:3-12 + " PS2.03: 84% PS2:3-14 + " PS2.03: 90% PS2:3-14 + " PS2.03: 96% PS2:3-16 +UNIX Time-Sharing System (overview of version 7) PS2.01: 0% PS2:1-1 +UNIX virtual machine PS1.06: 7% PS1:6-6 +units - conversion program UNITS.1: 3% unknown +units digit[s] USD.28: 13% USD:28-3 + " USD.28: 15% USD:28-3 + " USD.34: 37% USD:34-5 +UNIX, Berkeley USD.01: 12% USD:1-2 + " USD.01: 16% USD:1-3 +UNIX, features of USD.01: 86% USD:1-13 + " USD.02: 78% USD:2-10 + " USD.14: 5% USD:14-3 +unix, introduction to USD.01: 1% USD:1-1 +UNIX, Security of SMM.17: 0% SMM:17-1 + " SMM.17: 0% SMM:17-1 + " SMM.17: 28% SMM:17-2 + " SMM.17: 70% SMM:17-2 +UNIX[s], versions of SETBUF.3S: 90% SETBUF(3S)-1 + " SMM.02: 74% SMM:2-23 + " AUTOCONF.4: 44% AUTOCONF(4)-1 + " USD.01: 94% USD:1-14 + " USD.17: 87% USD:17-41 + " SMM.07A: 77% SMM:07-34 +UNIX command, system - execute a SYSTEM.3F: 6% SYSTEM(3F)-1 +UNIX command interpreter (see also shell) USD.02: 65% USD:2-8 +UNIX commands from the editor USD.14: 80% USD:14-20 +UNIX domain BIND.2: 21% BIND(2)-1 + " CONNECT.2: 73% CONNECT(2)-1 + " SMM.12A: 41% SMM:12-9 +UNIX domain socket[s] WINDOW.1: 14% WINDOW(1)-1 + " GETSOCKNAME.2: 88% GETSOCKNAME(2)- + " SMM.15: 8% SMM:15-4 + " SOCKETPAIR.2: 95% SOCKETPAIR(2)-1 +UNIX file system (see also file system)[s] SMM.01: 6% SMM:1-4 + " SMM.14: 1% SMM:14-2 + " SMM.14: 7% SMM:14-2 + " SMM.14: 11% SMM:14-3 + " SMM.14: 24% SMM:14-5 + " SMM.14: 64% SMM:14-10 + " SMM.14: 65% SMM:14-10 + " SMM.14: 85% SMM:14-13 +UNIX file system, original 512 byte SMM.14: 4% SMM:14-2 +UNIX files and command[s], introduction to USD.02: 2% USD:2-1 +UNIX For Beginners USD.01: 0% USD:1-1 + " USD.01: 0% USD:1-1 + " USD.01: 5% USD:1-2 + " USD.01: 12% USD:1-2 + " USD.01: 19% USD:1-4 + " USD.01: 27% USD:1-4 + " USD.01: 34% USD:1-6 + " USD.01: 41% USD:1-6 + " USD.01: 47% USD:1-8 + " USD.01: 54% USD:1-8 + " USD.01: 61% USD:1-10 + " USD.01: 69% USD:1-10 + " USD.01: 76% USD:1-12 +UNIX manual USD.04: 85% USD:4-40 +UNIX Reading List USD.01: 92% USD:1-13 +UNIX shell (see also shell, cshell) USD.03: 0% USD:3-1 + " USD.03: 0% USD:3-1 + " USD.03: 2% USD:3-1 + " USD.03: 5% USD:3-2 + " USD.03: 10% USD:3-2 + " USD.03: 15% USD:3-4 + " USD.03: 20% USD:3-4 + " USD.03: 23% USD:3-6 + " USD.03: 28% USD:3-6 + " USD.03: 31% USD:3-8 + " USD.03: 35% USD:3-8 + " USD.03: 40% USD:3-10 + " USD.03: 45% USD:3-10 + " USD.03: 48% USD:3-12 + " USD.03: 50% USD:3-12 + " USD.03: 53% USD:3-14 + " USD.03: 57% USD:3-14 + " USD.03: 62% USD:3-16 + " USD.03: 67% USD:3-16 + " USD.03: 71% USD:3-18 + " USD.03: 75% USD:3-18 + " USD.03: 80% USD:3-20 + " USD.03: 83% USD:3-20 + " USD.03: 90% USD:3-22 + " USD.03: 95% USD:3-22 + " USD.03: 98% USD:3-24 +UNIX Shell, Introduction to the USD.03: 0% USD:3-1 +UNIX Text Editor, Tutorial Introduction to the USD.12: 0% USD:12-1 +unlimit CSH.1: 74% CSH(1)-16 +Unlink LPD.8: 71% LPD(8)-2 + " STAT.2: 49% STAT(2)-2 + " SMM.12A: 61% SMM:12-14 +unlink - remove a directory entry UNLINK.3F: 8% UNLINK(3F)-1 +unlink - remove directory entry UNLINK.2: 2% UNLINK(2)-1 +unlink(path) PS1.06: 64% PS1:6-29 +unlock FLOCK.2: 12% FLOCK(2)-1 +unlock a revision RCS.N: 34% RCS(1)-1 +unmap USD.16: 57% USD:16-11 +unmasking signal[s] SIGRETURN.2: 23% SIGRETURN(2)-1 +Unnumbered section heading[s] USD.23: 14% USD:23-2 +unmount(dir) PS1.06: 48% PS1:6-23 +unpaddable space USD.22: 53% USD:22-10 +unpaddable white space USD.25: 39% USD:25-6 +unprintable character[s] INVERT.N: 97% INVERT(1)-2 + " SA.8: 44% SA(8)-1 + " TIP.1C: 60% TIP(1C)-2 +Unreachable statement[s] LINT.1: 10% LINT(1)-1 +unput(c) PS1.16: 47% PS1:16-6 +Unreachable statement[s] PS1.04: 45% PS1:4-24 + " PS1.09: 24% PS1:9-3 + " PS1.04: 46% PS1:4-24 +Unstructured device[s] PS1.06: 94% PS1:6-39 +unresolved external reference LD.1: 13% LD(1)-1 +Unseen-Sequence INC.N: 44% INC(1)-1 + " SHOW.N: 47% SHOW(1)-1 + " USD.08: 69% USD:8-85 + " USD.08: 82% USD:8-101 +unsent message[s] GETSOCKOPT.2: 61% GETSOCKOPT(2)-2 +unset command[s] CSH.1: 27% CSH(1)-6 + " USD.04: 52% USD:4-24 + " CSH.1: 74% CSH(1)-16 +unsetenv command CSH.1: 75% CSH(1)-16 +unsigned decimal OD.1: 30% OD(1)-1 +unsigned hexadecimal OD.1: 33% OD(1)-1 +unsigned octal OD.1: 21% OD(1)-1 + " OD.1: 37% OD(1)-1 +Unsuperscript USD.23: 70% USD:23-9 +unuse - specify a group of delimitors to no longer be used PS2.10: 50% PS2:10-44 +Unused Variables and Function[s] PS1.09: 10% PS1:9-2 +Updating, Screen PS1.18: 6% PS1:18-3 + " PS1.18: 75% PS1:18-22 +unused arguments in functions LINT.1: 47% LINT(1)-1 +up - unibus storage module controller/drives UP.4: 0% unknown +update - periodically update the super block UPDATE.8: 6% UPDATE(8)-1 +UPGRADING A 4.2BSD SYSTEM SMM.01: 25% SMM:1-18 +upper case and lower case letter[s] USD.17: 23% USD:17-10 +upper case letter CTYPE.3: 41% CTYPE(3)-1 +Upper case mapping TIP.1C: 78% TIP(1C)-3 +Upper case only terminal[s] USD.15: 71% USD:15-20 + " TTY.4: 37% TTY(4)-4 +upper-case letter[s] TTY.4: 39% TTY(4)-4 + " TTY.4: 39% TTY(4)-4 +uppercase letters PS1.18: 68% PS1:18-19 +uptime RUPTIME.1C: 25% RUPTIME(1C)-1 +uptime - show how long system has been up UPTIME.1: 11% UPTIME(1)-1 +urgent condition PS1.06: 26% PS1:6-13 +urgent condition present on socket SIGNAL.3C: 27% unknown +urgent data PS1.08: 59% PS1:8-24 + " PS1.08: 59% PS1:8-24 + " PS1.08: 61% PS1:8-24 + " PS1.08: 61% PS1:8-24 + " PS1.08: 62% PS1:8-24 + " PS1.08: 62% PS1:8-24 + " PS1.08: 62% PS1:8-25 + " PS1.08: 62% PS1:8-25 +urgent data SMM.13: 76% SMM:13-26 + " SMM.15: 90% SMM:15-25 + " SMM.15: 91% SMM:15-25 + " TELNET.1C: 35% TELNET(1C)-2 +usage, disc QUOTA.1: 22% QUOTA(1)-1 + " QUOTACHECK.8: 16% QUOTACHECK(8)-1 + " QUOTACHECK.8: 84% QUOTACHECK(8)-1 + " REPQUOTA.8: 25% REPQUOTA(8)-1 +usage, disk DU.1: 8% DU(1)-1 + " USD.04: 37% USD:4-17 +usage, memory SA.8: 63% SA(8)-1 + " SYSTAT.1: 30% SYSTAT(1)-2 + " SYSTAT.1: 34% SYSTAT(1)-2 + " USD.04: 51% USD:4-24 + " VTIMES.3C: 62% VTIMES(3C)-1 +usage[s], resource EXECVE.2: 49% EXECVE(2)-1 + " SMM.01: 83% SMM:1-50 + " SMM.14: 1% SMM:14-2 +usage, word USD.32: 1% USD:32-1 + " USD.32: 4% USD:32-1 + " USD.32: 6% USD:32-2 + " USD.32: 10% USD:32-2 + " USD.32: 30% USD:32-5 + " USD.32: 30% USD:32-5 + " USD.32: 39% USD:32-6 + " USD.32: 69% USD:32-10 +use - specify a group of delimitors to be used PS2.10: 50% PS2:10-44 +User and group id[s] PS1.06: 10% PS1:6-8 +used blocks ICHECK.8: 10% ICHECK(8)-1 +Usenet USD.09: 0% USD:9-1 + " USD.09: 0% USD:9-1 + " USD.09: 5% USD:9-1 + " USD.09: 5% USD:9-1 + " USD.10: 0% USD:10-1 + " USD.10: 0% USD:10-1 + " USD.10: 2% USD:10-1 + " USD.10: 3% USD:10-1 + " USD.10: 5% USD:10-1 + " USD.10: 6% USD:10-1 + " USD.10: 6% USD:10-1 + " USD.10: 6% USD:10-1 + " USD.10: 6% USD:10-1 + " USD.10: 7% USD:10-2 + " USD.10: 8% USD:10-2 + " USD.10: 9% USD:10-2 + " USD.10: 10% USD:10-2 + " USD.10: 10% USD:10-2 + " USD.10: 15% USD:10-2 + " USD.10: 15% USD:10-2 + " USD.10: 16% USD:10-2 + " USD.10: 16% USD:10-2 + " USD.10: 21% USD:10-3 + " USD.10: 21% USD:10-3 + " USD.10: 22% USD:10-3 + " USD.10: 27% USD:10-3 + " USD.10: 27% USD:10-3 + " USD.10: 30% USD:10-4 + " USD.10: 31% USD:10-4 + " USD.10: 32% USD:10-4 + " USD.10: 34% USD:10-4 + " USD.10: 40% USD:10-5 + " USD.10: 41% USD:10-5 + " USD.10: 47% USD:10-5 + " USD.10: 48% USD:10-6 + " USD.10: 49% USD:10-6 + " USD.10: 54% USD:10-6 + " USD.10: 61% USD:10-7 + " USD.10: 62% USD:10-7 + " USD.10: 72% USD:10-8 + " USD.10: 77% USD:10-9 + " USD.11: 6% USD:11-2 + " SMM.12A: 53% SMM:12-12 +USENET administrator[s] USD.10: 2% USD:10-1 + " USD.10: 8% USD:10-2 + " USD.10: 8% USD:10-2 + " USD.10: 8% USD:10-2 + " USD.10: 9% USD:10-2 + " USD.10: 10% USD:10-2 + " USD.10: 15% USD:10-2 + " USD.10: 19% USD:10-3 + " USD.10: 19% USD:10-3 + " USD.10: 46% USD:10-5 +USENET etiquette USD.10: 0% USD:10-1 +USENET site[s] SMM.10: 0% SMM:10-1 + " USD.10: 11% USD:10-2 + " USD.10: 15% USD:10-2 + " USD.10: 18% USD:10-3 + " USD.10: 19% USD:10-3 +USENET Version B Installation SMM.10: 0% SMM:10-1 + " SMM.10: 3% SMM:10-1 + " SMM.10: 3% SMM:10-2 + " SMM.10: 8% SMM:10-2 + " SMM.10: 12% SMM:10-4 + " SMM.10: 16% SMM:10-4 + " SMM.10: 19% SMM:10-6 + " SMM.10: 22% SMM:10-6 + " SMM.10: 26% SMM:10-8 + " SMM.10: 30% SMM:10-8 + " SMM.10: 33% SMM:10-10 + " SMM.10: 37% SMM:10-10 + " SMM.10: 40% SMM:10-12 + " SMM.10: 45% SMM:10-12 + " SMM.10: 50% SMM:10-14 + " SMM.10: 55% SMM:10-14 + " SMM.10: 59% SMM:10-16 + " SMM.10: 65% SMM:10-16 + " SMM.10: 69% SMM:10-18 + " SMM.10: 74% SMM:10-18 + " SMM.10: 79% SMM:10-20 + " SMM.10: 84% SMM:10-20 + " SMM.10: 89% SMM:10-22 + " SMM.10: 91% SMM:10-22 + " SMM.10: 95% SMM:10-24 +USER[s] ENVIRON.7: 64% ENVIRON(7)-1 + " SMM.12A: 53% SMM:12-12 +user code PS1.15: 3% PS1:15-1 + " PS1.15: 32% PS1:15-9 + " PS2.10: 73% PS2:10-63 + " PS2.10: 81% PS2:10-74 +user data segment PS2.04: 11% PS2:4-2 + " PS2.04: 22% PS2:4-3 + " PS2.04: 22% PS2:4-3 +user id[s] PS1.06: 10% PS1:6-8 + " PS1.06: 11% PS1:6-8 + " PS1.06: 30% PS1:6-14 + " PS1.06: 64% PS1:6-29 + " PS1.06: 69% PS1:6-31 + " PS2.01: 23% PS2:1-4 + " PS2.01: 24% PS2:1-4 + " PS2.01: 27% PS2:1-4 + " PS2.01: 77% PS2:1-12 + " PS2.03: 96% PS2:3-15 + " PS2.09: 47% PS2:9-84 + " PS2.10: 52% PS2:10-46 +user information PS2.10: 73% PS2:10-64 + " PS2.10: 75% PS2:10-67 + " PS2.10: 81% PS2:10-74 +user input[s] PS1.18: 3% PS1:18-3 +user processes PS1.06: 86% PS1:6-37 + " PS1.08: 19% PS1:8-7 + " PS2.04: 4% PS2:4-1 + " PS2.04: 5% PS2:4-1 + " PS2.04: 10% PS2:4-2 + " PS2.04: 13% PS2:4-2 + " PS2.04: 39% PS2:4-4 +users, adding new ADDUSER.8: 2% ADDUSER(8)-1 +user[s], trusted SMM.07A: 40% SMM:07-19 +user[s], wall - write to all WALL.1: 9% WALL(1)-1 +user[s], well-known SMM.01: 31% SMM:1-21 +user[s], Writing to other USD.01: 20% USD:1-4 +user account[s] SMM.01: 73% SMM:1-44 + " SMM.01: 0% SMM:1-1 +user and group ID[s] EXECVE.2: 38% EXECVE(2)-1 + " EXECVE.2: 41% EXECVE(2)-1 + " LOGIN.1: 37% LOGIN(1)-1 + " SMM.13: 3% SMM:13-2 + " SMM.13: 9% SMM:13-4 +user context MH-PROFILE.N: 76% MH-PROFILE(5)-5 + " USD.08: 3% USD:8-2 + " USD.08: 73% USD:8-89 +User Contributed Software SMM.12A: 33% SMM:12-8 + " SMM.12A: 97% SMM:12-23 + " SMM.01: 23% SMM:1-17 + " SMM.01: 86% SMM:1-52 +user customization MH-PROFILE.N: 0% MH-PROFILE(5)-1 + " USD.08: 69% USD:8-85 +User defined signal SIGNAL.3C: 39% unknown +user environment ENVIRON.7: 3% ENVIRON(7)-1 + " SU.1: 32% SU(1)-1 + " SMM.07A: 80% SMM:07-36 +USER environment variable CSH.1: 69% CSH(1)-14 + " CSH.1: 78% CSH(1)-17 + " USERFILE.5: 56% USERFILE(5)-1 +user file system[s] ADDUSER.8: 61% ADDUSER(8)-1 + " FSCK.8: 17% FSCK(8)-1 + " SMM.01: 22% SMM:1-16 + " SMM.01: 25% SMM:1-18 + " SMM.01: 42% SMM:1-28 + " SMM.01: 47% SMM:1-31 + " SMM.14: 25% SMM:14-5 +user id[s] ADDUSER.8: 10% ADDUSER(8)-1 + " PASSWD.5: 16% PASSWD(5)-1 +user identity FTP.1C: 89% FTP(1C)-7 + " GETUID.2: 11% GETUID(2)-1 + " RSHD.8C: 32% RSHD(8C)-1 + " RSHD.8C: 36% RSHD(8C)-1 +User information SMM.10: 15% SMM:10-4 + " SMM.12A: 85% SMM:12-20 + " FINGER.1: 2% FINGER(1)-1 +user interface[s] SMM.10: 76% SMM:10-19 + " SMM.10: 80% SMM:10-20 + " SMM.11: 3% SMM:11-2 + " SMM.14: 70% SMM:14-11 +user level SMM.13: 82% SMM:13-28 + " SMM.15: 79% SMM:15-22 +User level routing policy[s] SMM.15: 77% SMM:15-22 +user memory PS.4: 39% PS(4)-1 + " SMM.13: 45% SMM:13-16 + " SMM.13: 47% SMM:13-16 +user mode GETRUSAGE.2: 37% GETRUSAGE(2)-1 + " SMM.11: 86% SMM:11-13 + " SMM.11: 87% SMM:11-14 + " SYSTAT.1: 20% SYSTAT(1)-2 +user name[s] CONFLICT.N: 27% CONFLICT(8)-1 + " CSH.1: 11% CSH(1)-2 + " FINGER.1: 50% FINGER(1)-1 + " FINGER.1: 57% FINGER(1)-1 + " FINGERD.8C: 54% FINGERD(8C)-1 + " FINGERD.8C: 68% FINGERD(8C)-1 + " FTPD.8C: 54% FTPD(8C)-2 + " FTPD.8C: 58% FTPD(8C)-2 + " FTPD.8C: 61% FTPD(8C)-2 + " LOGIN.1: 16% LOGIN(1)-1 + " LOGIN.1: 53% LOGIN(1)-1 + " LPQ.1: 32% LPQ(1)-1 + " LPRM.1: 36% LPRM(1)-1 + " MAILADDR.7: 40% MAILADDR(7)-2 + " PASSWD.1: 12% PASSWD(1)-1 + " RCMD.3: 75% RCMD(3)-1 + " RCP.1C: 59% RCP(1C)-1 + " RENICE.8: 18% RENICE(8)-1 + " RENICE.8: 41% RENICE(8)-1 + " RENICE.8: 85% RENICE(8)-1 + " REXECD.8C: 27% REXECD(8C)-1 + " RSHD.8C: 30% RSHD(8C)-1 + " RSHD.8C: 31% RSHD(8C)-1 + " RSHD.8C: 34% RSHD(8C)-1 + " RSHD.8C: 35% RSHD(8C)-1 + " RSHD.8C: 43% RSHD(8C)-1 + " SMM.10: 10% SMM:10-3 + " SMM.10: 23% SMM:10-7 + " SMM.16: 41% SMM:16-6 + " SMM.16: 41% SMM:16-6 + " SMM.16: 44% SMM:16-6 + " SMM.18: 86% SMM:18-5 + " SMM.18: 88% SMM:18-5 + " SMM.21: 34% SMM:21-3 + " USD.07: 17% USD:7-5 + " USD.07: 53% USD:7-13 + " W.1: 45% W(1)-1 + " WHO.1: 55% WHO(1)-1 + " SMM.07A: 75% SMM:07-32 + " SMM.12A: 65% SMM:12-15 +user name directory service WHOIS.1: 6% WHOIS(1)-1 +user processes GETGROUPS.2: 24% GETGROUPS(2)-1 + " IK.4: 32% IK(4)-1 + " IK.4: 90% IK(4)-1 + " PS.4: 23% PS(4)-1 + " PS.4: 74% PS(4)-1 + " PSTAT.8: 76% PSTAT(8)-3 + " SETGROUPS.2: 26% SETGROUPS(2)-1 + " SMM.05: 17% SMM:5-5 + " SMM.15: 77% SMM:15-22 + " SMM.15: 77% SMM:15-22 + " SPP.4P: 98% SPP(4P)-2 +user program[s] SMM.01: 79% SMM:1-48 + " SMM.01: 80% SMM:1-48 + " SMM.05: 17% SMM:5-4 + " SMM.14: 35% SMM:14-6 + " SMM.14: 59% SMM:14-9 + " SMM.14: 71% SMM:14-11 + " SMM.14: 81% SMM:14-12 + " USD.11: 89% USD:11-13 +user request routine SMM.15: 49% SMM:15-15 +user root SMM.06: 31% SMM:6-3 + " SMM.10: 15% SMM:10-4 +user structure CORE.5: 56% CORE(5)-1 + " PTRACE.2: 36% PTRACE(2)-1 + " SMM.01: 35% SMM:1-23 + " SMM.01: 35% SMM:1-23 + " SMM.02: 95% SMM:2-32 + " SMM.13: 11% SMM:13-5 + " SMM.13: 14% SMM:13-6 + " SMM.13: 17% SMM:13-7 + " SMM.13: 45% SMM:13-16 + " SYSTAT.1: 28% SYSTAT(1)-2 + " SYSTAT.1: 97% SYSTAT(1)-5 +user time GETRUSAGE.2: 17% GETRUSAGE(2)-1 + " TIMES.3C: 69% TIMES(3C)-1 + " TIMES.3C: 76% TIMES(3C)-1 + " USD.04: 51% USD:4-24 + " USD.04: 52% USD:4-24 + " VMSTAT.1: 77% VMSTAT(1)-1 + " VTIMES.3C: 27% VTIMES(3C)-1 + " ETIME.3F: 58% ETIME(3F)-1 +user with least privilege SMM.01: 32% SMM:1-21 +USER-DEFINED SEQUENCES USD.08: 79% USD:8-98 + " USD.08: 79% USD:8-98 +USERFILE L_CMDS.5: 94% L.CMDS(5)-1 + " SMM.09: 16% SMM:9-4 + " SMM.09: 30% SMM:9-7 + " SMM.09: 79% SMM:9-17 + " SMM.09: 82% SMM:9-17 + " SMM.09: 90% SMM:9-19 + " SMM.09: 90% SMM:9-19 + " SMM.09: 90% SMM:9-19 + " SMM.09: 98% SMM:9-21 + " SMM.09: 99% SMM:9-21 +USERFILE - UUCP pathname permissions file USERFILE.5: 1% USERFILE(5)-1 +users - compact list of users who are on the system USERS.1: 15% USERS(1)-1 +USG system[s] L_ALIASES.5: 26% L.ALIASES(5)-1 + " SMM.10: 17% SMM:10-5 + " SMM.10: 17% SMM:10-5 + " SMM.10: 34% SMM:10-10 +Using ADB to Debug the UNIX Kernel SMM.03: 0% unknown +Using the -ms Macros with Troff and Nroff USD.20: 0% USD:20-1 +usersetup - setup users file PS2.10: 72% PS2:10-62 +using the editor USD.01: 1% USD:1-1 +usleep SMM.12A: 72% SMM:12-17 +usleep - suspend execution for interval USLEEP.3: 4% USLEEP(3)-1 +usr/spool/uucp/SYSLOG File transfer statistics log UUCICO.8C: 89% UUCICO(8C)-2 +usrreq routine SMM.13: 36% SMM:13-13 + " SMM.15: 47% SMM:15-15 + " SMM.15: 57% SMM:15-17 + " SMM.15: 58% SMM:15-17 + " SMM.15: 92% SMM:15-25 +ut - UNIBUS TU45 tri-density tape drive interface UT.4: 2% UT(4)-1 +utilities, data and maintenance HIER.7: 10% HIER(7)-1 +utilities, source code for HIER.7: 80% HIER(7)-5 +utility[s], system (see instead man section 1 and under specific ... SMM.01: 25% SMM:1-18 + " SMM.14: 35% SMM:14-6 + " SMM.14: 88% SMM:14-13 +utility program[s] HIER.7: 6% HIER(7)-1 +utime[s] STAT.2: 37% STAT(2)-1 + " STAT.2: 45% STAT(2)-2 + " STAT.2: 49% STAT(2)-2 +utime - set file time[s] UTIME.3C: 9% unknown +utimes - set file time[s] UTIMES.2: 3% UTIMES(2)-1 +utimes(path, tvp) PS1.06: 65% PS1:6-30 +utmp[s], wtmp - login record UTMP.5: 2% UTMP(5)-1 +uu - TU58/DECtape II UNIBUS cassette interface UU.4: 1% UU(4)-1 +uucico SMM.09: 99% SMM:9-21 +uucico, Changes to SMM.09: 43% SMM:9-10 +uucico, uucpd - transfer files queued by uucp or uux UUCICO.8C: 0% UUCICO(8C)-1 +Uucico - Copy In, Copy Out SMM.09: 20% SMM:9-5 +uucico program[s] SMM.09: 10% SMM:9-3 + " SMM.09: 15% SMM:9-4 + " SMM.09: 20% SMM:9-5 + " SMM.09: 22% SMM:9-5 + " SMM.09: 27% SMM:9-6 + " SMM.09: 39% SMM:9-9 + " SMM.09: 89% SMM:9-19 + " SMM.09: 94% SMM:9-20 + " SMM.09: 96% SMM:9-20 + " SMM.09: 96% SMM:9-20 + " SMM.21: 23% SMM:21-2 +uucico program logic SMM.09: 23% SMM:9-6 +uuclean - uucp spool directory clean-up UUCLEAN.8C: 6% UUCLEAN(8C)-1 +Uuclean - Uucp Spool Directory Cleanup SMM.09: 33% SMM:9-8 +UUCP L-DEVICES.5: 31% L-DEVICES(5)-1 + " L_SYS.5: 0% L.SYS(5)-1 + " L_SYS.5: 14% L.SYS(5)-1 + " L_SYS.5: 52% L.SYS(5)-2 + " MAIL.1: 24% MAIL(1)-2 + " MAILADDR.7: 30% MAILADDR(7)-1 + " MAILADDR.7: 84% MAILADDR(7)-3 + " SMM.09: 0% SMM:9-2 + " SMM.10: 64% SMM:10-16 + " SMM.10: 65% SMM:10-17 + " SMM.10: 65% SMM:10-17 + " SMM.10: 66% SMM:10-17 + " SMM.10: 72% SMM:10-18 + " SMM.10: 73% SMM:10-18 + " SMM.10: 74% SMM:10-18 + " SMM.10: 88% SMM:10-21 + " SMM.16: 2% SMM:16-1 + " USD.07: 41% USD:7-10 + " USD.09: 0% USD:9-1 + " USD.10: 12% USD:10-2 + " USD.10: 13% USD:10-2 + " USERFILE.5: 5% USERFILE(5)-1 + " UUCICO.8C: 6% UUCICO(8C)-1 + " UUCICO.8C: 69% UUCICO(8C)-2 + " UUCICO.8C: 73% UUCICO(8C)-2 + " UUPOLL.8C: 88% UUPOLL(8C)-1 + " UUSNAP.8C: 69% UUSNAP(8C)-1 + " UUSNAP.8C: 78% UUSNAP(8C)-1 + " SMM.07A: 4% SMM:07-4 + " SMM.07A: 56% SMM:07-24 + " SMM.07A: 81% SMM:07-36 + " L_CMDS.5: 83% L.CMDS(5)-1 + " SMM.09: 99% SMM:9-21 + " SMM.12A: 53% SMM:12-12 +UUCP, Honey-Danber L_SYS.5: 97% L.SYS(5)-4 +UUCP, Installation and Operation of SMM.09: 3% SMM:9-2 + " SMM.09: 8% SMM:9-2 + " SMM.09: 12% SMM:9-4 + " SMM.09: 17% SMM:9-4 + " SMM.09: 22% SMM:9-6 + " SMM.09: 27% SMM:9-6 + " SMM.09: 32% SMM:9-8 + " SMM.09: 37% SMM:9-8 + " SMM.09: 43% SMM:9-10 + " SMM.09: 48% SMM:9-10 + " SMM.09: 53% SMM:9-12 + " SMM.09: 57% SMM:9-12 + " SMM.09: 61% SMM:9-14 + " SMM.09: 65% SMM:9-14 + " SMM.09: 72% SMM:9-16 + " SMM.09: 77% SMM:9-16 + " SMM.09: 83% SMM:9-18 + " SMM.09: 86% SMM:9-18 + " SMM.09: 92% SMM:9-20 + " SMM.09: 98% SMM:9-20 + " SMM.09: 0% unknown +uucp, rmail - handle remote mail received via RMAIL.1: 9% RMAIL(1)-1 +uucp - unix to unix copy UUCP.1C: 1% UUCP(1C)-1 +Uucp - UNIX to UNIX File Copy SMM.09: 5% SMM:9-2 +uucp account SMM.01: 59% SMM:1-36 +uucp administration SMM.09: 91% SMM:9-19 +UUCP Administrator L_SYS.5: 3% L.SYS(5)-1 + " SMM.09: 81% SMM:9-17 + " SMM.09: 88% SMM:9-19 + " SMM.09: 88% SMM:9-19 + " SMM.09: 88% SMM:9-19 + " USERFILE.5: 29% USERFILE(5)-1 + " UUCP.1C: 80% UUCP(1C)-2 + " UUXQT.8C: 46% UUXQT(8C)-1 +uucp command[s] SMM.09: 5% SMM:9-2 + " SMM.09: 5% SMM:9-2 + " SMM.09: 11% SMM:9-3 + " SMM.09: 12% SMM:9-4 + " SMM.09: 13% SMM:9-4 + " SMM.09: 29% SMM:9-7 + " SMM.10: 4% SMM:10-2 + " SMM.10: 41% SMM:10-12 + " USD.10: 12% USD:10-2 + " UUQ.1C: 91% UUQ(1C)-1 + " SMM.09: 34% SMM:9-8 + " SMM.09: 34% SMM:9-8 + " SMM.09: 96% SMM:9-20 +UUCP connection[s] SMM.01: 56% SMM:1-35 + " SMM.07A: 55% SMM:07-24 + " SMM.07A: 57% SMM:07-25 +UUCP connection, Setting up a SMM.01: 56% SMM:1-35 +uucp files SMM.01: 28% SMM:1-19 + " SMM.10: 90% SMM:10-22 + " UUCICO.8C: 71% UUCICO(8C)-2 +UUCP host[s] MAILADDR.7: 32% MAILADDR(7)-1 + " SMM.09: 53% SMM:9-12 + " SMM.07A: 56% SMM:07-24 +UUCP host[s], uuname - list names of UUNAME.1C: 13% UUNAME(1C)-1 +uucp implementation change[s] SMM.09: 35% SMM:9-8 +Uucp Implementation Description SMM.01: 57% SMM:1-35 + " SMM.09: 2% SMM:9-2 + " SMM.16: 94% SMM:16-12 + " USERFILE.5: 88% USERFILE(5)-2 + " UUCICO.8C: 98% UUCICO(8C)-2 + " UUCP.1C: 68% UUCP(1C)-2 + " SMM.09: 2% SMM:9-2 +UUCP log file[s], uulog - display UULOG.1C: 5% UULOG(1C)-1 +uucp logging SMM.09: 84% SMM:9-18 +uucp login[s] SMM.09: 99% SMM:9-21 + " SMM.09: 99% SMM:9-21 + " SMM.09: 99% SMM:9-21 + " SMM.09: 99% SMM:9-21 +UUCP name[s] L_SYS.5: 62% L.SYS(5)-3 + " SMM.09: 72% SMM:9-15 + " SMM.10: 6% SMM:10-2 + " SMM.10: 18% SMM:10-5 + " UUNAME.1C: 39% UUNAME(1C)-1 +UUCP network MAILADDR.7: 33% MAILADDR(7)-1 + " SMM.09: 49% SMM:9-11 + " SMM.09: 87% SMM:9-19 + " SMM.10: 40% SMM:10-12 + " USD.08: 61% USD:8-73 + " USD.10: 82% USD:10-10 + " UUENCODE.1C: 56% UUENCODE(1C)-1 + " WHOM.N: 95% WHOM(1)-1 +UUCP on TCP/IP SMM.09: 42% SMM:9-9 +uucp on X.25 SMM.09: 42% SMM:9-9 +uucp path routing SMM.12A: 99% SMM:12-23 +uucp performance SMM.21: 72% SMM:21-5 +Uucp Queue Snapshot, Uusnap - SMM.09: 19% SMM:9-5 +uucp security SMM.09: 89% SMM:9-19 +UUCP site[s] UUPOLL.8C: 5% UUPOLL(8C)-1 + " SMM.07A: 4% SMM:07-4 +Uucp Spool Directory Cleanup, Uuclean - SMM.09: 33% SMM:9-8 +UUCP spool queue SMM.09: 37% SMM:9-8 +UUCP utility[s] UULOG.1C: 62% UULOG(1C)-1 + " UUCLEAN.8C: 7% UUCLEAN(8C)-1 +Uucp.h modification[s] SMM.09: 83% SMM:9-18 +Uucpd UUCICO.8C: 47% unknown + " SMM.12A: 96% SMM:12-23 +uuencode - format of an encoded uuencode file UUENCODE.5: 3% UUENCODE(5)-1 +uulog - display UUCP log file[s] UULOG.1C: 5% UULOG(1C)-1 +uuname - list names of UUCP host[s] UUNAME.1C: 13% UUNAME(1C)-1 +uupoll - poll a remote UUCP site UUPOLL.8C: 3% UUPOLL(8C)-1 +uuq SMM.09: 37% SMM:9-8 +uuq - examine or manipulate the uucp queue UUQ.1C: 2% UUQ(1C)-1 +uusend UUENCODE.1C: 21% UUENCODE(1C)-1 +uusend - send a file to a remote host UUSEND.1C: 4% UUSEND(1C)-1 +uusnap SMM.09: 4% SMM:9-2 +uusnap - show snapshot of the UUCP system UUSNAP.8C: 6% UUSNAP(8C)-1 +Uusnap - Uucp Queue Snapshot SMM.09: 19% SMM:9-5 +Uux L_CMDS.5: 14% L.CMDS(5)-1 + " UUCICO.8C: 6% UUCICO(8C)-1 + " SMM.09: 4% SMM:9-2 + " SMM.09: 99% SMM:9-21 +uux - unix to unix command execution UUX.1C: 1% UUX(1C)-1 +uux command SMM.09: 13% SMM:9-4 + " SMM.09: 13% SMM:9-4 + " SMM.09: 14% SMM:9-4 + " SMM.09: 17% SMM:9-4 + " SMM.10: 40% SMM:10-12 + " SMM.10: 49% SMM:10-13 + " SMM.21: 71% SMM:21-5 + " UUSEND.1C: 88% UUSEND(1C)-1 + " SMM.09: 13% SMM:9-4 + " SMM.09: 14% SMM:9-4 + " SMM.09: 33% SMM:9-8 +Uuxqt SMM.09: 99% SMM:9-21 +uuxqt - UUCP execution file interpreter UUXQT.8C: 4% UUXQT(8C)-1 +uuxqt program SMM.09: 16% SMM:9-4 + " SMM.09: 17% SMM:9-4 + " SMM.09: 32% SMM:9-7 + " SMM.09: 32% SMM:9-7 + " SMM.09: 90% SMM:9-19 + " SMM.09: 90% SMM:9-19 +V7 systems SMM.10: 34% SMM:10-10 + " SMM.10: 34% SMM:10-10 + " SMM.10: 34% SMM:10-10 +va - Benson-Varian interface VA.4: 1% VA(4)-1 +Vacation SMM.12A: 53% SMM:12-12 +vacation - return ``I am on vacation'' indication VACATION.1: 3% VACATION(1)-1 +vadvise PS.1: 21% PS(1)-1 +validation, data USD.19: 80% USD:19-6 +valloc - aligned memory allocator VALLOC.3C: 7% VALLOC(3C)-1 +value assignment[s] PS1.02: 25% PS1:2-9 + " PS1.02: 26% PS1:2-10 + " PS1.02: 27% PS1:2-10 +value cell[s] PS2.09: 5% PS2:9-9 + " PS2.09: 5% PS2:9-9 + " PS2.09: 5% PS2:9-9 + " PS2.09: 10% PS2:9-19 + " PS2.09: 16% PS2:9-30 + " PS2.09: 19% PS2:9-38 + " PS2.09: 62% PS2:9-106 + " PS2.09: 64% PS2:9-108 + " PS2.09: 65% PS2:9-111 + " PS2.09: 65% PS2:9-111 + " PS2.09: 65% PS2:9-111 +value of an expression PS1.11a: 85% PS1:11-6 +value parameter[s] SMM.19: 90% SMM:19-25 +value stack PS1.15: 32% PS1:15-9 + " PS1.15: 32% PS1:15-9 + " PS1.15: 32% PS1:15-9 + " PS1.15: 89% PS1:15-28 + " PS2.09: 57% PS2:9-98 + " PS2.09: 57% PS2:9-99 +Variable[s] PS1.02: 24% PS1:2-9 + " PS2.06: 19% PS2:6-8 + " PS2.06: 24% PS2:6-10 + " PS2.10: 83% PS2:10-76 +var parameter[s] PC.1: 33% PC(1)-1 +VARARG[s] LINT.1: 69% LINT(1)-1 + " PRINTF.3S: 13% PRINTF(3S)-1 +varargs - variable argument list VARARGS.3: 2% VARARGS(3)-1 +VARIABLE[s] JOVE.N: 50% JOVE(1)-2 + " JOVE.N: 59% JOVE(1)-2 + " USD.04: 98% USD:4-44 + " USD.06: 33% USD:6-4 + " USD.17: 5% USD:17-3 + " USD.17: 53% USD:17-23 + " USD.19: 50% USD:19-4 +variable[s], associations of UNIX file names with Pascal file PS1.04: 60% PS1:4-31 +variable[s], attributes of USD.04: 55% USD:4-25 +variables, Automatic PS1.01: 8% PS1:1-4 + " PS1.01: 9% PS1:1-4 + " PS1.02: 16% PS1:2-7 +variables, automatic BC.1: 67% BC(1)-2 + " LINT.1: 11% LINT(1)-1 + " SMM.19: 39% SMM:19-11 + " USD.06: 34% USD:6-4 + " USD.06: 35% USD:6-4 + " USD.06: 35% USD:6-4 + " ADB.1: 69% ADB(1)-4 +variable, cdpath CD.1: 83% +variable[s], environment CSH.1: 69% CSH(1)-14 + " CSH.1: 77% CSH(1)-17 + " GETENV.3F: 15% GETENV(3F)-1 + " IOINIT.3F: 44% IOINIT(3F)-1 + " USD.08: 32% USD:8-36 + " USD.08: 71% USD:8-87 + " USD.08: 72% USD:8-88 + " USD.08: 73% USD:8-89 + " USD.11: 81% USD:11-12 + " USD.11: 82% USD:11-12 + " SMM.12A: 29% SMM:12-7 + " PRINTENV.1: 38% unknown +variables, character PS1.01: 9% PS1:1-4 + " PS1.02: 53% PS1:2-18 + " PS1.02: 54% PS1:2-18 + " PS1.02: 54% PS1:2-18 + " PS1.02: 72% PS1:2-24 + " PS2.06: 80% PS2:6-28 +variables, equivalenced F77.1: 62% F77(1)-2 +variable[s], external ADB.1: 72% ADB(1)-4 +variables, floating point F77.1: 47% F77(1)-2 + " PS1.02: 6% PS1:2-5 + " PS1.15: 88% PS1:15-28 + " PS2.06: 20% PS2:6-8 + " PS2.06: 43% PS2:6-15 +variables, formal PS2.09: 29% PS2:9-55 + " PS2.09: 29% PS2:9-55 + " PS2.09: 29% PS2:9-55 +variable[s], Lisp status PS2.09: 0% PS2:9-3 +variable[s], local PS1.10: 12% PS1:10-3 +variable[s], print the value of PS1.11a: 49% PS1:11-3 +variable[s], Register PS1.01: 9% PS1:1-4 + " PS1.01: 56% PS1:1-18 + " PS1.01: 63% PS1:1-21 + " PS1.01: 67% PS1:1-22 + " PS1.01: 92% PS1:1-31 + " PS1.10: 37% PS1:10-8 + " PS1.10: 66% PS1:10-13 +Variables Set By gettmode PS1.18: 67% PS1:18-19 +Variables Set By setterm PS1.18: 63% PS1:18-18 +VAX[s] PS1.01: 0% + " PS1.01: 14% PS1:1-5 + " PS1.01: 32% PS1:1-9 + " PS1.04: 51% PS1:4-26 + " PS1.06: 14% PS1:6-10 + " PS1.08: 40% PS1:8-15 +VAX-11 PS1.01: 50% PS1:1-16 + " PS1.01: 50% PS1:1-16 + " PS1.01: 90% PS1:1-30 + " PS1.04: 48% PS1:4-25 + " PS1.04: 51% PS1:4-26 + " PS1.04: 93% PS1:4-47 + " PS1.04: 94% PS1:4-47 + " PS1.01: 2% +VAX-11, DEC PS1.01: 0% + " PS1.01: 2% + " PS1.01: 6% PS1:1-3 +variables, getenv - get value of environment GETENV.3F: 10% GETENV(3F)-1 +variable[s], global SMM.02: 86% SMM:2-30 + " DBX.5: 9% DBX(5)-1 +variables, initialized CC.1: 34% CC(1)-1 +variable[s], list of JOVE commands and USD.17: 55% USD:17-25 +variable, local DBX.5: 9% DBX(5)-1 +variable, MAIL BIFF.1: 81% +VARIABLES, PREDEFINED CSH.1: 77% CSH(1)-17 +variable[s], Register SMM.13: 54% SMM:13-19 + " SMM.19: 7% SMM:19-3 + " SMM.19: 26% SMM:19-8 + " SMM.19: 42% SMM:19-12 + " SMM.19: 42% SMM:19-12 + " SMM.19: 42% SMM:19-12 + " SMM.19: 49% SMM:19-14 + " DBX.5: 10% DBX(5)-1 +variable[s], setting SH.1: 20% SH(1)-2 + " SH.1: 77% SH(1)-5 +variables, Shell CSH.1: 31% CSH(1)-6 + " CSH.1: 68% CSH(1)-14 + " CSH.1: 76% CSH(1)-16 + " CSH.1: 78% CSH(1)-17 + " USD.03: 33% USD:3-8 + " USD.03: 55% USD:3-14 + " USD.04: 26% USD:4-12 + " USD.04: 26% USD:4-12 + " USD.04: 26% USD:4-12 + " USD.04: 26% USD:4-12 + " USD.04: 54% USD:4-25 + " USD.04: 94% USD:4-43 + " USD.04: 98% USD:4-44 + " CSH.1: 26% CSH(1)-6 +variables, static ADB.1: 69% ADB(1)-4 + " SMM.19: 26% SMM:19-8 +variable, statically allocated DBX.5: 20% DBX(5)-1 +variable[s], Subscripted USD.06: 40% USD:6-5 +variable[s], undefined USD.04: 55% USD:4-26 +variable length records DD.1: 33% DD(1)-1 +variable length strings BSTRING.3: 36% BSTRING(3)-1 +variable numbers of arguments LINT.1: 70% LINT(1)-1 +Variable substitution USD.04: 54% USD:4-25 +variable substitution in the shell CSH.1: 26% CSH(1)-6 +variables as vector[s] USD.04: 64% USD:4-32 +Varian SMM.01: 55% SMM:1-34 + " SMM.06: 3% SMM:6-2 + " VGRIND.1: 48% VGRIND(1)-1 +VAX[s] CONFIG.8: 40% CONFIG(8)-1 +VAX, Installing and Operating 4.3BSD on the SMM.11: 7% SMM:11-2 + " SMM.01: 0% SMM:1-1 +VAX 11/730 and 11/750 TU58 console cassette TU.4: 7% TU(4)-1 +VAX 8600 SMM.02: 3% SMM:2-2 + " SMM.13: 1% SMM:13-2 + " SMM.12A: 72% SMM:12-17 +VAX 8600 console RL02 interface CRL.4: 6% CRL(4)-1 +VAX architecture SMM.15: 92% SMM:15-26 + " TRPFPE.3F: 79% TRPFPE(3F)-1 +VAX console media ARFF.8V: 7% ARFF(8V)-1 +VAX D floating point EXP.3M: 27% EXP(3M)-1 +VAX hardware terminology SMM.01: 3% SMM:1-3 +VAX network interface code, /sys/vaxif SMM.01: 39% SMM:1-26 +VAX specific files CONFIG.8: 85% CONFIG(8)-1 +VAX specific mainline code, /sys/vax SMM.01: 39% SMM:1-26 +VAX-11[s], DEC INTRO.4: 18% INTRO(4)-1 + " A_OUT.5: 4% A.OUT(5)-1 + " EXECL.3: 46% EXECL(3)-1 + " PTRACE.2: 62% PTRACE(2)-2 + " PTRACE.2: 74% PTRACE(2)-2 + " SIGNAL.3C: 72% SIGNAL(3C)-2 + " SIGVEC.2: 79% SIGVEC(2)-3 + " SMM.02: 3% SMM:2-2 + " SMM.12A: 6% SMM:12-3 + " SMM.12A: 67% SMM:12-16 + " SMM.12A: 70% SMM:12-16 + " SMM.12A: 72% SMM:12-17 +VAX-11 assembler, as - AS.1: 2% AS(1)-1 +VAX-11 console CONS.4: 3% CONS(4)-1 +VAX-11/730 SMM.02: 3% SMM:2-2 + " TU.4: 56% TU(4)-1 +VAX-11/730 hardware configuration SMM.01: 3% SMM:1-3 +VAX-11/750 SMM.02: 3% SMM:2-2 + " SMM.02: 36% SMM:2-11 + " SMM.02: 41% SMM:2-12 + " SMM.12A: 72% SMM:12-17 + " SMM.02: 21% SMM:2-7 + " SMM.02: 42% SMM:2-13 + " SMM.14: 60% SMM:14-9 + " TRAPOV.3F: 26% TRAPOV(3F)-1 +VAX-11/780 SMM.02: 3% SMM:2-2 + " SMM.02: 36% SMM:2-11 + " SMM.12A: 72% SMM:12-17 + " SMM.02: 21% SMM:2-7 + " SMM.02: 42% SMM:2-13 +VAX-11/785 SMM.12A: 72% SMM:12-17 +VAX630 (MicroVAX II) SMM.02: 21% SMM:2-7 +VAX730 SMM.02: 21% SMM:2-7 +VAX8600 SMM.13: 98% SMM:13-33 + " SMM.02: 21% SMM:2-7 +VAXStation II (QVSS) SMM.12A: 99% SMM:12-23 +vector[s], interrupt SMM.02: 13% SMM:2-5 +vector[s], variables as USD.04: 64% USD:4-32 +verbs, auxiliary USD.32: 26% USD:32-4 + " USD.32: 34% USD:32-5 + " USD.32: 59% USD:32-9 +verb[s], passive STYLE.1: 73% STYLE(1)-1 + " USD.32: 7% USD:32-2 + " USD.32: 35% USD:32-5 + " USD.32: 35% USD:32-5 + " USD.32: 36% USD:32-5 + " USD.32: 36% USD:32-6 +verb phrases USD.32: 8% USD:32-2 + " USD.32: 33% USD:32-5 + " USD.32: 33% USD:32-5 + " USD.32: 34% USD:32-5 + " USD.32: 34% USD:32-5 + " USD.32: 38% USD:32-6 +Verbose USD.07: 82% USD:7-19 +verbose shell variable CSH.1: 27% CSH(1)-6 + " CSH.1: 87% CSH(1)-18 + " USD.04: 98% USD:4-44 +verification, assert - program ASSERT.3: 8% ASSERT(3)-1 +verifier, lint - a C program LINT.1: 1% LINT(1)-1 +verify mail addresses WHOM.N: 14% WHOM(1)-1 + " USD.08: 60% USD:8-73 +Versatec D1200A printer-plotter PLOT.1G: 69% PLOT(1G)-1 +Versatec printer/plotter[s] SMM.06: 59% SMM:6-5 + " VP.4: 8% VP(4)-1 + " ROFFBIB.1: 53% ROFFBIB(1)-1 + " SMM.01: 55% SMM:1-34 + " SMM.06: 3% SMM:6-2 + " VFONT.5: 5% VFONT(5)-1 +version[s], UNIX M4.1: 42% M4(1)-1 + " USD.25: 7% USD:25-2 + " SETBUF.3S: 90% SETBUF(3S)-1 +version number[s] F77.1: 50% F77(1)-2 + " PATCH.N: 36% PATCH(1)-1 + " SMM.11: 49% SMM:11-7 + " USD.16: 58% USD:16-11 + " USD.17: 96% USD:17-47 +version[s], differences between PS1.14: 7% PS1:14-1 +version number[s] PS1.02: 7% PS1:2-5 + " PS1.14: 5% PS1:14-1 + " PS1.14: 10% PS1:14-2 + " PS1.14: 11% PS1:14-2 + " PS1.14: 12% PS1:14-2 + " PS1.14: 35% PS1:14-5 + " PS2.10: 26% PS2:10-26 +Versions (Branches), Maintaining Different PS1.14: 65% PS1:14-9 +versions of UNIX PS1.06: 33% PS1:6-16 + " PS1.06: 35% PS1:6-17 + " PS1.06: 35% PS1:6-17 +versions of object module[s] WHAT.1: 10% WHAT(1)-1 +vertical bar PS1.04: 31% PS1:4-18 + " PS1.04: 31% PS1:4-18 + " PS1.15: 13% PS1:15-4 + " PS1.15: 13% PS1:15-4 + " PS2.09: 14% PS2:9-26 + " PS2.10: 78% PS2:10-70 +vertical format control PS1.02: 77% PS1:2-25 + " PS1.02: 81% PS1:2-26 + " PS1.03: 22% PS1:3-4 + " PS1.03: 22% PS1:3-4 + " PS1.03: 23% PS1:3-4 + " PS1.03: 24% PS1:3-4 + " PS1.03: 53% PS1:3-7 + " PS1.03: 53% PS1:3-7 + " PS1.03: 80% PS1:3-11 +Vi PS2.01: 57% PS2:1-9 + " PS2.09: 87% PS2:9-140 +vertical line[s] USD.25: 43% USD:25-7 + " USD.25: 43% USD:25-7 + " USD.28: 20% USD:28-4 + " USD.28: 21% USD:28-4 + " USD.28: 21% USD:28-4 + " USD.28: 20% USD:28-4 +vertical motion[s] GETTYTAB.5: 24% GETTYTAB(5)-1 + " USD.24: 66% USD:24-21 + " USD.25: 34% USD:25-6 + " USD.25: 35% USD:25-6 + " USD.25: 36% USD:25-6 + " USD.25: 41% USD:25-7 + " USD.26: 13% USD:26-2 + " USD.27: 22% USD:27-3 + " USD.27: 49% USD:27-6 +Vertical piles EQN.1: 50% EQN(1)-1 + " USD.26: 46% USD:26-4 + " USD.27: 58% USD:27-7 +vertical position[s] USD.24: 30% USD:24-11 + " USD.24: 46% USD:24-15 + " USD.25: 36% USD:25-6 + " USD.25: 55% USD:25-9 + " USD.25: 63% USD:25-9 + " USD.24: 21% USD:24-8 + " USD.24: 32% USD:24-11 + " USD.24: 47% USD:24-16 + " USD.24: 69% USD:24-22 +vertical resolution[s] SMM.20: 14% SMM:20-2 + " SMM.20: 20% SMM:20-2 + " SMM.20: 38% SMM:20-4 + " USD.24: 19% USD:24-8 + " USD.24: 19% USD:24-8 + " USD.24: 88% USD:24-29 +vertical size TTY.4: 97% TTY(4)-10 + " USD.24: 46% USD:24-15 + " USD.24: 46% USD:24-15 + " USD.24: 48% USD:24-16 + " USD.24: 91% USD:24-30 + " USD.24: 92% USD:24-30 + " USD.25: 85% USD:25-13 +vertical space[s] USD.24: 38% USD:24-13 + " USD.24: 39% USD:24-13 + " USD.24: 39% USD:24-13 + " USD.24: 39% USD:24-13 + " USD.24: 39% USD:24-13 + " USD.24: 39% USD:24-13 + " USD.24: 40% USD:24-14 + " USD.24: 40% USD:24-14 + " USD.24: 40% USD:24-14 + " USD.24: 72% USD:24-23 + " USD.25: 15% USD:25-3 + " USD.25: 16% USD:25-3 + " USD.25: 16% USD:25-3 + " USD.25: 16% USD:25-3 + " USD.25: 49% USD:25-8 +vertical spacing FPR.1: 28% FPR(1)-1 + " USD.22: 93% USD:22-18 + " USD.23: 29% USD:23-4 + " USD.24: 7% USD:24-3 + " USD.24: 37% USD:24-13 + " USD.24: 37% USD:24-13 + " USD.24: 86% USD:24-28 + " USD.24: 94% USD:24-32 + " USD.25: 13% USD:25-3 + " USD.25: 13% USD:25-3 + " USD.25: 13% USD:25-3 + " USD.25: 14% USD:25-3 + " USD.25: 14% USD:25-3 + " USD.25: 14% USD:25-3 + " USD.25: 15% USD:25-3 + " USD.25: 64% USD:25-10 + " USD.25: 64% USD:25-10 + " USD.25: 65% USD:25-10 + " USD.27: 61% USD:27-7 + " USD.28: 26% USD:28-4 + " MS.7: 74% MS(7)-3 +Vertical spacing change[s] USD.28: 25% USD:28-4 +Vertical spanning USD.28: 22% USD:28-4 +vertical tab CTYPE.3: 54% CTYPE(3)-1 + " USD.13: 7% USD:13-2 +vertically, Space USD.24: 40% USD:24-14 +vertically spanned heading USD.28: 14% USD:28-3 +Vertically spanned item[s] USD.28: 34% USD:28-5 +very large programs A_OUT.5: 40% A.OUT(5)-2 +vfont - font formats for the Benson-Varian or Versatec VFONT.5: 3% VFONT(5)-1 +vfont to troff conversion VWIDTH.1: 4% VWIDTH(1)-1 +vfork STDIO.3S: 60% STDIO(3S)-1 +vfork - spawn new process in a virtual memory efficient way VFORK.2: 2% VFORK(2)-1 +vgrind CTAGS.1: 29% CTAGS(1)-1 + " SMM.12A: 53% SMM:12-12 +vgrind - grind nice listings of program[s] VGRIND.1: 1% VGRIND(1)-1 +vgrindefs - vgrind's language definition data base VGRINDEFS.5: 1% VGRINDEFS(5)-1 +vhangup - virtually ``hangup'' the current control terminal VHANGUP.2: 5% VHANGUP(2)-1 +Vi EX.1: 46% EX(1)-1 + " USD.15: 0% USD:15-1 + " USD.15: 0% USD:15-1 + " USD.15: 0% USD:15-1 + " USD.15: 1% USD:15-1 + " USD.15: 3% USD:15-2 + " USD.15: 5% USD:15-2 + " USD.15: 9% USD:15-4 + " USD.15: 13% USD:15-4 + " USD.15: 16% USD:15-5 + " USD.15: 18% USD:15-6 + " USD.15: 20% USD:15-6 + " USD.15: 25% USD:15-8 + " USD.15: 28% USD:15-8 + " USD.15: 32% USD:15-10 + " USD.15: 37% USD:15-10 + " USD.15: 40% USD:15-12 + " USD.15: 44% USD:15-12 + " USD.15: 47% USD:15-14 + " USD.15: 51% USD:15-14 + " USD.15: 55% USD:15-16 + " USD.15: 55% USD:15-16 + " USD.15: 58% USD:15-16 + " USD.15: 61% USD:15-18 + " USD.15: 65% USD:15-18 + " USD.15: 69% USD:15-20 + " USD.15: 72% USD:15-20 + " USD.15: 73% USD:15-21 + " USD.15: 73% USD:15-21 + " USD.15: 77% USD:15-22 + " USD.15: 80% USD:15-22 + " USD.15: 84% USD:15-24 + " USD.15: 87% USD:15-24 + " USD.15: 91% USD:15-26 + " USD.15: 94% USD:15-26 + " USD.15: 98% USD:15-28 + " USD.15: 99% USD:15-28 + " USD.16: 0% USD:16-1 + " USD.16: 42% USD:16-8 + " USD.16: 59% USD:16-11 + " ENVIRON.7: 64% ENVIRON(7)-1 + " ERROR.1: 21% ERROR(1)-1 + " EX.1: 8% EX(1)-1 +Vi, Introduction to Display Editing with USD.15: 0% USD:15-1 +vi, learning about LEARN.1: 34% LEARN(1)-1 +vi, movement commands in USD.15: 19% USD:15-6 +vi - screen oriented (visual) display editor based on ex VI.1: 2% VI(1)-1 +vi control character[s], list of USD.15: 77% USD:15-22 +vi file manipulation command, list of USD.15: 63% USD:15-18 +vi options, list of USD.15: 45% USD:15-13 +video, reverse SYSLINE.1: 21% SYSLINE(1)-1 + " SYSLINE.1: 55% SYSLINE(1)-1 + " TERMCAP.5: 61% TERMCAP(5)-9 + " TERMCAP.5: 62% TERMCAP(5)-9 + " TERMCAP.5: 64% TERMCAP(5)-10 + " USD.17: 41% USD:17-18 + " USD.17: 81% USD:17-38 + " WINDOW.1: 8% WINDOW(1)-1 + " WINDOW.1: 16% WINDOW(1)-1 + " WINDOW.1: 20% WINDOW(1)-2 + " WINDOW.1: 74% WINDOW(1)-5 + " WINDOW.1: 75% WINDOW(1)-5 + " WINDOW.1: 95% WINDOW(1)-7 +VIEW USD.15: 19% USD:15-6 +view - define a virtual relation PS2.10: 50% PS2:10-44 +view definition[s] PS2.10: 13% PS2:10-16 + " PS2.10: 90% PS2:10-80 +view more than one file at once USD.17: 0% USD:17-1 +viewing large sections of text USD.14: 46% USD:14-12 +vipw SMM.12A: 97% SMM:12-23 +vipw - edit the password file VIPW.8: 6% VIPW(8)-1 +virtual address PS.4: 22% PS(4)-1 +virtual address space PS2.01: 51% PS2:1-8 + " PS2.01: 51% PS2:1-8 + " PS2.01: 52% PS2:1-8 +virtual address space[s] SMM.02: 90% SMM:2-31 + " SMM.14: 7% SMM:14-2 +Virtual circuit protocol[s] SMM.15: 51% SMM:15-16 +virtual circuit[s] PS1.06: 74% PS1:6-33 + " PS1.06: 75% PS1:6-33 + " PS1.06: 84% PS1:6-36 +virtual memory EXECVE.2: 86% EXECVE(2)-2 + " IK.4: 27% IK(4)-1 + " MEM.4: 48% MEM(4)-1 + " PS.1: 24% PS(1)-1 + " PS.4: 10% PS(4)-1 + " SMM.01: 39% SMM:1-26 + " SMM.01: 79% SMM:1-48 + " SMM.01: 79% SMM:1-48 + " SMM.02: 89% SMM:2-31 + " SMM.02: 89% SMM:2-31 + " SMM.02: 94% SMM:2-32 + " VFORK.2: 4% VFORK(2)-1 + " VMSTAT.1: 7% VMSTAT(1)-1 + " VMSTAT.1: 12% VMSTAT(1)-1 +virtual memory limit[s], configuration of the SMM.01: 36% SMM:1-23 +virtual memory statistics PS.1: 46% PS(1)-2 + " SYSTAT.1: 6% SYSTAT(1)-1 + " SYSTAT.1: 30% SYSTAT(1)-2 +virtual memory system SMM.02: 94% SMM:2-32 + " SMM.13: 42% SMM:13-15 + " SMM.13: 42% SMM:13-15 + " SMM.13: 43% SMM:13-15 + " SMM.13: 93% SMM:13-32 +virtual terminal PS1.06: 43% PS1:6-20 +Void PS1.01: 17% PS1:1-6 +virtual terminal protocol TELNETD.8C: 8% TELNETD(8C)-1 + " TERMCAP.5: 90% TERMCAP(5)-13 +Visible Bell[s] TERMCAP.5: 61% TERMCAP(5)-9 +visible-bell (variable) USD.17: 96% USD:17-47 +visible-spaces-in-window USD.17: 96% USD:17-47 +visit-file (C-X C-V) USD.17: 97% USD:17-47 +Visiting File[s] USD.17: 31% USD:17-14 +VISUAL USD.07: 31% USD:7-8 + " USD.07: 70% USD:7-17 + " USD.07: 73% USD:7-17 + " USD.07: 73% USD:7-17 + " MAIL.1: 74% MAIL(1)-5 + " MAIL.1: 92% MAIL(1)-6 +visual command[s] MAIL.1: 92% MAIL(1)-6 + " USD.07: 70% USD:7-17 + " USD.07: 70% USD:7-17 + " USD.07: 70% USD:7-17 + " USD.07: 73% USD:7-17 + " USD.16: 37% USD:16-7 + " USD.16: 96% USD:16-18 +visual front-end USD.08: 58% USD:8-69 +visual mode[s] FMT.1: 62% FMT(1)-1 + " USD.15: 58% USD:15-16 + " USD.16: 16% USD:16-3 + " USD.16: 17% USD:16-3 + " USD.16: 27% USD:16-5 + " USD.16: 41% USD:16-8 + " USD.16: 41% USD:16-8 + " USD.16: 58% USD:16-11 + " USD.16: 59% USD:16-11 + " USD.16: 78% USD:16-15 + " USD.16: 88% USD:16-16 +vlimit - control maximum system resource consumption VLIMIT.3C: 2% unknown +vlp SMM.12A: 53% SMM:12-12 +vlp - Format Lisp programs to be printed with nroff, vtroff, or troff VLP.1: 2% VLP(1)-1 +VMS DATE.1: 90% DATE(1)-1 + " DATE.1: 90% DATE(1)-1 + " DATE.1: 96% DATE(1)-1 + " DATE.1: 96% DATE(1)-1 + " SMM.12A: 97% SMM:12-23 +VM/CM[s], tn3270 - full-screen remote login to IBM TN3270.1: 1% TN3270(1)-1 +vmh - visual front-end to MH VMH.N: 0% VMH(1)-1 + " USD.08: 58% USD:8-69 +vmhproc VMH.N: 13% VMH(1)-1 +vmstat SYSTAT.1: 6% SYSTAT(1)-1 + " SMM.12A: 53% SMM:12-12 +vmstat - report virtual memory statistics VMSTAT.1: 1% VMSTAT(1)-1 +vmstat display[s] SYSTAT.1: 2% SYSTAT(1)-1 + " SYSTAT.1: 75% SYSTAT(1)-4 + " VMSTAT.1: 83% VMSTAT(1)-2 +vnew[s] USD.09: 12% USD:9-2 +vnew[s], How to use USD.09: 89% USD:9-12 +vnews command[s] USD.09: 90% USD:9-12 + " USD.09: 93% USD:9-12 + " USD.09: 95% USD:9-12 +volume number[s] DUMP.5: 60% DUMP(5)-2 + " USD.31: 32% USD:31-5 +volume, removable PS2.01: 21% PS2:1-4 + " PS2.01: 21% PS2:1-4 + " PS2.01: 21% PS2:1-4 + " PS2.01: 23% PS2:1-4 +VPATH PS1.12: 68% PS1:12-6 + " PS1.12: 68% PS1:12-6 + " PS1.12: 69% PS1:12-6 + " PS1.12: 70% PS1:12-6 + " PS1.12: 70% PS1:12-6 + " PS1.12: 70% PS1:12-6 + " PS1.12: 71% PS1:12-6 + " PS1.12: 72% PS1:12-6 +Vv PS2.09: 14% PS2:9-27 + " PS2.09: 14% PS2:9-27 + " PS2.09: 14% PS2:9-27 + " PS2.09: 14% PS2:9-27 + " PS2.09: 15% PS2:9-28 + " PS2.09: 15% PS2:9-28 +vp - Versatec interface VP.4: 2% VP(4)-1 +VPATH MAKE.1: 62% MAKE(1)-2 + " MAKE.1: 62% MAKE(1)-2 + " MAKE.1: 66% MAKE(1)-2 + " MAKE.1: 68% MAKE(1)-2 + " MAKE.1: 69% MAKE(1)-2 + " MAKE.1: 73% MAKE(1)-2 + " MAKE.1: 97% MAKE(1)-3 + " MAKE.1: 98% MAKE(1)-3 + " SMM.12A: 39% SMM:12-9 +vpr SMM.12A: 54% SMM:12-13 +VS line spacing USD.20: 70% USD:20-5 +VS100 display SMM.13: 1% SMM:13-2 +VT100 TERMCAP.5: 50% TERMCAP(5)-8 + " TERMCAP.5: 77% TERMCAP(5)-11 +vtimes - get information about resource utilization VTIMES.3C: 2% VTIMES(3C)-1 +vv - Proteon proNET 10 Megabit ring VV.4: 2% VV(4)-1 +vwidth - make troff width table for a font VWIDTH.1: 3% VWIDTH(1)-1 +w SMM.12A: 54% SMM:12-13 +w - who is on and what they are doing W.1: 1% W(1)-1 +Wait SMM.10: 78% SMM:10-19 + " EXIT.2: 53% EXIT(2)-1 + " EXIT.3F: 41% EXIT(3F)-1 + " PTRACE.2: 66% unknown + " SMM.13: 13% SMM:13-6 +waddch PS1.18: 32% PS1:18-8 +waddch() PS1.18: 10% PS1:18-4 +waddch(win, ch) PS1.18: 32% PS1:18-8 +waddstr PS1.18: 33% PS1:18-8 +waddstr(win, str) PS1.18: 33% PS1:18-8 +wait(astatus) PS1.06: 9% PS1:6-8 +wait, wait3 - wait for process to terminate WAIT.2: 1% WAIT(2)-1 +wait - await completion of process WAIT.1: 8% WAIT(1)-1 +wait - Bourne shell command SH.1: 1% SH(1)-1 +wait - wait for a process to terminate WAIT.3F: 6% WAIT(3F)-1 +wait channel[s] SMM.15: 19% SMM:15-7 + " SMM.12A: 43% SMM:12-10 +wait command CSH.1: 75% CSH(1)-16 +wait3(astatus, options, arusage) PS1.06: 9% PS1:6-8 +waiting process[s] PS1.06: 22% PS1:6-12 + " PS2.03: 64% PS2:3-10 + " PS2.04: 8% PS2:4-1 + " PSTAT.8: 62% PSTAT(8)-3 +WALL SMM.12A: 54% SMM:12-13 +wakeup service PS1.06: 33% PS1:6-16 +Walking a Tree PS2.06: 84% PS2:6-30 +Warning diagnostic[s] PS1.04: 13% PS1:4-7 + " PS1.04: 23% PS1:4-12 + " PS1.04: 23% PS1:4-12 + " PS1.04: 70% PS1:4-36 + " PS1.04: 89% PS1:4-45 +wall - write to all user[s] WALL.1: 9% WALL(1)-1 +warning message[s] PS1.02: 7% PS1:2-5 + " PS1.02: 21% PS1:2-8 + " PS1.05: 69% PS1:5-10 + " PS1.06: 72% PS1:6-32 + " PS2.09: 37% PS2:9-66 + " SYSLOG.3: 28% SYSLOG(3)-1 +warp factor USD.34: 20% USD:34-3 + " USD.34: 27% USD:34-4 + " USD.34: 40% USD:34-5 + " USD.34: 41% USD:34-5 + " USD.34: 41% USD:34-5 + " USD.34: 44% USD:34-6 + " USD.34: 45% USD:34-6 +wasted space SMM.14: 24% SMM:14-5 + " SMM.14: 35% SMM:14-6 +wasted space as a function of block size SMM.14: 26% SMM:14-5 +watchdog routine[s] SMM.02: 87% SMM:2-30 + " SMM.15: 36% SMM:15-11 + " VV.4: 30% VV(4)-1 +watching, timer UP.4: 83% UP(4)-3 + " UU.4: 80% UU(4)-1 +wc USD.19: 85% USD:19-6 +wc, grep, egrep, fgrep, sed, lex, awk performance comparison USD.19: 85% USD:19-6 +Webster's word list SMM.12A: 79% SMM:12-19 +Weinberger, P. J. AWK.1: 94% AWK(1)-2 +wclear(win) PS1.18: 34% PS1:18-9 +wclrtobot(win) PS1.18: 36% PS1:18-9 +wclrtoeol(win) PS1.18: 36% PS1:18-9 +wdelch(win) PS1.18: 36% PS1:18-9 +wdeleteln(win) PS1.18: 37% PS1:18-10 +well-known group[s] SMM.01: 31% SMM:1-21 +well-known user[s] SMM.01: 31% SMM:1-21 +wgetch(win) PS1.18: 44% PS1:18-12 +wgetstr(win, str) PS1.18: 45% PS1:18-13 +what - show what versions of object modules were used to construct a file WHAT.1: 7% WHAT(1)-1 +what, sccs PS1.14: 31% PS1:14-5 +While Statement PS1.01: 64% PS1:1-21 +whatis - describe what a command i[s] WHATIS.1: 8% WHATIS(1)-1 +whatis database CATMAN.8: 18% CATMAN(8)-1 + " CATMAN.8: 30% CATMAN(8)-1 + " CATMAN.8: 34% CATMAN(8)-1 + " CATMAN.8: 93% CATMAN(8)-1 + " SMM.12A: 39% SMM:12-9 +Whatnow USD.08: 86% USD:8-104 +whatnow - prompting front-end for send WHATNOW.N: 0% unknown + " USD.08: 59% USD:8-71 +whatnow program COMP.N: 62% COMP(1)-1 + " COMP.N: 67% COMP(1)-1 + " DIST.N: 56% DIST(1)-1 + " DIST.N: 61% DIST(1)-2 + " FORW.N: 62% FORW(1)-2 + " FORW.N: 65% FORW(1)-2 + " REPL.N: 70% REPL(1)-2 + " REPL.N: 72% REPL(1)-2 + " USD.08: 4% USD:8-4 + " USD.08: 16% USD:8-16 + " USD.08: 16% USD:8-16 + " USD.08: 16% USD:8-17 + " USD.08: 18% USD:8-19 + " USD.08: 18% USD:8-19 + " USD.08: 18% USD:8-19 + " USD.08: 22% USD:8-24 + " USD.08: 22% USD:8-24 + " USD.08: 23% USD:8-25 + " USD.08: 49% USD:8-58 + " USD.08: 49% USD:8-58 +whatnowproc, default DIST.N: 46% DIST(1)-1 + " MH-PROFILE.N: 64% MH-PROFILE(5)-4 + " REPL.N: 31% REPL(1)-1 + " USD.08: 17% USD:8-18 + " USD.08: 48% USD:8-57 + " USD.08: 72% USD:8-88 +wheel SMM.01: 31% SMM:1-21 +wheel group SU.1: 60% SU(1)-1 +wherei[s] SMM.12A: 54% SMM:12-13 +whereis - locate source, binary, and or manual for program WHEREIS.1: 3% WHEREIS(1)-1 +which SMM.12A: 54% SMM:12-13 +which - locate a program file including aliases and paths (csh only) WHICH.1: 6% WHICH(1)-1 +while - Bourne shell command SH.1: 0% SH(1)-1 + " USD.03: 43% USD:3-10 +while command CSH.1: 75% CSH(1)-16 +white space AWK.1: 14% AWK(1)-1 + " GETOPT.3: 18% GETOPT(3)-1 + " PR.1: 75% PR(1)-1 + " PS1.01: 0% + " PS1.01: 1% + " PS1.01: 79% PS1:1-26 + " PS1.16: 76% PS1:16-10 + " PS1.17: 52% PS1:17-4 + " PS2.06: 28% PS2:6-11 + " SMM.10: 92% SMM:10-23 + " SMM.19: 95% SMM:19-26 + " USD.15: 51% USD:15-15 + " USD.15: 51% USD:15-15 + " USD.15: 58% USD:15-16 + " USD.15: 77% USD:15-22 + " USD.15: 90% USD:15-25 + " USD.16: 39% USD:16-7 + " USD.16: 39% USD:16-7 + " USD.16: 39% USD:16-7 + " USD.16: 40% USD:16-8 + " USD.16: 66% USD:16-13 + " USD.16: 79% USD:16-15 + " USD.16: 79% USD:16-15 + " USD.16: 80% USD:16-15 + " USD.16: 89% USD:16-17 + " USD.17: 16% USD:17-7 + " USD.19: 15% USD:19-2 + " USD.22: 17% USD:22-3 + " USD.22: 18% USD:22-3 + " USD.23: 32% USD:23-4 + " USD.24: 18% USD:24-8 + " USD.26: 33% USD:26-3 + " COL.1: 72% COL(1)-1 +white space[s], .bl Leave contiguou USD.23: 48% USD:23-6 +whitespace DIFF.1: 79% DIFF(1)-2 + " UNIQ.1: 82% unknown +who RWHO.1C: 20% RWHO(1C)-1 + " USD.01: 10% USD:1-2 +who - who is on the system WHO.1: 4% WHO(1)-1 +who am I WHO.1: 84% unknown +whoami SMM.12A: 54% SMM:12-13 +whoami - print effective current user id WHOAMI.1: 14% WHOAMI(1)-1 +whois - DARPA Internet user name directory service WHOIS.1: 4% WHOIS(1)-1 +Whole-line Oriented Function[s] USD.18: 41% USD:18-4 +whom - report to whom a message would go WHOM.N: 1% WHOM(1)-1 + " USD.08: 60% USD:8-73 +width, field PS1.02: 71% PS1:2-24 + " PS1.03: 33% PS1:3-5 + " PS1.03: 84% PS1:3-11 + " PS2.10: 64% PS2:10-56 +width[s], character SMM.20: 52% SMM:20-5 + " USD.24: 3% USD:24-2 +width[s], column MS.7: 43% MS(7)-2 + " USD.20: 23% USD:20-2 + " USD.23: 40% USD:23-5 + " USD.24: 90% USD:24-30 + " USD.28: 17% USD:28-3 + " USD.28: 27% USD:28-5 + " USD.28: 39% USD:28-6 + " USD.28: 26% USD:28-4 +width, field PRINTF.3S: 44% PRINTF(3S)-1 + " PRINTF.3S: 46% PRINTF(3S)-1 + " PRINTF.3S: 48% PRINTF(3S)-1 + " PRINTF.3S: 48% PRINTF(3S)-1 + " PRINTF.3S: 52% PRINTF(3S)-2 + " PRINTF.3S: 60% PRINTF(3S)-2 + " PRINTF.3S: 62% PRINTF(3S)-2 + " PRINTF.3S: 90% PRINTF(3S)-2 + " SCANF.3S: 22% SCANF(3S)-1 + " SCANF.3S: 29% SCANF(3S)-1 + " SCANF.3S: 49% SCANF(3S)-1 +width, page ADB.1: 72% ADB(1)-4 + " LP.4: 79% LP(4)-1 + " LPD.8: 69% LPD(8)-2 + " LPR.1: 68% LPR(1)-2 + " PRINTCAP.5: 39% PRINTCAP(5)-1 + " PRINTCAP.5: 40% PRINTCAP(5)-1 + " PRINTCAP.5: 73% PRINTCAP(5)-2 +width computation[s] USD.25: 72% USD:25-11 +Width Function USD.24: 16% USD:24-7 + " USD.24: 54% USD:24-18 + " USD.24: 63% USD:24-20 + " USD.24: 64% USD:24-20 + " USD.24: 64% USD:24-20 + " USD.24: 64% USD:24-21 + " USD.25: 37% USD:25-6 +wildcard addressing SPP.4P: 24% SPP(4P)-1 + " TCP.4P: 33% TCP(4P)-1 +wildcard route[s] INTRO.4N: 49% INTRO(4N)-2 + " INTRO.4N: 67% INTRO(4N)-3 + " INTRO.4N: 69% INTRO(4N)-3 + " SMM.01: 65% SMM:1-40 +WINDOW[s] USD.17: 47% USD:17-21 + " USD.17: 82% USD:17-39 + " USD.17: 85% USD:17-41 + " USD.17: 93% USD:17-45 + " USD.16: 96% USD:16-18 + " SMM.12A: 55% SMM:12-13 +winch(win) PS1.18: 49% PS1:18-14 +WINDOW PS1.18: 6% PS1:18-3 +window, Close WINDOW.1: 33% WINDOW(1)-3 +window, Create a new WINDOW.1: 27% WINDOW(1)-2 +window, Move WINDOW.1: 78% WINDOW(1)-6 + " WINDOW.1: 35% WINDOW(1)-3 +window, Move the cursor of the current WINDOW.1: 38% WINDOW(1)-3 +window[s], outer PS1.18: 48% PS1:18-14 + " PS1.18: 48% PS1:18-14 +window[s], overlapping PS1.18: 20% PS1:18-6 + " PS1.18: 56% PS1:18-16 +window clear PS1.18: 36% PS1:18-9 + " PS1.18: 36% PS1:18-9 +WINDOW structure PS1.18: 68% PS1:18-20 + " PS1.18: 68% PS1:18-20 +windows, multiple ERROR.1: 7% ERROR(1)-1 + " USD.17: 3% USD:17-2 + " USD.17: 40% USD:17-18 +Window[s], Running Processes in JOVE USD.17: 46% USD:17-20 +window, Scroll the current WINDOW.1: 36% WINDOW(1)-3 +Window, Shell in a USD.17: 45% USD:17-20 +window - window environment on ASCII terminal[s] WINDOW.1: 0% WINDOW(1)-1 +window cursor[s] WINDOW.1: 73% WINDOW(1)-5 + " WINDOW.1: 75% WINDOW(1)-5 + " WINDOW.1: 96% WINDOW(1)-7 +window field SMM.13: 78% SMM:13-26 + " SMM.13: 78% SMM:13-26 + " SMM.12A: 78% SMM:12-18 +Window mode USD.17: 94% USD:17-45 + " SYSLINE.1: 43% SYSLINE(1)-1 +window size[s] MORE.1: 56% MORE(1)-2 + " RLOGIN.1C: 48% RLOGIN(1C)-1 + " RLOGIND.8C: 70% RLOGIND(8C)-1 + " SMM.13: 24% SMM:13-9 + " SMM.13: 24% SMM:13-9 + " TTY.4: 96% TTY(4)-10 + " USD.15: 34% USD:15-10 + " USD.15: 34% USD:15-10 + " USD.15: 43% USD:15-12 + " USD.15: 62% USD:15-18 + " USD.15: 62% USD:15-18 + " USD.16: 5% USD:16-2 + " WINDOW.1: 36% WINDOW(1)-3 + " WINDOW.1: 37% WINDOW(1)-3 + " WINDOW.1: 37% WINDOW(1)-3 + " WINDOW.1: 38% WINDOW(1)-3 + " WINDOW.1: 38% WINDOW(1)-3 + " SMM.12A: 48% SMM:12-11 + " SMM.12A: 52% SMM:12-12 + " SMM.12A: 16% SMM:12-5 +window size change[s] RLOGIND.8C: 72% RLOGIND(8C)-1 + " SMM.13: 8% SMM:13-4 + " SMM.12A: 45% SMM:12-10 + " SMM.12A: 47% SMM:12-11 + " SMM.12A: 60% SMM:12-14 + " SMM.12A: 76% SMM:12-18 + " SIGNAL.3C: 38% unknown +window size information TTY.4: 98% TTY(4)-10 + " TTY.4: 98% TTY(4)-10 + " SMM.12A: 76% SMM:12-18 +window system[s] GETTTYENT.3: 51% GETTTYENT(3)-1 + " GETTTYENT.3: 74% GETTTYENT(3)-2 + " GETTTYENT.3: 75% GETTTYENT(3)-2 + " TCP.4P: 59% TCP(4P)-1 + " SMM.12A: 87% SMM:12-20 + " SMM.12A: 99% SMM:12-23 +window's size, get and set a terminal or SMM.13: 6% SMM:13-3 +window-find (C-X 4) USD.17: 97% USD:17-47 +windowing information SMM.15: 31% SMM:15-10 + " SMM.15: 53% SMM:15-16 + " SMM.15: 84% SMM:15-24 +winsch(win, c) PS1.18: 38% PS1:18-10 +winsertln(win) PS1.18: 39% PS1:18-11 +Wirth, Niklaus PS1.04: 6% PS1:4-3 + " PS1.04: 6% PS1:4-4 + " PS1.04: 27% PS1:4-15 +winsize, struct TTY.4: 96% TTY(4)-10 + " TTY.4: 98% TTY(4)-10 + " TTY.4: 98% TTY(4)-10 +Wirth, Niklaus PXREF.1: 83% PXREF(1)-1 +WKS SMM.11: 56% SMM:11-8 + " SMM.11: 56% SMM:11-8 + " SMM.11: 56% SMM:11-8 + " SMM.11: 57% SMM:11-8 + " SMM.11: 78% SMM:11-12 + " SMM.11: 78% SMM:11-12 +WNOHANG WAIT.2: 40% WAIT(2)-1 + " WAIT.2: 88% WAIT(2)-2 +Word[s] USD.04: 99% USD:4-44 +wmove() PS1.18: 11% PS1:18-4 +wmove(win, y, x) PS1.18: 39% PS1:18-11 +word[s], argument USD.04: 16% USD:4-8 + " USD.04: 69% USD:4-34 + " USD.04: 69% USD:4-34 +word[s], lengths of PS1.16: 74% PS1:16-10 +word boundaries PS1.02: 34% PS1:2-12 + " PS1.02: 34% PS1:2-12 + " PS1.09: 53% PS1:9-6 +words, common INVERT.N: 42% INVERT(1)-1 +word[s], count WC.1: 26% unknown +words, English LOOKBIB.1: 37% LOOKBIB(1)-1 +word[s], misspelled USD.01: 74% USD:1-11 + " USD.17: 31% USD:17-14 + " USD.17: 94% USD:17-45 +word[s], type SMM.19: 11% SMM:19-4 + " SMM.19: 14% SMM:19-5 + " SMM.19: 14% SMM:19-5 + " SMM.19: 15% SMM:19-5 + " SMM.19: 27% SMM:19-8 + " SMM.19: 30% SMM:19-9 +word, unabbreviate USD.16: 56% USD:16-11 +word, underline a USD.20: 49% USD:20-4 +Word Abbrev USD.17: 52% USD:17-23 +Word Abbrev mode USD.17: 3% USD:17-2 + " USD.17: 88% USD:17-42 + " USD.17: 97% USD:17-47 +Word Abbreviation[s] USD.15: 58% USD:15-17 + " USD.15: 59% USD:15-17 + " USD.17: 52% USD:17-23 + " USD.17: 57% USD:17-25 + " USD.17: 60% USD:17-27 +word boundary[s] SMM.19: 65% SMM:19-18 +Word Command[s] USD.17: 24% USD:17-11 +word count WC.1: 10% WC(1)-1 +word erase character STTY.1: 97% STTY(1)-3 +word length[s] STYLE.1: 27% STYLE(1)-1 + " USD.32: 1% USD:32-1 + " USD.32: 16% USD:32-3 + " USD.32: 26% USD:32-4 + " USD.32: 26% USD:32-4 +word list[s] DEROFF.1: 59% DEROFF(1)-1 + " SMM.18: 52% SMM:18-3 + " SMM.12A: 79% SMM:12-19 + " HIER.7: 43% HIER(7)-4 +word list[s], Webster' SMM.12A: 79% SMM:12-19 +word searching GREP.1: 37% GREP(1)-1 +word usage USD.32: 1% USD:32-1 + " USD.32: 4% USD:32-1 + " USD.32: 6% USD:32-2 + " USD.32: 10% USD:32-2 + " USD.32: 30% USD:32-5 + " USD.32: 30% USD:32-5 + " USD.32: 39% USD:32-6 + " USD.32: 69% USD:32-10 +word-abbrev-mode USD.17: 97% USD:17-47 +word-erase character TTY.4: 26% TTY(4)-3 +words in a box USD.22: 89% USD:22-17 +wordy sentences DICTION.1: 7% DICTION(1)-1 +working directory[s] CD.1: 21% + " CSH.1: 66% CSH(1)-14 +worm - Play the growing worm game WORM.6: 4% unknown +worms - animate worms on a display terminal WORMS.6: 6% WORMS(6)-1 +wprintw(win, fmt, arg1, arg2, ...) PS1.18: 41% PS1:18-11 +wrap around past the end of the file USD.16: 97% USD:16-18 +wrap(old, proto) PS1.06: 42% PS1:6-20 +wrap-search (variable) USD.17: 98% USD:17-48 +wrapmargin VI.1: 53% VI(1)-1 + " USD.16: 97% USD:16-18 +wrapscan USD.16: 97% USD:16-18 +wrefresh() PS1.18: 8% PS1:18-4 + " PS1.18: 20% PS1:18-6 +wrefresh(win) PS1.18: 41% PS1:18-11 +WRITE[s] PS2.03: 29% PS2:3-5 + " PS2.03: 58% PS2:3-9 + " PS2.03: 60% PS2:3-9 + " PS2.03: 60% PS2:3-9 + " PS2.03: 60% PS2:3-9 + " PS2.03: 60% PS2:3-9 + " PS2.03: 60% PS2:3-9 + " PS2.03: 61% PS2:3-10 + " PS2.05: 32% PS2:5-3 + " PS2.05: 71% PS2:5-5 + " PS2.05: 98% PS2:5-7 +writable, terminals world SMM.12: 50% SMM:12-1 + " SMM.12: 55% SMM:12-1 + " SMM.12A: 49% SMM:12-11 + " SMM.12A: 55% SMM:12-13 +writable terminal SMM.12A: 49% SMM:12-11 + " SMM.12A: 55% SMM:12-13 +WRITE[s] STAT.2: 38% STAT(2)-1 + " STAT.2: 45% STAT(2)-2 + " STAT.2: 50% STAT(2)-2 + " SMM.12A: 55% SMM:12-13 +write, open for read & PS1.06: 59% PS1:6-28 +write permission PS1.06: 65% PS1:6-29 +write with socket[s], read and PS1.06: 83% PS1:6-36 +write() PS1.07a: 77% PS1:7-19 +write(fd, buf, nbytes) PS1.06: 52% PS1:6-25 +write, writev - write output WRITE.2: 1% WRITE(2)-1 +write - write to another user WRITE.1: 3% WRITE(1)-1 +write a character PUTC.3F: 9% PUTC(3F)-1 + " PUTC.3S: 6% PUTC(3S)-1 +Write access ACCESS.2: 69% ACCESS(2)-1 + " CSH.1: 47% CSH(1)-9 +Write command USD.12: 16% USD:12-2 + " ED.1: 82% CONS(4)-1 + " USD.12: 16% USD:12-2 +WRITE environment variable USD.11: 54% USD:11-8 + " USD.11: 84% USD:11-12 +write function USD.18: 71% USD:18-7 +write on a pipe with no one to read it SIGNAL.3C: 25% unknown +Write permission UNLINK.2: 57% UNLINK(2)-1 + " ACCESS.3F: 47% ACCESS(3F)-1 + " CHMOD.1: 80% CHMOD(1)-1 +write system call SMM.14: 31% SMM:14-5 + " SMM.14: 67% SMM:14-10 +write-file (C-X C-W) USD.17: 98% USD:17-48 +write-files-on-make (variable) USD.17: 98% USD:17-48 +write-macros-to-file USD.17: 99% USD:17-48 +write-modified-files (C-X C-M) USD.17: 99% USD:17-48 +write-region USD.17: 99% USD:17-48 +write-word-abbrev-file USD.17: 98% USD:17-48 +Writes changes made back to file USD.16: 59% USD:16-11 +writing, gather WRITE.2: 13% WRITE(2)-1 +Writing[s], quitting[s], editing new file USD.15: 37% USD:15-11 +writing files SMM.14: 67% SMM:14-10 + " USD.12: 1% USD:12-1 + " USD.13: 76% USD:13-13 + " FOPEN.3S: 25% FOPEN(3S)-1 +Writing Notes & Response[s] USD.11: 45% USD:11-7 +Writing out Part of a File USD.13: 79% USD:13-13 +Writing Papers with NROFF using -me USD.22: 0% USD:22-1 +Writing parts of the buffer USD.14: 86% USD:14-21 +writing program[s] USD.01: 5% USD:1-2 +writing style STYLE.1: 20% STYLE(1)-1 + " USD.10: 62% USD:10-7 + " USD.32: 0% USD:32-1 + " USD.32: 2% USD:32-1 + " USD.32: 3% USD:32-1 + " USD.32: 4% USD:32-1 + " USD.32: 23% USD:32-4 + " USD.32: 30% USD:32-5 + " USD.32: 76% USD:32-11 +Writing text to disk USD.14: 24% USD:14-7 + " USD.14: 1% USD:14-2 + " USD.12: 15% USD:12-2 +Writing to other user[s] USD.01: 20% USD:1-4 +Writing Tools USD.32: 0% USD:32-1 + " USD.32: 0% USD:32-1 + " USD.32: 3% USD:32-1 + " USD.32: 6% USD:32-2 + " USD.32: 12% USD:32-2 + " USD.32: 19% USD:32-4 + " USD.32: 28% USD:32-4 + " USD.32: 36% USD:32-6 + " USD.32: 44% USD:32-6 + " USD.32: 51% USD:32-8 + " USD.32: 58% USD:32-8 + " USD.32: 65% USD:32-10 + " USD.32: 72% USD:32-10 + " USD.32: 76% USD:32-11 + " USD.32: 77% USD:32-12 + " USD.32: 81% USD:32-12 + " USD.32: 82% USD:32-14 + " USD.32: 93% USD:32-14 +Writing Tools - The STYLE and DICTION Program[s] USD.32: 0% USD:32-1 +written, characters ED.1: 84% ED(1)-5 + " USD.16: 59% USD:16-11 +written, paper SMM.05: 0% SMM:5-2 + " SMM.05: 4% SMM:5-3 + " USD.04: 78% USD:4-38 +written document[s] USD.08: 0% USD:8-2 + " USD.08: 0% USD:8-2 + " USD.08: 0% USD:8-2 +wscanw(win, fmt, arg1, arg2, ...) PS1.18: 46% PS1:18-13 +wstandend(win) PS1.18: 42% PS1:18-12 +wstandout(win) PS1.18: 42% PS1:18-12 +Xerox PS1.08: 5% PS1:8-3 + " PS1.08: 33% PS1:8-12 + " PS1.08: 38% PS1:8-14 + " PS1.08: 95% PS1:8-40 +Xerox's Bulk Data Transfer Protocol PS1.08: 87% PS1:8-36 +wtmp file[s] AC.8: 23% AC(8)-1 + " AC.8: 49% AC(8)-1 + " LAST.1: 11% LAST(1)-1 + " UTMP.5: 34% UTMP(5)-1 + " WHO.1: 52% WHO(1)-1 +wump - the game of hunt-the-wumpu[s] WUMP.6: 6% WUMP(6)-1 +WUNTRACED WAIT.2: 45% WAIT(2)-1 +X - window system SMM.12A: 99% SMM:12-23 +X.25, uucp on SMM.09: 42% SMM:9-9 +X.25 carriers L_SYS.5: 24% L.SYS(5)-1 +X.25 PAD connection SMM.09: 57% SMM:9-13 + " L_SYS.5: 43% L.SYS(5)-2 + " L-DEVICES.5: 21% L-DEVICES(5)-1 +Xerox Development Environment NS.3N: 24% NS(3N)-1 +Xerox Internet Datagram Protocol IDP.4P: 1% IDP(4P)-1 + " SMM.12A: 74% SMM:12-17 +Xerox Interpress format SMM.12A: 97% SMM:12-23 +Xerox Network System network communication protocol[s] SMM.12A: 1% SMM:12-2 +Xerox Network System protocol[s] SMM.12A: 73% SMM:12-17 + " IFCONFIG.8C: 21% IFCONFIG(8C)-1 + " INTRO.4N: 27% INTRO(4N)-1 + " NS.4F: 2% NS(4F)-1 + " SMM.01: 60% SMM:1-38 + " SMM.02: 42% SMM:2-13 + " SMM.02: 99% SMM:2-33 + " SMM.13: 58% SMM:13-20 + " SMM.13: 81% SMM:13-28 + " SMM.13: 81% SMM:13-28 + " SOCKET.2: 14% SOCKET(2)-1 + " NS.3N: 3% NS(3N)-1 + " NSIP.4: 14% NSIP(4)-1 + " ROUTED.8C: 95% ROUTED(8C)-3 + " SMM.13: 33% SMM:13-12 + " SMM.13: 88% SMM:13-30 + " DE.4: 76% DE(4)-1 + " IL.4: 67% IL(4)-1 + " IX.4: 72% IX(4)-1 + " SMM.09: 30% SMM:9-7 +Xerox NS support code[s], /sys/netn SMM.01: 39% SMM:1-26 +Xerox PUP protocol[s] SMM.12A: 99% SMM:12-23 +Xerox Sequenced Packet Protocol SPP.4P: 1% SPP(4P)-1 + " SMM.12A: 76% SMM:12-18 +xget - secret mail XSEND.1: 5% XSEND(1)-1 +xmit, stray ACC.4: 66% ACC(4)-1 + " IL.4: 92% IL(4)-1 + " IX.4: 78% IX(4)-1 + " PCL.4: 51% PCL(4)-1 +XNS addresses NS.3N: 15% NS(3N)-1 +XNSrouted ROUTED.8C: 95% ROUTED(8C)-3 + " SMM.12A: 97% SMM:12-23 +XNSrouted - NS Routing Information Protocol daemon XNSROUTED.8C: 1% XNSROUTED(8C)-1 +xsend SMM.12A: 55% SMM:12-13 +xsend, xget, enroll - secret mail XSEND.1: 4% unknown +xstr SMM.12A: 55% SMM:12-13 +xstr - extract strings from C programs to implement shared string[s] XSTR.1: 2% XSTR(1)-1 +XTABS SMM.06: 39% SMM:6-3 + " TELNETD.8C: 53% TELNETD(8C)-1 + " TERMCAP.3X: 70% TERMCAP(3X)-1 + " TERMCAP.3X: 73% TERMCAP(3X)-1 +y.output YACC.1: 40% YACC(1)-1 +y.tab.c PS1.15: 62% PS1:15-18 +Yacc PS1.12: 67% PS1:12-6 + " PS1.15: 0% + " PS1.15: 0% + " PS1.15: 0% PS1:15-1 + " PS1.15: 1% PS1:15-1 + " PS1.15: 2% PS1:15-1 + " PS1.15: 2% PS1:15-1 + " PS1.15: 2% PS1:15-1 + " PS1.15: 3% PS1:15-1 + " PS1.15: 4% PS1:15-2 + " PS1.15: 7% PS1:15-2 + " PS1.15: 7% PS1:15-2 + " PS1.15: 8% PS1:15-2 + " PS1.15: 8% PS1:15-2 + " PS1.15: 9% PS1:15-3 + " PS1.15: 10% PS1:15-3 + " PS1.15: 12% PS1:15-4 + " PS1.15: 13% PS1:15-4 + " PS1.15: 15% PS1:15-4 + " PS1.15: 17% PS1:15-5 + " PS1.15: 19% PS1:15-6 + " PS1.15: 19% PS1:15-6 + " PS1.15: 19% PS1:15-6 + " PS1.15: 22% PS1:15-6 + " PS1.15: 22% PS1:15-6 + " PS1.15: 23% PS1:15-7 + " PS1.15: 24% PS1:15-7 + " PS1.15: 26% PS1:15-8 + " PS1.15: 26% PS1:15-8 + " PS1.15: 31% PS1:15-8 + " PS1.15: 33% PS1:15-9 + " PS1.15: 33% PS1:15-10 + " PS1.15: 35% PS1:15-10 + " PS1.15: 38% PS1:15-11 + " PS1.15: 39% PS1:15-12 + " PS1.15: 40% PS1:15-12 + " PS1.15: 40% PS1:15-12 + " PS1.15: 41% PS1:15-12 + " PS1.15: 42% PS1:15-12 + " PS1.15: 42% PS1:15-12 + " PS1.15: 43% PS1:15-12 + " PS1.15: 46% PS1:15-14 + " PS1.15: 49% PS1:15-14 + " PS1.15: 50% PS1:15-14 + " PS1.15: 52% PS1:15-16 + " PS1.15: 53% PS1:15-16 + " PS1.15: 55% PS1:15-16 + " PS1.15: 56% PS1:15-16 + " PS1.15: 57% PS1:15-16 + " PS1.15: 61% PS1:15-18 + " PS1.15: 62% PS1:15-18 + " PS1.15: 62% PS1:15-18 + " PS1.15: 63% PS1:15-18 + " PS1.15: 65% PS1:15-18 + " PS1.15: 69% PS1:15-19 + " PS1.15: 69% PS1:15-20 + " PS1.15: 72% PS1:15-20 + " PS1.15: 74% PS1:15-21 + " PS1.15: 74% PS1:15-21 + " PS1.15: 74% PS1:15-21 + " PS1.15: 75% PS1:15-21 + " PS1.15: 75% PS1:15-22 + " PS1.15: 75% PS1:15-22 + " PS1.15: 78% PS1:15-22 + " PS1.15: 79% PS1:15-22 + " PS1.15: 81% PS1:15-24 + " PS1.15: 83% PS1:15-24 + " PS1.15: 84% PS1:15-26 + " PS1.15: 85% PS1:15-26 + " PS1.15: 86% PS1:15-26 + " PS1.15: 87% PS1:15-28 + " PS1.15: 90% PS1:15-28 + " PS1.15: 93% PS1:15-28 + " PS1.15: 94% PS1:15-30 + " PS1.15: 95% PS1:15-30 + " PS1.15: 97% PS1:15-32 + " PS1.15: 98% PS1:15-32 + " PS1.15: 99% PS1:15-33 + " PS1.15: 99% PS1:15-33 + " PS1.16: 3% PS1:16-1 + " PS1.16: 13% PS1:16-2 + " PS1.16: 13% PS1:16-2 + " PS1.16: 13% PS1:16-2 + " PS1.16: 14% PS1:16-2 + " PS1.16: 15% PS1:16-2 + " PS1.16: 15% PS1:16-2 + " PS1.16: 36% PS1:16-5 + " PS1.16: 69% PS1:16-9 + " PS1.16: 69% PS1:16-9 + " PS1.16: 69% PS1:16-9 + " PS1.16: 69% PS1:16-9 + " PS1.16: 70% PS1:16-9 + " PS1.16: 70% PS1:16-9 +y.tab.h YACC.1: 49% YACC(1)-1 +YACC CTAGS.1: 6% CTAGS(1)-1 + " VGRIND.1: 60% VGRIND(1)-1 + " USD.19: 83% USD:19-6 + " SMM.12A: 14% SMM:12-4 +Yacc, features of SMM.19: 19% SMM:19-6 +yacc - yet another compiler-compiler YACC.1: 2% YACC(1)-1 +Yacc value stack SMM.19: 18% SMM:19-6 +Yale ASCII Terminal Communication System MAP3270.5: 92% unknown +yacc grammar hints on style PS1.15: 65% PS1:15-19 +Yacc Input Syntax PS1.15: 84% PS1:15-26 +Yacc library PS1.16: 71% PS1:16-9 + " PS1.15: 64% PS1:15-18 +Yacc parser[s] PS1.15: 25% PS1:15-7 + " PS1.15: 67% PS1:15-19 + " PS1.16: 71% PS1:16-9 +Yacc specification[s] PS1.15: 8% PS1:15-3 + " PS1.15: 11% PS1:15-3 + " PS1.15: 81% PS1:15-24 + " PS1.15: 82% PS1:15-24 + " PS1.15: 84% PS1:15-26 +Yacc value stack PS1.15: 74% PS1:15-21 + " PS1.15: 75% PS1:15-22 + " PS1.15: 78% PS1:15-22 + " PS1.15: 89% PS1:15-28 +YACCE PS1.12: 67% PS1:12-6 + " PS1.12: 98% PS1:12-9 +YACCR PS1.12: 67% PS1:12-6 + " PS1.12: 98% PS1:12-9 +Yet Another Compiler-Compiler PS1.15: 0% + " PS1.15: 0% + " PS1.15: 4% PS1:15-2 + " PS1.15: 8% PS1:15-2 + " PS1.15: 12% PS1:15-4 + " PS1.15: 15% PS1:15-4 + " PS1.15: 19% PS1:15-6 + " PS1.15: 22% PS1:15-6 + " PS1.15: 26% PS1:15-8 + " PS1.15: 31% PS1:15-8 + " PS1.15: 33% PS1:15-10 + " PS1.15: 35% PS1:15-10 + " PS1.15: 39% PS1:15-12 + " PS1.15: 43% PS1:15-12 + " PS1.15: 46% PS1:15-14 + " PS1.15: 50% PS1:15-14 + " PS1.15: 52% PS1:15-16 + " PS1.15: 57% PS1:15-16 + " PS1.15: 61% PS1:15-18 + " PS1.15: 65% PS1:15-18 + " PS1.15: 69% PS1:15-20 + " PS1.15: 72% PS1:15-20 + " PS1.15: 75% PS1:15-22 + " PS1.15: 79% PS1:15-22 + " PS1.15: 81% PS1:15-24 + " PS1.15: 83% PS1:15-24 + " PS1.15: 84% PS1:15-26 + " PS1.15: 86% PS1:15-26 + " PS1.15: 87% PS1:15-28 + " PS1.15: 93% PS1:15-28 + " PS1.15: 94% PS1:15-30 + " PS1.15: 95% PS1:15-30 + " PS1.15: 97% PS1:15-32 + " PS1.15: 98% PS1:15-32 +YFLAGS PS1.12: 68% PS1:12-6 + " PS1.12: 99% PS1:12-9 + " PS1.12: 99% PS1:12-9 +YYACCEPT PS1.15: 72% PS1:15-21 +yank USD.16: 62% USD:16-12 +yank-pop (ESC Y) USD.17: 99% USD:17-48 +yanking USD.17: 16% USD:17-8 +Yendor, Amulet of ROGUE.6: 35% ROGUE(6)-1 +YES USD.17: 33% USD:17-15 +yes - be repetitively affirmative YES.1: 17% YES(1)-1 +YFLAGS MAKE.1: 57% MAKE(1)-2 +yogh USD.21: 83% USD:21-3 +YYERROR YACC.1: 30% YACC(1)-1 +yyclearin PS1.15: 61% PS1:15-17 +yydebug PS1.15: 65% PS1:15-18 +yyerrok PS1.15: 60% PS1:15-17 +YYERROR PS1.15: 94% PS1:15-30 + " PS1.15: 95% PS1:15-30 + " PS1.15: 95% PS1:15-31 + " PS1.15: 72% PS1:15-21 +yyleng PS1.16: 41% PS1:16-6 +yyless (n) PS1.16: 42% PS1:16-6 +yyless() PS1.16: 45% PS1:16-6 +yylex PS1.15: 62% PS1:15-18 + " PS1.16: 9% PS1:16-2 +yylex() PS1.16: 69% PS1:16-9 +yylval PS1.15: 21% PS1:15-6 +yymore() PS1.16: 42% PS1:16-6 +yyparse PS1.15: 62% PS1:15-18 +YYSTYPE PS1.15: 76% PS1:15-22 + " PS1.15: 76% PS1:15-22 + " PS1.15: 76% PS1:15-22 +yyparse YACC.1: 24% YACC(1)-1 +yytext PS1.16: 38% PS1:16-5 +yywrap() PS1.16: 50% PS1:16-7 +zero size CSH.1: 47% CSH(1)-9 +zero-length file CO.N: 25% CO(1)-1 +zero-length packet PS1.08: 92% PS1:8-38 + " PS1.08: 94% PS1:8-39 +zero-length packet[s] SMM.13: 40% SMM:13-14 +zero-motion command USD.25: 41% USD:25-7 +zero-padding PRINTF.3S: 49% PRINTF(3S)-1 +Zero-width character[s] USD.24: 66% USD:24-21 +zero-width filler character USD.24: 35% USD:24-12 +Zhou SMM.11: 99% SMM:11-16 + " SMM.11: 99% SMM:11-16 + " SMM.11: 99% SMM:11-16 +zone, time CTIME.3: 29% CTIME(3)-1 + " CTIME.3: 59% CTIME(3)-1 + " CTIME.3: 72% CTIME(3)-1 + " GETTIMEOFDAY.2: 20% GETTIMEOFDAY(2) + " GETTIMEOFDAY.2: 60% GETTIMEOFDAY(2) + " GETTIMEOFDAY.2: 73% GETTIMEOFDAY(2) + " SENDMAIL.8: 75% SENDMAIL(8)-3 + " TIME.3C: 78% TIME(3C)-1 + " TIME.3F: 73% TIME(3F)-1 +zork - the game of dungeon ZORK.6: 5% unknown +_cleanup EXIT.3: 63% +_doprnt PRINTF.3S: 6% PRINTF(3S)-1 +_end LD.1: 39% LD(1)-1 +_exit - terminate a process EXIT.2: 4% EXIT(2)-1 +_iob SMM.01: 34% SMM:1-23 +__.SYMDEF LD.1: 19% LD(1)-1 + " RANLIB.1: 25% RANLIB(1)-1 +~ USD.04: 15% USD:4-7 + diff --git a/doc/index/index.version6.reduced.troffinput b/doc/index/index.version6.reduced.troffinput new file mode 100644 index 00000000..a809e0ac --- /dev/null +++ b/doc/index/index.version6.reduced.troffinput @@ -0,0 +1,21431 @@ +.L "4.3BSD System Index" +.L "special characters and numbers" +.X "#define" +cc(1)\*(tx2, f77(1)\*(tx1, \s-1PS1\s0:1\*(tx26, \s-1PS1\s0:2\*(tx5, \s-1PS1\s0:18\*(tx8, \s-1SMM\s0:19\*(tx26 +.X "#else" +\s-1PS1\s0:1\*(tx27 +.X "#endif" +\s-1PS1\s0:1\*(tx27 +.X "#if" +\s-1PS1\s0:1\*(tx27 +.X "#if !defined" +\s-1PS1\s0:1\*(tx27 +.X "#ifdef" +ctags(1), \s-1PS1\s0:1\*(tx27 +.X "#ifdefs, removing" +unifdef(1) +.X "#ifndef" +\s-1PS1\s0:1\*(tx27 +.X "#include" +f77(1)\*(tx1, \s-1PS1\s0:1\*(tx27, \s-1PS1\s0:4\*(tx40 +.X "#include files" +hier(7)\*(tx4 +.X "#include path" +cc(1)\*(tx2 +.X "#line" +\s-1PS1\s0:1\*(tx28 +.X "#undef" +\s-1PS1\s0:1\*(tx26 +.X "$*" +\s-1PS1\s0:12\*(tx4,9 +.X "$, dollar\*(txsign" +\s-1USD\s0:12\*(tx9 +.X "$<" +\s-1PS1\s0:12\*(tx4,9 +.X "$?" +\s-1PS1\s0:12\*(tx4 +.X "$@ \*(tx name of the file to be made by make" +\s-1PS1\s0:12\*(tx4 +.X "$Author" +\s-1PS1\s0:13\*(tx9 +.X "$Date" +\s-1PS1\s0:13\*(tx9 +.X "$Header" +\s-1PS1\s0:13\*(tx3 +.X "$Log" +\s-1PS1\s0:13\*(tx4 +.X "%% delimiter" +\s-1PS1\s0:16\*(tx2,8 +.X "%A \*(tx author's name" +\s-1USD\s0:29\*(tx2 +.X "%B \*(tx book containing article" +\s-1USD\s0:29\*(tx2 +.X "%C \*(tx city where published" +\s-1USD\s0:29\*(tx2 +.X "%D \*(tx date of publication" +\s-1USD\s0:29\*(tx2 +.X "%E \*(tx editor of book containing article" +\s-1USD\s0:29\*(tx2 +.X "%H \*(tx header commentary, printed before reference" +\s-1USD\s0:29\*(tx2 +.X "%I \*(tx issuer (publisher)" +\s-1USD\s0:29\*(tx2 +.X "%J \*(tx journal containing article" +\s-1USD\s0:29\*(tx2 +.X "%K \*(tx keywords used to locate reference" +\s-1USD\s0:29\*(tx2 +.X "%L \*(tx label used by \*(txk option of refer" +\s-1USD\s0:29\*(tx2 +.X "%N \*(tx number within volume" +\s-1USD\s0:29\*(tx2 +.X "%O \*(tx other commentary, printed at end of reference" +\s-1USD\s0:29\*(tx2 +.X "%P \*(tx page number(s)" +\s-1USD\s0:29\*(tx2 +.X "%Q \*(tx corporate or foreign author (unreversed)" +\s-1USD\s0:29\*(tx2 +.X "%R \*(tx report, paper, or thesis (for unpublished material)" +\s-1USD\s0:29\*(tx2 +.X "%S \*(tx series title" +\s-1USD\s0:29\*(tx2 +.X "%T \*(tx title of article or book" +\s-1USD\s0:29\*(tx2 +.X "%V \*(tx volume" +\s-1USD\s0:29\*(tx2 +.X "%X \*(tx abstract (used by roffbib, not by refer)" +\s-1USD\s0:29\*(tx2 +.X "& (Ampersand)" +\s-1USD\s0:12\*(tx10, \s-1USD\s0:13\*(tx6 +.X "\*(tx (see hyphen, minus)" +.X "\*(txme macro package" +\s-1USD\s0:22 +.X "\*(txme macros, list of" +me(7)\*(tx1 +.X "\*(txme macros, strings, register names, list of" +\s-1USD\s0:23\*(tx10 +.X "\*(txme reference manual" +\s-1USD\s0:23\*(tx1 +.X "\*(txme, Predefined Strings in" +\s-1USD\s0:23\*(tx9 +.X "\*(txme, Writing Papers with NROFF using" +\s-1USD\s0:22\*(tx1 +.X "\*(txms and eqn" +\s-1USD\s0:27\*(tx6 +.X "\*(txms macro package" +\s-1USD\s0:25\*(tx10, \s-1USD\s0:29\*(tx9 +.X "\*(txms macros and register names, list of" +\s-1USD\s0:20\*(tx7 +.X "\*(txms Macros with Troff and Nroff, Using the" +\s-1USD\s0:20\*(tx1 +.X "\*(txms, Number registers used in" +\s-1USD\s0:20\*(tx7 +.X "\*(txms, refer and" +\s-1USD\s0:30\*(tx10 +.X "\*(txms, Revised Version of" +\s-1USD\s0:21\*(tx1 +.X "\*(txms, String registers used in" +\s-1USD\s0:20\*(tx7 +.X ". (see also decimal point, dot, point)" +mkdir(1), \s-1USD\s0:3\*(tx3, \s-1USD\s0:4\*(tx34, intro(2)\*(tx6, ncheck(8), \s-1SMM\s0:5\*(tx8 +.X ". (current line)" +\s-1USD\s0:12\*(tx4 +.X ". (in regular expressions)" +\s-1USD\s0:13\*(tx2 +.X ". \*(tx Bourne shell command" +sh(1)\*(tx4 +.X ".$0 \*(tx called automatically after each call to .$p" +\s-1USD\s0:23\*(tx3 +.X ".$1 \*(tx .$6 Traps called just before printing that depth section" +\s-1USD\s0:23\*(tx3 +.X ".$C \*(tx macro called by .$c" +\s-1USD\s0:23\*(tx8 +.X ".$c \*(tx Print chapter number" +\s-1USD\s0:23\*(tx8 +.X ".$c, .$C macro called by" +\s-1USD\s0:23\*(tx8 +.X ".$f \*(tx Print footer" +\s-1USD\s0:23\*(tx4 +.X ".$h \*(tx Called at every page to print the header" +\s-1USD\s0:23\*(tx4 +.X ".$H \*(tx called at the top of every page" +\s-1USD\s0:23\*(tx4 +.X ".$p \*(tx Print section heading" +\s-1USD\s0:23\*(tx3 +.X ".$p, .$0 called automatically after each call to" +\s-1USD\s0:23\*(tx3 +.X ".$s \*(tx output the footnote separator" +\s-1USD\s0:23\*(tx5 +.X ".(b \*(tx Begin block" +\s-1USD\s0:23\*(tx4 +.X ".(c \*(tx Begin centered block" +\s-1USD\s0:23\*(tx5 +.X ".(d \*(tx Begin delayed text" +\s-1USD\s0:23\*(tx5 +.X ".(f \*(tx Begin footnote" +\s-1USD\s0:23\*(tx5 +.X ".(l \*(tx Begin list" +\s-1USD\s0:23\*(tx4 +.X ".(q \*(tx Begin major quote" +\s-1USD\s0:23\*(tx4 +.X ".(x \*(tx Begin index entry" +\s-1USD\s0:23\*(tx5 +.X ".(z \*(tx Begin floating keep" +\s-1USD\s0:23\*(tx4 +.X ".)b \*(tx End block" +\s-1USD\s0:23\*(tx4 +.X ".)c \*(tx End centered block" +\s-1USD\s0:23\*(tx5 +.X ".)d \*(tx End delayed text" +\s-1USD\s0:23\*(tx5 +.X ".)f \*(tx End footnote" +\s-1USD\s0:23\*(tx5 +.X ".)l \*(tx End list" +\s-1USD\s0:23\*(tx4 +.X ".)q \*(tx End major quote" +\s-1USD\s0:23\*(tx4 +.X ".)x \*(tx End index entry" +\s-1USD\s0:23\*(tx5 +.X ".)z \*(tx End floating keep" +\s-1USD\s0:23\*(tx5 +.X ".++ \*(tx section definition" +\s-1USD\s0:23\*(tx8 +.X ".+c \*(tx Begin chapter with title" +\s-1USD\s0:23\*(tx8 +.X ".." +mkdir(1), \s-1USD\s0:3\*(tx3, \s-1USD\s0:4\*(tx34, \s-1USD\s0:24\*(tx16, intro(2)\*(tx6, ncheck(8), \s-1SMM\s0:5\*(tx8 +.X ".../files/dayfile7 \*(tx INGRES login message" +\s-1PS2\s0:10\*(tx64 +.X ".../files/dbtmplt7 \*(tx database template" +\s-1PS2\s0:10\*(tx65 +.X ".../files/error7_? \*(tx files with INGRES errors" +\s-1PS2\s0:10\*(tx66 +.X ".../files/grafile7 \*(tx GEO\*(txQUEL login message" +\s-1PS2\s0:10\*(tx67 +.X ".../files/proctab7 \*(tx INGRES runtime configuration information" +\s-1PS2\s0:10\*(tx70 +.X ".../files/startup \*(tx INGRES startup file" +\s-1PS2\s0:10\*(tx72 +.X ".1c \*(tx Revert to single\*(txcolumn mode" +\s-1USD\s0:23\*(tx6 +.X ".2c \*(tx Enter two\*(txcolumn mode" +\s-1USD\s0:23\*(tx5 +.X ".ab" +\s-1USD\s0:24\*(tx26 +.X ".ABORT" +\s-1PS1\s0:5\*(tx8 +.X ".ac \*(tx ACM mode" +\s-1USD\s0:23\*(tx8 +.X ".ad" +\s-1USD\s0:24\*(tx13 +.X ".af" +\s-1USD\s0:24\*(tx17 +.X ".am" +\s-1USD\s0:24\*(tx16 +.X ".ar \*(tx Set page number in Arabic" +\s-1USD\s0:23\*(tx6 +.X ".as" +\s-1USD\s0:24\*(tx16 +.X ".b \*(tx bold font" +\s-1USD\s0:23\*(tx6 +.X ".ba \*(tx Set the base indent" +\s-1USD\s0:23\*(tx7 +.X ".bc \*(tx Begin column" +\s-1USD\s0:23\*(tx6 +.X ".bd" +\s-1USD\s0:24\*(tx10 +.X ".bi \*(tx bold italics" +\s-1USD\s0:23\*(tx6 +.X ".bl \*(tx Leave contiguous white space" +\s-1USD\s0:23\*(tx6 +.X ".bp" +\s-1USD\s0:24\*(tx11 +.X ".bp, .pa Equivalent to" +\s-1USD\s0:23\*(tx6 +.X ".br" +\s-1USD\s0:24\*(tx12 +.X ".bu \*(tx paragraphs with bullets" +\s-1USD\s0:23\*(tx2 +.X ".bx \*(tx set in a box" +\s-1USD\s0:23\*(tx6 +.X ".c2" +\s-1USD\s0:24\*(tx20 +.X ".cc" +\s-1USD\s0:24\*(tx20 +.X ".ce" +\s-1USD\s0:24\*(tx13 +.X ".ch" +\s-1USD\s0:24\*(tx17 +.X ".cs" +\s-1USD\s0:24\*(tx10 +.X ".cshrc" +csh(1)\*(tx1,17..19, rcp(1c), su(1), tset(1)\*(tx2, which(1), \s-1USD\s0:4\*(tx11,15..16,23,36,43, \s-1USD\s0:7\*(tx2, \s-1SMM\s0:12\*(tx13 +.X ".cu" +\s-1USD\s0:24\*(tx19 +.X ".da" +\s-1USD\s0:24\*(tx17 +.X ".data" +\s-1PS1\s0:5\*(tx8 +.X ".de" +\s-1USD\s0:24\*(tx16 +.X ".DEFAULT" +\s-1PS1\s0:12\*(tx4, \s-1PS1\s0:14\*(tx11 +.X ".di" +\s-1USD\s0:24\*(tx17, \s-1USD\s0:25\*(tx12 +.X ".ds" +\s-1USD\s0:24\*(tx4,16, \s-1USD\s0:25\*(tx7 +.X ".DS L" +\s-1USD\s0:20\*(tx4..5 +.X ".dt" +\s-1USD\s0:24\*(tx17 +.X ".ec" +\s-1USD\s0:24\*(tx19 +.X ".ef \*(tx Define footer" +\s-1USD\s0:23\*(tx3 +.X ".eh \*(tx Define header" +\s-1USD\s0:23\*(tx3 +.X ".el" +\s-1USD\s0:24\*(tx24 +.X ".em" +\s-1USD\s0:24\*(tx17 +.X ".EN \*(tx End equation" +\s-1USD\s0:23\*(tx7, \s-1USD\s0:27\*(tx2 +.X ".eo" +\s-1USD\s0:24\*(tx19 +.X ".ep \*(tx End this page, but do not begin the next page" +\s-1USD\s0:23\*(tx4 +.X ".EQ \*(tx Begin equation" +\s-1USD\s0:23\*(tx7, \s-1USD\s0:27\*(tx2 +.X ".ev" +\s-1USD\s0:24\*(tx24, \s-1USD\s0:25\*(tx12 +.X ".ex" +\s-1USD\s0:24\*(tx25 +.X ".exrc" +\s-1USD\s0:16\*(tx1, \s-1SMM\s0:12\*(tx5 +.X ".fc" +\s-1USD\s0:24\*(tx18 +.X ".fi" +\s-1USD\s0:24\*(tx12 +.X ".fl" +\s-1USD\s0:24\*(tx26 +.X ".fo \*(tx Define footer" +\s-1USD\s0:23\*(tx3 +.X ".forward" +vacation(1), aliases(5), \s-1SMM\s0:7\*(tx11, \s-1SMM\s0:16\*(tx7 +.X ".fp" +\s-1USD\s0:24\*(tx11 +.X ".ft" +\s-1USD\s0:24\*(tx10 +.X ".fz" +\s-1USD\s0:24\*(tx10 +.X ".GE \*(tx End gremlin picture" +\s-1USD\s0:23\*(tx7 +.X ".GF \*(tx End gremlin picture (alternate form)" +\s-1USD\s0:23\*(tx7 +.X ".GS \*(tx Begin gremlin picture" +\s-1USD\s0:23\*(tx7 +.X ".hc" +\s-1USD\s0:24\*(tx22 +.X ".he \*(tx Define three\*(txpart header" +\s-1USD\s0:23\*(tx3 +.X ".hl \*(tx Draws a horizontal line the length of the page" +\s-1USD\s0:23\*(tx7 +.X ".hw" +\s-1USD\s0:24\*(tx22 +.X ".hx \*(tx Suppress headers and footers on the next page" +\s-1USD\s0:23\*(tx4 +.X ".i \*(tx italic font" +\s-1USD\s0:23\*(tx6 +.X ".ie" +\s-1USD\s0:24\*(tx24 +.X ".IE \*(tx End ideal picture" +\s-1USD\s0:23\*(tx7 +.X ".if" +\s-1USD\s0:24\*(tx24, \s-1USD\s0:25\*(tx11 +.X ".IF \*(tx End ideal picture (alternate form)" +\s-1USD\s0:23\*(tx7 +.X ".ig" +\s-1USD\s0:24\*(tx25 +.X ".IGNORE" +\s-1PS1\s0:12\*(tx4 +.X ".in" +\s-1USD\s0:24\*(tx14, \s-1USD\s0:25\*(tx4 +.X ".ip \*(tx Indented paragraph with hanging tag" +\s-1USD\s0:23\*(tx2 +.X ".IS \*(tx Begin ideal picture" +\s-1USD\s0:23\*(tx7 +.X ".it" +\s-1USD\s0:24\*(tx17 +.X ".ix \*(tx Indent, no break" +\s-1USD\s0:23\*(tx6 +.X ".joverc" +jove(1)\*(tx2, \s-1USD\s0:17\*(tx23..24,45..46 +.X ".lc" +\s-1USD\s0:24\*(tx18 +.X ".lg" +\s-1USD\s0:24\*(tx19 +.X ".lh \*(tx Print a letterhead at the current position" +\s-1USD\s0:23\*(tx8 +.X ".line" +\s-1PS1\s0:5\*(tx8 +.X ".ll \*(tx Set line length in all environments" +\s-1USD\s0:23\*(tx7, \s-1USD\s0:24\*(tx14, \s-1USD\s0:25\*(tx4 +.X ".lo \*(tx load local macros" +\s-1USD\s0:23\*(tx8 +.X ".login" +csh(1)\*(tx1, mset(1), msgs(1), tset(1), \s-1USD\s0:1\*(tx10, \s-1USD\s0:4\*(tx11..13,20,39..40,44, \s-1USD\s0:9\*(tx2,6, \s-1USD\s0:11\*(tx11, \s-1USD\s0:15\*(tx2,14 +.X ".logout" +csh(1)\*(tx1, \s-1USD\s0:4\*(tx11,39..40 +.X ".lp \*(tx Begin left\*(txjustified paragraph" +\s-1USD\s0:23\*(tx2 +.X ".ls" +\s-1USD\s0:24\*(tx13 +.X ".lt" +\s-1USD\s0:24\*(tx23 +.X ".m1 \*(tx Set the space between the top of the page and the header" +\s-1USD\s0:23\*(tx4 +.X ".m2 \*(tx Set the space between the header and the first line of text" +\s-1USD\s0:23\*(tx4 +.X ".m3 \*(tx Set the space between the bottom of the text and the footer" +\s-1USD\s0:23\*(tx4 +.X ".m4 \*(tx Set the space between the footer and the bottom of the page" +\s-1USD\s0:23\*(tx4 +.X ".mailcf" +\s-1SMM\s0:16\*(tx8 +.X ".mailrc" +mail(1)\*(tx2,6, \s-1USD\s0:7\*(tx5..6,13,16 +.X ".mc" +\s-1USD\s0:24\*(tx25 +.X ".mhprofile \*(tx user customization for MH message system" +\s-1USD\s0:8\*(tx2,6,24,77,85..87 +.X ".mhsequence" +\s-1USD\s0:8\*(tx85 +.X ".mk" +\s-1USD\s0:24\*(tx11 +.X ".msgsrc" +msgs(1) +.X ".n2 \*(tx Number lines from N, stop if N = 0" +\s-1USD\s0:23\*(tx6 +.X ".na" +\s-1USD\s0:24\*(tx13 +.X ".ne" +\s-1USD\s0:24\*(tx11 +.X ".netrc" +ftp(1c)\*(tx7, rexec(3), \s-1SMM\s0:12\*(tx8 +.X ".newsrc" +\s-1USD\s0:9\*(tx3..5, \s-1SMM\s0:10\*(tx19..20 +.X ".nf" +\s-1USD\s0:24\*(tx12, \s-1USD\s0:25\*(tx5 +.X ".nh" +\s-1USD\s0:24\*(tx22 +.X ".nm" +\s-1USD\s0:24\*(tx23 +.X ".nn" +\s-1USD\s0:24\*(tx23 +.X ".np \*(tx numbered paragraph" +\s-1USD\s0:23\*(tx2 +.X ".nr" +\s-1USD\s0:24\*(tx17, \s-1USD\s0:25\*(tx9..10 +.X ".ns" +\s-1USD\s0:24\*(tx14 +.X ".nx" +\s-1USD\s0:24\*(tx25 +.X ".o \*(tx register" +\s-1USD\s0:24\*(tx11 +.X ".of \*(tx Define footer" +\s-1USD\s0:23\*(tx3 +.X ".oh \*(tx Define header" +\s-1USD\s0:23\*(tx3 +.X ".os" +\s-1USD\s0:24\*(tx14 +.X ".pa \*(tx Equivalent to .bp" +\s-1USD\s0:23\*(tx6 +.X ".pc" +\s-1USD\s0:24\*(tx23 +.X ".pd \*(tx Print delayed text" +\s-1USD\s0:23\*(tx5 +.X ".PE \*(tx End pic picture" +\s-1USD\s0:23\*(tx7 +.X ".pi" +\s-1USD\s0:24\*(tx25 +.X ".pl" +\s-1USD\s0:24\*(tx11 +.X ".plan" +\s-1SMM\s0:12\*(tx7 +.X ".pm" +\s-1USD\s0:24\*(tx26 +.X ".pn" +\s-1USD\s0:24\*(tx11 +.X ".po" +\s-1USD\s0:24\*(tx11, \s-1USD\s0:25\*(tx4 +.X ".pp \*(tx paragraph macro" +\s-1USD\s0:23\*(tx2 +.X ".profile" +rcp(1c), sh(1)\*(tx6, tset(1), environ(7), \s-1USD\s0:1\*(tx10, \s-1USD\s0:3\*(tx4,22, \s-1USD\s0:9\*(tx2, \s-1USD\s0:15\*(tx2, \s-1SMM\s0:12\*(tx7 +.X ".ps" +\s-1USD\s0:24\*(tx10, \s-1USD\s0:25\*(tx2 +.X ".PS \*(tx Begin pic picture" +\s-1USD\s0:23\*(tx7 +.X ".q \*(tx directed quote mark" +\s-1USD\s0:23\*(tx6 +.X ".r roman font" +\s-1USD\s0:23\*(tx6 +.X ".rb bold font" +\s-1USD\s0:23\*(tx6 +.X ".rd" +\s-1USD\s0:24\*(tx25 +.X ".re Reset tabs" +\s-1USD\s0:23\*(tx7 +.X ".rhost" +rlogin(1c), rcmd(3), \s-1PS1\s0:8\*(tx31, \s-1SMM\s0:1\*(tx42 +.X ".rm" +\s-1USD\s0:24\*(tx16 +.X ".rn" +\s-1USD\s0:24\*(tx17 +.X ".ro \*(tx Set page number in roman numerals" +\s-1USD\s0:23\*(tx6 +.X ".rr" +\s-1USD\s0:24\*(tx18 +.X ".rs" +\s-1USD\s0:24\*(tx14 +.X ".rt" +\s-1USD\s0:24\*(tx12 +.X ".sc \*(tx Define special characters and diacritical marks" +\s-1USD\s0:23\*(tx9 +.X ".sh \*(tx begin numbered section" +\s-1USD\s0:23\*(tx2 +.X ".signature" +\s-1USD\s0:8\*(tx64 +.X ".sk \*(tx Leave next page blank, but for headers and footer" +\s-1USD\s0:23\*(tx6 +.X ".sm \*(tx smaller pointsize" +\s-1USD\s0:23\*(tx6 +.X ".so" +\s-1USD\s0:24\*(tx25 +.X ".sp" +\s-1USD\s0:24\*(tx12,14, \s-1USD\s0:25\*(tx3 +.X ".ss" +\s-1USD\s0:24\*(tx10 +.X ".SUFFIX" +\s-1PS1\s0:12\*(tx9 +.X ".sv" +\s-1USD\s0:24\*(tx14 +.X ".sx \*(tx new paragraph within section" +\s-1USD\s0:23\*(tx3 +.X ".syslinelock" +sysline(1) +.X ".sz \*(tx set pointsize (and line spacing)" +\s-1USD\s0:23\*(tx6 +.X ".ta" +\s-1USD\s0:24\*(tx18, \s-1USD\s0:25\*(tx5 +.X ".tc" +\s-1USD\s0:24\*(tx18, \s-1USD\s0:25\*(tx5 +.X ".TE \*(tx Table end" +\s-1USD\s0:23\*(tx7, \s-1USD\s0:28\*(tx1 +.X ".text" +\s-1PS1\s0:5\*(tx8 +.X ".th \*(tx Set thesis mode" +\s-1USD\s0:23\*(tx8 +.X ".TH \*(tx With .TS H, ends the header portion of the table" +\s-1USD\s0:23\*(tx7 +.X ".ti" +\s-1USD\s0:24\*(tx14, \s-1USD\s0:25\*(tx5 +.X ".tl" +\s-1USD\s0:24\*(tx22 +.X ".tm" +\s-1USD\s0:24\*(tx25 +.X ".tp \*(tx Begin title page" +\s-1USD\s0:23\*(tx8 +.X ".tr" +\s-1USD\s0:24\*(tx20, \s-1USD\s0:25\*(tx4 +.X ".TS \*(tx Table start" +\s-1USD\s0:23\*(tx7, \s-1USD\s0:28\*(tx1 +.X ".u \*(tx underline" +\s-1USD\s0:23\*(tx6 +.X ".uf" +\s-1USD\s0:24\*(tx20 +.X ".uh \*(tx Unnumbered section heading" +\s-1USD\s0:23\*(tx3 +.X ".ul" +\s-1USD\s0:24\*(tx19, \s-1USD\s0:25\*(tx3 +.X ".vacation.msg" +vacation(1) +.X ".vs" +\s-1USD\s0:24\*(tx13 +.X ".wh" +\s-1USD\s0:24\*(tx17, \s-1USD\s0:25\*(tx8 +.X ".who" +sysline(1) +.X ".windowrc" +window(1)\*(tx1 +.X ".xl \*(tx Set the line length" +\s-1USD\s0:23\*(tx7 +.X ".xp print index" +\s-1USD\s0:23\*(tx5 +.X ".[" +\s-1USD\s0:29\*(tx4, \s-1USD\s0:30\*(tx9 +.X ".[]" +\s-1USD\s0:31\*(tx1 +.X ".]" +\s-1USD\s0:29\*(tx4, \s-1USD\s0:30\*(tx9 +.X ".]<" +\s-1USD\s0:30\*(tx11 +.X ".]>" +\s-1USD\s0:30\*(tx11 +.X ".][" +\s-1USD\s0:29\*(tx8, \s-1USD\s0:30\*(tx9 +.X "/ (see slash)" +.X "/* ARGSUSED */" +\s-1PS1\s0:9\*(tx9 +.X "/* LINTLIBRARY */" +\s-1PS1\s0:9\*(tx9 +.X "/* NOSTRICT */" +\s-1PS1\s0:9\*(tx8 +.X "/* NOTREACHED */" +\s-1PS1\s0:9\*(tx8 +.X "/* VARARGS */" +\s-1PS1\s0:9\*(tx9 +.X "/*/quotas \*(tx file system quota files" +\s-1SMM\s0:1\*(tx20 +.X "/.cshrc \*(tx root csh startup script" +\s-1SMM\s0:1\*(tx18 +.X "/.login \*(tx root csh login script" +\s-1SMM\s0:1\*(tx19 +.X "/.profile \*(tx root sh startup script" +\s-1SMM\s0:1\*(tx13,19 +.X "/.rhosts \*(tx for trusted machines and users" +rlogin(1c), \s-1SMM\s0:1\*(tx19,42 +.X "/bin" +hier(7)\*(tx1, \s-1USD\s0:4\*(tx12 +.X "/dev" +hier(7)\*(tx1, makedev(8), \s-1SMM\s0:1\*(tx4,26,39, \s-1SMM\s0:9\*(tx12 +.X "/dev/console" +syslog(3) +.X "/dev/drum" +ps(1)\*(tx2 +.X "/dev/klog" +syslogd(8) +.X "/dev/kmem" +mem(4), \s-1SMM\s0:1\*(tx21 +.X "/dev/kUmem" +mem(4) +.X "/dev/log" +syslogd(8) +.X "/dev/MAKEDEV" +\s-1SMM\s0:1\*(tx19,26 +.X "/dev/MAKEDEV.local \*(tx for making local devices" +\s-1SMM\s0:1\*(tx19 +.X "/dev/mem" +mem(4), \s-1SMM\s0:1\*(tx21 +.X "/dev/mt?" +mtio(4) +.X "/dev/null" +sh(1)\*(tx4, null(4) +.X "/dev/printer \*(tx socket on which lpd listens" +\s-1SMM\s0:6\*(tx2 +.X "/dev/pty[p\*(txr][0\*(tx9a\*(txf]" +pty(4) +.X "/dev/rmt12" +mt(1) +.X "/dev/rmt?" +mtio(4) +.X "/dev/tty" +vhangup(2), tty(4)\*(tx1 +.X "/dev/tty[p\*(txr][0\*(tx9a\*(txf]" +pty(4) +.X "/etc" +hier(7)\*(tx1 +.X "/etc/disktab \*(tx contains disk partition sizes" +getdiskbyname(3), diskpart(8), newfs(8), \s-1SMM\s0:1\*(tx19,28..29 +.X "/etc/dumpdates" +dump(8) +.X "/etc/fstab \*(tx disk configuration data" +fstab(5), dump(8), fsck(8), mount(8), swapon(8), \s-1SMM\s0:1\*(tx19 +.X "/etc/ftpusers" +ftpd(8c), \s-1SMM\s0:1\*(tx19,43 +.X "/etc/gateways \*(tx routing daemon database" +htable(8), routed(8c)\*(tx2, \s-1SMM\s0:1\*(tx19,42 +.X "/etc/getty" +init(8), \s-1SMM\s0:1\*(tx33 +.X "/etc/gettytab \*(tx getty database" +getty(8), \s-1SMM\s0:1\*(tx19,33, \s-1SMM\s0:12\*(tx19 +.X "/etc/group \*(tx group data base" +chgrp(1), find(1), groups(1), getgrent(3), initgroups(3), group(5), \s-1SMM\s0:1\*(tx19,21 +.X "/etc/hosts \*(tx host information" +gethostbyname(3), \s-1PS1\s0:8\*(tx11, \s-1SMM\s0:1\*(tx19 +.X "/etc/hosts and /etc/network, Regenerating" +\s-1SMM\s0:1\*(tx42 +.X "/etc/hosts.equiv \*(tx list of ``trusted'' hosts" +rlogin(1c), rcmd(3), \s-1PS1\s0:8\*(tx31, lpd(8), \s-1SMM\s0:1\*(tx19,41..42, \s-1SMM\s0:6\*(tx4 +.X "/etc/hosts.lpd" +lpd(8), \s-1SMM\s0:6\*(tx4 +.X "/etc/hosts.lpd \*(tx list of host allowed to use the printer" +\s-1SMM\s0:1\*(tx34 +.X "/etc/inetd.conf" +\s-1PS1\s0:8\*(tx41, inetd(8), \s-1SMM\s0:1\*(tx41 +.X "/etc/init" +crash(8v)\*(tx1 +.X "/etc/map3270" +mset(1) +.X "/etc/motd \*(tx message of the day" +\s-1SMM\s0:1\*(tx51 +.X "/etc/mtab" +mtab(5), mount(8), quotaon(8) +.X "/etc/named.boot" +named(8) +.X "/etc/networks network information" +getnetent(3n), \s-1PS1\s0:8\*(tx13, \s-1SMM\s0:1\*(tx19 +.X "/etc/networks, Regenerating /etc/hosts and" +\s-1SMM\s0:1\*(tx42 +.X "/etc/nologin" +login(1), shutdown(8) +.X "/etc/passwd" +find(1), groups(1), \s-1USD\s0:4\*(tx37, passwd(5), \s-1PS2\s0:1\*(tx12, \s-1PS2\s0:3\*(tx15, \s-1PS2\s0:9\*(tx63,72,84, \s-1PS2\s0:10\*(tx63,74, ftpd(8c), mkpasswd(8), vipw(8), \s-1SMM\s0:1\*(tx19,34, \s-1SMM\s0:12\*(tx2,8,10 +.X "/etc/phones" +tip(1)\*(tx4, phones(5), remote(5) +.X "/etc/printcap \*(tx printer configuration and capability data base" +printcap(5), \s-1SMM\s0:1\*(tx19,34, \s-1SMM\s0:6\*(tx2 +.X "/etc/protocols \*(tx protocol names" +getprotoent(3n), protocols(5), \s-1PS1\s0:8\*(tx14, inetd(8), \s-1SMM\s0:1\*(tx19,41 +.X "/etc/psdatabase" +ps(1)\*(tx3 +.X "/etc/rc" +ps(1)\*(tx2, cron(8), fastboot(8), fsck(8), init(8), rc(8), savecore(8), \s-1SMM\s0:2\*(tx26, \s-1SMM\s0:6\*(tx2, \s-1SMM\s0:7\*(tx7,12 +.X "/etc/rc.local \*(tx site specific system startup commands" +hostid(1), hostname(1), inetd(8), rc(8), \s-1SMM\s0:1\*(tx19,34, \s-1SMM\s0:7\*(tx7 +.X "/etc/remote \*(tx auto\*(txdialer configuration" +tip(1c)\*(tx2, remote(5), \s-1SMM\s0:1\*(tx19 +.X "/etc/resolv.conf" +resolver(5) +.X "/etc/securettys \*(tx list of ttys where root can log in" +\s-1SMM\s0:1\*(tx19 +.X "/etc/services" +getservent(3n), services(5), \s-1PS1\s0:8\*(tx14, inetd(8), syslogd(8) +.X "/etc/shells" +passwd(1), getusershell(3) +.X "/etc/syslog.conf \*(tx system logger configuration" +syslogd(8), \s-1SMM\s0:1\*(tx19 +.X "/etc/syslog.pid" +syslogd(8) +.X "/etc/termcap" +ul(1), environ(7), termcap(3x), termcap(5)\*(tx5..6,14 +.X "/etc/ttys \*(tx terminal line configuration data" +tset(1)\*(tx1, ttyname(3), ttys(5), init(8), \s-1SMM\s0:1\*(tx19,32..33, \s-1SMM\s0:12\*(tx19 +.X "/etc/ttytype \*(tx terminal line to terminal type mapping data" +\s-1SMM\s0:1\*(tx19 +.X "/etc/utmp" +who(1), getlogin(3), utmp(5) +.X "/fastboot" +fastboot(8) +.X "/genvmunix" +\s-1SMM\s0:1\*(tx27 +.X "/lib" +ld(1), hier(7)\*(tx1 +.X "/lost+found" +hier(7)\*(tx1 +.X "/sys" +\s-1SMM\s0:1\*(tx48,52 +.X "/sys/conf \*(tx site configuration files and basic templates" +\s-1SMM\s0:1\*(tx19,26, \s-1SMM\s0:2\*(tx4 +.X "/sys/conf/GENERIC" +\s-1SMM\s0:2\*(tx4 +.X "/sys/dist" +\s-1SMM\s0:1\*(tx52 +.X "/sys/GENERIC" +\s-1SMM\s0:2\*(tx4 +.X "/sys/h \*(tx machine independent include files" +\s-1SMM\s0:1\*(tx26 +.X "/sys/net \*(tx network independent, but network related code" +\s-1SMM\s0:1\*(tx26 +.X "/sys/netimp \*(tx IMP support code" +\s-1SMM\s0:1\*(tx26 +.X "/sys/netinet \*(tx DARPA Internet code" +\s-1SMM\s0:1\*(tx26 +.X "/sys/netns \*(tx Xerox NS support code" +\s-1SMM\s0:1\*(tx26 +.X "/sys/stand" +\s-1SMM\s0:1\*(tx48 +.X "/sys/sys \*(tx machine independent kernel source" +\s-1SMM\s0:1\*(tx26 +.X "/sys/vax \*(tx VAX specific mainline code" +\s-1SMM\s0:1\*(tx26 +.X "/sys/vaxif \*(tx VAX network interface code" +\s-1SMM\s0:1\*(tx26 +.X "/sys/vaxmba \*(tx VAX MASSBUS device drivers and related code" +\s-1SMM\s0:1\*(tx26 +.X "/sys/vaxuba \*(tx VAX UNIBUS device drivers and related code" +\s-1SMM\s0:1\*(tx26 +.X "/tmp" +hier(7)\*(tx4, \s-1SMM\s0:1\*(tx29..32 +.X "/usr" +hier(7)\*(tx4 +.X "/usr file system, check the consistency of the" +\s-1SMM\s0:1\*(tx16 +.X "/usr/adm/acct" +lastcomm(1), sa(8), \s-1SMM\s0:1\*(tx50 +.X "/usr/adm/messages" +intro(4), \s-1SMM\s0:1\*(tx46 +.X "/usr/adm/savacct" +sa(8) +.X "/usr/adm/shutdownlog" +\s-1SMM\s0:1\*(tx46 +.X "/usr/adm/timed.log" +timed(8), timedc(8) +.X "/usr/adm/timed.masterlog" +timed(8) +.X "/usr/adm/tracct" +troff(1) +.X "/usr/adm/wtmp" +who(1), utmp(5), halt(8), init(8), reboot(8)\*(tx1, \s-1SMM\s0:1\*(tx50 +.X "/usr/bin" +\s-1USD\s0:4\*(tx12 +.X "/usr/dict/papers/Ind." +refer(1) +.X "/usr/dict/words" +look(1), hangman(6), \s-1SMM\s0:12\*(tx19 +.X "/usr/hosts" +rsh(1c) +.X "/usr/include" +\s-1SMM\s0:1\*(tx26 +.X "/usr/include/protocols" +\s-1SMM\s0:12\*(tx18 +.X "/usr/ingres" +\s-1SMM\s0:1\*(tx17,52 +.X "/usr/lib" +ld(1) +.X "/usr/lib/aliases \*(tx mail forwarding data base" +mail(1)\*(tx2, msgs(1), newaliases(1), \s-1SMM\s0:1\*(tx19,35, \s-1SMM\s0:7\*(tx6 +.X "/usr/lib/crontab \*(tx cron daemon data base" +msgs(1), cron(8), \s-1SMM\s0:1\*(tx19,21, \s-1SMM\s0:12\*(tx19..20 +.X "/usr/lib/eign" +ptx(1) +.X "/usr/lib/libmp.a" +mp(3x) +.X "/usr/lib/lint/" +lint(1) +.X "/usr/lib/Mail.rc" +\s-1USD\s0:7\*(tx5 +.X "/usr/lib/me/letterhead.me" +\s-1USD\s0:23\*(tx8 +.X "/usr/lib/me/local.me" +\s-1USD\s0:23\*(tx8 +.X "/usr/lib/sendmail.cf \*(tx sendmail configuration" +sendmail(8)\*(tx3, \s-1SMM\s0:1\*(tx19, \s-1SMM\s0:7\*(tx38 +.X "/usr/lib/sendmail.fc" +\s-1SMM\s0:7\*(tx6,38 +.X "/usr/lib/sendmail.st" +\s-1SMM\s0:7\*(tx38 +.X "/usr/lib/tabset/* \*(tx tab setting files" +\s-1SMM\s0:1\*(tx19 +.X "/usr/lib/tmac/tmac.*" +nroff(1), troff(1) +.X "/usr/lib/tmac/tmac.bib" +roffbib(1), \s-1USD\s0:29\*(tx3,9 +.X "/usr/lib/tmac/tmac.s" +\s-1USD\s0:21\*(tx3 +.X "/usr/lib/units" +units(1) +.X "/usr/lib/uucp/ \*(tx UUCP internal files/utilities" +uucico(8c) +.X "/usr/lib/uucp/L\*(txdevices \*(tx list of dialers and hard\*(txwired lines" +L\*(txdevices(5), L.sys(5), uucico(8c), \s-1SMM\s0:1\*(tx36..37, \s-1SMM\s0:9\*(tx6,16 +.X "/usr/lib/uucp/L\*(txdialcodes \*(tx Phone numbers and prefixes" +l, uucico(8c), \s-1SMM\s0:1\*(tx36..37, \s-1SMM\s0:9\*(tx6 +.X "/usr/lib/uucp/L.aliases \*(tx Hostname aliases" +L.aliases(5), uucico(8c) +.X "/usr/lib/uucp/L.cmds \*(tx commands remote sites may execute" +uucico(8c), \s-1SMM\s0:1\*(tx36 +.X "/usr/lib/uucp/L.sys \*(tx Host connection specifications" +uucico(8c) +.X "/usr/lib/uucp/SEQF \*(tx sequence numbering control file" +\s-1SMM\s0:1\*(tx36 +.X "/usr/lib/uucp/USERFILE \*(tx remote site pathname access specifications" +USERFILE(5), uucico(8c), \s-1SMM\s0:1\*(tx36 +.X "/usr/lib/vfont" +\s-1SMM\s0:1\*(tx17,52 +.X "/usr/local" +\s-1USD\s0:4\*(tx12, \s-1SMM\s0:1\*(tx50 +.X "/usr/local/lib" +ld(1) +.X "/usr/man/manl \*(tx manual pages for locally developed programs" +\s-1SMM\s0:1\*(tx19 +.X "/usr/man/whatis" +whatis(1) +.X "/usr/mdec/" +reboot(8)\*(tx2 +.X "/usr/msgs \*(tx for current msgs" +\s-1SMM\s0:1\*(tx19 +.X "/usr/msgs, cleanup on" +msgs(1) +.X "/usr/msgs/bounds" +msgs(1) +.X "/usr/new" +\s-1USD\s0:4\*(tx12 +.X "/usr/new/lib/mh/MailAlias" +\s-1USD\s0:8\*(tx75 +.X "/usr/spool/* \*(tx for current mail, news, uucp files, etc." +\s-1SMM\s0:1\*(tx19 +.X "/usr/spool/mail \*(tx mail spooling directory" +\s-1SMM\s0:1\*(tx35 +.X "/usr/spool/mqueue" +\s-1SMM\s0:7\*(tx6,38 +.X "/usr/spool/mqueue/df*" +\s-1SMM\s0:7\*(tx38 +.X "/usr/spool/mqueue/lf*" +\s-1SMM\s0:7\*(tx38 +.X "/usr/spool/mqueue/nf*" +\s-1SMM\s0:7\*(tx38 +.X "/usr/spool/mqueue/qf*" +\s-1SMM\s0:7\*(tx38 +.X "/usr/spool/mqueue/tf*" +\s-1SMM\s0:7\*(tx38 +.X "/usr/spool/mqueue/xf*" +\s-1SMM\s0:7\*(tx38 +.X "/usr/spool/secretmail \*(tx secure mail directory" +\s-1SMM\s0:1\*(tx35 +.X "/usr/spool/uucp" +uucico(8c) +.X "/usr/spool/uucp/ \*(tx Spool directory" +uucico(8c) +.X "/usr/spool/uucp/AUDIT/* \*(tx Debugging audit trails" +uucico(8c) +.X "/usr/spool/uucp/C./ \*(tx Control files directory" +uucico(8c) +.X "/usr/spool/uucp/CORRUPT/ \*(tx Place for corrupted C. and D. files" +uucico(8c) +.X "/usr/spool/uucp/D./ \*(tx Incoming data file directory" +uucico(8c) +.X "/usr/spool/uucp/D.hostname/ \*(tx Outgoing data file directory" +uucico(8c) +.X "/usr/spool/uucp/D.hostnameX/ \*(tx Outgoing execution file directory" +uucico(8c) +.X "/usr/spool/uucp/ERRLOG \*(tx UUCP internal error log" +uucico(8c) +.X "/usr/spool/uucp/LCK/LCK..* \*(tx Device lock files" +uucico(8c) +.X "/usr/spool/uucp/LOGFILE \*(tx UUCP system activity log" +uucico(8c), uulog(1c), \s-1SMM\s0:9\*(tx18,20..21 +.X "/usr/spool/uucp/STST/* \*(tx System status files" +uucico(8c) +.X "/usr/spool/uucp/SYSLOG \*(tx log file of uucp file transfers" +uucico(8c), \s-1SMM\s0:1\*(tx36 +.X "/usr/spool/uucp/TM./ \*(tx File transfer temp directory" +uucico(8c) +.X "/usr/spool/uucp/X./ \*(tx Incoming execution file directory" +uucico(8c) +.X "/usr/spool/uucppublic \*(tx Public access directory" +uucico(8c), \s-1SMM\s0:9\*(tx21 +.X "/usr/src" +\s-1SMM\s0:1\*(tx48,52 +.X "/usr/src/lib/libc" +\s-1SMM\s0:1\*(tx48 +.X "/usr/src/local \*(tx for source for locally developed programs" +\s-1SMM\s0:1\*(tx19 +.X "/usr/src/Makefile" +\s-1SMM\s0:1\*(tx48 +.X "/usr/src/new" +\s-1SMM\s0:1\*(tx17 +.X "/usr/src/usr.lib/libF77" +\s-1SMM\s0:1\*(tx48 +.X "/usr/src/usr.lib/libI77" +\s-1SMM\s0:1\*(tx48 +.X "/usr/src/usr.lib/sendmail" +\s-1SMM\s0:7\*(tx4 +.X "/usr/ucb" +\s-1USD\s0:4\*(tx12 +.X "/vmunix" +ps(1)\*(tx2, symorder(1), hier(7)\*(tx1, nlist(3), \s-1SMM\s0:2\*(tx5 +.X "1/432 inch (1/6 point)" +\s-1USD\s0:25\*(tx3 +.X "11/730 (see also VAX, DEC)" +\s-1SMM\s0:1\*(tx59 +.X "11/750" +\s-1SMM\s0:1\*(tx65 +.X "11/750 boot procedure" +reboot(8)\*(tx2 +.X "11/750 TU58 console cassette, VAX 11/730 and" +tu(4) +.X "11/780 boot procedure" +reboot(8)\*(tx1 +.X "1600 bpi tapes" +mt(4), mtio(4) +.X "3/4 em dash in TROFF" +\s-1USD\s0:23\*(tx9 +.X "32/V, UNIX" +\s-1PS2\s0:2 +.X "3B 20" +\s-1PS1\s0:1\*(tx16 +.X "3B, AT&T" +\s-1PS1\s0:1\*(tx3 +.X "4.1BSD" +\s-1SMM\s0:1\*(tx7,17, \s-1SMM\s0:7\*(tx34 +.X "4.1BSD binary image" +\s-1SMM\s0:1\*(tx17..18, \s-1SMM\s0:2\*(tx7 +.X "4.1BSD compatibility mode" +\s-1SMM\s0:1\*(tx18, \s-1SMM\s0:2\*(tx14 +.X "4.1BSD interrupt handling" +siginterrupt(3) +.X "4.2BSD compatibility option" +\s-1SMM\s0:2\*(tx33 +.X "4.2BSD file system" +\s-1SMM\s0:1\*(tx20, \s-1SMM\s0:5\*(tx15,19 +.X "4.2BSD kernel" +\s-1SMM\s0:1\*(tx23 +.X "4.2BSD signal handling semantics" +siginterrupt(3), \s-1SMM\s0:13\*(tx5 +.X "4.2BSD systems" +\s-1SMM\s0:1\*(tx2,7,18, \s-1SMM\s0:2\*(tx33, \s-1SMM\s0:13\*(tx26 +.X "4.2BSD to 4.3BSD, converting from" +\s-1SMM\s0:1\*(tx18,22 +.X "4.2BSD UDP implementation" +\s-1SMM\s0:13\*(tx27 +.X "4.2BSD, EGP implementation for" +\s-1SMM\s0:1\*(tx41 +.X "4.2BSD, TCP connections to" +\s-1SMM\s0:2\*(tx33 +.X "4.3BSD Architecture Manual" +\s-1PS1\s0:6 +.X "4.3BSD file system" +\s-1SMM\s0:1\*(tx7,20 +.X "4.3BSD kernel facilities, summary of" +\s-1PS1\s0:6\*(tx41 +.X "4.3BSD Line Printer Spooler Manual" +\s-1SMM\s0:6 +.X "4.3BSD, Adding device drivers to" +\s-1SMM\s0:2\*(tx15 +.X "4.3BSD, Bug Fixes and Changes in" +\s-1SMM\s0:12 +.X "4.3BSD, converting from 4.2BSD to" +\s-1SMM\s0:1\*(tx22 +.X "4.3BSD, disk partitions in" +\s-1SMM\s0:1\*(tx20 +.X "4.3BSD, hardware supported by" +\s-1SMM\s0:1\*(tx2 +.X "4.3BSD, signal usage in" +\s-1SMM\s0:13\*(tx6 +.X "6250 bpi tapes" +mt(4), mtio(4) +.X "800 bpi tapes" +mt(4), mtio(4) +.X "822\*(txformat, official" +\s-1USD\s0:8\*(tx91,94 +.X "8600, Bootstrapping an 8650 or" +\s-1SMM\s0:1\*(tx7 +.X "> (redirection operator)" +\s-1USD\s0:13\*(tx12 +.X "_ (see underscore)" +.X "_cleanup" +exit(3) +.X "_doprnt" +printf(3s) +.X "_end" +ld(1) +.X "_exit \*(tx terminate a process" +exit(2) +.X "_iob" +\s-1SMM\s0:1\*(tx23 +.X "__.SYMDEF" +ld(1), ranlib(1) +.X "(see also accent, backquote, backslash, bar, braces, brackets, caret, cedilla, circumflex, comma, colon, hacek, star, tab, thorn, tilde, yogh)" +.L A +.X "aardvark \*(tx yet another exploration game" +aardvark(6), \s-1SMM\s0:12\*(tx18 +.X "abbreviate" +\s-1USD\s0:16\*(tx5 +.X "abbreviation definition" +\s-1USD\s0:17\*(tx42 +.X "abbreviations" +\s-1USD\s0:15\*(tx17, \s-1USD\s0:27\*(tx8, \s-1USD\s0:31\*(tx13 +.X "abbreviations, word" +\s-1USD\s0:15\*(tx17, \s-1USD\s0:17\*(tx23,25,27 +.X "abnormal termination" +f77(1), wait(1), \s-1USD\s0:8\*(tx36, abort(3f), \s-1PS1\s0:2\*(tx6, \s-1PS1\s0:4\*(tx15, \s-1PS2\s0:10\*(tx60, \s-1SMM\s0:9\*(tx5, \s-1SMM\s0:15\*(tx16 +.X "ABOR command" +ftp(1c)\*(tx6, ftpd(8c), \s-1SMM\s0:12\*(tx20 +.X "ABORT" +stdio(3s), L.sys(5)\*(tx4, \s-1SMM\s0:12\*(tx14 +.X "ABORT routine" +abort(3) +.X "abs \*(tx integer absolute value" +abs(3) +.X "absolute file offset" +\s-1PS1\s0:6\*(tx31 +.X "absolute pathname" +\s-1USD\s0:4\*(tx6,20,34,43, \s-1USD\s0:7\*(tx18, termcap(5)\*(tx6, \s-1SMM\s0:14\*(tx13 +.X "absolute position indicator" +\s-1USD\s0:24\*(tx8 +.X "absolute value" +abs(3), floor(3m), hypot(3m), \s-1PS2\s0:6\*(tx24, \s-1PS2\s0:9\*(tx44..45, \s-1PS2\s0:10\*(tx36 +.X "ac command" +ac(8) +.X "acc \*(tx ACC LH/DH IMP interface" +acc(4) +.X "ACC ACP625 X.25 board" +ddn(4) +.X "accent, acute" +ms(7)\*(tx3, \s-1USD\s0:21\*(tx3, \s-1USD\s0:22\*(tx18, \s-1USD\s0:23\*(tx9, \s-1USD\s0:24\*(tx8, \s-1USD\s0:25\*(tx7 +.X "accent, grave" +ms(7)\*(tx3, \s-1USD\s0:3\*(tx16, \s-1USD\s0:21\*(tx3, \s-1USD\s0:22\*(tx18, \s-1USD\s0:23\*(tx9 +.X "accent mark" +ms(7)\*(tx1, \s-1USD\s0:20\*(tx6, \s-1USD\s0:21\*(tx3, \s-1USD\s0:29\*(tx6 +.X "accepting a connection from another socket" +\s-1PS1\s0:6\*(tx24,34 +.X "accept(s, name, anamelen)" +accept(2), \s-1PS1\s0:6\*(tx34, \s-1PS1\s0:7\*(tx14 +.X "access \*(tx determine accessibility of a file" +access(2), access(3f) +.X "access and modify times on a file" +\s-1PS1\s0:6\*(tx30 +.X "access check" +intro(2)\*(tx6..7, access(3f) +.X "access conflict" +\s-1PS1\s0:13\*(tx1 +.X "access control" +core(5), lpd(8), \s-1SMM\s0:6\*(tx3..4 +.X "access, execute" +csh(1)\*(tx9 +.X "access, file" +umask(2), access(3f), \s-1PS2\s0:1\*(tx4, \s-1PS2\s0:3\*(tx3 +.X "access function" +\s-1PS2\s0:9\*(tx108,111 +.X "access group" +execve(2), \s-1PS1\s0:6\*(tx8 +.X "access list" +\s-1PS1\s0:13\*(tx5,8,13,20 +.X "access list of the RCS file" +\s-1PS1\s0:13\*(tx8,13 +.X "access methods" +\s-1SMM\s0:14\*(tx2 +.X "access mode" +fcntl(2) +.X "access permission" +execve(2), getgid(2), intro(2)\*(tx7, \s-1SMM\s0:9\*(tx12, \s-1SMM\s0:21\*(tx2 +.X "access, printer" +lpd(8) +.X "access protection" +\s-1PS1\s0:6\*(tx29, \s-1PS2\s0:4\*(tx9 +.X "access, read" +csh(1)\*(tx9 +.X "access rights" +recv(2), \s-1PS1\s0:6\*(tx24,28,35..36, \s-1SMM\s0:13\*(tx3,13..15, \s-1SMM\s0:15\*(tx8..9 +.X "access rights transmission" +\s-1PS1\s0:6\*(tx37 +.X "access, sequential" +\s-1PS1\s0:3\*(tx3..4,9, \s-1PS2\s0:1\*(tx13 +.X "access time" +find(1), \s-1USD\s0:29\*(tx1, mount(2), stat(2)\*(tx1, \s-1PS1\s0:6\*(tx23,29,31, \s-1PS1\s0:10\*(tx11, \s-1PS2\s0:9\*(tx9, mount(8), \s-1SMM\s0:1\*(tx31, \s-1SMM\s0:14\*(tx3 +.X "access, write" +csh(1)\*(tx9 +.X "account, anonymous" +ftpd(8c), \s-1SMM\s0:1\*(tx43..44 +.X "accounting, connect time" +\s-1SMM\s0:1\*(tx50 +.X "accounting file" +lastcomm(1), login(1), acct(2), acct(5), utmp(5), \s-1PS1\s0:6\*(tx23,42, \s-1PS2\s0:1\*(tx4, ac(8), pac(8), sa(8), \s-1SMM\s0:6\*(tx5 +.X "accounting group id" +\s-1PS1\s0:6\*(tx8..9 +.X "accounting information" +vtimes(3c), pac(8), \s-1SMM\s0:1\*(tx50 +.X "accounting, phototypesetter" +troff(1) +.X "accounting, printer/plotter" +pac(8) +.X "accounting record" +\s-1PS1\s0:6\*(tx23 +.X "accounting, sa, accton \*(tx system" +sa(8) +.X "accounting, system" +\s-1USD\s0:8\*(tx93, sa(8) +.X "accounts, user" +\s-1SMM\s0:1\*(tx1 +.X "acct \*(tx execution accounting file" +acct(5) +.X "ACCT command" +acct(2) +.X "Acknowledgment Message" +\s-1SMM\s0:22\*(tx3 +.X "ACM mode, .ac" +\s-1USD\s0:23\*(tx8 +.X "acos \*(tx trigonometric function" +sin(3m) +.X "acosh" +asinh(3m) +.X "acquire a lock" +\s-1PS1\s0:6\*(tx12 +.X "action function" +\s-1PS2\s0:7\*(tx27..28 +.X "action statements" +\s-1USD\s0:19\*(tx4 +.X "actions" +\s-1PS1\s0:15\*(tx33 +.X "actions, default" +\s-1PS1\s0:6\*(tx13..14, \s-1PS1\s0:15\*(tx8,14, \s-1PS1\s0:16\*(tx5, \s-1PS2\s0:3\*(tx10..11, \s-1PS2\s0:10\*(tx34 +.X "actions, parser" +\s-1PS1\s0:15\*(tx9,14,18 +.X "active file system" +restore(8)\*(tx3 +.X "active socket" +netstat(1), spp(4p), tcp(4p) +.X "activity, I/O" +getrusage(2) +.X "activity, swapping" +systat(1)\*(tx3, swapon(8), \s-1SMM\s0:1\*(tx48 +.X "ACU devices (see also automatic call unit)" +L\*(txdevices(5) +.X "acucntrl" +\s-1SMM\s0:9\*(tx9 +.X "acute accent" +ms(7)\*(tx3, \s-1USD\s0:21\*(tx3, \s-1USD\s0:22\*(tx18, \s-1USD\s0:23\*(tx9, \s-1USD\s0:24\*(tx8..9, \s-1USD\s0:25\*(tx7 +.X "ad \*(tx Data Translation A/D converter" +ad(4) +.X "adapter, MASSBUS" +autoconf(4), \s-1SMM\s0:1\*(tx2..4, \s-1SMM\s0:2\*(tx9 +.X "adapter, UNIBUS" +autoconf(4), \s-1SMM\s0:1\*(tx4, \s-1SMM\s0:2\*(tx9,17,21, \s-1SMM\s0:12\*(tx17 +.X "adb \*(tx debugger" +adb(1)\*(tx1, gcore(1), \s-1PS1\s0:10, \s-1PS1\s0:11\*(tx1, crash(8v)\*(tx3, \s-1SMM\s0:3, \s-1SMM\s0:12\*(tx2 +.X "adb address map" +\s-1PS1\s0:10\*(tx22 +.X "adb commands, summary of" +\s-1PS1\s0:10\*(tx26 +.X "adb commands" +adb(1)\*(tx2, \s-1SMM\s0:3 +.X "adb output" +\s-1PS1\s0:10\*(tx14,16,18,20 +.X "adb output illustrating fancy formats" +\s-1PS1\s0:10\*(tx25 +.X "add a route" +route(8c) +.X "addbib" +addbib(1), refer(1), \s-1USD\s0:29\*(tx1,3,6 +.X "addch(ch)" +\s-1PS1\s0:18\*(tx4..5,8 +.X "Adding device drivers to 4.3BSD" +\s-1SMM\s0:2\*(tx15 +.X "Adding more text to the file" +\s-1USD\s0:14\*(tx8 +.X "adding new users" +adduser(8), \s-1SMM\s0:1\*(tx34 +.X "Adding non\*(txstandard system facilities" +\s-1SMM\s0:2\*(tx15 +.X "Adding Something to the End of a File (see also appending)" +\s-1USD\s0:13\*(tx12 +.X "additive operators" +\s-1PS1\s0:1\*(tx6..9,12 +.X "address, base" +read(2) +.X "address binding" +\s-1PS1\s0:8\*(tx30 +.X "address class" +\s-1SMM\s0:11\*(tx6,8 +.X "address, DARPA Internet" +gethostid(2), ifconfig(8c) +.X "address, destination" +\s-1PS1\s0:6\*(tx34,36, \s-1PS1\s0:7\*(tx22, \s-1PS1\s0:8\*(tx8..9,32,34,38 +.X "address, device" +\s-1PS2\s0:1\*(tx6, \s-1PS2\s0:4\*(tx5 +.X "address, disk" +types(5) +.X "address, Ethernet" +de(4), ec(4), ex(4), il(4), ix(4), qe(4), arp(8c), \s-1SMM\s0:2\*(tx13, \s-1SMM\s0:13\*(tx27,30 +.X "address family" +netstat(1), bind(2), connect(2), intro(2)\*(tx7, socket(2), arp(4p), lo(4), ifconfig(8c), \s-1SMM\s0:12\*(tx20, \s-1SMM\s0:13\*(tx2,4,20..21, \s-1SMM\s0:15\*(tx4,8,10,21 +.X "address, file" +\s-1PS1\s0:10\*(tx9 +.X "address, foreign" +idp(4p), \s-1PS1\s0:6\*(tx34, \s-1PS1\s0:8\*(tx4,30..32, \s-1SMM\s0:15\*(tx23 +.X "Address Format UNIX" +\s-1PS1\s0:7\*(tx8 +.X "address, function" +\s-1PS2\s0:9\*(tx128 +.X "address, gateway" +ip(4p), route(8c), \s-1SMM\s0:13\*(tx22 +.X "address, hardware" +arp(4p), vv(4) +.X "address, host" +netstat(1), gethostbyname(3), \s-1PS1\s0:7\*(tx11, \s-1PS1\s0:8\*(tx12, arp(8c), named(8), rshd(8c), \s-1SMM\s0:1\*(tx38,40, \s-1SMM\s0:11\*(tx2, \s-1SMM\s0:12\*(tx11, \s-1SMM\s0:13\*(tx28 +.X "address, interface" +intro(4n)\*(tx3, ifconfig(8c), \s-1SMM\s0:1\*(tx42, \s-1SMM\s0:13\*(tx9,29, \s-1SMM\s0:15\*(tx11..12 +.X "address, Internet" +hostid(1), \s-1USD\s0:8\*(tx82, inet(3n), resolver(3), arp(4p), imp(4), inet(4f), tcp(4p), hosts(5), \s-1PS1\s0:6\*(tx37, \s-1PS1\s0:7\*(tx11, \s-1PS1\s0:8\*(tx5,17,20,41, route(8c), \s-1SMM\s0:1\*(tx39, \s-1SMM\s0:11\*(tx5, \s-1SMM\s0:12\*(tx8, \s-1SMM\s0:13\*(tx23..24 +.X "address, invalid" +connect(2) +.X "address, IP (see also address, Internet)" +gethostbyname(3), nsip(4), \s-1SMM\s0:13\*(tx27 +.X "address, kernel virtual" +adb(1)\*(tx1, mem(4), \s-1SMM\s0:15\*(tx13 +.X "address list" +\s-1USD\s0:8\*(tx18,23,58,76, \s-1USD\s0:16\*(tx5 +.X "address, local" +\s-1SMM\s0:16\*(tx6 +.X "address, machine" +\s-1PS1\s0:7\*(tx11 +.X "address, mailing" +\s-1SMM\s0:10\*(tx10, \s-1SMM\s0:11\*(tx7 +.X "address mapping" +arp(4p), \s-1SMM\s0:1\*(tx42, \s-1SMM\s0:16\*(tx1 +.X "address mapping, Internet host name to" +\s-1PS1\s0:8\*(tx11 +.X "address match" +\s-1USD\s0:18\*(tx4..5 +.X "address, name server" +resolver(3) +.X "address, network" +netstat(1), \s-1USD\s0:8\*(tx73, gethostbyname(3), inet(3n), de(4), ec(4), en(4), ex(4), icmp(4p), idp(4p), il(4), imp(4p), ix(4), vv(4), hosts(5), \s-1PS1\s0:7\*(tx11..13, \s-1PS1\s0:8\*(tx11,14..15,31, ifconfig(8c), timed(8), \s-1SMM\s0:11\*(tx4..7, \s-1SMM\s0:13\*(tx24, \s-1SMM\s0:15\*(tx12 +.X "address, NS" +ns(4f), nsip(4) +.X "address of an object" +\s-1USD\s0:12\*(tx10 +.X "address, physical" +\s-1SMM\s0:13\*(tx28,30 +.X "address, physical Ethernet" +de(4), il(4), ix(4) +.X "address, point to point" +intro(4n)\*(tx3 +.X "address, recipient" +sendmail(8)\*(tx2, \s-1SMM\s0:7\*(tx9,23,27, \s-1SMM\s0:16\*(tx4,7 +.X "Address Resolution Protocol (see also ARP)" +arp(4p), de(4), ec(4), ex(4), il(4), ix(4), qe(4), arp(8c), ifconfig(8c), \s-1SMM\s0:2\*(tx10,13, \s-1SMM\s0:13\*(tx21,27, \s-1SMM\s0:15\*(tx12 +.X "address, return" +mailaddr(7)\*(tx2, \s-1USD\s0:8\*(tx36,96, \s-1SMM\s0:7\*(tx32, \s-1SMM\s0:19\*(tx12 +.X "address rewriting rules" +\s-1SMM\s0:16\*(tx8 +.X "address, sender" +\s-1SMM\s0:7\*(tx19,28 +.X "address space" +brk(2), ptrace(2), vfork(2), \s-1PS1\s0:1\*(tx10, \s-1PS1\s0:4\*(tx47, \s-1PS1\s0:6\*(tx7, \s-1PS1\s0:10\*(tx8, \s-1PS2\s0:1\*(tx14, \s-1SMM\s0:2\*(tx31, \s-1SMM\s0:10\*(tx8, \s-1SMM\s0:13\*(tx19, \s-1SMM\s0:14\*(tx10, \s-1SMM\s0:19\*(tx2 +.X "address, Symbolic" +dbx(1)\*(tx6 +.X "address type" +inet(4f) +.X "address, Unibus" +ec(4), \s-1SMM\s0:2\*(tx20, \s-1SMM\s0:13\*(tx33 +.X "address, virtual" +ps(4) +.X "address, XNS" +ns(3n) +.X "addresses, block" +badsect(8), \s-1SMM\s0:5\*(tx3, \s-1SMM\s0:14\*(tx3 +.X "addresses, broadcast" +idp(4p), inet(4f), intro(4n)\*(tx3, udp(4p), vv(4), ifconfig(8c), routed(8c)\*(tx1, \s-1SMM\s0:1\*(tx39..41, \s-1SMM\s0:13\*(tx4,21..23,27, \s-1SMM\s0:15\*(tx11..12 +.X "addresses, Multiple" +\s-1USD\s0:8\*(tx82, \s-1SMM\s0:12\*(tx12,15,21 +.X "addressing, line" +\s-1USD\s0:12\*(tx1, \s-1USD\s0:13\*(tx2,7 +.X "addressing, mail" +mailaddr(7)\*(tx1 +.X "addressing, subnet" +inet(4f), \s-1SMM\s0:13\*(tx22 +.X "addressing, wildcard" +spp(4p), tcp(4p) +.X "addstr(str)" +\s-1PS1\s0:18\*(tx6,8 +.X "adduser \*(tx procedure for adding new users" +adduser(8), \s-1SMM\s0:1\*(tx34 +.X "adjectives, nouns and" +\s-1USD\s0:32\*(tx6 +.X "Adjtime Message" +\s-1SMM\s0:12\*(tx13, \s-1SMM\s0:22\*(tx3 +.X "adjtime system call" +adjtime(2) +.X "adjusted lines, equally\*(txspaced words in" +nroff(1),\s-1USD\s0:24\*(tx2..3,12..13 +.X "admin, sccs" +\s-1PS1\s0:14\*(tx2,9 +.X "administering the quota system" +\s-1SMM\s0:4\*(tx2 +.X "administration, uucp" +\s-1SMM\s0:9\*(tx19 +.X "administrative information" +hier(7)\*(tx4 +.X "Administrator, Database" +\s-1PS2\s0:10\*(tx47..49,59 +.X "administrator, site" +\s-1SMM\s0:10\*(tx3,18, \s-1SMM\s0:11\*(tx3 +.X "administrator, system" +\s-1USD\s0:9\*(tx9 +.X "administrator, USENET" +\s-1USD\s0:10\*(tx1..5 +.X "Administrator, UUCP" +uucp(1c), L.sys(5)\*(tx1, USERFILE(5), uuxqt(8c), \s-1SMM\s0:9\*(tx17,19 +.X "Advanced 4.3BSD Interprocess Communication" +\s-1PS1\s0:8 +.X "Advanced Editing on UNIX" +\s-1USD\s0:13 +.X "advanced file handling script" +\s-1USD\s0:2\*(tx5 +.X "adverbs" +\s-1USD\s0:32\*(tx6 +.X "advisory lock" +close(2), flock(2), \s-1SMM\s0:14\*(tx2,12 +.X "advisory read or write lock on a file" +\s-1PS1\s0:6\*(tx31 +.X "ae ligature" +\s-1USD\s0:21\*(tx3 +.X "AED 512 color graphics terminal" +plot(1g), plot(3x) +.X "affixes, filename" +basename(1) +.X "AF_INET" +\s-1PS1\s0:6\*(tx33, \s-1PS1\s0:7\*(tx8 +.X "AF_UNIX" +\s-1PS1\s0:6\*(tx33, \s-1PS1\s0:7\*(tx8 +.X "aggregate" +\s-1PS1\s0:1\*(tx28 +.X "aggregate function" +\s-1PS2\s0:10\*(tx34,36..37,83 +.X "alarm clock" +csh(1)\*(tx12, alarm(3c), signal(3c)\*(tx1, ualarm(3) +.X "alarm routine" +alarm(3c), \s-1PS1\s0:6\*(tx17, \s-1SMM\s0:12\*(tx15 +.X "alert condition" +syslog(3) +.X "algorithm, adaptive" +\s-1SMM\s0:7\*(tx32 +.X "algorithm, DES" +crypt(3), \s-1SMM\s0:18\*(tx4 +.X "algorithm, encryption" +\s-1SMM\s0:17\*(tx3, \s-1SMM\s0:18\*(tx3 +.X "algorithm, exponential backoff" +ec(4), en(4) +.X "ali \*(tx list mail aliases" +\s-1USD\s0:8\*(tx12 +.X "alias command" +csh(1)\*(tx5, mail(1)\*(tx4, \s-1USD\s0:4\*(tx16,22, \s-1USD\s0:7\*(tx5,11 +.X "alias database" +\s-1USD\s0:8\*(tx75..76, sendmail(8), \s-1SMM\s0:7\*(tx7,10..11,16,28,30,38, \s-1SMM\s0:12\*(tx22, \s-1SMM\s0:16\*(tx7 +.X "alias definition" +\s-1USD\s0:4\*(tx15, \s-1USD\s0:8\*(tx65,73 +.X "alias list" +\s-1PS1\s0:8\*(tx11,13..14 +.X "alias macros" +window(1)\*(tx5 +.X "alias mechanism" +\s-1USD\s0:4\*(tx15, \s-1USD\s0:7\*(tx13 +.X "alias shell command" +csh(1)\*(tx10 +.X "alias substitutions" +csh(1)\*(tx5,19..20, \s-1USD\s0:8\*(tx43 +.X "aliases" +which(1), \s-1USD\s0:4\*(tx34, \s-1USD\s0:8\*(tx90 +.X "aliases \*(tx aliases file for sendmail" +aliases(5) +.X "aliases, command" +dbx(1)\*(tx5 +.X "aliases, local" +htable(8) +.X "aliases, remove" +\s-1USD\s0:4\*(tx24 +.X "aliasing" +\s-1SMM\s0:16\*(tx6 +.X "aliasing facility" +\s-1USD\s0:8\*(tx4 +.X "aliasing in MH" +\s-1USD\s0:8\*(tx76..77 +.X "aliasing loop" +\s-1SMM\s0:7\*(tx34,37 +.X "allbox \*(tx enclose each item in the table in a box" +\s-1USD\s0:28\*(tx2 +.X "alloc" +csh(1)\*(tx10, malloc(3) +.X "allocate an mbuf" +\s-1SMM\s0:15\*(tx5 +.X "allocation, block" +newfs(8), tunefs(8), \s-1SMM\s0:14\*(tx8..11 +.X "allocation, buffer" +\s-1SMM\s0:13\*(tx13, \s-1SMM\s0:15\*(tx8 +.X "allocation, memory" +csh(1)\*(tx10, fopen(3s), malloc(3), valloc(3c), \s-1SMM\s0:13\*(tx9,13,23 +.X "allocation policies" +\s-1SMM\s0:14\*(tx2 +.X "allocation, register" +\s-1SMM\s0:19\*(tx14,17,19..20,23..27 +.X "allocation routines" +\s-1SMM\s0:14\*(tx7 +.X "allocation/deallocation strategy" +\s-1SMM\s0:14\*(tx2 +.X "allocator, dynamic storage" +\s-1USD\s0:5\*(tx3,7, \s-1USD\s0:6\*(tx1, \s-1SMM\s0:19\*(tx6 +.X "allow\*(txbad\*(txfilenames (variable)" +\s-1USD\s0:17\*(tx25 +.X "allow\*(tx^S\*(txand\*(tx^Q" +\s-1USD\s0:17\*(tx25 +.X "alphabetical order" +sort(1), \s-1USD\s0:1\*(tx5..7, \s-1PS2\s0:7\*(tx15, \s-1PS2\s0:9\*(tx16,39 +.X "alphanumeric character" +ctype(3) +.X "alphasort \*(tx scan a directory" +scandir(3) +.X "alter priority" +renice(8) +.X "alternate accounting file" +\s-1SMM\s0:12\*(tx22 +.X "alternate alias file" +sendmail(8)\*(tx2 +.X "alternate manual directory" +\s-1SMM\s0:12\*(tx9 +.X "alternate password file" +getpwent(3) +.X "alternate return" +\s-1PS1\s0:2\*(tx14,18,21 +.X "alternate super block" +fsck(8) +.X "Alternate\*(txMailbox" +\s-1USD\s0:8\*(tx86 +.X "alternates command" +mail(1)\*(tx2, \s-1USD\s0:7\*(tx13 +.X "ambiguity and conflict" +\s-1PS1\s0:15\*(tx11 +.X "ambiguous specifications" +\s-1PS1\s0:16\*(tx1,7 +.X "AMPEX 9300 partitions" +hp(4)\*(tx3 +.X "AMPEX Capricorn 330M drive partitions" +hp(4), up(4), \s-1SMM\s0:14\*(tx9 +.X "AMPEX DM980 partitions" +up(4)\*(tx1 +.X "Amulet of Yendor" +rogue(6) +.X "analog\*(txdigital conversion" +ad(4) +.X "angle brackets" +\s-1SMM\s0:7\*(tx32, \s-1SMM\s0:16\*(tx6 +.X "angstrom" +\s-1USD\s0:21\*(tx3 +.X "Ann Arbor Ambassador" +sysline(1) +.X "anno \*(tx annotate messages" +\s-1USD\s0:8\*(tx4,13,104 +.X "annobib" +\s-1USD\s0:29\*(tx7 +.X "annotated message" +\s-1USD\s0:8\*(tx13,18,23,58 +.X "annotated UNIX bibliography" +\s-1USD\s0:1\*(tx1, \s-1PS1\s0:4\*(tx2 +.X "annotation paragraphs" +refer(1), roffbib(1), \s-1USD\s0:29\*(tx4,7 +.X "annotations" +\s-1USD\s0:8\*(tx13,84, \s-1USD\s0:22\*(tx7, \s-1USD\s0:23\*(tx5, \s-1USD\s0:29\*(tx3 +.X "annotations inside keeps" +\s-1USD\s0:22\*(tx16 +.X "anonymous ftp account" +ftpd(8c), \s-1SMM\s0:1\*(tx43..44 +.X "ANSEL VAX (a picture perfect machine)" +\s-1SMM\s0:2\*(tx11 +.X "ANSI" +\s-1PS1\s0:3 +.X "ANSI C" +\s-1SMM\s0:12\*(tx2, \s-1SMM\s0:19\*(tx26..27 +.X "ANSI format, tapes in" +\s-1SMM\s0:12\*(tx23 +.X "ANSI Fortran" +\s-1PS2\s0:8\*(tx2..5 +.X "ansitape" +\s-1SMM\s0:12\*(tx23 +.X "answers to frequently asked questions" +\s-1USD\s0:10\*(tx10 +.X "a.out" +adb(1)\*(tx1, cc(1)\*(tx2, f77(1)\*(tx2, ld(1), nm(1), \s-1USD\s0:4\*(tx34, nlist(3), \s-1PS1\s0:10\*(tx2 +.X "a.out \*(tx assembler and link editor output" +a.out(5)\*(tx1 +.X "ap \*(tx parse addresses 822\*(txstyle" +\s-1USD\s0:8\*(tx91 +.X "APL" +\s-1PS2\s0:1\*(tx2, \s-1PS2\s0:7\*(tx5 +.X "append \*(tx append tuples to a relation" +\s-1PS2\s0:10\*(tx7 +.X "append command" +ed(1)\*(tx3, \s-1USD\s0:12\*(tx1..2,8, \s-1USD\s0:13\*(tx9, \s-1USD\s0:14\*(tx8, \s-1USD\s0:15\*(tx7..8, \s-1PS2\s0:10\*(tx29,76..77 +.X "append lines" +\s-1USD\s0:18\*(tx4 +.X "append mode" +\s-1USD\s0:14\*(tx6..8,16, dup(2) +.X "append on each write" +\s-1PS1\s0:6\*(tx28 +.X "append string" +\s-1USD\s0:24\*(tx16 +.X "append to macro" +\s-1USD\s0:24\*(tx16 +.X "appending kills" +\s-1USD\s0:17\*(tx8 +.X "appending text" +mail(1)\*(tx5, \s-1USD\s0:14\*(tx6 +.X "appending to a Diversion" +\s-1USD\s0:24\*(tx17 +.X "appending to a file" +csh(1)\*(tx9, sh(1)\*(tx3, fcntl(2), open(2), fopen(3s) +.X "append\*(txonly directories, sticky \*(tx persistent text and" +sticky(8) +.X "append\*(txregion" +\s-1USD\s0:17\*(tx25 +.X "append" +mail(1)\*(tx5, \s-1USD\s0:7\*(tx17, \s-1USD\s0:16\*(tx5 +.X "appends a copy of string" +string(3) +.X "Apple Macintosh" +exp(3m) +.X "apply command" +apply(1) +.X "apply command examples" +apply(1) +.X "apropos command (see also man command)" +apropos(1), \s-1USD\s0:17\*(tx3,25 +.X "APS\*(tx5 phototypesetter" +\s-1USD\s0:24\*(tx32 +.X "ar \*(tx archive and library maintainer" +ar(1) +.X "ar \*(tx archive (library) file format" +ar(5) +.X "Arabic, .ar Set page number in" +\s-1USD\s0:23\*(tx6 +.X "arabic format" +\s-1USD\s0:24\*(tx18 +.X "arbitrary precision arithmetic" +dc(1) +.X "Arbitrary Precision Desk\*(txCalculator Language" +\s-1USD\s0:6 +.X "arc" +plot(3f) +.X "architecture, machine" +\s-1SMM\s0:19\*(tx16,20,22 +.X "Architecture Manual, 4.3BSD" +\s-1PS1\s0:6 +.X "architecture, VAX" +trpfpe(3f), \s-1SMM\s0:15\*(tx26 +.X "architectures, network" +\s-1SMM\s0:12\*(tx17 +.X "archival storage of messages" +\s-1SMM\s0:16\*(tx6 +.X "archive files" +ar(1), nm(1), ranlib(1), ar(5) +.X "archive notesfile" +\s-1USD\s0:11\*(tx10 +.X "archive, tp \*(tx manipulate tape" +tp(1) +.X "archiver, tar \*(tx tape" +tar(1) +.X "arctangent" +bc(1) +.X "arcv" +\s-1SMM\s0:12\*(tx2 +.X "Are You There" +telnet(1c)\*(tx2, \s-1SMM\s0:12\*(tx12 +.X "area, plotting" +plot(5) +.X "area, primary swap" +crash(8v)\*(tx3, \s-1SMM\s0:1\*(tx20, \s-1SMM\s0:13\*(tx17 +.X "arff, flcopy \*(tx archiver and copier for floppy" +arff(8v), \s-1SMM\s0:12\*(tx19 +.X "arg count" +execve(2), \s-1SMM\s0:12\*(tx9 +.X "argc" +execve(2), execl(3) +.X "ARGSUSED" +lint(1) +.X "argument expansion, Braces { ... } in" +\s-1USD\s0:4\*(tx32 +.X "argument, format" +\s-1USD\s0:20\*(tx6 +.X "argument list" +execve(2), \s-1PS1\s0:2\*(tx13..14, \s-1PS2\s0:1\*(tx11, \s-1PS2\s0:3\*(tx8, \s-1PS2\s0:9\*(tx10,51,55,60,116,150, \s-1PS2\s0:10\*(tx50 +.X "argument list processing" +csh(1)\*(tx19 +.X "argument list, varargs \*(tx variable" +varargs(3) +.X "arguments" +\s-1USD\s0:4\*(tx34, \s-1USD\s0:24\*(tx15, \s-1PS1\s0:2\*(tx4,17 +.X "arguments, command line" +csh(1)\*(tx6, ps(1)\*(tx1, getarg(3f), \s-1PS1\s0:4\*(tx34, \s-1PS2\s0:9\*(tx125 +.X "arguments, default" +\s-1USD\s0:3\*(tx5, \s-1USD\s0:4\*(tx15, \s-1USD\s0:8\*(tx6 +.X "arguments, dummy" +\s-1PS1\s0:2\*(tx9,20 +.X "arguments, flag" +\s-1USD\s0:4\*(tx4, \s-1PS1\s0:12\*(tx5..6, \s-1PS2\s0:1\*(tx5 +.X "arguments, formal" +\s-1PS1\s0:1\*(tx7, \s-1PS2\s0:6\*(tx8,10,15..16,23, \s-1SMM\s0:19\*(tx26 +.X "arguments, function" +bc(1), \s-1USD\s0:6\*(tx10, \s-1PS1\s0:1\*(tx31, \s-1PS1\s0:9\*(tx4,6, \s-1PS2\s0:9\*(tx103, \s-1SMM\s0:19\*(tx15 +.X "arguments, functional" +fp(1), \s-1PS2\s0:7\*(tx4,15..17 +.X "arguments, macro" +\s-1PS1\s0:17\*(tx3 +.X "arguments, Macros with" +\s-1USD\s0:25\*(tx10 +.X "arguments, option" +getopt(3) +.X "arguments, procedure" +\s-1PS1\s0:2\*(tx14, \s-1PS2\s0:6\*(tx8,10 +.X "arguments to jove command, numeric" +\s-1USD\s0:17\*(tx5 +.X "arguments, variable numbers of" +lint(1) +.X "argv" +\s-1USD\s0:4\*(tx34, execve(2), execl(3) +.X "argv, getopt \*(tx get option letter from" +getopt(3) +.X "argv shell variable" +csh(1)\*(tx6,17, \s-1USD\s0:4\*(tx25 +.X "arithmetic \*(tx provide drill in number facts" +arithmetic(6) +.X "arithmetic, arbitrary precision" +dc(1) +.X "arithmetic conversion" +\s-1PS1\s0:1\*(tx5,8..11,22, \s-1SMM\s0:19\*(tx20,24 +.X "arithmetic error, traper \*(tx trap" +traper(3f) +.X "arithmetic exceptions" +trapov(3f), trpfpe(3f) +.X "arithmetic expression" +awk(1), m4(1), \s-1USD\s0:6\*(tx2, \s-1USD\s0:25\*(tx10, \s-1PS1\s0:15\*(tx3,11,14,24, \s-1SMM\s0:19\*(tx26 +.X "arithmetic, floating point" +ieee(3m), math(3m)\*(tx3,6, \s-1PS1\s0:1\*(tx31, \s-1PS1\s0:4\*(tx45, \s-1SMM\s0:19\*(tx20,24 +.X "arithmetic operations" +bc(1), \s-1USD\s0:5\*(tx4, \s-1USD\s0:6\*(tx3, \s-1USD\s0:19\*(tx5, \s-1USD\s0:25\*(tx10, \s-1PS1\s0:4\*(tx47, \s-1PS1\s0:15\*(tx15,28, \s-1PS2\s0:7\*(tx5, \s-1PS2\s0:9\*(tx3, \s-1PS2\s0:10\*(tx33..34, \s-1SMM\s0:19\*(tx20 +.X "arithmetic, Single precision" +\s-1SMM\s0:19\*(tx26 +.X "arithmetic type" +\s-1PS1\s0:1\*(tx4,8,18, \s-1PS2\s0:6\*(tx11 +.X "armor protection" +\s-1USD\s0:33\*(tx3 +.X "arp \*(tx Address Resolution Protocol" +arp(4p) +.X "ARP (see also protocols)" +arp(4p), de(4), ec(4), en(4), ex(4), il(4), ix(4), qe(4), arp(8c), \s-1SMM\s0:1\*(tx38, \s-1SMM\s0:2\*(tx13, \s-1SMM\s0:12\*(tx17,19, \s-1SMM\s0:13\*(tx21,27 +.X "ARP entries" +arp(4p), arp(8c) +.X "ARP server" +arp(4p), arp(8c), \s-1SMM\s0:12\*(tx17 +.X "ARP tables" +arp(8c), \s-1SMM\s0:13\*(tx21,27 +.X "ARPA domain" +\s-1SMM\s0:11\*(tx5,8 +.X "ARPA Internet" +\s-1USD\s0:8\*(tx91,94 +.X "ARPA Internet Text Messages, Format of" +mailaddr(7)\*(tx3, \s-1USD\s0:8\*(tx84,91,94,97 +.X "ARPANET" +\s-1SMM\s0:7\*(tx4,28,30 +.X "array access function" +\s-1PS2\s0:9\*(tx108,111 +.X "array, associative" +\s-1USD\s0:19\*(tx5 +.X "array attributes" +\s-1PS2\s0:6\*(tx14..16 +.X "array bounds" +f77(1)\*(tx2 +.X "array, character" +\s-1PS1\s0:1\*(tx19, \s-1PS1\s0:2\*(tx18,22, \s-1PS2\s0:3\*(tx14..15 +.X "array declarations" +\s-1PS1\s0:2\*(tx19 +.X "array elements" +awk(1), \s-1USD\s0:6\*(tx5, \s-1USD\s0:19\*(tx1,5, \s-1PS1\s0:2\*(tx9,25, \s-1PS1\s0:3\*(tx3,7, \s-1PS2\s0:6\*(tx10..13,16,21,23, \s-1PS2\s0:9\*(tx30,111 +.X "array, flonum\*(txblock" +\s-1PS2\s0:9\*(tx28,105,111 +.X "array identifiers" +\s-1USD\s0:6\*(tx9 +.X "array names" +bc(1), \s-1USD\s0:6\*(tx5, \s-1PS1\s0:1\*(tx7, \s-1PS1\s0:2\*(tx10, \s-1PS2\s0:6\*(tx8,10,22 +.X "array object" +\s-1PS2\s0:9\*(tx29..30,81,104,108,111 +.X "array references" +\s-1PS2\s0:6\*(tx8, \s-1PS2\s0:9\*(tx55,108 +.X "array, two\*(txdimensional" +\s-1PS1\s0:1\*(tx19, \s-1PS1\s0:2\*(tx13, \s-1PS1\s0:16\*(tx8 +.X "arrays" +\s-1PS1\s0:1\*(tx7,29, \s-1PS2\s0:9\*(tx3,9,28,108 +.X "arrays, multidimensional" +f77(1)\*(tx2, \s-1PS1\s0:1\*(tx15,30, \s-1PS1\s0:2\*(tx5 +.X "arrow keys" +\s-1USD\s0:15\*(tx3,5,7,27, \s-1USD\s0:17\*(tx1, termcap(5)\*(tx10..11 +.X "article" +\s-1USD\s0:9\*(tx5 +.X "article in book" +\s-1USD\s0:31\*(tx6 +.X "articles, journal" +\s-1USD\s0:21\*(tx2, \s-1USD\s0:30\*(tx8, \s-1USD\s0:31\*(tx5 +.X "as \*(tx VAX\*(tx11 assembler" +as(1), error(1)\*(tx1, \s-1PS1\s0:12\*(tx6, \s-1SMM\s0:12\*(tx2 +.X "ascending order" +bad144(8) +.X "ASCII" +ftp(1c)\*(tx1,5, ctime(3), fdate(3f), inet(3n), \s-1PS1\s0:1\*(tx5 +.X "ascii \*(tx map of ASCII character set" +ascii(7) +.X "ASCII approximation, printable" +troff(1) +.X "ASCII codes" +tr(1) +.X "ASCII, date and time to" +ctime(3) +.X "ASCII dump" +od(1) +.X "ASCII terminals, window \*(tx window environment on" +window(1)\*(tx1 +.X "ASCII to EBCDIC, convert" +dd(1) +.X "asctime" +ctime(3) +.X "asin \*(tx trigonometric function" +sin(3m) +.X "asinh" +asinh(3m) +.X "ask" +mail(1)\*(tx5, \s-1USD\s0:7\*(tx17 +.X "askcc" +mail(1)\*(tx5, \s-1USD\s0:7\*(tx18 +.X "assembler, as \*(tx VAX\*(tx11" +as(1) +.X "assembler language" +as(1), \s-1PS1\s0:4\*(tx37, \s-1PS2\s0:1\*(tx2, \s-1PS2\s0:9\*(tx4, \s-1SMM\s0:19\*(tx2,14 +.X "assembler\*(txlanguage output" +cc(1)\*(tx1, f77(1)\*(tx1, liszt(1), pc(1), \s-1PS1\s0:2\*(tx5, \s-1PS1\s0:5\*(tx6, \s-1SMM\s0:19\*(tx18 +.X "Assembler Reference Manual, Berkeley VAX/UNIX" +\s-1PS1\s0:5 +.X "assert \*(tx program verification" +assert(3) +.X "assert calls" +pc(1) +.X "assign format to register" +\s-1USD\s0:24\*(tx17 +.X "assignment, character" +\s-1PS1\s0:2\*(tx20 +.X "assignment operator expressions" +\s-1SMM\s0:19\*(tx19,23..24 +.X "assignment operators" +csh(1)\*(tx16, \s-1USD\s0:19\*(tx5, \s-1PS1\s0:1\*(tx8,11,33, \s-1PS1\s0:9\*(tx6, \s-1PS2\s0:6\*(tx13, \s-1SMM\s0:19\*(tx9,15,21..22 +.X "assignment statements" +fp(1), \s-1USD\s0:6\*(tx7, \s-1PS1\s0:4\*(tx24, \s-1PS2\s0:6\*(tx16 +.X "assignment, structure" +\s-1SMM\s0:13\*(tx23, \s-1SMM\s0:19\*(tx9,13,21,24 +.X "assignments, value" +\s-1PS1\s0:2\*(tx9..10 +.X "assoc list" +\s-1PS2\s0:9\*(tx32..33,103,154 +.X "associated terminal" +\s-1SMM\s0:12\*(tx11 +.X "associations of UNIX file names with Pascal file variables" +\s-1PS1\s0:4\*(tx31 +.X "associative arrays" +\s-1USD\s0:19\*(tx5 +.X "asterisk (see star)" +.X "asymmetric protocol" +\s-1PS1\s0:8\*(tx17 +.X "asynchronous error reports" +\s-1PS1\s0:6\*(tx34 +.X "asynchronous I/O" +dup(2), \s-1SMM\s0:12\*(tx14 +.X "asynchronous notification of I/O events" +socket(2) +.X "asynchronous notification of I/O requests" +\s-1PS1\s0:8\*(tx26 +.X "asynchronous processes" +kill(1), sh(1)\*(tx6 +.X "at \*(tx execute commands at a later time" +at(1), \s-1SMM\s0:12\*(tx2 +.X "atan \*(tx trigonometric function" +sin(3m) +.X "atan2 \*(tx trigonometric function" +sin(3m) +.X "atanh" +asinh(3m) +.X "atofs, atois, atol \*(tx convert ASCII to number" +atof(3) +.X "atom, literal" +\s-1PS2\s0:9\*(tx143,153 +.X "atomic command" +\s-1PS2\s0:9\*(tx149..151 +.X "atq \*(tx print the queue of jobs waiting to be run" +atq(1) +.X "atrm \*(tx remove jobs spooled by at" +atrm(1) +.X "AT&T 3B" +\s-1PS1\s0:1\*(tx1,3 +.X "attach routine" +\s-1SMM\s0:2\*(tx19 +.X "attribute names" +\s-1PS2\s0:10\*(tx65,76,84 +.X "attributes, array" +\s-1PS2\s0:6\*(tx14..16 +.X "attributes, character" +\s-1PS2\s0:10\*(tx7,35,76 +.X "attributes of a file" +\s-1PS1\s0:6\*(tx29 +.X "attributes of variables" +\s-1USD\s0:4\*(tx25 +.X "attributes, rcs \*(tx change RCS file" +\s-1PS1\s0:13\*(tx12 +.X "Australia" +\s-1SMM\s0:10\*(tx24 +.X "authenticating clients" +rcmd(3), \s-1PS1\s0:8\*(tx19 +.X "authentication" +rexecd(8c), rlogind(8c), rshd(8c), \s-1SMM\s0:1\*(tx26 +.X "author name" +refer(1), \s-1USD\s0:11\*(tx9, \s-1USD\s0:29\*(tx5, \s-1USD\s0:30\*(tx12 +.X "author, searching for" +\s-1USD\s0:11\*(tx9 +.X "authorization system message" +syslog(3) +.X "authors, multiple" +\s-1USD\s0:20\*(tx2, \s-1USD\s0:29\*(tx2..3 +.X "auto fill mode" +\s-1USD\s0:17\*(tx2,12,23,26,43,47 +.X "auto indent mode" +\s-1USD\s0:17\*(tx2,23,26,36,39 +.X "auto speed selection" +gettytab(5)\*(tx2 +.X "autoboot" +reboot(2) +.X "auto\*(txcase\*(txabbrev (variable)" +\s-1USD\s0:17\*(tx25 +.X "autoconf \*(tx diagnostics from the autoconfiguration code" +autoconf(4), \s-1SMM\s0:1\*(tx12 +.X "autoconfiguration" +netstat(1), intro(4), \s-1SMM\s0:1\*(tx13,64, \s-1SMM\s0:2\*(tx2..3,8, \s-1SMM\s0:13\*(tx17 +.X "autoconfiguration on the VAX" +\s-1SMM\s0:2\*(tx16 +.X "autoconfiguration requirements" +\s-1SMM\s0:2\*(tx23 +.X "autodialing modem" +L\*(txdevices(5), \s-1SMM\s0:9\*(tx13 +.X "auto\*(txexecute\*(txcommand" +\s-1USD\s0:17\*(tx25 +.X "auto\*(txexecute\*(txmacro" +\s-1USD\s0:17\*(tx26 +.X "auto\*(txfill\*(txmode" +\s-1USD\s0:17\*(tx26 +.X "autoindent" +\s-1USD\s0:15\*(tx15..16,22,25, \s-1USD\s0:16\*(tx6..7,15 +.X "auto\*(txindent\*(txmode" +\s-1USD\s0:17\*(tx26 +.X "autoloading" +\s-1PS2\s0:9\*(tx3 +.X "Autologic APS\*(tx Micro5" +ct(4) +.X "auto\*(txlogin process" +ftp(1c)\*(tx4,7 +.X "Automated Readability Index" +\s-1USD\s0:32\*(tx3..4 +.X "automatic call unit" +dn(4), L\*(txdevices(5), L.sys(5)\*(tx2, \s-1SMM\s0:1\*(tx35..36, \s-1SMM\s0:9\*(tx20, \s-1SMM\s0:21\*(tx1..2 +.X "automatic hyphenation" +\s-1USD\s0:1\*(tx10, \s-1USD\s0:24\*(tx22 +.X "automatic logging" +\s-1USD\s0:11\*(tx14 +.X "automatic reboot" +crash(8v)\*(tx1, fsck(8), rc(8) +.X "Automatic Sequencing" +\s-1USD\s0:11\*(tx11 +.X "automatic variables" +adb(1)\*(tx4, bc(1), lint(1), \s-1USD\s0:6\*(tx4, \s-1PS1\s0:1\*(tx4, \s-1PS1\s0:2\*(tx7, \s-1SMM\s0:19\*(tx11 +.X "automatically numbered footnotes" +\s-1USD\s0:21\*(tx1 +.X "automaton, finite" +\s-1USD\s0:19\*(tx6 +.X "autoprint" +mail(1)\*(tx5, \s-1USD\s0:7\*(tx18, \s-1USD\s0:16\*(tx15 +.X "auto\*(txreboot" +rc(8) +.X "autowrite" +\s-1USD\s0:16\*(tx15 +.X "auxiliary printer" +termcap(5)\*(tx13 +.X "auxiliary verbs" +\s-1USD\s0:32\*(tx4..5,9 +.X "average seek time" +iostat(1), systat(1)\*(tx3 +.X "awk \*(tx pattern scanning and processing language" +awk(1), \s-1USD\s0:19\*(tx1, sendmail(8)\*(tx2, \s-1SMM\s0:12\*(tx2 +.X "awk action" +\s-1USD\s0:19\*(tx4 +.X "awk examples" +awk(1) +.X "awk patterns" +\s-1USD\s0:19\*(tx1,3 +.X "awk performance comparison, wc, grep, egrep, fgrep, sed, lex," +\s-1USD\s0:19\*(tx6 +.X "awk programs" +\s-1USD\s0:19\*(tx1..7 +.X "awk variable, FILENAME" +\s-1USD\s0:19\*(tx2 +.X "axis, Logarithmic" +graph(1g) +.L B +.X "backgammon \*(tx the game" +backgammon(6) +.X "background execution" +csh(1)\*(tx1..2,16, sh(1)\*(tx2, stty(1)\*(tx2, w(1), \s-1USD\s0:1\*(tx10, \s-1USD\s0:3\*(tx2, \s-1USD\s0:4\*(tx16..22,34,41..44 +.X "background read attempted from control terminal" +signal(3c)\*(tx1 +.X "background write attempted to control terminal" +signal(3c)\*(tx1 +.X "backquote character macro" +\s-1PS2\s0:9\*(tx10,99 +.X "backquote macro" +\s-1PS2\s0:9\*(tx99 +.X "backquote (see also accent, grave)" +csh(1)\*(tx7, sh(1)\*(tx2, \s-1USD\s0:4\*(tx32, \s-1USD\s0:8\*(tx48 +.X "backslash character" +csh(1)\*(tx1, jove(1)\*(tx3, \s-1USD\s0:1\*(tx3, \s-1USD\s0:12\*(tx9, \s-1USD\s0:13\*(tx3, \s-1USD\s0:18\*(tx5, \s-1USD\s0:22\*(tx10, \s-1USD\s0:25\*(tx2,10, \s-1USD\s0:29\*(tx6 +.X "backslash escapes" +L.sys(5), \s-1PS1\s0:2\*(tx8, \s-1PS2\s0:10\*(tx27, \s-1SMM\s0:9\*(tx16 +.X "backspace" +tset(1)\*(tx2, \s-1USD\s0:4\*(tx43, tty(4)\*(tx9 +.X "backspace character" +expand(1), tset(1)\*(tx2, \s-1SMM\s0:20\*(tx2 +.X "backspacing" +\s-1USD\s0:24\*(tx19 +.X "backtrace, C" +\s-1PS1\s0:10\*(tx3..5 +.X "backtrace, C stack" +adb(1)\*(tx4 +.X "backtrace, post\*(txmortem" +px(1), \s-1PS1\s0:4\*(tx36,41 +.X "backup tapes (see dump)" +dump(5) +.X "backups and disaster recovery" +\s-1SMM\s0:1\*(tx46 +.X "backward compatibility" +siginterrupt(3) +.X "backward scanning" +\s-1SMM\s0:12\*(tx9 +.X "backward\*(txcharacter (C\*(txB)" +\s-1USD\s0:17\*(tx26 +.X "backward\*(txparagraph (ESC [)" +\s-1USD\s0:17\*(tx26 +.X "backward\*(txsentence (ESC A)" +\s-1USD\s0:17\*(tx27 +.X "backward\*(txs\*(txexpression (ESC C\*(txB)" +\s-1USD\s0:17\*(tx26 +.X "backward\*(txword (ESC B)" +\s-1USD\s0:17\*(tx27 +.X "bad argument to system call" +signal(3c)\*(tx1 +.X "bad block forwarding" +badsect(8), \s-1SMM\s0:12\*(tx20 +.X "bad blocks" +badsect(8) +.X "bad sector" +bad144(8), badsect(8), format(8v)\*(tx1 +.X "bad sector forwarding" +disktab(5), bad144(8), \s-1SMM\s0:1\*(tx8, \s-1SMM\s0:12\*(tx15,18 +.X "bad sector forwarding table" +bad144(8), badsect(8), diskpart(8), format(8v), \s-1SMM\s0:1\*(tx4,10,28 \s-1SMM\s0:12\*(tx19 +.X "bad144 \*(tx read/write dec standard 144 bad sector information" +bad144(8), diskpart(8), \s-1SMM\s0:12\*(tx19 +.X "bad\*(txfilename\*(txextensions (variable)" +\s-1USD\s0:17\*(tx27 +.X "badsect \*(tx create files to contain bad sectors" +badsect(8) +.X "bandwidth, disk" +\s-1SMM\s0:14\*(tx2..3,10 +.X "banner \*(tx print large banner on printer" +banner(6) +.X "bar, vertical" +\s-1USD\s0:10\*(tx10, \s-1PS1\s0:4\*(tx18, \s-1PS1\s0:15\*(tx4, \s-1PS2\s0:9\*(tx26, \s-1PS2\s0:10\*(tx70 +.X "base" +\s-1USD\s0:4\*(tx34 +.X "base address" +adb(1)\*(tx5, read(2), write(2) +.X "base indent" +\s-1USD\s0:23\*(tx2..4,7 +.X "base indent, .ba Set the" +\s-1USD\s0:23\*(tx7 +.X "base, input" +dc(1), \s-1USD\s0:5\*(tx1,3,6, \s-1USD\s0:6\*(tx3 +.X "base line" +\s-1USD\s0:24\*(tx22 +.X "base name" +\s-1USD\s0:4\*(tx37, \s-1USD\s0:30\*(tx4 +.X "base note" +\s-1USD\s0:11\*(tx2,5,7..10 +.X "base, output" +\s-1USD\s0:5\*(tx6..7, \s-1USD\s0:6\*(tx3 +.X "base\*(txline spacing" +\s-1USD\s0:24\*(tx13,28..29 +.X "basename \*(tx strip filename affixes" +basename(1) +.X "basic units" +\s-1USD\s0:23\*(tx1, \s-1USD\s0:24\*(tx8 +.X "batch" +\s-1SMM\s0:10\*(tx4,21 +.X "batch facility" +at(1) +.X "battlestar \*(tx a tropical adventure game" +battlestar(6) +.X "baudrate()" +\s-1PS1\s0:18\*(tx13 +.X "BBN bitgraph graphics terminal" +plot(1g), plot(3x) +.X "BBoard" +\s-1USD\s0:8\*(tx43,86 +.X "BBoard reader" +\s-1USD\s0:8\*(tx42 +.X "bc \*(tx arbitrary\*(txprecision arithmetic language" +bc(1), dc(1), \s-1USD\s0:5\*(tx1, \s-1USD\s0:6\*(tx1, mp(3x), \s-1SMM\s0:12\*(tx2 +.X "bc language formal grammar" +\s-1USD\s0:6\*(tx9 +.X "Bcc:" +\s-1USD\s0:8\*(tx58,64,83,96, sendmail(8)\*(tx2, \s-1SMM\s0:7\*(tx12,28 +.X "bcd \*(tx convert to antique media" +bcd(6) +.X "bcopy, bcmp, bzero, ffs \*(tx bit and byte string operations" +bstring(3) +.X "beautify" +\s-1USD\s0:16\*(tx15 +.X "begin left\*(txjustified paragraph, .lp" +\s-1USD\s0:23\*(tx2 +.X "begin page" +man(7), \s-1USD\s0:24\*(tx11, \s-1USD\s0:25\*(tx8 +.X "begin paragraph" +man(7) +.X "BEGIN, pattern" +\s-1USD\s0:19\*(tx3 +.X "Beginners, UNIX For" +\s-1USD\s0:1 +.X "beginning of a line" +\s-1USD\s0:12\*(tx9 +.X "beginning\*(txof\*(txfile (ESC <)" +\s-1USD\s0:17\*(tx27 +.X "beginning\*(txof\*(txline (C\*(txA)" +\s-1USD\s0:17\*(tx27 +.X "beginning\*(txof\*(txwindow (ESC ,)" +\s-1USD\s0:17\*(tx27 +.X "Bell 212\*(txcompatible modems" +L\*(txdevices(5), L.sys(5)\*(tx2, \s-1SMM\s0:9\*(tx15 +.X "bell, terminal" +csh(1)\*(tx3, tty(4)\*(tx2 +.X "bell, visible" +termcap(5)\*(tx9 +.X "Benson Varian printer\*(txplotter" +plot(1g), va(4), vfont(5), \s-1SMM\s0:6\*(tx4..5 +.X "Berkeley FP User's Manual, Rev. 4.1" +\s-1PS2\s0:7 +.X "Berkeley mail program" +\s-1USD\s0:1\*(tx3 +.X "Berkeley Pascal, nonstandard functions and procedures in" +\s-1PS1\s0:4\*(tx49 +.X "Berkeley Pascal User's Manual" +\s-1PS1\s0:4 +.X "Berkeley VAX/UNIX Assembler Reference Manual" +\s-1PS1\s0:5 +.X "Berknet" +mail(1)\*(tx2 +.X "Bessel function" +bc(1), \s-1USD\s0:6\*(tx1,7, bessel(3f), j0(3m) +.X "bg command" +csh(1)\*(tx2,10, \s-1USD\s0:4\*(tx18,34,44 +.X "BIB \*(tx A Program for Formatting Bibliographies" +bib(1), \s-1USD\s0:31\*(tx1 +.X "bib, list of names of journals, publishers, known to" +\s-1USD\s0:31\*(tx16 +.X "bib options" +\s-1USD\s0:31\*(tx3 +.X "bibliographic database" +addbib(1), bib(1) +.X "bibliographic references" +lookbib(1) +.X "bibliographies, formatting" +\s-1USD\s0:31\*(tx1 +.X "bibliographies, stand\*(txalone" +refer(1), \s-1USD\s0:29\*(tx4,9 +.X "bibliography, annotated" +\s-1PS1\s0:4\*(tx2 +.X "bibliography entries" +\s-1USD\s0:21\*(tx2 +.X "bibliography files" +addbib(1), \s-1USD\s0:29\*(tx3,9 +.X "bibliography, indxbib \*(tx build inverted index for a" +lookbib(1) +.X "bibliography, lookbib \*(tx find references in a" +lookbib(1) +.X "bibliography, printing the" +\s-1USD\s0:29\*(tx3 +.X "bibliography, sorting a" +\s-1USD\s0:29\*(tx1,3 +.X "bibliography system" +bib(1), \s-1USD\s0:22\*(tx14, \s-1USD\s0:29 +.X "biff \*(tx be notified if mail arrives" +biff(1), inetd(8) +.X "big brackets" +\s-1USD\s0:27\*(tx6 +.X "bignums" +\s-1PS1\s0:5\*(tx10 +.X "bin directories" +\s-1USD\s0:4\*(tx35 +.X "binaries, 4.1BSD" +\s-1SMM\s0:1\*(tx17..18, \s-1SMM\s0:2\*(tx7 +.X "binaries, system" +crash(8v)\*(tx1, \s-1SMM\s0:1\*(tx2,29, \s-1SMM\s0:9\*(tx11 +.X "binary comparison" +cmp(1), rdist(1)\*(tx2 +.X "binary data" +\s-1USD\s0:8\*(tx82, \s-1PS2\s0:9\*(tx27,105,113, \s-1SMM\s0:16\*(tx5 +.X "binary files" +diff(1), ftp(1c)\*(tx7, lpr(1), strings(1), uuencode(1c), uusend(1c), \s-1USD\s0:4\*(tx35, \s-1USD\s0:16\*(tx6, \s-1SMM\s0:9\*(tx11 +.X "binary, foreign" +\s-1PS2\s0:9\*(tx97 +.X "binary image" +\s-1SMM\s0:1\*(tx49, \s-1SMM\s0:2\*(tx5,31 +.X "binary object" +\s-1PS2\s0:9\*(tx37,66,95,104,136 +.X "binary operators" +\s-1PS1\s0:1\*(tx31..32, \s-1PS1\s0:15\*(tx14..15, \s-1PS2\s0:6\*(tx12 +.X "binary, type" +\s-1PS2\s0:9\*(tx7,19,61 +.X "bind" +resolver(3), resolver(5), named(8), \s-1SMM\s0:11\*(tx2..16, \s-1SMM\s0:15\*(tx15 +.X "bind \*(tx bind a name to a socket" +bind(2), \s-1PS1\s0:8\*(tx5 +.X "binding addresses to sockets in the Internet and NS domains" +\s-1PS1\s0:8\*(tx30 +.X "binding, function" +\s-1PS2\s0:9\*(tx4,21..22,29,58,62..63,70,120,124,136 +.X "binding, lambda" +\s-1PS2\s0:9\*(tx51,54,56..57,85 +.X "binding local names" +\s-1PS1\s0:8\*(tx4 +.X "binding names" +\s-1PS1\s0:7\*(tx9, \s-1PS1\s0:8\*(tx5 +.X "binding objects" +\s-1PS2\s0:9\*(tx59 +.X "binding stream socket" +\s-1PS1\s0:7\*(tx16,18,21 +.X "binding to a name (or address) within the communications domain" +\s-1PS1\s0:6\*(tx34 +.X "bindings, key" +jove(1)\*(tx2, \s-1USD\s0:17\*(tx9,24,29 +.X "BINDIR" +\s-1SMM\s0:10\*(tx8,21 +.X "bind\*(txmacro\*(txto\*(txkey" +\s-1USD\s0:17\*(tx27 +.X "bind\*(txmacro\*(txto\*(txword\*(txabbrev" +\s-1USD\s0:17\*(tx27 +.X "bind(s, name, namelen)" +\s-1PS1\s0:6\*(tx34 +.X "bind\*(txto\*(txkey" +\s-1USD\s0:17\*(tx27 +.X "binmail \*(tx send or receive mail among users" +binmail(1), rmail(1) +.X "bit \*(tx and, or, xor, not, rshift, lshift bitwise functions" +bit(3f) +.X "bit string operations" +bstring(3) +.X "BITNET" +mailaddr(7)\*(tx2, \s-1USD\s0:7\*(tx10, \s-1SMM\s0:11\*(tx3..4 +.X "bits, protection" +\s-1SMM\s0:17\*(tx1 +.X "bits, relocation" +ld(1), strip(1) +.X "bits, significant" +math(3m)\*(tx2 +.X "Bizcomp 1030" +phones(5) +.X "bk \*(tx line discipline for machine\*(txmachine communication (obsolete)" +bk(4) +.X "blank character" +\s-1USD\s0:16\*(tx7 +.X "blank interpretation" +sh(1)\*(tx2, \s-1USD\s0:3\*(tx10,17,21 +.X "blank lines" +\s-1PS1\s0:2\*(tx17, \s-1PS2\s0:8\*(tx6, \s-1PS2\s0:10\*(tx65,70, \s-1SMM\s0:7\*(tx37 +.X "blank\*(txpadding" +printf(3s) +.X "blanks, initial" +sed(1)\*(tx1, \s-1USD\s0:24\*(tx16 +.X "blanks, trailing" +dd(1), \s-1USD\s0:29\*(tx6, ar(5), \s-1PS1\s0:2\*(tx26, \s-1PS1\s0:4\*(tx32,48, \s-1PS2\s0:4\*(tx7, \s-1PS2\s0:10\*(tx23,38 +.X "blinking" +window(1)\*(tx5 +.X "block addresses" +badsect(8), \s-1SMM\s0:5\*(tx3, \s-1SMM\s0:14\*(tx3 +.X "block allocation" +\s-1SMM\s0:14\*(tx8,11 +.X "block allocation map" +\s-1SMM\s0:5\*(tx6 +.X "block and character device drivers" +\s-1SMM\s0:2\*(tx16 +.X "block, .)b End" +\s-1USD\s0:23\*(tx4 +.X "block, .(b m f Begin" +\s-1USD\s0:23\*(tx4 +.X "block buffered stream" +setbuf(3s) +.X "block, .(c Begin centered" +\s-1USD\s0:23\*(tx5 +.X "block chaining" +\s-1SMM\s0:14\*(tx11 +.X "block comments" +indent(1), pmerge(1), \s-1SMM\s0:12\*(tx2 +.X "block device drivers" +intro(4), \s-1PS2\s0:4\*(tx5, \s-1PS2\s0:5\*(tx6..7 +.X "block devices" +intro(2)\*(tx2, mount(2), swapon(2), rx(4), \s-1PS1\s0:6\*(tx39, \s-1PS2\s0:4\*(tx5..6,9, \s-1PS2\s0:5\*(tx1,4..6, \s-1SMM\s0:1\*(tx5 +.X "block files" +hk(4), hp(4)\*(tx3 +.X "block ifs" +\s-1PS1\s0:2\*(tx21 +.X "block in c" +\s-1PS1\s0:1\*(tx21 +.X "block I/O" +sync(2), tu(4), uu(4) +.X "block I/O system" +\s-1PS2\s0:4\*(tx4..6, \s-1PS2\s0:5\*(tx5 +.X "block layout policies" +\s-1SMM\s0:1\*(tx31 +.X "block levels" +\s-1SMM\s0:19\*(tx8 +.X "block map" +\s-1SMM\s0:5\*(tx4, \s-1SMM\s0:14\*(tx5,7 +.X "block numbers" +grep(1), \s-1PS2\s0:5\*(tx2,4..6, icheck(8), \s-1SMM\s0:5\*(tx7 +.X "block of text as a table entry" +\s-1USD\s0:28\*(tx6 +.X "block pointers" +\s-1SMM\s0:1\*(tx31, \s-1SMM\s0:14\*(tx11 +.X "block, Save a contiguous vertical" +\s-1USD\s0:24\*(tx14 +.X "block signal deliveries" +sigblock(2) +.X "block sizes" +cat(1), tar(1), ndbm(3), fs(5), newfs(8), \s-1SMM\s0:1\*(tx30..31, \s-1SMM\s0:5\*(tx3..4, \s-1SMM\s0:14\*(tx2..6,10 +.X "block special file" +find(1), mknod(2), mount(2) +.X "block structure" +\s-1SMM\s0:19\*(tx8 +.X "blocked signal, release" +sigpause(2) +.X "blocked signals" +execve(2), sigsetmask(2) +.X "blocked signals, mask of" +\s-1PS1\s0:6\*(tx14 +.X "blocking" +\s-1PS1\s0:6\*(tx19 +.X "blocks, allocating" +fs(5)\*(tx3, newfs(8), tunefs(8), \s-1SMM\s0:14\*(tx10 +.X "blocks, bad" +badsect(8) +.X "blocks, centered" +\s-1USD\s0:22\*(tx7 +.X "blocks, control" +\s-1SMM\s0:15\*(tx23 +.X "blocks, data" +fs(5), \s-1SMM\s0:5\*(tx3..4,7, \s-1SMM\s0:14\*(tx3..4,7..10 +.X "blocks, directory" +dir(5), icheck(8) +.X "blocks, directory data" +\s-1SMM\s0:5\*(tx7..8 +.X "blocks, disk" +\s-1PS2\s0:1\*(tx6, \s-1PS2\s0:4\*(tx7 +.X "blocks, duplicate" +icheck(8), \s-1SMM\s0:5\*(tx6..7,13 +.X "blocks, File system" +fs(5), \s-1SMM\s0:5\*(tx3..4, \s-1SMM\s0:14\*(tx4..6 +.X "blocks, free" +fs(5), fsck(8), icheck(8), \s-1SMM\s0:5\*(tx6,9, \s-1SMM\s0:14\*(tx3,6..9 +.X "blocks, indirect" +ls(1), \s-1SMM\s0:5\*(tx3 +.X "blocks of vertical space" +\s-1USD\s0:24\*(tx13 +.X "blocks, rotationally optimal" +\s-1SMM\s0:14\*(tx7 +.X "blocks, text" +\s-1USD\s0:28\*(tx4..6 +.X "blocks, used" +icheck(8) +.X "block\*(txtype special file" +ls(1) +.X "boggle \*(tx play the game of boggle" +boggle(6) +.X "bold face" +\s-1USD\s0:20\*(tx4, \s-1USD\s0:22\*(tx17 +.X "bold fonts" +\s-1USD\s0:22\*(tx16..17, \s-1USD\s0:23\*(tx1, \s-1USD\s0:24\*(tx9,32, \s-1USD\s0:25\*(tx4 +.X "bold italics" +\s-1USD\s0:22\*(tx17 +.X "bomb, slime" +hunt(6)\*(tx1 +.X "book, Article in" +\s-1USD\s0:31\*(tx6 +.X "Boolean combinations" +\s-1USD\s0:19\*(tx1,4 +.X "boolean options" +\s-1USD\s0:16\*(tx10 +.X "Booleans" +\s-1PS1\s0:4\*(tx23,43,45 +.X "boot files" +\s-1SMM\s0:1\*(tx14, \s-1SMM\s0:11\*(tx4..5,10 +.X "boot floppy" +\s-1SMM\s0:1\*(tx13..14 +.X "boot media, creating" +\s-1SMM\s0:1\*(tx24 +.X "boot program" +init(8), reboot(8), \s-1SMM\s0:1\*(tx45,63..64 +.X "boot time" +netstat(1), systat(1)\*(tx3, gethostid(2), autoconf(4), de(4), ec(4), en(4), ex(4), hy(4), il(4), imp(4), ix(4), qe(4), vp(4), fstab(5), hosts(5), ifconfig(8c), inetd(8), lpd(8), quotacheck(8), quotaon(8), routed(8c)\*(tx1, timed(8), \s-1SMM\s0:1\*(tx12,38,43, \s-1SMM\s0:2\*(tx3,8..10,16..17,22,26,30..31, \s-1SMM\s0:6\*(tx2, \s-1SMM\s0:11\*(tx3, \s-1SMM\s0:13\*(tx17,19,28,33, \s-1SMM\s0:15\*(tx9..10,14,24 +.X "bootable images" +\s-1SMM\s0:2\*(tx5 +.X "booting a new kernel" +\s-1SMM\s0:1\*(tx23 +.X "booting from tape" +\s-1SMM\s0:1\*(tx7 +.X "booting from the console" +\s-1SMM\s0:1\*(tx45 +.X "booting from the mini\*(txroot file system" +\s-1SMM\s0:1\*(tx11 +.X "Bootstrap" +\s-1SMM\s0:1\*(tx45 +.X "bootstrap a new file system" +mkproto(8) +.X "bootstrap details" +\s-1SMM\s0:1\*(tx52 +.X "bootstrap monitor" +\s-1SMM\s0:1\*(tx8..10,52,59 +.X "Bootstrap operations" +\s-1PS1\s0:6\*(tx23, \s-1SMM\s0:13\*(tx34 +.X "bootstrap procedures" +crash(8v)\*(tx1, \s-1SMM\s0:1\*(tx5,7,27 +.X "bootstrap program" +reboot(2), fs(5)\*(tx1, newfs(8), reboot(8)\*(tx2, \s-1SMM\s0:1\*(tx11..12,62, \s-1SMM\s0:13\*(tx34, \s-1SMM\s0:14\*(tx4 +.X "bootstrapping an 8650 or 8600" +\s-1SMM\s0:1\*(tx7 +.X "botch, longjmp" +setjmp(3), \s-1SMM\s0:12\*(tx15 +.X "bottom margin, FM" +\s-1USD\s0:20\*(tx5 +.X "bottom title" +ms(7)\*(tx1 +.X "bottom\*(txup parser" +\s-1SMM\s0:19\*(tx4,6 +.X "boundaries, message" +\s-1PS1\s0:7\*(tx8,14 +.X "boundaries, record" +\s-1PS1\s0:6\*(tx33, \s-1PS1\s0:8\*(tx3 +.X "boundaries, word" +\s-1PS1\s0:2\*(tx12, \s-1PS1\s0:9\*(tx6, \s-1SMM\s0:19\*(tx18 +.X "boundary, Section" +\s-1USD\s0:15\*(tx10,24,26..28 +.X "boundary, sentence" +\s-1USD\s0:15\*(tx10, \s-1USD\s0:32\*(tx10 +.X "bounds, array" +f77(1)\*(tx2 +.X "Bourne Shell" +jove(1)\*(tx1, sh(1)\*(tx1, tset(1)\*(tx2, \s-1USD\s0:8\*(tx36, \s-1USD\s0:15\*(tx2 +.X "Bourne shell formal grammar" +\s-1USD\s0:3\*(tx22 +.X "Bourne shell meta\*(txcharacters and reserved words" +\s-1USD\s0:3\*(tx24 +.X "Bourne shell script" +false(1), true(1), \s-1SMM\s0:12\*(tx8 +.X "box" +plot(3f) +.X "box \*(tx enclose the table in a box" +\s-1USD\s0:28\*(tx2 +.X "box, .bx set in a" +\s-1USD\s0:23\*(tx6 +.X "box, words in a" +ms(7)\*(tx1, \s-1USD\s0:20\*(tx5, \s-1USD\s0:22\*(tx17 +.X "boxes, large" +\s-1USD\s0:24\*(tx22 +.X "box(win, vert, hor)" +\s-1PS1\s0:18\*(tx8 +.X "braces" +\s-1USD\s0:26\*(tx3 +.X "braces { ... } in argument expansion" +\s-1USD\s0:4\*(tx32 +.X "brackets" +\s-1USD\s0:13\*(tx6, \s-1USD\s0:24\*(tx21 +.X "brackets, big" +\s-1USD\s0:27\*(tx6 +.X "brackets, square" +\s-1USD\s0:6\*(tx9, \s-1USD\s0:18\*(tx3, \s-1PS1\s0:1\*(tx7, \s-1PS2\s0:6\*(tx3, \s-1PS2\s0:9\*(tx10, \s-1SMM\s0:19\*(tx3 +.X "branch, conditional" +\s-1USD\s0:3\*(tx11, \s-1SMM\s0:19\*(tx10 +.X "branch, Creating a" +\s-1PS1\s0:14\*(tx10 +.X "branch instructions" +\s-1PS1\s0:5\*(tx12,14 +.X "branch number" +\s-1PS1\s0:13\*(tx5,14 +.X "branch statements" +\s-1PS2\s0:6\*(tx7,19, \s-1PS2\s0:10\*(tx28 +.X "branch to label" +\s-1USD\s0:18\*(tx10 +.X "BREAK" +telnet(1c)\*(tx2, tip(1c)\*(tx1, \s-1USD\s0:4\*(tx35, \s-1USD\s0:22\*(tx2, end(3), gettytab(5)\*(tx2, L.sys(5), \s-1SMM\s0:9\*(tx16 +.X "break \*(tx Bourne shell command" +sh(1)\*(tx1 +.X "break, cause a" +\s-1USD\s0:24\*(tx12, \s-1USD\s0:25\*(tx9 +.X "break character" +stty(1)\*(tx2 +.X "break condition" +tty(4)\*(tx4,7 +.X "break function" +\s-1USD\s0:24\*(tx3,11 +.X "break key" +cons(4), getty(8) +.X "break loop" +\s-1PS2\s0:9\*(tx46,81,116,139 +.X "break shell command" +csh(1)\*(tx10 +.X "break statement" +\s-1USD\s0:6\*(tx13, \s-1PS1\s0:1\*(tx22, \s-1PS1\s0:9\*(tx3, \s-1PS2\s0:6\*(tx20 +.X "breakpoint" +dbx(1)\*(tx2, ptrace(2), \s-1PS1\s0:10, \s-1PS1\s0:10\*(tx5,27, \s-1PS1\s0:11\*(tx3 +.X "breakpoint, delete a" +\s-1PS1\s0:10\*(tx6,27 +.X "breakpoint, set" +adb(1)\*(tx5 +.X "breaksw shell command" +csh(1)\*(tx10, \s-1USD\s0:4\*(tx35 +.X "bringing text into the buffer" +\s-1USD\s0:14\*(tx13 +.X "brk, sbrk \*(tx change data segment size" +brk(2), end(3) +.X "broadcast" +getsockopt(2), \s-1PS1\s0:8\*(tx22,32..34, \s-1SMM\s0:12\*(tx15 +.X "broadcast addresses" +idp(4p), inet(4f), intro(4n)\*(tx3, udp(4p), vv(4), ifconfig(8c), routed(8c)\*(tx1, \s-1SMM\s0:1\*(tx39..41, \s-1SMM\s0:13\*(tx4,21..23,27, \s-1SMM\s0:15\*(tx11..12 +.X "broadcast capabilities" +\s-1SMM\s0:8\*(tx2 +.X "broadcast message" +wall(1), \s-1PS1\s0:8\*(tx32..34, \s-1PS2\s0:10\*(tx70, rwhod(8c) +.X "broadcast packet" +idp(4p), udp(4p), vv(4), routed(8c)\*(tx1, XNSrouted(8c), \s-1SMM\s0:15\*(tx11..12,18,25 +.X "broadcasting signals" +kill(2) +.X "browsing through old news" +\s-1USD\s0:9\*(tx5 +.X "BSD kernel facilities, summary of 4.3" +\s-1PS1\s0:6\*(tx41 +.X "bss segment" +ld(1), size(1), a.out(5)\*(tx1, \s-1PS1\s0:5\*(tx2,4..6,10..11 +.X "bss symbol" +\s-1PS1\s0:5\*(tx6 +.X "buddy system" +\s-1USD\s0:5\*(tx4 +.X "buffer" +\s-1USD\s0:14\*(tx3 +.X "buffer allocation" +\s-1SMM\s0:13\*(tx13, \s-1SMM\s0:15\*(tx8 +.X "buffer, Bringing text into the" +\s-1USD\s0:14\*(tx13 +.X "buffer cache" +tunefs(8), \s-1SMM\s0:1\*(tx5, \s-1SMM\s0:2\*(tx31, \s-1SMM\s0:13\*(tx12 +.X "buffer, creating and selecting" +\s-1USD\s0:17\*(tx16 +.X "buffer, current location in the" +\s-1USD\s0:14\*(tx10 +.X "buffer, data" +\s-1SMM\s0:13\*(tx14, \s-1SMM\s0:15\*(tx8 +.X "buffer, editing" +\s-1USD\s0:14\*(tx21, \s-1USD\s0:16\*(tx9,12 +.X "buffer, editor" +\s-1USD\s0:15\*(tx10, \s-1USD\s0:16\*(tx4,6,9 +.X "buffer, Filtering portions of the" +\s-1USD\s0:15\*(tx15 +.X "buffer, Finding things in the" +\s-1USD\s0:14\*(tx9 +.X "buffer, Flush output" +\s-1USD\s0:24\*(tx26 +.X "buffer header" +\s-1PS2\s0:5, \s-1SMM\s0:2\*(tx31 +.X "buffer, input" +getsockopt(2), \s-1PS1\s0:8\*(tx24, \s-1PS2\s0:9\*(tx72,87, \s-1SMM\s0:13\*(tx30 +.X "buffer, I/O" +abort(3), \s-1SMM\s0:1\*(tx5 +.X "buffer, i\*(txprocess" +\s-1USD\s0:17\*(tx20..21 +.X "buffer, JOVE" +jove(1)\*(tx1, \s-1USD\s0:17\*(tx2,20,22,37 +.X "buffer, last line in" +\s-1USD\s0:12\*(tx4 +.X "buffer line" +\s-1USD\s0:14\*(tx17 +.X "buffer, Listing what's in the" +\s-1USD\s0:14\*(tx9 +.X "buffer, message" +intro(2)\*(tx3, \s-1SMM\s0:13\*(tx8 +.X "buffer modifying command" +ed(1)\*(tx5 +.X "buffer, Moving around in the" +\s-1USD\s0:14\*(tx16 +.X "buffer name" +\s-1USD\s0:15\*(tx10,14,26, \s-1USD\s0:16\*(tx12, \s-1USD\s0:17\*(tx16,19,35,38,44 +.X "buffer, named" +\s-1USD\s0:15\*(tx10, \s-1USD\s0:16\*(tx2 +.X "buffer, network" +crash(8v)\*(tx2, \s-1SMM\s0:12\*(tx21, \s-1SMM\s0:13\*(tx19 +.X "buffer number" +\s-1USD\s0:17\*(tx16,35,38 +.X "buffer, output" +getsockopt(2), \s-1SMM\s0:15\*(tx14 +.X "buffer overflow" +\s-1PS2\s0:10\*(tx79,82 +.X "buffer pages" +\s-1SMM\s0:2\*(tx31, \s-1SMM\s0:13\*(tx19, \s-1SMM\s0:15\*(tx14 +.X "buffer, Printing the contents of the" +\s-1USD\s0:12\*(tx3 +.X "buffer, query" +\s-1PS2\s0:10\*(tx19,26..29,82 +.X "buffer size" +getsockopt(2), mtio(4), \s-1SMM\s0:13\*(tx14,25, \s-1SMM\s0:15\*(tx16 +.X "buffer space" +intro(2)\*(tx4, \s-1PS2\s0:10\*(tx76,83, \s-1SMM\s0:13\*(tx4,13, \s-1SMM\s0:15\*(tx18 +.X "buffer, status" +\s-1SMM\s0:15\*(tx17 +.X "buffer, Writing parts of the" +\s-1USD\s0:14\*(tx21 +.X "buffered data path" +\s-1SMM\s0:2\*(tx16 +.X "buffering mechanism" +hk(4), hp(4)\*(tx1, uda(4)\*(tx1, up(4)\*(tx1 +.X "buffering, Output" +\s-1PS1\s0:4\*(tx30 +.X "buffering policy" +\s-1SMM\s0:15\*(tx24 +.X "buffering, types of" +setbuf(3s) +.X "buffer\*(txposition" +\s-1USD\s0:17\*(tx27 +.X "buffers, profile" +kgmon(8) +.X "BUFSIZ" +setbuf(3s) +.X "bug, compiler" +\s-1SMM\s0:19\*(tx25 +.X "bug fixes" +\s-1SMM\s0:12\*(tx2..6,12, \s-1SMM\s0:13\*(tx2,20,27,29,31, \s-1SMM\s0:21\*(tx5 +.X "Bug Fixes and Changes in 4.3BSD" +\s-1SMM\s0:12 +.X "bug report" +sendbug(1), \s-1USD\s0:8\*(tx112, \s-1USD\s0:9\*(tx1,10, bugfiler(8) +.X "bug reports and fixes" +\s-1USD\s0:9\*(tx8 +.X "bugfiler \*(tx file bug reports in folders automatically" +bugfiler(8) +.X "bugs in mh, reporting" +\s-1USD\s0:8\*(tx97 +.X "bugs, kernel" +crash(8v)\*(tx2 +.X "build a bootable system" +\s-1SMM\s0:2\*(tx4 +.X "building 4.3BSD UNIX systems" +config(8) +.X "building a compiler" +\s-1USD\s0:1\*(tx13 +.X "Building Berkeley UNIX kernels with config" +\s-1SMM\s0:2 +.X "building file systems" +format(8v)\*(tx2, newfs(8) +.X "building profiled systems" +\s-1SMM\s0:2\*(tx6 +.X "building the system" +config(8), \s-1SMM\s0:1\*(tx27, \s-1SMM\s0:2\*(tx5 +.X "buildmini shell script" +\s-1SMM\s0:1\*(tx52 +.X "built\*(txin commands" +cd(1), csh(1)\*(tx7,9..11,17..18, time(1), \s-1USD\s0:3\*(tx18, \s-1USD\s0:4\*(tx22,35, getrlimit(2) +.X "built\*(txin functions" +window(1)\*(tx5, \s-1USD\s0:4\*(tx3, \s-1USD\s0:19\*(tx4, \s-1PS1\s0:4\*(tx47, \s-1PS1\s0:17\*(tx4, \s-1PS2\s0:9\*(tx95 +.X "built\*(txin macros" +m4(1), \s-1PS1\s0:17\*(tx2 +.X "built\*(txin procedure" +\s-1PS1\s0:4\*(tx11,22,45,48 +.X "built\*(txin rule" +\s-1PS1\s0:12\*(tx2..5 +.X "bulk\*(txdata transfer" +\s-1SMM\s0:13\*(tx25 +.X "bulletin board system" +\s-1USD\s0:10\*(tx1 +.X "bullets, .bu paragraphs with" +\s-1USD\s0:22\*(tx12, \s-1USD\s0:23\*(tx2 +.X "burst \*(tx explode digests into messages" +\s-1USD\s0:8\*(tx14 +.X "burst page" +lpr(1), lpd(8) +.X "bus error" +\s-1USD\s0:3\*(tx18, signal(3c)\*(tx1, core(5), \s-1PS1\s0:11\*(tx3..4, \s-1PS2\s0:9\*(tx81 +.X "byte offset" +\s-1PS2\s0:3\*(tx15, \s-1PS2\s0:4\*(tx8 +.X "byte order" +\s-1PS1\s0:7\*(tx14, \s-1PS1\s0:8\*(tx15 +.X "byte streams" +socket(2) +.X "byte string operations" +bstring(3) +.X "bytes, swap every pair of" +dd(1) +.L C +.X "C, ANSI" +\s-1SMM\s0:12\*(tx2, \s-1SMM\s0:19\*(tx26..27 +.X "C backtrace" +\s-1PS1\s0:10\*(tx3..5 +.X "C code" +\s-1USD\s0:17\*(tx26,33, \s-1PS1\s0:9\*(tx1, \s-1PS1\s0:15\*(tx33, \s-1PS2\s0:10\*(tx50, \s-1SMM\s0:12\*(tx7 +.X "C comments" +\s-1USD\s0:17\*(tx33 +.X "C compilation errors" +\s-1USD\s0:17\*(tx40 +.X "C compiler" +cc(1)\*(tx1, jove(1)\*(tx1, yacc(1), \s-1USD\s0:3\*(tx2, \s-1USD\s0:17\*(tx20,28, intro(3)\*(tx1, \s-1PS1\s0:1\*(tx26, \s-1PS1\s0:2, \s-1PS1\s0:9\*(tx1,6,9, \s-1PS1\s0:10\*(tx5, \s-1PS1\s0:12\*(tx6, \s-1PS2\s0:3\*(tx2, \s-1PS2\s0:8\*(tx11, \s-1PS2\s0:9\*(tx65, \s-1PS2\s0:10\*(tx50, \s-1SMM\s0:12\*(tx2,4,6, \s-1SMM\s0:19\*(tx2..4 +.X "C Compiler, Tour Through the Portable" +\s-1SMM\s0:19 +.X "C, equel \*(tx Embedded QUEL interface to" +\s-1PS2\s0:10\*(tx50 +.X "C escapes" +od(1) +.X "C function" +\s-1PS2\s0:9\*(tx75,97,104 +.X "C language" +csh(1)\*(tx1, \s-1USD\s0:6\*(tx1, \s-1PS1\s0:2\*(tx4, \s-1PS1\s0:6\*(tx5, \s-1PS1\s0:9\*(tx8, \s-1PS2\s0:10\*(tx52, \s-1SMM\s0:19\*(tx2,12 +.X "C language standard" +\s-1USD\s0:9\*(tx11 +.X "C library" +cc(1)\*(tx1, intro(3)\*(tx1, \s-1PS1\s0:10\*(tx5, \s-1PS2\s0:3\*(tx13, \s-1PS2\s0:9\*(tx63, \s-1SMM\s0:1\*(tx22,48..49, \s-1SMM\s0:11\*(tx2, \s-1SMM\s0:12\*(tx2,15 +.X "C library functions" +intro(3)\*(tx1, \s-1SMM\s0:12\*(tx21 +.X "C mode" +\s-1USD\s0:17\*(tx12,22,34,47 +.X "C, operator precedence in" +\s-1PS1\s0:1\*(tx32 +.X "C operators" +awk(1), dbx(1)\*(tx3, \s-1SMM\s0:19\*(tx14 +.X "C portability issues" +\s-1PS1\s0:9\*(tx7 +.X "C preprocessor" +cc(1)\*(tx2, diff(1), f77(1), unifdef(1), xstr(1), \s-1PS1\s0:2\*(tx5, \s-1SMM\s0:12\*(tx2..3, \s-1SMM\s0:19\*(tx27 +.X "C procedures" +\s-1PS1\s0:2\*(tx6,13 +.X "C program verifier, lint \*(tx a" +lint(1), \s-1PS1\s0:9 +.X "C, Programming in" +\s-1USD\s0:1\*(tx1,13 +.X "C programming language" +\s-1USD\s0:2 +.X "C programs" +ctags(1), file(1), indent(1), xstr(1), yacc(1), \s-1USD\s0:4\*(tx6, \s-1USD\s0:15\*(tx15,26, \s-1USD\s0:17\*(tx12,21..22,28, execl(3), perror(3), \s-1PS1\s0:11\*(tx1, \s-1SMM\s0:19\*(tx26 +.X "C programs, editing" +\s-1USD\s0:15\*(tx15, \s-1USD\s0:17\*(tx21 +.X "C routines" +\s-1PS1\s0:2\*(tx8,13, \s-1PS2\s0:9\*(tx104, \s-1SMM\s0:12\*(tx16 +.X "C runtime library" +hier(7)\*(tx6 +.X "C save routine" +\s-1PS1\s0:10\*(tx5,13 +.X "C shell" +csh(1)\*(tx20, tset(1)\*(tx2, \s-1USD\s0:4 +.X "C shell, Introduction to the" +\s-1USD\s0:4\*(tx1 +.X "C stack" +setjmp(3) +.X "cabs \*(tx complex absolute value" +hypot(3m) +.X "cache, buffer" +tunefs(8), \s-1SMM\s0:1\*(tx5, \s-1SMM\s0:2\*(tx31, \s-1SMM\s0:13\*(tx12 +.X "cache, name" +\s-1SMM\s0:12\*(tx12, \s-1SMM\s0:13\*(tx11..12 +.X "cache, name translation" +systat(1)\*(tx2, \s-1SMM\s0:13\*(tx6,10..11 +.X "cache, text" +\s-1SMM\s0:12\*(tx12, \s-1SMM\s0:13\*(tx20 +.X "caches, clean all system buffer" +\s-1PS1\s0:6\*(tx23 +.X "caching only server" +\s-1SMM\s0:11\*(tx3..5,10 +.X "caddr_t" +\s-1PS1\s0:6\*(tx5 +.X "CAI scripts" +\s-1USD\s0:2\*(tx1..2 +.X "cal \*(tx print calendar" +cal(1) +.X "Calculator, DC \*(tx An Interactive Desk" +\s-1USD\s0:5\*(tx1 +.X "calculator, desk" +bc(1), dc(1), \s-1USD\s0:5, \s-1PS1\s0:15\*(tx24,28 +.X "calendar \*(tx reminder service" +cal(1), calendar(1), leave(1), \s-1SMM\s0:12\*(tx2 +.X "calendars, shared" +calendar(1) +.X "call counts" +gprof(1), prof(1), monitor(3) +.X "call, function" +\s-1PS1\s0:1\*(tx6..7,21,31, \s-1PS1\s0:4\*(tx38, \s-1PS1\s0:9\*(tx6, \s-1PS1\s0:10\*(tx13, \s-1PS1\s0:11\*(tx3, \s-1PS2\s0:9\*(tx51,55,67,119,128,133,136 +.X "call graph" +gprof(1), \s-1SMM\s0:2\*(tx6 +.X "call, inline expansion of" +\s-1SMM\s0:13\*(tx2 +.X "call, procedure" +\s-1PS1\s0:4\*(tx18, \s-1PS1\s0:8\*(tx40, \s-1PS2\s0:6\*(tx11 +.X "call, subroutine" +\s-1PS1\s0:2\*(tx21, \s-1PS2\s0:1\*(tx8, \s-1PS2\s0:6\*(tx16,25, \s-1PS2\s0:9\*(tx152 +.X "call unit (see also automatic call unit)" +remote(5) +.X "call UNIX \*(tx log in to a remote system" +tip(1c)\*(tx1 +.X "callback" +USERFILE(5) +.X "called at every page to print the header, .$h" +\s-1USD\s0:23\*(tx4 +.X "calling conventions" +pc(1), \s-1SMM\s0:13\*(tx11, \s-1SMM\s0:15\*(tx17..18 +.X "calling program" +\s-1SMM\s0:21\*(tx4 +.X "calling routine" +varargs(3) +.X "calling sequence" +random(3), \s-1PS1\s0:2, \s-1PS1\s0:2\*(tx4, \s-1PS2\s0:1\*(tx5, \s-1SMM\s0:19\*(tx2,12 +.X "calloc" +fopen(3s), malloc(3) +.X "callout" +\s-1SMM\s0:2\*(tx30 +.X "Canada" +\s-1SMM\s0:10\*(tx13, \s-1SMM\s0:12\*(tx14 +.X "candidature rejection message" +\s-1SMM\s0:22\*(tx6 +.X "canfield, cfscores \*(tx the solitaire card game canfield" +canfield(6) +.X "Capricorn, AMPEX" +hp(4)\*(tx1, up(4)\*(tx1, \s-1SMM\s0:14\*(tx9 +.X "carbon copy" +mail(1)\*(tx4, \s-1USD\s0:7\*(tx3,9, \s-1USD\s0:9\*(tx3 +.X "carbon copy recipients" +mail(1)\*(tx4..5, \s-1USD\s0:7\*(tx18 +.X "cards, punch" +bcd(6) +.X "caret (see also circumflex)" +\s-1USD\s0:23\*(tx9 +.X "carriage control" +fpr(1), ioinit(3f), \s-1PS1\s0:2\*(tx12, \s-1PS1\s0:3\*(tx7..8,11, \s-1PS1\s0:4\*(tx47 +.X "carriage return" +\s-1SMM\s0:12\*(tx12,20 +.X "carriage return stripping" +ftp(1c)\*(tx2 +.X "carrier drops" +stty(1)\*(tx3, \s-1SMM\s0:13\*(tx10 +.X "carrier transitions" +stty(1)\*(tx3, \s-1SMM\s0:13\*(tx32 +.X "carriers, X.25" +L.sys(5)\*(tx1 +.X "case \*(tx Bourne shell command" +sh(1)\*(tx1, \s-1USD\s0:3\*(tx6..7 +.X "case command" +\s-1USD\s0:4\*(tx35 +.X "case constants" +\s-1PS1\s0:1\*(tx22, \s-1PS2\s0:6\*(tx18 +.X "case conversion commands" +\s-1USD\s0:17\*(tx12..13 +.X "case labels" +csh(1)\*(tx10,15 +.X "case\*(txcharacter\*(txcapitalize" +\s-1USD\s0:17\*(tx27 +.X "case\*(txignore\*(txsearch (variable)" +\s-1USD\s0:17\*(tx27 +.X "case\*(txregion\*(txlower" +\s-1USD\s0:17\*(tx27 +.X "case\*(txregion\*(txupper" +\s-1USD\s0:17\*(tx27 +.X "case\*(txword\*(txcapitalize (ESC C)" +\s-1USD\s0:17\*(tx27 +.X "case\*(txword\*(txlower (ESC L)" +\s-1USD\s0:17\*(tx28 +.X "case\*(txword\*(txupper (ESC U)" +\s-1USD\s0:17\*(tx28 +.X "cassette, console" +\s-1SMM\s0:1\*(tx25 +.X "cassette, creating a boot floppy or" +\s-1SMM\s0:1\*(tx14 +.X "cassette, TU58" +tu(4), uu(4), \s-1SMM\s0:1\*(tx9 +.X "casts" +lint(1) +.X "casts, type" +\s-1SMM\s0:19\*(tx9 +.X "cat \*(tx catenate and print" +cat(1), \s-1USD\s0:2\*(tx3,7, \s-1USD\s0:3\*(tx6, \s-1USD\s0:4\*(tx8..9, \s-1USD\s0:13\*(tx12, catman(8), \s-1SMM\s0:12\*(tx2 +.X "cat command, example" +\s-1USD\s0:1\*(tx5 +.X "catching interrupts" +\s-1USD\s0:4\*(tx31 +.X "catman \*(tx create the cat files for the manual" +catman(8), \s-1SMM\s0:12\*(tx19 +.X "caught signals" +execve(2) +.X "cb \*(tx C program beautifier" +cb(1), \s-1USD\s0:17\*(tx33, \s-1SMM\s0:12\*(tx2 +.X "cbreak()" +\s-1PS1\s0:18\*(tx12 +.X "cbreak mode" +stty(1)\*(tx1, tset(1)\*(tx3, lib2648(3x)\*(tx4, tty(4)\*(tx2..7, \s-1PS1\s0:6\*(tx38, \s-1PS1\s0:18\*(tx6 +.X "cbrt \*(tx cube root" +sqrt(3m) +.X "cc \*(tx C compiler" +cc(1)\*(tx1 +.X "CC environment variable" +termcap(5)\*(tx12 +.X "cc (see also c compiler)" +error(1)\*(tx1, \s-1PS1\s0:12\*(tx6,9, \s-1SMM\s0:12\*(tx2 +.X "cc: (see also carbon copies)" +mail(1)\*(tx4, \s-1USD\s0:7\*(tx3,9..11, \s-1USD\s0:8\*(tx83, \s-1USD\s0:9\*(tx3, sendmail(8)\*(tx2, \s-1SMM\s0:7\*(tx12,28 +.X "CCITT modems" +L\*(txdevices(5), L.sys(5)\*(tx2, \s-1SMM\s0:9\*(tx15 +.X "ccom" +error(1)\*(tx1 +.X "cd \*(tx change working directory" +cd(1), csh(1)\*(tx10, sh(1)\*(tx1..2, \s-1USD\s0:3\*(tx9, \s-1USD\s0:4\*(tx21..22,35 +.X "CDC 9730 partitions" +hp(4)\*(tx2 +.X "CDC 9775 partitions" +hp(4)\*(tx2 +.X "cdpath shell variable" +cd(1), csh(1)\*(tx10,17 +.X "cedilla" +ms(7)\*(tx3, \s-1USD\s0:21\*(tx3, \s-1USD\s0:23\*(tx9 +.X "ceil \*(tx ceiling function" +floor(3m) +.X "cell, cons" +\s-1PS2\s0:9\*(tx10,14,88 +.X "cell, function" +\s-1PS2\s0:9\*(tx108,111 +.X "cell, list" +\s-1PS2\s0:9\*(tx7..10,13..19,32,35..37,57,93 +.X "cell, value" +\s-1PS2\s0:9\*(tx9,19,30,38,106,108,111 +.X "center \*(tx center the table" +\s-1USD\s0:28\*(tx2 +.X "center input line" +\s-1USD\s0:24\*(tx13 +.X "centered block" +\s-1USD\s0:22\*(tx7 +.X "centered block, .(c Begin" +\s-1USD\s0:23\*(tx5 +.X "centered column entry" +\s-1USD\s0:28\*(tx3 +.X "centered, list" +\s-1USD\s0:22\*(tx6 +.X "centered text" +\s-1USD\s0:22\*(tx4 +.X "centering" +\s-1USD\s0:24\*(tx3,12, \s-1USD\s0:26\*(tx4 +.X "cf file" +lpd(8), \s-1SMM\s0:7\*(tx32 +.X "CFLAGS" +make(1)\*(tx2, \s-1PS1\s0:12\*(tx3,6,9 +.X "cgram.y" +\s-1SMM\s0:19\*(tx6 +.X "CH center heading" +\s-1USD\s0:20\*(tx5 +.X "chaining, block" +\s-1SMM\s0:14\*(tx11 +.X "change command" +ed(1)\*(tx3, \s-1USD\s0:12\*(tx7, \s-1USD\s0:14\*(tx17, \s-1USD\s0:16\*(tx7 +.X "change directory" +\s-1USD\s0:4\*(tx20 +.X "change mode" +chmod(1), chmod(2), chmod(3f) +.X "change size" +\s-1USD\s0:27\*(tx5 +.X "change the size of a file system" +restore(8)\*(tx1 +.X "change the trap position" +\s-1USD\s0:24\*(tx17 +.X "changequote" +\s-1PS1\s0:17\*(tx3 +.X "changes, discarding" +\s-1USD\s0:15\*(tx18, \s-1USD\s0:16\*(tx9 +.X "changes, Font" +\s-1USD\s0:24\*(tx10 +.X "changes, history of" +\s-1PS1\s0:13\*(tx1..2 +.X "Changes in 4.3BSD, Bug Fixes and" +\s-1SMM\s0:12 +.X "Changes in Interprocess Communication" +\s-1SMM\s0:13\*(tx12 +.X "Changes in terminal multiplexor handling" +\s-1SMM\s0:13\*(tx32 +.X "Changes in the filesystem" +\s-1SMM\s0:13\*(tx10 +.X "changes in the kernel network support" +\s-1SMM\s0:13\*(tx20 +.X "Changes in the terminal line discipline" +\s-1SMM\s0:13\*(tx9 +.X "changes, line speed" +tip(1c)\*(tx1 +.X "changes, Size" +\s-1USD\s0:20\*(tx4 +.X "Changes to the Kernel in 4.3BSD" +\s-1SMM\s0:13 +.X "Changes to uucico" +\s-1SMM\s0:9\*(tx10 +.X "changes, uucp implementation" +\s-1SMM\s0:9\*(tx8 +.X "changing lines" +\s-1USD\s0:14\*(tx17, \s-1USD\s0:18\*(tx5 +.X "changing the name of a file" +\s-1USD\s0:13\*(tx12 +.X "channels, wait" +\s-1SMM\s0:12\*(tx10, \s-1SMM\s0:15\*(tx7 +.X "chapter name" +\s-1USD\s0:22\*(tx13 +.X "chapter numbers" +\s-1USD\s0:22\*(tx13, \s-1USD\s0:23\*(tx3,8 +.X "chapter, references at the end of a" +\s-1USD\s0:29\*(tx5 +.X "chapter titles" +me(7)\*(tx2, ms(7)\*(tx1, \s-1USD\s0:21\*(tx2, \s-1USD\s0:23\*(tx8 +.X "character arrays" +scanf(3s), \s-1PS1\s0:1\*(tx19, \s-1PS1\s0:2\*(tx18,22, \s-1PS2\s0:3\*(tx14..15, \s-1SMM\s0:19\*(tx10 +.X "character assignment" +\s-1PS1\s0:2\*(tx20 +.X "character attributes" +\s-1PS2\s0:10\*(tx7,35,76 +.X "character, backspace" +expand(1), tset(1)\*(tx2, \s-1SMM\s0:20\*(tx2 +.X "character, break" +stty(1)\*(tx2 +.X "character class" +\s-1PS1\s0:16\*(tx2,4,12, \s-1PS2\s0:9\*(tx85..87,90,95 +.X "character, comment" +\s-1PS2\s0:7\*(tx14, \s-1PS2\s0:9\*(tx50,73,93, \s-1SMM\s0:12\*(tx11 +.X "character constants" +\s-1PS1\s0:1\*(tx2..3,7,26,31, \s-1PS1\s0:2\*(tx7,19,22, \s-1PS1\s0:4\*(tx18, \s-1PS1\s0:9\*(tx8, \s-1PS2\s0:10\*(tx37, \s-1SMM\s0:19\*(tx26 +.X "character counts" +mail(1)\*(tx4, \s-1USD\s0:12\*(tx2 +.X "character, default erase" +tset(1)\*(tx2 +.X "character, delayed suspend process" +stty(1)\*(tx3 +.X "character, delimiting" +\s-1USD\s0:18\*(tx6 +.X "character devices" +intro(4), pty(4), \s-1PS1\s0:6\*(tx28, \s-1PS2\s0:4\*(tx5..6, \s-1PS2\s0:5\*(tx1..2,6, \s-1SMM\s0:1\*(tx6 +.X "character domains" +\s-1PS2\s0:10\*(tx8..9,76 +.X "character, end of file" +stty(1)\*(tx2, telnet(1c) +.X "character, erase" +stty(1)\*(tx1, telnet(1c)\*(tx2, tset(1), \s-1USD\s0:1\*(tx3, tty(4)\*(tx3, gettytab(5)\*(tx3 +.X "character expressions" +\s-1PS1\s0:2\*(tx20,22, \s-1PS2\s0:6\*(tx11 +.X "character, field" +\s-1USD\s0:31\*(tx12 +.X "character fields" +\s-1PS2\s0:10\*(tx23,82 +.X "character, flush" +telnet(1c)\*(tx3 +.X "character, flush output" +stty(1)\*(tx3 +.X "character generator service" +inetd(8) +.X "character, interrupt" +stty(1)\*(tx1, tset(1)\*(tx2, tty(4)\*(tx5 +.X "character I/O system" +\s-1PS2\s0:4\*(tx4..5 +.X "character, kill" +mail(1)\*(tx5, more(1)\*(tx2, stty(1)\*(tx1, telnet(1c)\*(tx3, tset(1), \s-1USD\s0:4\*(tx3,44, \s-1USD\s0:15\*(tx2,20,25, tty(4)\*(tx3, gettytab(5)\*(tx3 +.X "character, leader repetition" +\s-1USD\s0:24\*(tx18 +.X "character, line kill" +more(1)\*(tx3, tset(1), \s-1USD\s0:4\*(tx11, \s-1USD\s0:13\*(tx4 +.X "character, literal next" +stty(1)\*(tx3 +.X "character, macro" +\s-1PS2\s0:9\*(tx94..95 +.X "character macros" +\s-1PS2\s0:9\*(tx3,87,92,95,99 +.X "character motions" +\s-1USD\s0:15\*(tx8 +.X "character, new\*(txline" +\s-1PS1\s0:1\*(tx2, \s-1PS1\s0:4\*(tx30 +.X "character, nobreak control" +\s-1USD\s0:24\*(tx20 +.X "character, null" +\s-1PS1\s0:2\*(tx8, \s-1PS2\s0:3\*(tx14 +.X "character pointer" +dbx(1)\*(tx5, printf(3s), \s-1PS1\s0:6\*(tx5, \s-1PS1\s0:9\*(tx4, \s-1PS2\s0:3\*(tx6,14, \s-1SMM\s0:19\*(tx10 +.X "character, prompt" +\s-1USD\s0:1\*(tx2 +.X "character, punctuation" +ed(1)\*(tx4, \s-1USD\s0:17\*(tx47, ctype(3) +.X "character queues" +\s-1PS2\s0:4\*(tx6, \s-1PS2\s0:5\*(tx3 +.X "character, Quit" +stty(1)\*(tx1 +.X "character, quote" +\s-1PS1\s0:1\*(tx3, \s-1PS1\s0:17\*(tx3 +.X "character representations" +\s-1SMM\s0:20\*(tx4 +.X "character, reprint line" +stty(1)\*(tx3 +.X "character set" +\s-1USD\s0:24\*(tx9, \s-1USD\s0:26\*(tx2, \s-1PS1\s0:1\*(tx2,4..5, \s-1PS1\s0:4\*(tx45, \s-1PS1\s0:15\*(tx7, \s-1PS1\s0:16\*(tx6,12, \s-1PS2\s0:4\*(tx9, \s-1PS2\s0:6\*(tx12, \s-1PS2\s0:8\*(tx9 +.X "character size" +\s-1USD\s0:24\*(tx9..10,13, \s-1USD\s0:25\*(tx3, \s-1USD\s0:26\*(tx4 +.X "character special file" +find(1), ioctl(2), mknod(2) +.X "character string" +scanf(3s) +.X "character, suspend process" +stty(1)\*(tx3 +.X "character, tab" +\s-1PS1\s0:2\*(tx7, \s-1PS1\s0:3\*(tx7, \s-1PS1\s0:16\*(tx3, \s-1PS2\s0:10\*(tx65,75 +.X "character, tab repetition" +\s-1USD\s0:24\*(tx18 +.X "character translation" +tr(1), \s-1USD\s0:24\*(tx4,19 +.X "character, type" +\s-1PS1\s0:2\*(tx12,14,20,25 +.X "character, underscore" +csh(1)\*(tx6, \s-1USD\s0:17\*(tx47 +.X "character values" +\s-1PS2\s0:10\*(tx7,34,38,50,77,82 +.X "character variables" +\s-1PS1\s0:1\*(tx4, \s-1PS1\s0:2\*(tx18,24, \s-1PS2\s0:6\*(tx28 +.X "character width" +\s-1SMM\s0:20\*(tx5 +.X "character, word erase" +stty(1)\*(tx3 +.X "character, write a" +putc(3f) +.X "characters, alphabetic" +\s-1USD\s0:8\*(tx28 +.X "characters, alphanumeric" +ctype(3) +.X "characters, ASCII (see also names of characters)" +od(1), \s-1USD\s0:17\*(tx2, \s-1USD\s0:24\*(tx9, ctype(3), tty(4)\*(tx4, \s-1PS2\s0:3\*(tx16, \s-1PS2\s0:4\*(tx6, \s-1PS2\s0:9\*(tx85, \s-1PS2\s0:10\*(tx32 +.X "characters, control" +\s-1PS1\s0:3\*(tx4, \s-1PS1\s0:6\*(tx38, \s-1PS1\s0:16\*(tx4, \s-1PS2\s0:3\*(tx16, \s-1PS2\s0:4\*(tx6, \s-1PS2\s0:10\*(tx32,79, \s-1SMM\s0:12\*(tx7 +.X "characters, conversion" +printf(3s), scanf(3s) +.X "characters, escape" +csh(1)\*(tx2, mail(1)\*(tx4..5, rlogin(1c), tip(1c)\*(tx3, tn3270(1), window(1)\*(tx1..2,6, \s-1USD\s0:7\*(tx10,18, \s-1USD\s0:24\*(tx8,19, \s-1PS1\s0:15\*(tx3, \s-1PS2\s0:8\*(tx9, \s-1PS2\s0:9\*(tx25,50,69, \s-1SMM\s0:12\*(tx10,12 +.X "characters, greek" +\s-1USD\s0:24\*(tx33 +.X "characters, input" +\s-1PS1\s0:4\*(tx30, \s-1PS1\s0:6\*(tx14,38, \s-1PS1\s0:15\*(tx16, \s-1PS1\s0:16\*(tx6..7, \s-1PS2\s0:3\*(tx2,15, \s-1PS2\s0:8\*(tx7 +.X "characters, Interrupt" +\s-1PS1\s0:6\*(tx38 +.X "characters, line editing" +window(1)\*(tx3, \s-1USD\s0:8\*(tx52, reboot(8)\*(tx2 +.X "characters, literal" +\s-1PS1\s0:6\*(tx38, \s-1PS1\s0:13\*(tx3, \s-1PS1\s0:15\*(tx2,7, \s-1PS2\s0:10\*(tx27 +.X "characters, macro" +\s-1USD\s0:15\*(tx23,25 +.X "characters, new\*(txline" +mkstr(1), \s-1USD\s0:5\*(tx1, \s-1USD\s0:16\*(tx14, cron(8) +.X "characters, Non\*(txASCII" +cat(1), ed(1)\*(tx5, \s-1USD\s0:10\*(tx11, \s-1USD\s0:16\*(tx6, \s-1USD\s0:24\*(tx33 +.X "characters, non\*(txgraphic" +ed(1)\*(tx4, ls(1), od(1) +.X "characters, non\*(txprinting" +col(1), tip(1c)\*(tx2, \s-1USD\s0:13\*(tx2, \s-1USD\s0:14\*(tx9, \s-1USD\s0:15\*(tx9, \s-1USD\s0:16\*(tx9, \s-1USD\s0:28\*(tx3, sa(8) +.X "characters, non\*(txwhite" +\s-1USD\s0:15\*(tx12,24..25, \s-1USD\s0:16\*(tx13,15 +.X "characters, output" +\s-1USD\s0:1\*(tx3, tty(4)\*(tx2, \s-1SMM\s0:20\*(tx4 +.X "characters, pad" +termcap(3x), termcap(5)\*(tx12 +.X "characters, prefix" +\s-1USD\s0:17\*(tx3 +.X "characters, printable" +\s-1USD\s0:24\*(tx9, ctype(3) +.X "characters, printable ASCII" +tip(1c)\*(tx3 +.X "characters, quote" +\s-1USD\s0:22\*(tx18 +.X "characters, shell" +uucp(1c), uux(1c), \s-1SMM\s0:9\*(tx3..4 +.X "characters, special" +\s-1USD\s0:12\*(tx6..9, \s-1USD\s0:14\*(tx19, \s-1USD\s0:23\*(tx9, \s-1USD\s0:25\*(tx4, \s-1SMM\s0:20\*(tx4 +.X "characters, start" +rlogin(1c), stty(1), tty(4)\*(tx4,7 +.X "characters, stop" +stty(1), pty(4), tty(4)\*(tx4,7 +.X "characters, tall" +\s-1USD\s0:24\*(tx21 +.X "characters, tr \*(tx translate" +tr(1) +.X "characters, trailing" +\s-1USD\s0:31\*(tx12 +.X "characters, transposing two" +\s-1USD\s0:17\*(tx14 +.X "characters, troff naming conventions for" +\s-1USD\s0:24\*(tx33 +.X "characters with descenders" +\s-1USD\s0:24\*(tx21 +.X "characters written" +ed(1)\*(tx5, \s-1USD\s0:16\*(tx11 +.X "character\*(txto\*(txoctal\*(txinsert" +\s-1USD\s0:17\*(tx28 +.X "character\*(txtype special file" +ls(1) +.X "chart of JOVE commands" +\s-1USD\s0:17\*(tx29 +.X "chat script" +L.sys(5)\*(tx3, \s-1SMM\s0:9\*(tx16 +.X "chdir \*(tx change current working directory" +csh(1)\*(tx10,17, \s-1USD\s0:4\*(tx35..36,39, \s-1USD\s0:7\*(tx13, chdir(2), chdir(3f), \s-1PS1\s0:6\*(tx27 +.X "check, automatic consistency" +reboot(2), reboot(8) +.X "check, machine" +ik(4), crash(8v), \s-1SMM\s0:2\*(tx18, \s-1SMM\s0:13\*(tx19 +.X "check portability" +lint(1) +.X "check the consistency of the /usr file system" +\s-1SMM\s0:1\*(tx16 +.X "checked\*(txin revision" +\s-1PS1\s0:13\*(tx5..6 +.X "checkeq" +eqn(1) +.X "Checker, Lint, a C Program" +\s-1PS1\s0:9 +.X "checkgroups control message" +\s-1SMM\s0:10\*(tx3,9..10 +.X "checkin" +rcsintro(1) +.X "checkin date/time" +\s-1PS1\s0:13\*(tx8,20 +.X "checking accessibility" +\s-1PS1\s0:6\*(tx31 +.X "checking and correcting spelling" +\s-1USD\s0:17\*(tx14 +.X "checking for new notes" +\s-1USD\s0:11\*(tx15 +.X "checking the data associated with an inode" +\s-1SMM\s0:5\*(tx7 +.X "checking the file systems" +fastboot(8) +.X "checking, type" +stab(5), \s-1PS1\s0:4\*(tx43, \s-1PS1\s0:9\*(tx1,4 +.X "checknews" +\s-1USD\s0:9\*(tx2,6 +.X "checknr \*(tx check nroff/troff files" +checknr(1), \s-1USD\s0:29\*(tx4, \s-1SMM\s0:12\*(tx4 +.X "checkout" +rcsintro(1) +.X "checkquota" +\s-1SMM\s0:12\*(tx19 +.X "checks, access" +access(2), intro(2)\*(tx6..7, access(3f) +.X "checks, consistency" +reboot(2), crash(8v)\*(tx1, fsck(8), vipw(8), \s-1SMM\s0:5\*(tx2..3, \s-1SMM\s0:15\*(tx18 +.X "checksum" +sum(1), dump(5) +.X "chfn, chsh, passwd \*(tx change password file information" +passwd(1), \s-1SMM\s0:12\*(tx4 +.X "chgrp \*(tx change group ownership of files" +chgrp(1), install(1), \s-1SMM\s0:12\*(tx4 +.X "Chicago University Press" +\s-1USD\s0:29\*(tx9 +.X "child process" +csh(1)\*(tx14, sh(1)\*(tx6, \s-1USD\s0:3\*(tx21, fork(2), getrusage(2), ptrace(2), umask(2), wait(2), nice(3c), wait(3f), tty(4)\*(tx1, \s-1PS1\s0:6\*(tx7, \s-1PS1\s0:7\*(tx7, \s-1PS1\s0:8\*(tx26, \s-1PS2\s0:1\*(tx8,11..12, \s-1PS2\s0:3\*(tx9..10, \s-1PS2\s0:4\*(tx3, \s-1PS2\s0:9\*(tx75, \s-1SMM\s0:13\*(tx7 +.X "child status has changed" +signal(3c)\*(tx1 +.X "child, terminated" +wait(2) +.X "ching \*(tx the book of changes and other cookies" +ching(6) +.X "chmod \*(tx change mode of a file" +chmod(1), install(1), chmod(2), stat(2)\*(tx2, chmod(3f), \s-1SMM\s0:10\*(tx19, \s-1SMM\s0:12\*(tx4 +.X "chmod(path, mode)" +\s-1PS1\s0:6\*(tx30 +.X "chown \*(tx change owner and group of a file" +install(1), chown(2), stat(2)\*(tx2, chown(8), \s-1SMM\s0:12\*(tx19 +.X "chown(path, owner, group)" +\s-1PS1\s0:6\*(tx29 +.X "chroot \*(tx change root directory" +chroot(2), ftpd(8c) +.X "chroot(path)" +\s-1PS1\s0:6\*(tx27 +.X "chsh \*(tx change login shell" +passwd(1), \s-1USD\s0:4\*(tx35, \s-1SMM\s0:12\*(tx4 +.X "ci \*(tx check in RCS revisions" +\s-1PS1\s0:13\*(tx4 +.X "cifplot" +lpr(1), lpd(8) +.X "circle" +\s-1USD\s0:23\*(tx10, plot(3x) +.X "circuit, connection\*(txbased virtual" +\s-1PS1\s0:6\*(tx33 +.X "circuit, virtual" +\s-1PS1\s0:6\*(tx33,36 +.X "circumflex ^ (see also caret)" +ms(7)\*(tx3, \s-1USD\s0:12\*(tx9, \s-1USD\s0:13\*(tx4, \s-1USD\s0:21\*(tx3, \s-1USD\s0:26\*(tx3 +.X "citation formatting" +\s-1USD\s0:31\*(tx11 +.X "citation style" +\s-1USD\s0:31\*(tx2,16 +.X "citation template" +\s-1USD\s0:31\*(tx10..13 +.X "citations" +bib(1), refer(1) +.X "citations, contiguous" +\s-1USD\s0:31\*(tx9 +.X "citations, imprecise" +\s-1USD\s0:31\*(tx1..3 +.X "citations, partial" +\s-1USD\s0:29\*(tx4..6,9 +.X "clashes, type" +\s-1PS1\s0:4\*(tx22..24 +.X "class, address" +\s-1SMM\s0:11\*(tx6,8 +.X "class B network" +\s-1SMM\s0:1\*(tx39 +.X "class C network" +\s-1SMM\s0:1\*(tx39 +.X "class, character" +\s-1USD\s0:13\*(tx6, \s-1PS1\s0:16\*(tx2,4,12, \s-1PS2\s0:9\*(tx85..87,90,95 +.X "class, message" +\s-1SMM\s0:7\*(tx9,14,19,32 +.X "class, storage" +\s-1USD\s0:6\*(tx12, \s-1PS1\s0:1\*(tx3..4,14,20,24..25,28, \s-1PS2\s0:6\*(tx8, \s-1SMM\s0:19\*(tx6..8,11 +.X "class, syntax" +\s-1PS2\s0:9\*(tx85..90,94..95 +.X "clean all system buffer caches" +\s-1PS1\s0:6\*(tx23 +.X "cleanup on /usr/msgs" +msgs(1) +.X "cleanup, uuclean \*(tx uucp spool directory" +\s-1SMM\s0:9\*(tx8 +.X "clear()" +\s-1PS1\s0:18\*(tx9 +.X "clear" +\s-1SMM\s0:12\*(tx4 +.X "clear \*(tx clear terminal screen" +clear(1) +.X "clear, window" +\s-1PS1\s0:18\*(tx9 +.X "clear\*(txand\*(txredraw (ESC C\*(txL)" +\s-1USD\s0:17\*(tx28 +.X "clearerr" +ferror(3s), getc(3s) +.X "clearok(scr, boolf)" +\s-1PS1\s0:18\*(tx9 +.X "clear\*(txscreen sequence" +\s-1PS1\s0:18\*(tx9..10 +.X "client process" +\s-1PS1\s0:8\*(tx17,20,27 +.X "client/server model" +\s-1PS1\s0:8\*(tx2,16..17 +.X "c\*(txlist" +\s-1SMM\s0:2\*(tx30 +.X "clock, alarm" +alarm(3c), ualarm(3) +.X "clock daemon" +systat(1)\*(tx3, cron(8) +.X "clock frequency" +\s-1SMM\s0:12\*(tx8,10 +.X "clock interrupts" +kg(4) +.X "clock, kg \*(tx KL\*(tx11/DL\*(tx11W line" +kg(4) +.X "clock resolution" +\s-1PS1\s0:6\*(tx17 +.X "clock synchronization" +\s-1SMM\s0:8\*(tx2, \s-1SMM\s0:22\*(tx10 +.X "clock, system" +adjtime(2), getitimer(2), gettimeofday(2), timedc(8), \s-1SMM\s0:2\*(tx6, \s-1SMM\s0:12\*(tx13 +.X "clock ticks" +profil(2), vtimes(3c), \s-1SMM\s0:13\*(tx6..7 +.X "close \*(tx delete a descriptor" +close(2) +.X "close, hang up on last" +tty(4)\*(tx5 +.X "close, linger on" +\s-1PS1\s0:8\*(tx35 +.X "close quote" +\s-1USD\s0:24\*(tx9 +.X "close window" +window(1)\*(tx3 +.X "closedir" +directory(3) +.X "closelog \*(tx control system log" +syslog(3) +.X "close\*(txon\*(txexec flag" +dup(2), execve(2), fcntl(2), \s-1SMM\s0:13\*(tx7 +.X "closepl" +plot(3x) +.X "closing parenthesis" +\s-1USD\s0:17\*(tx23 +.X "clospl" +plot(3f) +.X "clri \*(tx clear i\*(txnode" +clri(8) +.X "clrtobot()" +\s-1PS1\s0:18\*(tx9 +.X "clrtoeol()" +\s-1PS1\s0:18\*(tx9 +.X "cluster, mbuf" +\s-1SMM\s0:13\*(tx13,30 +.X "cluster, page" +pstat(8)\*(tx3, \s-1SMM\s0:13\*(tx3,13, \s-1SMM\s0:15\*(tx4..5 +.X "cmap structure" +\s-1SMM\s0:13\*(tx3,15,20 +.X "c\*(txmode" +\s-1USD\s0:17\*(tx27 +.X "cmp \*(tx compare two files" +cmp(1) +.X "CMU Top Level" +\s-1PS2\s0:9\*(tx4 +.X "CMULisp, PDP\*(tx10" +\s-1PS2\s0:9\*(tx128,140 +.X "co \*(tx check out RCS revisions" +\s-1PS1\s0:13\*(tx8 +.X "code, assembler" +\s-1SMM\s0:19\*(tx2..3,14,18 +.X "code, bootstrap" +\s-1SMM\s0:13\*(tx34 +.X "code, C" +\s-1PS1\s0:9\*(tx1, \s-1PS1\s0:15\*(tx33, \s-1PS2\s0:10\*(tx50 +.X "code, compiled" +\s-1PS1\s0:2\*(tx13, \s-1PS2\s0:7\*(tx15, \s-1PS2\s0:8\*(tx11, \s-1PS2\s0:9\*(tx32,124,127,136..137 +.X "code, error" +\s-1PS1\s0:3\*(tx4, \s-1PS1\s0:6\*(tx5, \s-1PS1\s0:8\*(tx25, \s-1PS2\s0:3\*(tx11, \s-1PS2\s0:5\*(tx5, \s-1PS2\s0:9\*(tx57 +.X "code, exit" +\s-1PS2\s0:9\*(tx75,78..80 +.X "code, Fortran" +\s-1PS2\s0:6\*(tx1 +.X "code generation" +\s-1USD\s0:26\*(tx7, \s-1PS1\s0:1\*(tx13, \s-1PS1\s0:4\*(tx25, \s-1SMM\s0:12\*(tx3, \s-1SMM\s0:13\*(tx33, \s-1SMM\s0:19\*(tx3..4,10..16,19,22,24..25 +.X "code, intermediate" +\s-1SMM\s0:19\*(tx2,13 +.X "code, lisp" +\s-1PS2\s0:7\*(tx14, \s-1PS2\s0:9\*(tx4,80,87,135 +.X "code, object" +\s-1PS1\s0:4\*(tx8, \s-1PS1\s0:11\*(tx5, \s-1PS1\s0:13\*(tx3, \s-1PS2\s0:10\*(tx68 +.X "code, Remote login client" +\s-1PS1\s0:8\*(tx16, \s-1PS1\s0:11\*(tx1..3,6, \s-1PS2\s0:9\*(tx4 +.X "code segment" +\s-1SMM\s0:2\*(tx22 +.X "code template" +\s-1SMM\s0:19\*(tx4,15,20,23 +.X "code, unreachable" +lint(1) +.X "code, user" +\s-1PS1\s0:15\*(tx1,9, \s-1PS2\s0:10\*(tx63,74 +.X "codes, format" +\s-1PS1\s0:2\*(tx12,23..24 +.X "coding, Huffman" +compress(1) +.X "coding, Lempel\*(txZiv" +compress(1) +.X "coercion, type" +\s-1SMM\s0:12\*(tx2 +.X "col \*(tx filter reverse line feeds" +col(1) +.X "colcrt \*(tx filter nroff output for CRT previewing" +colcrt(1) +.X "cold start" +reboot(8)\*(tx1 +.X "Coleman\*(txLiau Formula" +\s-1USD\s0:32\*(tx2..4,9 +.X "collecting references" +\s-1USD\s0:30\*(tx10 +.X "collection, garbage" +ps(1)\*(tx1, \s-1PS2\s0:9\*(tx76,79,82, \s-1SMM\s0:13\*(tx15, \s-1SMM\s0:15\*(tx24 +.X "collisions" +netstat(1) +.X "colon functions" +\s-1USD\s0:18\*(tx10 +.X "colrm \*(tx remove columns from a file" +colrm(1), \s-1SMM\s0:12\*(tx4 +.X "column, .bc Begin" +\s-1USD\s0:23\*(tx6 +.X "column format" +ms(7)\*(tx2, \s-1USD\s0:20\*(tx2 +.X "column width" +ms(7)\*(tx2, \s-1USD\s0:20\*(tx2, \s-1USD\s0:23\*(tx5, \s-1USD\s0:24\*(tx30, \s-1USD\s0:28\*(tx3..6 +.X "columned output (see also multicolumn)" +pr(1), \s-1USD\s0:22\*(tx15, \s-1USD\s0:23\*(tx5, \s-1USD\s0:24\*(tx30 +.X "column\*(txmajor order" +\s-1PS1\s0:2\*(tx10,13, \s-1PS2\s0:6\*(tx16,22 +.X "columns, Equal width" +\s-1USD\s0:28\*(tx5 +.X "columns, numerical" +\s-1USD\s0:28\*(tx3,7 +.X "columns, removing" +colrm(1) +.X "columns, Space between" +\s-1USD\s0:28\*(tx4 +.X "combinations, Boolean" +\s-1USD\s0:19\*(tx1,4 +.X "combine several files" +\s-1USD\s0:13\*(tx12 +.X "combining forms" +\s-1PS2\s0:7\*(tx4..5 +.X "comm \*(tx select or reject lines common to two sorted files" +comm(1) +.X "comma operator" +\s-1PS1\s0:1\*(tx12,33 +.X "command aliases" +dbx(1)\*(tx5 +.X "command and filename completion" +\s-1USD\s0:17\*(tx2 +.X "command arguments" +csh(1)\*(tx6, find(1), ps(1)\*(tx1 +.X "command, background" +\s-1USD\s0:3\*(tx2 +.X "command execution" +csh(1)\*(tx18, \s-1USD\s0:3\*(tx21, \s-1SMM\s0:9\*(tx12 +.X "command execution, remote" +rcp(1c), uux(1c), rexecd(8c), uuxqt(8c), \s-1SMM\s0:9\*(tx8 +.X "command, execution status of a" +\s-1USD\s0:4\*(tx27 +.X "command fields" +\s-1SMM\s0:10\*(tx13 +.X "command files" +csh(1)\*(tx9, file(1), \s-1USD\s0:16\*(tx1, \s-1USD\s0:18\*(tx1, execl(3), \s-1SMM\s0:9\*(tx4 +.X "command grouping" +\s-1USD\s0:3\*(tx12 +.X "command interpreter" +csh(1)\*(tx1, login(1), sh(1)\*(tx1, \s-1USD\s0:2\*(tx6, \s-1USD\s0:3\*(tx1, \s-1USD\s0:4\*(tx1,3,43, system(3f) +.X "command level" +\s-1SMM\s0:17\*(tx1 +.X "command line arguments" +getarg(3f) +.X "command line flags" +\s-1SMM\s0:7\*(tx28 +.X "command not found" +\s-1USD\s0:14\*(tx5 +.X "command parameters" +\s-1USD\s0:16\*(tx4 +.X "command scripts" +csh(1)\*(tx1, \s-1USD\s0:4\*(tx25, rc(8) +.X "command, standard output from a" +\s-1USD\s0:3\*(tx1 +.X "command substitution" +csh(1)\*(tx6..8,20, sh(1)\*(tx2..3, \s-1USD\s0:3\*(tx16..17,21, \s-1USD\s0:4\*(tx33,35 +.X "command, system \*(tx execute a UNIX" +system(3f) +.X "command, time \*(tx time a" +time(1) +.X "command usage statistics" +sa(8) +.X "commands, chart of JOVE" +\s-1USD\s0:17\*(tx29 +.X "commands, define your own" +\s-1USD\s0:17\*(tx24 +.X "commands, editing" +sed(1)\*(tx1, \s-1USD\s0:1\*(tx9,12, \s-1USD\s0:13\*(tx7,10,16, \s-1USD\s0:14\*(tx7,10, \s-1USD\s0:17\*(tx4, \s-1USD\s0:18 +.X "commands in the background" +\s-1USD\s0:1\*(tx10 +.X "commands, intro \*(tx introduction to" +intro(1) +.X "commands, introduction to UNIX files and" +\s-1USD\s0:2\*(tx1 +.X "commands, job control" +\s-1USD\s0:4\*(tx18,39 +.X "commands, list of mail" +\s-1USD\s0:7\*(tx12 +.X "commands, previously executed (see also history)" +lastcomm(1) +.X "commands, repeating" +csh(1)\*(tx3 +.X "commands (see also names of specific commands and man(1) (URM))" +intro(1), \s-1USD\s0:4\*(tx4,41, \s-1USD\s0:17\*(tx3 +.X "commands, synonyms for" +csh(1)\*(tx5 +.X "comment character" +\s-1USD\s0:16\*(tx4, \s-1PS2\s0:7\*(tx14, \s-1PS2\s0:9\*(tx50,73,93, \s-1SMM\s0:12\*(tx11 +.X "comment leader" +\s-1PS1\s0:13\*(tx13 +.X "comment\*(txformat (variable)" +\s-1USD\s0:17\*(tx28 +.X "comments" +cc(1)\*(tx2, \s-1USD\s0:24\*(tx15,20, \s-1PS1\s0:1 +.X "comments, block" +indent(1), pmerge(1), \s-1SMM\s0:12\*(tx2 +.X "comments, conventional" +lint(1) +.X "comments, multi\*(txline" +\s-1PS1\s0:4\*(tx39, \s-1PS1\s0:13\*(tx13 +.X "comments, Right marginal" +\s-1PS1\s0:4\*(tx39..40 +.X "comments, shell" +csh(1)\*(tx1, \s-1USD\s0:4\*(tx25,29 +.X "comments, Trailing" +\s-1PS1\s0:4\*(tx39, \s-1PS2\s0:6\*(tx6 +.X "communicating processes" +sail(6)\*(tx1, \s-1PS1\s0:7\*(tx7,22, \s-1PS1\s0:8\*(tx2,4 +.X "Communication, Changes in Interprocess" +\s-1SMM\s0:13\*(tx12 +.X "communication domain" +bind(2), socket(2), \s-1PS1\s0:6\*(tx18,24,29,32..34, \s-1PS1\s0:7\*(tx22, \s-1PS1\s0:8\*(tx3..5,28, \s-1SMM\s0:15\*(tx8 +.X "communication, Interprocess" +\s-1PS1\s0:6\*(tx32, \s-1PS1\s0:7\*(tx1..2, \s-1PS1\s0:8, \s-1PS1\s0:8\*(tx2 +.X "communication lines" +dh(4), dhu(4), dz(4), tty(4)\*(tx1, \s-1PS1\s0:6\*(tx20,39, \s-1PS2\s0:4\*(tx5..6, \s-1SMM\s0:9\*(tx2, \s-1SMM\s0:18\*(tx1, \s-1SMM\s0:21\*(tx1..2 +.X "communication, network" +\s-1SMM\s0:15\*(tx2..3 +.X "communication protocol" +intro(2)\*(tx5,7, socket(2), \s-1PS1\s0:8\*(tx3,14, \s-1SMM\s0:1\*(tx38,50, \s-1SMM\s0:12\*(tx17, \s-1SMM\s0:15\*(tx3,6,15 +.X "communication, secure" +xsend(1) +.X "communication, semantics of" +\s-1PS1\s0:6\*(tx33 +.X "communication, stream" +\s-1PS1\s0:7\*(tx1,8,23 +.X "communication with other systems" +intro(1) +.X "Communications of the ACM" +\s-1USD\s0:31\*(tx5 +.X "comp \*(tx compose a message" +\s-1USD\s0:8\*(tx4,6,16 +.X "compact and uncompact" +\s-1SMM\s0:1\*(tx23, \s-1SMM\s0:12\*(tx4 +.X "compare RCS revision, rcsdiff \*(tx" +\s-1PS1\s0:13\*(tx14 +.X "comparing dates and sizes" +rdist(1)\*(tx2 +.X "comparing files and subdirectories" +diff(1), diff3(1) +.X "comparison operator" +\s-1PS2\s0:10\*(tx35 +.X "comparison, string" +\s-1USD\s0:19\*(tx4, \s-1USD\s0:25\*(tx12 +.X "COMPAT" +\s-1SMM\s0:2\*(tx7, \s-1SMM\s0:13\*(tx26 +.X "COMPAT_42" +\s-1SMM\s0:2\*(tx33 +.X "compatibility, DEC VMS" +stty(1)\*(tx2 +.X "compatibility, Honey\*(txDanber UUCP" +L.sys(5)\*(tx4, \s-1SMM\s0:9\*(tx10 +.X "compatibility mode faults" +sigvec(2)\*(tx3, signal(3c)\*(tx2, crash(8v)\*(tx2 +.X "compatibility routines" +intro(3)\*(tx1 +.X "compatibility, System V" +kill(2), \s-1SMM\s0:9\*(tx8,10, \s-1SMM\s0:12\*(tx14..15,18, \s-1SMM\s0:13\*(tx3 +.X "compilation errors" +\s-1PS1\s0:14\*(tx8, \s-1PS2\s0:9\*(tx126, \s-1SMM\s0:19\*(tx20,23,25 +.X "compilation, getting files for" +\s-1PS1\s0:14\*(tx3 +.X "compilation options" +\s-1SMM\s0:2\*(tx15 +.X "compilation, separate" +\s-1PS1\s0:4\*(tx41,43,50 +.X "compile your code while in the editor" +\s-1USD\s0:17\*(tx22 +.X "compiled code" +\s-1PS1\s0:2\*(tx13, \s-1PS2\s0:7\*(tx15, \s-1PS2\s0:8\*(tx11, \s-1PS2\s0:9\*(tx32,124,127,136..137 +.X "compile\*(txit (C\*(txX C\*(txE)" +\s-1USD\s0:17\*(tx28,48 +.X "compiler bugs" +\s-1SMM\s0:19\*(tx25 +.X "compiler, building a" +\s-1USD\s0:1\*(tx13 +.X "compiler, C" +cc(1)\*(tx1, jove(1)\*(tx1, yacc(1), \s-1USD\s0:17\*(tx20,28, intro(3)\*(tx1, \s-1PS1\s0:1\*(tx26, \s-1PS1\s0:2, \s-1PS1\s0:9\*(tx1,6,9, \s-1PS1\s0:10\*(tx5, \s-1PS1\s0:12\*(tx6, \s-1PS2\s0:3\*(tx2, \s-1PS2\s0:8\*(tx11, \s-1PS2\s0:9\*(tx65, \s-1PS2\s0:10\*(tx50, \s-1SMM\s0:12\*(tx2,4,6, \s-1SMM\s0:19\*(tx2..4 +.X "compiler control lines" +\s-1PS1\s0:1\*(tx26..27 +.X "compiler, DEC Western Research Labs Modula\*(tx2" +\s-1SMM\s0:12\*(tx4..5 +.X "compiler, EFL" +\s-1PS2\s0:6\*(tx10,25 +.X "compiler extensions" +\s-1SMM\s0:19\*(tx26 +.X "compiler, f77 \*(tx Fortran 77" +f77(1)\*(tx1, bit(3f), trpfpe(3f), \s-1PS1\s0:2\*(tx4..6, \s-1PS2\s0:6\*(tx24, \s-1PS2\s0:8\*(tx10,12, \s-1PS2\s0:9\*(tx65, \s-1SMM\s0:12\*(tx5 +.X "compiler, lisp" +\s-1PS2\s0:9\*(tx4,39,65,120,127 +.X "compiler, Pascal" +pc(1), \s-1SMM\s0:19\*(tx24 +.X "compiler sources" +\s-1SMM\s0:12\*(tx3, \s-1SMM\s0:19\*(tx3 +.X "compiler\*(txcompiler, yacc \*(tx yet another" +yacc(1), \s-1PS1\s0:15 +.X "compiler/interpreter, fp \*(tx Functional Programming language" +fp(1) +.X "compiling a Lex source program" +\s-1PS1\s0:16\*(tx9 +.X "compiling changed source code" +\s-1PS1\s0:12\*(tx1 +.X "completion, file name" +csh(1)\*(tx1..2,17, \s-1SMM\s0:12\*(tx4 +.X "complex constants" +\s-1PS1\s0:2\*(tx11,24, \s-1PS2\s0:6\*(tx26 +.X "complex expressions" +\s-1USD\s0:6\*(tx2 +.X "complex key" +\s-1PS2\s0:9\*(tx33 +.X "complex number" +f77(1)\*(tx2, \s-1PS1\s0:2\*(tx5,21, \s-1PS2\s0:6\*(tx7,13 +.X "complex sentence" +\s-1USD\s0:32\*(tx5..6,9 +.X "complex types" +\s-1SMM\s0:19\*(tx25 +.X "complex values" +intro(3f)\*(tx1, \s-1PS1\s0:2\*(tx6,9, \s-1PS1\s0:3\*(tx5 +.X "components, filename" +\s-1USD\s0:4\*(tx29,35 +.X "components, header" +\s-1USD\s0:8\*(tx82,96 +.X "components, list of MH user profile" +\s-1USD\s0:8\*(tx9 +.X "compose a message" +mh(1)\*(tx1, \s-1USD\s0:8\*(tx52,101 +.X "compound sentences" +\s-1USD\s0:32\*(tx5 +.X "compound statements" +indent(1), \s-1PS1\s0:1\*(tx4,21..23, \s-1PS2\s0:6\*(tx4,17 +.X "compound\*(txcomplex sentences" +\s-1USD\s0:32\*(tx5..6,9 +.X "compress, uncompress, zcat \*(tx compress and expand data" +compress(1), \s-1SMM\s0:12\*(tx4 +.X "compressed files (.Z)" +\s-1SMM\s0:12\*(tx7 +.X "computation accurate to many decimal places" +\s-1USD\s0:6\*(tx1 +.X "computation with large integers" +\s-1USD\s0:6\*(tx1 +.X "computer aided instruction" +learn(1) +.X "computer\*(txaided design" +intro(1) +.X "comsat \*(tx biff server" +comsat(8c), inetd(8), \s-1SMM\s0:12\*(tx19 +.X "concatenating files" +cat(1) +.X "concatenation, string" +\s-1USD\s0:19\*(tx5, \s-1PS1\s0:2\*(tx20 +.X "concealed newlines" +\s-1USD\s0:24\*(tx15,20 +.X "concept 108 terminal" +sysline(1) +.X "cond clause" +\s-1PS2\s0:9\*(tx52..53,127,140 +.X "condition, alert" +syslog(3) +.X "condition, break" +tty(4)\*(tx4,7 +.X "condition codes" +\s-1SMM\s0:19\*(tx15,17,20..22 +.X "condition, Critical" +syslog(3) +.X "condition, end\*(txof\*(txfile" +getc(3s) +.X "condition, exceptional" +\s-1PS1\s0:6\*(tx19 +.X "condition, Race" +binmail(1), \s-1SMM\s0:13\*(tx20 +.X "conditional acceptance of input" +\s-1USD\s0:24\*(tx5,23 +.X "conditional branch" +\s-1USD\s0:3\*(tx11, \s-1SMM\s0:19\*(tx10 +.X "conditional execution" +csh(1)\*(tx1 +.X "conditional statement" +\s-1PS1\s0:1\*(tx21 +.X "conditional testing" +\s-1PS1\s0:17\*(tx5 +.X "conditions, test \*(tx test for various" +test(1) +.X "conference proceedings" +\s-1USD\s0:31\*(tx5,16 +.X "config \*(tx build system configuration files" +intro(4), config(8), \s-1SMM\s0:2, \s-1SMM\s0:4\*(tx2, \s-1SMM\s0:12\*(tx20 +.X "configuration, creating the" +\s-1SMM\s0:1\*(tx12 +.X "configuration, disk" +\s-1SMM\s0:1\*(tx20,27 +.X "configuration, /etc/syslog.conf \*(tx system logger" +\s-1SMM\s0:1\*(tx19 +.X "configuration file" +ec(4), uu(4), config(8), sendmail(8)\*(tx2, \s-1SMM\s0:1\*(tx2,19,22,26..27,35,38..41, \s-1SMM\s0:2\*(tx2..9,15..16,20,24,28,30, \s-1SMM\s0:7, \s-1SMM\s0:12\*(tx22, \s-1SMM\s0:13\*(tx30, \s-1SMM\s0:16\*(tx5,8..11 +.X "configuration file, sample" +\s-1SMM\s0:2\*(tx28 +.X "configuration file syntax" +\s-1SMM\s0:2\*(tx6,24 +.X "configuration, hardware" +\s-1SMM\s0:1\*(tx3,7,29, \s-1SMM\s0:2\*(tx2, \s-1SMM\s0:13\*(tx33 +.X "configuration, interface" +intro(4n)\*(tx4 +.X "configuration, MACS" +L\*(txdevices(5), \s-1SMM\s0:9\*(tx13 +.X "configuration, MH" +\s-1USD\s0:8\*(tx88..89 +.X "configuration, network" +\s-1PS1\s0:8\*(tx32, ifconfig(8c) +.X "configuration of the virtual memory limits" +\s-1SMM\s0:1\*(tx23 +.X "configuration options" +resolver(5), config(8), \s-1SMM\s0:1\*(tx41, \s-1SMM\s0:2\*(tx2,9,32..33, \s-1SMM\s0:7\*(tx13,15,30, \s-1SMM\s0:13\*(tx15,20,23..24,34 +.X "configuration program (see also Config)" +\s-1SMM\s0:2\*(tx17..20 +.X "configuration, sendmail" +\s-1SMM\s0:16\*(tx8 +.X "configuration, system" +autoconf(4), config(8), \s-1SMM\s0:1\*(tx32..33,38,65, \s-1SMM\s0:2\*(tx2,8,15,23, \s-1SMM\s0:4\*(tx2 +.X "configuration, /usr/lib/sendmail.cf \*(tx sendmail" +\s-1SMM\s0:1\*(tx19 +.X "configuring terminals" +\s-1SMM\s0:1\*(tx32 +.X "conflict \*(tx search for alias/password conflicts" +\s-1USD\s0:8\*(tx91 +.X "conflict, ambiguity and" +\s-1PS1\s0:15\*(tx11 +.X "conflict, reduce/reduce" +\s-1PS1\s0:15\*(tx12,16 +.X "conflict resolution message" +\s-1SMM\s0:22\*(tx4,6 +.X "conflict, shift/reduce" +\s-1PS1\s0:15\*(tx12..16 +.X "conflicts, parsing" +\s-1PS1\s0:15\*(tx14..16 +.X "congestion control" +\s-1SMM\s0:15\*(tx20,24 +.X "conjunctions" +\s-1USD\s0:32\*(tx6 +.X "connect \*(tx initiate a connection on a socket" +connect(2), icmp(4p), udp(4p), \s-1SMM\s0:15\*(tx15..16 +.X "connect time accounting" +ac(8), \s-1SMM\s0:1\*(tx50 +.X "connected peer" +getpeername(2), \s-1SMM\s0:15\*(tx16 +.X "connected socket" +getsockopt(2), intro(2)\*(tx4, recv(2), gethostbyname(3), \s-1SMM\s0:13\*(tx13 +.X "connected sockets, socketpair \*(tx create a pair of" +socketpair(2) +.X "connected state" +recv(2), send(2), socket(2) +.X "connecting to another socket" +\s-1PS1\s0:6\*(tx34 +.X "connection, Ending" +\s-1PS1\s0:7\*(tx17,21 +.X "connection, Establishing a stream" +\s-1PS1\s0:7\*(tx18 +.X "connection establishment" +connect(2), \s-1PS1\s0:6\*(tx19, \s-1PS1\s0:8\*(tx6..8,11, \s-1SMM\s0:15\*(tx7 +.X "connection, full\*(txduplex" +tip(1c)\*(tx1, tn3270(1), shutdown(2) +.X "connection, IPC" +\s-1SMM\s0:7\*(tx26, \s-1SMM\s0:16\*(tx4 +.X "connection level flow control" +\s-1SMM\s0:15\*(tx24 +.X "connection message" +tip(1c)\*(tx2, \s-1SMM\s0:12\*(tx12 +.X "connection, PAD" +L.sys(5)\*(tx2, \s-1SMM\s0:9\*(tx13 +.X "connection requests" +\s-1PS1\s0:6\*(tx19, \s-1SMM\s0:2\*(tx33, \s-1SMM\s0:13\*(tx15,26, \s-1SMM\s0:15\*(tx8 +.X "connection, secondary control" +ftp(1c)\*(tx4 +.X "connection, Setting up a UUCP" +\s-1SMM\s0:1\*(tx35 +.X "connection to a named socket" +\s-1PS1\s0:6\*(tx34 +.X "connection, X.25 PAD" +L\*(txdevices(5), L.sys(5)\*(tx2, \s-1SMM\s0:9\*(tx13 +.X "connection\*(txbased virtual circuits" +\s-1PS1\s0:6\*(tx33 +.X "connectionless servers" +\s-1PS1\s0:8\*(tx20 +.X "connectionless sockets" +\s-1PS1\s0:8\*(tx8 +.X "connections, Accepting" +\s-1PS1\s0:6\*(tx24,34 +.X "connections, incoming" +listen(2), spp(4p), tcp(4p), \s-1SMM\s0:13\*(tx29, \s-1SMM\s0:15\*(tx6,8 +.X "connections, listen for" +\s-1PS1\s0:6\*(tx34 +.X "connections, network" +systat(1), tty(4)\*(tx1, L\*(txdevices(5), L.sys(5)\*(tx2, \s-1SMM\s0:1\*(tx50, \s-1SMM\s0:7\*(tx15,25, \s-1SMM\s0:9\*(tx13,15, \s-1SMM\s0:10\*(tx1, \s-1SMM\s0:12\*(tx23 +.X "connections, pending" +accept(2), listen(2), \s-1PS1\s0:7\*(tx14,18, \s-1PS1\s0:8\*(tx7, \s-1SMM\s0:13\*(tx15, \s-1SMM\s0:15\*(tx16 +.X "connections, SPP" +\s-1PS1\s0:8\*(tx37..38 +.X "connections, TCP" +gethostbyname(3), resolver(3), L.sys(5)\*(tx2, gettable(8c), \s-1SMM\s0:2\*(tx33, \s-1SMM\s0:9\*(tx15, \s-1SMM\s0:15\*(tx16 +.X "connections, UUCP" +\s-1SMM\s0:1\*(tx35, \s-1SMM\s0:7\*(tx24..25 +.X "connect(s, name, namelen)" +\s-1PS1\s0:6\*(tx34, \s-1PS1\s0:7\*(tx14 +.X "cons \*(tx VAX\*(tx11 console interface" +cons(4) +.X "cons cell" +\s-1PS2\s0:9\*(tx10,14,88 +.X "consistency checks" +reboot(2), crash(8v)\*(tx1, fsck(8), vipw(8), \s-1SMM\s0:5\*(tx2..3, \s-1SMM\s0:15\*(tx18 +.X "console, booting from the" +\s-1SMM\s0:1\*(tx45 +.X "console cassette" +\s-1SMM\s0:1\*(tx25 +.X "console floppy" +arff(8v), format(8v)\*(tx3, \s-1SMM\s0:1\*(tx7,24..25 +.X "console media" +arff(8v), \s-1SMM\s0:1\*(tx3 +.X "console terminal" +last(1), autoconf(4), \s-1SMM\s0:1\*(tx45 +.X "console, VAX\*(tx11" +cons(4) +.X "constant character space (width) mode" +\s-1USD\s0:24\*(tx10 +.X "constant expressions" +\s-1PS1\s0:1\*(tx15,18,22,27 +.X "constant strings, database of" +xstr(1) +.X "constants" +\s-1PS1\s0:1\*(tx2, \s-1PS2\s0:6\*(tx7 +.X "constants, case" +\s-1PS1\s0:1\*(tx22, \s-1PS2\s0:6\*(tx18 +.X "constants, character" +\s-1PS1\s0:1\*(tx2..3,7,26,31, \s-1PS1\s0:2\*(tx7,19,22, \s-1PS1\s0:4\*(tx18, \s-1PS1\s0:9\*(tx8, \s-1PS2\s0:10\*(tx37, \s-1SMM\s0:19\*(tx26 +.X "constants, complex" +\s-1PS1\s0:2\*(tx11,24, \s-1PS2\s0:6\*(tx26 +.X "constants, floating point" +\s-1PS1\s0:1\*(tx3,7, \s-1PS1\s0:15\*(tx28, \s-1PS1\s0:16\*(tx11, \s-1PS2\s0:6\*(tx5, \s-1PS2\s0:10\*(tx33, \s-1SMM\s0:19\*(tx26 +.X "constants, real" +\s-1PS1\s0:2\*(tx24, \s-1PS2\s0:6\*(tx8 +.X "constraint, integrity" +\s-1PS2\s0:10\*(tx3,15..18,41,80 +.X "constraint, integrity \*(tx define integrity" +\s-1PS2\s0:10\*(tx18 +.X "cont" +csh(1)\*(tx12, plot(3f) +.X "contents, table of" +ms(7)\*(tx2, \s-1USD\s0:21\*(tx2, \s-1USD\s0:22\*(tx8 +.X "context addresses" +\s-1USD\s0:18\*(tx3..6 +.X "context diffs" +diff(1), patch(1), \s-1USD\s0:17\*(tx15 +.X "context, Directory" +\s-1PS1\s0:6\*(tx24,27 +.X "context editor" +\s-1USD\s0:18\*(tx1 +.X "context files" +\s-1USD\s0:8\*(tx6,27,85,87,89 +.X "context, MH" +\s-1USD\s0:8\*(tx20,85,89 +.X "context, previous" +\s-1USD\s0:15\*(tx4 +.X "context, process" +sigreturn(2), sigvec(2)\*(tx1, signal(3c)\*(tx2 +.X "context, root directory" +\s-1PS1\s0:6\*(tx27 +.X "context search expressions" +\s-1USD\s0:12\*(tx7 +.X "context search in reverse direction" +\s-1USD\s0:12\*(tx10 +.X "context searching" +\s-1USD\s0:1\*(tx11, \s-1USD\s0:12\*(tx1,6..9, \s-1USD\s0:13\*(tx8..9, \s-1USD\s0:14\*(tx16,19, \s-1USD\s0:18\*(tx6 +.X "context sensitivity" +\s-1PS1\s0:16\*(tx4,11 +.X "context switch" +systat(1)\*(tx3, getrusage(2), \s-1SMM\s0:13\*(tx8,19 +.X "context, user" +\s-1USD\s0:8\*(tx2,89 +.X "context\*(txfree grammar" +yacc(1) +.X "continuation conventions" +\s-1PS1\s0:15\*(tx1, \s-1PS2\s0:6\*(tx27, \s-1PS2\s0:8\*(tx3 +.X "continuation line" +struct(1) +.X "continue \*(tx Bourne shell command" +sh(1)\*(tx1, \s-1USD\s0:4\*(tx36 +.X "continue after stop" +signal(3c)\*(tx1 +.X "continue shell command" +csh(1)\*(tx10 +.X "continue signal" +csh(1)\*(tx13, abs(3) +.X "continue statement" +\s-1PS1\s0:1\*(tx23 +.X "continue\*(txprocess" +\s-1USD\s0:17\*(tx28 +.X "control blocks" +\s-1SMM\s0:15\*(tx23 +.X "control characters" +col(1), jove(1)\*(tx3, lpr(1), stty(1)\*(tx1, \s-1USD\s0:4\*(tx36,43, \s-1USD\s0:15\*(tx4,9,20..21, \s-1USD\s0:16\*(tx9,15, \s-1USD\s0:17\*(tx2,4,24, \s-1USD\s0:24\*(tx3,8,11..12,20, \s-1USD\s0:30\*(tx10, ctype(3), tty(4)\*(tx3,10, termcap(5)\*(tx6, \s-1PS1\s0:3\*(tx4, \s-1PS1\s0:6\*(tx38, \s-1PS1\s0:16\*(tx4, \s-1PS2\s0:3\*(tx16, \s-1PS2\s0:4\*(tx6, \s-1PS2\s0:10\*(tx32,79, \s-1SMM\s0:6\*(tx5, \s-1SMM\s0:12\*(tx7 +.X "control, congestion" +\s-1SMM\s0:15\*(tx20,24 +.X "control flow" +\s-1USD\s0:3\*(tx1, \s-1PS2\s0:6\*(tx1 +.X "control flow in the shell" +\s-1USD\s0:3\*(tx5 +.X "control information" +\s-1PS1\s0:9\*(tx8, \s-1PS2\s0:5\*(tx3 +.X "control key" +\s-1USD\s0:4\*(tx3,36, \s-1USD\s0:15\*(tx4, \s-1USD\s0:17\*(tx2 +.X "control line" +\s-1PS1\s0:1\*(tx26..27 +.X "control messages" +\s-1SMM\s0:10\*(tx3,16..19 +.X "control process" +rcmd(3), rexec(3) +.X "control statements" +f77(1)\*(tx2, \s-1USD\s0:6\*(tx5..6 +.X "control status registers" +\s-1SMM\s0:1\*(tx57, \s-1SMM\s0:2\*(tx10 +.X "control structures" +\s-1USD\s0:4\*(tx29, tty(4)\*(tx10 +.X "control terminals" +ps(1)\*(tx1, execve(2), getpgrp(2), vhangup(2), flush(3f), signal(3c)\*(tx1, ttyname(3), tty(4)\*(tx1..2,5,9 +.X "controller, Ethernet" +\s-1SMM\s0:13\*(tx30..31 +.X "controllers, disk" +\s-1SMM\s0:1\*(tx29, \s-1SMM\s0:14\*(tx9 +.X "controllers, memory" +autoconf(4), \s-1SMM\s0:1\*(tx25, \s-1SMM\s0:13\*(tx18 +.X "controllers, UNIBUS" +\s-1SMM\s0:1\*(tx5, \s-1SMM\s0:2\*(tx9..10,13,17,21 +.X "controlling terminal" +nice(1), syslog(3), tty(4)\*(tx1, \s-1PS1\s0:8\*(tx18..19,28, routed(8c)\*(tx2, XNSrouted(8c) +.X "controls, access" +core(5), lpd(8), \s-1SMM\s0:6\*(tx3..4 +.X "controls, administrative" +\s-1SMM\s0:1\*(tx42, \s-1SMM\s0:8\*(tx2, \s-1SMM\s0:14\*(tx2 +.X "controls, resource" +\s-1SMM\s0:1\*(tx1,50 +.X "conventions, Calling" +pc(1), \s-1SMM\s0:13\*(tx11, \s-1SMM\s0:15\*(tx17..18 +.X "conventions, escaping" +csh(1)\*(tx1, \s-1USD\s0:13\*(tx3 +.X "conventions, file naming" +ftp(1c)\*(tx3..6, \s-1PS1\s0:12\*(tx5 +.X "conventions, mathematical" +\s-1USD\s0:26\*(tx2, \s-1USD\s0:27\*(tx5,7 +.X "conventions, quoting" +csh(1)\*(tx1,5, expr(1), \s-1USD\s0:3\*(tx7,15..16, \s-1USD\s0:17\*(tx4, \s-1USD\s0:26\*(tx4 +.X "conversation mode" +window(1)\*(tx2 +.X "conversation sequence count" +\s-1SMM\s0:9\*(tx19 +.X "converse with another user" +talk(1) +.X "conversion, analog\*(txdigital" +ad(4) +.X "conversion, arithmetic" +\s-1SMM\s0:19\*(tx20,24 +.X "conversion characters" +printf(3s), scanf(3s) +.X "conversion command, case" +\s-1USD\s0:17\*(tx1 +.X "conversion, float to double" +cc(1)\*(tx2 +.X "conversion, long, short \*(tx integer object" +long(3f) +.X "conversion of floating values" +\s-1PS1\s0:1\*(tx5 +.X "conversion of numbers from one base to another base" +\s-1USD\s0:6\*(tx1 +.X "conversion of old Fortran or Ratfor programs to EFL" +\s-1PS2\s0:6\*(tx24 +.X "conversion operators" +\s-1SMM\s0:19\*(tx2,8..11,18 +.X "conversion, output" +\s-1USD\s0:6\*(tx3, ecvt(3), printf(3s) +.X "conversion, printf, fprintf, sprintf \*(tx formatted output" +printf(3s) +.X "conversion program" +units(1) +.X "conversion, scanf, fscanf, sscanf \*(tx formatted input" +scanf(3s) +.X "conversion, short \*(tx integer object" +long(3f) +.X "conversion, signed" +printf(3s) +.X "conversion specifications" +printf(3s), scanf(3s) +.X "conversion, type" +\s-1SMM\s0:19\*(tx9 +.X "conversions, arithmetic" +\s-1PS1\s0:1\*(tx4..5,8..11,22, \s-1PS2\s0:10\*(tx7 +.X "convert archives to random libraries" +ranlib(1) +.X "convert ASCII to EBCDIC" +dd(1) +.X "convert ASCII to numbers" +atof(3) +.X "convert EBCDIC to ASCII" +dd(1) +.X "convert to lower case" +dd(1) +.X "convert to upper case" +dd(1) +.X "converting data" +\s-1USD\s0:19\*(tx6 +.X "converting from 4.2BSD to 4.3BSD" +\s-1SMM\s0:1\*(tx22 +.X "converting pre\*(tx4.2BSD Systems" +\s-1SMM\s0:1\*(tx7 +.X "converting values" +\s-1PS1\s0:10\*(tx12 +.X "cooked mode" +stty(1)\*(tx1, tset(1)\*(tx3, tty(4)\*(tx2..4, \s-1PS1\s0:6\*(tx38 +.X "cookie, magic" +fseek(3s), termcap(5)\*(tx10,13 +.X "cooperating processes" +flock(2), pipe(2), \s-1PS1\s0:6\*(tx31, \s-1PS1\s0:7\*(tx1..2, \s-1PS2\s0:3\*(tx9 +.X "copies, carbon" +mail(1)\*(tx4, \s-1USD\s0:7\*(tx3,9, \s-1USD\s0:9\*(tx3 +.X "copies, master" +rdist(1) +.X "copies, multiple" +lpr(1), \s-1USD\s0:18\*(tx6, printcap(5) +.X "copies, third party" +rcp(1c) +.X "copy \*(tx copy data into/from a relation from/into a UNIX file" +\s-1PS2\s0:10\*(tx8 +.X "copy a message" +\s-1USD\s0:8\*(tx6 +.X "copy command" +mail(1)\*(tx2, \s-1USD\s0:7\*(tx6,13, \s-1USD\s0:14\*(tx14 +.X "copy files" +cp(1), rcp(1c), uucp(1c), \s-1USD\s0:13\*(tx12, \s-1USD\s0:15\*(tx3 +.X "copy mode" +\s-1USD\s0:24\*(tx15..20 +.X "copy operations" +ifconfig(8c), \s-1SMM\s0:14\*(tx10, \s-1SMM\s0:15\*(tx26 +.X "copy, tape to tape" +\s-1SMM\s0:12\*(tx12 +.X "copy, uucp \*(tx unix to unix" +uucp(1c) +.X "copydb \*(tx create batch files to copy out a data base and restore it" +\s-1PS2\s0:10\*(tx46 +.X "copying lines" +\s-1USD\s0:13\*(tx15, \s-1USD\s0:14\*(tx14 +.X "copying subtrees of files" +cp(1) +.X "copy\*(txregion (ESC W)" +\s-1USD\s0:17\*(tx29 +.X "copyrighted works" +\s-1USD\s0:10\*(tx4 +.X "core \*(tx format of memory image file" +adb(1)\*(tx1, vlimit(3c), core(5) +.X "core dump" +csh(1)\*(tx13, refer(1), vmh(1), \s-1USD\s0:3\*(tx19, \s-1USD\s0:4\*(tx36, \s-1USD\s0:8\*(tx30,69, \s-1USD\s0:11\*(tx14, abort(3), vlimit(3c), \s-1PS1\s0:11\*(tx2..3, \s-1PS2\s0:9\*(tx81, crash(8v)\*(tx3, rc(8), savecore(8), \s-1SMM\s0:12\*(tx2..3,6,21 +.X "core file" +adb(1)\*(tx1,5, f77(1)\*(tx2, lastcomm(1), pxp(1), \s-1USD\s0:4\*(tx10,42, getrlimit(2), abort(3f), tty(4)\*(tx5, core(5), \s-1PS1\s0:2\*(tx6, \s-1PS1\s0:6\*(tx13, \s-1PS1\s0:10, \s-1PS1\s0:11\*(tx3, \s-1PS2\s0:1\*(tx13, \s-1PS2\s0:3\*(tx10, savecore(8), trpt(8c), trsp(8c), \s-1SMM\s0:1\*(tx23, \s-1SMM\s0:12\*(tx7 +.X "core images" +gcore(1), od(1), \s-1USD\s0:11\*(tx14, ptrace(2), sigvec(2)\*(tx2, wait(2), execl(3), signal(3c), tty(4)\*(tx5, a.out(5), core(5), \s-1PS1\s0:4\*(tx26, \s-1PS1\s0:6\*(tx13, \s-1PS1\s0:10\*(tx3..4, \s-1PS1\s0:11\*(tx1, \s-1PS2\s0:5\*(tx6..7, \s-1PS2\s0:9\*(tx132, crash(8v)\*(tx3, icheck(8), pstat(8)\*(tx3, savecore(8) +.X "core map" +\s-1SMM\s0:13\*(tx3 +.X "correcting typing mistakes" +\s-1USD\s0:1\*(tx1 +.X "correction, ECC" +\s-1SMM\s0:1\*(tx8, \s-1SMM\s0:2\*(tx21, \s-1SMM\s0:13\*(tx31 +.X "corrections, Making" +\s-1USD\s0:14\*(tx2,6,8, \s-1USD\s0:15\*(tx7 +.X "cos \*(tx trigonometric function" +bc(1), sin(3m) +.X "cosh \*(tx hyperbolic function" +sinh(3m) +.X "count blocks in a file" +sum(1) +.X "count characters" +wc(1), \s-1USD\s0:15\*(tx27 +.X "count fields" +rmt(8c), \s-1SMM\s0:13\*(tx15 +.X "count lines" +wc(1) +.X "count, residual" +\s-1USD\s0:24\*(tx13 +.X "count words" +wc(1) +.X "counter, line\*(txnumber" +\s-1USD\s0:18\*(tx3,5 +.X "counter, location" +\s-1PS1\s0:5\*(tx4..5,8..11, \s-1SMM\s0:19\*(tx3,10,20 +.X "counter, program" +profil(2), monitor(3), \s-1SMM\s0:2\*(tx6 +.X "counts, call" +gprof(1), prof(1), monitor(3) +.X "counts, character" +mail(1)\*(tx4, \s-1USD\s0:12\*(tx2 +.X "counts, raw I/O" +hp(4)\*(tx1, uda(4)\*(tx1, up(4)\*(tx1 +.X "counts, repeat" +adb(1)\*(tx3, \s-1USD\s0:17\*(tx5,12 +.X "Courier dispatch process" +\s-1PS1\s0:8\*(tx17 +.X "Courier (Xerox remote procedure call protocol)" +\s-1PS1\s0:8\*(tx12..14,40 +.X "cover sheets" +\s-1USD\s0:20\*(tx1..2,5 +.X "cp \*(tx copy files" +cp(1), \s-1USD\s0:1\*(tx6, \s-1USD\s0:13\*(tx12, \s-1SMM\s0:12\*(tx4 +.X "cpile \*(tx centered pile" +\s-1USD\s0:27\*(tx7 +.X "cpio" +find(1) +.X "CP/M" +\s-1SMM\s0:12\*(tx23 +.X "cpp" +error(1)\*(tx1 +.X "CPU, halting the" +cons(4) +.X "cpu time" +lastcomm(1), ps(1)\*(tx1, time(1), w(1), \s-1USD\s0:4\*(tx11,23..24,42, getrlimit(2), vtimes(3c), \s-1PS1\s0:6\*(tx21 +.X "CPU time limit" +getrlimit(2), sigvec(2)\*(tx2, signal(3c)\*(tx1, vlimit(3c), \s-1PS1\s0:6\*(tx13 +.X "cpu type" +autoconf(4), \s-1SMM\s0:2\*(tx2..4,7, \s-1SMM\s0:13\*(tx17..18 +.X "cpu utilization" +ps(1)\*(tx2, systat(1)\*(tx1, \s-1SMM\s0:1\*(tx48 +.X "crash \*(tx what happens when the system crashes" +crash(8v)\*(tx1 +.X "crash, recovering after an editor or system" +\s-1USD\s0:16\*(tx1 +.X "crash, Recovering files lost in a" +\s-1USD\s0:14\*(tx2,18,21 +.X "crashes, Recovering from hangups and" +\s-1USD\s0:16\*(tx3, \s-1USD\s0:17\*(tx15 +.X "crashes, system" +jove(1)\*(tx2, \s-1USD\s0:13\*(tx9, \s-1USD\s0:14\*(tx21, \s-1USD\s0:15\*(tx14, \s-1USD\s0:16\*(tx1,3,9, crash(8v), rc(8), sendmail(8)\*(tx3, \s-1SMM\s0:1\*(tx65, \s-1SMM\s0:2\*(tx26, \s-1SMM\s0:3, \s-1SMM\s0:14\*(tx12 +.X "creat \*(tx create a new file" +creat(2) +.X "creatdb \*(tx create a data base" +\s-1PS2\s0:10\*(tx46 +.X "create \*(tx create a new relation" +\s-1PS2\s0:10\*(tx11 +.X "create a new file" +\s-1USD\s0:1\*(tx4, open(2), \s-1SMM\s0:13\*(tx12 +.X "create a new window" +window(1)\*(tx2 +.X "create a pipe" +popen(3) +.X "create new message" +\s-1USD\s0:8\*(tx4 +.X "create, open with file" +\s-1PS1\s0:6\*(tx28 +.X "create socket" +\s-1PS1\s0:7\*(tx7..17,20..21 +.X "creating a boot floppy or cassette" +\s-1SMM\s0:1\*(tx14,24 +.X "creating a branch" +\s-1PS1\s0:14\*(tx10 +.X "creating a new newsgroup" +\s-1USD\s0:10\*(tx6 +.X "creating a printcap file" +\s-1SMM\s0:6\*(tx3 +.X "creating and selecting buffers" +\s-1USD\s0:17\*(tx16 +.X "creating deltas" +\s-1PS1\s0:14\*(tx3 +.X "creating new newsgroups" +\s-1USD\s0:9\*(tx6 +.X "creating new releases" +\s-1PS1\s0:14\*(tx5 +.X "creating references to devices" +\s-1PS1\s0:6\*(tx28 +.X "creating SCCS files" +\s-1PS1\s0:14\*(tx2 +.X "creating text" +\s-1USD\s0:12\*(tx1, \s-1USD\s0:14\*(tx3 +.X "creating the configuration" +\s-1SMM\s0:1\*(tx12 +.X "creation dates" +diff(1), ranlib(1), \s-1USD\s0:3\*(tx2 +.X "creation, limit on file size" +\s-1PS1\s0:6\*(tx13 +.X "creation, Process" +tty(4)\*(tx5, \s-1SMM\s0:13\*(tx7 +.X "creation time" +\s-1SMM\s0:7\*(tx14, \s-1SMM\s0:12\*(tx22 +.X "critical conditions" +syslog(3) +.X "critical section" +sigpause(2), \s-1PS1\s0:6\*(tx14 +.X "crl \*(tx VAX 8600 console RL02 interface" +crl(4) +.X "CRMOD" +tty(4)\*(tx3, telnetd(8c), \s-1SMM\s0:20\*(tx3 +.X "crmode()" +\s-1PS1\s0:18\*(tx12 +.X "cron \*(tx clock daemon" +at(1), calendar(1), cron(8), \s-1SMM\s0:9\*(tx20, \s-1SMM\s0:12\*(tx20 +.X "crontab" +cron(8), uucico(8c), uupoll(8c), \s-1SMM\s0:12\*(tx19 +.X "cross reference listing" +liszt(1), lxref(1), pxref(1) +.X "cross\*(txdevice links" +rename(2) +.X "CRT" +mail(1)\*(tx6 +.X "CRT previewing, colcrt \*(tx filter nroff output for" +colcrt(1) +.X "CRT terminals" +colcrt(1), ex(1), stty(1)\*(tx2, tset(1)\*(tx2, \s-1USD\s0:4\*(tx4, \s-1USD\s0:7\*(tx16, tty(4)\*(tx3, termcap(5)\*(tx6 +.X "crypt \*(tx encode/decode" +crypt(1), \s-1SMM\s0:12\*(tx4, \s-1SMM\s0:17\*(tx2 +.X "crypt, setkey, encrypt \*(tx DES encryption" +crypt(3) +.X "csh \*(tx a shell (command interpreter) with C\*(txlike syntax" +csh(1)\*(tx1, vgrind(1), \s-1USD\s0:7\*(tx2, \s-1SMM\s0:1\*(tx23, \s-1SMM\s0:12\*(tx4 +.X "csh, startup file for" +hier(7)\*(tx5 +.X "CSNET" +mailaddr(7)\*(tx2, \s-1USD\s0:7\*(tx10, \s-1SMM\s0:11\*(tx3..4 +.X "css \*(tx DEC IMP\*(tx11A LH/DH IMP interface" +css(4) +.X "ct \*(tx phototypesetter interface" +ct(4) +.X "ctags \*(tx create a tags file" +ctags(1), jove(1)\*(tx2, \s-1USD\s0:15\*(tx19, \s-1USD\s0:17\*(tx21, \s-1SMM\s0:12\*(tx4 +.X "ctime \*(tx return system time" +ctime(3), fdate(3f), time(3f), \s-1SMM\s0:12\*(tx14 +.X "ctlinput routine" +\s-1SMM\s0:13\*(tx24,27,29 +.X "ctloutput routines" +\s-1SMM\s0:13\*(tx23..24, \s-1SMM\s0:15\*(tx17 +.X "ctype" +\s-1SMM\s0:12\*(tx15 +.X "cu \*(tx connect to a remote system" +tip(1c)\*(tx1 +.X "cube root" +sqrt(3m) +.X "currency conversion" +units(1) +.X "current directory (see also current working)" +csh(1)\*(tx11, \s-1USD\s0:3\*(tx3 +.X "current file" +\s-1USD\s0:16\*(tx2 +.X "current file name" +\s-1USD\s0:16\*(tx7 +.X "current input file, input line number in the" +\s-1USD\s0:24\*(tx25 +.X "current line" +ed(1)\*(tx2, \s-1USD\s0:12\*(tx4 +.X "current location in the buffer" +\s-1USD\s0:14\*(tx10 +.X "current message" +mh(1)\*(tx1 +.X "current process" +w(1) +.X "current window, Move the cursor of the" +window(1)\*(tx3 +.X "current working directory (see also directory, current)" +chdir(2), getwd(3) +.X "current\*(txerror" +\s-1USD\s0:17\*(tx29 +.X "Current\*(txFolder" +\s-1USD\s0:8\*(tx9..10,85 +.X "curses \*(tx screen functions with ``optimal'' cursor motion" +curses(3x) +.X "curses library" +\s-1PS1\s0:18, \s-1SMM\s0:12\*(tx15 +.X "cursor addressing" +termcap(5)\*(tx7 +.X "cursor, graphics" +lib2648(3x)\*(tx3 +.X "cursor motion" +\s-1USD\s0:15\*(tx24, \s-1USD\s0:17\*(tx4, curses(3x), termcap(5)\*(tx6..9 +.X "cursor motion optimization" +curses(3x), \s-1PS1\s0:18\*(tx3,6 +.X "cursor movement optimization: a library package, screen updating and" +\s-1PS1\s0:18 +.X "cursor position" +window(1)\*(tx2, \s-1USD\s0:15\*(tx23..28, \s-1USD\s0:16\*(tx17, termcap(5)\*(tx8,12 +.X "cursor, window" +window(1)\*(tx5..7 +.X "customization, MH" +\s-1USD\s0:8\*(tx85 +.X "customizing JOVE" +\s-1USD\s0:17\*(tx22 +.X "cut and paste" +\s-1USD\s0:13\*(tx11 +.X "cut mark" +ms(7)\*(tx1, \s-1USD\s0:23\*(tx2, \s-1USD\s0:24\*(tx28 +.X "CW column width" +\s-1USD\s0:20\*(tx5 +.X "CWD environment variable" +jove(1)\*(tx1 +.X "cwd shell variable" +csh(1)\*(tx17, \s-1USD\s0:4\*(tx36 +.X "cylinder group" +fs(5), mkfs(8), newfs(8), tunefs(8), \s-1SMM\s0:5\*(tx4, \s-1SMM\s0:14\*(tx4..9 +.X "cylinder group bookkeeping information" +mount(2), fs(5)\*(tx3, dumpfs(8), \s-1SMM\s0:5\*(tx4, \s-1SMM\s0:14\*(tx4 +.L D +.X "daddr_t" +types(5) +.X "daemon (see also server)" +syslog(3), sendmail(8)\*(tx1, \s-1SMM\s0:1\*(tx21, \s-1SMM\s0:12\*(tx2 +.X "daemon, clock" +systat(1)\*(tx3, cron(8) +.X "daemon, cron \*(tx clock" +cron(8) +.X "daemon, Internet" +inetd(8), \s-1SMM\s0:1\*(tx41..43 +.X "daemon, lpd \*(tx line printer" +lpq(1), lpc(8), lpd(8), \s-1SMM\s0:6\*(tx2,5 +.X "daemon, master time" +\s-1SMM\s0:8\*(tx2 +.X "daemon messages" +syslog(3) +.X "daemon processes" +syslog(3), lpd(8), \s-1SMM\s0:1\*(tx21, \s-1SMM\s0:12\*(tx19,21, \s-1SMM\s0:14\*(tx12 +.X "daemon, routed \*(tx network routing" +intro(4n)\*(tx2, htable(8), route(8c), routed(8c), \s-1SMM\s0:1\*(tx40, \s-1SMM\s0:15\*(tx22 +.X "daemon, slave time" +\s-1SMM\s0:8\*(tx2, \s-1SMM\s0:22\*(tx2 +.X "daemon, spooling" +lpr(1), lpc(8), \s-1SMM\s0:6\*(tx5, \s-1SMM\s0:14\*(tx9 +.X "daemon, terminal access" +\s-1USD\s0:8\*(tx38 +.X "daemon, timed \*(tx time server" +timed(8), \s-1SMM\s0:8, \s-1SMM\s0:22\*(tx2..9 +.X "daemon, XNSrouted \*(tx NS Routing Information Protocol" +XNSrouted(8c) +.X "daemons, rc \*(tx command script for auto\*(txreboot and" +rc(8) +.X "daisy wheel type printer" +\s-1USD\s0:23\*(tx2 +.X "DARPA Internet address (see also Internet address)" +gethostid(2), ifconfig(8c) +.X "DARPA Internet user name directory service" +whois(1) +.X "DARPA standard Internet protocols" +\s-1PS1\s0:8\*(tx11 +.X "DARPA TELNET protocol server, telnetd \*(tx" +telnetd(8c) +.X "DARPA Trivial File Transfer Protocol server, tftpd \*(tx" +tftpd(8c) +.X "dashes" +\s-1USD\s0:21\*(tx2 +.X "DASI 300" +nroff(1), plot(1g) +.X "DASI\*(tx450 (Diablo Hyterm)" +nroff(1), plot(1g) +.X "data and maintenance utilities" +hier(7)\*(tx1 +.X "data areas" +\s-1PS1\s0:6\*(tx10, \s-1PS1\s0:8\*(tx32, \s-1PS2\s0:5\*(tx4 +.X "data base, host and network name" +\s-1SMM\s0:1\*(tx42 +.X "data base (see also specific database names)" +newaliases(1), \s-1USD\s0:30\*(tx1,10, \s-1USD\s0:32\*(tx1,7, dbm(3x), ndbm(3), intro(4n)\*(tx2, gettytab(5)\*(tx1, printcap(5), vgrindefs(5), \s-1PS2\s0:5\*(tx4, \s-1PS2\s0:10\*(tx4,11,15..16,46,52,56,59..62,76, named(8), \s-1SMM\s0:11\*(tx4,6,14 +.X "Data Base Utility error message summary" +\s-1PS2\s0:10\*(tx84 +.X "data, binary" +\s-1USD\s0:8\*(tx82, \s-1SMM\s0:16\*(tx5 +.X "data blocks" +fs(5), \s-1SMM\s0:5\*(tx3..4,7, \s-1SMM\s0:14\*(tx3..4,7..10 +.X "data buffers" +\s-1SMM\s0:13\*(tx14, \s-1SMM\s0:15\*(tx8 +.X "data definitions" +\s-1PS1\s0:1\*(tx24..26 +.X "data elements" +\s-1PS2\s0:9\*(tx27..28,108 +.X "data fields" +\s-1SMM\s0:11\*(tx6 +.X "data map" +\s-1PS1\s0:10\*(tx15 +.X "data objects" +\s-1PS2\s0:9\*(tx18..19,62,111, \s-1SMM\s0:15\*(tx4 +.X "data, out\*(txof\*(txband" +\s-1PS1\s0:6\*(tx33, \s-1PS1\s0:7\*(tx19, \s-1PS1\s0:8\*(tx8..9,24..25,36 +.X "data packets" +\s-1SMM\s0:15\*(tx3,23 +.X "data pages" +execve(2), core(5), \s-1SMM\s0:15\*(tx14,26 +.X "data, priority" +\s-1PS1\s0:7\*(tx22 +.X "data queues" +\s-1SMM\s0:15\*(tx6..7 +.X "data representations" +\s-1SMM\s0:19\*(tx3 +.X "data segment size" +adb(1)\*(tx5 +.X "data segments" +adb(1)\*(tx5, as(1), ld(1), size(1), systat(1)\*(tx2, brk(2), getrlimit(2), getrusage(2), a.out(5), dbx(5)\*(tx1, \s-1PS1\s0:5\*(tx2,4..6,13, \s-1PS1\s0:10\*(tx9..11, \s-1PS2\s0:4\*(tx2..3, \s-1SMM\s0:2\*(tx31..32, \s-1SMM\s0:13\*(tx16,26 +.X "data sizes" +getrusage(2), a.out(5)\*(tx2, \s-1SMM\s0:13\*(tx20 +.X "data space" +\s-1USD\s0:4\*(tx24, brk(2), \s-1PS1\s0:10\*(tx9..10, \s-1PS1\s0:14\*(tx5, \s-1PS2\s0:9\*(tx108,111 +.X "data statements" +\s-1PS1\s0:2\*(tx8,19,21, \s-1PS1\s0:5\*(tx6 +.X "data stream" +\s-1PS1\s0:8\*(tx24..25, \s-1SMM\s0:15\*(tx25 +.X "data stream type" +spp(4p) +.X "data structure sizing rule, kernel" +\s-1SMM\s0:2\*(tx30 +.X "data structures" +\s-1PS1\s0:4\*(tx6, \s-1PS2\s0:1\*(tx14, \s-1PS2\s0:4\*(tx5,8, \s-1PS2\s0:7\*(tx29, \s-1PS2\s0:9\*(tx10,108 +.X "data symbols" +\s-1PS1\s0:5\*(tx6, \s-1PS1\s0:10\*(tx13 +.X "data terminal ready" +tty(4)\*(tx4 +.X "data transformer" +\s-1USD\s0:19\*(tx6 +.X "data types" +types(5), \s-1PS1\s0:1\*(tx19, \s-1PS1\s0:2\*(tx6, \s-1PS1\s0:3\*(tx3, \s-1PS1\s0:5\*(tx6,10, \s-1PS2\s0:6\*(tx11, \s-1PS2\s0:9\*(tx3..4,76,78..80,108, \s-1PS2\s0:10\*(tx32, \s-1SMM\s0:19\*(tx22 +.X "data, urgent" +\s-1PS1\s0:8\*(tx24..25 +.X "data validation" +\s-1USD\s0:19\*(tx6 +.X "Database Administrator" +\s-1PS2\s0:10\*(tx47..49,59 +.X "database, alias" +sendmail(8), \s-1SMM\s0:7\*(tx7,10..11,16,28,30,38, \s-1SMM\s0:16\*(tx7 +.X "database, bibliographic" +addbib(1), bib(1), refer(1), roffbib(1), \s-1USD\s0:29\*(tx1..5,8 +.X "database, destroydb \*(tx destroy an existing" +\s-1PS2\s0:10\*(tx49 +.X "database, hashed" +\s-1SMM\s0:12\*(tx2,15 +.X "database, helpr \*(tx get information about a" +\s-1PS2\s0:10\*(tx55 +.X "database, host" +mkhosts(8) +.X "database names" +\s-1PS2\s0:10\*(tx49,57..61 +.X "database of constant strings" +xstr(1) +.X "database of filenames" +find(1), \s-1SMM\s0:1\*(tx23 +.X "database, password" +mkpasswd(8) +.X "database, printcap" +\s-1SMM\s0:6 +.X "database relation" +\s-1PS2\s0:10\*(tx4,55,58 +.X "database, relational" +join(1) +.X "database, whatis" +catman(8), \s-1SMM\s0:12\*(tx9 +.X "databases, multiple" +\s-1SMM\s0:7\*(tx36, \s-1SMM\s0:12\*(tx16 +.X "datagram protocols" +udp(4p), \s-1SMM\s0:15\*(tx16 +.X "datagram, Sending an Internet domain" +\s-1PS1\s0:7\*(tx11,14 +.X "datagram servers" +inetd(8) +.X "datagram sockets" +connect(2), getsockopt(2), intro(2)\*(tx4, inet(4f), \s-1PS1\s0:6\*(tx33..34, \s-1PS1\s0:7\*(tx8,11..12,19, \s-1PS1\s0:8\*(tx3..4,8..9,20,32..35, inetd(8), \s-1SMM\s0:13\*(tx13,15, \s-1SMM\s0:15\*(tx8 +.X "datagrams" +connect(2), getsockopt(2), socket(2), rcmd(3), rexec(3), intro(4n)\*(tx1, \s-1PS1\s0:6\*(tx33, \s-1SMM\s0:13\*(tx13..14,29, \s-1SMM\s0:15\*(tx17,25 +.X "datagrams in the UNIX domain" +\s-1PS1\s0:7\*(tx8 +.X "datagrams, receive" +\s-1PS1\s0:6\*(tx34 +.X "datagrams, sending" +socket(2), \s-1PS1\s0:7\*(tx22 +.X "Datakit" +L\*(txdevices(5) +.X "datastream type" +\s-1PS1\s0:8\*(tx36..39 +.X "date" +\s-1USD\s0:1\*(tx2, fdate(3f), \s-1SMM\s0:7\*(tx20,32 +.X "Date:" +\s-1USD\s0:8\*(tx83 +.X "date \*(tx print and set the date" +date(1), \s-1USD\s0:4\*(tx4, \s-1USD\s0:23\*(tx9, \s-1SMM\s0:12\*(tx4 +.X "date and time to ASCII" +ctime(3) +.X "date at the bottom of each page" +\s-1USD\s0:20\*(tx5 +.X "date, creation" +diff(1), ranlib(1), \s-1USD\s0:3\*(tx2 +.X "date, expiration" +\s-1SMM\s0:10\*(tx2,14..15 +.X "date fields" +\s-1USD\s0:8\*(tx33,47 +.X "date, files changed after a certain" +rdump(8c) +.X "date, modification" +ranlib(1), tp(1), ar(5) +.X "date, network" +\s-1SMM\s0:8\*(tx3, \s-1SMM\s0:22\*(tx4,7..8 +.X "date/time, checkin" +\s-1PS1\s0:13\*(tx8,20 +.X "day of the week" +\s-1USD\s0:23\*(tx9 +.X "daylight savings time" +ctime(3), \s-1SMM\s0:2\*(tx7 +.X "daytime service" +inetd(8) +.X "DBA" +\s-1PS2\s0:10\*(tx30,47..48,56,59..60,81 +.X "DBM" +ndbm(3), \s-1SMM\s0:7\*(tx36, \s-1SMM\s0:10\*(tx10, \s-1SMM\s0:12\*(tx15, \s-1SMM\s0:16\*(tx8 +.X "DBM files" +\s-1SMM\s0:7\*(tx16 +.X "dbm_open, dbm_close, dbm_fetch, dbm_store, ..." +ndbm(3) +.X "DBU" +\s-1PS2\s0:10\*(tx5,71 +.X "dbx \*(tx dbx symbol table information" +dbx(5)\*(tx1 +.X "dbx \*(tx debugger" +dbx(1)\*(tx1, gcore(1), pc(1), \s-1PS1\s0:2\*(tx6, \s-1PS1\s0:11\*(tx1, \s-1SMM\s0:12\*(tx2..4 +.X "dbxinit" +dbx(1)\*(tx1 +.X "DC \*(tx An Interactive Desk Calculator" +dc(1), \s-1USD\s0:5\*(tx1..2,6, mp(3x), termcap(5)\*(tx9 +.X "dcheck \*(tx file system directory consistency check" +dcheck(8), fsck(8) +.X "dd \*(tx convert and copy a file" +dd(1), reboot(8)\*(tx2, \s-1SMM\s0:1\*(tx32, \s-1SMM\s0:12\*(tx4 +.X "DDCMP, DEC" +dmc(4) +.X "ddn \*(tx DDN Standard Mode X.25 IMP interface" +ddn(4), \s-1SMM\s0:12\*(tx17 +.X "d_dprod" +\s-1SMM\s0:12\*(tx7 +.X "de \*(tx DEC DEUNA 10 Mb/s Ethernet interface" +de(4) +.X "dead.letter" +mail(1)\*(tx4, \s-1USD\s0:7\*(tx2,8, sendmail(8)\*(tx2 +.X "deadlock detection" +\s-1SMM\s0:14\*(tx12 +.X "de\*(txallocate inode" +\s-1SMM\s0:5\*(tx12..13,21 +.X "debug flags" +\s-1SMM\s0:7\*(tx13 +.X "debugger" +\s-1PS1\s0:18\*(tx8 +.X "debugger adb" +adb(1)\*(tx1, core(5) +.X "debugger, dbx \*(tx" +dbx(1)\*(tx1 +.X "debugger, pdx \*(tx pascal" +pdx(1)\*(tx1 +.X "debugger sdb" +cc(1)\*(tx1 +.X "debuggers, symbolic" +\s-1PS1\s0:4\*(tx37, \s-1PS1\s0:5\*(tx11, \s-1PS1\s0:11\*(tx1, \s-1SMM\s0:12\*(tx2, \s-1SMM\s0:19\*(tx4,12 +.X "debugging" +\s-1USD\s0:24\*(tx26, ptrace(2), abort(3) +.X "debugging aids" +\s-1PS1\s0:2\*(tx6, \s-1PS1\s0:10, \s-1PS1\s0:11, \s-1PS1\s0:17\*(tx6, \s-1PS2\s0:9\*(tx4 +.X "debugging C programs" +\s-1PS1\s0:10\*(tx3 +.X "debugging documents" +checknr(1) +.X "debugging eqn" +\s-1USD\s0:27\*(tx10 +.X "debugging, Kernel" +adb(1)\*(tx4, dbx(1)\*(tx1,5, crash(8v)\*(tx3 +.X "debugging, machine\*(txlevel" +dbx(1)\*(tx6 +.X "debugging messages" +syslog(3) +.X "debugging, network" +ping(8) +.X "debugging shell procedures" +\s-1USD\s0:3\*(tx13, \s-1USD\s0:4\*(tx44 +.X "Debugging with dbx" +\s-1PS1\s0:11\*(tx1 +.X "debugging, socket" +trpt(8c), trsp(8c) +.X "DEC CI780" +\s-1SMM\s0:1\*(tx2 +.X "DEC DDCMP" +dmc(4) +.X "DEC DEQNA" +qe(4) +.X "DEC DF02 or DF03 modem" +L\*(txdevices(5) +.X "DEC DF112 modem" +L\*(txdevices(5) +.X "DEC diagnostic supervisor" +format(8v)\*(tx1 +.X "DEC DMC\*(tx11" +dmc(4) +.X "DEC Gigi terminals" +plot(3x) +.X "DEC MACRO\*(tx32" +\s-1PS1\s0:5\*(tx12 +.X "DEC MicroVAXs" +math(3m)\*(tx2 +.X "DEC PDP\*(tx11" +\s-1PS1\s0:1\*(tx1,3 +.X "DEC RX01" +fl(4) +.X "DEC RX02 floppy disk" +rx(4) +.X "DEC TMSCP magtape interface" +tmscp(4) +.X "DEC TU58 tape cartridge drives" +uu(4) +.X "DEC VAX\*(tx11" +intro(4), \s-1PS1\s0:1, \s-1PS1\s0:1\*(tx3 +.X "DEC VAX\*(tx11 D_floating\*(txpoint" +math(3m)\*(tx2 +.X "DEC VMS compatibility" +stty(1)\*(tx2 +.X "DEC vt100 terminals" +sysline(1), plot(3x) +.X "DEC vt125 terminal" +plot(1g) +.X "decimal digits" +\s-1PS2\s0:9\*(tx8, \s-1PS2\s0:10\*(tx33 +.X "decimal dump" +od(1) +.X "decimal notation" +ns(3n), printf(3s) +.X "decimal point" +\s-1USD\s0:19\*(tx3, \s-1USD\s0:28\*(tx3, printf(3s), scanf(3s), \s-1PS1\s0:1\*(tx3, \s-1PS1\s0:2\*(tx23, \s-1PS1\s0:3\*(tx5, \s-1PS1\s0:4\*(tx27, \s-1SMM\s0:11\*(tx7 +.X "decimal, signed" +od(1) +.X "decimal, unsigned" +od(1) +.X "declaration, function" +lint(1), \s-1USD\s0:15\*(tx15..16 +.X "declaration parts" +pxp(1), \s-1PS1\s0:4\*(tx38 +.X "declaration, structure" +\s-1PS1\s0:1\*(tx17, \s-1PS2\s0:6\*(tx13,15 +.X "declarations" +\s-1PS1\s0:1\*(tx12,20,22,25,30,33, \s-1PS1\s0:2\*(tx18, \s-1PS2\s0:6\*(tx6..7,14..16,23 +.X "declarations, enumeration" +\s-1PS1\s0:1\*(tx7,17,25, \s-1SMM\s0:19\*(tx6 +.X "declarations, extern" +lint(1), \s-1SMM\s0:19\*(tx7 +.X "declarations, header" +\s-1SMM\s0:16\*(tx5,8 +.X "declarations, implicit" +\s-1PS1\s0:1\*(tx28, \s-1PS2\s0:6\*(tx25, \s-1PS2\s0:9\*(tx39 +.X "declarations, register" +\s-1PS1\s0:1\*(tx13, \s-1SMM\s0:19\*(tx8 +.X "declarations section" +\s-1PS1\s0:15\*(tx3..7,15,20..22,33 +.X "declarators" +\s-1PS1\s0:1\*(tx14 +.X "Decomposition error message summary" +\s-1PS2\s0:10\*(tx83 +.X "decrypt jokes" +\s-1USD\s0:10\*(tx10 +.X "decrypt the contents of the file, encrypt and" +\s-1USD\s0:16\*(tx2 +.X "DECtape" +tp(1), tp(5) +.X "def form" +\s-1PS2\s0:9\*(tx51,123 +.X "default:" +\s-1PS1\s0:1\*(tx22 +.X "default action for signal" +signal(3c)\*(tx2 +.X "default actions" +\s-1PS1\s0:6\*(tx13..14, \s-1PS1\s0:15\*(tx8,14, \s-1PS1\s0:16\*(tx5, \s-1PS2\s0:3\*(tx10..11, \s-1PS2\s0:10\*(tx34,56 +.X "default addresses" +ed(1)\*(tx2, \s-1USD\s0:16\*(tx4..5 +.X "default arguments" +sh(1)\*(tx2, \s-1USD\s0:3\*(tx5,9, \s-1USD\s0:4\*(tx15, \s-1USD\s0:8\*(tx6 +.X "default device" +reboot(8)\*(tx1, \s-1SMM\s0:1\*(tx45 +.X "default display" +netstat(1), systat(1)\*(tx1, \s-1SMM\s0:12\*(tx9 +.X "default domain name" +resolver(3) +.X "default draft folder" +\s-1USD\s0:8\*(tx17,19,25,59,72,86,102 +.X "default erase character" +tset(1)\*(tx2 +.X "default error handler" +lib2648(3x)\*(tx2 +.X "default file name" +ed(1)\*(tx3, \s-1USD\s0:17\*(tx2,14,48, \s-1USD\s0:33\*(tx9 +.X "default file systems" +dcheck(8), dump(8), icheck(8), quot(8), quotacheck(8) +.X "default files" +diction(1), mh(1)\*(tx1, refer(1), spell(1), \s-1USD\s0:32\*(tx7..9 +.X "default form" +\s-1USD\s0:8\*(tx57 +.X "default formats" +ftp(1c)\*(tx2, \s-1USD\s0:8\*(tx32..33,80,91,94, \s-1USD\s0:17\*(tx33, \s-1USD\s0:20\*(tx2, a.out(5)\*(tx2, diskpart(8), \s-1SMM\s0:7\*(tx19 +.X "default group id" +sendmail(8)\*(tx2, \s-1SMM\s0:7\*(tx30 +.X "default, input" +bib(1), grep(1), lex(1), sed(1)\*(tx1, struct(1), tc(1) +.X "default labels" +csh(1)\*(tx15 +.X "default length" +lptest(1), \s-1USD\s0:25\*(tx9 +.X "default line length" +ptx(1), \s-1USD\s0:28\*(tx5 +.X "default line numbers and the value of dot" +\s-1USD\s0:13\*(tx8 +.X "default list" +make(1)\*(tx1, fsck(8) +.X "default locations" +\s-1SMM\s0:2\*(tx3, \s-1SMM\s0:11\*(tx4 +.X "default message filter" +\s-1USD\s0:8\*(tx24,57 +.X "default message form" +\s-1USD\s0:8\*(tx16,18,23 +.X "default, MH" +\s-1USD\s0:8\*(tx26,54 +.X "default modes" +ftp(1c)\*(tx3, prof(1), \s-1SMM\s0:12\*(tx8, \s-1SMM\s0:16\*(tx9 +.X "default path" +man(1), sh(1)\*(tx4, catman(8) +.X "default point size" +\s-1USD\s0:22\*(tx18 +.X "default port" +telnet(1c)\*(tx1, \s-1USD\s0:8\*(tx48, \s-1PS2\s0:9\*(tx63..65,69..72, \s-1SMM\s0:7\*(tx19 +.X "default printer" +lpr(1), lprm(1), environ(7), printcap(5), pac(8) +.X "default programs" +\s-1USD\s0:8\*(tx66,71, \s-1SMM\s0:10\*(tx3 +.X "default protocol" +\s-1PS1\s0:7\*(tx8, \s-1PS1\s0:8\*(tx4,28 +.X "default radix" +adb(1)\*(tx1,4 +.X "default rewriting rules" +\s-1SMM\s0:19\*(tx16,21 +.X "default route" +\s-1SMM\s0:1\*(tx40, \s-1SMM\s0:12\*(tx21 +.X "default rule" +\s-1PS1\s0:13\*(tx4, \s-1PS1\s0:14\*(tx11, diskpart(8) +.X "default scale factor" +\s-1USD\s0:25\*(tx6 +.X "default settings" +\s-1USD\s0:16\*(tx1, \s-1USD\s0:20\*(tx5 +.X "default shell" +mail(1)\*(tx6, window(1)\*(tx6, \s-1USD\s0:8\*(tx88, \s-1USD\s0:17\*(tx45 +.X "default super\*(txblock" +\s-1SMM\s0:5\*(tx3,6, \s-1SMM\s0:14\*(tx4 +.X "default switches" +\s-1USD\s0:8\*(tx6,8,26 +.X "default table" +random(3), gettytab(5)\*(tx1, getty(8)\*(tx1 +.X "default type" +f77(1)\*(tx2, ftp(1c)\*(tx1,5 +.X "default units" +man(7), \s-1USD\s0:25\*(tx5,10 +.X "default values" +\s-1PS1\s0:2\*(tx26, \s-1PS1\s0:3\*(tx6, \s-1PS1\s0:4\*(tx44, \s-1PS2\s0:6\*(tx28, \s-1PS2\s0:9\*(tx82,127, \s-1PS2\s0:10\*(tx7..8,23..24,38 +.X "default versions" +setjmp(3) +.X "default whatnowproc" +\s-1USD\s0:8\*(tx18,57,88 +.X "default window size" +more(1)\*(tx2, \s-1USD\s0:15\*(tx17 +.X "defaulting system devices" +\s-1SMM\s0:2\*(tx26 +.X "define \*(tx define subschema" +\s-1PS2\s0:10\*(tx12 +.X "define a string" +\s-1USD\s0:24\*(tx16 +.X "define footer" +\s-1USD\s0:23\*(tx3 +.X "define footer, .ef" +\s-1USD\s0:23\*(tx3 +.X "define footer, .fo" +\s-1USD\s0:23\*(tx3 +.X "define footer, .of" +\s-1USD\s0:23\*(tx3 +.X "define header, .eh" +\s-1USD\s0:23\*(tx3 +.X "define header, .oh" +\s-1USD\s0:23\*(tx3 +.X "define or redefine the macro" +\s-1USD\s0:24\*(tx16 +.X "define your own commands" +\s-1USD\s0:17\*(tx24 +.X "defined names" +\s-1USD\s0:31\*(tx2 +.X "define\*(txglobal\*(txword\*(txabbrev" +\s-1USD\s0:17\*(tx29 +.X "define\*(txmode\*(txword\*(txabbrev" +\s-1USD\s0:17\*(tx29 +.X "define(name, stuff)" +\s-1PS1\s0:17\*(tx2 +.X "defining macros" +\s-1USD\s0:22\*(tx15, \s-1PS1\s0:17\*(tx2, \s-1PS2\s0:10\*(tx19, \s-1PS1\s0:1\*(tx26, \s-1PS1\s0:12\*(tx3..5, \s-1PS1\s0:16\*(tx6, \s-1PS2\s0:9\*(tx98,123..125,151, \s-1PS2\s0:10\*(tx26 +.X "defining text" +\s-1USD\s0:16\*(tx14 +.X "definition of a function" +\s-1USD\s0:6\*(tx4 +.X "definition of a string" +\s-1USD\s0:25\*(tx7 +.X "definitions, alias" +\s-1USD\s0:4\*(tx15, \s-1USD\s0:8\*(tx65,73 +.X "definitions, data" +\s-1PS1\s0:1\*(tx24..26 +.X "definitions, external" +\s-1PS1\s0:1\*(tx24 +.X "definitions, function" +\s-1PS1\s0:1\*(tx24, \s-1PS1\s0:9\*(tx3,9, \s-1PS2\s0:7\*(tx15, \s-1PS2\s0:9\*(tx24,28,70..71,98..99,108,116,120,123,128,140 +.X "definitions, header" +\s-1SMM\s0:7\*(tx37, \s-1SMM\s0:16\*(tx8 +.X "definitions, mailer" +\s-1SMM\s0:7\*(tx17,23,32, \s-1SMM\s0:16\*(tx5,8 +.X "definitions section" +\s-1PS1\s0:16\*(tx8..9,12..13 +.X "definitions, troff macro" +me(7)\*(tx1, ms(7)\*(tx1, \s-1USD\s0:24\*(tx15, \s-1USD\s0:31\*(tx8 +.X "definitions, view" +\s-1PS2\s0:10\*(tx16,80 +.X "delay" +stty(1)\*(tx2, tty(4)\*(tx4, gettytab(5)\*(tx2, L.sys(5)\*(tx3, termcap(5)\*(tx11, \s-1SMM\s0:9\*(tx16 +.X "delayed suspend process character" +stty(1)\*(tx3 +.X "delayed text" +\s-1USD\s0:22\*(tx8 +.X "delayed text, .(d Begin" +\s-1USD\s0:23\*(tx5 +.X "delayed text, .)d n End" +\s-1USD\s0:23\*(tx5 +.X "delayed text number" +\s-1USD\s0:23\*(tx9 +.X "delayed text, .pd Print" +\s-1USD\s0:23\*(tx5 +.X "delch()" +\s-1PS1\s0:18\*(tx9 +.X "delete a route" +route(8c) +.X "delete breakpoint" +\s-1PS1\s0:10\*(tx6,27 +.X "delete commands" +ed(1)\*(tx3, \s-1USD\s0:14\*(tx15, \s-1USD\s0:17\*(tx7 +.X "delete lines" +\s-1USD\s0:18\*(tx4 +.X "delete\*(txblank\*(txlines (C\*(txX C\*(txO)" +\s-1USD\s0:17\*(tx29 +.X "delete\*(txbuffer (C\*(txX K)" +\s-1USD\s0:17\*(tx29 +.X "delete\*(txcurrent\*(txwindow (C\*(txX D)" +\s-1USD\s0:17\*(tx29 +.X "deleteln()" +\s-1PS1\s0:18\*(tx10 +.X "delete\*(txmacro" +\s-1USD\s0:17\*(tx29 +.X "delete\*(txnext\*(txcharacter (C\*(txD)" +\s-1USD\s0:17\*(tx29 +.X "delete\*(txother\*(txwindows (C\*(txX 1)" +\s-1USD\s0:17\*(tx29 +.X "delete\*(txprevious\*(txcharacter (Rubout)" +\s-1USD\s0:17\*(tx29 +.X "delete\*(txwhite\*(txspace (ESC \)" +\s-1USD\s0:17\*(tx29 +.X "deleting lines" +\s-1USD\s0:12\*(tx5, \s-1USD\s0:14\*(tx14 +.X "deleting old deltas" +\s-1PS1\s0:14\*(tx6 +.X "delget, sccs" +\s-1PS1\s0:14\*(tx8 +.X "delim \*(tx specify a name for a pattern of characters" +\s-1PS2\s0:10\*(tx14 +.X "delimiter, %%" +\s-1PS1\s0:16\*(tx2,8 +.X "delimiter, field" +\s-1USD\s0:24\*(tx18 +.X "delimiters" +\s-1USD\s0:13\*(tx4, \s-1USD\s0:21\*(tx3, \s-1USD\s0:26\*(tx4,7, \s-1USD\s0:27\*(tx8 +.X "delimiters, eqn" +\s-1USD\s0:28\*(tx2,7, \s-1USD\s0:32\*(tx11 +.X "delimiting character" +\s-1USD\s0:18\*(tx6 +.X "delimitor groups" +\s-1PS2\s0:10\*(tx15..16,44 +.X "deliver" +\s-1SMM\s0:7\*(tx30 +.X "Delivermail" +\s-1SMM\s0:7\*(tx6, \s-1SMM\s0:16\*(tx9 +.X "delivery, mail" +\s-1USD\s0:8\*(tx75, \s-1SMM\s0:16\*(tx3 +.X "delivery, message" +\s-1SMM\s0:16\*(tx4..7 +.X "delivery modes" +sendmail(8)\*(tx2, \s-1SMM\s0:7\*(tx15 +.X "delivery, reliable" +getsockopt(2) +.X "delivery, Signal" +sigvec(2)\*(tx1, \s-1SMM\s0:12\*(tx16 +.X "Delivery\*(txDate" +\s-1USD\s0:8\*(tx35,47 +.X "deltas" +\s-1PS1\s0:14\*(tx1,10 +.X "deltas, deleting old" +\s-1PS1\s0:14\*(tx6 +.X "delwin(win)" +\s-1PS1\s0:18\*(tx5,14 +.X "dependencies, make" +make(1)\*(tx1, \s-1SMM\s0:2\*(tx5 +.X "dependency lines" +\s-1PS1\s0:12\*(tx3..4 +.X "dependency list" +\s-1SMM\s0:12\*(tx2 +.X "deposited revision" +\s-1PS1\s0:13\*(tx5..6 +.X "dequeuing packets, queuing and" +\s-1SMM\s0:15\*(tx20 +.X "dereference NULL pointer" +\s-1PS1\s0:11\*(tx2 +.X "deroff \*(tx remove nroffs, troffs, tbl and eqn construct" +deroff(1), \s-1USD\s0:32\*(tx10, \s-1SMM\s0:12\*(tx4 +.X "DES encryption, crypt, setkey, encrypt \*(tx" +crypt(3), makekey(8), \s-1SMM\s0:18\*(tx4 +.X "descenders, characters with" +\s-1USD\s0:24\*(tx21 +.X "describe\*(txbindings" +\s-1USD\s0:17\*(tx3,29 +.X "describe\*(txcommand" +jove(1)\*(tx2, \s-1USD\s0:17\*(tx3,31 +.X "describe\*(txkey" +\s-1USD\s0:17\*(tx3,31 +.X "describe\*(txvariable" +\s-1USD\s0:17\*(tx31 +.X "description file (see also Makefile)" +\s-1PS1\s0:12\*(tx1..9 +.X "descriptor fd" +chmod(2), select(2) +.X "descriptor, I/O is possible on a" +signal(3c)\*(tx1 +.X "descriptor, mailer" +\s-1SMM\s0:7\*(tx12,24 +.X "descriptor option, get" +\s-1PS1\s0:6\*(tx19 +.X "descriptor properties" +\s-1PS1\s0:6\*(tx18 +.X "descriptor reference" +\s-1PS1\s0:6\*(tx18 +.X "descriptor reference table" +\s-1PS1\s0:6\*(tx18 +.X "descriptor status flags" +csh(1)\*(tx12 +.X "descriptor table" +getdtablesize(2), \s-1PS1\s0:7\*(tx2,4 +.X "descriptor types" +\s-1PS1\s0:6\*(tx25,36 +.X "descriptor wrapping" +\s-1PS1\s0:6\*(tx20 +.X "descriptors" +fcntl(2), fork(2), intro(2)\*(tx6, read(2), select(2), write(2), tty(4)\*(tx9, \s-1PS1\s0:6\*(tx18,42, \s-1PS1\s0:7\*(tx1 +.X "descriptors, file" +test(1), fcntl(2), flock(2), ferror(3s), ttyname(3), \s-1PS1\s0:6\*(tx11,19,42, \s-1PS1\s0:7\*(tx22, \s-1PS1\s0:8\*(tx9..10,26,41, \s-1PS1\s0:18\*(tx7, \s-1PS2\s0:1\*(tx5..11, \s-1PS2\s0:3\*(tx4..10, \s-1PS2\s0:5\*(tx1, \s-1PS2\s0:10\*(tx70 +.X "descriptors, open file" +open(2), mktemp(3), \s-1PS1\s0:8\*(tx41, \s-1PS2\s0:3\*(tx10, \s-1PS2\s0:4\*(tx2, \s-1SMM\s0:12\*(tx16 +.X "descriptors, Process" +\s-1PS1\s0:6\*(tx24 +.X "design decisions" +\s-1SMM\s0:11\*(tx3, \s-1SMM\s0:14\*(tx2, \s-1SMM\s0:19\*(tx20 +.X "design goals" +\s-1USD\s0:26\*(tx2, \s-1SMM\s0:16\*(tx2,10, \s-1SMM\s0:21\*(tx2 +.X "designations, message" +\s-1USD\s0:8\*(tx9,39 +.X "desk calculator" +bc(1), dc(1), \s-1PS1\s0:15\*(tx24,28 +.X "destination addresses" +\s-1USD\s0:8\*(tx96, getsockopt(2), recv(2), icmp(4p), idp(4p), imp(4p), ip(4p), \s-1PS1\s0:6\*(tx34,36, \s-1PS1\s0:7\*(tx22, \s-1PS1\s0:8\*(tx8..9,32,34,38, routed(8c)\*(tx1, trpt(8c), trsp(8c), \s-1SMM\s0:13\*(tx23..24, \s-1SMM\s0:15\*(tx12,22..23 +.X "destination host" +netstat(1), intro(4n), \s-1PS1\s0:8\*(tx6,20,34, route(8c), \s-1SMM\s0:7\*(tx24, \s-1SMM\s0:13\*(tx26, \s-1SMM\s0:21\*(tx2 +.X "destination names" +\s-1SMM\s0:9\*(tx3 +.X "destination network" +ifconfig(8c), routed(8c)\*(tx1, XNSrouted(8c), \s-1SMM\s0:15\*(tx21 +.X "destroy \*(tx destroy existing relation" +\s-1PS2\s0:10\*(tx15 +.X "destroydb \*(tx destroy an existing database" +\s-1PS2\s0:10\*(tx49 +.X "detection, error" +format(8v)\*(tx1, \s-1SMM\s0:12\*(tx16 +.X "DEUNA, DEC" +de(4), \s-1SMM\s0:12\*(tx17, \s-1SMM\s0:13\*(tx2,30 +.X "DEV_BSIZE" +\s-1SMM\s0:1\*(tx29 +.X "developing programs" +\s-1USD\s0:1\*(tx2 +.X "device addresses" +\s-1PS2\s0:1\*(tx6, \s-1PS2\s0:4\*(tx5 +.X "device configuration" +\s-1SMM\s0:13\*(tx33 +.X "device, default" +reboot(8)\*(tx1, \s-1SMM\s0:1\*(tx45 +.X "device, default boot" +\s-1SMM\s0:1\*(tx24..25 +.X "device driver, block and character" +\s-1SMM\s0:2\*(tx16 +.X "device drivers" +mount(2), tu(4), \s-1PS2\s0:1\*(tx2, \s-1PS2\s0:4\*(tx5, \s-1PS2\s0:5\*(tx1,3,6, diskpart(8), init(8), \s-1SMM\s0:1\*(tx8,20,26,28, \s-1SMM\s0:2\*(tx3,6,10,14..16,21,26,30, \s-1SMM\s0:13\*(tx3,32..33 +.X "device drivers to 4.3BSD, Adding" +\s-1SMM\s0:2\*(tx15 +.X "device, dump" +crash(8v)\*(tx3, \s-1SMM\s0:2\*(tx26, \s-1SMM\s0:13\*(tx18 +.X "device errors and diagnostics" +init(8), \s-1SMM\s0:1\*(tx46 +.X "device interrupts" +systat(1)\*(tx2 +.X "device, ioctl \*(tx control" +ioctl(2) +.X "device, master" +pty(4) +.X "device names" +who(1), fstab(5), \s-1PS2\s0:1\*(tx3,6..7, \s-1PS2\s0:4\*(tx5,7, \s-1SMM\s0:1\*(tx4, \s-1SMM\s0:2\*(tx8..9,16, \s-1SMM\s0:9\*(tx6, \s-1SMM\s0:12\*(tx21 +.X "device numbers, major/minor" +find(1), ls(1), mount(2), hk(4), hp(4)\*(tx1, rx(4), uda(4)\*(tx1, up(4)\*(tx1, types(5), \s-1PS1\s0:6\*(tx28, \s-1PS2\s0:4\*(tx5, \s-1PS2\s0:5, config(8), drtest(8), mknod(8), mkproto(8), reboot(8)\*(tx2, \s-1SMM\s0:1\*(tx3,21, \s-1SMM\s0:2\*(tx8,16, \s-1SMM\s0:13\*(tx18 +.X "device, output" +\s-1PS2\s0:10\*(tx16,64,67 +.X "device, physical" +\s-1SMM\s0:1\*(tx4 +.X "device queues" +\s-1PS2\s0:5\*(tx5..6 +.X "device registers" +\s-1SMM\s0:2\*(tx4,16 +.X "device, slave" +pty(4) +.X "device specifications" +config(8), reboot(8)\*(tx1, \s-1SMM\s0:2\*(tx6,8..9,13,26 +.X "device, tape" +mt(1), autoconf(4), rdump(8c), rrestore(8c), \s-1SMM\s0:1\*(tx2 +.X "device, terminal" +test(1), ttynam(3f), ttyname(3), \s-1SMM\s0:1\*(tx33 +.X "device type" +\s-1SMM\s0:2\*(tx22, \s-1SMM\s0:9\*(tx6, \s-1SMM\s0:13\*(tx34 +.X "device\*(txindependent troff" +lpr(1), \s-1USD\s0:23\*(tx11, \s-1USD\s0:24\*(tx2, \s-1USD\s0:25\*(tx1, printcap(5) +.X "devices" +intro(4), \s-1SMM\s0:2\*(tx21 +.X "devices, ACU" +L.sys(5)\*(tx2, \s-1SMM\s0:9\*(tx15 +.X "devices, block" +intro(2)\*(tx2, mknod(2), mount(2), swapon(2), rx(4), \s-1PS1\s0:6\*(tx39, \s-1PS2\s0:4\*(tx5..6,9, \s-1PS2\s0:5\*(tx1,4..6, \s-1SMM\s0:1\*(tx5 +.X "devices, character" +intro(4), pty(4), \s-1PS1\s0:6\*(tx28, \s-1PS2\s0:4\*(tx5..6, \s-1PS2\s0:5\*(tx1..2,6, \s-1SMM\s0:1\*(tx6 +.X "devices, Creating references to" +\s-1PS1\s0:6\*(tx28 +.X "devices, defaulting system" +\s-1SMM\s0:2\*(tx26 +.X "devices, digitizing" +tb(4) +.X "devices, hardware" +intro(4), pty(4), \s-1SMM\s0:2\*(tx3,9,13, \s-1SMM\s0:15\*(tx10 +.X "devices, I/O" +config(8) +.X "devices, mass storage" +\s-1SMM\s0:14\*(tx7 +.X "devices, MASSBUS" +autoconf(4), intro(4), \s-1SMM\s0:1\*(tx4, \s-1SMM\s0:2\*(tx10,16 +.X "devices, network" +L.sys(5)\*(tx3, \s-1SMM\s0:2\*(tx13, \s-1SMM\s0:9\*(tx15 +.X "devices, paging" +drum(4), crash(8v)\*(tx1, swapon(8), \s-1SMM\s0:2\*(tx5,7 +.X "devices, peripheral" +\s-1PS2\s0:3\*(tx5, \s-1SMM\s0:2\*(tx7 +.X "devices, Pseudo" +\s-1SMM\s0:2\*(tx3,10,13 +.X "devices, raw" +hk(4), hp(4)\*(tx4, up(4)\*(tx3, fsck(8), quotacheck(8), \s-1SMM\s0:1\*(tx5 +.X "devices, Structured" +\s-1PS1\s0:6\*(tx39 +.X "devices, swap" +systat(1)\*(tx2, swapon(2), fstab(5), swapon(8), \s-1SMM\s0:12\*(tx14 +.X "devices, table of mounted" +mount(8) +.X "devices, UNIBUS" +autoconf(4), en(4), intro(4), \s-1SMM\s0:1\*(tx57,64, \s-1SMM\s0:2\*(tx16 +.X "devices, Unstructured" +\s-1PS1\s0:6\*(tx39 +.X "df \*(tx show disk free space" +df(1) +.X "DF03 modem, DEC DF02 or" +L\*(txdevices(5), phones(5) +.X "dffrac" +flmin(3f) +.X "dflmax" +flmin(3f) +.X "dflmin" +flmin(3f) +.X "D_floating\*(txpoint, DEC VAX\*(tx11" +math(3m)\*(tx2 +.X "D\*(txformat floating point support" +\s-1SMM\s0:12\*(tx15 +.X "dh \*(tx DH\*(tx11/DM\*(tx11 communications multiplexer" +dh(4), \s-1SMM\s0:1\*(tx32, \s-1SMM\s0:13\*(tx32 +.X "dhu \*(tx DHU\*(tx11 communications multiplexer" +dhu(4), \s-1SMM\s0:1\*(tx32, \s-1SMM\s0:12\*(tx17, \s-1SMM\s0:13\*(tx2,32 +.X "Diablo mechanism" +plot(1g) +.X "diacritical mark, .sc Define special characters and" +\s-1USD\s0:23\*(tx9 +.X "diacritical marks" +eqn(1), \s-1USD\s0:21\*(tx3, \s-1USD\s0:23\*(tx9, \s-1USD\s0:26\*(tx4, \s-1USD\s0:27\*(tx5 +.X "diagnosis, hardware error reporting and" +\s-1SMM\s0:1\*(tx1 +.X "diagnosis, remote" +cons(4) +.X "diagnostic functions, network monitoring and" +icmp(4p) +.X "diagnostic output" +\s-1PS1\s0:4\*(tx15, \s-1PS1\s0:13\*(tx6,10,14, \s-1PS2\s0:1\*(tx10, \s-1PS2\s0:10\*(tx70 +.X "diagnostics, error" +\s-1USD\s0:4\*(tx36, intro(4n)\*(tx1, \s-1SMM\s0:12\*(tx10 +.X "diagnostics, Warning" +\s-1PS1\s0:4\*(tx7,12,36,45 +.X "dialer field" +\s-1SMM\s0:9\*(tx13 +.X "dialing, tone" +\s-1SMM\s0:9\*(tx13 +.X "dialup lines" +\s-1USD\s0:15\*(tx17, open(2), makedev(8) +.X "Dial\*(txUp Network of UNIX Systems (see also uucp)" +uucp(1c), uucico(8c), \s-1SMM\s0:21\*(tx1..6 +.X "dialup terminals" +\s-1USD\s0:14\*(tx4, \s-1USD\s0:16\*(tx2, tty(4)\*(tx5, remote(5), getty(8), \s-1SMM\s0:1\*(tx33, \s-1SMM\s0:21\*(tx1..2 +.X "diction, explain \*(tx print wordy sentences; thesaurus for diction" +diction(1) +.X "DICTION Patterns" +\s-1USD\s0:32\*(tx14 +.X "DICTION Programs, STYLE and" +\s-1USD\s0:32\*(tx1..14 +.X "dictionary" +look(1), sort(1), boggle(6) +.X "diff \*(tx differential file and directory comparator" +diff(1), patch(1)\*(tx1, \s-1SMM\s0:12\*(tx4 +.X "diff3 \*(tx 3\*(txway differential file comparison" +diff3(1), \s-1SMM\s0:12\*(tx4 +.X "diff3, RCS version of" +\s-1SMM\s0:12\*(tx4 +.X "differences Between Fortran 66 and Fortran 77" +\s-1PS1\s0:2\*(tx17 +.X "differences between two files" +\s-1USD\s0:1\*(tx11 +.X "differences between versions" +\s-1PS1\s0:14\*(tx1 +.X "diffs, Context" +diff(1), patch(1), \s-1USD\s0:17\*(tx15 +.X "digest list" +\s-1USD\s0:8\*(tx87 +.X "digests, Internet" +\s-1USD\s0:8\*(tx14,104 +.X "DIGIT" +ctype(3) +.X "digit, file descriptor" +sh(1)\*(tx3, \s-1USD\s0:3\*(tx21 +.X "digitizing devices" +tb(4) +.X "digits, units" +\s-1USD\s0:28\*(tx3, \s-1USD\s0:34\*(tx5 +.X "digrams" +\s-1PS1\s0:16\*(tx8 +.X "digraph" +\s-1USD\s0:21\*(tx3 +.X "dipress" +\s-1SMM\s0:12\*(tx23 +.X "dir \*(tx format of directories" +dir(5) +.X "direct I/O" +\s-1PS1\s0:2\*(tx26 +.X "directly\*(txconnected network" +route(8c), \s-1SMM\s0:13\*(tx23 +.X "directly\*(txlinked terminals" +\s-1USD\s0:14\*(tx4 +.X "director messages" +\s-1USD\s0:11\*(tx2,4,6 +.X "director, notesfile" +\s-1USD\s0:11\*(tx4,9..10 +.X "directories" +find(1), ls(1), intro(2)\*(tx6 +.X "directories, dir \*(tx format of" +dir(5), \s-1SMM\s0:7\*(tx5, \s-1SMM\s0:14\*(tx11 +.X "directory arguments" +chgrp(1), chmod(1), ls(1), rcp(1c), sccs(1)\*(tx2, \s-1USD\s0:17\*(tx21, chown(8) +.X "directory blocks" +dir(5), icheck(8) +.X "directory contexts" +\s-1PS1\s0:6\*(tx24,27 +.X "directory creation and removal" +\s-1PS1\s0:6\*(tx27 +.X "directory, current working" +cd(1), csh(1)\*(tx10..11,14, login(1), mail(1)\*(tx2, \s-1USD\s0:3\*(tx3, \s-1USD\s0:4\*(tx6..8,17,20..22,35..37,41..42,45, \s-1USD\s0:8\*(tx36,87, \s-1USD\s0:17\*(tx42, chdir(2), execve(2), intro(2)\*(tx6, getcwd(3f), getwd(3), core(5), \s-1SMM\s0:12\*(tx15, \s-1SMM\s0:14\*(tx13 +.X "directory data blocks" +\s-1SMM\s0:5\*(tx7..8 +.X "directory entries" +ln(1), intro(2)\*(tx5..6, mkdir(2), rename(2), rmdir(2), unlink(2), directory(3), scandir(3), unlink(3f), dir(5), \s-1PS1\s0:6\*(tx30, \s-1PS2\s0:1\*(tx3,6..7, dcheck(8), \s-1SMM\s0:5\*(tx6..8, \s-1SMM\s0:14\*(tx11..13 +.X "directory files" +mkdir(2), rmdir(2), \s-1SMM\s0:2\*(tx30 +.X "directory handling" +\s-1USD\s0:17\*(tx21 +.X "directory hierarchies" +find(1), hier(7)\*(tx1, \s-1USD\s0:4\*(tx6,21 +.X "directory inode" +\s-1SMM\s0:5\*(tx6 +.X "directory inode numbers" +\s-1SMM\s0:5\*(tx7..8 +.X "directory, login" +mail(1)\*(tx2, rcp(1c), rlogin(1c), uucp(1c), environ(7), \s-1USD\s0:1\*(tx10, \s-1USD\s0:3\*(tx4, \s-1USD\s0:4\*(tx21, \s-1USD\s0:7\*(tx4,6, adduser(8), \s-1SMM\s0:1\*(tx42, \s-1SMM\s0:9\*(tx3,21 +.X "directory, lost+found" +fs(5)\*(tx3, fsck(8) +.X "directory, ls \*(tx list contents of" +ls(1) +.X "directory, mail" +bugfiler(8) +.X "directory, mkdir \*(tx make a" +mkdir(1), \s-1USD\s0:4\*(tx20, mkdir(2) +.X "directory modes" +\s-1SMM\s0:1\*(tx44, \s-1SMM\s0:10\*(tx14 +.X "directory, non\*(txempty" +rdist(1) +.X "directory, parent" +mkdir(1), \s-1USD\s0:3\*(tx3, \s-1USD\s0:4\*(tx34, intro(2)\*(tx6, mkdir(2), rename(2), dir(5), \s-1SMM\s0:2\*(tx4, \s-1SMM\s0:14\*(tx13 +.X "directory, queue" +\s-1SMM\s0:7\*(tx10,32 +.X "directory, removing a" +rm(1) +.X "directory, renaming files and" +mv(1) +.X "directory, root" +sccs(1)\*(tx2, \s-1USD\s0:1\*(tx7, \s-1USD\s0:4\*(tx6,34,41,43, chroot(2), execve(2), intro(2)\*(tx6..7, dir(5), mkfs(8), mount(8), restore(8)\*(tx1, \s-1SMM\s0:5\*(tx8 +.X "directory, scandir, alphasort \*(tx scan a" +scandir(3) +.X "directory service, user name" +whois(1) +.X "directory, source" +make(1)\*(tx2, bugfiler(8), \s-1SMM\s0:7\*(tx5, \s-1SMM\s0:13\*(tx2 +.X "directory, spool" +lpq(1), lprm(1), uucp(1c), lpd(8), uucico(8c), uuclean(8c), \s-1SMM\s0:1\*(tx21..22,36, \s-1SMM\s0:6\*(tx4, \s-1SMM\s0:9\*(tx2..8,12,20, \s-1SMM\s0:10\*(tx19..20 +.X "directory stack" +csh(1)\*(tx11,14, sysline(1), \s-1USD\s0:4\*(tx21,36..37, \s-1USD\s0:17\*(tx21,31,40,42 +.X "directory, sticky \*(tx persistent text and append\*(txonly" +unlink(2), sticky(8) +.X "directory structure" +\s-1USD\s0:4\*(tx43, \s-1PS2\s0:1\*(tx3, \s-1PS2\s0:4\*(tx7, \s-1SMM\s0:5\*(tx6, \s-1SMM\s0:14\*(tx2 +.X "directory, system" +csh(1)\*(tx14, \s-1USD\s0:4\*(tx41, \s-1SMM\s0:9\*(tx11 +.X "directory, target" +\s-1SMM\s0:13\*(tx12, \s-1SMM\s0:14\*(tx13 +.X "directory, top level spool" +\s-1SMM\s0:9\*(tx2,6,18 +.X "directory tree" +\s-1SMM\s0:12\*(tx4 +.X "directory, working (see directory, current)" +.X "dirs command" +csh(1)\*(tx11, \s-1USD\s0:4\*(tx21,36..37 +.X "disable a terminal" +\s-1SMM\s0:1\*(tx33 +.X "disable\*(txbiff (variable)" +\s-1USD\s0:17\*(tx31,37 +.X "disabling logins" +shutdown(8) +.X "disambiguating rules" +\s-1USD\s0:26\*(tx6, \s-1PS1\s0:15\*(tx1,12..16 +.X "disassemble machine instructions" +adb(1)\*(tx3, \s-1PS1\s0:10\*(tx3, \s-1PS1\s0:11\*(tx5 +.X "disaster recovery, backups and" +\s-1SMM\s0:1\*(tx46 +.X "disc quota (see also disk)" +intro(2)\*(tx5, setquota(2), edquota(8), quotacheck(8), quotaon(8), \s-1SMM\s0:1\*(tx50, \s-1SMM\s0:2\*(tx31, \s-1SMM\s0:4 +.X "disc usage" +quota(1), quotacheck(8), repquota(8) +.X "discard service" +inetd(8) +.X "discarding changes" +\s-1USD\s0:15\*(tx18, \s-1USD\s0:16\*(tx9 +.X "discarding sockets" +\s-1PS1\s0:8\*(tx8 +.X "discipline field" +\s-1PS2\s0:9\*(tx32,66,104 +.X "disciplines, Changes in the terminal line" +\s-1SMM\s0:13\*(tx9 +.X "disciplines, line" +bk(4), tb(4), tty(4)\*(tx1..3, \s-1SMM\s0:13\*(tx3,9..10,32 +.X "disk accesses" +\s-1SMM\s0:14\*(tx5,9 +.X "disk addresses" +types(5) +.X "disk and tape names" +\s-1SMM\s0:1\*(tx5 +.X "disk arms" +\s-1SMM\s0:2\*(tx13, \s-1SMM\s0:14\*(tx9 +.X "disk bandwidth" +\s-1SMM\s0:14\*(tx2..3,10 +.X "disk blocks" +\s-1USD\s0:4\*(tx37, intro(2)\*(tx3,5, fs(5)\*(tx3, \s-1PS2\s0:1\*(tx6, \s-1PS2\s0:4\*(tx7, mkfs(8), \s-1SMM\s0:14\*(tx10,13 +.X "disk configuration" +\s-1SMM\s0:1\*(tx20,27 +.X "disk controllers" +\s-1SMM\s0:1\*(tx29, \s-1SMM\s0:14\*(tx9 +.X "disk description file /etc/disktab" +diskpart(8), newfs(8), \s-1SMM\s0:1\*(tx4 +.X "disk drivers" +drum(4), \s-1PS2\s0:4\*(tx5..6, bad144(8), \s-1SMM\s0:1\*(tx4,29,48, \s-1SMM\s0:13\*(tx31, \s-1SMM\s0:14\*(tx11 +.X "disk drives" +systat(1)\*(tx4, autoconf(4), fs(5)\*(tx2, \s-1SMM\s0:1\*(tx8,13, \s-1SMM\s0:2\*(tx19, \s-1SMM\s0:14\*(tx3..4 +.X "disk files" +\s-1USD\s0:14\*(tx3,7,15,20..21, \s-1PS2\s0:1\*(tx2..5 +.X "disk, formatting the" +\s-1SMM\s0:1\*(tx8 +.X "disk geometry information" +hp(4)\*(tx1, disktab(5), newfs(8), \s-1SMM\s0:1\*(tx31, \s-1SMM\s0:2\*(tx10..13,28..29 +.X "disk I/O" +systat(1)\*(tx2, \s-1USD\s0:4\*(tx44, sa(8) +.X "disk I/O statistics" +systat(1)\*(tx1,3 +.X "disk layout considerations" +\s-1SMM\s0:1\*(tx29 +.X "disk load balancing" +\s-1SMM\s0:1\*(tx30 +.X "disk naming and divisions" +\s-1SMM\s0:1\*(tx28 +.X "disk partition sizes (see also partition)" +diskpart(8), \s-1SMM\s0:1\*(tx28 +.X "disk partitions in 4.3BSD" +getdiskbyname(3), disktab(5), \s-1SMM\s0:1\*(tx4,20 +.X "disk, physical" +diskpart(8), \s-1SMM\s0:1\*(tx4,28 +.X "disk quota facilities (see also disc)" +chown(2), fstab(5), \s-1PS1\s0:6\*(tx32, \s-1SMM\s0:1\*(tx26,50, \s-1SMM\s0:2\*(tx14, \s-1SMM\s0:14\*(tx13 +.X "disk space" +dbx(1)\*(tx7, du(1), \s-1USD\s0:4\*(tx43, \s-1USD\s0:9\*(tx2, fs(5), catman(8), dcheck(8), mkfs(8), \s-1SMM\s0:1\*(tx3,7,30..31,50, \s-1SMM\s0:2\*(tx6, \s-1SMM\s0:5\*(tx4, \s-1SMM\s0:10\*(tx5, \s-1SMM\s0:12\*(tx21, \s-1SMM\s0:17\*(tx1 +.X "disk support" +hk(4), hp(4)\*(tx1, uda(4)\*(tx1, up(4)\*(tx1 +.X "disk surface errors" +\s-1SMM\s0:1\*(tx10 +.X "disk test" +drtest(8) +.X "disk throughput statistics" +systat(1)\*(tx2 +.X "disk transactions" +systat(1)\*(tx2, \s-1SMM\s0:14\*(tx3..5,11 +.X "disk usage" +du(1), \s-1USD\s0:4\*(tx17 +.X "disk, Writing text to" +\s-1USD\s0:12\*(tx2, \s-1USD\s0:14\*(tx2,7 +.X "diskpart \*(tx calculate default disk partition sizes" +hp(4)\*(tx3, diskpart(8), \s-1SMM\s0:1\*(tx28, \s-1SMM\s0:12\*(tx20 +.X "disks, floppy" +rx(4), arff(8v) +.X "disks, MASSBUS" +autoconf(4), hp(4)\*(tx1, reboot(8)\*(tx2 +.X "disks, UNIBUS" +\s-1SMM\s0:1\*(tx5 +.X "disktab \*(tx disk description file" +disktab(5), \s-1SMM\s0:12\*(tx15,18 +.X "disktab, struct" +getdiskbyname(3) +.X "dismount file system" +mount(8) +.X "display" +ms(7)\*(tx1, \s-1USD\s0:22\*(tx5, \s-1USD\s0:23\*(tx4 +.X "display control commands" +\s-1USD\s0:17\*(tx17 +.X "display distance" +ms(7)\*(tx3 +.X "display editing" +ex(1), vi(1), \s-1USD\s0:15, \s-1USD\s0:16\*(tx1,8,11 +.X "Display Editing with VI, Introduction to" +\s-1USD\s0:15 +.X "display editor" +ex(1), mail(1)\*(tx4, vi(1), \s-1USD\s0:17\*(tx1 +.X "display equations" +\s-1USD\s0:27\*(tx1,7..8 +.X "display files" +ps(4) +.X "display, graphics" +lib2648(3x)\*(tx2..3 +.X "display information" +systat(1)\*(tx4 +.X "display lines" +od(1), \s-1USD\s0:15\*(tx4 +.X "display modes" +window(1)\*(tx1,7 +.X "display, netstat" +systat(1)\*(tx3..4 +.X "display terminals" +jove(1)\*(tx1, vmh(1), \s-1USD\s0:1\*(tx3, \s-1USD\s0:8\*(tx69, \s-1USD\s0:13\*(tx2, \s-1USD\s0:15\*(tx1..2 +.X "displays of lines" +\s-1USD\s0:20\*(tx4 +.X "Disposing of mail" +mail(1)\*(tx1 +.X "dist \*(tx redistribute a message to additional addresses" +\s-1USD\s0:8\*(tx18 +.X "distance, hypot \*(tx Euclidean" +hypot(3m) +.X "distfile" +rdist(1) +.X "distfile, example" +rdist(1)\*(tx3 +.X "distinguished process group" +tty(4)\*(tx5 +.X "distributing files to other hosts" +rdist(1)\*(tx2 +.X "distribution" +\s-1USD\s0:9\*(tx1, \s-1USD\s0:10\*(tx5,11 +.X "distribution format" +\s-1SMM\s0:1\*(tx3 +.X "distribution kit" +\s-1SMM\s0:1\*(tx3 +.X "distribution lists" +mail(1)\*(tx2 +.X "distribution, remote file" +rdist(1)\*(tx1 +.X "distribution, software" +\s-1SMM\s0:21\*(tx1 +.X "distribution system" +\s-1SMM\s0:1\*(tx13,26,64 +.X "distribution tape" +reboot(8)\*(tx2, \s-1SMM\s0:1\*(tx2..5,13,17..22,47,49,52..56, \s-1SMM\s0:12\*(tx7 +.X "ditroff (see also troff)" +lpr(1) +.X "ditroff\*(txspecific \*(txme macros" +\s-1USD\s0:23\*(tx12 +.X "diversion level" +\s-1USD\s0:24\*(tx5,11,16 +.X "diversion name" +\s-1USD\s0:24\*(tx16 +.X "diversion trap" +\s-1USD\s0:24\*(tx11,15..17 +.X "diversions" +m4(1), \s-1USD\s0:24\*(tx3,8,14..16, \s-1USD\s0:25\*(tx12 +.X "divert, appending" +\s-1USD\s0:24\*(tx17 +.X "divert output to macro" +\s-1USD\s0:24\*(tx17 +.X "divert the output of M4" +\s-1PS1\s0:17\*(tx4 +.X "divide check in expression evaluation, overflow and" +\s-1PS1\s0:1\*(tx6 +.X "Divide\*(txby\*(txZero exception" +infnan(3m) +.X "division, integer" +\s-1PS1\s0:1\*(tx31, \s-1PS1\s0:10\*(tx2, \s-1PS1\s0:11\*(tx5 +.X "DL11\*(txW interface" +kg(4), uu(4) +.X "DMA" +dh(4), dhu(4), dmf(4), dmz(4), en(4), \s-1SMM\s0:2\*(tx22, \s-1SMM\s0:13\*(tx33, \s-1SMM\s0:15\*(tx26 +.X "dmc \*(tx DEC DMC\*(tx11/DMR\*(tx11 point\*(txto\*(txpoint communications device" +dmc(4), \s-1SMM\s0:12\*(tx17 +.X "dmesg \*(tx collect system diagnostic messages to form error log" +dmesg(8) +.X "dmf \*(tx DMF\*(tx32, terminal multiplexor" +dmf(4), \s-1SMM\s0:1\*(tx26,32, \s-1SMM\s0:13\*(tx32 +.X "DMF32, parallel printer port on the" +\s-1SMM\s0:13\*(tx33 +.X "dmz \*(tx DMZ\*(tx32 terminal multiplexor" +dmz(4), \s-1SMM\s0:1\*(tx32, \s-1SMM\s0:12\*(tx17, \s-1SMM\s0:13\*(tx2,32 +.X "dn \*(tx DN\*(tx11 autocall unit interface" +dn(4) +.X "dn_comp, dn_expand \*(tx resolver routine" +resolver(3) +.X "DO, Fortran" +f77(1)\*(tx2, \s-1PS1\s0:2\*(tx5, \s-1PS2\s0:6\*(tx19, \s-1PS2\s0:8\*(tx2,5..7,11 +.X "Do Statement" +\s-1PS1\s0:1\*(tx21 +.X "doc directory" +\s-1SMM\s0:10\*(tx2 +.X "doctor \*(tx interact with a psychoanalyst" +doctor(6) +.X "document preparation" +\s-1USD\s0:1\*(tx1,4,6,10..11,14, \s-1USD\s0:25\*(tx2, \s-1PS2\s0:1\*(tx1,14..15 +.X "document styles" +\s-1USD\s0:31\*(tx1..2 +.X "documentation, online" +\s-1USD\s0:1\*(tx4 +.X "documentation, posting of software packages &" +\s-1USD\s0:9\*(tx10 +.X "documents, debugging" +checknr(1) +.X "documents, formatting" +ms(7)\*(tx1 +.X "documents, macros for preparing" +\s-1USD\s0:20\*(tx1 +.X "documents, technical" +\s-1USD\s0:32\*(tx1,4..5,8 +.X "dollar\*(txsign $" +\s-1USD\s0:1\*(tx2, \s-1USD\s0:12\*(tx4,9, \s-1USD\s0:13\*(tx4, \s-1USD\s0:14\*(tx16, \s-1USD\s0:18\*(tx3, \s-1USD\s0:19\*(tx3, \s-1USD\s0:27\*(tx10, \s-1PS1\s0:2\*(tx10..11, \s-1PS1\s0:3\*(tx6, \s-1PS1\s0:12\*(tx3, \s-1PS1\s0:15\*(tx5,21, \s-1PS2\s0:10\*(tx19..22,39 +.X "domain, ARPA" +\s-1SMM\s0:11\*(tx5,8 +.X "domain, binding to a name (or address) within the communications" +\s-1PS1\s0:6\*(tx34 +.X "domain, INTERNET" +\s-1PS1\s0:6\*(tx37, \s-1PS1\s0:7\*(tx8..11,22, \s-1PS1\s0:8\*(tx3..6,14,28 +.X "domain names" +mailaddr(7), resolver(3), resolver(5), \s-1PS2\s0:10\*(tx9,31, named(8), \s-1SMM\s0:1\*(tx22,34, \s-1SMM\s0:7\*(tx19,26, \s-1SMM\s0:11\*(tx3,6,16 +.X "domain, Names in the UNIX" +\s-1PS1\s0:7\*(tx10..11 +.X "domain, NS" +\s-1PS1\s0:8\*(tx3..7,11,14,30,32 +.X "domain, public" +\s-1USD\s0:8\*(tx112, \s-1USD\s0:10\*(tx4 +.X "domain spec" +\s-1SMM\s0:7\*(tx25 +.X "domain, struct" +\s-1SMM\s0:15\*(tx9 +.X "domain structure" +\s-1SMM\s0:7\*(tx25, \s-1SMM\s0:11\*(tx2, \s-1SMM\s0:13\*(tx4, \s-1SMM\s0:15\*(tx8..10 +.X "domain, UNIX" +connect(2), getsockname(2), socketpair(2), \s-1PS1\s0:6\*(tx36, \s-1PS1\s0:7\*(tx4,8..9,21..22, \s-1PS1\s0:8\*(tx3..7, \s-1SMM\s0:6\*(tx2, \s-1SMM\s0:12\*(tx9, \s-1SMM\s0:15\*(tx4 +.X "domain values" +\s-1PS2\s0:10\*(tx9,36 +.X "domains and protocols" +\s-1PS1\s0:7\*(tx7 +.X "domains, binding addresses to sockets in the Internet and NS" +\s-1PS1\s0:8\*(tx30 +.X "domains, character" +\s-1PS2\s0:10\*(tx8..9,76 +.X "domains, communication" +mailaddr(7)\*(tx1, \s-1USD\s0:7\*(tx10, bind(2), socket(2), intro(4n)\*(tx1, \s-1PS1\s0:6\*(tx18,24,29,32..34, \s-1PS1\s0:7\*(tx22, \s-1PS1\s0:8\*(tx3..5,28, \s-1SMM\s0:11\*(tx4, \s-1SMM\s0:15\*(tx8 +.X "domains, Dummy" +\s-1PS2\s0:10\*(tx8 +.X "domains in a relation, replace \*(tx replace values of" +\s-1PS2\s0:10\*(tx41 +.X "domains, Internet and NS" +\s-1PS1\s0:8\*(tx4,30..31 +.X "domains, numeric" +\s-1PS2\s0:10\*(tx8..9,34,41 +.X "Doom, Dungeons of" +rogue(6), \s-1USD\s0:33\*(tx2..9 +.X "dot" +adb(1)\*(tx3, mail(1)\*(tx5, \s-1USD\s0:7\*(tx18, \s-1USD\s0:12\*(tx4..5,8..10, \s-1USD\s0:13\*(tx10, \s-1USD\s0:14\*(tx10,16, intro(2)\*(tx6 +.X "dot, default line numbers and the value of" +\s-1USD\s0:13\*(tx8 +.X "dot, line" +\s-1USD\s0:12\*(tx6,8, \s-1USD\s0:13\*(tx3,8,13..14 +.X "dot notation" +ifconfig(8c) +.X "dot, set" +adb(1)\*(tx5, \s-1USD\s0:12\*(tx5..6, \s-1USD\s0:13\*(tx10..11 +.X "double horizontal line" +\s-1USD\s0:28\*(tx4 +.X "double quotes" +\s-1USD\s0:3\*(tx17, \s-1USD\s0:25\*(tx7, \s-1SMM\s0:16\*(tx6 +.X "double spacing" +colcrt(1), me(7)\*(tx1, ms(7)\*(tx1, \s-1USD\s0:22\*(tx3, \s-1USD\s0:29\*(tx4 +.X "doublebox \*(tx enclose the table in two boxes" +\s-1USD\s0:28\*(tx2 +.X "doubly linked lists" +insque(3) +.X "dp \*(tx parse dates 822\*(txstyle" +\s-1USD\s0:8\*(tx94 +.X "dquot structure" +\s-1SMM\s0:2\*(tx31 +.X "draft file" +\s-1USD\s0:8\*(tx53,104 +.X "draft folder" +\s-1USD\s0:8\*(tx62,102..103 +.X "draft message" +\s-1USD\s0:8\*(tx102 +.X "Draft\*(txFolder" +\s-1USD\s0:8\*(tx86,102 +.X "drand" +rand(3f) +.X "drandm" +random(3f) +.X "drill, arithmetic" +arithmetic(6) +.X "drive numbers" +autoconf(4), hk(4), hp(4)\*(tx1, uda(4)\*(tx1, up(4)\*(tx1, \s-1SMM\s0:2\*(tx10 +.X "drive types" +hp(4), uda(4)\*(tx1, \s-1SMM\s0:1\*(tx4, \s-1SMM\s0:2\*(tx19, \s-1SMM\s0:13\*(tx31..34 +.X "drivers, block device" +intro(4), \s-1PS2\s0:4\*(tx5, \s-1PS2\s0:5\*(tx6..7 +.X "drivers, device" +\s-1PS2\s0:1\*(tx2, \s-1PS2\s0:4\*(tx5, \s-1PS2\s0:5\*(tx1,3,6 +.X "drivers, disk" +drum(4), \s-1PS2\s0:4\*(tx5..6, bad144(8), \s-1SMM\s0:1\*(tx4,29,48, \s-1SMM\s0:13\*(tx31, \s-1SMM\s0:14\*(tx11 +.X "drivers, Ethernet" +\s-1SMM\s0:12\*(tx17 +.X "drivers, network interface" +intro(4), \s-1SMM\s0:1\*(tx38, \s-1SMM\s0:2\*(tx16, \s-1SMM\s0:13\*(tx29 +.X "drivers, new" +\s-1SMM\s0:13\*(tx2 +.X "drivers, teletype" +stty(1), \s-1USD\s0:15\*(tx22, \s-1USD\s0:16\*(tx10 +.X "drivers, terminal" +tty(4), gettytab(5)\*(tx3, termcap(5)\*(tx11, \s-1SMM\s0:13\*(tx6 +.X "drivers, tty" +csh(1)\*(tx1, bk(4), tty(4)\*(tx1, gettytab(5)\*(tx2 +.X "drives, MASSBUS (see also disks)" +format(8v)\*(tx1, \s-1SMM\s0:2\*(tx12 +.X "drives, tape" +mt(1), mtio(4) +.X "drives, UNIBUS" +format(8v)\*(tx1, reboot(8)\*(tx2, \s-1SMM\s0:2\*(tx12 +.X "drtest \*(tx standalone disk test program" +drtest(8) +.X "drum \*(tx paging device" +drum(4) +.X "dstop\*(txprocess" +\s-1USD\s0:17\*(tx31 +.X "dtime" +etime(3f) +.X "du \*(tx summarize disk usage" +du(1), quot(8) +.X "dumb terminals" +plot(3x) +.X "dummy arguments" +\s-1PS1\s0:2\*(tx9,20 +.X "dummy domains" +\s-1PS2\s0:10\*(tx8 +.X "dummy procedures" +dbx(1)\*(tx7 +.X "dump \*(tx incremental file system dump" +fstab(5), dump(8), \s-1SMM\s0:12\*(tx18,20 +.X "dump, core" +csh(1)\*(tx13, \s-1USD\s0:3\*(tx19, \s-1USD\s0:4\*(tx36, \s-1USD\s0:8\*(tx30, \s-1USD\s0:11\*(tx14, abort(3), vlimit(3c), \s-1PS1\s0:11\*(tx2..3, \s-1PS2\s0:9\*(tx81, crash(8v)\*(tx3, rc(8), savecore(8), \s-1SMM\s0:12\*(tx2..3 +.X "dump, decimal" +od(1) +.X "dump device" +crash(8v)\*(tx3, \s-1SMM\s0:2\*(tx26, \s-1SMM\s0:13\*(tx18 +.X "dump, dumpdates \*(tx incremental dump format" +dump(5) +.X "dump, file system" +rdump(8c), rrestore(8c), \s-1SMM\s0:1\*(tx17,47 +.X "dump formats" +\s-1SMM\s0:1\*(tx7 +.X "dump, Formatted" +\s-1PS1\s0:10\*(tx10 +.X "dump, full" +\s-1SMM\s0:1\*(tx46..47 +.X "dump, hex" +od(1) +.X "dump, incremental" +dump(5), restore(8)\*(tx1, \s-1SMM\s0:1\*(tx46..47 +.X "dump, level zero" +restore(8)\*(tx3 +.X "dump levels" +dump(8) +.X "dump, od \*(tx octal, decimal, hex, ASCII" +od(1) +.X "dump partitions" +\s-1SMM\s0:2\*(tx26, \s-1SMM\s0:12\*(tx22 +.X "dump, Post\*(txmortem" +\s-1SMM\s0:3 +.X "dump sequence, typical" +\s-1SMM\s0:1\*(tx46 +.X "dump, system" +config(8), \s-1SMM\s0:2\*(tx8,26 +.X "dump tapes" +dump(5), fs(5)\*(tx2, dump(8), restore(8), \s-1SMM\s0:1\*(tx17,46 +.X "dumpdef" +\s-1PS1\s0:17\*(tx6 +.X "dumpfs \*(tx dump file system information" +dumpfs(8), \s-1SMM\s0:1\*(tx46 +.X "dumping of files by name" +\s-1SMM\s0:1\*(tx47 +.X "Dungeon Definition Language" +aardvark(6), \s-1SMM\s0:12\*(tx18 +.X "dungeon, zork \*(tx the game of" +zork(6) +.X "dup, dup2 \*(tx duplicate a descriptor" +dup(2), \s-1PS1\s0:6\*(tx18 +.X "duplicate blocks" +icheck(8), \s-1SMM\s0:5\*(tx6..7,13 +.X "duplicate of a descriptor reference" +\s-1PS1\s0:6\*(tx18 +.X "duplicating text, rearranging and" +\s-1USD\s0:15\*(tx10 +.X "duplication of lines" +\s-1USD\s0:16\*(tx9 +.X "DVI format" +lpr(1), printcap(5), lpd(8) +.X "dynamic call graph" +gprof(1), \s-1SMM\s0:2\*(tx6 +.X "dynamic statistics" +\s-1PS2\s0:7\*(tx15..16,30 +.X "dynamic storage allocator" +\s-1USD\s0:5\*(tx3,7, \s-1USD\s0:6\*(tx1 +.X "dz \*(tx DZ\*(tx11 communications multiplexer" +dz(4), \s-1SMM\s0:1\*(tx32, \s-1SMM\s0:13\*(tx32 +.L E +.X "E2BIG \*(tx Arg list too long" +intro(2)\*(tx1 +.X "EACCES \*(tx Permission denied" +intro(2)\*(tx2, \s-1SMM\s0:12\*(tx14 +.X "EADDRINUSE \*(tx Address already in use" +intro(2)\*(tx4 +.X "EADDRNOTAVAIL \*(tx Can't assign requested address" +intro(2)\*(tx4 +.X "EAFNOSUPPORT \*(tx Address family not supported by protocol family" +intro(2)\*(tx4 +.X "EAGAIN \*(tx No more processes" +intro(2)\*(tx2 +.X "Eagle, Fujitsu" +hp(4)\*(tx1, up(4)\*(tx1, bad144(8), \s-1SMM\s0:13\*(tx34 +.X "EALREADY \*(tx Operation already in progress" +intro(2)\*(tx3 +.X "EBADF \*(tx Bad file number" +intro(2)\*(tx1 +.X "EBCDIC card images" +dd(1) +.X "EBCDIC tape, read an" +dd(1) +.X "EBCDIC to ASCII, convert" +dd(1) +.X "EBUSY \*(tx Device busy" +intro(2)\*(tx2 +.X "EC" +\s-1PS1\s0:12\*(tx6, \s-1SMM\s0:12\*(tx17 +.X "ec \*(tx 3Com 10 Mb/s Ethernet interface" +ec(4) +.X "ECC" +format(8v)\*(tx1, \s-1SMM\s0:1\*(tx8, \s-1SMM\s0:2\*(tx21, \s-1SMM\s0:13\*(tx31 +.X "ECC error, recoverable" +hk(4), hp(4)\*(tx4, up(4)\*(tx3 +.X "ECHILD \*(tx No children" +intro(2)\*(tx2 +.X "echo()" +\s-1PS1\s0:18\*(tx12 +.X "echo \*(tx echo arguments" +csh(1)\*(tx11, echo(1), \s-1USD\s0:4\*(tx6,22, \s-1SMM\s0:12\*(tx4 +.X "echo characters" +stty(1)\*(tx1 +.X "echo, local" +remote(5) +.X "echo modes" +tset(1)\*(tx3 +.X "echo \*(txn" +\s-1SMM\s0:10\*(tx20, \s-1SMM\s0:11\*(tx13 +.X "echo service" +inetd(8) +.X "echo shell variable" +csh(1)\*(tx17 +.X "ECHO_REQUEST packets" +ping(8) +.X "ECHO_RESPONSE packet" +ping(8) +.X "ECONNABORTED \*(tx Software caused connection abort" +intro(2)\*(tx4 +.X "ECONNREFUSED \*(tx Connection refused" +intro(2)\*(tx5, \s-1PS1\s0:8\*(tx6 +.X "ECONNRESET \*(tx Connection reset by peer" +intro(2)\*(tx4 +.X "ecvt, fcvt, gcvt \*(tx output conversion" +ecvt(3) +.X "ed \*(tx text editor" +crypt(1), diff(1), diff3(1), ed(1)\*(tx1..2, \s-1USD\s0:1\*(tx4, \s-1USD\s0:4\*(tx30, \s-1USD\s0:12, \s-1USD\s0:13\*(tx2,11,13..14, \s-1USD\s0:15\*(tx21, \s-1USD\s0:18\*(tx1, \s-1USD\s0:19\*(tx3,6, \s-1USD\s0:24\*(tx28 +.X "ed Commands and Line Number, Summary of" +\s-1USD\s0:12\*(tx10 +.X "ed diffs" +patch(1)\*(tx1 +.X "ed error messages" +\s-1USD\s0:12\*(tx2,6 +.X "ed, line addressing in" +\s-1USD\s0:12\*(tx1, \s-1USD\s0:13\*(tx2,7 +.X "ed script" +patch(1) +.X "edata" +ld(1), end(3) +.X "edcompatible" +\s-1USD\s0:16\*(tx15 +.X "EDESTADDRREQ \*(tx Destination address required" +intro(2)\*(tx3 +.X "ed.hup" +\s-1USD\s0:1\*(tx5 +.X "edit \*(tx text editor" +ed(1)\*(tx3, ex(1), \s-1USD\s0:7\*(tx13 +.X "Edit: A Tutorial" +\s-1USD\s0:14 +.X "edit, sccs" +\s-1PS1\s0:14\*(tx3 +.X "editalt environment variable" +\s-1USD\s0:8\*(tx57,88 +.X "editing buffer" +\s-1USD\s0:14\*(tx21, \s-1USD\s0:16\*(tx9,12 +.X "editing c programs" +\s-1USD\s0:15\*(tx15, \s-1USD\s0:17\*(tx21 +.X "editing commands" +sed(1)\*(tx1, \s-1USD\s0:1\*(tx5,9,12, \s-1USD\s0:13\*(tx7,10,16, \s-1USD\s0:14\*(tx7,10, \s-1USD\s0:15\*(tx4,7,18, \s-1USD\s0:16\*(tx7,16, \s-1USD\s0:17\*(tx1..5, \s-1USD\s0:18, \s-1USD\s0:19\*(tx6, \s-1PS2\s0:1\*(tx9, \s-1PS2\s0:9\*(tx140,146,149..150 +.X "editing, display" +ex(1), mail(1)\*(tx4, vi(1), \s-1USD\s0:15, \s-1USD\s0:16\*(tx1,8,11, \s-1USD\s0:17\*(tx1 +.X "editing functions" +\s-1USD\s0:18\*(tx1 +.X "editing, input" +tty(4)\*(tx2,7 +.X "editing, Line" +pty(4), tty(4)\*(tx3 +.X "editing LISP" +\s-1USD\s0:15\*(tx15, \s-1USD\s0:16\*(tx1 +.X "editing modes" +\s-1USD\s0:16\*(tx3 +.X "editing notes/responses" +\s-1USD\s0:11\*(tx9 +.X "editing on slow terminals" +\s-1USD\s0:15\*(tx12 +.X "editing operations" +\s-1USD\s0:1\*(tx4, \s-1USD\s0:13\*(tx16, \s-1USD\s0:16\*(tx3 +.X "editing scripts" +\s-1USD\s0:13\*(tx2,16, \s-1USD\s0:18\*(tx1 +.X "editing session" +\s-1USD\s0:12\*(tx3, \s-1USD\s0:14, \s-1USD\s0:15\*(tx18, \s-1USD\s0:16\*(tx6, \s-1USD\s0:17\*(tx5,24 +.X "editing, special characters for advanced" +\s-1USD\s0:12\*(tx1 +.X "editing, text" +ed(1)\*(tx1, ex(1), jove(1)\*(tx1, learn(1), mail(1)\*(tx3,5, uuencode(1c), vi(1), \s-1USD\s0:1\*(tx3..4, \s-1USD\s0:7\*(tx8,13,17, \s-1USD\s0:12\*(tx1, \s-1USD\s0:13\*(tx2, \s-1USD\s0:14\*(tx1,3..4, \s-1USD\s0:16\*(tx1, \s-1PS1\s0:4\*(tx2..3, \s-1PS2\s0:1\*(tx13, \s-1PS2\s0:10\*(tx26..29, lpd(8), \s-1SMM\s0:10\*(tx4 +.X "editor buffer" +\s-1USD\s0:15\*(tx10, \s-1USD\s0:16\*(tx4,6,9 +.X "editor, compile your code while in the" +\s-1USD\s0:17\*(tx22 +.X "editor, context" +\s-1USD\s0:18\*(tx1 +.X "editor, default" +\s-1USD\s0:7\*(tx17, \s-1USD\s0:8\*(tx8,86, \s-1USD\s0:11\*(tx12, \s-1SMM\s0:10\*(tx4 +.X "EDITOR environment variable" +dbx(1)\*(tx4, mail(1)\*(tx6, \s-1USD\s0:1\*(tx4, \s-1USD\s0:7\*(tx8,17, \s-1USD\s0:8\*(tx8,52,86, \s-1USD\s0:9\*(tx3, \s-1USD\s0:11\*(tx7,12, edquota(8), \s-1SMM\s0:10\*(tx14 +.X "editor ex" +\s-1USD\s0:15\*(tx1,21 +.X "editor, interrupting the" +\s-1USD\s0:13\*(tx10 +.X "editor, jove \*(tx an interactive display\*(txoriented text" +jove(1)\*(tx1 +.X "editor, link" +ld(1), a.out(5)\*(tx3, \s-1PS1\s0:5\*(tx7,11 +.X "editor scripts" +ed(1)\*(tx1, \s-1USD\s0:1\*(tx10, \s-1USD\s0:4\*(tx31, \s-1USD\s0:16\*(tx1 +.X "editor, sed \*(tx stream" +sed(1)\*(tx1 +.X "editor session" +\s-1USD\s0:15\*(tx4, \s-1USD\s0:16\*(tx1 +.X "editor, suspend the" +\s-1USD\s0:15\*(tx11 +.X "Editor, Tutorial Introduction to the UNIX Text" +\s-1USD\s0:1\*(tx1, \s-1USD\s0:12 +.X "editor, UNIX commands from the" +\s-1USD\s0:14\*(tx20 +.X "editors, screen" +error(1)\*(tx1, mail(1)\*(tx5, \s-1USD\s0:7\*(tx8,17 +.X "edit\*(txword\*(txabbrevs" +\s-1USD\s0:17\*(tx31 +.X "EDOM \*(tx Argument too large" +intro(2)\*(tx3, bessel(3f), exp(3m), ieee(3m), infnan(3m), sqrt(3m) +.X "EDQUOT \*(tx Disc quota exceeded" +intro(2)\*(tx5, \s-1SMM\s0:4\*(tx2, \s-1SMM\s0:12\*(tx20 +.X "edquota \*(tx edit user quotas" +edquota(8) +.X "EE" +termcap(5)\*(tx5 +.X "EEXIST \*(tx File exists" +intro(2)\*(tx2 +.X "EF" +ms(7)\*(tx1, \s-1USD\s0:21\*(tx3, termcap(5)\*(tx5 +.X "EFAULT \*(tx Bad address" +intro(2)\*(tx2 +.X "EFBIG \*(tx File too large" +intro(2)\*(tx3 +.X "effective group id" +getgid(2), intro(2)\*(tx6, setregid(2), setuid(3) +.X "effective user and group IDS" +execve(2) +.X "effective user id" +find(1), sh(1)\*(tx2, whoami(1), getuid(2), intro(2)\*(tx6..7, kill(2), killpg(2), mkdir(2), rename(2), setpgrp(2), setreuid(2), unlink(2), setuid(3), \s-1PS1\s0:6\*(tx8, rshd(8c), \s-1SMM\s0:10\*(tx7, \s-1SMM\s0:12\*(tx11,13..14,19, \s-1SMM\s0:13\*(tx5,8, \s-1SMM\s0:17\*(tx1 +.X "efl \*(tx Extended Fortran Language" +efl(1), f77(1), \s-1PS1\s0:2\*(tx4..5, \s-1PS2\s0:6\*(tx1..5,13,19..21,24..25,33..35 +.X "EFL and Ratfor" +\s-1PS2\s0:6\*(tx33 +.X "EFL compiler" +\s-1PS2\s0:6\*(tx10,25 +.X "efl executable statements" +\s-1PS2\s0:6\*(tx16 +.X "EFL programs" +efl(1), \s-1PS2\s0:6 +.X "EFLAGS" +\s-1PS1\s0:12\*(tx6,9 +.X "EGP implementation for 4.2BSD" +\s-1SMM\s0:1\*(tx41 +.X "EGP (see also protocol)" +routed(8c), \s-1SMM\s0:1\*(tx41..42, \s-1SMM\s0:13\*(tx23 +.X "egrep, fgrep, sed, lex, awk performance comparison, wc, grep," +grep(1), \s-1USD\s0:19\*(tx6 +.X "EHOSTDOWN \*(tx Host is down" +intro(2)\*(tx5, \s-1PS1\s0:8\*(tx6 +.X "EHOSTUNREACH \*(tx Host is unreachable" +intro(2)\*(tx5, \s-1PS1\s0:8\*(tx7 +.X "eight\*(txbit input data path" +rlogin(1c) +.X "EINPROGRESS \*(tx Operation now in progress" +intro(2)\*(tx3, \s-1PS1\s0:6\*(tx19 +.X "EINTR \*(tx Interrupted system call" +intro(2)\*(tx1, sigpause(2), pause(3c), siginterrupt(3), \s-1SMM\s0:13\*(tx9 +.X "EINVAL \*(tx Invalid argument" +intro(2)\*(tx2, \s-1SMM\s0:12\*(tx14, \s-1SMM\s0:13\*(tx8,12,17 +.X "EIO \*(tx I/O error" +intro(2)\*(tx1 +.X "EISCONN \*(tx Socket is already connected" +intro(2)\*(tx4 +.X "EISDIR \*(tx Is a directory" +intro(2)\*(tx2 +.X "elapsed time" +time(1), \s-1USD\s0:4\*(tx24, etime(3f) +.X "election algorithm" +\s-1SMM\s0:8\*(tx2, \s-1SMM\s0:22\*(tx2 +.X "electronic mail (see also mail)" +\s-1USD\s0:8\*(tx2, \s-1USD\s0:9\*(tx2, \s-1SMM\s0:11\*(tx4 +.X "elements, array" +\s-1PS1\s0:2\*(tx9,25, \s-1PS1\s0:3\*(tx3,7, \s-1PS2\s0:6\*(tx10..13,16,21,23, \s-1PS2\s0:9\*(tx30,111 +.X "elements, data" +\s-1PS2\s0:9\*(tx27..28,108 +.X "ELIZA program" +doctor(6) +.X "ELOOP \*(tx Too many levels of symbolic links" +intro(2)\*(tx5 +.X "else shell command" +csh(1)\*(tx11..12 +.X "EM" +\s-1USD\s0:24\*(tx8, tty(4)\*(tx5, \s-1SMM\s0:20\*(tx2 +.X "em in size" +\s-1USD\s0:25\*(tx5 +.X "EMACS" +jove(1)\*(tx1, \s-1USD\s0:17\*(tx1, \s-1SMM\s0:12\*(tx23 +.X "Emacs front\*(txend for MH" +\s-1USD\s0:8\*(tx86 +.X "Emacs, Jonathan's Own Version of" +jove(1)\*(tx1, \s-1USD\s0:17\*(tx1 +.X "Embedded QUEL interface to C, equel \*(tx" +\s-1PS2\s0:10\*(tx50 +.X "embolden" +ms(7)\*(tx1, \s-1USD\s0:24\*(tx10 +.X "EMFILE \*(tx Too many open files" +intro(2)\*(tx2 +.X "EMLINK \*(tx Too many links" +intro(2)\*(tx3 +.X "EMSGSIZE \*(tx Message too long" +intro(2)\*(tx3 +.X "EMT instruction" +sigvec(2)\*(tx1, signal(3c)\*(tx1 +.X "Emulex SC\*(tx21 and SC\*(tx31 controllers" +up(4) +.X "Emulex SC750" +hp(4)\*(tx1 +.X "Emulex TC\*(tx11 controller" +tm(4) +.X "en \*(tx Xerox 3 Mb/s Ethernet interface" +en(4) +.X "ENAMETOOLONG \*(tx File name too long" +intro(2)\*(tx5 +.X "encapsulation" +\s-1SMM\s0:13\*(tx28 +.X "encapsulation, message" +\s-1USD\s0:8\*(tx14,25 +.X "encapsulation, trailer" +arp(4p), vv(4), arp(8c), ifconfig(8c), \s-1SMM\s0:13\*(tx27,30, \s-1SMM\s0:15\*(tx12,26 +.X "enclosing loops" +\s-1PS2\s0:8\*(tx6 +.X "encode/decode, crypt \*(tx" +crypt(1) +.X "encrypt and decrypt the contents of the file" +\s-1USD\s0:16\*(tx2, \s-1SMM\s0:12\*(tx15 +.X "encrypted files" +crypt(1), ed(1)\*(tx1,5, \s-1SMM\s0:17\*(tx2 +.X "encrypted passwords" +crypt(3), getgrent(3), group(5), passwd(5), adduser(8), \s-1SMM\s0:17\*(tx3, \s-1SMM\s0:18\*(tx5 +.X "encryption algorithm" +\s-1SMM\s0:17\*(tx3, \s-1SMM\s0:18\*(tx3 +.X "encryption, crypt, setkey, encrypt \*(tx DES" +crypt(3) +.X "encryption, password" +crypt(3) +.X "END=" +\s-1PS1\s0:2\*(tx22 +.X "end, endif, endsw shell command" +csh(1)\*(tx11 +.X "end markers" +\s-1USD\s0:32\*(tx3,10..11 +.X "end of a file, adding something to the" +\s-1USD\s0:13\*(tx12 +.X "end of a line" +\s-1USD\s0:12\*(tx9 +.X "end of a sentence" +\s-1USD\s0:24\*(tx12 +.X "end of file, print lines near" +tail(1) +.X "end of the last file" +\s-1USD\s0:24\*(tx17 +.X "END, pattern" +\s-1USD\s0:19\*(tx3 +.X "end statements" +\s-1PS2\s0:6\*(tx7,10,23 +.X "end this page, but do not begin the next page, .ep" +\s-1USD\s0:23\*(tx4 +.X "endfile statements" +\s-1PS1\s0:3\*(tx4,11 +.X "endfsent" +getfsent(3) +.X "endgrent" +getgrent(3) +.X "endhostent" +gethostbyname(3) +.X "endmarker" +\s-1PS1\s0:15\*(tx4,7 +.X "endnetent" +getnetent(3n) +.X "endnotes" +\s-1USD\s0:21\*(tx2 +.X "end\*(txof\*(txfile" +\s-1USD\s0:1\*(tx3, \s-1USD\s0:4\*(tx37, fopen(3s), fseek(3s), ioinit(3f), \s-1PS1\s0:16\*(tx7 +.X "end\*(txof\*(txfile character" +csh(1)\*(tx3, stty(1)\*(tx2, pty(4) +.X "end\*(txof\*(txfile condition" +getc(3s), \s-1PS1\s0:4\*(tx29, \s-1PS1\s0:6\*(tx36, \s-1PS2\s0:1\*(tx12 +.X "end\*(txof\*(txfile (ESC >)" +\s-1USD\s0:17\*(tx31 +.X "end\*(txof\*(txfile indication" +vfork(2), ferror(3s) +.X "end\*(txof\*(txfile marks" +mt(1), topen(3f), mt(4) +.X "end\*(txof\*(txfile, offset relative to" +\s-1PS1\s0:6\*(tx31 +.X "end\*(txof\*(txline (C\*(txE)" +\s-1USD\s0:17\*(tx31 +.X "End\*(txof\*(txtape (EOT)" +topen(3f) +.X "end\*(txof\*(txwindow (ESC .)" +\s-1USD\s0:17\*(tx31 +.X "endprotoent" +getprotoent(3n) +.X "endpwent" +getpwent(3) +.X "endservent" +getservent(3n) +.X "endttyent" +getttyent(3) +.X "endusershell" +getusershell(3) +.X "endwin()" +\s-1PS1\s0:18\*(tx6,14 +.X "ENETDOWN \*(tx Network is down" +intro(2)\*(tx4, \s-1PS1\s0:8\*(tx6 +.X "ENETRESET \*(tx Network dropped connection on reset" +intro(2)\*(tx4 +.X "ENETUNREACH \*(tx Network is unreachable" +intro(2)\*(tx4, \s-1PS1\s0:8\*(tx7 +.X "ENFILE \*(tx File table overflow" +intro(2)\*(tx2 +.X "English Text" +\s-1USD\s0:17\*(tx11, \s-1USD\s0:30\*(tx3, \s-1USD\s0:32\*(tx2 +.X "English words" +lookbib(1), \s-1USD\s0:8\*(tx89, \s-1SMM\s0:12\*(tx22, \s-1SMM\s0:13\*(tx29, \s-1SMM\s0:14\*(tx11 +.X "Enigma" +crypt(1) +.X "ENOBUFS \*(tx No buffer space available" +intro(2)\*(tx4 +.X "ENODEV \*(tx No such device" +intro(2)\*(tx2, \s-1SMM\s0:12\*(tx14, \s-1SMM\s0:13\*(tx17 +.X "ENOENT \*(tx No such file or directory" +intro(2)\*(tx1 +.X "ENOEXEC \*(tx Exec format error" +intro(2)\*(tx1 +.X "ENOMEM \*(tx Not enough memory" +intro(2)\*(tx2 +.X "ENOPROTOOPT \*(tx Option not supported by protocol" +intro(2)\*(tx4 +.X "ENOSPC \*(tx No space left on device" +intro(2)\*(tx3 +.X "ENOTBLK \*(tx Block device required" +intro(2)\*(tx2 +.X "ENOTCONN \*(tx Socket is not connected" +intro(2)\*(tx4 +.X "ENOTDIR \*(tx Not a directory" +intro(2)\*(tx2 +.X "ENOTEMPTY \*(tx Directory not empty" +intro(2)\*(tx5 +.X "ENOTSOCK \*(tx Socket operation on non\*(txsocket" +intro(2)\*(tx3 +.X "ENOTTY \*(tx Inappropriate ioctl for device" +intro(2)\*(tx3 +.X "enroll \*(tx secret mail" +xsend(1) +.X "entering text" +\s-1USD\s0:14\*(tx2,5,23 +.X "Enterprise" +\s-1USD\s0:34\*(tx1,12 +.X "entries, individual" +\s-1SMM\s0:10\*(tx6, \s-1SMM\s0:19\*(tx7 +.X "entry, data" +\s-1USD\s0:28\*(tx4, \s-1USD\s0:29\*(tx1,3 +.X "entry field" +\s-1PS2\s0:9\*(tx7,10,66,104 +.X "entry file" +lookbib(1), \s-1USD\s0:30\*(tx2..5 +.X "entry, file table" +\s-1SMM\s0:2\*(tx30 +.X "entry, function" +gprof(1) +.X "entry, graph profile" +gprof(1), \s-1SMM\s0:7\*(tx37 +.X "entry, index" +\s-1USD\s0:22\*(tx8 +.X "entry, i\*(txnode" +dir(5) +.X "entry, input table" +\s-1USD\s0:28\*(tx5 +.X "entry, page table" +\s-1SMM\s0:13\*(tx6,16,18 +.X "entry, password file" +getlogin(3), getpwent(3), intro(3)\*(tx4, rexecd(8c), rshd(8c) +.X "entry points" +adb(1)\*(tx5, ld(1), execl(3), a.out(5)\*(tx1, dbx(5)\*(tx1, \s-1PS1\s0:2\*(tx14,17,21, \s-1PS1\s0:10\*(tx13, \s-1PS2\s0:3\*(tx7, \s-1PS2\s0:4\*(tx5, \s-1PS2\s0:9\*(tx63,65..66,107, \s-1SMM\s0:15\*(tx9 +.X "entry, process" +lastcomm(1), \s-1SMM\s0:13\*(tx4 +.X "entry, process table" +\s-1SMM\s0:13\*(tx5 +.X "entry, Reference" +\s-1USD\s0:31\*(tx2,5,13 +.X "entry, routing" +inet(4f), intro(4n)\*(tx2, \s-1SMM\s0:13\*(tx21, \s-1SMM\s0:15\*(tx22 +.X "entry, stab" +dbx(5)\*(tx1,5, stab(5) +.X "entry, termcap" +tn3270(1), window(1)\*(tx1,7, \s-1USD\s0:9\*(tx10, map3270(5)\*(tx1, termcap(5)\*(tx3,6,14 +.X "entry, text" +\s-1SMM\s0:13\*(tx3,16..17 +.X "entry, top" +\s-1SMM\s0:19\*(tx10 +.X "enumeration constants" +\s-1PS1\s0:1\*(tx3,31 +.X "enumeration declarations" +\s-1PS1\s0:1\*(tx7,17,25, \s-1SMM\s0:19\*(tx6 +.X "environ \*(tx user environment" +login(1), environ(7), execve(2), execl(3), getenv(3) +.X "environment, install\*(txmh \*(tx initialize the MH" +install-mh(8) +.X "environment names" +\s-1USD\s0:25\*(tx12, getenv(3), ioinit(3f) +.X "environment, networking" +\s-1SMM\s0:2\*(tx11, \s-1SMM\s0:7\*(tx38 +.X "environment, printenv \*(tx print out the" +printenv(1) +.X "environment, process" +execl(3) +.X "environment, SHELL" +pdx(1)\*(tx3, tset(1)\*(tx2, term(7), \s-1USD\s0:4\*(tx16, \s-1USD\s0:17\*(tx44 +.X "environment, user" +sh(1)\*(tx4, su(1), environ(7), \s-1USD\s0:25\*(tx12, \s-1SMM\s0:7\*(tx36 +.X "environment variables (see under specific variable names)" +csh(1)\*(tx14,17, printenv(1), \s-1USD\s0:8\*(tx36,87..89, \s-1USD\s0:11\*(tx12, getenv(3), ioinit(3f), \s-1SMM\s0:12\*(tx7 +.X "environment variables, getenv \*(tx get value of" +getenv(3f) +.X "envp" +execve(2), execl(3) +.X "ENXIO \*(tx no such device or address" +intro(2)\*(tx1, \s-1SMM\s0:12\*(tx13, \s-1SMM\s0:13\*(tx12 +.X "eof character" +telnet(1c) +.X "EOF (see also end\*(txof\*(txfile)" +\s-1USD\s0:1\*(tx3, \s-1USD\s0:4\*(tx37, \s-1PS1\s0:18\*(tx13, \s-1PS2\s0:3, \s-1PS2\s0:9\*(tx82, \s-1PS2\s0:10\*(tx77 +.X "eof\*(txprocess" +\s-1USD\s0:17\*(tx32 +.X "eoln" +\s-1PS1\s0:4\*(tx30 +.X "EOPNOTSUPP \*(tx Operation not supported on socket" +intro(2)\*(tx4 +.X "EPERM \*(tx Not owner" +intro(2)\*(tx1, \s-1SMM\s0:12\*(tx14, \s-1SMM\s0:13\*(tx8 +.X "EPFNOSUPPORT \*(tx Protocol family not supported" +intro(2)\*(tx4 +.X "EPIPE \*(tx Broken pipe" +intro(2)\*(tx3 +.X "EPROTONOSUPPORT \*(tx Protocol not supported" +intro(2)\*(tx4 +.X "EPROTOTYPE \*(tx Protocol wrong type for socket" +intro(2)\*(tx4 +.X "eqn and tbl" +\s-1USD\s0:28\*(tx7 +.X "eqn, debugging" +\s-1USD\s0:27\*(tx10 +.X "eqn delimiters" +\s-1USD\s0:28\*(tx2,7, \s-1USD\s0:32\*(tx11 +.X "eqn, example" +\s-1USD\s0:1\*(tx11 +.X "eqn formal grammar" +\s-1USD\s0:26\*(tx5 +.X "eqn language" +\s-1USD\s0:2\*(tx1,5, \s-1USD\s0:26\*(tx7, \s-1USD\s0:27\*(tx1 +.X "eqn, learning about" +learn(1) +.X "eqn, \*(txms and" +\s-1USD\s0:27\*(tx6 +.X "eqn, neqn, checkeq \*(tx typeset mathematics" +eqn(1), tbl(1), \s-1USD\s0:22\*(tx13, \s-1USD\s0:26\*(tx3..5, \s-1USD\s0:27 +.X "eqnchar \*(tx special character definitions for eqn" +eqnchar(7) +.X "equal width columns" +\s-1USD\s0:28\*(tx5 +.X "equally\*(txspaced words in adjusted lines" +\s-1USD\s0:24\*(tx2 +.X "equation, .EN End" +\s-1USD\s0:23\*(tx7 +.X "equation, .EQ Begin" +\s-1USD\s0:23\*(tx7 +.X "equation number" +ms(7)\*(tx2, \s-1USD\s0:20\*(tx6, \s-1USD\s0:22\*(tx15, \s-1USD\s0:27\*(tx2 +.X "equation typesetting, a large example" +\s-1USD\s0:27\*(tx8 +.X "equations" +\s-1USD\s0:20\*(tx6, \s-1USD\s0:22\*(tx13, \s-1USD\s0:27\*(tx2 +.X "equations, display" +\s-1USD\s0:27\*(tx1,7..8 +.X "equations, shorthand for in\*(txline" +\s-1USD\s0:27\*(tx7 +.X "equations within tables" +\s-1USD\s0:28\*(tx7 +.X "equel \*(tx Embedded QUEL interface to C" +\s-1PS2\s0:10\*(tx50 +.X "EQUEL run\*(txtime support library, libq \*(tx" +\s-1PS2\s0:10\*(tx68 +.X "EQUEL statements" +\s-1PS2\s0:10\*(tx51..52,69 +.X "equivalence statements" +\s-1PS1\s0:2\*(tx8,12 +.X "equivalenced variables" +f77(1)\*(tx2 +.X "ERANGE \*(tx Result too large" +intro(2)\*(tx3, exp(3m), ieee(3m), infnan(3m) +.X "erase" +plot(3f) +.X "erase()" +\s-1PS1\s0:18\*(tx10 +.X "erase and kill processing" +stty(1)\*(tx1 +.X "erase character" +stty(1)\*(tx1, telnet(1c)\*(tx2, tset(1), \s-1USD\s0:1\*(tx3, tty(4)\*(tx3, gettytab(5)\*(tx3 +.X "erase\*(txbuffer" +\s-1USD\s0:17\*(tx32 +.X "erasechar()" +\s-1PS1\s0:18\*(tx14 +.X "erasing text" +\s-1USD\s0:17\*(tx4 +.X "erf, erfc \*(tx error functions" +erf(3m) +.X "EROFS \*(tx Read\*(txonly file system" +intro(2)\*(tx3 +.X "ERR=" +\s-1PS1\s0:2\*(tx22 +.X "errno" +intro(2)\*(tx1, ptrace(2), perror(3), \s-1PS1\s0:6\*(tx5, \s-1PS1\s0:8\*(tx8 +.X "error \*(tx analyze and disperse compiler error messages" +\s-1SMM\s0:1\*(tx34 +.X "error and echo protocols" +\s-1SMM\s0:13\*(tx29 +.X "error, bus" +\s-1PS1\s0:11\*(tx3..4, \s-1PS2\s0:9\*(tx81 +.X "error code" +\s-1PS1\s0:3\*(tx4, \s-1PS1\s0:6\*(tx5, \s-1PS1\s0:8\*(tx25, \s-1PS2\s0:3\*(tx11, \s-1PS2\s0:5\*(tx5, \s-1PS2\s0:9\*(tx57 +.X "error codes" +perror(3), wait(3f), \s-1SMM\s0:12\*(tx13 +.X "error conditions" +\s-1USD\s0:24\*(tx26, intro(2)\*(tx1, ndbm(3), perror(3f), syslog(3), \s-1PS1\s0:6\*(tx5, \s-1PS1\s0:8\*(tx3, \s-1PS1\s0:9\*(tx3, \s-1PS1\s0:10\*(tx10, \s-1PS1\s0:15\*(tx28, \s-1SMM\s0:5\*(tx9, \s-1SMM\s0:10\*(tx10 +.X "error, correctable ECC" +format(8v)\*(tx1 +.X "error detection" +format(8v)\*(tx1, \s-1SMM\s0:12\*(tx16 +.X "error, device" +init(8) +.X "error diagnostics" +\s-1PS1\s0:1\*(tx28, \s-1PS1\s0:4\*(tx18,21,41, \s-1PS1\s0:5\*(tx13, \s-1SMM\s0:12\*(tx10 +.X "error files" +\s-1PS1\s0:17\*(tx6, \s-1PS2\s0:3\*(tx3,6,13 +.X "error handlers" +\s-1USD\s0:3\*(tx18, setjmp(3), \s-1PS1\s0:15\*(tx2,7,16, \s-1PS2\s0:3\*(tx4, \s-1PS2\s0:9\*(tx113..116, \s-1PS2\s0:10\*(tx75, \s-1SMM\s0:12\*(tx15, \s-1SMM\s0:13\*(tx19 +.X "error indication" +ptrace(2), ferror(3s), tty(4)\*(tx2, \s-1SMM\s0:2\*(tx33 +.X "error message file" +mkstr(1) +.X "error message parsing" +\s-1USD\s0:17\*(tx22 +.X "error message summary, Decomposition" +\s-1PS2\s0:10\*(tx83 +.X "error message summary, One Variable Query Processor" +\s-1PS2\s0:10\*(tx82 +.X "error message summary, Query Modification" +\s-1PS2\s0:10\*(tx80 +.X "error messages" +error(1), jove(1)\*(tx1, mkstr(1), pi(1), \s-1USD\s0:1\*(tx6, \s-1USD\s0:3\*(tx18, \s-1USD\s0:4\*(tx36,41, \s-1USD\s0:8\*(tx62, \s-1USD\s0:12\*(tx6, \s-1USD\s0:14\*(tx6, \s-1USD\s0:16\*(tx16, \s-1USD\s0:17\*(tx22,28, \s-1USD\s0:24\*(tx26, perror(3f), syslog(3), printcap(5), \s-1PS1\s0:2\*(tx14, \s-1PS1\s0:3\*(tx6,8, \s-1PS1\s0:4\*(tx10,21..24, \s-1PS1\s0:5\*(tx8, \s-1PS1\s0:14\*(tx15, \s-1PS1\s0:15\*(tx17..18, \s-1PS2\s0:3\*(tx5, \s-1PS2\s0:7\*(tx17, \s-1PS2\s0:9\*(tx39,42..43,55,67,115..116,152, \s-1PS2\s0:10\*(tx52,56,66..69,75..76,82,84, config(8), implogd(8c), \s-1SMM\s0:1\*(tx22,45..46, \s-1SMM\s0:2\*(tx4, \s-1SMM\s0:7\*(tx9,12,19,28,37, \s-1SMM\s0:9\*(tx12, \s-1SMM\s0:10\*(tx9,18, \s-1SMM\s0:11\*(tx9, \s-1SMM\s0:12\*(tx7,9,11,16,20, \s-1SMM\s0:15\*(tx19, \s-1SMM\s0:19\*(tx2 +.X "error numbers" +intro(2)\*(tx1, perror(3), \s-1PS1\s0:3\*(tx6,9, \s-1PS1\s0:8\*(tx8,10, \s-1PS2\s0:3\*(tx7, \s-1PS2\s0:10\*(tx52,66,69,75, rmt(8c), \s-1SMM\s0:15\*(tx6 +.X "error output" +\s-1USD\s0:24\*(tx5,26, \s-1SMM\s0:6\*(tx3 +.X "error packets" +\s-1SMM\s0:13\*(tx20,24,27 +.X "error protocol" +ns(4f) +.X "error, recoverable ECC" +hk(4), hp(4)\*(tx4, up(4)\*(tx3 +.X "error recovery" +\s-1PS1\s0:4\*(tx20, \s-1PS1\s0:15\*(tx7,9,18,21,24,28, \s-1SMM\s0:13\*(tx32 +.X "error returns" +intro(2)\*(tx1, \s-1PS1\s0:6\*(tx25, \s-1PS2\s0:1\*(tx5,8, \s-1PS2\s0:10\*(tx74..75, \s-1SMM\s0:7\*(tx38 +.X "error rules" +\s-1PS1\s0:15\*(tx16..17 +.X "error, standard" +echo(1), setbuf(3s), stdio(3s) +.X "error status" +getsockopt(2), \s-1PS1\s0:7\*(tx14,22, \s-1PS1\s0:8\*(tx9, \s-1SMM\s0:12\*(tx14, \s-1SMM\s0:13\*(tx4 +.X "error, UNIBUS adapter" +dh(4), dhu(4), dmf(4), dmz(4) +.X "error, unrecoverable" +hp(4)\*(tx4 +.X "errorbells" +\s-1USD\s0:16\*(tx16 +.X "error\*(txhandling statements" +math(3m)\*(tx5 +.X "errorrc" +error(1)\*(tx2 +.X "errors" +syslog(3), \s-1PS2\s0:5\*(tx6, \s-1PS2\s0:9\*(tx49, \s-1PS2\s0:10\*(tx4..6,74,76..84, \s-1SMM\s0:12\*(tx5 +.X "errors, asynchronous" +getsockopt(2) +.X "errors, C compilation" +\s-1USD\s0:17\*(tx40 +.X "errors, compilation" +\s-1PS1\s0:14\*(tx8, \s-1PS2\s0:9\*(tx126 +.X "errors, disk surface" +\s-1SMM\s0:1\*(tx10 +.X "errors, .../files/error7_? \*(tx files with INGRES" +\s-1PS2\s0:10\*(tx66 +.X "errors, hard I/O" +\s-1SMM\s0:1\*(tx63, \s-1SMM\s0:13\*(tx31 +.X "errors, INGRES" +\s-1PS2\s0:10\*(tx4,66,69 +.X "errors, I/O" +intro(2)\*(tx1, vhangup(2), \s-1PS1\s0:3\*(tx6, \s-1PS1\s0:4\*(tx25..26, \s-1PS2\s0:1\*(tx5 +.X "errors, program" +signal(3c)\*(tx1 +.X "errors, runtime" +\s-1PS1\s0:4\*(tx15,26,43..44, \s-1PS2\s0:10\*(tx50..51, \s-1SMM\s0:22\*(tx2 +.X "errors, spelling" +\s-1USD\s0:17\*(tx22, \s-1USD\s0:32\*(tx1, \s-1SMM\s0:12\*(tx19 +.X "errors, Syntax" +\s-1PS1\s0:4\*(tx10,12,18..19, \s-1PS1\s0:5\*(tx8, \s-1PS1\s0:15\*(tx16..18,21,28, \s-1PS2\s0:7\*(tx28, \s-1PS2\s0:8\*(tx10, \s-1PS2\s0:9\*(tx71, \s-1PS2\s0:10\*(tx78 +.X "errors, system" +perror(3f), \s-1SMM\s0:7\*(tx36 +.X "errors, tape" +ht(4), mt(4), tm(4), ut(4), restore(8)\*(tx2 +.X "errors, transient" +\s-1SMM\s0:7\*(tx38, \s-1SMM\s0:12\*(tx15 +.X "errors, traper \*(tx trap arithmetic" +traper(3f) +.X "errors, typing" +csh(1)\*(tx3, \s-1USD\s0:12\*(tx5, \s-1USD\s0:13\*(tx6, \s-1USD\s0:14\*(tx6,9,14 +.X "Errors\*(txTo:" +\s-1SMM\s0:7\*(tx12 +.X "error\*(txwindow\*(txsize (variable)" +\s-1USD\s0:17\*(tx32 +.X "errprint(`fatal error')" +\s-1PS1\s0:17\*(tx6 +.X "escape characters" +csh(1)\*(tx2, mail(1)\*(tx4..5, rlogin(1c), tip(1c)\*(tx3, tn3270(1), window(1)\*(tx1..2,6, \s-1USD\s0:4\*(tx37, \s-1USD\s0:7\*(tx10,18, \s-1USD\s0:17\*(tx2,4,25, \s-1USD\s0:24\*(tx8,19, \s-1PS1\s0:15\*(tx3, \s-1PS2\s0:8\*(tx9, \s-1PS2\s0:9\*(tx25,50,69, \s-1SMM\s0:12\*(tx10,12 +.X "escape key" +csh(1)\*(tx2, window(1)\*(tx2, \s-1USD\s0:17\*(tx3,24 +.X "escape sequences" +more(1)\*(tx1, sed(1)\*(tx1, \s-1USD\s0:15\*(tx27, \s-1USD\s0:17\*(tx24, \s-1USD\s0:24\*(tx20..21, lib2648(3x)\*(tx1, tty(4)\*(tx4, termcap(5)\*(tx6,12, \s-1PS1\s0:1\*(tx2, \s-1PS2\s0:1\*(tx5, \s-1PS2\s0:10\*(tx51, \s-1SMM\s0:9\*(tx10 +.X "escapes, backslash" +L.sys(5), \s-1PS1\s0:2\*(tx8, \s-1PS2\s0:10\*(tx27, \s-1SMM\s0:9\*(tx16 +.X "escapes, C" +od(1) +.X "escapes, list of mail options, commands," +\s-1USD\s0:7\*(tx23 +.X "escapes, shell" +\s-1USD\s0:15\*(tx11, \s-1USD\s0:16\*(tx4,12 +.X "escapes, tilde" +mail(1)\*(tx4, tip(1c)\*(tx1, \s-1USD\s0:7\*(tx8..10,15,23..24 +.X "escaping conventions" +csh(1)\*(tx1, \s-1USD\s0:13\*(tx3 +.X "ESHUTDOWN \*(tx Can't send after socket shutdown" +intro(2)\*(tx5 +.X "ESOCKTNOSUPPORT \*(tx Socket type not supported" +intro(2)\*(tx4 +.X "ESPIPE \*(tx Illegal seek" +intro(2)\*(tx3, \s-1SMM\s0:12\*(tx13, \s-1SMM\s0:13\*(tx12 +.X "ESRCH \*(tx No such process" +intro(2)\*(tx1, \s-1SMM\s0:12\*(tx13, \s-1SMM\s0:13\*(tx8 +.X "establishing a stream connection" +\s-1PS1\s0:7\*(tx18 +.X "etext" +ld(1) +.X "Ethernet addresses" +de(4), ec(4), ex(4), il(4), ix(4), qe(4), arp(8c), \s-1SMM\s0:2\*(tx13, \s-1SMM\s0:13\*(tx27,30 +.X "Ethernet controller" +\s-1SMM\s0:13\*(tx30..31 +.X "Ethernet drivers" +\s-1SMM\s0:12\*(tx17, \s-1SMM\s0:13\*(tx27..28 +.X "Ethernet interfaces" +de(4), ec(4), en(4), ex(4), il(4), ix(4), np(4), qe(4), \s-1SMM\s0:13\*(tx28 +.X "Ethernet network" +arp(4p), de(4), ec(4), en(4), ex(4), il(4), ix(4), qe(4), ifconfig(8c), \s-1SMM\s0:1\*(tx38,41..42,50, \s-1SMM\s0:10\*(tx12, \s-1SMM\s0:12\*(tx17, \s-1SMM\s0:13\*(tx25,27..30, \s-1SMM\s0:15\*(tx20 +.X "etime, dtime \*(tx return elapsed execution time" +etime(3f) +.X "ETIMEDOUT \*(tx Connection timed out" +intro(2)\*(tx5, \s-1PS1\s0:8\*(tx6 +.X "etiquette, USENET" +\s-1USD\s0:10\*(tx1 +.X "etx" +tty(4)\*(tx5 +.X "ETXTBSY \*(tx Text file busy" +intro(2)\*(tx3 +.X "Euclidean distance, hypot \*(tx" +hypot(3m) +.X "Europe" +\s-1SMM\s0:12\*(tx14 +.X "eval \*(tx Bourne shell command" +sh(1)\*(tx1 +.X "eval shell command" +csh(1)\*(tx11 +.X "evalhook" +\s-1PS2\s0:9\*(tx4 +.X "evaluation and quoting" +\s-1USD\s0:3\*(tx16 +.X "evaluation, functional" +\s-1PS2\s0:9\*(tx60 +.X "evaluation, overflow and divide check in expression" +\s-1PS1\s0:1\*(tx6 +.X "evaluation process" +\s-1PS2\s0:9\*(tx56..57,136 +.X "Evans and Sutherland Picture System 2" +ps(4) +.X "even footers, odd and" +\s-1USD\s0:21\*(tx3 +.X "even headers, odd and" +\s-1USD\s0:21\*(tx3 +.X "Evening" +L.sys(5), \s-1SMM\s0:9\*(tx10,14..15 +.X "event numbers" +csh(1)\*(tx4,18 +.X "eventual resting places" +\s-1USD\s0:15\*(tx10, \s-1SMM\s0:1\*(tx22 +.X "EWOULDBLOCK \*(tx Operation would block" +fcntl(2), flock(2), intro(2)\*(tx3, recv(2), tty(4)\*(tx2, \s-1PS1\s0:6\*(tx19,26, \s-1PS1\s0:8\*(tx25, \s-1SMM\s0:15\*(tx7 +.X "ex" +ctags(1), \s-1SMM\s0:12\*(tx5,17 +.X "ex \*(tx Excelan 10 Mb/s Ethernet interface" +ex(4) +.X "ex, edit \*(tx text editor" +ex(1), fmt(1), \s-1USD\s0:14\*(tx1,22, \s-1USD\s0:15\*(tx1,13,21, \s-1USD\s0:16 +.X "ex limitations" +\s-1USD\s0:16\*(tx19 +.X "ex, line addressing primitives in" +\s-1USD\s0:16\*(tx4 +.X "ex option descriptions" +\s-1USD\s0:16\*(tx15 +.X "Ex Reference Manual" +\s-1USD\s0:16 +.X "ex, startup file for" +hier(7)\*(tx5 +.X "ex, vi \*(tx screen oriented (visual) display editor based on" +vi(1) +.X "exact matches" +\s-1USD\s0:14\*(tx10..11, \s-1USD\s0:30\*(tx1 +.X "examining the kernel" +\s-1SMM\s0:3 +.X "examining the messages in a folder" +\s-1USD\s0:8\*(tx2 +.X "example of macros" +\s-1USD\s0:25\*(tx8 +.X "example of use of curses" +\s-1PS1\s0:18\*(tx22 +.X "examples, awk" +awk(1) +.X "examples, lex" +\s-1PS1\s0:16\*(tx9 +.X "examples, tutorial" +\s-1USD\s0:24\*(tx16,26,28, \s-1USD\s0:31\*(tx13, \s-1SMM\s0:20\*(tx3,5 +.X "Excelan" +ex(4), \s-1SMM\s0:12\*(tx17 +.X "Excelan 204" +\s-1SMM\s0:13\*(tx2 +.X "except command" +rdist(1)\*(tx3 +.X "exception, Divide\*(txby\*(txZero" +infnan(3m) +.X "exception, floating point" +intro(3)\*(tx1, math(3m)\*(tx4..5, signal(3c)\*(tx1 +.X "exception handling" +math(3m)\*(tx6, \s-1PS2\s0:9\*(tx3..4,113 +.X "exceptional condition" +\s-1PS1\s0:6\*(tx19 +.X "exception\*(txhandling" +infnan(3m) +.X "exceptions, arithmetic" +trapov(3f), trpfpe(3f) +.X "Exceptions to the ANSI Fortran Standard" +\s-1PS1\s0:3\*(tx10 +.X "except_pat command" +rdist(1)\*(tx3 +.X "exchange, packet" +\s-1PS1\s0:6\*(tx33, \s-1PS1\s0:8\*(tx38,40 +.X "exchange\*(txpoint\*(txand\*(txmark (C\*(txX C\*(txX)" +\s-1USD\s0:17\*(tx32 +.X "exchanging access rights" +\s-1PS1\s0:6\*(tx35 +.X "exclamation mark" +\s-1USD\s0:14\*(tx20, \s-1SMM\s0:7\*(tx28 +.X "exclusive access facility" +\s-1PS1\s0:6\*(tx28 +.X "exclusive access to a file" +open(2), \s-1SMM\s0:12\*(tx13, \s-1SMM\s0:13\*(tx12 +.X "exclusive locks" +flock(2), \s-1SMM\s0:14\*(tx12 +.X "exdented paragraph" +\s-1USD\s0:21\*(tx2 +.X "EXDEV \*(tx Cross\*(txdevice link" +intro(2)\*(tx2 +.X "exec" +lastcomm(1) +.X "exec \*(tx Bourne shell command" +sh(1)\*(tx1 +.X "executable file magic numbers" +\s-1PS1\s0:10\*(tx9 +.X "executable files" +cc(1)\*(tx2, chmod(1), f77(1)\*(tx2, ls(1), pc(1), sh(1)\*(tx4, which(1), \s-1USD\s0:1\*(tx10, \s-1USD\s0:3\*(tx5,10, \s-1USD\s0:8\*(tx8, \s-1USD\s0:16\*(tx6, chmod(2), execl(3), nlist(3), a.out(5)\*(tx1, \s-1PS1\s0:11\*(tx1, sticky(8), \s-1SMM\s0:1\*(tx43, \s-1SMM\s0:10\*(tx21, \s-1SMM\s0:19\*(tx12 +.X "execute access" +csh(1)\*(tx9 +.X "execute file format" +\s-1SMM\s0:9\*(tx4 +.X "execute permission" +access(3f), \s-1PS1\s0:6\*(tx29 +.X "executed program" +sh(1)\*(tx4, execve(2) +.X "execute\*(txkeyboard\*(txmacro (C\*(txX E)" +\s-1USD\s0:17\*(tx32 +.X "execute\*(txmacro" +\s-1USD\s0:17\*(tx32 +.X "execute\*(txnamed\*(txcommand (ESC X)" +\s-1USD\s0:17\*(tx32 +.X "execution, background" +csh(1)\*(tx1 +.X "execution, Command" +csh(1)\*(tx18, \s-1USD\s0:3\*(tx21, \s-1SMM\s0:9\*(tx12 +.X "execution, conditional" +csh(1)\*(tx1 +.X "execution files" +uuxqt(8c), \s-1SMM\s0:9\*(tx2 +.X "execution machine" +\s-1SMM\s0:9\*(tx4 +.X "execution profiles" +cc(1)\*(tx1, f77(1)\*(tx1, gprof(1), pc(1), pi(1), pxp(1), \s-1USD\s0:1\*(tx13, monitor(3), \s-1PS1\s0:4\*(tx15..16,36..37 +.X "execution, remote" +rcp(1c), uux(1c), rexecd(8c), rshd(8c), uuxqt(8c), \s-1SMM\s0:9\*(tx8 +.X "execution status of a command" +\s-1USD\s0:4\*(tx27 +.X "execution, suspend" +sleep(1), sleep(3), usleep(3) +.X "execution time" +gprof(1), time(1), \s-1USD\s0:18\*(tx2, etime(3f), \s-1PS1\s0:3\*(tx3, \s-1PS1\s0:4\*(tx15,37, \s-1PS2\s0:10\*(tx26,51, \s-1SMM\s0:12\*(tx2 +.X "execve \*(tx execute a file" +csh(1)\*(tx18, environ(7), close(2), execve(2), open(2), profil(2), ptrace(2), sigvec(2)\*(tx2, vfork(2), execl(3), acct(5) +.X "execve(name, argv, envp)" +\s-1PS1\s0:6\*(tx8 +.X "execvp" +\s-1SMM\s0:12\*(tx15 +.X "EXINIT" +environ(7), \s-1USD\s0:15\*(tx5,10..16,19, \s-1USD\s0:16\*(tx1,18 +.X "existence, test for" +access(3f) +.X "existing relation, index \*(tx create a secondary index on an" +\s-1PS2\s0:10\*(tx16 +.X "exit" +gprof(1), close(2), exit(2), assert(3), fclose(3s), \s-1PS2\s0:3\*(tx4, \s-1PS2\s0:7\*(tx14,20, \s-1PS2\s0:10\*(tx27 +.X "exit \*(tx Bourne shell command" +sh(1)\*(tx1 +.X "exit \*(tx terminate a process after flushing any pending output" +exit(3) +.X "exit \*(tx terminate process with status" +exit(3f) +.X "exit code" +expr(1), intro(1), \s-1USD\s0:11\*(tx14, \s-1USD\s0:17\*(tx37, \s-1PS2\s0:9\*(tx75,78..80, \s-1SMM\s0:5\*(tx22, \s-1SMM\s0:6\*(tx5 +.X "exit from NROFF/TROFF" +\s-1USD\s0:24\*(tx25 +.X "exit shell command" +csh(1)\*(tx11, \s-1USD\s0:4\*(tx31,37 +.X "exit status" +csh(1)\*(tx18, sh(1), test(1), \s-1USD\s0:3\*(tx9..10, \s-1USD\s0:4\*(tx27,37, wait(2), \s-1PS1\s0:6\*(tx7, \s-1PS1\s0:8\*(tx26, \s-1PS1\s0:13\*(tx6,10,14,21, \s-1PS1\s0:14\*(tx14, \s-1SMM\s0:7\*(tx30, \s-1SMM\s0:16\*(tx4,8 +.X "Exiting and Pausing \*(tx Leaving JOVE" +\s-1USD\s0:17\*(tx5 +.X "exit\*(txjove (C\*(txX C\*(txC)" +\s-1USD\s0:17\*(tx5,32 +.X "exit(status)" +\s-1PS1\s0:6\*(tx7 +.X "exp, expm1, log, log10, log1p, pow \*(tx exponential, logarithm, power" +exp(3m) +.X "expand \*(tx make the table as wide as the current line length" +\s-1USD\s0:28\*(tx2 +.X "expand tabs" +expand(1), tip(1c)\*(tx3, tty(4)\*(tx4 +.X "expand, unexpand \*(tx expand tabs to space" +expand(1) +.X "expansion, Braces { ... } in argument" +\s-1USD\s0:4\*(tx32 +.X "expansion, macro" +\s-1USD\s0:16\*(tx11, \s-1PS2\s0:9\*(tx38,98,120,123, \s-1SMM\s0:12\*(tx22 +.X "expect/send script" +L\*(txdevices(5), L.sys(5), \s-1SMM\s0:9\*(tx10,13..17 +.X "expiration dates" +\s-1SMM\s0:10\*(tx2,14..15 +.X "Expire" +\s-1SMM\s0:11\*(tx7,11..13 +.X "expletive" +style(1) +.X "explicit commands" +\s-1SMM\s0:10\*(tx3 +.X "explicit long constants" +\s-1PS1\s0:1\*(tx2 +.X "explicit pointer conversions" +\s-1PS1\s0:1\*(tx30 +.X "explicit requests" +\s-1USD\s0:3\*(tx15, \s-1SMM\s0:19\*(tx10 +.X "exponent" +frexp(3), \s-1PS1\s0:3\*(tx5..6,11, \s-1PS1\s0:5\*(tx10, \s-1PS2\s0:6\*(tx5,8 +.X "exponential" +bc(1) +.X "exponential backoff algorithm" +ec(4), en(4) +.X "exponential function" +bc(1), \s-1USD\s0:6\*(tx6, exp(3m) +.X "export \*(tx Bourne shell command" +sh(1)\*(tx1,4, environ(7), \s-1USD\s0:3\*(tx15 +.X "expr \*(tx evaluate arguments as an expression" +expr(1) +.X "expreserve" +\s-1SMM\s0:12\*(tx5 +.X "expression evaluation, overflow and divide check in" +\s-1PS1\s0:1\*(tx6 +.X "expression, expr \*(tx evaluate arguments as an" +expr(1) +.X "expression, lvalue" +\s-1PS1\s0:1\*(tx4..8 +.X "expression matches" +\s-1USD\s0:16\*(tx14, \s-1USD\s0:18\*(tx3, \s-1USD\s0:19\*(tx6 +.X "expression operators" +\s-1PS1\s0:1\*(tx6, \s-1PS1\s0:5\*(tx5,7 +.X "expression operators, precedence of" +\s-1PS1\s0:1\*(tx6 +.X "expression parse trees" +\s-1SMM\s0:19\*(tx3 +.X "expression statements" +\s-1PS1\s0:1\*(tx6,21, \s-1PS2\s0:6\*(tx16 +.X "expression trees" +\s-1PS1\s0:9\*(tx7, \s-1PS2\s0:6\*(tx30, \s-1SMM\s0:19\*(tx3..5,8,10..11,14..16,19,23,26 +.X "expression, value of an" +\s-1PS1\s0:11\*(tx6 +.X "expressions" +csh(1)\*(tx9, dbx(1)\*(tx3, \s-1USD\s0:4\*(tx27, \s-1PS1\s0:1\*(tx6..7,31..32, \s-1PS1\s0:5\*(tx6, \s-1PS2\s0:6\*(tx9,14 +.X "expressions, arithmetic" +awk(1), m4(1), \s-1USD\s0:6\*(tx2, \s-1USD\s0:25\*(tx10, \s-1PS1\s0:15\*(tx3,11,14,24, \s-1SMM\s0:19\*(tx26 +.X "expressions, assignment operator" +\s-1SMM\s0:19\*(tx19,23..24 +.X "expressions, character" +\s-1PS1\s0:2\*(tx20,22, \s-1PS2\s0:6\*(tx11 +.X "expressions, complex" +\s-1USD\s0:6\*(tx2 +.X "expressions, constant" +\s-1PS1\s0:1\*(tx15,18,22,27 +.X "expressions, context search" +\s-1USD\s0:12\*(tx7 +.X "expressions, functional" +fp(1), \s-1PS2\s0:7\*(tx4..5,11,15, \s-1PS2\s0:10\*(tx35 +.X "expressions, integer" +\s-1PS1\s0:2\*(tx19,21, \s-1PS2\s0:6\*(tx14..15,21 +.X "expressions, lambda" +\s-1PS2\s0:9\*(tx59,103,123,136 +.X "expressions, Lisp" +\s-1USD\s0:17\*(tx34, \s-1PS2\s0:9\*(tx4,71,85,98,101,116,119,140 +.X "expressions, logical" +lint(1), \s-1USD\s0:25\*(tx11 +.X "expressions, mathematical" +\s-1USD\s0:26\*(tx2, \s-1USD\s0:27\*(tx1..2 +.X "expressions, primary" +\s-1PS1\s0:1\*(tx6..7,12 +.X "expressions, Regular" +awk(1), expr(1), grep(1), lex(1), more(1)\*(tx1, sed(1)\*(tx2, \s-1USD\s0:12\*(tx9, \s-1USD\s0:13\*(tx15, \s-1USD\s0:15\*(tx5,19, \s-1USD\s0:16\*(tx13, \s-1USD\s0:17\*(tx10,38, \s-1USD\s0:18\*(tx1, \s-1USD\s0:19\*(tx3, \s-1PS1\s0:16\*(tx1 +.X "expressions, relational" +awk(1), \s-1USD\s0:19\*(tx3, \s-1SMM\s0:19\*(tx19 +.X "Extended Fortran Language" +\s-1PS2\s0:6\*(tx1 +.X "extension, sign" +\s-1PS1\s0:1\*(tx5,31, \s-1PS2\s0:3\*(tx6, \s-1SMM\s0:12\*(tx2 +.X "extensions, Fortran language" +\s-1PS1\s0:2\*(tx6 +.X "extensions to the language Pascal" +\s-1PS1\s0:4\*(tx42 +.X "Exterior Gateway Protocol" +routed(8c)\*(tx2, \s-1SMM\s0:1\*(tx41, \s-1SMM\s0:15\*(tx22 +.X "extern declarations" +lint(1), \s-1SMM\s0:19\*(tx7 +.X "external definitions" +\s-1PS1\s0:1\*(tx24 +.X "external names" +f77(1)\*(tx2 +.X "external references" +ld(1) +.X "external symbols" +ld(1) +.X "external variables" +adb(1)\*(tx4 +.X "extra line\*(txspace" +\s-1USD\s0:24\*(tx13 +.X "extraction list" +restore(8)\*(tx2 +.X "extreme values" +flmin(3f) +.X "eyacc" +\s-1SMM\s0:12\*(tx5 +.L F +.X "f77 \*(tx Fortran 77 compiler" +error(1)\*(tx1, f77(1)\*(tx1, \s-1SMM\s0:12\*(tx5, \s-1SMM\s0:19\*(tx24 +.X "f77 I/O error codes, list of" +perror(3f) +.X "f77 I/O Library" +ioinit(3f), \s-1PS1\s0:2\*(tx27..28, \s-1PS1\s0:3, \s-1SMM\s0:12\*(tx7 +.X "f77 libraries" +\s-1PS1\s0:2\*(tx6,9,14 +.X "f77 tape I/O" +topen(3f) +.X "f77_abort" +\s-1SMM\s0:12\*(tx7 +.X "f77_dump_flag" +\s-1PS1\s0:2\*(tx6, \s-1SMM\s0:12\*(tx7 +.X "f77_dump_flag environment variable" +f77(1)\*(tx2 +.X "fabs" +floor(3m) +.X "face, bold" +\s-1USD\s0:22\*(tx17 +.X "face, smiley" +\s-1USD\s0:10\*(tx8..10 +.X "factor, warp" +\s-1USD\s0:34\*(tx3..6 +.X "factors, scaling" +\s-1USD\s0:22\*(tx12, \s-1USD\s0:23\*(tx1 +.X "failure notice" +\s-1USD\s0:8\*(tx64,104 +.X "failures, hardware" +crash(8v)\*(tx1, \s-1SMM\s0:1\*(tx5, \s-1SMM\s0:2\*(tx3, \s-1SMM\s0:5\*(tx2,4..8, \s-1SMM\s0:14\*(tx4 +.X "falloc" +malloc(3f) +.X "family, address" +netstat(1), bind(2), connect(2), intro(2)\*(tx7, socket(2), arp(4p), lo(4), ifconfig(8c), \s-1SMM\s0:12\*(tx20, \s-1SMM\s0:13\*(tx4,20..21, \s-1SMM\s0:15\*(tx4,8,10,21 +.X "family, NS protocol" +en(4), ns(4f) +.X "family, protocol" +intro(2)\*(tx4, socket(2), icmp(4p), idp(4p), inet(4f), intro(4n), ip(4p), ns(4f), pcl(4), udp(4p), ifconfig(8c), \s-1SMM\s0:13\*(tx20, \s-1SMM\s0:15\*(tx3,8..12,17,19..20,23,27 +.X "fantasy games" +\s-1USD\s0:33\*(tx2 +.X "Fast File System for UNIX" +\s-1SMM\s0:14 +.X "fastboot" +shutdown(8) +.X "fatal errors" +\s-1PS1\s0:17\*(tx6, \s-1PS2\s0:9\*(tx120 +.X "fault handling" +\s-1USD\s0:3\*(tx19 +.X "faults, compatibility mode" +sigvec(2)\*(tx3, signal(3c)\*(tx2, crash(8v)\*(tx2 +.X "faults, floating point" +trpfpe(3f) +.X "faults, hardware" +intro(2)\*(tx2, sigvec(2)\*(tx3, \s-1SMM\s0:13\*(tx32 +.X "faults, memory" +\s-1USD\s0:3\*(tx18 +.X "faults, operand" +crash(8v)\*(tx2, \s-1SMM\s0:12\*(tx16 +.X "faults, page" +systat(1)\*(tx3, vmstat(1), \s-1USD\s0:4\*(tx24,44, getrusage(2), vtimes(3c), crash(8v)\*(tx2, \s-1SMM\s0:13\*(tx13 +.X "faults, program" +dbx(1)\*(tx1, \s-1PS1\s0:4\*(tx15, \s-1PS2\s0:1\*(tx12, \s-1PS2\s0:3\*(tx10 +.X "faults, SBI" +crash(8v)\*(tx2 +.X "Fcc:" +\s-1USD\s0:8\*(tx58,64..65,83..84,96 +.X "fcheck" +fsck(8) +.X "fchmod(fd, mode)" +\s-1PS1\s0:6\*(tx30 +.X "fchown(fd, owner, group)" +chown(2), \s-1PS1\s0:6\*(tx29 +.X "fclose, fflush \*(tx close or flush a stream" +fclose(3s) +.X "fclosures" +\s-1PS2\s0:9\*(tx3,95,101 +.X "fcntl \*(tx file control" +close(2), fcntl(2), \s-1PS1\s0:8\*(tx24..26, \s-1SMM\s0:12\*(tx13 +.X "fcntl(d, cmd, arg)" +\s-1PS1\s0:6\*(tx19 +.X "fcvt" +ecvt(3) +.X "fd, argument" +flock(2) +.X "fd, descriptor" +chmod(2), select(2) +.X "fdate \*(tx return date and time in an ASCII string" +fdate(3f) +.X "FD_CLR" +\s-1PS1\s0:8\*(tx9 +.X "FD_ISSET" +\s-1PS1\s0:7\*(tx18, \s-1PS1\s0:8\*(tx10 +.X "fdopen" +fopen(3s) +.X "FD_SET" +\s-1PS1\s0:7\*(tx18, \s-1PS1\s0:8\*(tx9..10 +.X "FD_SETSIZE" +\s-1PS1\s0:8\*(tx9 +.X "FD_ZERO" +\s-1PS1\s0:7\*(tx18, \s-1PS1\s0:8\*(tx10 +.X "features, language" +\s-1USD\s0:1\*(tx14, \s-1USD\s0:6\*(tx6 +.X "features of UNIX" +\s-1USD\s0:1\*(tx13, \s-1USD\s0:2\*(tx10, \s-1USD\s0:14\*(tx3, \s-1SMM\s0:7\*(tx32, \s-1SMM\s0:15\*(tx22 +.X "fed" +\s-1SMM\s0:12\*(tx7 +.X "Federation" +\s-1USD\s0:34\*(tx1,4,10 +.X "feof" +ferror(3s) +.X "ferrors, feofs, clearerrs, fileno \*(tx stream status inquiry" +ferror(3s) +.X "fetch" +dbm(3x) +.X "FFLAGS" +make(1)\*(tx2 +.X "fflush \*(tx flush a stream" +abort(3), fclose(3s), stdio(3s) +.X "ffrac" +flmin(3f) +.X "fg, foreground command" +csh(1)\*(tx2,11, \s-1USD\s0:4\*(tx9,20,38, \s-1USD\s0:17\*(tx5 +.X "fgetc \*(tx get a character" +getc(3s), \s-1SMM\s0:1\*(tx40 +.X "F_GETFL" +\s-1PS1\s0:6\*(tx19 +.X "F_GETOWN" +\s-1PS1\s0:6\*(tx19, \s-1PS1\s0:8\*(tx26 +.X "fgets \*(tx get a string from a stream" +gets(3s) +.X "fgrep" +grep(1), \s-1USD\s0:32\*(tx11 +.X "fgrep, sed, lex, awk performance comparison, wc, grep, egrep," +\s-1USD\s0:19\*(tx6 +.X "field character" +\s-1USD\s0:31\*(tx12 +.X "field delimiter" +\s-1USD\s0:24\*(tx18 +.X "field length" +\s-1USD\s0:24\*(tx18 +.X "field separator" +\s-1USD\s0:19\*(tx2..5 +.X "field tags" +\s-1USD\s0:31\*(tx4 +.X "field variables" +\s-1USD\s0:19\*(tx5 +.X "field width" +printf(3s), scanf(3s), \s-1PS1\s0:2\*(tx24, \s-1PS1\s0:3\*(tx5,11, \s-1PS2\s0:10\*(tx56 +.X "fields" +\s-1USD\s0:19\*(tx2, \s-1USD\s0:24\*(tx4,18, dbx(5)\*(tx4, \s-1SMM\s0:19\*(tx7 +.X "fields, input" +\s-1USD\s0:19\*(tx2,5, scanf(3s) +.X "fields, print a field or" +awk(1), \s-1USD\s0:19\*(tx2 +.X "fields, records and" +\s-1USD\s0:19\*(tx2 +.X "fields, split into" +\s-1USD\s0:19\*(tx5 +.X "fields, trace" +\s-1SMM\s0:7\*(tx36..37 +.X "fields within lines" +\s-1USD\s0:19\*(tx6 +.X "fignore shell variable" +csh(1)\*(tx3 +.X "file \*(tx determine file type" +file(1) +.X "file access" +\s-1PS2\s0:3\*(tx3, \s-1SMM\s0:9\*(tx21 +.X "file, access and modify times on a" +\s-1PS1\s0:6\*(tx30 +.X "file access permissions" +intro(2)\*(tx6..7, umask(2), USERFILE(5) +.X "file, accessibility of a" +access(3f) +.X "file, accounting" +\s-1PS1\s0:6\*(tx23,42, \s-1PS2\s0:1\*(tx4 +.X "file, adding something to the end of a (see also appending)" +csh(1)\*(tx9, sh(1)\*(tx3, \s-1USD\s0:13\*(tx12, fcntl(2), open(2), fopen(3s) +.X "file addresses" +adb(1)\*(tx5, \s-1PS1\s0:10\*(tx9 +.X "file, advisory read or write lock on a" +\s-1PS1\s0:6\*(tx31 +.X "file, alias" +\s-1USD\s0:8\*(tx75, aliases(5), L.aliases(5), \s-1SMM\s0:9\*(tx14, \s-1SMM\s0:12\*(tx22 +.X "file, bibliography" +addbib(1), \s-1USD\s0:29\*(tx3,9 +.X "file, Binary" +diff(1), ftp(1c)\*(tx7, lpr(1), strings(1), uuencode(1c), uusend(1c), \s-1USD\s0:4\*(tx35,42, \s-1USD\s0:16\*(tx6, \s-1SMM\s0:9\*(tx11 +.X "file, block special" +find(1) +.X "file, C source" +ctags(1), mkstr(1), \s-1USD\s0:17\*(tx25 +.X "file, changing the name of a" +\s-1USD\s0:13\*(tx12 +.X "file, character special" +find(1), ioctl(2) +.X "file, configuration" +\s-1SMM\s0:12\*(tx22 +.X "file containing nulls" +\s-1PS1\s0:16\*(tx7 +.X "file, core" +\s-1PS1\s0:2\*(tx6, \s-1PS1\s0:10\*(tx3..4,8..10,27, \s-1PS1\s0:11\*(tx3, \s-1PS2\s0:1\*(tx13, \s-1SMM\s0:12\*(tx7 +.X "file, core \*(tx format of memory image" +adb(1)\*(tx1, \s-1USD\s0:4\*(tx42, core(5), \s-1PS1\s0:6\*(tx13, \s-1PS1\s0:10, \s-1PS1\s0:10\*(tx4,9..10, \s-1PS2\s0:3\*(tx10 +.X "file, count blocks in a" +sum(1) +.X "file, creat \*(tx create a new" +creat(2) +.X "file creation" +ls(1), \s-1PS1\s0:6\*(tx28 +.X "file creation mask (see also file mode)" +chmod(1), csh(1)\*(tx15, sh(1)\*(tx6 +.X "file creation mode mask, umask \*(tx set" +umask(2) +.X "file, cross reference" +lxref(1) +.X "file descriptor digit" +sh(1)\*(tx3, \s-1USD\s0:3\*(tx21 +.X "file descriptors" +sh(1)\*(tx3..4, test(1), \s-1USD\s0:3\*(tx15,21, \s-1USD\s0:8\*(tx77, accept(2), chown(2), close(2), creat(2), dup(2), fcntl(2), flock(2), intro(2)\*(tx1, open(2), pipe(2), ferror(3s), fopen(3s), mktemp(3), setbuf(3s), syslog(3), ttyname(3), \s-1PS1\s0:6\*(tx11,19,42, \s-1PS1\s0:7\*(tx22, \s-1PS1\s0:8\*(tx9..10,26,41, \s-1PS1\s0:18\*(tx7, \s-1PS2\s0:1\*(tx5..11, \s-1PS2\s0:3\*(tx4..10, \s-1PS2\s0:5\*(tx1, \s-1PS2\s0:10\*(tx70, getty(8), rlogind(8c), \s-1SMM\s0:2\*(tx30, \s-1SMM\s0:12\*(tx9,11,16, \s-1SMM\s0:13\*(tx5,7,9,12,15,20 +.X "file, device, and portal removal" +\s-1PS1\s0:6\*(tx29 +.X "file, encrypted" +crypt(1), ed(1)\*(tx1, \s-1USD\s0:16\*(tx2, \s-1SMM\s0:17\*(tx2 +.X "file, entry" +lookbib(1), \s-1USD\s0:30\*(tx2..5 +.X "file, eqn" +eqn(1), \s-1USD\s0:27\*(tx2,10 +.X "file, error" +\s-1PS1\s0:17\*(tx6, \s-1PS2\s0:3\*(tx3,6,13 +.X "file, error log" +\s-1SMM\s0:1\*(tx46, \s-1SMM\s0:6\*(tx7 +.X "file, exclusive access to a" +open(2), \s-1SMM\s0:12\*(tx13, \s-1SMM\s0:13\*(tx12 +.X "file, executable" +ls(1), pc(1), sh(1)\*(tx4, which(1), adventure(6), \s-1USD\s0:3\*(tx10, \s-1USD\s0:16\*(tx6, chmod(2), execl(3), nlist(3), \s-1PS1\s0:11\*(tx1, sticky(8), \s-1SMM\s0:10\*(tx21 +.X "file, form" +\s-1USD\s0:8\*(tx23,30,57 +.X "file formats" +\s-1PS1\s0:2\*(tx1,4,15, \s-1PS1\s0:10\*(tx9, \s-1PS2\s0:4\*(tx9 +.X "file, frozen configuration" +sendmail(8)\*(tx1, \s-1SMM\s0:7\*(tx8 +.X "file handling" +\s-1USD\s0:2\*(tx1..2, \s-1USD\s0:17\*(tx14 +.X "file, history" +spell(1), \s-1SMM\s0:10\*(tx3,13,16,18 +.X "file, input" +\s-1PS1\s0:1\*(tx28, \s-1PS1\s0:4\*(tx19,21,32,35,44, \s-1PS2\s0:1\*(tx12, \s-1PS2\s0:3\*(tx13, \s-1PS2\s0:10\*(tx50,56 +.X "file, input line number in the current input" +\s-1USD\s0:24\*(tx25 +.X "file I/O" +\s-1SMM\s0:2\*(tx31 +.X "file, lf" +printcap(5), \s-1SMM\s0:6\*(tx3,5 +.X "file, linked\*(txto" +find(1), ln(1), ls(1), tar(5) +.X "file locking" +chown(2), \s-1SMM\s0:14\*(tx12 +.X "file, mail" +binmail(1), mail(1)\*(tx3, sh(1)\*(tx2, \s-1USD\s0:7\*(tx14 +.X "file, mailbox" +from(1), mail(1)\*(tx3, \s-1USD\s0:4\*(tx11, comsat(8c) +.X "file, maildelivery" +\s-1USD\s0:8\*(tx35..38 +.X "file, mailing a binary" +uuencode(1c) +.X "file, mailrc (see also .mailrc)" +mail(1)\*(tx2,6, \s-1USD\s0:7\*(tx6,13 +.X "file, making a copy of a" +\s-1USD\s0:13\*(tx12 +.X "file manipulation" +\s-1USD\s0:13\*(tx2, \s-1USD\s0:16\*(tx2 +.X "file, map" +mset(1), \s-1PS2\s0:9\*(tx66,81, \s-1SMM\s0:14\*(tx2 +.X "file, mbox" +mail(1)\*(tx1,3, \s-1USD\s0:7\*(tx6 +.X "file, minfree" +lpd(8), savecore(8) +.X "file mode creation mask" +mkdir(2), umask(2) +.X "file modes" +access(2), chmod(2), umask(2), tar(5), \s-1PS1\s0:6\*(tx28, \s-1PS1\s0:13\*(tx6,10, sticky(8), \s-1SMM\s0:1\*(tx22, \s-1SMM\s0:7\*(tx16,30, \s-1SMM\s0:9\*(tx21 +.X "file, multiple names for a" +\s-1PS1\s0:6\*(tx30 +.X "file name (see also filename)" +intro(2)\*(tx6, \s-1PS1\s0:2\*(tx15,26, \s-1PS1\s0:3\*(tx4..7, \s-1PS1\s0:5\*(tx8, \s-1PS1\s0:6\*(tx27,42, \s-1PS1\s0:8\*(tx5, \s-1PS1\s0:12\*(tx2,4..5, \s-1PS1\s0:13\*(tx5,8, \s-1PS1\s0:14\*(tx14, \s-1PS1\s0:17\*(tx5, \s-1PS2\s0:1\*(tx3,9,11, \s-1PS2\s0:3\*(tx6,8, \s-1PS2\s0:9\*(tx63,66,68,81,120,131..133, \s-1PS2\s0:10\*(tx53 +.X "file name completion" +csh(1)\*(tx1..2,17, \s-1SMM\s0:12\*(tx4 +.X "file name generation" +sh(1)\*(tx1,3, \s-1USD\s0:3\*(tx3,16..17,21 +.X "file name, remote" +rcp(1c) +.X "file names starting with minus" +ftp(1c)\*(tx4,6, mv(1), \s-1PS1\s0:2\*(tx5 +.X "file naming conventions" +\s-1PS1\s0:12\*(tx5 +.X "file numbers" +\s-1SMM\s0:13\*(tx6 +.X "file, Object" +\s-1PS1\s0:2\*(tx4, \s-1PS1\s0:4\*(tx26, \s-1PS1\s0:11\*(tx5, \s-1PS1\s0:12\*(tx2..3,6,8, \s-1PS1\s0:13\*(tx11, \s-1PS2\s0:1\*(tx2, \s-1PS2\s0:9\*(tx66..68,104,123..128 +.X "file, offset into a" +\s-1PS1\s0:6\*(tx30 +.X "file, open \*(tx open a file for reading or writing, or create a new" +open(2) +.X "file organization" +\s-1SMM\s0:14\*(tx2 +.X "file ownership" +chgrp(1), find(1), chown(2), \s-1PS1\s0:6\*(tx29 +.X "file, pattern" +diction(1), \s-1USD\s0:32\*(tx7 +.X "file permissions (see also file access)" +chmod(1), csh(1)\*(tx16, groups(1), chmod(2) +.X "file pointers" +sortbib(1), fcntl(2), fork(2), lseek(2), open(2), write(2), stdio(3s), \s-1PS2\s0:3\*(tx3..6,13, \s-1SMM\s0:12\*(tx16 +.X "file position" +fseek(3s), \s-1PS1\s0:3\*(tx4..5 +.X "file, posting" +lookbib(1), \s-1USD\s0:30\*(tx2,5 +.X "file, primary alias" +\s-1USD\s0:8\*(tx77,96 +.X "file, printcap" +printcap(5), \s-1SMM\s0:6 +.X "file, process" +\s-1USD\s0:3\*(tx11, execve(2) +.X "file, prototype" +mkproto(8) +.X "file, rcsfile \*(tx format of RCS" +\s-1PS1\s0:13\*(tx16 +.X "file, removing a" +rm(1), \s-1USD\s0:13\*(tx12 +.X "file, semaphore" +\s-1PS1\s0:13\*(tx7,10,14 +.X "file size creation, limit on" +\s-1PS1\s0:6\*(tx13 +.X "file size limit" +sigvec(2)\*(tx2, signal(3c)\*(tx1 +.X "file sizes" +adb(1)\*(tx5, lseek(2), quot(8), \s-1SMM\s0:1\*(tx31 +.X "file, SMTP help" +sendmail(8)\*(tx2, \s-1SMM\s0:7\*(tx38 +.X "file space" +ranlib(1), \s-1USD\s0:4\*(tx4, dbm(3x), ndbm(3), \s-1SMM\s0:1\*(tx47 +.X "file, splitting a big" +split(1) +.X "file status" +stat(2), stat(3f)\*(tx1 +.X "file storage" +\s-1SMM\s0:5\*(tx3 +.X "file suffixes" +csh(1)\*(tx3 +.X "file switching" +\s-1USD\s0:24\*(tx25 +.X "file, synchronize a" +abs(3) +.X "file system" +fs(5)\*(tx2, fstab(5), \s-1PS1\s0:6, \s-1PS1\s0:6\*(tx23..32,39,42, \s-1PS1\s0:7\*(tx8,10..11,19, \s-1PS1\s0:10\*(tx11, \s-1PS1\s0:12\*(tx2, \s-1PS1\s0:13\*(tx2, \s-1PS2\s0:1, \s-1PS2\s0:3\*(tx5..8, \s-1PS2\s0:4\*(tx6..9, \s-1PS2\s0:5\*(tx1, format(8v)\*(tx2, mkfs(8), \s-1SMM\s0:1\*(tx26, \s-1SMM\s0:12\*(tx7,20..21 +.X "file system backup procedures" +\s-1SMM\s0:1\*(tx1 +.X "file system blocks" +fs(5), \s-1SMM\s0:5\*(tx3..4, \s-1SMM\s0:14\*(tx4..6 +.X "file system, change the size of a" +restore(8)\*(tx1 +.X "file system, Changes in the" +\s-1SMM\s0:13\*(tx10 +.X "file system check program" +fstab(5), fsck(8), \s-1SMM\s0:1\*(tx20,45..46, \s-1SMM\s0:5 +.X "file system connectivity" +\s-1SMM\s0:5\*(tx8 +.X "file system corruption" +update(8), \s-1SMM\s0:1\*(tx64, \s-1SMM\s0:5\*(tx2..3 +.X "file system dumps" +rdump(8c), rrestore(8c), \s-1SMM\s0:1\*(tx17,46..47 +.X "File System for UNIX, Fast" +\s-1SMM\s0:14 +.X "file system format" +fs(5)\*(tx2, \s-1SMM\s0:1\*(tx7 +.X "file system functional enhancements" +\s-1SMM\s0:14\*(tx11 +.X "file system fundamentals" +\s-1USD\s0:1\*(tx1 +.X "file system hierarchy" +hier(7)\*(tx1, \s-1SMM\s0:14\*(tx13 +.X "file system layout policies" +\s-1SMM\s0:14\*(tx7 +.X "file system maintenance" +ncheck(8) +.X "file system management" +\s-1SMM\s0:14\*(tx2 +.X "file system name translation" +\s-1SMM\s0:13\*(tx2 +.X "file system, old" +\s-1SMM\s0:14\*(tx3 +.X "file system organizations" +\s-1SMM\s0:1\*(tx2, \s-1SMM\s0:13\*(tx31, \s-1SMM\s0:14\*(tx2,4..6 +.X "file system parameters" +mkfs(8), newfs(8), \s-1SMM\s0:1\*(tx30, \s-1SMM\s0:14\*(tx7 +.X "file system partitions" +bad144(8), format(8v)\*(tx1, \s-1SMM\s0:2\*(tx8 +.X "file system performance" +\s-1SMM\s0:14\*(tx2..3,9 +.X "file system quotas" +fstab(5), quotacheck(8), quotaon(8), \s-1SMM\s0:2\*(tx31 +.X "file system repair" +fsck(8) +.X "file system, root" +autoconf(4), crash(8v)\*(tx1, \s-1SMM\s0:1\*(tx2,14,20,55, \s-1SMM\s0:2\*(tx5 +.X "file system size" +\s-1SMM\s0:5\*(tx6 +.X "file systems, fstab \*(tx static information about the" +fstab(5) +.X "file systems, setting up the new 4.3BSD" +\s-1SMM\s0:1\*(tx17 +.X "file table" +\s-1PS2\s0:4\*(tx8, \s-1PS2\s0:5\*(tx1..2, \s-1SMM\s0:2\*(tx30 +.X "file table entry" +\s-1PS2\s0:4\*(tx9, \s-1PS2\s0:5\*(tx1..2, \s-1SMM\s0:2\*(tx30 +.X "file, tail \*(tx deliver the last part of a" +tail(1) +.X "file, terminal" +tty(4)\*(tx1 +.X "file, test for presence of" +access(2) +.X "file time, utime \*(tx set" +utime(3c) +.X "file time, utimes \*(tx set" +utimes(2) +.X "file, touch \*(tx update date last modified of a" +touch(1) +.X "file transfer protocol, FTP" +ftp(1c)\*(tx1, \s-1PS1\s0:8\*(tx17, ftpd(8c), \s-1SMM\s0:12\*(tx23 +.X "file transfer type" +ftp(1c)\*(tx1,5 +.X "file transfers, third\*(txparty" +ftp(1c)\*(tx4, \s-1SMM\s0:12\*(tx8 +.X "file type" +file(1), \s-1PS1\s0:3\*(tx3, \s-1PS1\s0:6\*(tx29, \s-1PS1\s0:10\*(tx9, restore(8)\*(tx2 +.X "file, undo drastic changes to a" +\s-1USD\s0:17\*(tx15 +.X "file, Writes changes made back to" +\s-1USD\s0:16\*(tx11 +.X "file, writing out part of a" +\s-1USD\s0:13\*(tx13 +.X "file, Writing, quitting, editing new" +\s-1USD\s0:15\*(tx11 +.X "filec shell variable" +csh(1)\*(tx2 +.X "file\*(txcreation\*(txmode (variable)" +\s-1USD\s0:17\*(tx32 +.X "filename affixes" +basename(1) +.X "FILENAME awk variable" +\s-1USD\s0:19\*(tx2 +.X "filename character translation" +ftp(1c)\*(tx4 +.X "filename components" +\s-1USD\s0:4\*(tx29 +.X "filename expansions" +csh(1)\*(tx17..20, ftp(1c)\*(tx2..3, \s-1USD\s0:4\*(tx6,22,28,32..33,37..38,41, \s-1USD\s0:16\*(tx2 +.X "filename mapping" +ftp(1c)\*(tx3 +.X "filename substitution" +csh(1)\*(tx6..7,17 +.X "filename suffix" +basename(1) +.X "filenames" +\s-1USD\s0:4\*(tx6,38, \s-1USD\s0:14\*(tx3 +.X "filenames containing non\*(txASCII characters" +\s-1USD\s0:10\*(tx11 +.X "filenames, database of" +find(1) +.X "fileno" +ferror(3s) +.X "files and programs, mail to" +\s-1SMM\s0:16\*(tx6 +.X "files changed after a certain date" +rdump(8c) +.X "files, combining several" +\s-1USD\s0:13\*(tx12 +.X "files, comparing" +cmp(1), diff(1), diff3(1) +.X "files, concatenating" +cat(1) +.X "files, copying" +rcp(1c), tip(1c)\*(tx1, uucp(1c), \s-1USD\s0:15\*(tx3 +.X "files, copying subtrees of" +cp(1) +.X "files, cp \*(tx copy" +cp(1) +.X "files, database" +\s-1USD\s0:31\*(tx8, mkhosts(8), mkpasswd(8), \s-1SMM\s0:7\*(tx16 +.X "files, differences between two" +\s-1USD\s0:1\*(tx11 +.X "files, Execution" +uuxqt(8c), \s-1SMM\s0:9\*(tx2 +.X "files, finding patterns or words in" +\s-1USD\s0:13\*(tx15 +.X "files, gaps in" +lseek(2), \s-1PS1\s0:6\*(tx31 +.X "files, header" +dbx(1)\*(tx7, pc(1), \s-1USD\s0:11\*(tx12, \s-1USD\s0:32\*(tx11, syscall(2), stdio(3s), \s-1PS1\s0:14\*(tx5, \s-1PS1\s0:15\*(tx22, \s-1PS1\s0:18\*(tx3, config(8), \s-1SMM\s0:2\*(tx5,23, \s-1SMM\s0:7\*(tx7,30, \s-1SMM\s0:9\*(tx5, \s-1SMM\s0:12\*(tx3,7..8,13,15,18, \s-1SMM\s0:13\*(tx2..4,9,23, \s-1SMM\s0:19\*(tx3..4,24 +.X "files, identical" +cmp(1), rdist(1)\*(tx4, \s-1SMM\s0:21\*(tx5 +.X "files, inaccessible" +adb(1)\*(tx6, ed(1)\*(tx6, grep(1), edquota(8), repquota(8) +.X "files, index" +lookbib(1), vgrind(1), \s-1USD\s0:30\*(tx3,5 +.X "files, initialization" +jove(1)\*(tx2, \s-1USD\s0:17\*(tx24,45, resolver(3), \s-1PS2\s0:10\*(tx29,63,74 +.X "files, Input from" +\s-1USD\s0:4\*(tx5 +.X "files, internal" +\s-1PS1\s0:2\*(tx25 +.X "files, key" +\s-1USD\s0:30\*(tx2..4, \s-1SMM\s0:10\*(tx20 +.X "files, learning about" +learn(1) +.X "files, lex" +ctags(1), \s-1SMM\s0:12\*(tx4 +.X "files, library" +ar(1), lint(1) +.X "files, lisp" +ctags(1), \s-1SMM\s0:12\*(tx4 +.X "files, list" +spell(1), \s-1USD\s0:4\*(tx38,40, ftpd(8c) +.X "files, lock" +binmail(1), lpq(1), lprm(1), sysline(1), tip(1c)\*(tx4, lpd(8), \s-1SMM\s0:1\*(tx22, \s-1SMM\s0:6\*(tx8, \s-1SMM\s0:7\*(tx7..8,38, \s-1SMM\s0:9\*(tx6,9,18..20, \s-1SMM\s0:14\*(tx12, \s-1SMM\s0:21\*(tx4 +.X "files, log" +script(1), hier(7)\*(tx4..5, syslog(3), implog(8c), \s-1SMM\s0:1\*(tx37, \s-1SMM\s0:6\*(tx3, \s-1SMM\s0:9\*(tx11,18, \s-1SMM\s0:10\*(tx9,18 +.X "files, maintaining a group of related" +\s-1USD\s0:4\*(tx25 +.X "files, message" +mkstr(1), \s-1USD\s0:8\*(tx30,55,61,82,86, implog(8c) +.X "files, moving" +mv(1), \s-1USD\s0:1\*(tx6 +.X "files, moving subtrees of" +tar(1) +.X "files, multiple" +tar(1), uucp(1c), \s-1USD\s0:16\*(tx2, \s-1USD\s0:31\*(tx3, \s-1SMM\s0:11\*(tx6 +.X "files, open" +test(1), dup(2), flock(2), intro(2)\*(tx1..2, open(2), select(2), stat(2)\*(tx1, fopen(3s), popen(3), stdio(3s), \s-1PS1\s0:2\*(tx15, \s-1PS1\s0:6\*(tx28, \s-1PS2\s0:1\*(tx5..9, \s-1PS2\s0:3\*(tx4..7, \s-1PS2\s0:4\*(tx8..9, \s-1PS2\s0:5\*(tx1..2, pstat(8)\*(tx3, \s-1SMM\s0:1\*(tx23, \s-1SMM\s0:13\*(tx4,6, \s-1SMM\s0:14\*(tx12 +.X "files, Orphaned" +fsck(8) +.X "files, Output to" +\s-1USD\s0:4\*(tx4, \s-1PS1\s0:4\*(tx27,30,35 +.X "files, printing" +cat(1), lpq(1), pr(1), \s-1USD\s0:1\*(tx1,5..6 +.X "files, profile" +\s-1SMM\s0:12\*(tx7 +.X "files, quota" +setquota(2), quotacheck(8), \s-1SMM\s0:4, \s-1SMM\s0:12\*(tx10 +.X "files, raw" +hk(4), hp(4), uda(4)\*(tx1, up(4) +.X "files, RCS" +\s-1PS1\s0:13\*(tx2..16,19..22 +.X "files, reading" +fopen(3s) +.X "files, Reading additional" +\s-1USD\s0:14\*(tx21 +.X "files, Recovering lost" +\s-1USD\s0:14\*(tx21, \s-1USD\s0:15\*(tx14 +.X "files, removing old" +find(1) +.X "files, removing (see also rm)" +badsect(8), \s-1SMM\s0:6\*(tx3 +.X "files, renaming" +mv(1), rdist(1)\*(tx1 +.X "files, sample configuration" +\s-1SMM\s0:1\*(tx27, \s-1SMM\s0:2\*(tx4,11 +.X "files, SCCS" +\s-1PS1\s0:13\*(tx22, \s-1PS1\s0:14\*(tx3,5,8..11 +.X "files, scratch" +\s-1USD\s0:4\*(tx43 +.X "files, script" +tip(1c)\*(tx3, \s-1PS2\s0:7\*(tx17 +.X "files, sequential" +\s-1PS1\s0:3\*(tx3,9 +.X "files, sharable executable" +sticky(8) +.X "files, shell command" +\s-1USD\s0:1\*(tx13, \s-1USD\s0:4\*(tx15, \s-1USD\s0:8\*(tx8, execl(3) +.X "files, source" +\s-1PS1\s0:11\*(tx6 +.X "files, Special" +find(1), hier(7)\*(tx1, \s-1SMM\s0:1\*(tx4 +.X "files, spool" +\s-1SMM\s0:6\*(tx3, \s-1SMM\s0:9\*(tx7, \s-1SMM\s0:10\*(tx5, \s-1SMM\s0:12\*(tx2 +.X "files, subsequencer" +\s-1USD\s0:11\*(tx11 +.X "files, system abstractions for" +\s-1PS1\s0:6 +.X "files, system configuration" +config(8), \s-1SMM\s0:1\*(tx7, \s-1SMM\s0:2\*(tx2,33, \s-1SMM\s0:4\*(tx2, \s-1SMM\s0:16\*(tx8 +.X "files, tag" +ctags(1), lookbib(1), \s-1USD\s0:16\*(tx11,18, \s-1USD\s0:17\*(tx21,33, \s-1USD\s0:30\*(tx2 +.X "files, terminal description" +\s-1USD\s0:15\*(tx1, \s-1SMM\s0:20\*(tx2 +.X "files that need periodic attention" +\s-1SMM\s0:1\*(tx51 +.X "files, transferring" +ftp(1c)\*(tx1,4, tip(1c)\*(tx3, uucico(8c), \s-1SMM\s0:12\*(tx23 +.X "files, truncating" +truncate(2), fopen(3s) +.X "files, unbuffered" +\s-1SMM\s0:12\*(tx16 +.X "files, VAX specific" +config(8) +.X "files, writing" +\s-1USD\s0:12\*(tx1, \s-1USD\s0:13\*(tx13, fopen(3s), \s-1SMM\s0:14\*(tx10 +.X "files\*(txshould\*(txend\*(txwith\*(txnewline (variable)" +\s-1USD\s0:17\*(tx32 +.X "fill mode" +\s-1USD\s0:22\*(tx6, \s-1USD\s0:24\*(tx12..14,30 +.X "fill subsequent output lines" +\s-1USD\s0:24\*(tx12 +.X "fill\*(txcomment" +\s-1USD\s0:17\*(tx32 +.X "fillfactor" +\s-1PS2\s0:10\*(tx23..24,78 +.X "filling, text" +\s-1USD\s0:17\*(tx1,12, \s-1USD\s0:24\*(tx3,12 +.X "fill\*(txparagraph (ESC J)" +\s-1USD\s0:17\*(tx33 +.X "fill\*(txregion" +\s-1USD\s0:17\*(tx33 +.X "filter, default message" +\s-1USD\s0:8\*(tx24 +.X "filter file" +\s-1USD\s0:8\*(tx23,57,105 +.X "filtering portions of the buffer" +\s-1USD\s0:15\*(tx15 +.X "filter\*(txregion" +\s-1USD\s0:17\*(tx33 +.X "filters" +\s-1USD\s0:3\*(tx2 +.X "filters, output" +popen(3), \s-1SMM\s0:6\*(tx4 +.X "filters, plot" +graph(1g) +.X "find" +\s-1SMM\s0:1\*(tx23, \s-1SMM\s0:12\*(tx7 +.X "find \*(tx find files" +find(1) +.X "find a character in string" +string(3) +.X "find, example of use" +find(1) +.X "find the printable strings in a file" +strings(1) +.X "find\*(txfile (C\*(txX C\*(txF)" +\s-1USD\s0:17\*(tx33 +.X "finding patterns or words in files" +\s-1USD\s0:13\*(tx15 +.X "finding sentences" +\s-1USD\s0:32\*(tx10 +.X "finding sites on the network" +\s-1USD\s0:10\*(tx10 +.X "finding source code" +whereis(1) +.X "finding things in the buffer" +\s-1USD\s0:14\*(tx9 +.X "find\*(txtag (C\*(txX T)" +\s-1USD\s0:17\*(tx21,33 +.X "find\*(txtag\*(txat\*(txpoint" +\s-1USD\s0:17\*(tx33 +.X "finger \*(tx user information lookup program" +finger(1), passwd(1), \s-1SMM\s0:12\*(tx7 +.X "fingerd \*(tx remote user information server" +fingerd(8c) +.X "finite automaton" +\s-1USD\s0:19\*(tx6 +.X "finite state machine" +\s-1PS1\s0:15\*(tx8 +.X "FIONREAD" +tty(4)\*(tx3,9 +tx19 +\s-1USD\s0:20\*(tx2 +.X "firstkey" +dbm(3x) +.X "first\*(txnon\*(txblank (ESC M)" +\s-1USD\s0:17\*(tx34 +.X "fish \*(tx play ``Go Fish''" +fish(6) +.X "fish, tune a" +tunefs(8) +.X "fix, sccs" +\s-1PS1\s0:14\*(tx8 +.X "fixed length records" +dd(1) +.X "fixes, bug reports and" +\s-1USD\s0:9\*(tx8 +.X "fixing corrupted file systems" +\s-1SMM\s0:5\*(tx5 +.X "fixing errors" +\s-1USD\s0:17\*(tx13,20 +.X "fixit" +\s-1PS2\s0:9\*(tx4,137..140 +.X "fixnum representation" +\s-1PS2\s0:9\*(tx8,22,24,72,100 +.X "fl \*(tx console floppy interface" +fl(4) +.X "FL footnote length" +\s-1USD\s0:20\*(tx5 +.X "flag arguments" +\s-1USD\s0:4\*(tx4, \s-1PS1\s0:12\*(tx5..6, \s-1PS2\s0:1\*(tx5 +.X "flcopy command" +arff(8v) +.X "Flesch Reading Ease Score" +\s-1USD\s0:32\*(tx3 +.X "flmax" +flmin(3f) +.X "float to double conversion" +cc(1)\*(tx2 +.X "floating arithmetic in C" +\s-1PS1\s0:1\*(tx5 +.X "floating constants" +\s-1PS1\s0:1\*(tx3,7, \s-1PS1\s0:16\*(tx11, \s-1PS2\s0:10\*(tx33 +.X "floating exception" +\s-1PS2\s0:9\*(tx41,45,80 +.X "floating keep, .(z Begin" +\s-1USD\s0:23\*(tx4 +.X "floating keeps" +\s-1USD\s0:20\*(tx5, \s-1USD\s0:22\*(tx6 +.X "floating point" +od(1), \s-1USD\s0:19\*(tx4..5, ptrace(2), \s-1PS1\s0:1\*(tx4, \s-1PS1\s0:2\*(tx18,23, \s-1PS1\s0:15\*(tx29, \s-1PS1\s0:16\*(tx11, \s-1PS2\s0:6\*(tx5,8, \s-1PS2\s0:9\*(tx39, \s-1PS2\s0:10\*(tx76, \s-1SMM\s0:19\*(tx9,22 +.X "floating point arithmetic" +ieee(3m), math(3m)\*(tx3,6, \s-1PS1\s0:1\*(tx31, \s-1PS1\s0:4\*(tx45, \s-1SMM\s0:19\*(tx20,24 +.X "floating point constants" +\s-1PS1\s0:15\*(tx28, \s-1PS2\s0:6\*(tx5, \s-1PS2\s0:10\*(tx33, \s-1SMM\s0:19\*(tx26 +.X "floating point exceptions" +intro(3)\*(tx1, math(3m)\*(tx4..5, signal(3c)\*(tx1, trpfpe(3f) +.X "floating point numbers" +\s-1USD\s0:19\*(tx3, scanf(3s), \s-1PS1\s0:5\*(tx1,13, \s-1PS2\s0:9\*(tx39,88, \s-1PS2\s0:10\*(tx8,34 +.X "floating point operations, invalid" +infnan(3m) +.X "floating point overflow" +trapov(3f) +.X "floating point underflow" +traper(3f) +.X "floating point values" +flmin(3f), \s-1SMM\s0:19\*(tx26 +.X "floating point variables" +f77(1)\*(tx2, \s-1PS1\s0:2\*(tx5, \s-1PS1\s0:15\*(tx28, \s-1PS2\s0:6\*(tx8,15 +.X "floating\*(txpoint division" +\s-1PS1\s0:11\*(tx5 +.X "flock \*(tx apply or remove an advisory lock on an open file" +flock(2), \s-1SMM\s0:13\*(tx6 +.X "flock(fd, how)" +\s-1PS1\s0:6\*(tx31 +.X "flonum\*(txblock array" +\s-1PS2\s0:9\*(tx28,105,111 +.X "floor function" +floor(3m) +.X "floppy, boot" +\s-1SMM\s0:1\*(tx13..14 +.X "floppy disks" +rx(4), arff(8v) +.X "flow control" +jove(1)\*(tx3, rlogin(1c), stty(1)\*(tx1, telnet(1c)\*(tx4, tip(1c)\*(tx2, \s-1USD\s0:17\*(tx25, \s-1USD\s0:24\*(tx2, write(2), dmf(4), dmz(4), pty(4), tty(4)\*(tx2,4,7..8, gettytab(5)\*(tx2, termcap(5)\*(tx12, \s-1PS1\s0:6\*(tx38, \s-1PS1\s0:8\*(tx24, \s-1SMM\s0:9\*(tx9, \s-1SMM\s0:13\*(tx5,15,33, \s-1SMM\s0:15\*(tx3 +.X "flush \*(tx flush output to a logical unit" +flush(3f) +.X "flush buffered output" +exit(3) +.X "flush characters" +telnet(1c)\*(tx3 +.X "flush output" +exit(3f), flush(3f), tty(4)\*(tx10 +.X "flush output buffer" +\s-1USD\s0:24\*(tx26 +.X "flush output character" +stty(1)\*(tx3 +.X "flush pending input" +tty(4)\*(tx5 +.X "flushok(win, boolf)" +\s-1PS1\s0:18\*(tx10, \s-1PS2\s0:9\*(tx2,4 +.X "FM bottom margin" +\s-1USD\s0:20\*(tx5 +.X "fmin \*(tx multiple precision integer arithmetic" +mp(3x) +.X "fmout \*(tx multiple precision integer arithmetic" +mp(3x) +.X "fmt \*(tx simple text formatter" +fmt(1), \s-1USD\s0:7\*(tx10 +.X "fold \*(tx fold long lines for finite width output device" +fold(1) +.X "folder command" +mail(1)\*(tx3, \s-1USD\s0:7\*(tx7, \s-1USD\s0:8\*(tx86 +.X "folder, default draft" +\s-1USD\s0:8\*(tx86,102 +.X "folder directory" +mail(1)\*(tx3,6, \s-1USD\s0:7\*(tx6,11,14,18, \s-1USD\s0:8\*(tx86 +.X "folder, draft" +\s-1USD\s0:8\*(tx62,102..103 +.X "folder, examining the messages in a" +\s-1USD\s0:8\*(tx2 +.X "folder, folders \*(tx set/list current folder/message" +\s-1USD\s0:8\*(tx20 +.X "folder handling" +\s-1USD\s0:8\*(tx105 +.X "folder names" +\s-1USD\s0:7\*(tx6,11, \s-1USD\s0:8\*(tx10,21,32,105..106, bugfiler(8) +.X "folder, parent" +\s-1USD\s0:8\*(tx60 +.X "folder pathname" +\s-1USD\s0:8\*(tx39 +.X "folder, rmf \*(tx remove" +\s-1USD\s0:8\*(tx60 +.X "Folder\*(txProtect" +\s-1USD\s0:8\*(tx6,86 +.X "folders, message" +\s-1USD\s0:8\*(tx2,8 +.X "folders, MH" +\s-1USD\s0:8\*(tx26,54,103 +.X "folders, read\*(txonly" +\s-1USD\s0:8\*(tx20,60 +.X "Folder\*(txStack" +\s-1USD\s0:8\*(tx86,106 +.X "font and character size control" +\s-1USD\s0:24\*(tx3,9 +.X "font, .b bold" +\s-1USD\s0:23\*(tx6 +.X "font changes" +checknr(1), eqn(1), \s-1USD\s0:23\*(tx1, \s-1USD\s0:24\*(tx10,19, \s-1USD\s0:26\*(tx1, \s-1USD\s0:27\*(tx5, \s-1USD\s0:28\*(tx4..5, \s-1USD\s0:32\*(tx10 +.X "font file" +lpd(8) +.X "font formats" +vfont(5) +.X "font, .i italic" +\s-1USD\s0:23\*(tx6 +.X "font numbers" +\s-1USD\s0:25\*(tx4 +.X "font position" +\s-1USD\s0:24\*(tx11,33 +.X "font, .r roman" +\s-1USD\s0:23\*(tx6 +.X "font, .rb bold" +\s-1USD\s0:23\*(tx6 +.X "font requests" +\s-1USD\s0:22\*(tx17..18, \s-1USD\s0:23\*(tx6 +.X "font, Roman" +ms(7)\*(tx2, \s-1USD\s0:25\*(tx8, \s-1USD\s0:27\*(tx9, \s-1USD\s0:29\*(tx7 +.X "font, special" +\s-1USD\s0:24\*(tx9 +.X "font style examples" +\s-1USD\s0:24\*(tx32 +.X "font, troff width table for a" +vwidth(1) +.X "font, underline" +\s-1USD\s0:23\*(tx6, \s-1USD\s0:24\*(tx19..20 +.X "font width tables" +troff(1) +.X "fonts" +\s-1USD\s0:20\*(tx2, \s-1USD\s0:22\*(tx16, \s-1USD\s0:23\*(tx1, \s-1USD\s0:24\*(tx9, \s-1USD\s0:25\*(tx3, \s-1USD\s0:27\*(tx5 +.X "fonts and sizes" +\s-1USD\s0:23\*(tx6 +.X "fonts, bold" +\s-1USD\s0:22\*(tx16..17, \s-1USD\s0:23\*(tx1, \s-1USD\s0:25\*(tx4 +.X "fonts for troff" +hier(7)\*(tx4 +.X "fonts, switching between" +\s-1USD\s0:22\*(tx16 +.X "footer and the bottom of the page, .m4 Set the space between the" +\s-1USD\s0:23\*(tx4 +.X "footer, Define" +\s-1USD\s0:23\*(tx3 +.X "footer, .ef Define" +\s-1USD\s0:23\*(tx3 +.X "footer, .$f Print" +\s-1USD\s0:23\*(tx4 +.X "footer, .fo Define" +\s-1USD\s0:23\*(tx3 +.X "footer, .m3 Set the space between the bottom of the text and the" +\s-1USD\s0:23\*(tx4 +.X "footer macros" +\s-1USD\s0:24\*(tx22,28..29, \s-1USD\s0:25\*(tx9 +.X "footer margins" +ms(7)\*(tx3, \s-1USD\s0:23\*(tx2 +.X "footer, .of Define" +\s-1USD\s0:23\*(tx3 +.X "footer, page" +ms(7), \s-1USD\s0:20\*(tx2,5, \s-1USD\s0:28\*(tx7 +.X "footer trap" +\s-1USD\s0:24\*(tx28,30..31 +.X "footers" +\s-1USD\s0:22\*(tx3, \s-1USD\s0:23\*(tx3, \s-1USD\s0:24\*(tx2 +.X "footers, headers and" +\s-1USD\s0:22\*(tx3, \s-1USD\s0:23\*(tx3 +.X "footers, odd and even" +\s-1USD\s0:21\*(tx3 +.X "footers on the next page, .hx Suppress headers and" +\s-1USD\s0:23\*(tx4 +.X "footnote, End" +\s-1USD\s0:23\*(tx5, \s-1USD\s0:24\*(tx30 +.X "footnote, .(f Begin" +\s-1USD\s0:23\*(tx5 +.X "footnote, .)f n End" +\s-1USD\s0:23\*(tx5 +.X "footnote format" +ms(7)\*(tx3 +.X "footnote indent" +ms(7)\*(tx3 +.X "footnote length" +ms(7)\*(tx3 +.X "footnote, numbered" +ms(7)\*(tx3 +.X "footnote numbers" +refer(1), \s-1USD\s0:21\*(tx1, \s-1USD\s0:22\*(tx8, \s-1USD\s0:23\*(tx9, \s-1USD\s0:29\*(tx4..8, \s-1USD\s0:30\*(tx9 +.X "footnote processing" +\s-1USD\s0:24\*(tx30 +.X "footnote separator, .$s output the" +\s-1USD\s0:23\*(tx5 +.X "footnoted references" +\s-1USD\s0:31\*(tx3 +.X "footnotes" +ms(7)\*(tx2, \s-1USD\s0:20\*(tx4, \s-1USD\s0:22\*(tx8,16, \s-1USD\s0:23\*(tx5, \s-1USD\s0:24\*(tx2,30, \s-1USD\s0:29\*(tx1 +.X "footnotes, automatically numbered" +\s-1USD\s0:21\*(tx1 +.X "fopen, freopen, fdopen \*(tx open a stream" +fopen(3s) +.X "for \*(tx Bourne shell command" +sh(1)\*(tx1, \s-1USD\s0:3\*(tx6 +.X "for statement" +\s-1PS1\s0:1\*(tx22 +.X "forcing the queue" +\s-1SMM\s0:7\*(tx9 +.X "foreach shell command" +csh(1)\*(tx11, \s-1USD\s0:4\*(tx28,32,38 +.X "foreground" +csh(1)\*(tx16 +.X "foreground command fg" +csh(1)\*(tx2 +.X "foreground jobs" +\s-1USD\s0:4\*(tx17..19,22,38,44 +.X "foreign addresses" +idp(4p), \s-1PS1\s0:6\*(tx34, \s-1PS1\s0:8\*(tx4,30..32, \s-1SMM\s0:15\*(tx23 +.X "foreign binary" +\s-1PS2\s0:9\*(tx97 +.X "foreign functions" +\s-1PS2\s0:9\*(tx3,10,28,63,65,103..105,108 +.X "foreign host" +intro(2)\*(tx5, rexec(3) +.X "foreign names" +\s-1USD\s0:29\*(tx7 +.X "foreign ports" +\s-1PS1\s0:8\*(tx4,30..31 +.X "fork \*(tx create a new process" +csh(1)\*(tx12, lastcomm(1), close(2), flock(2), fork(2), vfork(2), \s-1PS1\s0:6\*(tx7, \s-1PS1\s0:7\*(tx2 +.X "fork a shell" +\s-1USD\s0:11\*(tx4 +.X "form feed" +more(1)\*(tx1 +.X "form file" +\s-1USD\s0:8\*(tx23,30,57 +.X "form letters" +\s-1USD\s0:24\*(tx25 +.X "formal arguments" +\s-1USD\s0:6\*(tx10, \s-1PS1\s0:1\*(tx7,24..28, \s-1PS1\s0:4\*(tx41, \s-1PS2\s0:6\*(tx8,10..11,15..16,23, \s-1PS2\s0:9\*(tx46,95,98, \s-1SMM\s0:19\*(tx7,26 +.X "formal variables" +\s-1PS2\s0:9\*(tx55, \s-1PS2\s0:10\*(tx56 +.X "format \*(tx how to format disk packs" +format(8v)\*(tx1 +.X "format a paragraph" +fmt(1) +.X "format, archive file" +ar(5) +.X "format argument" +\s-1USD\s0:20\*(tx6 +.X "format codes" +\s-1PS1\s0:2\*(tx12,23..24 +.X "format, column" +ms(7)\*(tx2, \s-1USD\s0:20\*(tx2 +.X "format commands" +\s-1USD\s0:8\*(tx78, \s-1USD\s0:31\*(tx8 +.X "format, DVI" +lpr(1), printcap(5), lpd(8) +.X "format, execute file" +\s-1SMM\s0:9\*(tx4 +.X "format file" +\s-1USD\s0:8\*(tx30..32,58,63,78,91,94, \s-1USD\s0:31\*(tx8..13 +.X "format, file system" +fs(5)\*(tx2, \s-1SMM\s0:1\*(tx7 +.X "format floppy disks" +rxformat(8v) +.X "format interpretation" +\s-1PS1\s0:3\*(tx5..6 +.X "format, library file" +ar(5) +.X "format, mail drop" +\s-1USD\s0:8\*(tx55 +.X "Format of ARPA Internet Text Messages" +mailaddr(7)\*(tx3, \s-1USD\s0:8\*(tx84,91,94,97 +.X "format of mail messages" +\s-1USD\s0:7\*(tx20 +.X "format program" +format(8v)\*(tx1, \s-1SMM\s0:1\*(tx7..10 +.X "format, released paper" +\s-1USD\s0:20\*(tx5 +.X "format section" +\s-1USD\s0:28\*(tx3..5 +.X "format specifiers" +\s-1PS1\s0:3\*(tx6, \s-1PS2\s0:6\*(tx21 +.X "Format, Standard Resource Record" +\s-1SMM\s0:11\*(tx5..6 +.X "format statements" +\s-1PS1\s0:2\*(tx9,21,23..24, \s-1PS1\s0:3\*(tx3,5,9, \s-1SMM\s0:12\*(tx6 +.X "format tables" +tbl(1), \s-1USD\s0:28 +.X "formats" +format(8v)\*(tx1, \s-1SMM\s0:10\*(tx2 +.X "formats, address" +netstat(1), mailaddr(7)\*(tx1, intro(4n)\*(tx1, \s-1SMM\s0:15\*(tx4,17,23 +.X "formats, file" +\s-1PS1\s0:2, \s-1PS1\s0:2\*(tx4,15, \s-1PS1\s0:10\*(tx9, \s-1PS2\s0:4\*(tx9 +.X "formats, message" +\s-1USD\s0:8\*(tx82 +.X "formats, non\*(txstandard" +\s-1USD\s0:8\*(tx91,94 +.X "formats, output" +awk(1) +.X "formats, reference" +bib(1), \s-1USD\s0:31\*(tx3,6..7 +.X "formatted dump" +\s-1PS1\s0:10\*(tx10 +.X "formatted file" +indent(1), lpd(8) +.X "formatted output" +printf(3s) +.X "formatters, tape" +autoconf(4), \s-1SMM\s0:1\*(tx3..5 +.X "formatters, text" +fmt(1), \s-1USD\s0:22\*(tx2 +.X "Formatting Bibliographies" +\s-1USD\s0:31\*(tx1..16 +.X "formatting commands" +\s-1USD\s0:1\*(tx10, \s-1USD\s0:13\*(tx10..11, \s-1USD\s0:20\*(tx1, \s-1USD\s0:25\*(tx8, \s-1USD\s0:31\*(tx8, \s-1USD\s0:32\*(tx3,10 +.X "formatting disks" +format(8v), \s-1SMM\s0:1\*(tx8 +.X "formatting documents" +ms(7)\*(tx1 +.X "formatting information" +\s-1USD\s0:28\*(tx2 +.X "formatting macros" +\s-1USD\s0:2\*(tx1,5, \s-1USD\s0:31\*(tx12, \s-1USD\s0:32\*(tx10 +.X "formatting, nroff \*(tx text" +nroff(1) +.X "formatting packages" +\s-1USD\s0:1\*(tx10,12, \s-1USD\s0:32\*(tx10 +.X "formatting programs" +\s-1USD\s0:1\*(tx1,6,10, \s-1USD\s0:20\*(tx5, \s-1USD\s0:26\*(tx2, \s-1SMM\s0:1\*(tx7..8 +.X "formatting requests" +\s-1USD\s0:1\*(tx10..11 +.X "formatting styles" +indent(1), vgrind(1) +.X "forms, combining" +\s-1PS2\s0:7\*(tx4..5 +.X "forms, functional" +fp(1), \s-1PS2\s0:7\*(tx4,10..15,28..30,33 +.X "Fortran" +ctags(1), efl(1), f77(1), struct(1), \s-1USD\s0:1\*(tx13, \s-1USD\s0:6\*(tx2, intro(3)\*(tx1, \s-1PS1\s0:2, \s-1PS1\s0:3\*(tx1,3, \s-1PS1\s0:5\*(tx11, \s-1PS1\s0:11\*(tx1, \s-1PS1\s0:15\*(tx7, \s-1PS1\s0:16\*(tx1..2, \s-1PS2\s0:1\*(tx2, \s-1PS2\s0:3\*(tx5, \s-1PS2\s0:6\*(tx24..25,35, \s-1PS2\s0:8, \s-1PS2\s0:9\*(tx4,103,105,107..108,111, \s-1SMM\s0:12\*(tx2,6..7, \s-1SMM\s0:19\*(tx7,24..25 +.X "Fortran 66" +f77(1)\*(tx1, struct(1) +.X "Fortran 66 and Fortran 77, Differences Between" +\s-1PS1\s0:2\*(tx17 +.X "Fortran 77 compiler, f77 \*(tx" +f77(1)\*(tx1 +.X "Fortran, ANSI" +\s-1PS2\s0:8\*(tx2..5 +.X "Fortran carriage control" +fpr(1), lpr(1), lpd(8) +.X "Fortran code" +\s-1PS2\s0:6\*(tx1 +.X "Fortran compiler" +\s-1PS1\s0:2\*(tx4..6, \s-1PS2\s0:6\*(tx24, \s-1PS2\s0:8\*(tx10,12, \s-1PS2\s0:9\*(tx65, \s-1SMM\s0:12\*(tx5 +.X "Fortran DO" +\s-1PS2\s0:6\*(tx19, \s-1PS2\s0:8\*(tx2,5..7 +.X "Fortran I/O" +getc(3f), putc(3f), \s-1PS1\s0:2\*(tx15, \s-1PS1\s0:3\*(tx1,8 +.X "Fortran I/O Library Error Messages" +\s-1PS1\s0:3\*(tx8 +.X "Fortran Language" +efl(1) +.X "Fortran Language, Extended" +\s-1PS2\s0:6\*(tx3 +.X "Fortran language extensions" +\s-1PS1\s0:2\*(tx6 +.X "Fortran library" +\s-1SMM\s0:1\*(tx48 +.X "Fortran library routines" +\s-1SMM\s0:12\*(tx14 +.X "Fortran logical unit" +getc(3f), putc(3f), stat(3f) +.X "Fortran, Non\*(tx``ANSI Standard'' extensions to" +\s-1PS1\s0:3\*(tx6 +.X "Fortran or Ratfor programs to EFL, conversion of old" +\s-1PS2\s0:6\*(tx24 +.X "Fortran, Portable" +\s-1PS1\s0:2, \s-1PS1\s0:3\*(tx7 +.X "Fortran procedures" +\s-1PS1\s0:2\*(tx13, \s-1PS2\s0:6\*(tx28,35 +.X "Fortran programs" +struct(1), plot(3f), \s-1PS1\s0:2\*(tx5,7,14..15, \s-1PS2\s0:8\*(tx2,12, \s-1PS2\s0:9\*(tx101, \s-1SMM\s0:12\*(tx7,16 +.X "Fortran, RATFOR \*(tx A Preprocessor for a Rational" +\s-1PS2\s0:8 +.X "Fortran, Rational" +ratfor(1) +.X "Fortran, Standard" +\s-1PS1\s0:2\*(tx4,12, \s-1PS2\s0:6\*(tx27,31,33,35 +.X "Fortran Standard, Exceptions to the ANSI" +\s-1PS1\s0:3\*(tx10 +.X "Fortran statements" +\s-1PS2\s0:6\*(tx27, \s-1PS2\s0:8\*(tx2,4,7 +.X "Fortran subroutines" +\s-1SMM\s0:12\*(tx7 +.X "fortune \*(tx print a random, hopefully interesting, adage" +fortune(6) +.X "forw \*(tx forward messages" +\s-1USD\s0:8\*(tx23,52,104 +.X "forward\*(txcharacter (C\*(txF)" +\s-1USD\s0:17\*(tx34 +.X "Forwarded:" +\s-1USD\s0:8\*(tx23,84 +.X "forwarded messages" +\s-1USD\s0:8\*(tx24 +.X "forwarding, block" +badsect(8), \s-1SMM\s0:12\*(tx20 +.X "forwarding, mail" +aliases(5), \s-1SMM\s0:16\*(tx4,6..7 +.X "forwarding, packet" +\s-1SMM\s0:1\*(tx41, \s-1SMM\s0:15\*(tx25 +.X "forwarding, sector" +bad144(8), \s-1SMM\s0:1\*(tx8, \s-1SMM\s0:12\*(tx15,18 +.X "forwarding text to other notesfiles" +\s-1USD\s0:11\*(tx8 +.X "forward\*(txparagraph (ESC ])" +\s-1USD\s0:17\*(tx34 +.X "forward\*(txsentence (ESC E)" +\s-1USD\s0:17\*(tx34 +.X "forward\*(txs\*(txexpression (ESC C\*(txF)" +\s-1USD\s0:17\*(tx34 +.X "forward\*(txword (ESC F)" +\s-1USD\s0:17\*(tx34 +.X "forwcomps" +\s-1USD\s0:8\*(tx23 +.X "FP" +fp(1), \s-1PS2\s0:7, \s-1PS2\s0:7\*(tx4..5,14..18,27,29 +.X "fp \*(tx Functional Programming language compiler/interpreter" +fp(1) +.X "fp functions" +fp(1), \s-1PS2\s0:7\*(tx4,17,27 +.X "FP User's Manual, Rev. 4.1, Berkeley" +\s-1PS2\s0:7 +.X "FPE, SIGFPE" +sigvec(2)\*(tx3, signal(3c)\*(tx2 +.X "fpecnt \*(tx trap and repair floating point faults" +trpfpe(3f) +.X "fpr \*(tx print Fortran file" +fpr(1) +.X "f_prealloc" +fopen(3s) +.X "fprintf" +printf(3s) +.X "fputc" +putc(3f) +.X "fractions" +\s-1USD\s0:26\*(tx3 +.X "fragment size" +fs(5)\*(tx3, mkfs(8), newfs(8) +.X "fragment size, selecting a" +\s-1SMM\s0:1\*(tx31 +.X "fragments" +\s-1SMM\s0:5\*(tx4, \s-1SMM\s0:14\*(tx5 +.X "frame buffer" +ik(4) +.X "frame pointer" +sigreturn(2), dbx(5)\*(tx1 +.X "frames, stack" +dbx(1)\*(tx5, malloc(3), varargs(3), dbx(5)\*(tx1, \s-1PS1\s0:10\*(tx5, \s-1PS2\s0:9\*(tx139, \s-1SMM\s0:12\*(tx2, \s-1SMM\s0:19\*(tx2,12..13,20 +.X "Franz Lisp Manual" +\s-1PS2\s0:9 +.X "FRANZ LISP system" +\s-1PS2\s0:7\*(tx28, \s-1PS2\s0:9\*(tx4,108 +.X "fread, fwrite \*(tx buffered binary input/output" +fread(3s) +.X "free" +malloc(3) +.X "free block checking" +\s-1SMM\s0:5\*(tx6 +.X "free blocks" +fs(5)\*(tx1 +.X "free form input" +efl(1), ratfor(1) +.X "free inodes" +creat(2), \s-1SMM\s0:5\*(tx6, \s-1SMM\s0:14\*(tx8 +.X "free lists" +systat(1)\*(tx2..3, vmstat(1), \s-1PS2\s0:5\*(tx5..6, \s-1PS2\s0:9\*(tx76, badsect(8), fsck(8), icheck(8), \s-1SMM\s0:13\*(tx11, \s-1SMM\s0:14\*(tx3..4,7, \s-1SMM\s0:15\*(tx24 +.X "free space" +df(1), dir(5), newfs(8), \s-1SMM\s0:10\*(tx7, \s-1SMM\s0:14\*(tx6,9..11, \s-1SMM\s0:15\*(tx24 +.X "free space reserve" +\s-1SMM\s0:14\*(tx6 +.X "Freedom 100" +sysline(1) +.X "free\*(txform input" +\s-1USD\s0:26\*(tx3 +.X "freopen" +fopen(3s), setbuf(3s) +.X "frequency, clock" +\s-1SMM\s0:12\*(tx8,10 +.X "frexp, ldexp, modf \*(tx split into mantissa and exponent" +frexp(3), \s-1SMM\s0:12\*(tx15 +.X "From:" +\s-1USD\s0:8\*(tx83, sendmail(8)\*(tx1 +.X "from \*(tx who is my mail from?" +from(1) +.X "from field" +mh(1)\*(tx1 +.X "front\*(txend, prompting" +\s-1USD\s0:8\*(tx71 +.X "front\*(txend, visual" +\s-1USD\s0:8\*(tx69 +.X "frozen configuration file" +sendmail(8)\*(tx1, \s-1SMM\s0:7\*(tx7..8 +.X "FS awk variable (input field separator)" +awk(1), \s-1USD\s0:19\*(tx2,5, \s-1PS2\s0:7\*(tx14 +.X "fs, inode \*(tx format of file system volume" +fs(5)\*(tx1 +.X "fs, struct" +fs(5) +.X "fscanf \*(tx formatted input conversion" +scanf(3s) +.X "fsck \*(tx file system consistency check and interactive repair" +clri(8), dcheck(8), fastboot(8), fsck(8), icheck(8), \s-1SMM\s0:5\*(tx2, \s-1SMM\s0:12\*(tx20 +.X "Fsck Error Conditions" +\s-1SMM\s0:5\*(tx9 +.X "fsck, mklost+found \*(tx make a lost+found directory for" +mklost+found(8) +.X "fseek" +fopen(3s), ungetc(3s) +.X "fseek, ftell \*(tx reposition a file on a logical unit" +abs(3) +.X "fseek, ftell, rewind \*(tx reposition a stream" +fseek(3s) +.X "F_SETFL" +\s-1PS1\s0:6\*(tx19, \s-1PS1\s0:8\*(tx25..26 +.X "F_SETOWN" +\s-1PS1\s0:6\*(tx19, \s-1PS1\s0:8\*(tx26 +.X "fsplit \*(tx split a multi\*(txroutine Fortran file into individual files" +fsplit(1) +.X "fstab" +getfsent(3) +.X "fstab \*(tx static information about the filesystems" +fstab(5) +.X "fstab, struct" +getfsent(3), fstab(5) +.X "fstat \*(tx get file status" +stat(2)\*(tx1, stat(3f)\*(tx1 +.X "fstat system call on a socket" +\s-1SMM\s0:15\*(tx16 +.X "fstat(fd, stb)" +\s-1PS1\s0:6\*(tx29 +.X "fsync \*(tx synchronize a file's in\*(txcore state with that on disk" +abs(3) +.X "ftell" +fseek(3s) +.X "ftime \*(tx get date and time" +time(3c) +.X "ftp \*(tx ARPANET file transfer program" +ftp(1c)\*(tx1,6, \s-1SMM\s0:1\*(tx38, \s-1SMM\s0:12\*(tx8 +.X "ftp, anonymous" +ftpd(8c) +.X "ftp protocol" +ftp(1c)\*(tx5..6, \s-1PS1\s0:8\*(tx17, \s-1SMM\s0:7\*(tx28 +.X "FTP servers" +ftp(1c), ftpd(8c), \s-1SMM\s0:1\*(tx43..44, \s-1SMM\s0:12\*(tx20 +.X "FTP session" +ftp(1c)\*(tx1, ftpd(8c) +.X "ftpd \*(tx DARPA Internet File Transfer Protocol server" +ftpd(8c), \s-1SMM\s0:12\*(tx20 +.X "ftruncate(fd, length)" +truncate(2), \s-1PS1\s0:6\*(tx31 +.X "Fujitsu 160m drive partitions" +up(4)\*(tx2 +.X "Fujitsu 2361 partitions" +hp(4)\*(tx3 +.X "Fujitsu Eagle" +hp(4)\*(tx1, up(4)\*(tx1, bad144(8), \s-1SMM\s0:13\*(tx34 +.X "Fujitsu eagle partitions" +hp(4)\*(tx3 +.X "full dumps" +\s-1SMM\s0:1\*(tx46..47 +.X "full path name" +\s-1PS1\s0:6\*(tx27 +.X "full width horizontal lines" +\s-1USD\s0:28\*(tx5 +.X "full\*(txduplex connections" +tip(1c)\*(tx1, tn3270(1), shutdown(2) +.X "full\*(txduplex socket" +\s-1PS1\s0:6\*(tx36 +.X "full\*(txname" +\s-1SMM\s0:7\*(tx20,32, \s-1SMM\s0:16\*(tx5 +.X "fullname(termbuf, name)" +\s-1PS1\s0:18\*(tx15 +.X "funcallhook" +\s-1PS2\s0:9\*(tx4 +.X "function, access" +\s-1PS2\s0:9\*(tx108,111 +.X "function address" +\s-1PS2\s0:9\*(tx128 +.X "function arguments" +bc(1), \s-1USD\s0:6\*(tx10, \s-1PS1\s0:1\*(tx31, \s-1PS1\s0:9\*(tx4,6, \s-1PS2\s0:9\*(tx103, \s-1SMM\s0:19\*(tx15 +.X "function, array access" +\s-1PS2\s0:9\*(tx108,111 +.X "function binding" +\s-1PS2\s0:9\*(tx4,21..22,29,58,62..63,70,120,124,136 +.X "function, break" +\s-1USD\s0:24\*(tx3,11 +.X "function call counts" +pxp(1) +.X "function calls" +bc(1), dbx(1)\*(tx5, window(1)\*(tx5, \s-1USD\s0:6\*(tx5,10, \s-1USD\s0:17\*(tx21, \s-1PS1\s0:1\*(tx6..7,21,31, \s-1PS1\s0:4\*(tx38, \s-1PS1\s0:9\*(tx6, \s-1PS1\s0:10\*(tx13, \s-1PS1\s0:11\*(tx3, \s-1PS2\s0:9\*(tx51,55,67,119,128,133,136, \s-1SMM\s0:19\*(tx12..13,24 +.X "function cell" +\s-1PS2\s0:9\*(tx108,111 +.X "function declaration" +lint(1), \s-1USD\s0:15\*(tx15..16 +.X "function definition" +bc(1), lint(1), vgrind(1), \s-1USD\s0:6\*(tx4..7, \s-1USD\s0:15\*(tx16, \s-1USD\s0:17\*(tx21, \s-1PS1\s0:1\*(tx24, \s-1PS1\s0:9\*(tx3,9, \s-1PS2\s0:7\*(tx15, \s-1PS2\s0:9\*(tx24,28,70..71,98..99,108,116,120,123,128,140 +.X "function description" +\s-1PS2\s0:9\*(tx10 +.X "function entry" +gprof(1), \s-1PS1\s0:4\*(tx25..26, \s-1PS2\s0:7\*(tx17 +.X "function, error handler" +\s-1PS2\s0:9\*(tx113,115 +.X "function, exponential" +bc(1), \s-1USD\s0:6\*(tx6, exp(3m) +.X "function field" +\s-1PS2\s0:9\*(tx37,95 +.X "function, hook" +\s-1PS2\s0:9\*(tx56 +.X "function index" +ctags(1), vgrind(1), \s-1USD\s0:19\*(tx4 +.X "function keys" +window(1)\*(tx2, \s-1USD\s0:15\*(tx16,23, \s-1USD\s0:16\*(tx8, termcap(5)\*(tx10,13 +.X "function, lambda" +\s-1PS2\s0:9\*(tx95 +.X "function, macro" +\s-1PS2\s0:9\*(tx73,89..90,94 +.X "function names" +dbx(1)\*(tx2,4, error(1)\*(tx2, vgrind(1), \s-1USD\s0:6\*(tx4..5,10, \s-1USD\s0:15\*(tx19, \s-1USD\s0:17\*(tx21, \s-1PS1\s0:2\*(tx5, \s-1PS1\s0:4\*(tx11,35,45, \s-1PS2\s0:7\*(tx29,37, \s-1PS2\s0:9\*(tx10,14,29..32,80,119..120,128,132, \s-1PS2\s0:10\*(tx35 +.X "function, print" +\s-1USD\s0:18\*(tx7 +.X "function prologs" +\s-1SMM\s0:19\*(tx6,11..12 +.X "function, qlinker" +\s-1PS2\s0:9\*(tx116,128 +.X "function returns" +\s-1PS1\s0:1\*(tx23, \s-1PS1\s0:9\*(tx3, \s-1SMM\s0:19\*(tx13,23 +.X "function, setsyntax" +\s-1PS2\s0:9\*(tx85,92,95 +.X "function sprintf" +\s-1USD\s0:19\*(tx4 +.X "function substr" +\s-1USD\s0:19\*(tx4 +.X "function types" +\s-1PS2\s0:9\*(tx4,10, \s-1PS2\s0:10\*(tx76, \s-1SMM\s0:19\*(tx12 +.X "function values" +\s-1PS1\s0:9\*(tx3, \s-1PS2\s0:6\*(tx10,21,26, \s-1PS2\s0:8\*(tx7..8 +.X "functional arguments" +fp(1), \s-1PS2\s0:7\*(tx4,15..17 +.X "functional evaluations" +\s-1PS2\s0:9\*(tx60 +.X "functional expressions" +fp(1), \s-1PS2\s0:7\*(tx4..5,11,15, \s-1PS2\s0:10\*(tx35 +.X "functional forms" +fp(1), \s-1PS2\s0:7\*(tx4,10..15,28..30,33 +.X "functional objects" +\s-1PS2\s0:9\*(tx3,36..37,101..103 +.X "functional parameters" +\s-1PS2\s0:7\*(tx28,30,33 +.X "Functional Programming" +\s-1PS2\s0:7 +.X "Functional Programming language compiler/interpreter, fp \*(tx" +fp(1) +.X "Functions" +ctags(1), \s-1PS1\s0:1\*(tx29 +.X "functions, action" +\s-1PS2\s0:7\*(tx27..28 +.X "functions, aggregate" +\s-1PS2\s0:10\*(tx34,36..37,83 +.X "functions, Bessel" +bc(1), \s-1USD\s0:6\*(tx1,7, bessel(3f), j0(3m) +.X "functions, built\*(txin" +window(1)\*(tx5, \s-1USD\s0:4\*(tx3,39, \s-1USD\s0:19\*(tx4, \s-1PS1\s0:4\*(tx47, \s-1PS1\s0:17\*(tx4, \s-1PS2\s0:9\*(tx95 +.X "functions, C" +\s-1PS2\s0:9\*(tx75,97,104 +.X "functions, C library" +intro(3)\*(tx1, \s-1SMM\s0:12\*(tx21 +.X "functions, colon" +\s-1USD\s0:18\*(tx10 +.X "functions, editing" +\s-1USD\s0:18\*(tx1 +.X "functions, foreign" +\s-1PS2\s0:9\*(tx3,10,28,63,65,103..105,108 +.X "functions, FP" +fp(1), \s-1PS2\s0:7\*(tx4,17,27 +.X "functions, generic" +efl(1), \s-1PS2\s0:6\*(tx10,24 +.X "functions, intrinsic" +intro(3f)\*(tx1 +.X "functions, I/O" +hier(7)\*(tx6, \s-1SMM\s0:12\*(tx2 +.X "functions, lexpr" +\s-1PS2\s0:9\*(tx95 +.X "functions, library" +\s-1USD\s0:6\*(tx1,7, intro(3)\*(tx1, math(3m)\*(tx1 +.X "functions, lisp" +\s-1PS2\s0:9\*(tx4,8,63,73,95,101,103,108,112,116,119 +.X "functions, list of library" +intro(3)\*(tx1, intro(3f)\*(tx1, math(3m)\*(tx1 +.X "functions, list of troff escape sequences for characters, ..." +\s-1USD\s0:24\*(tx6 +.X "functions, nlambda" +\s-1PS2\s0:9\*(tx95,124 +.X "functions, output" +\s-1PS1\s0:18\*(tx6,8, \s-1SMM\s0:13\*(tx30 +.X "functions, screen updating" +\s-1PS1\s0:18\*(tx6 +.X "functions, time and statistics" +\s-1PS1\s0:6 +.X "functions, unused arguments in" +lint(1) +.X "functions with varying numbers of arguments" +lint(1) +.X "fundamental types" +\s-1PS1\s0:1\*(tx4,11 +.X "fundamental\*(txmode" +\s-1USD\s0:17\*(tx34 +.X "fundamentals, file system" +\s-1USD\s0:1\*(tx1 +.X "fwrite" +fread(3s), tty(4)\*(tx8 +.L G +.X "game, adventure \*(tx an exploration" +adventure(6) +.X "games" +battlestar(6), mille(6)\*(tx3, \s-1USD\s0:4\*(tx35, \s-1USD\s0:34\*(tx1,11 +.X "games, computer fantasy" +rogue(6), \s-1USD\s0:33\*(tx2 +.X "gamma" +lgamma(3m) +.X "gaps in files" +lseek(2) +.X "garbage collection" +ps(1)\*(tx1, \s-1PS2\s0:9\*(tx2,10,62,76,79,82,108,112..113,127, \s-1SMM\s0:13\*(tx15, \s-1SMM\s0:15\*(tx24 +.X "gateway address" +ip(4p), route(8c), \s-1SMM\s0:13\*(tx22 +.X "gateway support" +\s-1SMM\s0:1\*(tx41 +.X "Gateways and routing issues" +ecvt(3), \s-1SMM\s0:2\*(tx13,33, \s-1SMM\s0:15\*(tx20 +.X "gateways file" +htable(8), \s-1SMM\s0:1\*(tx42 +.X "gather writing" +write(2) +.X "gathering of data for output" +\s-1PS1\s0:6\*(tx25 +.X "gcd \*(tx multiple precision integer arithmetic" +mp(3x) +.X "gcore \*(tx get core images of running processes" +gcore(1) +.X "GE TermiNet 300" +nroff(1) +.X "generic distribution version of the system" +\s-1SMM\s0:1\*(tx27 +.X "generic functions" +\s-1PS2\s0:6\*(tx10,24 +.X "generic names" +intro(3f)\*(tx1, \s-1PS1\s0:2\*(tx6, \s-1PS2\s0:10\*(tx6 +.X "Generic operations" +\s-1PS1\s0:6\*(tx18,24,42, \s-1SMM\s0:2\*(tx2 +.X "generic system" +autoconf(4), ts(4), \s-1SMM\s0:1\*(tx13,52,64..65, \s-1SMM\s0:2\*(tx3..6,11 +.X "geometry, disk" +hp(4)\*(tx1, disktab(5), newfs(8) +.X "geoquel \*(tx GEO\*(txQUEL data display system" +\s-1PS2\s0:10\*(tx54,67,73 +.X "GEO\*(txQUEL login message, .../files/grafile7 \*(tx" +\s-1PS2\s0:10\*(tx67 +.X "gerror" +perror(3f) +.X "get and set a terminal or window's size" +\s-1SMM\s0:13\*(tx3 +.X "get descriptor options" +\s-1PS1\s0:6\*(tx19 +.X "get descriptor owner (pid/pgrp)" +\s-1PS1\s0:6\*(tx19 +.X "getargs, iargc \*(tx return command line argument" +getarg(3f) +.X "getc, fgetc \*(tx get a character from a logical unit" +\s-1SMM\s0:1\*(tx40 +.X "getc, getchar, fgetc, getw \*(tx get character or word from stream" +getc(3s) +.X "getcap(str)" +\s-1PS1\s0:18\*(tx14 +.X "getch()" +\s-1PS1\s0:18\*(tx6,12 +.X "getcwd \*(tx get pathname of current working directory" +getcwd(3f) +.X "getdiskbyname \*(tx get disk description by its name" +getdiskbyname(3) +.X "getdtablesize \*(tx get descriptor table size" +fcntl(2), getdtablesize(2), open(2), \s-1PS1\s0:6\*(tx18, \s-1SMM\s0:1\*(tx23 +.X "getegid()" +\s-1PS1\s0:6\*(tx8 +.X "getenv \*(tx get value of environment variables" +getenv(3), \s-1PS1\s0:18\*(tx7 +.X "geteuid()" +\s-1PS1\s0:6\*(tx8 +.X "getgid, getegid \*(tx get group identity" +getgid(2), \s-1PS1\s0:6\*(tx8 +.X "getgrent" +initgroups(3) +.X "getgroups \*(tx get group access list" +getgroups(2) +.X "getgroups(gidsetsize, gidset)" +\s-1PS1\s0:6\*(tx8 +.X "gethostbyaddr" +\s-1SMM\s0:12\*(tx15 +.X "gethostbyname()" +\s-1PS1\s0:7\*(tx11, htable(8), \s-1SMM\s0:12\*(tx15 +.X "gethostbyname, gethostbyaddr, gethostent, sethostent, endhostent ..." +gethostbyname(3) +.X "gethostid()" +\s-1PS1\s0:6\*(tx7 +.X "gethostid, sethostid \*(tx get/set unique identifier of current host" +gethostid(2) +.X "gethostname, sethostname \*(tx get/set name of current host" +gethostname(2) +.X "gethostname(buf, buflen)" +\s-1PS1\s0:6\*(tx7 +.X "getitimer, setitimer \*(tx get/set value of interval timer" +getitimer(2) +.X "getitimer(which, value)" +\s-1PS1\s0:6\*(tx17 +.X "getlog \*(tx get user's login name" +getlog(3f) +.X "getlogin \*(tx get login name" +getlogin(3) +.X "getnetbyname" +\s-1PS1\s0:8\*(tx13 +.X "getnetbynumber" +\s-1PS1\s0:8\*(tx13 +.X "getnetent" +\s-1PS1\s0:8\*(tx13, htable(8) +.X "getopt \*(tx get option letter from argv" +getopt(3), \s-1SMM\s0:12\*(tx15 +.X "getpagesize \*(tx get system page size" +pagesize(1), getpagesize(2) +.X "getpass \*(tx read a password" +getpass(3) +.X "getpeername \*(tx get name of connected peer" +getpeername(2), \s-1PS1\s0:8\*(tx31,41 +.X "getpeername(s, name, namelen)" +\s-1PS1\s0:6\*(tx34 +.X "getpgrp \*(tx get process group" +getpgrp(2) +.X "getpgrp(pid)" +\s-1PS1\s0:6\*(tx9 +.X "getpid()" +\s-1PS1\s0:6\*(tx7 +.X "getpid \*(tx get process id" +csh(1)\*(tx12 +.X "getpid, getppid \*(tx get process identification" +csh(1)\*(tx12 +.X "getpriority, setpriority \*(tx get/set program scheduling priority" +getpriority(2) +.X "getpriority(which, who)" +\s-1PS1\s0:6\*(tx21 +.X "getprotobyname" +icmp(4p), \s-1PS1\s0:8\*(tx14 +.X "getprotobynumber" +\s-1PS1\s0:8\*(tx14 +.X "getprotoent, getprotobynumber, getprotobyname, setprotoent, ..." +getprotoent(3n), \s-1PS1\s0:8\*(tx14 +.X "getpw \*(tx get name from uid" +getpw(3c) +.X "getpwnam" +getlogin(3), \s-1SMM\s0:12\*(tx15 +.X "getpwuid" +getlogin(3), getpw(3c), \s-1SMM\s0:12\*(tx15 +.X "getrlimit, setrlimit \*(tx control maximum system resource consumption" +brk(2), getrlimit(2) +.X "getrusage \*(tx get information about resource utilization" +getrusage(2) +.X "getrusage(who, rusage)" +\s-1PS1\s0:6\*(tx21 +.X "gets, fgets \*(tx get a string from a stream" +gets(3s) +.X "getservbyname" +\s-1PS1\s0:8\*(tx14 +.X "getservent, getservbyport, getservbyname, setservent, endservent ..." +getservent(3n) +.X "getsockname \*(tx get socket name" +getsockname(2) +.X "getsockname(s, name, namelen)" +\s-1PS1\s0:6\*(tx34, \s-1PS1\s0:7\*(tx11 +.X "getsockopt, setsockopt \*(tx get and set options on socket" +getsockopt(2) +.X "getsockopt(s, level, optname, optval, optlen)" +ip(4p), \s-1PS1\s0:6\*(tx36, \s-1PS1\s0:8\*(tx35 +.X "getstr(str)" +\s-1PS1\s0:18\*(tx13 +.X "gettable \*(tx get NIC format host tables from a host" +gettable(8c), htable(8), \s-1SMM\s0:12\*(tx20 +.X "gettimeofday, settimeofday \*(tx get/set date and time" +gettimeofday(2), \s-1PS1\s0:6\*(tx16 +.X "getting files for compilation" +\s-1PS1\s0:14\*(tx3 +.X "gettmode()" +\s-1PS1\s0:18\*(tx7,17 +.X "gettmode, Variables Set By" +\s-1PS1\s0:18\*(tx19 +.X "getttmode()" +\s-1PS1\s0:18\*(tx6 +.X "getttyent" +\s-1SMM\s0:12\*(tx15 +.X "getttyent, getttynam, setttyent, endttyent \*(tx get ttys file entry" +getttyent(3) +.X "getttynam" +\s-1SMM\s0:12\*(tx15 +.X "getty \*(tx set terminal mode" +gettytab(5)\*(tx3, getty(8), \s-1SMM\s0:12\*(tx20 +.X "gettytab \*(tx terminal configuration data base" +gettytab(5)\*(tx1, getty(8), \s-1SMM\s0:12\*(tx18 +.X "getuid()" +getlogin(3), \s-1PS1\s0:6\*(tx8 +.X "getuid, geteuid \*(tx get user identity" +getuid(2) +.X "getuid, getgid \*(tx get user or group ID of the caller" +getuid(3f) +.X "getusershell, setusershell, endusershell \*(tx get legal user shell" +getusershell(3), \s-1SMM\s0:12\*(tx15 +.X "getw" +getc(3s) +.X "getwd \*(tx get current working directory pathname" +getwd(3), \s-1SMM\s0:12\*(tx15 +.X "getyx(win, y, x)" +\s-1PS1\s0:18\*(tx14 +.X "gfont" +\s-1USD\s0:27\*(tx5 +.X "gid, type" +getgroups(2), setgroups(2) +.X "gidset array" +setgroups(2) +.X "glob shell command" +csh(1)\*(tx11 +.X "global commands" +ed(1)\*(tx3..5, \s-1USD\s0:1\*(tx12, \s-1USD\s0:12\*(tx1,8, \s-1USD\s0:13\*(tx2,7,10..11, \s-1USD\s0:14\*(tx18, \s-1USD\s0:16\*(tx4,7,11,15,17 +.X "global configuration parameters" +\s-1SMM\s0:2\*(tx7,15 +.X "global entry points" +\s-1PS2\s0:9\*(tx65 +.X "global labels" +\s-1PS1\s0:4\*(tx42, \s-1PS1\s0:5\*(tx4 +.X "global replacement" +\s-1USD\s0:17\*(tx10 +.X "global variables" +dbx(5)\*(tx1, \s-1SMM\s0:2\*(tx30 +.X "globbing" +csh(1)\*(tx7, find(1), ftp(1c)\*(tx2,6, ftpd(8c) +.X "glossary of terms" +\s-1USD\s0:4\*(tx34 +.X "glossary of terms peculiar to mail" +\s-1USD\s0:7\*(tx22 +.X "gmon.out file" +cc(1)\*(tx1, f77(1)\*(tx1, gprof(1), kgmon(8) +.X "gmon.sum" +gprof(1) +.X "GMT (see also Greenwich)" +date(1) +.X "gmtime \*(tx return system time" +ctime(3), time(3f) +.X "goto label" +csh(1)\*(tx14, \s-1USD\s0:4\*(tx31 +.X "goto, setjmp, longjmp \*(tx non\*(txlocal" +setjmp(3) +.X "goto statements" +struct(1), \s-1USD\s0:4\*(tx30, \s-1USD\s0:15\*(tx4, \s-1PS1\s0:1\*(tx23, \s-1PS1\s0:4\*(tx25, \s-1PS2\s0:6\*(tx20,25, \s-1PS2\s0:8\*(tx2,7 +.X "goto\*(txline (ESC G)" +\s-1USD\s0:17\*(tx34 +.X "gprof \*(tx display call graph profile data" +cc(1)\*(tx1, f77(1)\*(tx1, gprof(1), monitor(3), \s-1PS1\s0:2\*(tx5, \s-1SMM\s0:12\*(tx8 +.X "grammar, bc language formal" +\s-1USD\s0:6\*(tx9 +.X "grammar, Bourne shell formal" +\s-1USD\s0:3\*(tx22 +.X "grammar, context\*(txfree" +yacc(1) +.X "grammar, eqn formal" +\s-1USD\s0:26\*(tx5 +.X "grammar rules" +\s-1PS1\s0:15\*(tx1..8,11..16,19,24 +.X "grammars, LALR(1)" +\s-1PS1\s0:15\*(tx1 +.X "graph \*(tx draw a graph" +graph(1g) +.X "graph, call" +gprof(1), \s-1SMM\s0:2\*(tx6 +.X "graph, dynamic call" +gprof(1), \s-1SMM\s0:2\*(tx6 +.X "graph profile entry" +gprof(1) +.X "graphic output" +plot(3f) +.X "Graphic Systems phototypesetter" +eqn(1), tc(1), \s-1USD\s0:24\*(tx2,8, \s-1USD\s0:26\*(tx2 +.X "graphics" +intro(1) +.X "graphics cursor" +lib2648(3x)\*(tx3 +.X "graphics display" +lib2648(3x)\*(tx2..3 +.X "graphics file" +plot(5) +.X "graphics programs" +lib2648(3x)\*(tx1 +.X "graphics screen" +lib2648(3x)\*(tx1..2 +.X "graphics terminals" +plot(1g), lib2648(3x)\*(tx1 +.X "grave accents" +ms(7)\*(tx3, \s-1USD\s0:3\*(tx16, \s-1USD\s0:21\*(tx3, \s-1USD\s0:22\*(tx18, \s-1USD\s0:23\*(tx9, \s-1USD\s0:24\*(tx9 +.X "Greek letters" +eqn(1), \s-1USD\s0:24\*(tx33, \s-1USD\s0:25\*(tx4, \s-1USD\s0:26\*(tx1, \s-1USD\s0:27\*(tx2,9, \s-1SMM\s0:20\*(tx4 +.X "Greenwich mean time" +gettimeofday(2), ctime(3), time(3c), \s-1PS1\s0:6\*(tx16 +.X "gremlin picture" +\s-1USD\s0:23\*(tx7 +.X "gremlin picture (alternate form), .GF End" +\s-1USD\s0:23\*(tx7 +.X "grep" +\s-1USD\s0:13\*(tx15, \s-1USD\s0:17\*(tx28,40, \s-1USD\s0:19\*(tx3,6 +.X "grep, egrep, fgrep \*(tx search a file for a pattern" +grep(1), \s-1USD\s0:4\*(tx38 +.X "grep, egrep, fgrep, sed, lex, awk performance comparison, wc," +\s-1USD\s0:19\*(tx6 +.X "grep patterns" +grep(1), \s-1USD\s0:8\*(tx47 +.X "grep \*(txv" +\s-1USD\s0:13\*(tx15 +.X "grid style" +graph(1g) +.X "grind\*(txs\*(txexpr" +\s-1USD\s0:17\*(tx34 +.X "group \*(tx group file" +group(5) +.X "group 0" +\s-1SMM\s0:12\*(tx11 +.X "group access list" +access(2), getgroups(2), intro(2)\*(tx6..7, setgroups(2), initgroups(3) +.X "group, distinguished process" +tty(4)\*(tx5 +.X "group file" +getgrent(3) +.X "group ids" +chgrp(1), chmod(1), find(1), intro(2)\*(tx6, mkdir(2), setregid(2), getuid(3f), setuid(3), group(5), passwd(5), \s-1PS1\s0:6\*(tx29, \s-1PS2\s0:9\*(tx84, \s-1PS2\s0:10\*(tx63, \s-1SMM\s0:6\*(tx3, \s-1SMM\s0:17\*(tx2 +.X "group IDs, user and" +login(1), execve(2), \s-1SMM\s0:13\*(tx2,4,8 +.X "group, mail" +\s-1SMM\s0:11\*(tx3,9 +.X "group, message" +mail(1)\*(tx3 +.X "group names" +chgrp(1), find(1), mail(1)\*(tx4, group(5), chown(8) +.X "group tty" +\s-1SMM\s0:12\*(tx9 +.X "group, wheel" +su(1) +.X "groups" +\s-1SMM\s0:12\*(tx8 +.X "groups \*(tx show group memberships" +groups(1) +.X "groups, access" +execve(2), \s-1PS1\s0:6\*(tx8 +.X "groups, cylinder" +fs(5), mkfs(8), newfs(8), tunefs(8), \s-1SMM\s0:5\*(tx4, \s-1SMM\s0:14\*(tx4..9 +.X "groups, delimitor" +\s-1PS2\s0:10\*(tx15..16,44 +.X "groups, process" +kill(1), stty(1)\*(tx3, fcntl(2), getpgrp(2), getpriority(2), intro(2)\*(tx1,5, kill(2), killpg(2), setpgrp(2), socket(2), vhangup(2), rcmd(3), rexec(3), tty(4)\*(tx1..2,5,10, \s-1PS1\s0:6\*(tx9,13..14,19..21,38..39, \s-1PS1\s0:8\*(tx19,24..26, renice(8), \s-1SMM\s0:12\*(tx13..14, \s-1SMM\s0:13\*(tx8..9,14 +.X "groups, well\*(txknown" +\s-1SMM\s0:1\*(tx21 +.X "grow\*(txwindow (C\*(txX ^)" +\s-1USD\s0:17\*(tx34 +.X "GSI 300 terminal" +plot(3x) +.X "GSI 450 terminal" +plot(3x) +.X "gsize" +\s-1USD\s0:27\*(tx5 +.X "GTCO digitizing tablet" +tb(4) +.X "GTE Telenet PC Pursuit" +L\*(txdevices(5) +.X "gtty \*(tx get terminal state (defunct)" +stty(3c), \s-1PS1\s0:18\*(tx7 +.X "guest accounts" +\s-1SMM\s0:1\*(tx34 +.X "gutter width" +\s-1USD\s0:20\*(tx2 +.X "GW intercolumn gap" +\s-1USD\s0:20\*(tx5 +.L h +.X "h19" +sysline(1) +.X "hacek" +\s-1USD\s0:23\*(tx9 +.X "half\*(txduplex communication" +remote(5) +.X "half\*(txline motions" +col(1), termcap(5)\*(tx12, \s-1SMM\s0:20\*(tx2..4 +.X "halt" +init(8), shutdown(8), \s-1SMM\s0:1\*(tx10 +.X "halt \*(tx stop the processor" +reboot(2), cons(4), fastboot(8), halt(8) +.X "halt, unclean" +\s-1SMM\s0:5\*(tx5..6,9 +.X "handler, error" +\s-1USD\s0:3\*(tx18, math(3m)\*(tx6, setjmp(3), \s-1SMM\s0:12\*(tx15, \s-1SMM\s0:13\*(tx19 +.X "handlers, message" +mh(1)\*(tx1, \s-1USD\s0:8\*(tx2,65 +.X "handlers, signal" +sigvec(2), pause(3c), siginterrupt(3), trapov(3f), trpfpe(3f), \s-1SMM\s0:13\*(tx5..6 +.X "handler, terminal" +tty(4)\*(tx3, \s-1SMM\s0:1\*(tx26 +.X "handling, file" +\s-1USD\s0:2\*(tx1..2, \s-1USD\s0:17\*(tx14 +.X "handshake, three\*(txway" +\s-1PS1\s0:8\*(tx38, \s-1SMM\s0:2\*(tx33, \s-1SMM\s0:13\*(tx29 +.X "hang up on last close" +tty(4)\*(tx5 +.X "hanging tag" +\s-1USD\s0:21\*(tx2 +.X "hangman \*(tx Computer version of the game" +hangman(6) +.X "hangs, system" +\s-1SMM\s0:1\*(tx65 +.X "hangup signals" +csh(1)\*(tx12, stty(1)\*(tx3, window(1)\*(tx3, \s-1USD\s0:16\*(tx3, exit(2), vhangup(2), signal(3c)\*(tx1, tty(4)\*(tx5, gettytab(5), inetd(8), init(8), syslogd(8), \s-1SMM\s0:1\*(tx33 +.X "hangup signals, ignore" +csh(1)\*(tx13, nice(1) +.X "hard I/O errors" +\s-1SMM\s0:1\*(tx63, \s-1SMM\s0:13\*(tx31 +.X "hard limits" +csh(1)\*(tx13,16, getrlimit(2), intro(2)\*(tx2, \s-1PS1\s0:6\*(tx22,32, \s-1SMM\s0:1\*(tx23,50, \s-1SMM\s0:2\*(tx32, \s-1SMM\s0:4\*(tx1, \s-1SMM\s0:13\*(tx12,16, \s-1SMM\s0:14\*(tx13 +.X "hard link (see also link)" +find(1), ln(1), intro(2)\*(tx2..3, link(2), rename(2), stat(2)\*(tx1, tar(5), \s-1PS1\s0:6\*(tx29..30, \s-1SMM\s0:5\*(tx8 +.X "hard locks" +\s-1SMM\s0:14\*(tx12 +.X "hard\*(txcopy record of terminal session" +script(1) +.X "hardcopy terminals" +error(1)\*(tx3, \s-1USD\s0:15\*(tx1,21..22, tty(4)\*(tx3, termcap(5)\*(tx11..12 +.X "hardware address" +arp(4p), vv(4) +.X "hardware, associated" +mount(2) +.X "hardware characteristics" +\s-1PS1\s0:1\*(tx3 +.X "hardware conditions" +\s-1PS1\s0:6\*(tx13 +.X "hardware configurations" +\s-1SMM\s0:1\*(tx3,7,29, \s-1SMM\s0:2\*(tx2 +.X "hardware devices" +intro(4), pty(4), \s-1SMM\s0:2\*(tx3,9,13, \s-1SMM\s0:15\*(tx10 +.X "hardware error reporting and diagnosis" +\s-1SMM\s0:1\*(tx1 +.X "hardware failures" +crash(8v)\*(tx1, \s-1SMM\s0:1\*(tx5, \s-1SMM\s0:2\*(tx3, \s-1SMM\s0:5\*(tx2,4..8, \s-1SMM\s0:14\*(tx4 +.X "hardware faults" +intro(2)\*(tx2, sigvec(2)\*(tx3, \s-1SMM\s0:13\*(tx32 +.X "hardware interfaces" +\s-1SMM\s0:15\*(tx6,26 +.X "hardware interrupt" +sigvec(2)\*(tx1 +.X "hardware, network" +ping(8), \s-1SMM\s0:2\*(tx33, \s-1SMM\s0:13\*(tx2,6 +.X "hardware problems" +\s-1SMM\s0:13\*(tx26,30 +.X "hardware supported by 4.3BSD" +intro(4), \s-1SMM\s0:1\*(tx2 +.X "hardware traps to signals, mapping of" +signal(3c)\*(tx3 +.X "hardwired line" +L\*(txdevices(5) +.X "hash codes" +\s-1USD\s0:30\*(tx2..3 +.X "hash tables" +csh(1)\*(tx12,14,16, \s-1USD\s0:4\*(tx23, \s-1PS2\s0:9\*(tx9,76,154, \s-1PS2\s0:10\*(tx56, \s-1SMM\s0:14\*(tx9 +.X "hashed database" +\s-1SMM\s0:12\*(tx2,15 +.X "hashstat" +csh(1)\*(tx12 +.X "Hayes Smartmodem 1200" +L\*(txdevices(5) +.X "Hazeltine terminals" +stty(1)\*(tx2, tty(4)\*(tx4,9, termcap(5)\*(tx2,4,13 +.X "hdh \*(tx ACC IF\*(tx11/HDH IMP interface" +hdh(4), imp(4), \s-1SMM\s0:12\*(tx17 +.X "HDLC" +hdh(4) +.X "HdrInfo structure" +\s-1SMM\s0:7\*(tx38 +.X "head \*(tx give first few lines" +head(1), \s-1USD\s0:4\*(tx38 +.X "head crash" +\s-1SMM\s0:5\*(tx3, \s-1SMM\s0:14\*(tx4 +.X "header and the first line of text, .m2 Set the space between the" +\s-1USD\s0:23\*(tx4 +.X "header components" +\s-1USD\s0:8\*(tx82,96 +.X "header declarations" +\s-1SMM\s0:16\*(tx5,8 +.X "header definitions" +\s-1SMM\s0:7\*(tx37, \s-1SMM\s0:16\*(tx8 +.X "header, .eh Define" +\s-1USD\s0:23\*(tx3, \s-1SMM\s0:7\*(tx37 +.X "header fields" +mail(1)\*(tx2..4, \s-1USD\s0:7\*(tx2..3,9,13..16,21..22, \s-1USD\s0:8\*(tx96, \s-1SMM\s0:7\*(tx37, \s-1SMM\s0:16\*(tx7 +.X "header files" +dbx(1)\*(tx7, pc(1), \s-1USD\s0:32\*(tx11, stdio(3s), \s-1PS1\s0:14\*(tx5, \s-1PS1\s0:15\*(tx22, \s-1PS1\s0:18\*(tx3, config(8), \s-1SMM\s0:2\*(tx5, \s-1SMM\s0:12\*(tx13,15,18, \s-1SMM\s0:13\*(tx2..3,9 +.X "header, .$h Called at every page to print the" +\s-1USD\s0:23\*(tx4 +.X "header, .he Define three\*(txpart" +\s-1USD\s0:23\*(tx3 +.X "header information" +\s-1PS1\s0:13\*(tx11, \s-1PS1\s0:14\*(tx1 +.X "header, IP" +icmp(4p), ip(4p), nsip(4) +.X "header items" +\s-1USD\s0:8\*(tx82 +.X "header lines" +\s-1USD\s0:7\*(tx14, \s-1USD\s0:8\*(tx26,62,65,96, \s-1USD\s0:9\*(tx3, bugfiler(8), \s-1SMM\s0:7\*(tx12,18,32,36..37, \s-1SMM\s0:10\*(tx7,14, \s-1SMM\s0:16\*(tx5,8 +.X "header margin" +ms(7)\*(tx3 +.X "header, network" +\s-1SMM\s0:15\*(tx14,21,26 +.X "header, .oh Define" +\s-1USD\s0:23\*(tx3 +.X "header, trailer protocol" +\s-1SMM\s0:15\*(tx26 +.X "headers (see also heading)" +\s-1USD\s0:23\*(tx2, \s-1USD\s0:24\*(tx2,29 +.X "headers and footers" +\s-1USD\s0:22\*(tx3, \s-1USD\s0:23\*(tx3 +.X "headers and footers on the next pages, .hx Suppress" +\s-1USD\s0:23\*(tx4 +.X "headers, buffer" +\s-1SMM\s0:2\*(tx31 +.X "headers command" +\s-1USD\s0:7\*(tx14,17 +.X "headers, IDP" +idp(4p) +.X "headers, message" +mail(1)\*(tx3, \s-1USD\s0:7\*(tx14,19, imp(4), comsat(8c), sendmail(8)\*(tx2, \s-1SMM\s0:7\*(tx4,36, \s-1SMM\s0:16\*(tx1,5,7,11 +.X "headers, odd and even" +\s-1USD\s0:21\*(tx3 +.X "headers, packet" +\s-1SMM\s0:15\*(tx23 +.X "headers, RFC733" +\s-1SMM\s0:12\*(tx9 +.X "headers, section" +ms(7)\*(tx2, \s-1USD\s0:13\*(tx11, \s-1USD\s0:20\*(tx2, \s-1USD\s0:22\*(tx12..13,18 \s-1USD\s0:23\*(tx2 +.X "heading, CH center" +\s-1USD\s0:20\*(tx5 +.X "heading, LH left" +\s-1USD\s0:20\*(tx5 +.X "heading, multi\*(txpage boxed table with a repeated" +\s-1USD\s0:28\*(tx7 +.X "heading, .$p Print section" +\s-1USD\s0:23\*(tx3 +.X "heading, RH right" +\s-1USD\s0:20\*(tx5 +.X "heading, vertically spanned" +\s-1USD\s0:28\*(tx3 +.X "headings, Page" +\s-1USD\s0:20\*(tx2 +.X "Help command (see also apropos command)" +whatis(1), \s-1USD\s0:7\*(tx6, \s-1SMM\s0:12\*(tx23 +.X "help facility" +\s-1SMM\s0:12\*(tx8 +.X "help in JOVE" +\s-1USD\s0:17\*(tx3 +.X "helpr \*(tx get information about a database" +\s-1PS2\s0:10\*(tx55 +.X "``here'' shell scripts" +csh(1)\*(tx8, \s-1USD\s0:3\*(tx7 +.X "Hewlett Packard 2648 graphics terminal" +plot(1g), lib2648(3x)\*(tx1, plot(3x) +.X "Hewlett Packard 7221 graphics terminal" +plot(3x) +.X "Hewlett\*(txPackard" +termcap(5)\*(tx7..10 +.X "Hewlett\*(txPackard HP\*(tx71B" +exp(3m) +.X "hex dump" +od(1) +.X "hexadecimal integers" +scanf(3s) +.X "hexadecimal, unsigned" +od(1) +.X "hier \*(tx file system hierarchy" +hier(7)\*(tx1 +.X "hierarchical file system" +\s-1PS1\s0:6\*(tx27 +.X "hierarchy, directory" +find(1), hier(7)\*(tx1, \s-1USD\s0:4\*(tx6,21 +.X "hierarchy, file system" +hier(7)\*(tx1, \s-1SMM\s0:14\*(tx13 +.X "highlighting" +termcap(5)\*(tx9 +.X "high\*(txpriority out\*(txof\*(txband messages" +\s-1PS1\s0:6\*(tx35 +.X "high\*(txwater marks" +\s-1SMM\s0:13\*(tx14 +.X "histchars shell variable" +csh(1)\*(tx17 +.X "HISTEXP" +\s-1SMM\s0:10\*(tx3 +.X "histograms" +\s-1PS1\s0:16\*(tx10 +.X "history colon modifiers" +csh(1)\*(tx4 +.X "history commands" +csh(1)\*(tx4, \s-1USD\s0:4\*(tx22 +.X "history file" +csh(1)\*(tx18, spell(1), \s-1SMM\s0:10\*(tx3,13,16,18 +.X "history list" +csh(1)\*(tx4..5,12,15..18, \s-1USD\s0:4\*(tx11,13,22,38 +.X "history, login" +last(1), hier(7)\*(tx4 +.X "history mechanism" +csh(1)\*(tx1..2,5, uucp(1c), uux(1c), \s-1USD\s0:4\*(tx1,6,8,13..15,38,40 +.X "history of changes" +\s-1PS1\s0:13\*(tx1 +.X "history of your session" +\s-1USD\s0:17\*(tx20 +.X "history reference" +csh(1)\*(tx5 +.X "history shell variable" +csh(1)\*(tx4 +.X "history substitutions" +csh(1)\*(tx1,3..5,17..19, \s-1USD\s0:4\*(tx23,25 +.X "Hitachi HDG\*(tx1111B" +tb(4) +.X "hk \*(tx RK6\*(tx11/RK06 and RK07 moving head disk" +hk(4) +.X "HM top margin" +\s-1USD\s0:20\*(tx5 +.X "HO" +\s-1PS1\s0:6\*(tx31 +.X "hold" +mail(1)\*(tx5, \s-1USD\s0:7\*(tx18 +.X "hold and get functions" +\s-1USD\s0:18\*(tx9 +.X "hold area" +\s-1USD\s0:18\*(tx9 +.X "hold spaces" +sed(1)\*(tx2 +.X "Hollerith" +\s-1PS1\s0:2\*(tx8,17, \s-1PS2\s0:6\*(tx28 +.X "home directory" +csh(1)\*(tx1,8..10,17,19, dbx(1)\*(tx1, error(1)\*(tx2, finger(1), ftp(1c)\*(tx7, jove(1)\*(tx2, login(1), mail(1), sccs(1)\*(tx2, sh(1)\*(tx2, \s-1USD\s0:4\*(tx6..7,11,21,35..36,39, \s-1USD\s0:8\*(tx35,88,95, \s-1USD\s0:15\*(tx14, \s-1USD\s0:17\*(tx24, rexec(3), ftpd(8c), rexecd(8c), rshd(8c), \s-1SMM\s0:7\*(tx11, \s-1SMM\s0:10\*(tx19 +.X "HOME environment variable" +csh(1)\*(tx17, sh(1)\*(tx2, su(1), environ(7), \s-1USD\s0:3\*(tx9, install-mh(8) +.X "home phone" +passwd(1), passwd(5), adduser(8) +.X "home position" +termcap(5)\*(tx8, \s-1PS1\s0:18\*(tx8,15 +.X "Honey\*(txDanber UUCP compatibility" +L.sys(5)\*(tx4, \s-1SMM\s0:9\*(tx10 +.X "Honeywell 6000" +\s-1PS1\s0:2\*(tx12, \s-1PS1\s0:9\*(tx6, \s-1SMM\s0:19\*(tx2,16,22 +.X "hook function" +\s-1PS2\s0:9\*(tx56 +.X "hooked" +\s-1USD\s0:21\*(tx3 +.X "hop count information" +\s-1USD\s0:7\*(tx20 +.X "horizontal line the length of the page, .hl Draws a" +\s-1USD\s0:23\*(tx7 +.X "horizontal lines" +\s-1USD\s0:22\*(tx6, \s-1USD\s0:23\*(tx7, \s-1USD\s0:28\*(tx4..5 +.X "horizontal motions" +\s-1USD\s0:24\*(tx18..20, \s-1USD\s0:25\*(tx6..7,11 +.X "horizontal position" +\s-1USD\s0:24\*(tx21, \s-1USD\s0:25\*(tx5, \s-1USD\s0:26\*(tx4, \s-1USD\s0:27\*(tx6 +.X "horizontal resolution" +\s-1USD\s0:24\*(tx8, \s-1SMM\s0:20\*(tx2 +.X "horizontal size" +\s-1USD\s0:24\*(tx12,15, tty(4)\*(tx10 +.X "horizontal tabs (see also tab)" +\s-1USD\s0:25\*(tx5 +.X "HOST" +\s-1SMM\s0:1\*(tx19 +.X "host addresses" +netstat(1), gethostbyname(3), \s-1PS1\s0:7\*(tx11, \s-1PS1\s0:8\*(tx12, arp(8c), named(8), rshd(8c), \s-1SMM\s0:1\*(tx38,40, \s-1SMM\s0:11\*(tx2, \s-1SMM\s0:12\*(tx11, \s-1SMM\s0:13\*(tx28 +.X "host and network name data bases" +\s-1SMM\s0:1\*(tx42 +.X "host byte order" +\s-1PS1\s0:8\*(tx15 +.X "host database" +mkhosts(8) +.X "host, destination" +\s-1PS1\s0:8\*(tx6,20,34 +.X "host field" +\s-1SMM\s0:7\*(tx23 +.X "host, foreign" +intro(2)\*(tx5, rexec(3) +.X "host languages" +\s-1PS1\s0:16\*(tx2,9 +.X "host, login to a remote" +telnet(1c)\*(tx1 +.X "host machines" +gethostname(2) +.X "host, master" +rdist(1)\*(tx3, \s-1SMM\s0:7\*(tx24 +.X "host names" +rlogin(1c), rsh(1c), mailaddr(7)\*(tx1, gethostname(2), hosts(5), printcap(5), resolver(5), \s-1PS1\s0:6\*(tx7, \s-1PS1\s0:8\*(tx11,13,22, ifconfig(8c), lpd(8), route(8c), rshd(8c), \s-1SMM\s0:1\*(tx21..22,42, \s-1SMM\s0:6\*(tx5, \s-1SMM\s0:7\*(tx21,24,32, \s-1SMM\s0:12\*(tx22, \s-1SMM\s0:13\*(tx4,23, \s-1SMM\s0:16\*(tx1,4 +.X "host number" +ns(3n), imp(4), ifconfig(8c), \s-1SMM\s0:1\*(tx39 +.X "host, remote" +remote(5) +.X "host table lookup routines" +\s-1SMM\s0:1\*(tx22, \s-1SMM\s0:11\*(tx2 +.X "host tables" +gettable(8c), mkhosts(8), \s-1SMM\s0:1\*(tx42, \s-1SMM\s0:12\*(tx15,20, \s-1SMM\s0:16\*(tx10 +.X "host, UNIX" +tip(1c)\*(tx1 +.X "hostent, struct" +gethostbyname(3), \s-1PS1\s0:7\*(tx13,15, \s-1PS1\s0:8\*(tx11,16, \s-1SMM\s0:12\*(tx15 +.X "hostfile.dir" +mkhosts(8) +.X "hostfile.pag" +mkhosts(8) +.X "hostid \*(tx set or print identifier of current host system" +hostid(1), \s-1SMM\s0:12\*(tx8 +.X "hostname \*(tx set or print name of current host system" +hostid(1), hostname(1), uuname(1c) +.X "hostname, official" +\s-1USD\s0:8\*(tx12,91 +.X "hostname, real" +gettytab(5)\*(tx2, L.aliases(5) +.X "hostnm \*(tx get name of current host" +hostnm(3f) +.X "hosts \*(tx host name data base" +hosts(5) +.X "hosts, description of remote" +hier(7)\*(tx2 +.X "hosts, destination" +netstat(1), intro(4n), route(8c), \s-1SMM\s0:7\*(tx24, \s-1SMM\s0:13\*(tx26 +.X "hosts, distributing files to other" +rdist(1)\*(tx2 +.X "hosts, phone numbers for remote" +hier(7)\*(tx2 +.X "hosts, trusted" +rlogind(8c), rshd(8c), \s-1SMM\s0:1\*(tx42 +.X "hosts, UUCP" +mailaddr(7)\*(tx1, \s-1SMM\s0:7\*(tx24, \s-1SMM\s0:9\*(tx12 +.X "hosts, uuname \*(tx list names of UUCP" +uuname(1c) +.X "hp \*(tx MASSBUS disk interface" +hp(4)\*(tx1 +.X "HP 2648 graphics terminal" +lib2648(3x)\*(tx1 +.X "HP\*(tx71B, Hewlett\*(txPackard" +exp(3m) +.X "HSC50 disk controllers" +\s-1SMM\s0:1\*(tx2, \s-1SMM\s0:13\*(tx2 +.X "ht \*(tx TM\*(tx03/TE\*(tx16,TU\*(tx45,TU\*(tx77 MASSBUS magtape interface" +ht(4) +.X "htable \*(tx convert NIC standard format host tables" +gettable(8c), htable(8), \s-1SMM\s0:12\*(tx20 +.X "htons()" +byteorder(3n), \s-1PS1\s0:7\*(tx14 +.X "Huffman coding" +compress(1) +.X "hunt \*(tx a multi\*(txplayer multi\*(txterminal game" +hunt(6)\*(tx1 +.X "HUNT environment variable" +hunt(6) +.X "hunt\*(txthe\*(txwumpus, wump \*(tx the game of" +wump(6) +.X "hushlogin" +login(1) +.X "hy \*(tx Network Systems Hyperchannel interface" +hy(4) +.X "hyper" +\s-1SMM\s0:12\*(tx23 +.X "hyperbolic functions" +sinh(3m) +.X "Hyperchannel, Network Systems" +hy(4), \s-1SMM\s0:12\*(tx23 +.X "hyphen" +\s-1USD\s0:24\*(tx9 +.X "Hyphenation" +\s-1USD\s0:24\*(tx4,22 +.X "hyphenation, automatic" +\s-1USD\s0:1\*(tx10, \s-1USD\s0:24\*(tx22 +.X "hypot \*(tx Euclidean distance" +hypot(3m) +.L I +.X "I Ching" +ching(6) +.X "iargc" +getarg(3f) +.X "ibase" +\s-1USD\s0:6\*(tx3 +.X "IBM 3270 keyboard map" +mset(1), tn3270(1) +.X "IBM 3270 keys, map3270 \*(tx database for mapping ASCII keystrokes into" +map3270(5)\*(tx1 +.X "IBM 360" +\s-1PS1\s0:2\*(tx12 +.X "IBM 370" +\s-1PS1\s0:2\*(tx12, \s-1SMM\s0:19\*(tx2 +.X "IBM 3740" +rx(4), rxformat(8v) +.X "IBM PC" +\s-1USD\s0:9\*(tx10, \s-1SMM\s0:13\*(tx25 +.X "IBM VM/CMS, tn3270 \*(tx full\*(txscreen remote login to" +tn3270(1) +.X "icheck" +clri(8), fsck(8), icheck(8) +.X "icheck \*(tx file system storage consistency check" +icheck(8) +.X "ICMP" +icmp(4p), inet(4f), ping(8), routed(8c)\*(tx3, \s-1SMM\s0:1\*(tx38, \s-1SMM\s0:13\*(tx20,22..24, \s-1SMM\s0:15\*(tx19 +.X "icmp \*(tx Internet Control Message Protocol" +icmp(4p) +.X "ICMP routing redirects" +\s-1SMM\s0:1\*(tx40..41, \s-1SMM\s0:2\*(tx33 +.X "ICON" +vgrind(1), \s-1SMM\s0:12\*(tx23 +.X "ICON node" +\s-1SMM\s0:19\*(tx10..11 +.X "id, default group" +sendmail(8)\*(tx2, \s-1SMM\s0:7\*(tx30 +.X "id, group" +chmod(1), intro(2)\*(tx6, mkdir(2), setregid(2), getuid(3f), setuid(3), \s-1SMM\s0:6\*(tx3, \s-1SMM\s0:17\*(tx2 +.X "Id keywords" +\s-1PS1\s0:14\*(tx1..5,9,14..15 +.X "id, process (see process id)" +.X "id, user" +quota(2), setreuid(2), \s-1SMM\s0:12\*(tx11,13..14,19, \s-1SMM\s0:13\*(tx5 +.X "idate, itime \*(tx return date or time in numerical form" +idate(3f) +.X "IDC disks" +\s-1SMM\s0:1\*(tx5 +.X "ideal picture (alternate form), .IF End" +\s-1USD\s0:23\*(tx7 +.X "ideal picture, .IE End" +\s-1USD\s0:23\*(tx7 +.X "ideal picture, .IS Begin" +\s-1USD\s0:23\*(tx7 +.X "ident \*(tx identify files" +\s-1PS1\s0:13\*(tx11 +.X "identical files" +cmp(1), rdist(1)\*(tx4, \s-1SMM\s0:21\*(tx5 +.X "identification, system" +\s-1SMM\s0:2\*(tx2, \s-1SMM\s0:9\*(tx6 +.X "identifier, system" +\s-1SMM\s0:2\*(tx2..7 +.X "identifier, type" +\s-1PS1\s0:4\*(tx24,50 +.X "identifiers, array" +\s-1USD\s0:6\*(tx9 +.X "identifiers (names)" +\s-1PS1\s0:1 +.X "identifiers, process" +getpriority(2), \s-1PS1\s0:6\*(tx6..7 +.X "identity, user" +ftp(1c)\*(tx7, getuid(2), rshd(8c) +.X "idle loop" +\s-1SMM\s0:13\*(tx19 +.X "idle time" +finger(1), rwho(1c), systat(1)\*(tx2, \s-1SMM\s0:12\*(tx13 +.X "idlok(win, boolf)" +\s-1PS1\s0:18\*(tx10 +.X "IDP (see also protocol)" +idp(4p), ns(4f), \s-1SMM\s0:13\*(tx29 +.X "idp \*(tx Xerox Internet Datagram Protocol" +idp(4p) +.X "IDP headers" +idp(4p), \s-1PS1\s0:8\*(tx3,14,35,37,40 +.X "IDP packets" +idp(4p), \s-1SMM\s0:2\*(tx33 +.X "IDP sockets" +idp(4p) +.X "IEEE standard 754 for Binary Floating\*(txPoint Arithmetic" +exp(3m), floor(3m), infnan(3m), math(3m)\*(tx2 +.X "IEEE standard p854" +ieee(3m) +.X "ierrno" +perror(3f) +.X "if \*(tx Bourne shell command" +sh(1)\*(tx1 +.X "if shell command" +csh(1)\*(tx12, \s-1USD\s0:4\*(tx29 +.X "IF\*(tx11" +hdh(4) +.X "ifaddr, struct" +\s-1SMM\s0:15\*(tx11 +.X "ifconfig \*(tx configure network interface parameters" +hosts(5), ifconfig(8c), \s-1SMM\s0:1\*(tx21, \s-1SMM\s0:12\*(tx20 +.X "ifdef" +\s-1PS1\s0:17\*(tx3 +.X "ifelse(a, b, c, d)" +\s-1PS1\s0:17\*(tx5 +.X "ifnet structure" +\s-1SMM\s0:13\*(tx21,28, \s-1SMM\s0:15\*(tx14,16 +.X "ifreq, struct" +\s-1PS1\s0:8\*(tx32..34 +.X "ifs, block" +\s-1PS1\s0:2\*(tx21 +.X "IFS variable" +\s-1SMM\s0:12\*(tx11 +.X "if\*(txthen\*(txelse" +\s-1PS1\s0:2\*(tx21 +.X "ignore" +mail(1)\*(tx3,6, make(1)\*(tx2, \s-1PS1\s0:12\*(tx4..5, \s-1PS2\s0:10\*(tx27 +.X "ignore case in searching" +grep(1), \s-1USD\s0:16\*(tx16 +.X "ignored signals" +mail(1)\*(tx6, \s-1USD\s0:3\*(tx22, \s-1USD\s0:4\*(tx13,23,39, \s-1USD\s0:7\*(tx18, execve(2), signal(3c)\*(tx2 +.X "ignoreeof shell variable" +csh(1)\*(tx17 +.X "ik \*(tx Ikonas frame buffer, graphics device interface" +ik(4) +.X "il \*(tx Interlan NI1010 10 Mb/s Ethernet interface" +il(4) +.X "illegal instructions" +signal(3c)\*(tx1, core(5) +.X "illegal memory references" +\s-1PS2\s0:3\*(tx10, \s-1PS2\s0:9\*(tx38,62 +.X "illegal operands" +trapov(3f) +.X "image, memory" +f77(1)\*(tx1, core(5), \s-1PS1\s0:2\*(tx6, \s-1PS1\s0:6\*(tx8,13, \s-1PS1\s0:11\*(tx2,4, \s-1PS2\s0:1\*(tx7..8,11, \s-1SMM\s0:7\*(tx38, \s-1SMM\s0:16\*(tx5 +.X "Imagen laser printers" +plot(1g), plot(3x), \s-1SMM\s0:1\*(tx34, \s-1SMM\s0:6\*(tx2, \s-1SMM\s0:12\*(tx10,16 +.X "images, binary" +\s-1SMM\s0:1\*(tx49, \s-1SMM\s0:2\*(tx5,31 +.X "images, bootable" +\s-1SMM\s0:2\*(tx5 +.X "images, core" +\s-1PS1\s0:4\*(tx26, \s-1PS1\s0:6\*(tx13, \s-1PS1\s0:10\*(tx3..4, \s-1PS1\s0:11\*(tx1, \s-1PS2\s0:5\*(tx6..7, \s-1PS2\s0:9\*(tx132 +.X "images, executable" +\s-1SMM\s0:1\*(tx43, \s-1SMM\s0:19\*(tx12 +.X "images, process" +execve(2), core(5), pstat(8)\*(tx3 +.X "images, raster" +lpr(1), lpd(8), \s-1SMM\s0:6\*(tx4 +.X "images, system" +trpt(8c), trsp(8c), \s-1SMM\s0:1\*(tx8,27, \s-1SMM\s0:2\*(tx2,4..7,14 +.X "images, text" +sticky(8), \s-1SMM\s0:13\*(tx9,17 +.X "IMP" +netstat(1), socket(2), acc(4), css(4), ddn(4), imp(4), implogd(8c), routed(8c)\*(tx3, \s-1SMM\s0:2\*(tx13, \s-1SMM\s0:13\*(tx27..28 +.X "imp \*(tx 1822 network interface" +imp(4) +.X "imp \*(tx IMP raw socket interface" +imp(4p) +.X "IMP host table" +netstat(1) +.X "IMP interfaces" +acc(4), css(4), ddn(4), hdh(4), imp(4), \s-1SMM\s0:13\*(tx2,30 +.X "IMP support" +\s-1SMM\s0:13\*(tx27 +.X "IMP support code, /sys/netimp" +\s-1SMM\s0:1\*(tx26 +.X "imperative sentences" +\s-1USD\s0:32\*(tx3..4,9..10 +.X "Implementation, UNIX" +\s-1PS2\s0:4, \s-1PS2\s0:5\*(tx1 +.X "implicit declarations" +\s-1PS1\s0:1\*(tx28, \s-1PS2\s0:6\*(tx25, \s-1PS2\s0:9\*(tx39 +.X "implicit statements" +\s-1PS1\s0:2\*(tx7,18, \s-1PS2\s0:6\*(tx25 +.X "implog \*(tx IMP log interpreter" +implog(8c), \s-1SMM\s0:12\*(tx20 +.X "implogd \*(tx IMP logger process" +implogd(8c) +.X "imprecise citations" +\s-1USD\s0:31\*(tx1..3 +.X "IMSL and NAG mathematical libraries" +\s-1SMM\s0:12\*(tx5 +.X "IMSL library" +\s-1PS1\s0:2\*(tx13 +.X "IN_ADDR" +\s-1SMM\s0:11\*(tx5,8 +.X "INADDR_ANY" +\s-1PS1\s0:7\*(tx11..12,16..17, \s-1PS1\s0:8\*(tx22,30..32 +.X "inc \*(tx incorporate new mail" +\s-1USD\s0:8\*(tx26 +.X "inch()" +\s-1PS1\s0:18\*(tx14 +.X "include(filename)" +\s-1PS1\s0:17\*(tx4 +.X "inclusion" +\s-1SMM\s0:16\*(tx6..7 +.X "incoming connection requests" +spp(4p), tcp(4p), \s-1SMM\s0:15\*(tx15 +.X "incoming connections" +listen(2), spp(4p), tcp(4p), \s-1SMM\s0:13\*(tx29, \s-1SMM\s0:15\*(tx6,8 +.X "incoming messages" +\s-1USD\s0:7\*(tx2, \s-1USD\s0:8\*(tx4,37,54, recv(2), inet(4f), ns(4f), \s-1SMM\s0:7\*(tx20,30, \s-1SMM\s0:16\*(tx8 +.X "incoming news" +\s-1SMM\s0:10\*(tx15,20 +.X "incoming packets" +icmp(4p), intro(4n)\*(tx3, ip(4p), routed(8c)\*(tx1, XNSrouted(8c), \s-1SMM\s0:13\*(tx23, \s-1SMM\s0:15\*(tx20,25..26 +.X "incremental dumps" +dump(5), restore(8)\*(tx1, \s-1SMM\s0:1\*(tx46 +.X "incremental search" +\s-1USD\s0:17\*(tx9,35,44 +.X "incremental tape" +restore(8)\*(tx1 +.X "indent \*(tx indent and format C program source" +indent(1) +.X "indent, base" +\s-1USD\s0:23\*(tx2..4,7 +.X "indent, footnote" +ms(7)\*(tx3 +.X "indent, no break, .ix" +\s-1USD\s0:23\*(tx6 +.X "indent, paragraph" +ms(7)\*(tx3, \s-1USD\s0:22\*(tx10, \s-1USD\s0:23\*(tx1, \s-1USD\s0:24\*(tx29, \s-1USD\s0:25\*(tx8 +.X "indent, quote" +ms(7)\*(tx3 +.X "indent, Set prevailing" +man(7) +.X "indent, Temporary" +\s-1USD\s0:22\*(tx4, \s-1USD\s0:24\*(tx14, \s-1USD\s0:25\*(tx5 +.X "indentation command, text" +\s-1USD\s0:17\*(tx12, \s-1USD\s0:17\*(tx21 +.X "indentations of programs" +\s-1USD\s0:17\*(tx1 +.X "indented paragraphs" +\s-1USD\s0:20\*(tx3, \s-1USD\s0:22\*(tx10, \s-1USD\s0:23\*(tx2 +.X "indenting" +\s-1USD\s0:20\*(tx1,4, \s-1USD\s0:22\*(tx3, \s-1USD\s0:24\*(tx3.14, \s-1USD\s0:25\*(tx4, lpd(8), \s-1SMM\s0:12\*(tx8 +.X "index \*(tx create a secondary index on an existing relation" +\s-1PS2\s0:10\*(tx16 +.X "index \*(tx string operation" +string(3) +.X "index entries" +ms(7)\*(tx2, \s-1USD\s0:22\*(tx8..9,13,16, \s-1USD\s0:23\*(tx5,8 +.X "index entry, .(x Begin" +\s-1USD\s0:23\*(tx5 +.X "index entry, .)x End" +\s-1USD\s0:23\*(tx5 +.X "index files" +lookbib(1) +.X "index, function" +ctags(1), vgrind(1), \s-1USD\s0:19\*(tx4 +.X "index, inverted" +lookbib(1), \s-1USD\s0:29\*(tx5..6, \s-1USD\s0:30\*(tx2..3, \s-1USD\s0:31\*(tx2 +.X "index, making an" +\s-1USD\s0:29\*(tx5 +.X "index numbers" +\s-1PS1\s0:7\*(tx4, \s-1PS2\s0:1\*(tx6 +.X "index page" +\s-1USD\s0:11 +.X "index, permuted" +ptx(1), \s-1USD\s0:1\*(tx11 +.X "index, print" +\s-1USD\s0:22\*(tx14, \s-1USD\s0:23\*(tx5 +.X "index, ptx \*(tx permuted" +ptx(1) +.X "index, readability" +style(1), \s-1USD\s0:32\*(tx2..4 +.X "index, rindex, lnblnk, len \*(tx tell about character objects" +index(3f) +.X "index, secondary" +\s-1PS2\s0:10\*(tx3,8,15..17,23,56,60..62,76,82 +.X "index, system" +\s-1USD\s0:31\*(tx2 +.X "index, .xp print" +\s-1USD\s0:23\*(tx5 +.X "index(s1, s2)" +\s-1PS1\s0:17\*(tx5 +.X "indicators, scale" +\s-1USD\s0:24\*(tx5,8, \s-1USD\s0:25\*(tx10 +.X "indirect blocks" +ls(1), icheck(8), \s-1SMM\s0:5\*(tx3 +.X "indxbib \*(tx build inverted index for a bibliography" +lookbib(1), \s-1USD\s0:29\*(tx1,5 +.X "inet \*(tx Internet protocol family" +inet(4f) +.X "inet_addr, inet_network, inet_ntoa, inet_makeaddr, ..." +inet(3n) +.X "inetd \*(tx internet ``super\*(txserver''" +\s-1PS1\s0:8\*(tx17,41, comsat(8c), inetd(8), \s-1SMM\s0:12\*(tx20 +.X "inet_makeaddr" +\s-1SMM\s0:12\*(tx15 +.X "infinite loops" +\s-1PS1\s0:4\*(tx26,36, \s-1PS2\s0:8\*(tx8, \s-1PS2\s0:9\*(tx78 +.X "INFINITY" +infnan(3m) +.X "infnan \*(tx signals invalid floating\*(txpoint operations on a VAX ..." +infnan(3m), intro(3)\*(tx1 +.X "information about general features of UNIX" +\s-1PS1\s0:4\*(tx2 +.X "information, tracing" +\s-1PS1\s0:11\*(tx6 +.X "INGRES" +\s-1PS2\s0:10 +.X "ingres \*(tx INGRES relational data base management system" +\s-1PS2\s0:10\*(tx56 +.X "Ingres database system" +\s-1SMM\s0:1\*(tx17 +.X "INGRES error messages" +\s-1PS2\s0:10\*(tx4,66,69,74 +.X "INGRES errors, .../files/error7_? \*(tx files with" +\s-1PS2\s0:10\*(tx66 +.X "INGRES login message, .../files/dayfile7 \*(tx" +\s-1PS2\s0:10\*(tx64 +.X "INGRES, quel \*(tx QUEry Language for" +\s-1PS2\s0:10\*(tx32 +.X "INGRES superuser" +\s-1PS2\s0:10\*(tx47..49,56,59..62,74 +.X "init" +\s-1SMM\s0:12\*(tx20 +.X "init \*(tx process control initialization" +init(8) +.X "init process" +init(8), \s-1SMM\s0:1\*(tx33 +.X "initgroups \*(tx initialize group access list" +initgroups(3) +.X "initial blanks" +sed(1)\*(tx1, \s-1USD\s0:24\*(tx16 +.X "initial value specification" +\s-1PS2\s0:6\*(tx14,16 +.X "initial values" +dbx(5)\*(tx1, \s-1PS1\s0:1\*(tx18, \s-1PS1\s0:2\*(tx8, \s-1PS2\s0:6\*(tx16, \s-1PS2\s0:9\*(tx59,81..82,112 +.X "initialization" +termcap(5)\*(tx11, \s-1PS1\s0:1\*(tx7,12,14,18, \s-1PS2\s0:1\*(tx12 +.X "initialization files" +jove(1)\*(tx2, \s-1USD\s0:17\*(tx24,45, resolver(3), \s-1PS2\s0:10\*(tx29,63,74 +.X "initialization, init \*(tx process control" +init(8) +.X "initialization procedures" +\s-1SMM\s0:12\*(tx8, \s-1SMM\s0:15\*(tx9 +.X "initialization process" +exit(2), intro(2)\*(tx6, vhangup(2), wait(2), crash(8v)\*(tx1, cron(8) +.X "initialization, system" +\s-1SMM\s0:1\*(tx26 +.X "initialization, tset \*(tx terminal dependent" +tset(1)\*(tx1 +.X "initialize tty line characteristics" +getttyent(3) +.X "initialized data" +a.out(5)\*(tx1 +.X "initialized variables" +cc(1)\*(tx1 +.X "initscr()" +\s-1PS1\s0:18\*(tx5,14 +.X "initstate, setstate \*(tx routines for changing random number ..." +random(3) +.X "in\*(txline equations, shorthand for" +\s-1USD\s0:27\*(tx7 +.X "inline expansion of calls" +\s-1SMM\s0:13\*(tx2 +.X "inmax" +flmin(3f) +.X "inode" +stat(2)\*(tx2, dump(5), fs(5), clri(8), fsck(8), newfs(8), \s-1SMM\s0:5\*(tx3, \s-1SMM\s0:14\*(tx8,13 +.X "inode \*(tx format of file system" +fs(5)\*(tx1 +.X "inode, Checking the data associated with an" +\s-1SMM\s0:5\*(tx7 +.X "inode data size" +\s-1SMM\s0:5\*(tx7 +.X "inode, directory" +\s-1SMM\s0:5\*(tx6 +.X "i\*(txnode entry" +dir(5) +.X "inode links" +\s-1SMM\s0:5\*(tx6 +.X "inode list" +\s-1SMM\s0:5\*(tx6..8 +.X "inode numbers" +find(1), \s-1USD\s0:10\*(tx11, stat(2)\*(tx3, dir(5), tar(5), fsck(8), restore(8), \s-1SMM\s0:5\*(tx7..8, \s-1SMM\s0:14\*(tx11..12 +.X "inode, root" +fs(5)\*(tx2 +.X "inode state, Checking the" +\s-1SMM\s0:5\*(tx6 +.X "inode table" +\s-1PS2\s0:5\*(tx2, pstat(8)\*(tx1, \s-1SMM\s0:13\*(tx16 +.X "i\*(txnode table entries" +\s-1PS2\s0:4\*(tx7..9, \s-1PS2\s0:5\*(tx2 +.X "inodes, free" +df(1), creat(2), \s-1SMM\s0:5\*(tx6, \s-1SMM\s0:14\*(tx8 +.X "inodes, number of used" +df(1) +.X "inodes, quota of" +creat(2) +.X "input()" +\s-1PS1\s0:16\*(tx6 +.X "input and output conventions" +\s-1USD\s0:24\*(tx4 +.X "input buffer" +getsockopt(2), \s-1PS1\s0:8\*(tx24, \s-1PS2\s0:9\*(tx72,87, \s-1SMM\s0:13\*(tx30 +.X "input characters" +\s-1PS1\s0:4\*(tx30, \s-1PS1\s0:6\*(tx14,38, \s-1PS1\s0:15\*(tx16, \s-1PS1\s0:16\*(tx6..7, \s-1PS2\s0:3\*(tx2,15, \s-1PS2\s0:8\*(tx7 +.X "input default" +bib(1), grep(1), lex(1), sed(1)\*(tx1, struct(1), tc(1) +.X "input editing" +tty(4)\*(tx2,7 +.X "input fields" +\s-1USD\s0:19\*(tx5, scanf(3s) +.X "input file" +\s-1PS1\s0:1\*(tx28, \s-1PS1\s0:4\*(tx19,21 +.X "input, file" +\s-1PS1\s0:4\*(tx32,35,44, \s-1PS2\s0:1\*(tx12, \s-1PS2\s0:3\*(tx13, \s-1PS2\s0:10\*(tx50,56 +.X "input filter" +popen(3) +.X "input, free form" +efl(1), ratfor(1), \s-1USD\s0:1\*(tx13, \s-1USD\s0:26\*(tx3 +.X "input from files" +\s-1USD\s0:4\*(tx5 +.X "input functions" +\s-1PS1\s0:18\*(tx12 +.X "input items" +scanf(3s), \s-1PS1\s0:15\*(tx1, \s-1PS2\s0:3\*(tx15 +.X "input language" +\s-1PS1\s0:15\*(tx1, \s-1PS2\s0:8\*(tx12 +.X "input line number in the current input file" +\s-1USD\s0:24\*(tx25 +.X "input lists" +\s-1PS1\s0:3\*(tx3, \s-1PS2\s0:6\*(tx10 +.X "input modes" +ed(1)\*(tx1, \s-1USD\s0:14\*(tx17, \s-1USD\s0:15\*(tx16..17,20..25, \s-1USD\s0:16\*(tx5 +.X "input packets" +\s-1SMM\s0:13\*(tx26..27, \s-1SMM\s0:15\*(tx23 +.X "input, pending" +tty(4)\*(tx1,3..4 +.X "input pointer" +\s-1PS1\s0:3\*(tx5, \s-1PS1\s0:16\*(tx7 +.X "input processing" +bk(4) +.X "input queues" +tty(4)\*(tx4,7..8, pstat(8)\*(tx3, \s-1SMM\s0:15\*(tx18 +.X "input, read, readv \*(tx read" +read(2) +.X "input record" +dd(1), \s-1USD\s0:19\*(tx2, bk(4), \s-1PS1\s0:2\*(tx9, \s-1PS1\s0:3\*(tx9, \s-1PS1\s0:6\*(tx38 +.X "input, redirecting (see redirection)" +.X "input, Scattering of data on" +\s-1PS1\s0:6\*(tx25 +.X "input, shell" +csh(1)\*(tx6,8, sh(1)\*(tx3,6, \s-1USD\s0:3\*(tx1,21..22 +.X "input silos" +dh(4), dmf(4), dmz(4), dz(4), \s-1SMM\s0:13\*(tx6 +.X "input speed" +gettytab(5)\*(tx2 +.X "input, standard" +csh(1)\*(tx7..9, \s-1USD\s0:24\*(tx5,24, fork(2), gets(3s), stdio(3s), \s-1PS1\s0:7\*(tx4, \s-1PS1\s0:13\*(tx6,14 +.X "input stream" +m4(1), fread(3s), getc(3s), ungetc(3s), \s-1PS1\s0:4\*(tx41, \s-1PS1\s0:16\*(tx1..3, \s-1PS2\s0:3\*(tx9,14..15, \s-1PS2\s0:9\*(tx8,85, \s-1PS2\s0:10\*(tx19, \s-1SMM\s0:19\*(tx9 +.X "input symbols" +\s-1PS1\s0:4\*(tx30, \s-1PS1\s0:15\*(tx13..18,21 +.X "input table entry" +\s-1USD\s0:28\*(tx5 +.X "input, terminal" +csh(1)\*(tx9, \s-1USD\s0:4\*(tx37, tty(4)\*(tx2..3, \s-1PS1\s0:6\*(tx38, \s-1PS1\s0:8\*(tx27, \s-1PS2\s0:4\*(tx1 +.X "input text" +ed(1)\*(tx3, \s-1USD\s0:15\*(tx15,27, \s-1USD\s0:16\*(tx5..6, \s-1USD\s0:18\*(tx2, \s-1USD\s0:20\*(tx2, \s-1USD\s0:24\*(tx12,17, \s-1USD\s0:25\*(tx9, \s-1PS1\s0:4\*(tx40, \s-1PS1\s0:16\*(tx7,11, \s-1PS2\s0:10\*(tx19 +.X "input text lines" +\s-1USD\s0:24\*(tx12 +.X "input tokens" +\s-1PS1\s0:4\*(tx19,39, \s-1PS1\s0:15\*(tx8..9,17..18, \s-1PS1\s0:16\*(tx2 +.X "input\*(txline\*(txcount trap" +\s-1USD\s0:24\*(tx16..17 +.X "input/output control" +\s-1PS1\s0:6\*(tx25 +.X "input/output, fread, fwrite \*(tx buffered binary" +fread(3s) +.X "input/output lists" +\s-1PS2\s0:6\*(tx8,10 +.X "input/output multiplexing" +\s-1PS1\s0:8\*(tx9 +.X "input/output notification" +\s-1PS1\s0:6\*(tx13 +.X "input/output redirection (see redirection)" +.X "input/output statements" +\s-1PS1\s0:2\*(tx6, \s-1PS2\s0:6\*(tx16,21..22 +.X "input/output vector descriptors" +\s-1PS1\s0:6\*(tx25 +.X "input, user" +\s-1PS1\s0:18\*(tx3 +.X "In\*(txReply\*(txTo:" +\s-1USD\s0:8\*(tx83 +.X "insch(c)" +\s-1PS1\s0:18\*(tx10 +.X "insert commands" +\s-1USD\s0:12\*(tx8, \s-1USD\s0:16\*(tx15 +.X "insert lines" +\s-1USD\s0:18\*(tx5, termcap(5)\*(tx13 +.X "insert mode" +\s-1USD\s0:15\*(tx6,23, termcap(5)\*(tx9 +.X "inserted text" +\s-1USD\s0:15\*(tx18,26 +.X "insert\*(txfile (C\*(txX C\*(txI)" +\s-1USD\s0:17\*(tx35 +.X "inserting one file into another" +\s-1USD\s0:13\*(tx13 +.X "inserting text" +\s-1USD\s0:15\*(tx25, \s-1USD\s0:16\*(tx7, \s-1USD\s0:17\*(tx4 +.X "insertln()" +\s-1PS1\s0:18\*(tx10 +.X "insque, remque \*(tx insert/remove element from a queue" +insque(3) +.X "install \*(tx install binaries" +install(1), rdist(1)\*(tx2, \s-1SMM\s0:10\*(tx19, \s-1SMM\s0:12\*(tx8 +.X "install a diversion trap" +\s-1USD\s0:24\*(tx17 +.X "install a trap" +\s-1USD\s0:24\*(tx17 +.X "Installation and Operation of UUCP" +\s-1SMM\s0:9 +.X "installation, line printer spooler" +\s-1SMM\s0:6\*(tx3 +.X "installation procedure" +\s-1SMM\s0:1\*(tx16 +.X "installation, timed" +\s-1SMM\s0:8\*(tx3 +.X "installation troubleshooting" +\s-1SMM\s0:1\*(tx63 +.X "Installation, USENET Version B" +\s-1SMM\s0:10\*(tx1..24 +.X "installing 4.3BSD, problems in" +\s-1SMM\s0:1\*(tx52 +.X "installing an nroff terminal descriptor" +\s-1SMM\s0:20\*(tx5 +.X "Installing and Operating 4.3BSD on the VAX" +\s-1SMM\s0:1\*(tx1, \s-1SMM\s0:11\*(tx2 +.X "install\*(txmh \*(tx initialize the MH environment" +\s-1USD\s0:8\*(tx95, install-mh(8) +.X "Instruction, Computer Aided" +learn(1) +.X "instruction, EMT" +sigvec(2)\*(tx1, signal(3c)\*(tx1 +.X "instruction, IOT" +signal(3c)\*(tx1 +.X "instruction, px" +pdx(1)\*(tx3 +.X "instructions, disassemble machine" +adb(1)\*(tx3 +.X "instructions, Illegal" +core(5) +.X "instructions, machine" +adb(1)\*(tx3, dbx(1)\*(tx6 +.X "integer arguments" +\s-1PS2\s0:10\*(tx15,69 +.X "integer arithmetic, multiple precision" +mp(3x) +.X "integer constants" +\s-1PS1\s0:1\*(tx2,31, \s-1PS1\s0:2\*(tx9, \s-1PS2\s0:6\*(tx4 +.X "integer division" +\s-1PS1\s0:1\*(tx31, \s-1PS1\s0:10\*(tx2, \s-1PS1\s0:11\*(tx5 +.X "integer expressions" +\s-1PS1\s0:2\*(tx19,21, \s-1PS2\s0:6\*(tx14..15,21, \s-1PS2\s0:9\*(tx97,104 +.X "integer functions" +unlink(3f) +.X "integer orders" +\s-1USD\s0:6\*(tx1,7, bessel(3f), j0(3m) +.X "integer overflows" +floor(3m), math(3m)\*(tx2, traper(3f) +.X "integers, computation with large" +\s-1USD\s0:6\*(tx1 +.X "integers, decimal" +find(1), scanf(3s) +.X "integers, hexadecimal" +scanf(3s) +.X "integers, machine" +\s-1PS1\s0:1\*(tx2,16 +.X "integers, octal" +scanf(3s) +.X "integral" +\s-1USD\s0:27\*(tx4 +.X "integral sign" +\s-1USD\s0:26\*(tx3, \s-1USD\s0:27\*(tx2 +.X "integrities relations" +\s-1PS2\s0:10\*(tx62 +.X "integrity \*(tx define integrity constraints" +\s-1PS2\s0:10\*(tx18 +.X "integrity constraints" +\s-1PS2\s0:10\*(tx3,15..18,41,80 +.X "integrity statement" +\s-1PS2\s0:10\*(tx18 +.X "intelligent terminals" +vi(1), \s-1USD\s0:15\*(tx12, \s-1USD\s0:16\*(tx17, termcap(5)\*(tx9 +.X "interactive desk calculator" +\s-1USD\s0:5 +.X "interactive mode" +mv(1) +.X "interactive processes" +\s-1USD\s0:17\*(tx20,32,35..37,41 +.X "interactive programs" +tty(4)\*(tx5 +.X "interactive restoration of files" +restore(8)\*(tx1 +.X "interactive shells" +sh(1)\*(tx4,6, \s-1USD\s0:3\*(tx18,22, \s-1USD\s0:7\*(tx16, \s-1USD\s0:17\*(tx5,35, \s-1SMM\s0:12\*(tx13,15 +.X "interactive thesaurus" +\s-1USD\s0:32\*(tx8 +.X "interactive tutorial" +jove(1)\*(tx3 +.X "Interdata 8/32" +\s-1SMM\s0:19\*(tx2,12,16..17,22 +.X "Interdata 8/32 C compilers" +\s-1SMM\s0:19\*(tx2 +.X "interface addresses" +intro(4n)\*(tx3, ifconfig(8c), \s-1SMM\s0:1\*(tx42, \s-1SMM\s0:13\*(tx9,29, \s-1SMM\s0:15\*(tx11..12 +.X "interface configuration" +intro(4n)\*(tx4, \s-1PS1\s0:8\*(tx32..33 +.X "interface flags" +intro(4n)\*(tx3, \s-1SMM\s0:13\*(tx29 +.X "interface, IMP" +css(4) +.X "interface ioctls" +\s-1SMM\s0:13\*(tx9,21,23 +.X "interface registers" +ik(4), ps(4) +.X "interface routines" +\s-1SMM\s0:15\*(tx26 +.X "interface routing metric" +intro(4n)\*(tx4 +.X "interface structure" +\s-1SMM\s0:15\*(tx10 +.X "interface, tape drive" +ht(4), mt(4), tm(4), tmscp(4), ts(4), ut(4) +.X "interface, terminal" +tty(4)\*(tx1,9 +.X "interfaces, UNIBUS" +\s-1SMM\s0:15\*(tx12 +.X "Interlan Np100" +ix(4), np(4), \s-1SMM\s0:12\*(tx17, \s-1SMM\s0:13\*(tx31 +.X "interleaved memory" +\s-1SMM\s0:1\*(tx14 +.X "interleaved memory controllers" +\s-1SMM\s0:1\*(tx25 +.X "Interlisp" +\s-1USD\s0:4\*(tx1 +.X "intermediate code" +\s-1SMM\s0:19\*(tx2,13 +.X "intermediate files" +uuxqt(8c), \s-1SMM\s0:19\*(tx2..4,14 +.X "internal field separators" +sh(1)\*(tx2 +.X "Internal Files" +\s-1PS1\s0:2\*(tx25 +.X "internal\*(txtabstop (variable)" +\s-1USD\s0:17\*(tx35 +.X "Internet" +netstat(1), \s-1USD\s0:8\*(tx65, inet(3n), de(4), qe(4), networks(5), \s-1PS1\s0:6\*(tx33, \s-1PS1\s0:7\*(tx22, \s-1PS1\s0:8\*(tx17, ifconfig(8c), routed(8c)\*(tx2, \s-1SMM\s0:1\*(tx42..43, \s-1SMM\s0:2\*(tx13, \s-1SMM\s0:10\*(tx4, \s-1SMM\s0:11\*(tx4 +.X "Internet address format" +gethostbyname(3), inet(4f), tcp(4p), udp(4p) +.X "Internet addresses" +hostid(1), \s-1USD\s0:8\*(tx82, inet(3n), resolver(3), arp(4p), imp(4), inet(4f), tcp(4p), hosts(5), \s-1PS1\s0:6\*(tx37, \s-1PS1\s0:7\*(tx11, \s-1PS1\s0:8\*(tx5,17,20,41, route(8c), \s-1SMM\s0:1\*(tx39, \s-1SMM\s0:11\*(tx5, \s-1SMM\s0:12\*(tx8, \s-1SMM\s0:13\*(tx23..24 +.X "Internet and NS domains" +\s-1PS1\s0:8\*(tx4,30..31 +.X "Internet and NS domains, binding addresses to sockets in the" +\s-1PS1\s0:8\*(tx30 +.X "Internet code, /sys/netinet DARPA" +\s-1SMM\s0:1\*(tx26 +.X "Internet Control Message Protocol" +icmp(4p), inet(4f), \s-1SMM\s0:15\*(tx19 +.X "Internet daemon" +inetd(8), \s-1SMM\s0:1\*(tx41..43 +.X "Internet Datagram Protocol (see IDP)" +.X "Internet digests" +\s-1USD\s0:8\*(tx14 +.X "Internet domain" +inet(4f), \s-1PS1\s0:6\*(tx37, \s-1PS1\s0:7\*(tx8..11,22, \s-1PS1\s0:8\*(tx3..6,14,28 +.X "Internet domain datagram, Sending an" +\s-1PS1\s0:7\*(tx14 +.X "Internet domain name servers" +resolver(3), named(8) +.X "Internet host name to address mapping" +\s-1PS1\s0:8\*(tx11 +.X "Internet ports" +rcmd(3), \s-1PS1\s0:8\*(tx15,19,31 +.X "Internet protocol family" +socket(2), getprotoent(3n), arp(4p), ddn(4), icmp(4p), idp(4p), inet(4f), ip(4p), ns(4f), pcl(4), udp(4p), \s-1PS1\s0:8\*(tx11, ifconfig(8c), \s-1SMM\s0:2\*(tx13, \s-1SMM\s0:13\*(tx20,23, \s-1SMM\s0:15\*(tx17..18 +.X "Internet Request For Comment (see also RFC)" +htable(8), \s-1SMM\s0:11\*(tx16 +.X "Internet standard protocols" +\s-1PS1\s0:7\*(tx8 +.X "Internet Transmission Control Protocol, tcp \*(tx" +tcp(4p) +.X "Internet Transport Protocols" +ns(4f), routed(8c)\*(tx3, XNSrouted(8c) +.X "Internet User Datagram Protocol, udp \*(tx" +udp(4p) +.X "Internetwork Mail Router" +sendmail(8)\*(tx4, \s-1SMM\s0:16\*(tx1..10 +.X "internetwork routers" +spp(4p), routed(8c), XNSrouted(8c) +.X "interpolate" +\s-1USD\s0:24\*(tx14 +.X "Interpress format, Xerox" +\s-1SMM\s0:12\*(tx23 +.X "interpretation, blank" +sh(1)\*(tx2, \s-1USD\s0:3\*(tx10,17,21 +.X "interpretation, Format" +\s-1PS1\s0:3\*(tx5..6 +.X "interpreter, command language" +csh(1)\*(tx1, \s-1USD\s0:4\*(tx1,43 +.X "interpreter, lisp" +lisp(1), \s-1PS2\s0:9\*(tx75,133,149 +.X "interpreters, command" +csh(1)\*(tx1, login(1), \s-1USD\s0:2\*(tx6,8, \s-1USD\s0:4\*(tx3, \s-1USD\s0:13\*(tx15, system(3f) +.X "Interprocess Communication, Changes in" +\s-1SMM\s0:13\*(tx12 +.X "interprocess communication facilities" +intro(4), \s-1PS1\s0:8, \s-1PS1\s0:8\*(tx2,11, \s-1SMM\s0:12\*(tx13, \s-1SMM\s0:15\*(tx3,6 +.X "Interprocess communication primitives" +\s-1PS1\s0:6\*(tx32, \s-1PS1\s0:8 +.X "Interprocess communications" +\s-1PS1\s0:6\*(tx32, \s-1PS1\s0:7\*(tx1..2, \s-1PS1\s0:8, \s-1PS1\s0:8\*(tx2, \s-1SMM\s0:1\*(tx26 +.X "Interrupt characters" +stty(1)\*(tx1, tset(1)\*(tx2, tty(4)\*(tx5, \s-1PS1\s0:6\*(tx38 +.X "Interrupt driven socket I/O" +\s-1PS1\s0:8\*(tx26 +.X "interrupt handling, 4.1 BSD" +siginterrupt(3) +.X "interrupt handling routine, testing" +\s-1PS1\s0:10\*(tx6 +.X "interrupt, hardware" +sigvec(2)\*(tx1 +.X "interrupt, lost" +up(4)\*(tx3, uu(4) +.X "INTERRUPT signals (see SIGINT)" +\s-1USD\s0:4\*(tx8, signal(3c)\*(tx1 +.X "interrupt vectors" +\s-1SMM\s0:2\*(tx5 +.X "interrupted system calls" +intro(2)\*(tx1, siginterrupt(3) +.X "Interrupted text" +\s-1USD\s0:24\*(tx12 +.X "Interrupting the Editor" +\s-1USD\s0:13\*(tx10 +.X "interrupt\*(txprocess" +\s-1USD\s0:17\*(tx35 +.X "interrupts" +sh(1)\*(tx4, \s-1USD\s0:3\*(tx22, \s-1USD\s0:4\*(tx8..9,17,39, \s-1USD\s0:8\*(tx30, \s-1USD\s0:14\*(tx8, setjmp(3), \s-1PS2\s0:9\*(tx80,116, \s-1PS2\s0:10\*(tx52..53, config(8), \s-1SMM\s0:14\*(tx7 +.X "interrupts, Catching" +\s-1USD\s0:4\*(tx31 +.X "interrupts, clock" +kg(4) +.X "interrupts, device" +systat(1)\*(tx2 +.X "interrupts, ignoring" +csh(1)\*(tx13 +.X "interrupts, software" +\s-1PS1\s0:6\*(tx9 +.X "interval, linger" +getsockopt(2) +.X "interval, queue" +\s-1SMM\s0:7\*(tx12,14..15 +.X "interval, suspend execution for" +usleep(3) +.X "Interval time" +\s-1PS1\s0:6\*(tx16 +.X "interval timers" +execve(2), getitimer(2), pause(3c), sleep(3), usleep(3), \s-1PS1\s0:6\*(tx13,16..17 +.X "intrinsic functions" +intro(3f)\*(tx1, \s-1PS1\s0:2\*(tx9..11,19 +.X "INTRINSIC Statement" +\s-1PS1\s0:2\*(tx19 +.X "intro \*(tx introduction to C library functions" +intro(3) +.X "intro \*(tx introduction to commands" +intro(1) +.X "intro \*(tx introduction to FORTRAN library functions" +intro(3f) +.X "intro \*(tx introduction to special files and hardware support" +intro(4) +.X "intro \*(tx introduction to system calls and error numbers" +intro(2) +.X "intro \*(tx introduction to system maintenance and operation commands" +intro(8) +.X "Introduction to Display Editing with Vi" +\s-1USD\s0:15 +.X "introduction to networking facilities" +intro(4n) +.X "introduction to RCS commands" +rcsintro(1) +.X "Introduction to the C shell" +\s-1USD\s0:4 +.X "Introduction to the Revision Control System" +\s-1PS1\s0:13 +.X "Introduction to the Source Code Control System" +\s-1PS1\s0:14 +.X "Introduction to the UNIX Shell" +\s-1USD\s0:3 +.X "introduction to unix" +\s-1USD\s0:1 +.X "introduction to UNIX files and commands" +\s-1USD\s0:2\*(tx1 +.X "Introductory 4.3BSD Interprocess Communication Tutorial" +\s-1PS1\s0:7 +.X "i\*(txnumbers, ncheck \*(tx generate names from" +ls(1), ncheck(8) +.X "invalid address" +connect(2) +.X "invalid floating\*(txpoint operations" +infnan(3m) +.X "invert \*(tx multiple precision integer arithmetic" +mp(3x) +.X "inverted indexes" +lookbib(1), \s-1USD\s0:29\*(tx5..6, \s-1USD\s0:30\*(tx2..3, \s-1USD\s0:31\*(tx2 +.X "Inverted Indexes on the UNIX System, Applications of" +\s-1USD\s0:30 +.X "invocation, macro" +\s-1USD\s0:24\*(tx14, \s-1PS1\s0:12\*(tx3, \s-1PS2\s0:9\*(tx120 +.X "Invocation, Procedure" +\s-1PS2\s0:6\*(tx10,15..16,25 +.X "I/O (see also input, output)" +\s-1PS1\s0:2\*(tx12,14..15,22..27, \s-1PS1\s0:3, \s-1PS1\s0:7\*(tx1, \s-1PS1\s0:8\*(tx41, \s-1PS2\s0:1\*(tx4..7, \s-1PS2\s0:3\*(tx5,15, \s-1PS2\s0:4\*(tx4..8, \s-1PS2\s0:5\*(tx5..7, \s-1PS2\s0:6\*(tx22, \s-1PS2\s0:9\*(tx63,65, \s-1SMM\s0:12\*(tx2 +.X "I/O activity" +getrusage(2) +.X "I/O, Asynchronous" +dup(2), \s-1SMM\s0:12\*(tx14 +.X "I/O, block" +sync(2), tu(4), uu(4) +.X "I/O buffers" +abort(3), \s-1SMM\s0:1\*(tx5 +.X "I/O configuration tables" +\s-1SMM\s0:2\*(tx5 +.X "I/O counts, raw" +hp(4)\*(tx1, uda(4)\*(tx1, up(4)\*(tx1 +.X "I/O devices" +config(8) +.X "I/O devices, block" +mknod(2) +.X "I/O, direct" +\s-1PS1\s0:2\*(tx26 +.X "I/O, disk" +systat(1)\*(tx2, \s-1USD\s0:4\*(tx44 +.X "I/O errors" +intro(2)\*(tx1, vhangup(2), \s-1PS1\s0:3\*(tx6, \s-1PS1\s0:4\*(tx25..26, \s-1PS2\s0:1\*(tx5 +.X "I/O errors, hard" +\s-1SMM\s0:1\*(tx63, \s-1SMM\s0:13\*(tx31 +.X "I/O, file" +\s-1SMM\s0:2\*(tx31 +.X "I/O, Fortran" +getc(3f), putc(3f), \s-1PS1\s0:2\*(tx15, \s-1PS1\s0:3\*(tx1,8 +.X "I/O functions" +hier(7)\*(tx6, \s-1SMM\s0:12\*(tx2 +.X "I/O, Interrupt driven socket" +\s-1PS1\s0:8\*(tx26 +.X "I/O is possible on a descriptor" +signal(3c)\*(tx1 +.X "I/O library" +\s-1USD\s0:1\*(tx13, exit(2), \s-1PS1\s0:3, \s-1PS1\s0:16\*(tx9, \s-1PS2\s0:3\*(tx1..4,10,13, \s-1SMM\s0:1\*(tx23, \s-1SMM\s0:12\*(tx2,6..7 +.X "I/O Library, f77" +\s-1PS1\s0:2\*(tx27..28, \s-1PS1\s0:3, \s-1SMM\s0:12\*(tx7 +.X "I/O library, standalone" +format(8v)\*(tx1 +.X "I/O multiplexing, select \*(tx synchronous" +select(2) +.X "I/O, Namelist" +\s-1PS1\s0:2\*(tx9..10, \s-1PS1\s0:3\*(tx3,7, \s-1SMM\s0:12\*(tx7 +.X "I/O, non\*(txblocking" +\s-1USD\s0:24\*(tx2, connect(2), dup(2), fcntl(2), read(2), write(2), tty(4)\*(tx2, \s-1SMM\s0:13\*(tx4 +.X "I/O operations" +hk(4), hp(4), mt(4), uda(4)\*(tx1, up(4)\*(tx1, \s-1PS1\s0:2\*(tx23, \s-1PS1\s0:6\*(tx38, \s-1PS2\s0:4\*(tx7, \s-1PS2\s0:5\*(tx5, sa(8), \s-1SMM\s0:2\*(tx20..21 +.X "I/O, physical" +ps(1)\*(tx3 +.X "I/O pointers" +\s-1PS2\s0:4\*(tx8..9 +.X "I/O, raw" +hk(4), hp(4), uda(4)\*(tx1, up(4) +.X "I/O redirection (see redirection)" +.X "I/O requests" +\s-1SMM\s0:1\*(tx31 +.X "I/O requests, asynchronous notification of" +\s-1PS1\s0:8\*(tx26 +.X "I/O routines" +stdio(3s), \s-1PS1\s0:16\*(tx6,12, \s-1PS2\s0:5\*(tx4 +.X "I/O, sequential" +\s-1PS1\s0:2\*(tx15,24,26, \s-1PS1\s0:3\*(tx9 +.X "I/O space" +mem(4), \s-1SMM\s0:15\*(tx14 +.X "I/O statements" +\s-1PS1\s0:3\*(tx4, \s-1PS2\s0:3\*(tx3, \s-1PS2\s0:6\*(tx21,27 +.X "I/O statistics, iostat \*(tx report" +iostat(1) +.X "I/O system" +\s-1PS1\s0:2\*(tx4,7,15,23, \s-1PS1\s0:3\*(tx6,8, \s-1PS2\s0:3\*(tx7,14, \s-1PS2\s0:4\*(tx1,4 +.X "I/O system, block" +\s-1PS2\s0:4\*(tx4,6, \s-1PS2\s0:5\*(tx5 +.X "ioctl \*(tx control device" +ioctl(2) +.X "ioctl call (see specific section 4 man pages)" +tip(1c)\*(tx1, intro(2)\*(tx3, arp(4p), intro(4n)\*(tx3, pty(4), tty(4)\*(tx4, rmt(8c), route(8c), \s-1SMM\s0:15\*(tx22 +.X "ioctl operations (see also SIO*, TIO*, MTIO*)" +ioctl(2), mtio(4), pty(4), \s-1PS1\s0:6\*(tx25,28,38, \s-1SMM\s0:13\*(tx6,21,27 +.X "ioctl system call on a socket" +\s-1SMM\s0:15\*(tx16 +.X "ioctls, interface" +\s-1SMM\s0:13\*(tx9,21,23 +.X "ioinit()" +\s-1PS1\s0:3\*(tx8 +.X "ioinit \*(tx change f77 I/O initialization" +ioinit(3f) +.X "IOSTAT=" +\s-1PS1\s0:2\*(tx22 +.X "iostat \*(tx report I/O statistics" +iostat(1), systat(1)\*(tx1..3, \s-1SMM\s0:12\*(tx8 +.X "IOT instruction" +signal(3c)\*(tx1 +.X "iov array" +read(2), write(2) +.X "iovec, struct" +\s-1PS1\s0:6\*(tx25, \s-1PS1\s0:7\*(tx23 +.X "ip \*(tx Internet Protocol" +intro(4n)\*(tx1, icmp(4p), inet(4f), ip(4p), implogd(8c), \s-1SMM\s0:12\*(tx14, \s-1SMM\s0:15\*(tx18 +.X "IP addresses" +gethostbyname(3), nsip(4), \s-1SMM\s0:13\*(tx27 +.X "IP header" +icmp(4p), ip(4p), nsip(4) +.X "IP options" +ip(4p), \s-1SMM\s0:12\*(tx17, \s-1SMM\s0:13\*(tx23..24 +.X "IP over serial data lines" +\s-1SMM\s0:13\*(tx3 +.X "IP packets" +nsip(4), \s-1SMM\s0:2\*(tx33, \s-1SMM\s0:13\*(tx22,24 +.X "IP sockets, raw" +\s-1SMM\s0:13\*(tx23..24, \s-1SMM\s0:15\*(tx22 +.X "IPC (see also Interprocess Communication)" +\s-1PS1\s0:6\*(tx24, \s-1PS1\s0:7\*(tx1..2 +.X "IPC connection" +\s-1SMM\s0:7\*(tx26, \s-1SMM\s0:16\*(tx4 +.X "IPC connection, SMTP over an" +\s-1SMM\s0:16\*(tx4 +.X "IPC facilities" +\s-1PS1\s0:6\*(tx31, \s-1PS1\s0:8\*(tx2 +.X "IPC, Introductory 4.3BSD" +\s-1PS1\s0:7 +.X "IPC messages" +getrusage(2) +.X "IPC Tutorial, Advanced 4.3BSD" +\s-1PS1\s0:8 +.X "IPFORWARDING" +\s-1SMM\s0:2\*(tx33 +.X "i\*(txprocess buffers" +\s-1USD\s0:17\*(tx20..21 +.X "IPSENDREDIRECTS" +\s-1SMM\s0:2\*(tx33 +.X "irand" +rand(3f) +.X "irandm" +random(3f) +.X "isalnum" +ctype(3) +.X "isalpha" +ctype(3) +.X "ISAM" +\s-1PS2\s0:10\*(tx46,56 +.X "isascii" +ctype(3) +.X "isatty \*(tx find name of a terminal" +ttyname(3) +.X "isatty \*(tx find name of a terminal port" +ttynam(3f) +.X "iscntrl" +ctype(3) +.X "isdigit" +ctype(3) +.X "i\*(txsearch\*(txforward" +\s-1USD\s0:17\*(tx35 +.X "i\*(txsearch\*(txreverse" +\s-1USD\s0:17\*(tx35 +.X "isgraph" +ctype(3) +.X "i\*(txshell" +\s-1USD\s0:17\*(tx35 +.X "i\*(txshell\*(txcommand" +\s-1USD\s0:17\*(tx35 +.X "islower" +ctype(3) +.X "ISP" +vgrind(1) +.X "isprint" +ctype(3) +.X "ispunct" +ctype(3) +.X "isspace" +ctype(3) +.X "isupper" +ctype(3) +.X "isxdigit" +ctype(3) +.X "Italic, Times" +\s-1USD\s0:22\*(tx16, \s-1USD\s0:24\*(tx9,32 +.X "italics" +\s-1USD\s0:20\*(tx4 +.X "italics, .bi bold" +\s-1USD\s0:23\*(tx6 +.X "italics, bold" +\s-1USD\s0:22\*(tx17 +.X "items, reference" +\s-1USD\s0:31\*(tx4,8 +.X "itimerval, struct" +\s-1PS1\s0:6\*(tx16..17 +.X "itom \*(tx multiple precision integer arithmetic" +mp(3x) +.X "ix \*(tx Interlan Np100 10 Mb/s Ethernet interface" +ix(4) +.L J +.X "j0, j1, jn, y0, y1, yn \*(tx bessel function" +j0(3m) +.X "jmp instructions" +\s-1PS1\s0:5\*(tx13..14 +.X "job access control" +tty(4)\*(tx5 +.X "job completion" +csh(1)\*(tx18 +.X "job control" +csh(1)\*(tx1..2,9, tip(1c)\*(tx1, \s-1USD\s0:4\*(tx16..17,39, \s-1USD\s0:13\*(tx15, getpgrp(2), tty(4)\*(tx1 +.X "job control commands" +csh(1)\*(tx1, \s-1USD\s0:4\*(tx18,39, \s-1USD\s0:17\*(tx40 +.X "job name" +csh(1)\*(tx2, lpr(1), lpd(8) +.X "job numbers" +atrm(1), csh(1)\*(tx16, lpq(1), lprm(1), \s-1USD\s0:4\*(tx17..18,39 +.X "jobs, Background" +csh(1)\*(tx2, stty(1)\*(tx2, w(1), \s-1USD\s0:4\*(tx16..22,41..44 +.X "jobs command" +csh(1)\*(tx2, \s-1USD\s0:4\*(tx9,18,20,39 +.X "jobs, foreground" +\s-1USD\s0:4\*(tx17..19,22,38,44 +.X "jobs, printer" +lpc(8), \s-1SMM\s0:1\*(tx34 +.X "jobs, remove" +atrm(1), lprm(1), \s-1SMM\s0:6\*(tx2 +.X "jobs shell command" +csh(1)\*(tx12 +.X "jobs, suspended" +csh(1)\*(tx2, \s-1USD\s0:4\*(tx18..19,34 +.X "join \*(tx relational database operator" +ed(1)\*(tx4, join(1), \s-1USD\s0:16\*(tx7 +.X "joining lines" +\s-1USD\s0:13\*(tx7 +.X "jokes, decrypt" +\s-1USD\s0:10\*(tx10 +.X "Jonathan's Own Version of Emacs (see JOVE)" +jove(1)\*(tx1, \s-1USD\s0:17\*(tx1 +.X "journal articles" +\s-1USD\s0:30\*(tx8, \s-1USD\s0:31\*(tx5 +.X "journal names" +\s-1USD\s0:31\*(tx5,16 +.X "jove \*(tx an interactive display\*(txoriented text editor" +jove(1)\*(tx1 +.X "JOVE buffers" +jove(1)\*(tx1, \s-1USD\s0:17\*(tx2,20,22,37 +.X "JOVE command, numeric arguments to" +\s-1USD\s0:17\*(tx5 +.X "JOVE commands" +jove(1)\*(tx2, \s-1USD\s0:17\*(tx2,5,27 +.X "JOVE commands and variables, list of" +\s-1USD\s0:17\*(tx25 +.X "JOVE commands, chart of" +\s-1USD\s0:17\*(tx29 +.X "JOVE, customizing" +\s-1USD\s0:17\*(tx22 +.X "JOVE display" +\s-1USD\s0:17\*(tx3,18,21 +.X "JOVE, exiting and pausing \*(tx leaving" +\s-1USD\s0:17\*(tx5 +.X "JOVE, help in" +\s-1USD\s0:17\*(tx3 +.X "JOVE Manual for UNIX Users" +\s-1USD\s0:17 +.X "JOVE windows, running processes in" +\s-1USD\s0:17\*(tx20 +.X "justify a message" +mail(1)\*(tx5 +.X "justify\*(txparagraph" +\s-1USD\s0:17\*(tx43 +.X "justify\*(txregion" +\s-1USD\s0:17\*(tx43 +.L K +.X "keep floating" +\s-1USD\s0:20\*(tx5, \s-1USD\s0:22\*(tx6 +.X "keeping blocks of text together" +ms(7), \s-1USD\s0:7\*(tx18, \s-1USD\s0:20\*(tx5, \s-1USD\s0:22\*(tx5 +.X "keepsave" +\s-1USD\s0:7\*(tx18 +.X "Kennedy model 9300 tape transport" +tm(4) +.X "kermit" +\s-1SMM\s0:12\*(tx23 +.X "kernel" +crash(8v)\*(tx3, \s-1PS1\s0:3\*(tx9, \s-1PS2\s0:4\*(tx1,9, \s-1SMM\s0:1\*(tx48, \s-1SMM\s0:2\*(tx2, \s-1SMM\s0:3 +.X "kernel, booting a new" +\s-1SMM\s0:1\*(tx23 +.X "kernel bugs" +crash(8v)\*(tx2 +.X "kernel configuration" +\s-1SMM\s0:1\*(tx25,27 +.X "kernel data structure sizing rules" +\s-1SMM\s0:2\*(tx30 +.X "kernel debugging" +adb(1)\*(tx4, dbx(1)\*(tx1,5 +.X "kernel error log" +\s-1SMM\s0:13\*(tx8 +.X "kernel, examining the" +\s-1SMM\s0:3 +.X "kernel limits" +select(2), \s-1SMM\s0:1\*(tx23 +.X "kernel, lint the" +\s-1SMM\s0:2\*(tx14 +.X "kernel memory" +\s-1SMM\s0:1\*(tx21 +.X "kernel memory mapping" +adb(1)\*(tx1 +.X "kernel messages" +syslog(3), syslogd(8), \s-1SMM\s0:13\*(tx8 +.X "kernel network support, changes in the" +\s-1SMM\s0:13\*(tx20 +.X "kernel organization" +\s-1SMM\s0:1\*(tx25..26 +.X "kernel primitives" +\s-1PS1\s0:6\*(tx6,41 +.X "kernel profiling" +kgmon(8), \s-1SMM\s0:2\*(tx15 +.X "kernel profiling buffers" +\s-1SMM\s0:13\*(tx8 +.X "kernel, replacing your" +\s-1SMM\s0:1\*(tx18 +.X "kernel routing tables" +routed(8c), \s-1SMM\s0:15\*(tx22 +.X "kernel sources" +\s-1SMM\s0:1\*(tx26, \s-1SMM\s0:13\*(tx2 +.X "kernel stack" +ps(1)\*(tx2, \s-1SMM\s0:1\*(tx23 +.X "kernel virtual addresses" +adb(1)\*(tx1, mem(4), \s-1SMM\s0:15\*(tx13 +.X "Kernels with Config, Building Berkeley UNIX" +\s-1SMM\s0:2 +.X "key bindings" +jove(1)\*(tx2, \s-1USD\s0:17\*(tx9,24,29 +.X "key, complex" +\s-1PS2\s0:9\*(tx33 +.X "key files" +\s-1USD\s0:30\*(tx2..4, \s-1SMM\s0:10\*(tx20 +.X "key re\*(txbinding" +\s-1USD\s0:17\*(tx24 +.X "key search" +crypt(3), \s-1SMM\s0:18\*(tx3..4 +.X "keyboard macros" +\s-1USD\s0:17\*(tx2,24,32,37,39,45..46 +.X "key/content pairs" +dbm(3x), ndbm(3) +.X "keypad" +termcap(5)\*(tx10 +.X "keys, arrow" +\s-1USD\s0:15\*(tx3,5,7,27, \s-1USD\s0:17\*(tx1, termcap(5)\*(tx10..11 +.X "keys, function" +window(1)\*(tx2, \s-1USD\s0:15\*(tx16,23, \s-1USD\s0:16\*(tx8, termcap(5)\*(tx10,13 +.X "keys, map3270 \*(tx database for mapping ASCII keystrokes into IBM 3270" +map3270(5)\*(tx1 +.X "keys, ordering" +\s-1PS2\s0:10\*(tx23 +.X "keys, search" +\s-1USD\s0:30\*(tx9..10 +.X "keys, significant sort" +\s-1PS2\s0:10\*(tx23 +.X "keys, sort" +sort(1), sortbib(1) +.X "keyword parameters" +\s-1USD\s0:3\*(tx14..15 +.X "keyword\*(txin\*(txcontext listing" +\s-1USD\s0:1\*(tx11 +.X "keywords" +\s-1USD\s0:11\*(tx9, \s-1PS1\s0:5\*(tx9..10 +.X "keywords, Id" +\s-1PS1\s0:14\*(tx2..5,9,14..15 +.X "keywords, searching notes for" +\s-1USD\s0:11\*(tx9 +.X "kg \*(tx KL\*(tx11/DL\*(tx11W line clock" +kg(4) +.X "kgmon \*(tx generate a dump of the operating system's profile buffers" +kgmon(8), \s-1SMM\s0:2\*(tx6 +.X "kill" +kill(1), ptrace(2), \s-1SMM\s0:12\*(tx13 +.X "kill \*(tx send a signal to a process" +csh(1)\*(tx12 +.X "kill \*(tx send signal to a process" +kill(2) +.X "kill \*(tx terminate a process with extreme prejudice" +kill(1) +.X "kill character" +mail(1)\*(tx5, more(1)\*(tx2, stty(1)\*(tx1, telnet(1c)\*(tx3, tset(1), \s-1USD\s0:4\*(tx3,44, \s-1USD\s0:15\*(tx2,20,25, tty(4)\*(tx3, gettytab(5)\*(tx3 +.X "kill command" +csh(1)\*(tx12, \s-1USD\s0:4\*(tx19, \s-1USD\s0:17\*(tx7..8,12,48 +.X "kill, line" +stty(1)\*(tx2, tty(4)\*(tx7 +.X "kill ring" +\s-1USD\s0:17\*(tx8,33,35,48 +.X "kill signal" +\s-1USD\s0:17\*(tx35, signal(3c)\*(tx1, \s-1SMM\s0:6\*(tx5, \s-1SMM\s0:12\*(tx8 +.X "killchar()" +\s-1PS1\s0:18\*(tx15 +.X "killed text" +\s-1USD\s0:17\*(tx8,13,48 +.X "killing and moving text" +\s-1USD\s0:17\*(tx7 +.X "killing buffers" +\s-1USD\s0:17\*(tx16 +.X "killing your mistakes" +\s-1USD\s0:17\*(tx13 +.X "kill\*(txnext\*(txword (ESC D)" +\s-1USD\s0:17\*(tx35 +.X "kill(pid, signo)" +\s-1PS1\s0:6\*(tx14 +.X "killpg \*(tx send signal to a process group" +kill(2), killpg(2) +.X "killpgrp(pgrp, signo)" +\s-1PS1\s0:6\*(tx14 +.X "kill\*(txprevious\*(txword (ESC Rubout)" +\s-1USD\s0:17\*(tx35 +.X "kill\*(txregion (C\*(txW)" +\s-1USD\s0:17\*(tx35 +.X "kill\*(txs\*(txexpression (ESC C\*(txK)" +\s-1USD\s0:17\*(tx36 +.X "kill\*(txsome\*(txbuffers" +\s-1USD\s0:17\*(tx36 +.X "kill\*(txto\*(txbeginning\*(txof\*(txsentence (C\*(txX Rubout)" +\s-1USD\s0:17\*(tx36 +.X "kill\*(txto\*(txend\*(txof\*(txline (C\*(txK)" +\s-1USD\s0:17\*(tx36 +.X "kill\*(txto\*(txend\*(txof\*(txsentence (ESC K)" +\s-1USD\s0:17\*(tx36 +.X "Kincaid Formula" +\s-1USD\s0:32\*(tx3..4 +.X "KL\*(tx11/DL\*(tx11W line clock, kg \*(tx" +kg(4) +.X "Klingons" +\s-1USD\s0:34\*(tx1..8,11 +.X "knapsacks" +xsend(1) +.X "KSP" +crash(8v)\*(tx2 +.L L +.X "label, branch to" +\s-1USD\s0:18\*(tx10 +.X "label, goto" +csh(1)\*(tx14, \s-1USD\s0:4\*(tx31 +.X "label number" +\s-1SMM\s0:19\*(tx8,10..11 +.X "label, size of the" +\s-1USD\s0:22\*(tx10 +.X "labeled statement" +\s-1PS1\s0:1\*(tx23 +.X "labelled tape" +topen(3f) +.X "labels" +plot(3f) +.X "labels, case" +csh(1)\*(tx10,15 +.X "labels, default" +csh(1)\*(tx15 +.X "labels, global" +\s-1PS1\s0:4\*(tx42, \s-1PS1\s0:5\*(tx4 +.X "labels, numeric" +\s-1PS1\s0:5\*(tx4..5, \s-1PS2\s0:6\*(tx25 +.X "labels, statement" +\s-1PS1\s0:2\*(tx14,21, \s-1PS1\s0:10\*(tx5, \s-1PS2\s0:6\*(tx25 +.X "L.aliases \*(tx UUCP hostname alias file" +L.aliases(5) +.X "LALR(1) grammar" +\s-1PS1\s0:15\*(tx1 +.X "lambda binding" +\s-1PS2\s0:9\*(tx51,54,56..57,85 +.X "lambda expressions" +\s-1PS2\s0:9\*(tx59,103,123,136 +.X "lambda function" +\s-1PS2\s0:9\*(tx95 +.X "languages (see under particular languages)" +.X "language, assembly" +as(1), \s-1PS1\s0:4\*(tx37, \s-1PS2\s0:1\*(tx2, \s-1PS2\s0:9\*(tx4 +.X "Language, C Programming (see also C)" +\s-1PS1\s0:1, \s-1PS1\s0:2\*(tx4, \s-1PS1\s0:6\*(tx5, \s-1PS1\s0:7\*(tx2, \s-1PS1\s0:8, \s-1PS1\s0:9\*(tx8, \s-1PS2\s0:1\*(tx15, \s-1PS2\s0:3\*(tx12, \s-1PS2\s0:10\*(tx52 +.X "language, command" +sh(1)\*(tx1, \s-1USD\s0:3\*(tx1, \s-1PS2\s0:4\*(tx9 +.X "language definitions file" +vgrind(1) +.X "language design" +\s-1USD\s0:26\*(tx2, \s-1USD\s0:27\*(tx10 +.X "Language, Dungeon Definition" +aardvark(6), \s-1SMM\s0:12\*(tx18 +.X "language features" +\s-1USD\s0:1\*(tx14, \s-1USD\s0:6\*(tx6 +.X "Language, Fortran (see Fortran)" +.X "language, input" +\s-1PS1\s0:15\*(tx1, \s-1PS2\s0:8\*(tx12 +.X "languages, host" +\s-1PS1\s0:16\*(tx2,9 +.X "large boxes" +\s-1USD\s0:24\*(tx22 +.X "large brackets" +\s-1USD\s0:24\*(tx21 +.X "laser printers" +\s-1USD\s0:22\*(tx18, \s-1SMM\s0:1\*(tx34, \s-1SMM\s0:6\*(tx2 +.X "last \*(tx indicate last logins of users and teletypes" +last(1) +.X "last close, hang up on" +tty(4)\*(tx5 +.X "last component of a pathname" +\s-1USD\s0:4\*(tx29 +.X "last file, end of the" +\s-1USD\s0:24\*(tx17 +.X "last line" +ed(1)\*(tx2 +.X "last line in buffer" +\s-1USD\s0:12\*(tx4 +.X "last line output, text length on the" +\s-1USD\s0:24\*(tx12 +.X "last modification, time of" +\s-1PS1\s0:12\*(tx3 +.X "last page" +\s-1USD\s0:24\*(tx31 +.X "lastcomm \*(tx show last commands executed in reverse order" +lastcomm(1), \s-1SMM\s0:12\*(tx8 +.X "layer, Network\*(txinterface" +\s-1SMM\s0:15\*(tx3,10 +.X "layer, protocol" +\s-1SMM\s0:12\*(tx14, \s-1SMM\s0:13\*(tx20, \s-1SMM\s0:15\*(tx8 +.X "layer, socket" +\s-1SMM\s0:13\*(tx14, \s-1SMM\s0:15\*(tx6 +.X "layer, transport" +inet(4f), intro(4n)\*(tx2, ns(4f), \s-1SMM\s0:15\*(tx3 +.X "layout policy" +\s-1SMM\s0:14\*(tx6 +.X "L.cmds \*(tx UUCP remote command permissions file" +L.cmds(5) +.X "ld \*(tx link editor" +error(1)\*(tx1, ld(1), intro(3)\*(tx1, a.out(5)\*(tx1, \s-1PS1\s0:5\*(tx1,6,10, \s-1SMM\s0:12\*(tx8 +.X "L\*(txdevices file" +L\*(txdevices(5), L.sys(5), uucico(8c), \s-1SMM\s0:1\*(tx36..37, \s-1SMM\s0:9\*(tx6,12,15..16 +.X "ldexp" +frexp(3) +.X "L\*(txdialcodes" +L\*(txdialcodes(5), L.sys(5)\*(tx2, \s-1SMM\s0:1\*(tx36..37, \s-1SMM\s0:9\*(tx6,13,15 +.X "leader, comment" +\s-1PS1\s0:13\*(tx13 +.X "leader repetition character" +\s-1USD\s0:24\*(tx18 +.X "leaders" +\s-1USD\s0:24\*(tx4,18 +.X "leaf nodes" +\s-1SMM\s0:10\*(tx16, \s-1SMM\s0:19\*(tx5,18 +.X "learn \*(tx computer aided instruction about UNIX" +learn(1), \s-1USD\s0:2, \s-1SMM\s0:12\*(tx8 +.X "learning ed" +\s-1USD\s0:12\*(tx1 +.X "learnrc" +learn(1) +.X "Leave" +signal(3c)\*(tx1 +.X "leave \*(tx remind you when you have to leave" +csh(1)\*(tx12 +.X "leaveok()" +\s-1PS1\s0:18\*(tx5 +.X "leaveok(win, boolf)" +\s-1PS1\s0:18\*(tx15 +.X "leaving JOVE, exiting and pausing \*(tx" +\s-1USD\s0:17\*(tx5 +.X "left adjustment" +printf(3s) +.X "left and right commands" +\s-1USD\s0:27\*(tx6 +.X "left and right quote" +\s-1USD\s0:22\*(tx18 +.X "left context" +\s-1PS1\s0:16\*(tx5 +.X "left quote" +\s-1USD\s0:23\*(tx9 +.X "left recursion" +\s-1PS1\s0:15\*(tx19 +.X "left\*(txadjust" +\s-1USD\s0:20\*(tx4 +.X "left\*(txadjusted column entry" +\s-1USD\s0:28\*(tx3 +.X "left\*(txaligned (block) paragraph" +\s-1USD\s0:20\*(tx1 +.X "left\*(txjustified block\*(txstyle paragraphs" +\s-1USD\s0:22\*(tx9 +.X "left\*(txjustified list" +\s-1USD\s0:22\*(tx6 +.X "left\*(txmargin (variable)" +\s-1USD\s0:17\*(tx36 +.X "left\*(txmargin\*(txhere" +\s-1USD\s0:17\*(tx36 +.X "Lempel\*(txZiv coding" +compress(1) +.X "len" +index(3f), \s-1PS1\s0:17\*(tx5 +.X "length, default" +\s-1USD\s0:25\*(tx9 +.X "length, default line" +\s-1USD\s0:28\*(tx5 +.X "length, field" +\s-1USD\s0:24\*(tx18 +.X "length, footnote" +ms(7)\*(tx3 +.X "length function and awk variable" +\s-1USD\s0:19\*(tx4 +.X "length, line" +roffbib(1), ms(7)\*(tx3, \s-1USD\s0:17\*(tx23, \s-1USD\s0:20\*(tx1, \s-1USD\s0:23\*(tx7, \s-1USD\s0:24\*(tx3,9,12..14,23, \s-1USD\s0:25\*(tx4,9, \s-1USD\s0:28\*(tx2,4,6, \s-1USD\s0:29\*(tx4, \s-1SMM\s0:7\*(tx32 +.X "length, Logical record" +\s-1PS1\s0:3\*(tx3,9 +.X "length of string" +string(3) +.X "length of title" +\s-1USD\s0:24\*(tx23 +.X "length, page" +pr(1), \s-1USD\s0:23\*(tx2,9, \s-1USD\s0:24\*(tx11,16, printcap(5), \s-1SMM\s0:6\*(tx4 +.X "length, record" +dir(5), \s-1PS1\s0:2\*(tx12,15,25..27, \s-1PS1\s0:3\*(tx3 +.X "length, sentence" +style(1), \s-1USD\s0:32\*(tx2,4..5 +.X "lengths of words" +style(1), \s-1USD\s0:32\*(tx1,3..4, \s-1PS1\s0:16\*(tx10 +.X "length, title" +ms(7)\*(tx3, \s-1USD\s0:25\*(tx10,12 +.X "lesson scripts" +learn(1), \s-1USD\s0:2\*(tx1 +.X "letter, partial" +\s-1USD\s0:7\*(tx2,19 +.X "letter, upper case" +\s-1USD\s0:18\*(tx8, \s-1USD\s0:32\*(tx3, \s-1USD\s0:33\*(tx3, ctype(3), \s-1PS1\s0:18\*(tx19 +.X "letters, Greek" +eqn(1), \s-1USD\s0:25\*(tx4, \s-1USD\s0:26\*(tx1, \s-1USD\s0:27\*(tx9 +.X "letters, upper case and lower case" +\s-1USD\s0:17\*(tx10 +.X "level, command" +\s-1SMM\s0:17\*(tx1 +.X "level, diversion" +\s-1USD\s0:24\*(tx5,11,16 +.X "level, fragment" +fs(5)\*(tx2, \s-1SMM\s0:5\*(tx4, \s-1SMM\s0:14\*(tx5 +.X "level, nesting" +\s-1PS1\s0:5\*(tx11, \s-1PS2\s0:6\*(tx25 +.X "level numbers" +\s-1USD\s0:20\*(tx2, dump(5) +.X "level, recursive editing" +\s-1USD\s0:17\*(tx11,42 +.X "level, socket" +getsockopt(2), \s-1SMM\s0:13\*(tx13..14 +.X "level, stack" +\s-1USD\s0:5\*(tx3 +.X "level, user" +\s-1SMM\s0:13\*(tx28, \s-1SMM\s0:15\*(tx22 +.X "level zero dump" +restore(8)\*(tx3 +.X "levels, block" +\s-1SMM\s0:19\*(tx8 +.X "levels, dump" +dump(8) +.X "levels, log" +sendmail(8)\*(tx2, \s-1SMM\s0:7\*(tx8,15 +.X "levels, precedence" +\s-1PS1\s0:5\*(tx5, \s-1PS1\s0:15\*(tx14..15 +.X "levels, protocol" +getsockopt(2), \s-1SMM\s0:15\*(tx19 +.X "lex \*(tx generator of lexical analysis programs" +ctags(1), lex(1), yacc(1), \s-1USD\s0:19\*(tx6..8, \s-1PS1\s0:12\*(tx3,6,9, \s-1PS1\s0:15\*(tx7, \s-1PS1\s0:16, \s-1SMM\s0:12\*(tx4,8 +.X "lex actions" +\s-1PS1\s0:16\*(tx5..6 +.X "lex, awk performance comparison, wc, grep, egrep, fgrep, sed," +\s-1USD\s0:19\*(tx6 +.X "lex examples" +\s-1PS1\s0:16\*(tx9 +.X "lex files" +\s-1SMM\s0:12\*(tx4 +.X "lex internal array sizes" +\s-1PS1\s0:16\*(tx12 +.X "lex programs" +lex(1), \s-1USD\s0:19\*(tx6, \s-1PS1\s0:15\*(tx7, \s-1PS1\s0:16\*(tx1..3,8..9 +.X "lex regular expressions" +\s-1PS1\s0:16\*(tx3,12 +.X "lex rules" +\s-1PS1\s0:16\*(tx3,7..9 +.X "lex source program, compiling a" +\s-1PS1\s0:16\*(tx9 +.X "lexical analysis" +\s-1USD\s0:19\*(tx6, \s-1USD\s0:26\*(tx7, \s-1PS1\s0:15, \s-1PS1\s0:16\*(tx2,11, \s-1SMM\s0:19\*(tx3..6,10,13 +.X "lexical analyzer generator" +lex(1) +.X "lexical conventions" +\s-1PS1\s0:1, \s-1PS1\s0:5\*(tx2 +.X "lexical scope" +\s-1PS1\s0:1\*(tx25 +.X "lexical tie\*(txins" +\s-1PS1\s0:15\*(tx20 +.X "lexicographic comparison of strings" +string(3) +.X "lexpr functions" +\s-1PS2\s0:9\*(tx95 +.X "lex.yy.c" +lex(1), \s-1PS1\s0:16\*(tx9 +.X "lf file" +printcap(5), \s-1SMM\s0:6\*(tx3,5 +.X "lf77plot" +plot(3f) +.X "LFLAGS" +\s-1PS1\s0:12\*(tx6 +.X "lgamma \*(tx log gamma function" +lgamma(3m) +.X "LH left heading" +\s-1USD\s0:20\*(tx5 +.X "lib2648 \*(tx subroutines for the HP 2648 graphics terminal" +lib2648(3x)\*(tx1 +.X "libc (see also library, c)" +gethostbyname(3), intro(3)\*(tx1 +.X "LIBDIR" +\s-1SMM\s0:10\*(tx4,8,11 +.X "libm (see also library, math)" +intro(3)\*(tx1, math(3m)\*(tx1 +.X "libq \*(tx Equel run\*(txtime support library" +\s-1PS2\s0:10\*(tx68 +.X "libraries, standard" +ld(1) +.X "library, C" +cc(1)\*(tx1, hier(7)\*(tx6, intro(3)\*(tx1, \s-1PS1\s0:10\*(tx5, \s-1PS2\s0:3\*(tx13, \s-1PS2\s0:9\*(tx63, \s-1SMM\s0:1\*(tx22,48..49, \s-1SMM\s0:11\*(tx2, \s-1SMM\s0:12\*(tx2,15 +.X "library, curses" +\s-1PS1\s0:18\*(tx3 +.X "library, f77" +\s-1PS1\s0:2\*(tx6,9,14 +.X "Library, f77 I/O" +\s-1PS1\s0:2\*(tx27..28, \s-1PS1\s0:3, \s-1SMM\s0:12\*(tx7 +.X "library file format" +ar(5) +.X "library files" +ar(1) +.X "library, Fortran" +\s-1SMM\s0:1\*(tx48 +.X "library functions" +\s-1USD\s0:6\*(tx1,7, intro(3)\*(tx1, math(3m)\*(tx1 +.X "library functions, list of" +intro(3)\*(tx1, math(3m)\*(tx1 +.X "library, IMSL" +\s-1PS1\s0:2\*(tx13 +.X "library, I/O" +\s-1USD\s0:1\*(tx13, exit(2), \s-1PS1\s0:3, \s-1PS1\s0:16\*(tx9, \s-1PS2\s0:3\*(tx1..4,10,13, \s-1SMM\s0:1\*(tx23, \s-1SMM\s0:12\*(tx2,6..7 +.X "library, libq \*(tx Equel run\*(txtime support" +\s-1PS2\s0:10\*(tx68 +.X "library, math" +bc(1), intro(3)\*(tx1, \s-1SMM\s0:12\*(tx2,7,15..16 +.X "library, NAG" +\s-1PS1\s0:2\*(tx13 +.X "Library Package, Screen Updating and Cursor Movement Optimization: A" +\s-1PS2\s0:10\*(tx29 +.X "library, Project" +\s-1PS1\s0:13\*(tx1 +.X "library, ranlib \*(tx convert archives to random" +ranlib(1) +.X "library routines" +index(3f), \s-1SMM\s0:12\*(tx7 +.X "library, standalone I/O" +format(8v)\*(tx1 +.X "library, Standard I/O" +stdio(3s), \s-1PS1\s0:18\*(tx3, \s-1PS2\s0:3\*(tx2,12 +.X "lid values" +\s-1PS2\s0:10\*(tx23,29 +.X "Life, game of" +\s-1PS1\s0:18\*(tx24 +.X "ligature mode" +\s-1USD\s0:24\*(tx19 +.X "ligature, OE" +\s-1USD\s0:21\*(tx3 +.X "ligatures" +\s-1USD\s0:24\*(tx19 +.X "limit command" +\s-1USD\s0:4\*(tx23 +.X "limit, cpu time" +getrlimit(2), sigvec(2)\*(tx2, signal(3c)\*(tx1, vlimit(3c), \s-1PS1\s0:6\*(tx13 +.X "limit, file size" +sigvec(2)\*(tx2, signal(3c)\*(tx1, \s-1PS1\s0:6\*(tx13 +.X "limit, kernel" +select(2), \s-1SMM\s0:1\*(tx23 +.X "limit on the number of open files" +\s-1SMM\s0:1\*(tx23 +.X "limit shell command" +csh(1)\*(tx13 +.X "limit, stack size" +csh(1)\*(tx13 +.X "limit, statement" +pi(1), \s-1PS1\s0:4\*(tx15,26,36,48 +.X "limit, time" +select(2), \s-1SMM\s0:9\*(tx20 +.X "limitations, ex" +\s-1USD\s0:16\*(tx19 +.X "limitations, time daemon" +\s-1SMM\s0:8\*(tx2 +.X "limits, configuration of the virtual memory" +\s-1SMM\s0:1\*(tx23 +.X "limits, hard" +\s-1PS1\s0:6\*(tx22,32 +.X "limits, quota \*(tx display disc usage and" +quota(1) +.X "limits, resource" +csh(1)\*(tx13, execve(2), getrlimit(2), \s-1PS1\s0:6\*(tx2,13,22, \s-1SMM\s0:13\*(tx8,16 +.X "limits, soft" +intro(2)\*(tx2, \s-1PS1\s0:6\*(tx32, \s-1SMM\s0:1\*(tx50, \s-1SMM\s0:14\*(tx13 +.X "limits, system" +brk(2), open(2) +.X "limits, Tbl" +\s-1USD\s0:28\*(tx7 +.X "line, 1/2" +\s-1USD\s0:1\*(tx11, \s-1USD\s0:24\*(tx20 +.X "line addressing in ed" +\s-1USD\s0:12\*(tx1, \s-1USD\s0:13\*(tx2,7 +.X "line addressing primitives in ex" +\s-1USD\s0:16\*(tx4 +.X "line adjustment" +nroff(1), \s-1USD\s0:24\*(tx13 +.X "line, base" +\s-1USD\s0:24\*(tx22 +.X "line, beginning of a" +\s-1USD\s0:12\*(tx9 +.X "line boundary" +\s-1USD\s0:15\*(tx20, \s-1USD\s0:31\*(tx1 +.X "line, buffer" +\s-1USD\s0:14\*(tx17, \s-1USD\s0:17\*(tx39 +.X "line buffered stream" +setbuf(3s) +.X "line, communication" +dh(4), dhu(4), dz(4), tty(4)\*(tx1, \s-1PS1\s0:6\*(tx20,39, \s-1PS2\s0:4\*(tx5..6, \s-1SMM\s0:9\*(tx2, \s-1SMM\s0:18\*(tx1, \s-1SMM\s0:21\*(tx1..2 +.X "line, control" +\s-1PS1\s0:1\*(tx26..27 +.X "line control" +tty(4)\*(tx4, \s-1PS1\s0:1\*(tx28 +.X "line, current" +ed(1)\*(tx2, \s-1USD\s0:12\*(tx4 +.X "line, dial up" +\s-1USD\s0:15\*(tx17, open(2), remote(5), getty(8), makedev(8), \s-1SMM\s0:21\*(tx1..2 +.X "line disciplines" +bk(4), tb(4), tty(4)\*(tx1..3, pstat(8)\*(tx3, \s-1SMM\s0:13\*(tx3,9..10,32 +.X "line dot" +\s-1USD\s0:12\*(tx6,8, \s-1USD\s0:13\*(tx3,8,13..14 +.X "line, double horizontal" +\s-1USD\s0:28\*(tx4 +.X "line drawing" +\s-1USD\s0:24\*(tx21, \s-1USD\s0:26\*(tx1 +.X "line drawing functions" +\s-1USD\s0:24\*(tx2 +.X "line editing" +pty(4), tty(4)\*(tx3, \s-1PS1\s0:6\*(tx38 +.X "line editing characters" +window(1)\*(tx3, \s-1USD\s0:8\*(tx52, reboot(8)\*(tx2 +.X "line, end of a" +\s-1USD\s0:12\*(tx9 +.X "line, hardwired" +L\*(txdevices(5) +.X "line, header" +\s-1USD\s0:7\*(tx14, \s-1USD\s0:8\*(tx26,62,65,96, \s-1USD\s0:9\*(tx3, bugfiler(8), \s-1SMM\s0:7\*(tx12,18,32,36..37, \s-1SMM\s0:10\*(tx7,14, \s-1SMM\s0:16\*(tx5,8 +.X "line, horizontal" +\s-1USD\s0:22\*(tx6, \s-1USD\s0:23\*(tx7, \s-1USD\s0:28\*(tx4..5 +.X "line kill character" +more(1)\*(tx3, stty(1)\*(tx2, tset(1), \s-1USD\s0:4\*(tx11, \s-1USD\s0:13\*(tx4, tty(4)\*(tx7, \s-1PS1\s0:18\*(tx15 +.X "line, last" +ed(1)\*(tx2 +.X "line length and indenting" +\s-1USD\s0:24\*(tx14 +.X "line length in all environment, .ll Set" +\s-1USD\s0:23\*(tx7 +.X "line lengths" +roffbib(1), ms(7)\*(tx3, \s-1USD\s0:17\*(tx23, \s-1USD\s0:20\*(tx1, \s-1USD\s0:23\*(tx7, \s-1USD\s0:24\*(tx3,9,12..14,23, \s-1USD\s0:25\*(tx4,9, \s-1USD\s0:28\*(tx2,4,6, \s-1USD\s0:29\*(tx4, \s-1SMM\s0:7\*(tx32 +.X "line, long" +fold(1) +.X "line, Moving within a" +\s-1USD\s0:15\*(tx5 +.X "line, Multiple commands per" +\s-1USD\s0:16\*(tx4 +.X "line number mode" +\s-1USD\s0:24\*(tx23 +.X "line numbers" +cat(1), ed(1)\*(tx5, error(1)\*(tx1, grep(1), more(1), sed(1), \s-1USD\s0:12\*(tx4..8, \s-1USD\s0:13, \s-1USD\s0:14\*(tx10..11,14..17, \s-1USD\s0:15\*(tx22,25, \s-1USD\s0:16\*(tx2,13,16, \s-1USD\s0:17\*(tx38..39, \s-1USD\s0:18\*(tx3,10, \s-1USD\s0:24\*(tx23, dbx(5)\*(tx1, \s-1PS1\s0:1\*(tx28, \s-1PS1\s0:4\*(tx9,15,22,46, \s-1PS2\s0:6\*(tx3, \s-1PS2\s0:10\*(tx50,53, config(8), mknod(8), \s-1SMM\s0:2\*(tx4, \s-1SMM\s0:19\*(tx5,8 +.X "line numbers and the value of dot, default" +\s-1USD\s0:13\*(tx8 +.X "line numbers before each line on the display" +\s-1USD\s0:15\*(tx17 +.X "line operations" +\s-1USD\s0:15\*(tx8 +.X "line, options" +\s-1USD\s0:9\*(tx4 +.X "line, output text" +\s-1USD\s0:24\*(tx12..14 +.X "line printer administration" +\s-1SMM\s0:6\*(tx5 +.X "line printer daemon" +lpd(8), \s-1SMM\s0:6\*(tx2,5 +.X "line printer problems, troubleshooting" +\s-1SMM\s0:6\*(tx6 +.X "line printer spooler installation" +\s-1SMM\s0:6\*(tx3 +.X "line printer spooler manual, 4.3BSD" +\s-1SMM\s0:6 +.X "line printer spooling system messages" +syslog(3) +.X "line printer system" +va(4), vp(4), lpc(8), \s-1SMM\s0:1\*(tx34, \s-1SMM\s0:6\*(tx2,6 +.X "line printers" +colcrt(1), lpq(1), plot(1g), \s-1USD\s0:4\*(tx6,15,41, \s-1USD\s0:17\*(tx32, \s-1USD\s0:20\*(tx4, lp(4), printcap(5), \s-1PS1\s0:4\*(tx10,14,27, \s-1PS2\s0:1\*(tx2, \s-1PS2\s0:4\*(tx5..6, \s-1PS2\s0:10\*(tx31, lpc(8), \s-1SMM\s0:1\*(tx34, \s-1SMM\s0:2\*(tx10, \s-1SMM\s0:6\*(tx2,5, \s-1SMM\s0:12\*(tx16 +.X "line protocol" +\s-1SMM\s0:9\*(tx5,7, \s-1SMM\s0:21\*(tx2,4..5 +.X "line protocol selection" +\s-1SMM\s0:9\*(tx7, \s-1SMM\s0:21\*(tx4 +.X "line, recipient" +\s-1SMM\s0:7\*(tx12 +.X "line, scan" +\s-1USD\s0:8\*(tx62 +.X "line, source" +\s-1PS1\s0:11\*(tx6 +.X "line spacing" +me(7)\*(tx1, ms(7)\*(tx1, \s-1USD\s0:23\*(tx6, \s-1USD\s0:24\*(tx13, \s-1USD\s0:25\*(tx2..3,10 +.X "line speed" +\s-1PS1\s0:6\*(tx39 +.X "line speed changes" +tip(1c)\*(tx1 +.X "line, status" +ruptime(1c), sysline(1), termcap(5)\*(tx12 +.X "line, telephone" +\s-1USD\s0:14\*(tx4 +.X "line, terminal" +tip(1c)\*(tx2, bk(4), tty(4)\*(tx4, gettytab(5)\*(tx1, remote(5), ttys(5), getty(8), init(8), \s-1SMM\s0:1\*(tx1,19,33 +.X "line, tty" +getttyent(3), ttys(5), getty(8), slattach(8c), \s-1SMM\s0:6\*(tx3 +.X "Line\*(txdrawing" +\s-1USD\s0:24\*(tx4,21, \s-1USD\s0:26\*(tx1, plot(3f) +.X "linemd" +plot(3f) +.X "linemod" +plot(3x) +.X "line\*(txnumber counter" +\s-1USD\s0:18\*(tx3,5 +.X "lines, blank" +cat(1), sortbib(1), \s-1USD\s0:4\*(tx15, \s-1USD\s0:7\*(tx21, \s-1USD\s0:20\*(tx5, \s-1USD\s0:22\*(tx2..3, \s-1USD\s0:24\*(tx12..14,20,23, \s-1USD\s0:25\*(tx3, \s-1SMM\s0:7\*(tx10,17,37, \s-1SMM\s0:10\*(tx5,7,14, \s-1SMM\s0:16\*(tx7 +.X "lines, center input" +\s-1USD\s0:24\*(tx13 +.X "lines, copying" +\s-1USD\s0:12\*(tx4..5, \s-1USD\s0:13\*(tx15, \s-1USD\s0:14\*(tx14,21, \s-1USD\s0:16\*(tx9, \s-1USD\s0:31\*(tx9, termcap(5)\*(tx8, \s-1SMM\s0:7\*(tx28 +.X "lines, count" +wc(1) +.X "lines, delete" +\s-1USD\s0:12\*(tx5, \s-1USD\s0:14\*(tx14, \s-1USD\s0:18\*(tx4 +.X "lines, displays of" +\s-1USD\s0:20\*(tx4 +.X "lines, equally\*(txspaced words in adjusted" +\s-1USD\s0:24\*(tx2 +.X "lines, fields within" +\s-1USD\s0:19\*(tx6 +.X "lines, Fill subsequent output" +\s-1USD\s0:24\*(tx12 +.X "lines, Full width horizontal" +\s-1USD\s0:28\*(tx5 +.X "lines, input text" +\s-1USD\s0:24\*(tx12 +.X "lines, moving" +\s-1USD\s0:13\*(tx14..15, \s-1USD\s0:16\*(tx9 +.X "lines, non\*(txblank" +\s-1USD\s0:17\*(tx7 +.X "lines, partial" +\s-1USD\s0:24\*(tx12, \s-1USD\s0:25\*(tx13 +.X "lines, physical" +\s-1USD\s0:15\*(tx17, \s-1USD\s0:24\*(tx20 +.X "lines, Printers on serial" +\s-1SMM\s0:6\*(tx3 +.X "lines, range of" +\s-1USD\s0:13\*(tx9 +.X "lines, Recovering lost" +\s-1USD\s0:15\*(tx14 +.X "lines, repeated" +uniq(1) +.X "lines, serial" +dmf(4), tb(4), tu(4), slattach(8c), \s-1SMM\s0:6\*(tx3 +.X "lines, shifting" +\s-1USD\s0:16\*(tx13 +.X "lines, Single column horizontal" +\s-1USD\s0:28\*(tx5 +.X "lines, splitting" +\s-1USD\s0:13\*(tx6 +.X "lines, transpose two" +\s-1USD\s0:17\*(tx14 +.X "lines, vertical" +\s-1USD\s0:25\*(tx7, \s-1USD\s0:28\*(tx4 +.X "lineup" +\s-1USD\s0:27\*(tx6 +.X "linger interval" +getsockopt(2) +.X "linger on close" +\s-1PS1\s0:8\*(tx35 +.X "LINGER option" +\s-1SMM\s0:12\*(tx14, \s-1SMM\s0:13\*(tx14 +.X "lining up equations" +\s-1USD\s0:27\*(tx6 +.X "link" +mv(1), stat(2)\*(tx2 +.X "link \*(tx make a hard link to a file" +link(2) +.X "link \*(tx make a link to an existing file" +\s-1USD\s0:12\*(tx10 +.X "link counts" +find(1), stat(2)\*(tx2, fsck(8), \s-1SMM\s0:5\*(tx6..7 +.X "link editor ld" +ld(1), intro(3)\*(tx1, a.out(5), \s-1PS1\s0:5\*(tx1,6..7,10..11 +.X "link, point to point" +ifconfig(8c) +.X "link, symbolic" +rdist(1)\*(tx1, \s-1PS1\s0:6\*(tx28..30 +.X "linked list" +\s-1PS2\s0:3\*(tx11, \s-1PS2\s0:4\*(tx7, \s-1PS2\s0:6\*(tx19,29, \s-1PS2\s0:9\*(tx10, \s-1SMM\s0:13\*(tx21, \s-1SMM\s0:14\*(tx3 +.X "linked\*(txto file" +find(1), ln(1), ls(1), tar(5) +.X "link\*(txlayer interface" +ex(4), ix(4), \s-1SMM\s0:13\*(tx30 +.X "link(path1, path2)" +\s-1PS1\s0:6\*(tx30 +.X "links and renaming" +\s-1PS1\s0:6\*(tx30 +.X "links, cross\*(txdevice" +rename(2) +.X "links, hard" +find(1), ln(1), intro(2)\*(tx2..3, link(2), rename(2), stat(2)\*(tx1, tar(5), \s-1PS1\s0:6\*(tx29..30, \s-1SMM\s0:5\*(tx8 +.X "links, ln \*(tx make" +ln(1) +.X "links, point\*(txto\*(txpoint" +intro(4n)\*(tx3, routed(8c)\*(tx1, \s-1SMM\s0:8\*(tx2, \s-1SMM\s0:12\*(tx20, \s-1SMM\s0:13\*(tx22, \s-1SMM\s0:15\*(tx11,21 +.X "lint" +error(1)\*(tx1, jove(1)\*(tx1, lint(1), \s-1USD\s0:17\*(tx28, \s-1PS1\s0:9, \s-1PS1\s0:12\*(tx7, \s-1PS1\s0:15\*(tx21, \s-1SMM\s0:12\*(tx8, \s-1SMM\s0:19\*(tx24 +.X "lint \*(tx a C program verifier" +lint(1) +.X "Lint, a C Program Checker" +\s-1PS1\s0:9 +.X "lint options" +\s-1PS1\s0:9\*(tx10 +.X "lint the kernel" +\s-1SMM\s0:2\*(tx14 +.X "LINTLIBRARY" +lint(1) +.X "lisp \*(tx lisp interpreter" +lisp(1) +.X "lisp code" +vlp(1), \s-1USD\s0:16\*(tx16, \s-1PS2\s0:7\*(tx14, \s-1PS2\s0:9\*(tx4,80,87,135 +.X "lisp compilers" +\s-1PS2\s0:9\*(tx4,39,65,120,127 +.X "lisp data objects" +\s-1PS2\s0:9\*(tx3 +.X "Lisp Editor" +\s-1PS2\s0:9\*(tx4,140 +.X "Lisp expressions" +\s-1USD\s0:17\*(tx34, \s-1PS2\s0:9\*(tx4,71,85,98,101,116,119,140 +.X "lisp files" +\s-1SMM\s0:12\*(tx4 +.X "lisp functions" +\s-1PS2\s0:9\*(tx4,8,63,73,95,101,103,108,112,116,119 +.X "lisp interpreter" +lisp(1), \s-1PS2\s0:9\*(tx75,133,149 +.X "Lisp Manual, Franz" +\s-1PS2\s0:9 +.X "Lisp mode" +\s-1USD\s0:17\*(tx23,34,36, \s-1SMM\s0:12\*(tx5 +.X "lisp objects" +\s-1PS2\s0:9\*(tx4,8..9,20,28,30,61,75,105..108,111,154 +.X "lisp prettyprinter" +vlp(1) +.X "lisp programs" +ctags(1), \s-1USD\s0:15\*(tx15, \s-1USD\s0:17\*(tx23, \s-1PS2\s0:9\*(tx4,78,116,126,140 +.X "lisp runtime stack" +\s-1PS2\s0:9\*(tx49,73,79 +.X "Lisp s\*(txexpressions" +\s-1USD\s0:15\*(tx24 +.X "Lisp status variables" +\s-1PS2\s0:9\*(tx3 +.X "LISP system, FRANZ" +file(1), fp(1), lisp(1), liszt(1), \s-1USD\s0:15\*(tx15..16,23,25, \s-1PS2\s0:7\*(tx4,6,18,28, \s-1PS2\s0:9, \s-1SMM\s0:12\*(tx8 +.X "lisp\*(txmode" +\s-1USD\s0:17\*(tx36 +.X "List" +\s-1PS2\s0:9\*(tx104 +.X "list, access" +\s-1PS1\s0:13\*(tx5,8,13,20 +.X "list, address" +\s-1USD\s0:8\*(tx18,23,58,76, \s-1USD\s0:16\*(tx5 +.X "list, alias" +\s-1PS1\s0:8\*(tx11,13..14 +.X "list, argument" +execve(2), \s-1PS1\s0:2\*(tx13..14, \s-1PS2\s0:1\*(tx11, \s-1PS2\s0:3\*(tx8, \s-1PS2\s0:9\*(tx10,51,55,60,116,150, \s-1PS2\s0:10\*(tx50 +.X "list, assoc" +\s-1PS2\s0:9\*(tx32..33,103,154 +.X "list cells" +\s-1PS2\s0:9\*(tx7..10,13..19,32,35..37,57,93 +.X "list centered" +\s-1USD\s0:22\*(tx6 +.X "list, circular" +\s-1USD\s0:17\*(tx39 +.X "list command" +ed(1)\*(tx4, \s-1USD\s0:13\*(tx2, \s-1PS2\s0:9\*(tx147,150..151 +.X "list, dependency" +\s-1SMM\s0:12\*(tx2 +.X "list, digest" +\s-1USD\s0:8\*(tx87 +.X "list, disembodied property" +\s-1PS2\s0:9\*(tx27..28,34..35 +.X "list, distribution" +mail(1)\*(tx2 +.X "list, doubly linked" +insque(3) +.X "list, extraction" +restore(8)\*(tx2 +.X "list files" +spell(1), \s-1USD\s0:4\*(tx40 +.X "list, free" +systat(1)\*(tx2..3, vmstat(1), \s-1PS2\s0:5\*(tx5..6, \s-1PS2\s0:9\*(tx76, badsect(8), fsck(8), icheck(8), \s-1SMM\s0:13\*(tx11, \s-1SMM\s0:14\*(tx3..4,7, \s-1SMM\s0:15\*(tx24 +.X "list, group access" +access(2), getgroups(2), intro(2)\*(tx6..7, setgroups(2), initgroups(3) +.X "list, inode" +\s-1SMM\s0:5\*(tx6..8 +.X "list, input/output" +\s-1PS2\s0:6\*(tx8,10 +.X "list, .(l Begin" +\s-1USD\s0:23\*(tx4 +.X "list, linked" +\s-1PS2\s0:3\*(tx11, \s-1PS2\s0:4\*(tx7, \s-1PS2\s0:6\*(tx19,29, \s-1PS2\s0:9\*(tx10, \s-1SMM\s0:13\*(tx21, \s-1SMM\s0:14\*(tx3 +.X "list, mailing" +\s-1USD\s0:9\*(tx1..2, sendmail(8)\*(tx1, \s-1SMM\s0:7\*(tx11..12, \s-1SMM\s0:11\*(tx3,9, \s-1SMM\s0:16\*(tx2,4,7 +.X "list, message" +mail(1)\*(tx3..4, \s-1USD\s0:7\*(tx12,15..16,22, \s-1USD\s0:8\*(tx39 +.X "list, newsgroup" +\s-1USD\s0:9\*(tx2, \s-1SMM\s0:10\*(tx3,8 +.X "list object" +\s-1PS2\s0:9\*(tx13,19,55 +.X "list of JOVE commands and variables" +\s-1USD\s0:17\*(tx25 +.X "list of library functions" +intro(3)\*(tx1, math(3m)\*(tx1 +.X "list of mail commands" +\s-1USD\s0:7\*(tx12 +.X "list of mail customizing options" +\s-1USD\s0:7\*(tx17 +.X "list of mail options, commands, escape" +\s-1USD\s0:7\*(tx23 +.X "list of \*(txme macros, strings, register name" +\s-1USD\s0:23\*(tx11 +.X "list of MH commands" +mh(1)\*(tx2 +.X "list of mh commands and options" +\s-1USD\s0:8\*(tx106 +.X "list of MH user profile components" +\s-1USD\s0:8\*(tx9 +.X "list of ms macros" +ms(7)\*(tx1 +.X "list of \*(txms macros and register names" +\s-1USD\s0:20\*(tx7 +.X "list of names of journals, publishers, known to bib" +\s-1USD\s0:31\*(tx16 +.X "list of newsgroups" +\s-1USD\s0:9\*(tx7 +.X "list of string registers" +ms(7)\*(tx3 +.X "list of tbl command characters and words" +\s-1USD\s0:28\*(tx18 +.X "list of termcap capabilities" +termcap(5)\*(tx1 +.X "list of troff escape sequences for characters, indicators, ..." +\s-1USD\s0:24\*(tx6 +.X "list of troff number registers" +\s-1USD\s0:24\*(tx7 +.X "list of vi control characters" +\s-1USD\s0:15\*(tx22 +.X "list of vi file manipulation commands" +\s-1USD\s0:15\*(tx18 +.X "list owners" +\s-1SMM\s0:7\*(tx11, \s-1SMM\s0:12\*(tx22 +.X "list, option" +\s-1USD\s0:33\*(tx8, ip(4p), \s-1SMM\s0:9\*(tx3 +.X "list, property" +\s-1PS2\s0:7\*(tx29, \s-1PS2\s0:9\*(tx4,21..25,32..34,39,51,54,111,116,152..154 +.X "list, recipient" +mail(1)\*(tx5, \s-1USD\s0:7\*(tx9, \s-1SMM\s0:16\*(tx4..5 +.X "list, reference" +\s-1USD\s0:30\*(tx11, \s-1USD\s0:31\*(tx3,9..10 +.X "list, sorted" +look(1), \s-1USD\s0:4\*(tx5,8 +.X "list, spelling" +spell(1) +.X "list structure" +\s-1PS2\s0:9\*(tx14..15,18,33,116,147 +.X "list, subscription" +\s-1USD\s0:9\*(tx1..4, \s-1SMM\s0:10\*(tx13,23 +.X "list\*(txbuffers (C\*(txX C\*(txB)" +\s-1USD\s0:17\*(tx36 +.X "listcell, struct" +\s-1PS2\s0:9\*(tx105 +.X "listen \*(tx listen for connections on a socket" +listen(2), spp(4p), \s-1PS1\s0:7\*(tx14, \s-1PS1\s0:8\*(tx7, \s-1SMM\s0:15\*(tx8,15 +.X "listen for connections" +\s-1PS1\s0:6\*(tx34 +.X "listen(s, backlog)" +\s-1PS1\s0:6\*(tx34 +.X "listing, cross reference" +liszt(1), lxref(1) +.X "listing, program" +pc(1), pi(1), vgrind(1), \s-1PS1\s0:4\*(tx15,35 +.X "listing what's in the buffer" +\s-1USD\s0:14\*(tx9 +.X "listoffixnumscell, struct" +\s-1PS2\s0:9\*(tx105 +.X "list\*(txproceses" +\s-1USD\s0:17\*(tx37 +.X "listrefs \*(tx list reference items" +bib(1) +.X "liszt \*(tx compile a Franz Lisp program" +liszt(1), \s-1PS2\s0:9\*(tx4,120,124..125 +.X "literal atom" +\s-1PS2\s0:9\*(tx143,153 +.X "literal characters" +\s-1PS1\s0:6\*(tx38, \s-1PS1\s0:13\*(tx3, \s-1PS1\s0:15\*(tx2,7, \s-1PS2\s0:10\*(tx27 +.X "literal next character" +stty(1)\*(tx3, tty(4)\*(tx3 +.X "literature citations" +\s-1USD\s0:29\*(tx1 +.X "litout mode" +rlogin(1c), stty(1) +.X "LL line length" +\s-1USD\s0:20\*(tx5 +.X "ln \*(tx make links" +ln(1), \s-1SMM\s0:12\*(tx9 +.X "lnblnk" +index(3f) +.X "lo \*(tx software loopback network interface" +lo(4) +.X "load average" +ruptime(1c), sysline(1), uptime(1), w(1), rwhod(8c) +.X "load, disk" +\s-1SMM\s0:1\*(tx27,30 +.X "load map" +ld(1) +.X "load, system" +systat(1)\*(tx1, \s-1SMM\s0:7\*(tx15,32 +.X "loader option" +cc(1)\*(tx2 +.X "loading firmware" +ix(4), np(4) +.X "load\*(txon\*(txdemand programs" +ld(1) +.X "loc \*(tx return the address of an object" +\s-1USD\s0:12\*(tx10 +.X "local address" +\s-1SMM\s0:16\*(tx6 +.X "local aliases" +htable(8) +.X "local echo" +remote(5) +.X "local modification, Making" +\s-1SMM\s0:1\*(tx50 +.X "local motion" +\s-1USD\s0:24\*(tx2,20, \s-1USD\s0:25\*(tx5, \s-1USD\s0:27\*(tx8 +.X "local networks" +ruptime(1c), rwho(1c), hunt(6)\*(tx1, htable(8) +.X "local sites" +uucico(8c), \s-1SMM\s0:9\*(tx10 +.X "local subnetworks" +\s-1SMM\s0:1\*(tx39 +.X "local symbols" +ld(1) +.X "local variable" +dbx(5)\*(tx1, \s-1PS1\s0:10\*(tx3 +.X "localchars mode" +telnet(1c)\*(tx3 +.X "locality of reference" +\s-1SMM\s0:14\*(tx8 +.X "LOCALNAME" +\s-1SMM\s0:10\*(tx4 +.X "localtime" +ctime(3) +.X "location counter" +\s-1PS1\s0:5\*(tx4..5,8..11, \s-1SMM\s0:19\*(tx3,10,20 +.X "location, memory" +reboot(8)\*(tx2, \s-1SMM\s0:19\*(tx17 +.X "location, physical" +\s-1SMM\s0:19\*(tx11 +.X "location specifications" +\s-1PS2\s0:9\*(tx144,148,151 +.X "LOCK" +\s-1SMM\s0:12\*(tx9 +.X "lock \*(tx reserve a terminal" +lock(1) +.X "lock, acquire a" +\s-1PS1\s0:6\*(tx12 +.X "lock files" +binmail(1), lpq(1), lprm(1), lpd(8), \s-1SMM\s0:1\*(tx22, \s-1SMM\s0:9\*(tx6,9,18..20, \s-1SMM\s0:14\*(tx12 +.X "lock on a file, advisory read or write" +\s-1PS1\s0:6\*(tx31 +.X "lock, release a" +\s-1PS1\s0:6\*(tx12 +.X "locking, file" +chown(2), \s-1SMM\s0:14\*(tx12 +.X "locking mechanism" +sail(6)\*(tx1, creat(2), flock(2), open(2) +.X "locking, Non\*(txstrict" +\s-1PS1\s0:13\*(tx13 +.X "locking protocol" +tip(1c)\*(tx2, \s-1SMM\s0:1\*(tx22,35 +.X "locking, strict" +\s-1PS1\s0:13\*(tx2,13 +.X "locks, advisory" +close(2), flock(2), \s-1SMM\s0:14\*(tx2,12 +.X "locks, exclusive" +flock(2), \s-1SMM\s0:14\*(tx12 +.X "locks, hard" +\s-1SMM\s0:14\*(tx12 +.X "locks, non\*(txblocking" +flock(2) +.X "locks, shared" +flock(2), \s-1SMM\s0:14\*(tx12 +.X "Log" +bc(1), \s-1PS2\s0:10\*(tx77 +.X "log entry" +\s-1PS1\s0:13\*(tx2 +.X "log errors via syslog" +\s-1PS1\s0:8\*(tx19 +.X "log files" +script(1), hier(7)\*(tx5, syslog(3), implog(8c), \s-1SMM\s0:1\*(tx37, \s-1SMM\s0:6\*(tx3, \s-1SMM\s0:9\*(tx11,18, \s-1SMM\s0:10\*(tx9,18 +.X "log gamma" +lgamma(3m) +.X "log in to a remote system, call UNIX \*(tx" +tip(1c)\*(tx2 +.X "log levels" +sendmail(8)\*(tx2, \s-1SMM\s0:7\*(tx8,15 +.X "log, log10 \*(tx logarithm" +exp(3m) +.X "log, logger \*(tx make entries in the system" +logger(1) +.X "log messages" +\s-1PS1\s0:13\*(tx4..6,10,20..21 +.X "log messages and other information about RCS file, rlog \*(tx print" +\s-1PS1\s0:13\*(tx20 +.X "log, system" +logger(1), syslog(3), shutdown(8), \s-1SMM\s0:7\*(tx8 +.X "log, system error" +intro(4), dmesg(8) +.X "log1p" +asinh(3m) +.X "logarithm, log, log10 \*(tx" +exp(3m) +.X "logarithm, natural" +\s-1USD\s0:19\*(tx4, exp(3m) +.X "Logarithmic axis" +graph(1g) +.X "logger \*(tx make entries in the system log" +logger(1), \s-1SMM\s0:12\*(tx9 +.X "logging in and out" +\s-1USD\s0:1\*(tx1..3, \s-1USD\s0:14\*(tx4 +.X "logging option, syslog" +syslog(3) +.X "logging, uucp" +\s-1SMM\s0:9\*(tx18 +.X "logical expressions" +lint(1), \s-1USD\s0:25\*(tx11 +.X "logical operators" +\s-1USD\s0:19\*(tx6, \s-1PS2\s0:6\*(tx13, \s-1PS2\s0:10\*(tx35 +.X "logical quantities" +f77(1)\*(tx1 +.X "logical record length" +\s-1PS1\s0:3\*(tx3,9 +.X "logical records" +\s-1PS1\s0:3\*(tx3, \s-1PS2\s0:4\*(tx9 +.X "logical unit number" +\s-1SMM\s0:2\*(tx9 +.X "logical units" +\s-1PS1\s0:2\*(tx12, \s-1PS1\s0:3 +.X "logical values" +bit(3f) +.X "login" +csh(1)\*(tx13, rcp(1c), \s-1SMM\s0:12\*(tx9 +.X "login \*(tx Bourne shell command" +sh(1)\*(tx1 +.X "login \*(tx sign on" +login(1) +.X "login accounting file" +reboot(8)\*(tx1 +.X "login directory" +mail(1)\*(tx2, rcp(1c), rlogin(1c), uucp(1c), environ(7), \s-1USD\s0:1\*(tx10, \s-1USD\s0:3\*(tx4, \s-1USD\s0:4\*(tx21, \s-1USD\s0:7\*(tx4,6, adduser(8), \s-1SMM\s0:1\*(tx42, \s-1SMM\s0:9\*(tx3,21 +.X "login file (see also .login)" +\s-1USD\s0:4\*(tx20 +.X "login history" +last(1), hier(7)\*(tx4 +.X "login information" +\s-1SMM\s0:9\*(tx6,19 +.X "login message" +\s-1USD\s0:1\*(tx2, \s-1USD\s0:14\*(tx4, gettytab(5)\*(tx2 +.X "login name" +find(1), finger(1), talk(1), users(1), who(1), environ(7), hier(7)\*(tx5, \s-1USD\s0:1\*(tx2..3, \s-1USD\s0:4\*(tx7, \s-1USD\s0:7\*(tx2,5,10, \s-1USD\s0:14\*(tx4, \s-1USD\s0:17\*(tx37, getlog(3f), getlogin(3), gettytab(5), passwd(5), printcap(5), USERFILE(5), utmp(5), \s-1PS1\s0:13\*(tx9,13,20, \s-1PS2\s0:10\*(tx30,47, ac(8), adduser(8), fingerd(8c), getty(8), lpd(8), \s-1SMM\s0:6\*(tx5, \s-1SMM\s0:12\*(tx22, \s-1SMM\s0:16\*(tx6 +.X "login process" +\s-1USD\s0:14\*(tx4, gettytab(5)\*(tx2, \s-1PS1\s0:8\*(tx20,24, rlogind(8c), telnetd(8c) +.X "login prompt" +gettytab(5)\*(tx2 +.X "login, remote" +rlogind(8c) +.X "login, rlogin \*(tx remote" +rlogin(1c) +.X "login sequence" +ftp(1c)\*(tx5, \s-1USD\s0:14\*(tx4, \s-1SMM\s0:1\*(tx36 +.X "login server" +login(1), rlogind(8c) +.X "login shell" +csh(1)\*(tx1,13,19..20, finger(1), passwd(1), \s-1USD\s0:4\*(tx11,23,39..40, adduser(8), rexecd(8c) +.X "login time" +finger(1), w(1), who(1), \s-1USD\s0:11\*(tx13, getgid(2), \s-1PS1\s0:6\*(tx8, \s-1PS2\s0:10\*(tx26,54,64,67,72,74, rexecd(8c) +.X "login to a remote host" +telnet(1c)\*(tx1 +.X "logins, disabling" +shutdown(8) +.X "logins, uucp" +\s-1SMM\s0:9\*(tx21 +.X "logout command" +csh(1)\*(tx13, \s-1USD\s0:4\*(tx11,23 +.X "logout file (see .logout)" +.X "long file name" +\s-1SMM\s0:14\*(tx2,11 +.X "long lines" +fold(1) +.X "long lines on short terminal, printing" +\s-1USD\s0:13\*(tx2 +.X "long, short \*(tx integer object conversion" +long(3f) +.X "longjmp \*(tx non\*(txlocal goto" +sigreturn(2), setjmp(3), \s-1SMM\s0:12\*(tx15 +.X "longjmp botch" +setjmp(3), \s-1SMM\s0:12\*(tx15 +.X "longjmperror, routine" +setjmp(3), \s-1SMM\s0:12\*(tx15 +.X "longname(termbuf, name)" +\s-1PS1\s0:18\*(tx15 +.X "long\*(txrunning program" +nice(3c) +.X "look \*(tx find lines in a sorted list" +look(1) +.X "lookahead token" +\s-1PS1\s0:15\*(tx8..11,16..17 +.X "lookall command" +\s-1USD\s0:30\*(tx1 +.X "lookbib \*(tx find references in a bibliography" +lookbib(1), \s-1USD\s0:29\*(tx1,6 +.X "loop, aliasing" +\s-1SMM\s0:7\*(tx34,37 +.X "loop, break" +\s-1PS2\s0:9\*(tx46,81,116,139 +.X "loop, debug" +\s-1PS2\s0:9\*(tx139..140 +.X "loop detection message" +\s-1SMM\s0:22\*(tx10 +.X "loop forms" +\s-1PS2\s0:6\*(tx18..20 +.X "loop, idle" +\s-1SMM\s0:13\*(tx19 +.X "loopback interface" +intro(4n)\*(tx3, lo(4), \s-1SMM\s0:1\*(tx38, \s-1SMM\s0:11\*(tx5, \s-1SMM\s0:13\*(tx24,27 +.X "loopback, software" +lo(4) +.X "looping in the shell" +csh(1)\*(tx11 +.X "loops" +\s-1PS1\s0:2\*(tx18, \s-1PS2\s0:6\*(tx18..19 +.X "loops at the terminal" +\s-1USD\s0:4\*(tx32 +.X "loops, DO" +f77(1)\*(tx2 +.X "loops, enclosing" +\s-1PS2\s0:8\*(tx6 +.X "loops, infinite" +\s-1PS1\s0:4\*(tx26,36, \s-1PS2\s0:8\*(tx8, \s-1PS2\s0:9\*(tx78, \s-1SMM\s0:19\*(tx25 +.X "loops not entered at the top" +lint(1) +.X "lorder \*(tx find ordering relation for an object library" +lorder(1) +.X "lost+found directory" +fs(5)\*(tx3, fsck(8), mkfs(8), mklost+found(8) +.X "lower case letter" +\s-1USD\s0:6\*(tx5, \s-1USD\s0:8\*(tx47, ctype(3), tty(4)\*(tx4 +.X "lower case letters, upper case and" +\s-1USD\s0:17\*(tx10 +.X "lp \*(tx line printer" +lp(4) +.X "LP\*(tx11" +dmf(4) +.X "LPASS8" +tty(4)\*(tx7, \s-1SMM\s0:13\*(tx3,9 +.X "lpc \*(tx line printer control program" +lpc(8), \s-1SMM\s0:6\*(tx2, \s-1SMM\s0:12\*(tx20 +.X "lpd \*(tx line printer daemon" +printcap(5), lpd(8), \s-1SMM\s0:12\*(tx21 +.X "lpile \*(tx left\*(txjustified pile" +\s-1USD\s0:27\*(tx7 +.X "lpq \*(tx spool queue examination program" +lpq(1), \s-1SMM\s0:6\*(tx2 +.X "lpr \*(tx off line print" +lpr(1), \s-1USD\s0:4\*(tx40, syslog(3), \s-1SMM\s0:6\*(tx2, \s-1SMM\s0:12\*(tx9 +.X "lprm \*(tx remove jobs from the line printer spooling queue" +lprm(1), \s-1SMM\s0:6\*(tx2 +.X "lptest \*(tx generate lineprinter ripple pattern" +lptest(1) +.X "LR(1) parsing" +yacc(1) +.X "ls \*(tx list contents of directory" +ls(1), \s-1USD\s0:1\*(tx6, \s-1USD\s0:4\*(tx4,9, restore(8)\*(tx2 +.X "ls \*(txl" +\s-1USD\s0:1\*(tx5, \s-1USD\s0:3\*(tx2, \s-1USD\s0:4\*(tx5 +.X "lseek \*(tx move read/write pointer" +dup(2), lseek(2), \s-1SMM\s0:12\*(tx13 +.X "lseek pointer" +mkstr(1) +.X "lseek(fd, offset, type)" +\s-1PS1\s0:6\*(tx30 +.X "lstat \*(tx get file status" +ln(1), stat(2)\*(tx1, stat(3f)\*(tx1 +.X "lstat(path, stb)" +\s-1PS1\s0:6\*(tx29 +.X "L.sys \*(tx UUCP remote host description file" +L.sys(5)\*(tx1, L.aliases(5), \s-1SMM\s0:1\*(tx36, \s-1SMM\s0:9\*(tx6,10, \s-1SMM\s0:10\*(tx3,8,12,16..17,21,23..24 +.X "LT title length" +\s-1USD\s0:20\*(tx5 +.X "ltchars structure" +tty(4)\*(tx10 +.X "ltime \*(tx return system time" +time(3f) +.X "lvalue expression" +\s-1PS1\s0:1\*(tx4..8 +.X "lvalue operands" +\s-1PS1\s0:1\*(tx4,8 +.X "lxref \*(tx lisp cross reference program" +lxref(1) +.L M +.X "M\*(tx209 cipher machine" +\s-1SMM\s0:18\*(tx2 +.X "m4 built\*(txin macros, summary of" +\s-1PS1\s0:17\*(tx6 +.X "m4, divert the output of" +\s-1PS1\s0:17\*(tx4 +.X "M4 Macro Processor" +m4(1), \s-1PS1\s0:17 +.X "machine address" +\s-1PS1\s0:7\*(tx11 +.X "machine architecture" +\s-1SMM\s0:19\*(tx16,20,22 +.X "machine checks" +ik(4), crash(8v), \s-1SMM\s0:2\*(tx18, \s-1SMM\s0:13\*(tx19 +.X "machine halt or reboot" +\s-1PS1\s0:6\*(tx23 +.X "machine independent C code" +\s-1PS1\s0:9\*(tx1 +.X "machine instructions" +adb(1)\*(tx3, dbx(1)\*(tx6, \s-1PS1\s0:5\*(tx12, \s-1PS2\s0:1\*(tx8, \s-1PS2\s0:9\*(tx7,136 +.X "machine integers" +\s-1PS1\s0:1\*(tx2,16 +.X "machine model" +\s-1SMM\s0:19\*(tx14 +.X "machine names" +ftp(1c)\*(tx7, rcmd(3), L.aliases(5), rshd(8c), \s-1SMM\s0:11\*(tx6..8,14, \s-1SMM\s0:12\*(tx21 +.X "machine, target" +intro(2)\*(tx5, \s-1SMM\s0:19\*(tx2,11,23 +.X "machine type" +\s-1SMM\s0:2\*(tx2..4,7..8,15 +.X "machine units" +\s-1USD\s0:25\*(tx3,6,10 +.X "machine\*(txlevel debugging" +dbx(1)\*(tx6 +.X "machines, destination" +\s-1SMM\s0:21\*(tx2 +.X "machines, host" +gethostname(2) +.X "MacIntosh, Apple" +exp(3m) +.X "MacIntosh software development" +\s-1SMM\s0:12\*(tx23 +.X "Maclisp" +lisp(1), \s-1PS2\s0:9\*(tx29,73,83,97,111,125,136..137 +.X "Maclisp compatible array package" +\s-1PS2\s0:9\*(tx108,111 +.X "Maclisp compatible arrays" +\s-1PS2\s0:9\*(tx3,28 +.X "Maclisp syntax" +liszt(1) +.X "macro and string names" +\s-1USD\s0:24\*(tx14 +.X "macro, Append to" +\s-1USD\s0:24\*(tx16 +.X "macro arguments" +\s-1PS1\s0:17\*(tx3, \s-1SMM\s0:19\*(tx26 +.X "macro, backquote" +\s-1PS2\s0:9\*(tx99 +.X "macro, backquote character" +\s-1PS2\s0:9\*(tx10,99 +.X "macro calls" +m4(1), \s-1USD\s0:15\*(tx16, \s-1USD\s0:25\*(tx8..10, \s-1USD\s0:30\*(tx8 +.X "macro character" +\s-1USD\s0:15\*(tx23,25, \s-1PS2\s0:9\*(tx94..95 +.X "macro, Define or redefine the" +\s-1USD\s0:24\*(tx16 +.X "macro definitions" +bib(1), deroff(1), \s-1USD\s0:17\*(tx37,43, \s-1USD\s0:24\*(tx28, \s-1USD\s0:25\*(tx8,10..11, \s-1USD\s0:29\*(tx3, \s-1PS1\s0:1\*(tx26, \s-1PS1\s0:12\*(tx3..5, \s-1PS1\s0:16\*(tx6, \s-1PS2\s0:9\*(tx98,123..125,151, \s-1PS2\s0:10\*(tx26, \s-1SMM\s0:16\*(tx8, \s-1SMM\s0:19\*(tx26 +.X "macro, Divert output to" +\s-1USD\s0:24\*(tx17 +.X "macro expansions" +\s-1USD\s0:16\*(tx11, \s-1PS2\s0:9\*(tx38,98,120,123, \s-1SMM\s0:12\*(tx22 +.X "macro facilities" +\s-1USD\s0:4\*(tx15, \s-1USD\s0:15\*(tx16, \s-1USD\s0:25\*(tx7, \s-1USD\s0:26\*(tx2,7, \s-1PS2\s0:9\*(tx95, \s-1PS2\s0:10\*(tx19 +.X "macro function" +\s-1PS2\s0:9\*(tx73,89..90,94 +.X "macro invocations" +\s-1USD\s0:24\*(tx14, \s-1PS1\s0:12\*(tx3, \s-1PS2\s0:9\*(tx120 +.X "macro names" +m4(1), \s-1USD\s0:22\*(tx15, \s-1PS1\s0:12\*(tx3,6, \s-1PS1\s0:17\*(tx2..3, \s-1PS2\s0:6\*(tx5, \s-1PS2\s0:10\*(tx70 +.X "macro packages" +checknr(1), eqn(1), refer(1), \s-1USD\s0:1\*(tx1, \s-1USD\s0:2\*(tx5, \s-1USD\s0:20\*(tx6, \s-1USD\s0:25\*(tx1,8, \s-1USD\s0:30\*(tx8, \s-1USD\s0:31\*(tx10 +.X "macro packages for troff" +intro(7) +.X "macro preprocessor (see also preprocessor)" +cc(1)\*(tx2 +.X "macro processors" +ftp(1c)\*(tx2..3, m4(1), \s-1USD\s0:3\*(tx16, \s-1USD\s0:23\*(tx2, \s-1PS1\s0:12\*(tx1, \s-1PS1\s0:17\*(tx1, \s-1PS2\s0:10\*(tx20,27 +.X "macro, splicing" +\s-1PS2\s0:9\*(tx93 +.X "macro substitution" +\s-1PS1\s0:1\*(tx26, \s-1PS1\s0:9\*(tx6, \s-1PS2\s0:6\*(tx5 +.X "MACRO\*(tx32, DEC" +\s-1PS1\s0:5\*(tx12 +.X "macron" +\s-1USD\s0:21\*(tx3 +.X "macros" +checknr(1), \s-1USD\s0:23\*(tx1, \s-1USD\s0:24\*(tx3,14, \s-1USD\s0:25\*(tx7, \s-1USD\s0:27\*(tx8 +.X "macros \*(tx terminal monitor macro facility" +\s-1PS2\s0:10\*(tx18 +.X "macros, alias" +window(1)\*(tx5 +.X "macros, built\*(txin" +m4(1) +.X "macros, character" +\s-1PS2\s0:9\*(tx3,87,92,95,99 +.X "macros, defining" +\s-1USD\s0:22\*(tx15 +.X "macros, ditroff\*(txspecific \*(txme" +\s-1USD\s0:23\*(tx12 +.X "macros, example of" +\s-1USD\s0:25\*(tx8 +.X "macros, footer" +\s-1USD\s0:24\*(tx22,28..29, \s-1USD\s0:25\*(tx9 +.X "macros for man" +hier(7)\*(tx4 +.X "macros for preparing documents" +\s-1USD\s0:20\*(tx1 +.X "macros, formatting" +\s-1USD\s0:2\*(tx1,5, \s-1USD\s0:31\*(tx12, \s-1USD\s0:32\*(tx10 +.X "macros, keyboard" +\s-1USD\s0:17\*(tx2,24,32,37,39,45..46 +.X "macros, \*(txme" +bib(1), \s-1USD\s0:22\*(tx19, \s-1USD\s0:23\*(tx2,10..11 +.X "macros, \*(txms" +bib(1), vgrind(1), ms(7)\*(tx1, \s-1USD\s0:20\*(tx1..8, \s-1USD\s0:29\*(tx7,9, \s-1USD\s0:30\*(tx7..8, hier(7)\*(tx4 +.X "macros, paragraph" +\s-1USD\s0:15\*(tx10, \s-1USD\s0:23\*(tx2, \s-1USD\s0:24\*(tx29, \s-1USD\s0:25\*(tx8,10, \s-1USD\s0:29\*(tx7 +.X "macros, summary of m4 built\*(txin" +\s-1PS1\s0:17\*(tx6 +.X "macros, troff" +\s-1USD\s0:30\*(tx1, \s-1USD\s0:31\*(tx10,13, hier(7)\*(tx4 +.X "macros with arguments" +\s-1USD\s0:25\*(tx10 +.X "MACS configuration" +L\*(txdevices(5), \s-1SMM\s0:9\*(tx13 +.X "madd \*(tx multiple precision integer arithmetic" +mp(3x) +.X "madvise(addr, len, behav)" +\s-1PS1\s0:6\*(tx11 +.X "magic cookie" +fseek(3s), termcap(5)\*(tx10,13 +.X "magic number, executable file" +\s-1PS1\s0:10\*(tx9 +.X "magic numbers" +adb(1)\*(tx5, ld(1), \s-1USD\s0:4\*(tx37, intro(2)\*(tx1, a.out(5)\*(tx1, ar(5), \s-1PS2\s0:3\*(tx13, \s-1SMM\s0:1\*(tx23,64 +.X "magic options" +\s-1USD\s0:16\*(tx13 +.X "magnetic tape I/O (see also tape)" +\s-1PS1\s0:3\*(tx8 +.X "magnetic tape manipulating" +mt(1) +.X "magnetic tapes" +\s-1PS1\s0:6\*(tx24,39, \s-1PS2\s0:1\*(tx3, \s-1PS2\s0:4\*(tx5, \s-1PS2\s0:5\*(tx1, dump(8), rrestore(8c) +.X "magtape drives" +mtio(4) +.X "magtape, MASSBUS" +ht(4) +.X "mail" +sh(1)\*(tx2, \s-1USD\s0:3\*(tx9, \s-1SMM\s0:12\*(tx9 +.X "mail \*(tx send and receive mail" +mail(1)\*(tx1 +.X "mail addressing" +mailaddr(7)\*(tx1 +.X "mail aliases file" +newaliases(1) +.X "mail aliasing" +\s-1USD\s0:7\*(tx5 +.X "mail arrival notification" +biff(1) +.X "mail commands" +binmail(1), mail(1)\*(tx4, xsend(1), \s-1USD\s0:4\*(tx3,9,17, \s-1USD\s0:7\*(tx2..5,13,16, \s-1USD\s0:9\*(tx3, \s-1SMM\s0:10\*(tx23, \s-1SMM\s0:17\*(tx3 +.X "mail commands, list of" +\s-1USD\s0:7\*(tx12 +.X "mail customizing options, list of" +\s-1USD\s0:7\*(tx17 +.X "mail delivery" +\s-1USD\s0:8\*(tx75, \s-1SMM\s0:16\*(tx3 +.X "mail, Disposing of" +mail(1)\*(tx1 +.X "mail drop box" +\s-1USD\s0:8\*(tx82 +.X "mail drop format" +\s-1USD\s0:8\*(tx55 +.X "mail drops" +\s-1USD\s0:8\*(tx2,26,41 +.X "mail, electronic" +\s-1USD\s0:8\*(tx2, \s-1USD\s0:9\*(tx2, \s-1SMM\s0:11\*(tx4 +.X "mail \*(txf" +\s-1USD\s0:7\*(tx5,7,11, \s-1USD\s0:9\*(tx5 +.X "mail file" +binmail(1), mail(1)\*(tx3, sh(1)\*(tx2, \s-1USD\s0:7\*(tx14 +.X "mail forwarding" +aliases(5) +.X "mail, glossary of terms peculiar to" +\s-1USD\s0:7\*(tx22 +.X "mail group" +\s-1SMM\s0:11\*(tx3,9 +.X "mail, inc \*(tx incorporate new" +\s-1USD\s0:8\*(tx26 +.X "mail, incoming" +rmail(1), \s-1USD\s0:4\*(tx11, \s-1USD\s0:7\*(tx2, \s-1USD\s0:8\*(tx2,26, \s-1USD\s0:17\*(tx37, comsat(8c), \s-1SMM\s0:16\*(tx6 +.X "mail messages" +binmail(1), fmt(1), \s-1USD\s0:8\*(tx35, \s-1SMM\s0:7\*(tx25 +.X "mail messages, format of" +\s-1USD\s0:7\*(tx20 +.X "mail, Network" +mail(1)\*(tx2, \s-1USD\s0:8\*(tx64 +.X "mail options, commands, escapes, list of" +\s-1USD\s0:7\*(tx23 +.X "mail, outgoing" +mail(1)\*(tx6, \s-1USD\s0:7\*(tx19, \s-1USD\s0:8\*(tx101 +.X "mail programs" +binmail(1), mail(1)\*(tx1..2,7, environ(7), \s-1USD\s0:7, \s-1USD\s0:8\*(tx85, \s-1USD\s0:9\*(tx5..6, \s-1USD\s0:11\*(tx8,12, \s-1SMM\s0:7\*(tx24,30, \s-1SMM\s0:10\*(tx23..24 +.X "mail queue" +sendmail(8)\*(tx3, \s-1SMM\s0:7\*(tx6..10,28,38 +.X "mail reading" +\s-1USD\s0:7\*(tx7, \s-1SMM\s0:12\*(tx23 +.X "mail, record all outgoing" +mail(1)\*(tx6 +.X "Mail Reference Manual" +\s-1USD\s0:7 +.X "mail, replying to" +mail(1)\*(tx1 +.X "mail, sending" +mail(1)\*(tx1, \s-1USD\s0:1\*(tx1 +.X "mail shell variable" +csh(1)\*(tx17 +.X "mail signature" +\s-1USD\s0:8\*(tx87 +.X "mail, startup file for" +hier(7)\*(tx5 +.X "mail system" +mailaddr(7), \s-1USD\s0:7\*(tx2, \s-1USD\s0:9\*(tx5, syslog(3), \s-1SMM\s0:7\*(tx1,26, \s-1SMM\s0:16\*(tx1,8,11 +.X "mail system, Setting up the" +\s-1SMM\s0:1\*(tx35 +.X "mail to files and programs" +\s-1SMM\s0:16\*(tx6 +.X "mail traffic" +\s-1SMM\s0:2\*(tx13, \s-1SMM\s0:7\*(tx7 +.X "MAIL variable" +biff(1) +.X "mail, xsend, xget, enroll \*(tx secret" +xsend(1) +.X "mailaddr \*(tx mail addressing description" +mailaddr(7)\*(tx1 +.X "mailbox file" +csh(1)\*(tx17, from(1), mail(1)\*(tx3, comsat(8c) +.X "mailbox, system" +mail(1)\*(tx3..5, \s-1USD\s0:7\*(tx2..7,14..18 +.X "mailbox (variable)" +\s-1USD\s0:17\*(tx37 +.X "mail\*(txcheck\*(txfrequency (variable)" +\s-1USD\s0:17\*(tx37 +.X "maildelivery file" +\s-1USD\s0:8\*(tx35..38 +.X "MailDrop" +\s-1USD\s0:8\*(tx27,87..88 +.X "mailer declarations" +\s-1SMM\s0:16\*(tx8 +.X "mailer definitions" +\s-1SMM\s0:7\*(tx17,23,32, \s-1SMM\s0:16\*(tx5,8 +.X "mailer descriptions" +\s-1SMM\s0:7\*(tx26..27,32 +.X "mailer descriptor" +\s-1SMM\s0:7\*(tx12,24 +.X "mailer flags" +\s-1SMM\s0:7\*(tx23,26 +.X "mailer, outgoing" +\s-1SMM\s0:7\*(tx26,30 +.X "mailers" +\s-1USD\s0:11\*(tx8,12, \s-1SMM\s0:7\*(tx32, \s-1SMM\s0:16\*(tx5 +.X "mailing a binary file" +uuencode(1c) +.X "mailing addresses" +\s-1SMM\s0:10\*(tx10, \s-1SMM\s0:11\*(tx7 +.X "mailing lists" +\s-1USD\s0:9\*(tx1..2, sendmail(8)\*(tx1, \s-1SMM\s0:7\*(tx11..12, \s-1SMM\s0:11\*(tx3,9, \s-1SMM\s0:16\*(tx2,4,7 +.X "mailq command" +\s-1SMM\s0:7\*(tx8..9 +.X "main(argc, argv, envp)" +execve(2), execl(3) +.X "maintaining a group of related files" +\s-1USD\s0:4\*(tx25 +.X "Maintaining Computer Programs" +make(1)\*(tx2, \s-1PS1\s0:12 +.X "Maintaining Different Versions (Branches)" +\s-1PS1\s0:14\*(tx9 +.X "maintaining folders" +\s-1USD\s0:7\*(tx6 +.X "maintenance, software" +patch(1)\*(tx1, rdist(1)\*(tx1, \s-1SMM\s0:21\*(tx1,5..6 +.X "maintenance, symbol table" +\s-1SMM\s0:19\*(tx3,5,7 +.X "maintenance, system" +intro(1), \s-1SMM\s0:2\*(tx2 +.X "maintenance utilities, data and" +hier(7)\*(tx1 +.X "major device number" +\s-1PS1\s0:6\*(tx28, config(8) +.X "major modes" +\s-1USD\s0:17\*(tx2,16,22 +.X "Make \*(tx A Program for Maintaining Computer Programs" +error(1)\*(tx1, \s-1USD\s0:4\*(tx40, \s-1USD\s0:17\*(tx28,48, \s-1PS1\s0:12, \s-1PS1\s0:13\*(tx4, \s-1PS1\s0:14\*(tx10, \s-1SMM\s0:12\*(tx9 +.X "make \*(tx maintain program groups" +make(1)\*(tx1 +.X "make \*(tx suggestions and warnings" +\s-1PS1\s0:12\*(tx8 +.X "make command usage" +\s-1PS1\s0:12\*(tx5 +.X "make default rules" +\s-1PS1\s0:12\*(tx9 +.X "make depend" +\s-1SMM\s0:2\*(tx5 +.X "make directory" +\s-1USD\s0:4\*(tx20 +.X "make\*(txbackup\*(txfiles (variable)" +\s-1USD\s0:17\*(tx37 +.X "make\*(txbuffer\*(txunmodified" +\s-1USD\s0:17\*(tx37 +.X "makedev \*(tx make system special files" +makedev(8) +.X "Makefile" +make(1), sccs(1)\*(tx2, \s-1USD\s0:4\*(tx40, \s-1PS1\s0:12\*(tx4..5, \s-1PS1\s0:14\*(tx11, config(8), \s-1SMM\s0:2\*(tx5, \s-1SMM\s0:9\*(tx17, \s-1SMM\s0:10\*(tx1..2,7,10,20..22, \s-1SMM\s0:12\*(tx2 +.X "makekey \*(tx generate encryption key" +makekey(8) +.X "make\*(txmacro\*(txinteractive" +\s-1USD\s0:17\*(tx37 +.X "malloc, free, falloc \*(tx memory allocator" +malloc(3f) +.X "malloc, free, realloc, calloc, alloca \*(tx memory allocator" +malloc(3), end(3), \s-1SMM\s0:12\*(tx15 +.X "man \*(tx find manual information by keywords" +man(1), \s-1USD\s0:1\*(tx4, \s-1USD\s0:3\*(tx13..14, \s-1USD\s0:4\*(tx40, \s-1SMM\s0:12\*(tx9 +.X "man \*(tx macros to typeset manual" +hier(7)\*(tx4, man(7) +.X "MANPATH, environment variable" +\s-1SMM\s0:12\*(tx9 +.X "mantissa" +frexp(3) +.X "manual, man \*(tx macros to typeset" +man(7) +.X "manual pages" +intro(1), man(1), hier(7)\*(tx4, \s-1USD\s0:4\*(tx34,40, \s-1USD\s0:17\*(tx38, \s-1PS1\s0:7\*(tx14,19, catman(8), \s-1SMM\s0:1\*(tx19, \s-1SMM\s0:10\*(tx11, \s-1SMM\s0:12\*(tx9 +.X "manual, print out the" +man(1) +.X "manual sections" +apropos(1), man(1), whatis(1), whereis(1), \s-1USD\s0:1\*(tx4, \s-1USD\s0:3\*(tx13, \s-1PS1\s0:4\*(tx2,26, catman(8) +.X "manuals, source for" +man(1) +.X "map, block" +\s-1SMM\s0:5\*(tx4, \s-1SMM\s0:14\*(tx5,7 +.X "map commands" +\s-1USD\s0:15\*(tx13,16, \s-1USD\s0:16\*(tx4,8 +.X "map, data" +\s-1PS1\s0:10\*(tx15 +.X "map file" +\s-1PS2\s0:9\*(tx66,81, \s-1SMM\s0:14\*(tx2 +.X "map, load" +ld(1) +.X "map, private page" +crash(8v)\*(tx2, \s-1SMM\s0:15\*(tx4,24 +.X "map registers" +\s-1SMM\s0:2\*(tx16,20,22, \s-1SMM\s0:13\*(tx33, \s-1SMM\s0:15\*(tx12..13 +.X "map3270 \*(tx database for mapping ASCII keystrokes into IBM 3270 keys" +map3270(5)\*(tx1 +.X "MAP3270 environment variable" +mset(1) +.X "mapped pages" +\s-1PS1\s0:6\*(tx10 +.X "mapped region with the file it map, synchronize a" +\s-1PS1\s0:6\*(tx11 +.X "mapping, address" +arp(4p), \s-1SMM\s0:1\*(tx42, \s-1SMM\s0:16\*(tx1 +.X "mapping, filename" +ftp(1c)\*(tx3 +.X "mapping files" +\s-1PS1\s0:6\*(tx24 +.X "mapping host names to addresses" +htable(8) +.X "mapping, kernel memory" +adb(1)\*(tx1 +.X "mapping network names to numbers" +htable(8) +.X "mapping, newline" +\s-1PS1\s0:18\*(tx8,13 +.X "mapping pages" +\s-1PS1\s0:6\*(tx10 +.X "mapping, Upper case" +tip(1c)\*(tx3 +.X "margin character" +\s-1USD\s0:24\*(tx25 +.X "margin from one on each page, .n1 Number lines in" +\s-1USD\s0:23\*(tx6 +.X "margin, header" +ms(7)\*(tx3 +.X "margin, numbers at the left\*(txhand" +\s-1USD\s0:21\*(tx2 +.X "margin, right" +\s-1USD\s0:20\*(tx5 +.X "margins" +\s-1USD\s0:20\*(tx2 +.X "mark command" +ed(1)\*(tx4, \s-1USD\s0:8\*(tx2,28,43,100, \s-1USD\s0:13\*(tx14, \s-1USD\s0:16\*(tx5 +.X "mark horizontal place" +\s-1USD\s0:24\*(tx21 +.X "mark messages" +\s-1USD\s0:8\*(tx28 +.X "mark names" +\s-1USD\s0:13\*(tx14 +.X "mark, Set the" +\s-1USD\s0:17\*(tx6 +.X "mark the current vertical place" +\s-1USD\s0:24\*(tx11 +.X "marked lines" +\s-1USD\s0:13\*(tx14, \s-1USD\s0:15\*(tx12, \s-1USD\s0:16\*(tx5 +.X "markers, end" +\s-1USD\s0:32\*(tx3,10..11 +.X "marking and returning" +\s-1USD\s0:15\*(tx12 +.X "marks" +\s-1USD\s0:16\*(tx8, \s-1USD\s0:17\*(tx43, \s-1USD\s0:27\*(tx6 +.X "marks, accent" +\s-1USD\s0:20\*(tx6, \s-1USD\s0:21\*(tx3, \s-1USD\s0:29\*(tx6 +.X "marks, cut" +ms(7)\*(tx1, \s-1USD\s0:23\*(tx2, \s-1USD\s0:24\*(tx28 +.X "marks, Diacritical" +eqn(1), \s-1USD\s0:21\*(tx3, \s-1USD\s0:23\*(tx9, \s-1USD\s0:26\*(tx4, \s-1USD\s0:27\*(tx5 +.X "marks, quotation" +\s-1USD\s0:21\*(tx2 +.X "marks, stack of" +\s-1USD\s0:17\*(tx6 +.X "marks, tape" +tcopy(1), mtio(4) +.X "marks\*(txshould\*(txfloat (variable)" +\s-1USD\s0:17\*(tx38 +.X "mark\*(txthreshold (variable)" +\s-1USD\s0:17\*(tx37 +.X "mask, file mode creation" +mkdir(2), umask(2) +.X "mask, mode" +creat(2), mkdir(2), mknod(2) +.X "mask, network" +inet(4f), \s-1SMM\s0:1\*(tx39, \s-1SMM\s0:13\*(tx22..23 +.X "mask of blocked signals" +\s-1PS1\s0:6\*(tx14 +.X "masked signals" +sigblock(2), sigsetmask(2) +.X "masks, signal" +execve(2), sigsetmask(2), sigvec(2), setjmp(3), siginterrupt(3), \s-1PS1\s0:6\*(tx14, \s-1SMM\s0:13\*(tx19 +.X "mass" +\s-1USD\s0:3\*(tx22, \s-1SMM\s0:10\*(tx6 +.X "Mass Storage Control Protocol (MSCP)" +uda(4)\*(tx1 +.X "mass storage devices" +\s-1SMM\s0:14\*(tx7 +.X "MASSBUS" +autoconf(4), intro(4), mtio(4), bad144(8), reboot(8)\*(tx2, \s-1SMM\s0:1\*(tx3..4,24, \s-1SMM\s0:13\*(tx34, \s-1SMM\s0:14\*(tx9 +.X "MASSBUS adapters" +autoconf(4), \s-1SMM\s0:1\*(tx2..4, \s-1SMM\s0:2\*(tx9 +.X "MASSBUS device drivers and related code, /sys/vaxmba VAX" +\s-1SMM\s0:1\*(tx26 +.X "MASSBUS devices" +autoconf(4), intro(4), \s-1SMM\s0:1\*(tx4, \s-1SMM\s0:2\*(tx10,16 +.X "MASSBUS disks" +autoconf(4), hp(4)\*(tx1, format(8v)\*(tx1, reboot(8)\*(tx2, \s-1SMM\s0:2\*(tx12 +.X "MASSBUS magtape" +ht(4) +.X "Master Acknowledgement" +\s-1SMM\s0:22\*(tx4 +.X "Master Active Message" +\s-1SMM\s0:22\*(tx4..5 +.X "Master Candidature Message" +\s-1SMM\s0:22\*(tx5,7 +.X "master copies" +rdist(1) +.X "master device" +pty(4) +.X "master host" +rdist(1)\*(tx3, \s-1SMM\s0:7\*(tx24 +.X "Master Request Message" +\s-1SMM\s0:22\*(tx3..6 +.X "master servers" +timed(8), \s-1SMM\s0:1\*(tx41, \s-1SMM\s0:6\*(tx2, \s-1SMM\s0:11\*(tx2 +.X "Master Site Message" +\s-1SMM\s0:22\*(tx9 +.X "master time daemons" +timedc(8), \s-1SMM\s0:8\*(tx2 +.X "match, template" +\s-1SMM\s0:19\*(tx15,19,21,23 +.X "matches, address" +\s-1USD\s0:18\*(tx4..5 +.X "matches, exact" +\s-1USD\s0:14\*(tx10..11, \s-1USD\s0:30\*(tx1 +.X "matches, expression" +\s-1USD\s0:16\*(tx14, \s-1USD\s0:18\*(tx3, \s-1USD\s0:19\*(tx6 +.X "matches, pattern" +\s-1USD\s0:1\*(tx7, \s-1USD\s0:3\*(tx7, \s-1USD\s0:18\*(tx2,8, \s-1USD\s0:32\*(tx7, \s-1SMM\s0:16\*(tx9 +.X "matching, parenthesis" +\s-1USD\s0:17\*(tx23 +.X "matching, pattern" +awk(1), csh(1)\*(tx7, \s-1USD\s0:12\*(tx9, regex(3) +.X "match\*(txregular\*(txexpressions (variable)" +\s-1USD\s0:17\*(tx38 +.X "math \*(tx introduction to mathematical library functions" +math(3m)\*(tx1 +.X "math library" +bc(1), intro(3)\*(tx1, \s-1SMM\s0:12\*(tx2,7,15..16 +.X "mathematical conventions" +\s-1USD\s0:26\*(tx2, \s-1USD\s0:27\*(tx5,7 +.X "mathematical expressions" +\s-1USD\s0:26\*(tx2, \s-1USD\s0:27\*(tx1..2 +.X "mathematical symbols" +\s-1USD\s0:27\*(tx1..2 +.X "mathematics, eqn, neqn, checkeq \*(tx typeset" +eqn(1) +.X "mathematics, typesetting" +eqn(1), \s-1USD\s0:26, \s-1USD\s0:27 +.X "matrix" +\s-1USD\s0:26\*(tx4, \s-1USD\s0:27\*(tx7 +.X "matrix, transpose a two dimensional" +\s-1PS1\s0:2\*(tx13 +.X "MAXHOSTNAMELEN" +gethostname(2), \s-1SMM\s0:13\*(tx4 +.X "maximum number of active shared text segments" +\s-1SMM\s0:2\*(tx30 +.X "maximum number of processes" +\s-1SMM\s0:2\*(tx30 +.X "MAXNAMLEN" +dir(5) +.X "Maxpages" +\s-1PS2\s0:10\*(tx24,78 +.X "MAXPATHLEN" +intro(2)\*(tx6, chdir(3f), chmod(3f), getcwd(3f), link(3f), rename(3f) +.X "MAXUPRC" +fork(2) +.X "MAXUSERS" +\s-1SMM\s0:2\*(tx30..31 +.X "mbox, file" +mail(1)\*(tx1,3, \s-1USD\s0:7\*(tx4..6,14,16 +.X "mbuf, allocate an" +\s-1SMM\s0:15\*(tx5 +.X "mbuf chains" +\s-1SMM\s0:15\*(tx5..7,14..15,18 +.X "mbuf cluster" +\s-1SMM\s0:13\*(tx13,30 +.X "mbuf statistics" +netstat(1), systat(1)\*(tx2 +.X "mbuf structure" +\s-1SMM\s0:15\*(tx24 +.X "mbuf types" +\s-1SMM\s0:12\*(tx9, \s-1SMM\s0:13\*(tx14 +.X "mbuf utilization" +systat(1)\*(tx1 +.X "mbufs" +hdh(4), crash(8v)\*(tx2, \s-1SMM\s0:15\*(tx4..5 +.X "mclear(sem)" +\s-1PS1\s0:6\*(tx12 +.X "mcmp \*(tx multiple precision integer arithmetic" +mp(3x) +.X "mdiv \*(tx multiple precision integer arithmetic" +mp(3x) +.X "me \*(tx macros for formatting papers" +bib(1), vgrind(1), me(7)\*(tx1 +.X "media, VAX console" +arff(8v) +.X "mem, kmem \*(tx main memory" +mem(4) +.X "memory allocation" +csh(1)\*(tx10, fopen(3s), malloc(3), valloc(3c), \s-1SMM\s0:1\*(tx23, \s-1SMM\s0:13\*(tx9,13 +.X "memory behavior" +\s-1PS1\s0:6\*(tx11 +.X "memory controllers" +autoconf(4), \s-1SMM\s0:1\*(tx25, \s-1SMM\s0:13\*(tx18 +.X "memory faults" +\s-1USD\s0:3\*(tx18 +.X "memory image" +f77(1)\*(tx1, core(5), \s-1PS1\s0:2\*(tx6, \s-1PS1\s0:6\*(tx8,13, \s-1PS1\s0:11\*(tx2,4, \s-1PS2\s0:1\*(tx7..8,11, \s-1SMM\s0:7\*(tx38, \s-1SMM\s0:16\*(tx5 +.X "memory image file, core \*(tx format of" +core(5) +.X "memory, interleaved" +\s-1SMM\s0:1\*(tx14 +.X "memory, kernel" +\s-1SMM\s0:1\*(tx21 +.X "memory location" +reboot(8)\*(tx2, \s-1SMM\s0:19\*(tx17 +.X "memory management" +\s-1PS1\s0:6\*(tx10,41, \s-1SMM\s0:15\*(tx4,24 +.X "memory, mem, kmem \*(tx main" +mem(4) +.X "memory pages" +getrusage(2), vtimes(3c), \s-1SMM\s0:15\*(tx14 +.X "memory, physical" +getrlimit(2), vlimit(3c), mem(4), \s-1SMM\s0:2\*(tx27,31..32, \s-1SMM\s0:13\*(tx15..16 +.X "memory, primary" +\s-1PS2\s0:4 +.X "memory, real" +ps(1)\*(tx2, vmstat(1), \s-1SMM\s0:1\*(tx12 +.X "memory, secondary" +\s-1PS2\s0:4\*(tx1..3 +.X "memory size" +\s-1SMM\s0:12\*(tx22, \s-1SMM\s0:13\*(tx16 +.X "memory, UNIBUS" +\s-1SMM\s0:2\*(tx20, \s-1SMM\s0:13\*(tx18,30,33 +.X "memory usage" +systat(1)\*(tx2, \s-1USD\s0:4\*(tx24, vtimes(3c), sa(8) +.X "memory, user" +ps(4), \s-1SMM\s0:13\*(tx16 +.X "memory violations" +core(5) +.X "memory, virtual" +ps(1)\*(tx1, vmstat(1), execve(2), vfork(2), ik(4), mem(4), ps(4), \s-1SMM\s0:1\*(tx26,48, \s-1SMM\s0:2\*(tx31..32 +.X "memory\*(txpoor environments" +\s-1SMM\s0:1\*(tx48, \s-1SMM\s0:7\*(tx14 +.X "merge" +sort(1) +.X "merge \*(tx three\*(txway file merge" +\s-1PS1\s0:13\*(tx12 +.X "merge RCS revision, rcsmerge \*(tx" +\s-1PS1\s0:13\*(tx18 +.X "Mesa" +ns(3n) +.X "mesg \*(tx permit or deny messages" +mesg(1), \s-1SMM\s0:12\*(tx9 +.X "messages" +msgs(1), \s-1USD\s0:7\*(tx2, \s-1USD\s0:8\*(tx2..4,9,37,68,82, \s-1SMM\s0:10\*(tx18 +.X "messages, anno \*(tx annotate" +\s-1USD\s0:8\*(tx13 +.X "message, annotated" +\s-1USD\s0:8\*(tx13,18,23,58 +.X "message archives" +\s-1USD\s0:8\*(tx42, \s-1SMM\s0:16\*(tx6 +.X "message body" +mail(1)\*(tx4, \s-1USD\s0:7\*(tx21, \s-1USD\s0:8\*(tx52, \s-1SMM\s0:16\*(tx4,7 +.X "message boundaries" +\s-1PS1\s0:7\*(tx8,14 +.X "message, Broadcast" +wall(1), \s-1PS1\s0:8\*(tx32..34, \s-1PS2\s0:10\*(tx70, rwhod(8c) +.X "message buffer" +intro(2)\*(tx3, \s-1SMM\s0:13\*(tx8 +.X "message, checkgroups control" +\s-1SMM\s0:10\*(tx3,9..10 +.X "message class" +\s-1SMM\s0:7\*(tx9,14,19,32 +.X "message collections" +\s-1SMM\s0:16\*(tx5,7 +.X "message, compose a" +mh(1)\*(tx1, \s-1USD\s0:8\*(tx4 +.X "message, connection" +tip(1c)\*(tx2, \s-1SMM\s0:12\*(tx12 +.X "messages, control" +\s-1SMM\s0:10\*(tx3,16..19 +.X "message, copy a" +\s-1USD\s0:8\*(tx6 +.X "message, current" +mh(1)\*(tx1 +.X "messages, daemon" +syslog(3) +.X "message delivery" +\s-1SMM\s0:16\*(tx4..7 +.X "message draft" +\s-1USD\s0:8\*(tx6,16,57,62,65,102..103 +.X "message encapsulation" +\s-1USD\s0:8\*(tx14,25 +.X "message files" +mkstr(1), \s-1USD\s0:8\*(tx30,55,61,82,86 +.X "message, .../files/dayfile7 \*(tx INGRES login" +\s-1PS2\s0:10\*(tx64 +.X "message, .../files/grafile7 \*(tx GEO\*(txQUEL login" +\s-1PS2\s0:10\*(tx67 +.X "message folders" +\s-1USD\s0:8\*(tx2,8 +.X "message format in TSP" +\s-1SMM\s0:22\*(tx2 +.X "message group" +mail(1)\*(tx3 +.X "Message Handling System: User's Manual, Rand MH (see also MH)" +mh(1)\*(tx1, \s-1USD\s0:8 +.X "message header editing" +\s-1SMM\s0:16\*(tx5 +.X "message headers" +mail(1)\*(tx3, \s-1USD\s0:7\*(tx14,19, imp(4), comsat(8c), sendmail(8)\*(tx2, \s-1SMM\s0:7\*(tx4,36, \s-1SMM\s0:16\*(tx1,5,7,11 +.X "message, justify the" +mail(1)\*(tx5 +.X "message lists" +mail(1)\*(tx3..4, \s-1USD\s0:7\*(tx12,15..16,22, \s-1USD\s0:8\*(tx39 +.X "message, login" +\s-1USD\s0:1\*(tx2, \s-1USD\s0:14\*(tx4, gettytab(5)\*(tx2 +.X "Message, Master Request" +\s-1SMM\s0:22\*(tx3..6 +.X "message names" +\s-1USD\s0:8\*(tx6,9..10,21,28,32,39,98 +.X "message, next \*(tx show the next" +\s-1USD\s0:8\*(tx45 +.X "message numbers" +mail(1)\*(tx1, mh(1), msgs(1), \s-1USD\s0:7\*(tx3,6,12..16, \s-1USD\s0:8\*(tx4,6,39,48,66,102, bugfiler(8) +.X "message of the day" +login(1), hier(7)\*(tx1 +.X "message output" +\s-1USD\s0:3\*(tx21, \s-1USD\s0:8\*(tx30 +.X "message, panic" +crash(8v) +.X "message, peek at incoming" +\s-1PS1\s0:6\*(tx35 +.X "message, Pipe the" +mail(1)\*(tx5 +.X "message, post \*(tx deliver a" +msgs(1), \s-1USD\s0:8\*(tx96 +.X "message, prev \*(tx show the previous" +\s-1USD\s0:8\*(tx51 +.X "message, print a" +\s-1USD\s0:8\*(tx6 +.X "message, print error" +\s-1SMM\s0:7\*(tx30 +.X "message priority" +syslogd(8), \s-1SMM\s0:7\*(tx9,32 +.X "message priority, syslog" +syslog(3) +.X "Message Processing Module" +\s-1SMM\s0:16\*(tx3,10 +.X "message range" +\s-1USD\s0:8\*(tx9,29,39 +.X "message, read specific" +mh(1)\*(tx1 +.X "message, reliably\*(txdelivered" +\s-1PS1\s0:6\*(tx33 +.X "message, repl \*(tx reply to a" +\s-1USD\s0:8\*(tx57 +.X "message, respond to the current" +mh(1)\*(tx1 +.X "message scan listing" +\s-1USD\s0:8\*(tx62 +.X "message, send \*(tx send a" +\s-1USD\s0:8\*(tx64 +.X "message sequences" +\s-1USD\s0:8\*(tx28..29,48,98 +.X "message size" +\s-1SMM\s0:7\*(tx14, \s-1SMM\s0:12\*(tx22 +.X "message skeleton" +\s-1USD\s0:8\*(tx24 +.X "message, structure of a TSP" +\s-1SMM\s0:22\*(tx2 +.X "message systems" +mail(1)\*(tx4, \s-1USD\s0:7\*(tx4,17, \s-1USD\s0:8\*(tx2 +.X "message timeouts" +\s-1SMM\s0:7\*(tx14 +.X "message, transmit a" +send(2) +.X "message transport system" +\s-1USD\s0:8\*(tx76 +.X "message types" +\s-1SMM\s0:22\*(tx2 +.X "Message\*(txId:" +\s-1USD\s0:8\*(tx26,57,64,82..84,96, \s-1SMM\s0:7\*(tx20,32, \s-1SMM\s0:10\*(tx3,15 +.X "messages, authorization system" +syslog(3) +.X "messages, burst \*(tx explode digests into" +\s-1USD\s0:8\*(tx14 +.X "messages, composition of" +\s-1USD\s0:8\*(tx52 +.X "messages, debugging" +syslog(3) +.X "messages, diagnostic" +pi(1), sysline(1), \s-1USD\s0:14\*(tx6, \s-1USD\s0:29\*(tx4 +.X "messages, director" +\s-1USD\s0:11\*(tx2,4,6 +.X "messages, error" +\s-1PS1\s0:2\*(tx14, \s-1PS1\s0:3\*(tx6,8, \s-1PS1\s0:4\*(tx10,21..24, \s-1PS1\s0:5\*(tx8, \s-1PS1\s0:14\*(tx15, \s-1PS1\s0:15\*(tx17..18, \s-1PS2\s0:3\*(tx5, \s-1PS2\s0:7\*(tx17, \s-1PS2\s0:9\*(tx39,42..43,55,67,115..116,152, \s-1PS2\s0:10\*(tx52,56,66..69,75..76,82,84 +.X "messages, file" +\s-1USD\s0:8\*(tx55 +.X "Messages, Format of ARPA Internet Text" +mailaddr(7)\*(tx3, \s-1USD\s0:8\*(tx84,91,94,97 +.X "messages, format of mail" +\s-1USD\s0:7\*(tx20, \s-1USD\s0:8\*(tx82 +.X "messages, forw \*(tx forward" +\s-1USD\s0:8\*(tx23 +.X "messages, forwarded" +\s-1USD\s0:8\*(tx24 +.X "messages, incoming" +\s-1USD\s0:7\*(tx2, \s-1USD\s0:8\*(tx4,37,54, recv(2), inet(4f), ns(4f), \s-1SMM\s0:7\*(tx20,30, \s-1SMM\s0:16\*(tx8 +.X "messages, Informational" +syslog(3) +.X "messages, INGRES error" +\s-1PS2\s0:10\*(tx74 +.X "messages, Kernel" +syslog(3), syslogd(8), \s-1SMM\s0:13\*(tx8 +.X "messages, line printer spooling system" +syslog(3) +.X "messages, log" +\s-1PS1\s0:13\*(tx4..6,10,20..21 +.X "messages, mail" +binmail(1), fmt(1), \s-1USD\s0:8\*(tx35, \s-1SMM\s0:7\*(tx25 +.X "messages, mark" +\s-1USD\s0:8\*(tx28 +.X "messages, mesg \*(tx permit or deny" +mesg(1) +.X "messages, NOOP" +imp(4) +.X "messages, outgoing" +\s-1USD\s0:7\*(tx2, getsockopt(2), ifconfig(8c), \s-1SMM\s0:16\*(tx8 +.X "messages, psignal, sys_siglist \*(tx system signal" +psignal(3) +.X "messages, remove" +mh(1)\*(tx1, \s-1USD\s0:8\*(tx61 +.X "messages, rmm \*(tx remove" +\s-1USD\s0:8\*(tx61 +.X "messages, select" +\s-1USD\s0:8\*(tx47..48,98 +.X "messages, show \*(tx show (list)" +\s-1USD\s0:8\*(tx66 +.X "messages, sortm \*(tx sort" +\s-1USD\s0:8\*(tx68 +.X "messages, status" +lpc(8), rwhod(8c), \s-1SMM\s0:12\*(tx20 +.X "messages, syslogd \*(tx log systems" +syslogd(8) +.X "messages, system" +msgs(1), \s-1USD\s0:4\*(tx11 +.X "messages, system diagnostic" +dmesg(8), perror(3) +.X "messages, unsent" +getsockopt(2) +.X "messages, warning" +syslog(3), \s-1PS1\s0:2\*(tx5,8, \s-1PS1\s0:5\*(tx10, \s-1PS1\s0:6\*(tx32, \s-1PS2\s0:9\*(tx66 +.X "meta mode" +termcap(5)\*(tx12 +.X "metacharacters" +\s-1USD\s0:4\*(tx40, \s-1USD\s0:13\*(tx2 +.X "metacharacters, Shell" +apply(1), csh(1)\*(tx1, expr(1), rsh(1c), uucp(1c), uux(1c), \s-1USD\s0:3\*(tx17, \s-1USD\s0:4\*(tx5,41, \s-1USD\s0:7\*(tx17 +.X "METAKEY environment variable" +jove(1)\*(tx3 +.X "meta\*(txkey (variable)" +\s-1USD\s0:17\*(tx38 +.X "metoo" +mail(1)\*(tx6, \s-1USD\s0:7\*(tx18 +.X "mget command" +ftp(1c) +.X "mh \*(tx Message Handler" +mh(1)\*(tx1 +.X "MH, aliasing in" +\s-1USD\s0:8\*(tx76..77 +.X "MH commands" +mh(1), \s-1USD\s0:8\*(tx2..10,26,39..42,88..106 +.X "mh commands and options, list of" +\s-1USD\s0:8\*(tx106 +.X "MH commands, list of" +mh(1)\*(tx2, \s-1USD\s0:8\*(tx11 +.X "MH configuration" +\s-1USD\s0:8\*(tx88..89 +.X "MH context" +\s-1USD\s0:8\*(tx20,85,89 +.X "MH directory" +\s-1USD\s0:8\*(tx6,23..24,30,77,95,102 +.X "MH, Emacs front\*(txend for" +\s-1USD\s0:8\*(tx86 +.X "MH environment, install\*(txmh \*(tx initialize the" +install-mh(8) +.X "MH environment variable" +\s-1USD\s0:8\*(tx6,43,87 +.X "MH folders" +\s-1USD\s0:8\*(tx26,54,103 +.X "MH message system" +\s-1USD\s0:8\*(tx75,78 +.X "MH news/mail program" +\s-1USD\s0:9\*(tx5 +.X "mh overview" +\s-1USD\s0:8\*(tx2 +.X "MH profile" +\s-1USD\s0:8\*(tx6,45,85,87,89,102 +.X "MH programs" +\s-1USD\s0:8\*(tx6,8..9,48,52,87..90,103, install-mh(8) +.X "MH shell" +\s-1USD\s0:8\*(tx42 +.X "mh tutorial" +\s-1USD\s0:8\*(tx4 +.X "MH user profile components, list of" +\s-1USD\s0:8\*(tx9 +.X "MH user profiles" +\s-1USD\s0:8\*(tx2,6,29,33,40,70,89,95, install-mh(8) +.X "MH, vmh \*(tx visual front\*(txend to" +vmh(1), \s-1USD\s0:8\*(tx69 +.X "MH window management protocol" +\s-1USD\s0:8\*(tx69 +.X "mh\*(txalias \*(tx alias file for MH message system" +\s-1USD\s0:8\*(tx75 +.X "MHBBRC environment variable" +\s-1USD\s0:8\*(tx88 +.X "MHCONTEXT environment variable" +\s-1USD\s0:8\*(tx87 +.X "MHCONTEXTFD environment variable" +\s-1USD\s0:8\*(tx89 +.X "mhdraft" +\s-1USD\s0:8\*(tx88 +.X "MHFD" +\s-1USD\s0:8\*(tx89 +.X "mhfolder environment variable" +\s-1USD\s0:8\*(tx57,88 +.X "mh\*(txformat \*(tx format file for MH message system" +\s-1USD\s0:8\*(tx78 +.X "mhl.forward" +\s-1USD\s0:8\*(tx24 +.X "mh\*(txmail \*(tx message format for MH message system" +\s-1USD\s0:8\*(tx82 +.X "mh\*(txsequences" +\s-1USD\s0:8\*(tx85 +.X "MICOM port selector" +gettytab(5)\*(tx2, l +.X "microcode patches" +reboot(8)\*(tx2 +.X "MicroVAX II" +\s-1SMM\s0:2\*(tx2,7 +.X "mille \*(tx play Mille Bournes" +mille(6)\*(tx1 +.X "m_in \*(tx multiple precision integer arithmetic" +mp(3x) +.X "min \*(tx multiple precision integer arithmetic" +mp(3x) +.X "MINBSIZE" +fs(5)\*(tx3 +.X "mincore(addr, len, vec)" +\s-1PS1\s0:6\*(tx12 +.X "Minfree" +mkfs(8), newfs(8), tunefs(8) +.X "minfree file" +lpd(8), savecore(8) +.X "minibuf" +jove(1)\*(tx1, \s-1USD\s0:17\*(tx2 +.X "minimum free space percentage" +dumpfs(8) +.X "minimum interword spacing" +\s-1USD\s0:24\*(tx12 +.X "minimum percentage of free blocks" +fs(5)\*(tx1, mkfs(8) +.X "mini\*(txroot file system" +\s-1SMM\s0:1\*(tx3,7,10..12,20,52..55,63..64 +.X "minor device number" +\s-1PS1\s0:6\*(tx28, mknod(8) +.X "minor modes" +\s-1USD\s0:17\*(tx23 +.X "Minpages" +\s-1PS2\s0:10\*(tx24,78 +.X "minus" +\s-1USD\s0:24\*(tx9, \s-1PS1\s0:15\*(tx11 +.X "minus, file names starting with" +mv(1) +.X "minus, unary" +\s-1PS1\s0:15\*(tx15,24,29 +.X "miscellaneous \*(tx miscellaneous useful information pages" +intro(7) +.X "mistakes, fixing" +csh(1)\*(tx3 +.X "mistakes, spelling" +\s-1USD\s0:1\*(tx11, \s-1USD\s0:12\*(tx6, \s-1USD\s0:17\*(tx14,45 +.X "mistakes, typing" +\s-1USD\s0:1\*(tx3, \s-1USD\s0:4\*(tx13,38 +.X "mkdir \*(tx make a directory" +mkdir(1), mkdir(2), \s-1SMM\s0:12\*(tx9 +.X "mkdir(path, mode)" +\s-1PS1\s0:6\*(tx27 +.X "mkfs \*(tx construct a file system" +mkfs(8), \s-1SMM\s0:12\*(tx21 +.X "mkhosts \*(tx generate hashed host table" +mkhosts(8), \s-1SMM\s0:12\*(tx21 +.X "mklost+found \*(tx make a lost+found directory for fsck" +mklost+found(8) +.X "mknod \*(tx make a special file" +mknod(2), stat(2)\*(tx2, mknod(8) +.X "mknod(path, mode, dev)" +\s-1PS1\s0:6\*(tx28 +.X "mkpasswd \*(tx generate hashed password table" +mkpasswd(8), \s-1SMM\s0:1\*(tx21, \s-1SMM\s0:12\*(tx21 +.X "mkproto \*(tx construct a prototype file system" +mkproto(8) +.X "mkstemp" +\s-1SMM\s0:12\*(tx16 +.X "mkstr \*(tx create an error message file by massaging C source" +mkstr(1) +.X "mktemp \*(tx make a unique file name" +mktemp(3) +.X "mmap(addr, len, prot, flags, fd, pos)" +\s-1PS1\s0:6\*(tx11 +.X "MMDF" +\s-1SMM\s0:10\*(tx6,14, \s-1SMM\s0:12\*(tx23, \s-1SMM\s0:16\*(tx9..10 +.X "mod operator" +\s-1PS1\s0:15\*(tx24, \s-1PS2\s0:10\*(tx76 +.X "mode bits" +window(1)\*(tx5, access(2), stat(2)\*(tx2 +.X "mode, cbreak" +\s-1PS1\s0:6\*(tx38, \s-1PS1\s0:18\*(tx6 +.X "mode, cooked" +\s-1PS1\s0:6\*(tx38 +.X "mode, file" +\s-1PS1\s0:6\*(tx28, \s-1PS1\s0:13\*(tx6,10 +.X "mode lines" +sysline(1), \s-1USD\s0:17\*(tx2,12,14..18,37..39,45..46, \s-1SMM\s0:12\*(tx5 +.X "mode, major" +\s-1USD\s0:17\*(tx2,16,22 +.X "mode mask" +creat(2), mkdir(2), mknod(2) +.X "mode, minor" +\s-1USD\s0:17\*(tx23 +.X "mode, protection" +find(1), \s-1PS2\s0:1\*(tx6,12, \s-1PS2\s0:3\*(tx6, \s-1SMM\s0:17\*(tx2 +.X "mode, RAW" +stty(1)\*(tx3, tset(1)\*(tx3, bk(4), tb(4), tty(4)\*(tx2,7 +.X "mode, standout" +\s-1PS1\s0:18\*(tx12 +.X "mode, tty" +\s-1PS1\s0:18\*(tx6..7,13 +.X "mode, user" +systat(1)\*(tx2, getrusage(2), \s-1SMM\s0:11\*(tx13..14, \s-1SMM\s0:13\*(tx7 +.X "mode word" +tty(4)\*(tx3..4,9..10, \s-1SMM\s0:5\*(tx6 +.X "Model" +vgrind(1) +.X "modeline" +\s-1USD\s0:16\*(tx16 +.X "mode\*(txline (variable)" +\s-1USD\s0:17\*(tx38 +.X "mode\*(txline\*(txshould\*(txstandout (variable)" +\s-1USD\s0:17\*(tx38 +.X "modem and autodialer support" +L\*(txdevices(5), L.sys(5)\*(tx1, \s-1SMM\s0:9\*(tx9,13 +.X "modem control" +dh(4), dmf(4), dmz(4), \s-1PS1\s0:6\*(tx39, \s-1SMM\s0:1\*(tx33 +.X "modem, DEC DF02 or DF03" +L\*(txdevices(5) +.X "modem, Dec DF112" +L\*(txdevices(5) +.X "modem lines" +dn(4) +.X "modems, Bell 212\*(txcompatible" +L\*(txdevices(5), L.sys(5)\*(tx2, \s-1SMM\s0:9\*(tx15 +.X "modems, CCITT" +L\*(txdevices(5), L.sys(5)\*(tx2, \s-1SMM\s0:9\*(tx15 +.X "modems, Racal\*(txVadic" +L\*(txdevices(5), L.sys(5)\*(tx2, \s-1SMM\s0:9\*(tx15 +.X "moderated newsgroups" +\s-1USD\s0:10\*(tx5 +.X "Modern Language Association" +\s-1USD\s0:29\*(tx9 +.X "modf" +frexp(3) +.X "modification date" +ranlib(1), tp(1), ar(5) +.X "modification, query" +\s-1PS2\s0:10\*(tx47,75,77,81 +.X "modification, time of last" +cp(1), find(1), rcp(1c), tar(1), touch(1), tar(5), \s-1PS1\s0:12\*(tx3, restore(8)\*(tx1 +.X "modifications, Making local" +\s-1SMM\s0:1\*(tx50 +.X "modify \*(tx convert the storage structure of a relation" +\s-1PS2\s0:10\*(tx22 +.X "modify times on a file, access and" +\s-1PS1\s0:6\*(tx30 +.X "modifying system code" +\s-1SMM\s0:2\*(tx14 +.X "modifying text" +\s-1USD\s0:12\*(tx5, \s-1USD\s0:14\*(tx3 +.X "Modula\*(tx2" +dbx(1)\*(tx3,7, error(1)\*(tx1, vgrind(1), dbx(5)\*(tx1, \s-1SMM\s0:12\*(tx5 +.X "Module, Message Processing" +\s-1SMM\s0:16\*(tx3,10 +.X "modules, object" +ld(1), what(1), \s-1PS1\s0:5\*(tx11..12, \s-1PS1\s0:12\*(tx1, \s-1PS1\s0:14\*(tx5, \s-1PS2\s0:9\*(tx120, \s-1SMM\s0:2\*(tx6 +.X "modules, protocol" +getsockopt(2), implogd(8c), \s-1SMM\s0:15\*(tx9,15..20 +.X "modules, source" +\s-1SMM\s0:2\*(tx6,15 +.X "moncontrol" +monitor(3) +.X "monitor \*(tx interactive terminal monitor" +cc(1)\*(tx1, prof(1), \s-1PS2\s0:10\*(tx26 +.X "monitor, bootstrap" +\s-1SMM\s0:1\*(tx8..10,59 +.X "monitor, monstartup, moncontrol \*(tx prepare execution profile" +monitor(3) +.X "monitor, tape bootstrap" +\s-1SMM\s0:1\*(tx7,59,62 +.X "Monitoring System Performance" +\s-1SMM\s0:1\*(tx48 +.X "monop \*(tx Monopoly game" +monop(6) +.X "mon.out file" +cc(1)\*(tx1, prof(1) +.X "monstartup" +monitor(3) +.X "month, as a word" +\s-1USD\s0:23\*(tx9 +.X "more, page \*(tx file perusal filter for crt viewing" +more(1), \s-1USD\s0:4\*(tx10, \s-1SMM\s0:12\*(tx9 +.X "motion, character" +\s-1USD\s0:15\*(tx8 +.X "motion, cursor" +curses(3x), termcap(5)\*(tx6..9 +.X "motion, half\*(txline" +col(1) +.X "motion, horizontal" +\s-1USD\s0:24\*(tx18..20, \s-1USD\s0:25\*(tx6..7,11 +.X "motion, local" +\s-1USD\s0:24\*(tx2,20, \s-1USD\s0:25\*(tx5, \s-1USD\s0:27\*(tx8 +.X "motion optimization" +\s-1PS1\s0:18\*(tx3,7,22,27 +.X "motion, reverse line" +col(1), ms(7)\*(tx1, \s-1USD\s0:26\*(tx7 +.X "motion up or down the page" +\s-1USD\s0:25\*(tx6 +.X "motion, vertical" +\s-1USD\s0:24\*(tx21, \s-1USD\s0:25\*(tx6..7, \s-1USD\s0:26\*(tx2, \s-1USD\s0:27\*(tx3,6, gettytab(5)\*(tx1 +.X "mount point" +unlink(2), \s-1SMM\s0:12\*(tx21, \s-1SMM\s0:13\*(tx11 +.X "mount, umount \*(tx mount or remove file system" +mount(2), mount(8) +.X "mountable file systems" +mount(2), setquota(2), unlink(2), mount(8), \s-1SMM\s0:1\*(tx17, \s-1SMM\s0:2\*(tx31..32, \s-1SMM\s0:5\*(tx5, \s-1SMM\s0:12\*(tx21 +.X "mount(blkdev, dir, ronly)" +\s-1PS1\s0:6\*(tx23 +.X "mounted devices, table of" +mount(2), mtab(5), mount(8), \s-1SMM\s0:12\*(tx21 +.X "mounted file system" +\s-1PS1\s0:6\*(tx32, \s-1PS2\s0:5\*(tx1, \s-1PS2\s0:10\*(tx47 +.X "mouse events" +tcp(4p) +.X "m_out \*(tx multiple precision integer arithmetic" +mp(3x) +.X "move()" +\s-1PS1\s0:18\*(tx4,6 +.X "move \*(tx multiple precision integer arithmetic" +mp(3x) +.X "move command" +\s-1USD\s0:12\*(tx8, \s-1USD\s0:13\*(tx14, \s-1USD\s0:14\*(tx13..14, \s-1USD\s0:16\*(tx8, cons(4) +.X "move the cursor of the current window" +window(1)\*(tx3 +.X "move window" +window(1)\*(tx3,6 +.X "movement commands in vi" +\s-1USD\s0:15\*(tx6 +.X "movement of lines" +\s-1USD\s0:16\*(tx9 +.X "move(y, x)" +\s-1PS1\s0:18\*(tx11 +.X "moving around in the buffer" +\s-1USD\s0:14\*(tx16 +.X "moving around on the screen" +\s-1USD\s0:15\*(tx5 +.X "moving file system data" +\s-1SMM\s0:1\*(tx47 +.X "moving files" +mv(1), \s-1USD\s0:1\*(tx6 +.X "moving lines" +\s-1USD\s0:13\*(tx14..15 +.X "moving subtrees of files" +tar(1) +.X "moving text" +\s-1USD\s0:12\*(tx8, \s-1USD\s0:14\*(tx13, \s-1USD\s0:17\*(tx8 +.X "moving the cursor" +\s-1USD\s0:17\*(tx4 +.X "moving within a line" +\s-1USD\s0:15\*(tx5 +.X "mprotect(addr, len, prot)" +\s-1PS1\s0:6\*(tx11 +.X "MRSP proms" +tu(4), \s-1SMM\s0:1\*(tx65 +.X "ms \*(tx text formatting macros" +bib(1), vgrind(1), hier(7)\*(tx4, ms(7)\*(tx1, \s-1USD\s0:21\*(tx1..3, \s-1USD\s0:28\*(tx7 +.X "ms macros, list of" +ms(7)\*(tx1 +.X "ms macros, tutorial" +\s-1USD\s0:1\*(tx10 +.X "MS780\*(txE memory controller" +\s-1SMM\s0:13\*(tx2 +.X "mset \*(tx retrieve ASCII to IBM 3270 keyboard map" +mset(1) +.X "mset(sem, wait)" +\s-1PS1\s0:6\*(tx12 +.X "MSG_DONTROUTE" +\s-1PS1\s0:8\*(tx8 +.X "msghdr, struct" +\s-1PS1\s0:6\*(tx35..36 +.X "MSG_OOB flag" +\s-1PS1\s0:7\*(tx22..23, \s-1PS1\s0:8\*(tx8,24..25 +.X "MSG_PEEK" +\s-1PS1\s0:8\*(tx8 +.X "Msg\*(txProtect" +\s-1USD\s0:8\*(tx6,26,54,86 +.X "msgs \*(tx system messages and junk mail program" +msgs(1), \s-1SMM\s0:12\*(tx9, \s-1SMM\s0:16\*(tx6 +.X "msgs, startup file for" +hier(7)\*(tx5 +.X "msgs, /usr/msgs for current" +\s-1SMM\s0:1\*(tx19 +.X "msh \*(tx MH shell (and BBoard reader)" +\s-1USD\s0:8\*(tx42 +.X "msleep(sem)" +\s-1PS1\s0:6\*(tx12 +.X "msqrt \*(tx multiple precision integer arithmetic" +mp(3x) +.X "msub \*(tx multiple precision integer arithmetic" +mp(3x) +.X "msync(addr, len)" +\s-1PS1\s0:6\*(tx11 +.X "mt \*(tx magnetic tape manipulating program" +mt(1) +.X "mt \*(tx TM78/TU\*(tx78 MASSBUS magtape interface" +mt(4) +.X "mtab \*(tx mounted file system table" +mtab(5) +.X "mtio \*(tx UNIX magtape interface" +mtio(4) +.X "MTIOCGET" +rmt(8c) +.X "MTIOCOP" +rmt(8c) +.X "mult \*(tx multiple precision integer arithmetic" +mp(3x) +.X "MULTICAST" +\s-1SMM\s0:10\*(tx6,23..24 +.X "multicast system name" +\s-1SMM\s0:10\*(tx23..24 +.X "multicolumn output" +col(1), pr(1), \s-1USD\s0:20\*(tx2, \s-1USD\s0:22\*(tx9, \s-1USD\s0:24\*(tx2,29 +.X "Multics" +\s-1USD\s0:10\*(tx10, \s-1SMM\s0:14\*(tx2,13 +.X "multidimensional array" +f77(1)\*(tx2, \s-1PS1\s0:1\*(tx15,30, \s-1PS1\s0:2\*(tx5 +.X "multi\*(txfile programs" +\s-1PS1\s0:1\*(tx26, \s-1PS1\s0:4\*(tx40,45 +.X "multi\*(txline comments" +\s-1PS1\s0:4\*(tx39, \s-1PS1\s0:13\*(tx13 +.X "Multi\*(txline Global Commands" +\s-1USD\s0:13\*(tx11 +.X "multi\*(txpage boxed table" +\s-1USD\s0:28\*(tx2 +.X "multi\*(txpage boxed table with a repeated heading" +\s-1USD\s0:28\*(tx7 +.X "multiple blank lines" +more(1)\*(tx1 +.X "multiple buffers" +\s-1USD\s0:17\*(tx16 +.X "multiple commands per line" +\s-1USD\s0:16\*(tx4 +.X "multiple files" +\s-1USD\s0:16\*(tx2 +.X "multiple master notification message" +\s-1SMM\s0:22\*(tx6 +.X "multiple names for a file" +\s-1PS1\s0:6\*(tx30 +.X "multiple precision integer arithmetic" +mp(3x) +.X "multiple revisions" +\s-1PS1\s0:13\*(tx1 +.X "multiple signals" +\s-1PS1\s0:6\*(tx13 +.X "multiple swap/paging areas" +\s-1SMM\s0:2\*(tx26 +.X "multiple urgent signals" +\s-1PS1\s0:8\*(tx24 +.X "multiple windows and multiple buffers" +\s-1USD\s0:17\*(tx18 +.X "multiplexing, Input/Output" +\s-1PS1\s0:8\*(tx9 +.X "multiplexing of operations" +\s-1PS1\s0:6\*(tx18 +.X "multiplexing, select \*(tx synchronous I/O" +select(2) +.X "multiplexing, synchronous" +\s-1PS1\s0:8\*(tx10 +.X "multiplexor, terminal" +dmf(4), \s-1SMM\s0:1\*(tx32, \s-1SMM\s0:13\*(tx6 +.X "multiplicative operators" +\s-1PS1\s0:1\*(tx6,9 +.X "multiuser operation" +reboot(2), fsck(8), init(8), reboot(8)\*(tx1, \s-1SMM\s0:1\*(tx33 +.X "munmap(addr)" +\s-1PS1\s0:6\*(tx11 +.X "mv \*(tx move or rename files" +mv(1) +.X "mvaddch()" +\s-1PS1\s0:18\*(tx6 +.X "mvcur()" +\s-1PS1\s0:18\*(tx8 +.X "mvcur(lasty, lastx, newy, newx)" +\s-1PS1\s0:18\*(tx17 +.X "mvwin(win, y, x)" +\s-1PS1\s0:18\*(tx15 +.X "mwakeup(sem)" +\s-1PS1\s0:6\*(tx12 +.X "MYDOMAIN" +\s-1SMM\s0:10\*(tx4 +.L N +.X "NAG library" +\s-1PS1\s0:2\*(tx13 +.X "name, author" +refer(1), \s-1USD\s0:11\*(tx9, \s-1USD\s0:29\*(tx5, \s-1USD\s0:30\*(tx12 +.X "name, buffer" +\s-1USD\s0:15\*(tx10,14,26, \s-1USD\s0:16\*(tx12, \s-1USD\s0:17\*(tx16,19,35,38,44 +.X "name cache" +\s-1SMM\s0:12\*(tx12, \s-1SMM\s0:13\*(tx11..12 +.X "name cache references" +\s-1SMM\s0:13\*(tx10..11 +.X "name, command" +csh(1)\*(tx6..7,18, lastcomm(1), ps(1)\*(tx1, sh(1)\*(tx1,4, \s-1USD\s0:1\*(tx2, \s-1USD\s0:3\*(tx10, \s-1USD\s0:4\*(tx17, \s-1USD\s0:15\*(tx23, \s-1USD\s0:25\*(tx6, getarg(3f), sa(8) +.X "name, destination" +\s-1SMM\s0:9\*(tx3 +.X "name, device" +who(1), topen(3f), fstab(5), \s-1SMM\s0:1\*(tx4, \s-1SMM\s0:2\*(tx8..9,16, \s-1SMM\s0:9\*(tx6, \s-1SMM\s0:12\*(tx21 +.X "name, directory" +\s-1USD\s0:3\*(tx10, \s-1USD\s0:4\*(tx12,37, intro(2)\*(tx6, tar(5), restore(8)\*(tx1 +.X "name, domain" +mailaddr(7), resolver(3), resolver(5), named(8), \s-1SMM\s0:1\*(tx22,34, \s-1SMM\s0:7\*(tx19,26, \s-1SMM\s0:11\*(tx3,6,16 +.X "name domain server" +\s-1SMM\s0:12\*(tx2 +.X "name, environment" +\s-1USD\s0:25\*(tx12, getenv(3), ioinit(3f) +.X "name, file (see filename)" +.X "name formatting" +\s-1USD\s0:31\*(tx12 +.X "names, generic" +intro(3f)\*(tx1 +.X "name, group" +chgrp(1), find(1), mail(1)\*(tx4, group(5), chown(8) +.X "name, host" +rlogin(1c), rsh(1c), ruptime(1c), gethostname(2), hosts(5), printcap(5), resolver(5), ifconfig(8c), lpd(8), route(8c), rshd(8c), \s-1SMM\s0:1\*(tx21..22,42, \s-1SMM\s0:6\*(tx5, \s-1SMM\s0:7\*(tx21,24,32, \s-1SMM\s0:12\*(tx22, \s-1SMM\s0:13\*(tx4,23, \s-1SMM\s0:16\*(tx1,4 +.X "Names in the UNIX domain" +\s-1PS1\s0:7\*(tx10..11 +.X "name, job" +csh(1)\*(tx2, lpr(1), lpd(8) +.X "name, journal" +\s-1USD\s0:31\*(tx5,16 +.X "name list database" +\s-1SMM\s0:1\*(tx23 +.X "name list, symorder \*(tx rearrange" +symorder(1) +.X "name lists" +nm(1), \s-1USD\s0:24\*(tx14,16, nlist(3), \s-1SMM\s0:12\*(tx11 +.X "name, machine" +ftp(1c)\*(tx7, rcmd(3), L.aliases(5), rshd(8c), \s-1SMM\s0:11\*(tx6..8,14, \s-1SMM\s0:12\*(tx21 +.X "name, macro" +m4(1), \s-1USD\s0:22\*(tx15 +.X "names, Macro and string" +\s-1USD\s0:24\*(tx14 +.X "name, mark" +\s-1USD\s0:13\*(tx14 +.X "name, message" +\s-1USD\s0:8\*(tx6,9..10,21,28,32,39,98 +.X "name, multicast" +\s-1SMM\s0:10\*(tx23 +.X "name, multicast system" +\s-1SMM\s0:10\*(tx23..24 +.X "name, network" +L.sys(5)\*(tx3, networks(5), route(8c), timed(8), \s-1SMM\s0:9\*(tx15 +.X "name, newsgroup" +\s-1USD\s0:9\*(tx7, \s-1USD\s0:10\*(tx11, \s-1SMM\s0:10\*(tx8..10,14,16 +.X "name, nonterminal" +\s-1PS1\s0:15\*(tx3,19,22 +.X "name, notesfile" +\s-1USD\s0:11\*(tx2..3 +.X "name of a file, changing the" +\s-1USD\s0:13\*(tx12 +.X "name, option" +mail(1)\*(tx4, \s-1USD\s0:16\*(tx10, \s-1USD\s0:28\*(tx2, \s-1SMM\s0:15\*(tx19 +.X "name, path" +\s-1PS1\s0:6\*(tx27 +.X "name, personal" +\s-1USD\s0:8\*(tx64,96 +.X "name, port" +systat(1)\*(tx5, L.sys(5)\*(tx2, \s-1SMM\s0:9\*(tx15 +.X "name, protocol" +getservent(3n), protocols(5), services(5) +.X "name, real" +passwd(5), adduser(8) +.X "name, register" +adb(1)\*(tx2, \s-1USD\s0:20\*(tx7, \s-1USD\s0:24\*(tx17, \s-1SMM\s0:19\*(tx3,14 +.X "name, relation" +\s-1PS2\s0:10\*(tx13,41,45..46,65 +.X "name, sequence" +\s-1USD\s0:8\*(tx28,85,101 +.X "name server address" +resolver(3) +.X "name servers" +gethostbyname(3), resolver(3), hosts(5), resolver(5), htable(8), named(8), \s-1SMM\s0:1\*(tx22,34,42, \s-1SMM\s0:7\*(tx4, \s-1SMM\s0:11\*(tx2..7,10,13, \s-1SMM\s0:12\*(tx2,15,22, \s-1SMM\s0:16\*(tx11 +.X "name, service" +services(5), \s-1PS1\s0:8\*(tx11,14, inetd(8), \s-1SMM\s0:1\*(tx41 +.X "names, signal" +csh(1)\*(tx12, kill(1), psignal(3) +.X "name, site" +\s-1USD\s0:8\*(tx12,86, \s-1SMM\s0:1\*(tx34..36, \s-1SMM\s0:10\*(tx4 +.X "name, Socket" +\s-1PS1\s0:6\*(tx37, \s-1PS1\s0:7\*(tx12,16,18 +.X "name, socket's bound" +\s-1PS1\s0:6\*(tx34 +.X "name spaces" +bind(2), \s-1PS1\s0:7\*(tx10, \s-1PS1\s0:8\*(tx2 +.X "name, symbol" +nm(1), a.out(5)\*(tx3, \s-1PS1\s0:5\*(tx11, \s-1PS1\s0:10\*(tx13, \s-1PS2\s0:9\*(tx89, \s-1SMM\s0:19\*(tx4 +.X "name, tag" +\s-1USD\s0:16\*(tx11,19, \s-1USD\s0:17\*(tx19 +.X "name, target" +make(1), \s-1SMM\s0:14\*(tx13 +.X "name, terminal" +finger(1), tabs(1), talk(1), tty(1), who(1), write(1), term(7), \s-1USD\s0:4\*(tx42, termcap(3x), termcap(5), \s-1SMM\s0:1\*(tx32..33, \s-1SMM\s0:12\*(tx20, \s-1SMM\s0:20\*(tx5 +.X "name, token" +yacc(1), \s-1PS1\s0:15\*(tx3,7,15..16,19 +.X "name translation" +systat(1)\*(tx2, \s-1SMM\s0:13\*(tx11 +.X "name translation cache" +systat(1)\*(tx2, \s-1SMM\s0:13\*(tx6,10 +.X "name, tty" +gettytab(5)\*(tx2, \s-1SMM\s0:1\*(tx33 +.X "name, typedef" +\s-1SMM\s0:19\*(tx7 +.X "name, UUCP" +uuname(1c), L.sys(5)\*(tx3, \s-1SMM\s0:9\*(tx15, \s-1SMM\s0:10\*(tx2,5 +.X "named \*(tx Internet domain name server" +\s-1PS1\s0:8\*(tx11, named(8), \s-1SMM\s0:12\*(tx21 +.X "named master file format" +named(8) +.X "namei name lookup function" +\s-1SMM\s0:13\*(tx2 +.X "name\*(txkeyboard\*(txmacro" +\s-1USD\s0:17\*(tx39 +.X "namelist I/O" +\s-1PS1\s0:2\*(tx9..10, \s-1PS1\s0:3\*(tx3,7, \s-1SMM\s0:12\*(tx7 +.X "namelist name" +\s-1PS1\s0:2\*(tx9..10, \s-1PS1\s0:3\*(tx3,10 +.X "NaN" +infnan(3m) +.X "natural logarithm" +\s-1USD\s0:19\*(tx4, exp(3m) +.X "Natural Sciences format" +\s-1USD\s0:29\*(tx5 +.X "Navy Fortran Compiler Validation System" +\s-1SMM\s0:12\*(tx5 +.X "ncheck \*(tx generate names from i\*(txnumbers" +ncheck(8) +.X "ndbm" +dbm(3x), ndbm(3), \s-1SMM\s0:12\*(tx16 +.X "ndefine" +\s-1USD\s0:27\*(tx8 +.X "need vertical space" +\s-1USD\s0:24\*(tx11 +.X "neqn" +\s-1USD\s0:27\*(tx1,8..10 +.X "nesting level" +\s-1PS1\s0:5\*(tx11, \s-1PS2\s0:6\*(tx25 +.X "netrc file" +ftp(1c)\*(tx7, rexec(3), \s-1SMM\s0:12\*(tx8 +.X "netstat \*(tx show network status" +netstat(1), systat(1), trpt(8c), \s-1SMM\s0:1\*(tx40, \s-1SMM\s0:12\*(tx9 +.X "network accesses" +\s-1USD\s0:7\*(tx10 +.X "network addresses" +netstat(1), \s-1USD\s0:8\*(tx73, gethostbyname(3), inet(3n), de(4), ec(4), en(4), ex(4), icmp(4p), idp(4p), il(4), imp(4p), ix(4), vv(4), hosts(5), \s-1PS1\s0:7\*(tx11..13, \s-1PS1\s0:8\*(tx11,14..15,31, ifconfig(8c), timed(8), \s-1SMM\s0:11\*(tx4..7, \s-1SMM\s0:13\*(tx24, \s-1SMM\s0:15\*(tx12 +.X "network architectures" +\s-1SMM\s0:12\*(tx17 +.X "network buffers" +crash(8v)\*(tx2, \s-1SMM\s0:12\*(tx21, \s-1SMM\s0:13\*(tx19 +.X "network byte order" +byteorder(3n), gethostbyname(3), getservent(3n), inet(3n), \s-1PS1\s0:8\*(tx11,14..15 +.X "network, class B" +\s-1SMM\s0:1\*(tx39 +.X "network, class C" +\s-1SMM\s0:1\*(tx39 +.X "network communications" +\s-1SMM\s0:15\*(tx2..3 +.X "network configuration" +\s-1PS1\s0:8\*(tx32, ifconfig(8c) +.X "network connections" +systat(1), tty(4)\*(tx1, L\*(txdevices(5), L.sys(5)\*(tx2, \s-1SMM\s0:1\*(tx50, \s-1SMM\s0:7\*(tx15,25, \s-1SMM\s0:9\*(tx13,15, \s-1SMM\s0:10\*(tx1, \s-1SMM\s0:12\*(tx23 +.X "network data base" +getnetent(3n), getprotoent(3n), getservent(3n), networks(5), \s-1SMM\s0:1\*(tx41..42 +.X "network data structures" +netstat(1) +.X "network date" +\s-1SMM\s0:8\*(tx3, \s-1SMM\s0:22\*(tx4,7..8 +.X "network debugging" +ping(8) +.X "network, destination" +ifconfig(8c), routed(8c)\*(tx1, XNSrouted(8c), \s-1SMM\s0:15\*(tx21 +.X "network devices" +L.sys(5)\*(tx3, \s-1SMM\s0:2\*(tx13, \s-1SMM\s0:9\*(tx15 +.X "network, directly\*(txconnected" +route(8c), \s-1SMM\s0:13\*(tx23 +.X "network, Ethernet (see also Ethernet)" +de(4), ec(4), en(4), ex(4), il(4), ix(4), qe(4) +.X "network file transfer" +ftp(1c)\*(tx1 +.X "network, finding sites on the" +\s-1USD\s0:10\*(tx10 +.X "network hardware" +ping(8), \s-1SMM\s0:2\*(tx33, \s-1SMM\s0:13\*(tx2,6 +.X "network header" +\s-1SMM\s0:15\*(tx14,21,26 +.X "network independent, but network related code, /sys/net" +\s-1SMM\s0:1\*(tx26 +.X "Network Information Center (see also NIC)" +hosts(5), \s-1SMM\s0:1\*(tx42, \s-1SMM\s0:11\*(tx16 +.X "network interface code, /sys/vaxif VAX" +\s-1SMM\s0:1\*(tx26 +.X "network interface drivers" +intro(4), \s-1SMM\s0:1\*(tx38, \s-1SMM\s0:2\*(tx16, \s-1SMM\s0:13\*(tx29 +.X "network interfaces" +netstat(1), getsockopt(2), acc(4), css(4), ddn(4), de(4), icmp(4p), idp(4p), il(4), imp(4), intro(4n), ix(4), lo(4), pcl(4), spp(4p), tcp(4p), ifconfig(8c), ping(8), slattach(8c), \s-1SMM\s0:1\*(tx38..39, \s-1SMM\s0:12\*(tx17, \s-1SMM\s0:13\*(tx21..24,29,32, \s-1SMM\s0:15\*(tx14,16,18..24 +.X "network layers" +\s-1SMM\s0:15\*(tx3 +.X "network library routines" +htable(8), \s-1PS1\s0:8\*(tx11, \s-1SMM\s0:1\*(tx41 +.X "network mail" +mail(1)\*(tx2, \s-1USD\s0:8\*(tx64 +.X "network mail forwarding" +\s-1SMM\s0:16\*(tx7 +.X "network mask" +inet(4f), \s-1SMM\s0:1\*(tx39, \s-1SMM\s0:13\*(tx22..23 +.X "network mask requests" +\s-1SMM\s0:13\*(tx20,22,24 +.X "network monitoring and diagnostic functions" +icmp(4p) +.X "network name data bases, host and" +\s-1SMM\s0:1\*(tx42 +.X "network names" +L.sys(5)\*(tx3, networks(5), \s-1PS1\s0:8\*(tx13, route(8c), timed(8), \s-1SMM\s0:9\*(tx15 +.X "network news" +\s-1USD\s0:9, \s-1USD\s0:10\*(tx1,6, \s-1SMM\s0:10\*(tx2,19 +.X "Network News, How to Read the" +\s-1USD\s0:9 +.X "network numbers" +getnetent(3n), inet(3n), ns(3n), hy(4), imp(4), inet(4f), networks(5), \s-1PS1\s0:8\*(tx13, \s-1SMM\s0:1\*(tx39..42, \s-1SMM\s0:13\*(tx21..22,28 +.X "network, Proteon proNET ring" +vv(4) +.X "network protocols" +socket(2), intro(4n)\*(tx1, \s-1SMM\s0:15\*(tx14 +.X "network, rdump \*(tx file system dump across the" +rdump(8c) +.X "network, rrestore \*(tx restore a file system dump across the" +rrestore(8c) +.X "network servers" +\s-1SMM\s0:1\*(tx41,43, \s-1SMM\s0:2\*(tx30, \s-1SMM\s0:12\*(tx20 +.X "network services" +\s-1SMM\s0:1\*(tx38, \s-1SMM\s0:11\*(tx2, \s-1SMM\s0:15\*(tx3, \s-1SMM\s0:21\*(tx6 +.X "network setup" +\s-1SMM\s0:1\*(tx38 +.X "Network Systems Hyperchannel" +hy(4) +.X "network time" +date(1), adjtime(2), timed(8), \s-1SMM\s0:8\*(tx2, \s-1SMM\s0:22\*(tx2..4 +.X "network troubleshooting" +\s-1SMM\s0:1\*(tx50 +.X "network, UUCP" +uuencode(1c), mailaddr(7)\*(tx1, \s-1USD\s0:8\*(tx73, \s-1USD\s0:10\*(tx10, \s-1SMM\s0:9\*(tx11,19, \s-1SMM\s0:10\*(tx12 +.X "networking \*(tx introduction to networking facilities" +intro(4n)\*(tx1 +.X "networking environment" +\s-1SMM\s0:2\*(tx11, \s-1SMM\s0:7\*(tx38 +.X "networking facilities" +intro(4n)\*(tx1, \s-1SMM\s0:1\*(tx1, \s-1SMM\s0:15\*(tx2..3 +.X "Networking Implementation Notes" +\s-1SMM\s0:15 +.X "network\*(txinterface layer" +\s-1SMM\s0:15\*(tx10 +.X "networks" +mailaddr(7)\*(tx2 +.X "networks \*(tx network name data base" +networks(5) +.X "networks, local" +ruptime(1c), rwho(1c), hunt(6)\*(tx1, htable(8) +.X "networks, multiple" +spp(4p), tcp(4p), \s-1SMM\s0:11\*(tx4 +.X "new drivers" +\s-1SMM\s0:13\*(tx2 +.X "new files" +\s-1USD\s0:14\*(tx7, \s-1USD\s0:17\*(tx15,33, \s-1SMM\s0:13\*(tx18 +.X "new notes, checking for" +\s-1USD\s0:11\*(tx15 +.X "new page" +ms(7)\*(tx1, \s-1USD\s0:20\*(tx5 +.X "newaliases \*(tx rebuild the data base for the mail aliases file" +newaliases(1) +.X "newfs \*(tx construct a new file system" +newfs(8) +.X "new\*(txline character" +\s-1USD\s0:16\*(tx14, \s-1USD\s0:17\*(tx44, \s-1USD\s0:18\*(tx8, \s-1USD\s0:24\*(tx14, gets(3s), puts(3s), tty(4)\*(tx3, \s-1PS1\s0:1\*(tx2, \s-1PS1\s0:4\*(tx30, \s-1PS1\s0:10\*(tx18,\s-1PS2\s0:1\*(tx2, \s-1PS2\s0:3\*(tx14, \s-1PS2\s0:7\*(tx14, \s-1SMM\s0:9\*(tx16 +.X "newline mapping" +\s-1PS1\s0:18\*(tx8,13 +.X "newlines, Concealed" +\s-1USD\s0:24\*(tx15,20 +.X "news, B" +\s-1SMM\s0:10\*(tx15, \s-1SMM\s0:12\*(tx23 +.X "news, browsing through old" +\s-1USD\s0:9\*(tx5 +.X "News, How to Read the Network" +\s-1USD\s0:9\*(tx1 +.X "news, incoming" +\s-1SMM\s0:10\*(tx15,20 +.X "news item" +\s-1SMM\s0:10\*(tx23..24 +.X "news, network" +\s-1USD\s0:9, \s-1USD\s0:10\*(tx1,6, \s-1SMM\s0:10\*(tx2,4,13,15,19 +.X "news programs" +\s-1USD\s0:9\*(tx5, \s-1USD\s0:10\*(tx1..2,5 +.X "news, reading" +patch(1)\*(tx1 +.X "news reading interfaces" +\s-1USD\s0:9\*(tx5 +.X "news, rn \*(tx new interface for reading (or ignoring)" +\s-1SMM\s0:12\*(tx23 +.X "news, unread" +\s-1USD\s0:9\*(tx2,6 +.X "newsgroup, creating a new" +\s-1USD\s0:10\*(tx6 +.X "newsgroup list" +\s-1USD\s0:9\*(tx2, \s-1SMM\s0:10\*(tx3,8 +.X "newsgroup names" +\s-1USD\s0:9\*(tx7, \s-1USD\s0:10\*(tx11, \s-1SMM\s0:10\*(tx8..10,14,16 +.X "newsgroups, moderated" +\s-1USD\s0:10\*(tx5 +.X "newsgroups which have special rules" +\s-1USD\s0:10\*(tx7 +.X "newwin(lines, cols, beginy, beginx)" +\s-1PS1\s0:18\*(tx5,15 +.X "next \*(tx show the next message" +\s-1USD\s0:8\*(tx45 +.X "next\*(txerror (C\*(txX C\*(txN)" +\s-1USD\s0:17\*(tx39..40 +.X "nextkey" +dbm(3x) +.X "next\*(txline (C\*(txN)" +\s-1USD\s0:17\*(tx39 +.X "next\*(txpage (C\*(txV)" +\s-1USD\s0:17\*(tx39 +.X "next\*(txwindow (C\*(txX N)" +\s-1USD\s0:17\*(tx39 +.X "NEXUS" +autoconf(4), \s-1SMM\s0:2\*(tx9 +.X "NEXUS slot number" +autoconf(4) +.X "NF awk variable (number of fields in current record)" +awk(1), \s-1USD\s0:19\*(tx1..5 +.X "nfabort" +\s-1USD\s0:11\*(tx14 +.X "nfcomment \*(tx subroutine to enter text into a notesfile" +\s-1USD\s0:11\*(tx13 +.X "NFED shell variable" +\s-1USD\s0:11\*(tx7,12 +.X "nfpipe \*(tx input from a pipe to a notesfile" +\s-1USD\s0:11\*(tx13 +.X "nfprint \*(tx formatted listing of a notesfile" +\s-1USD\s0:11\*(tx13 +.X "NFSEQ environment variable" +\s-1USD\s0:11\*(tx11..12,15 +.X "nfstats" +\s-1USD\s0:11\*(tx14 +.X "NIC host data base" +\s-1SMM\s0:1\*(tx42 +.X "NIC standard format host tables, htable \*(tx convert" +htable(8) +.X "nice \*(tx set program priority" +csh(1)\*(tx13, nice(3c) +.X "nice, nohup \*(tx run a command at low priority" +nice(1) +.X "niceness" +\s-1SMM\s0:10\*(tx6, \s-1SMM\s0:13\*(tx6 +.X "Night" +L.sys(5)\*(tx1, \s-1SMM\s0:9\*(tx10,14 +.X "nl()" +\s-1PS1\s0:18\*(tx16 +.X "nl" +\s-1USD\s0:20\*(tx4 +.X "nlambda functions" +\s-1PS2\s0:9\*(tx95,124 +.X "nlist \*(tx get entries from name list" +nlist(3), \s-1SMM\s0:12\*(tx16 +.X "nlist field" +\s-1PS1\s0:5\*(tx11 +.X "nm \*(tx print name list" +nm(1) +.X "nmap settings" +ftp(1c)\*(tx2..4 +.X "noadjust" +\s-1USD\s0:24\*(tx13 +.X "nobeep shell variable" +csh(1)\*(tx3 +.X "no\*(txbreak control character" +\s-1USD\s0:24\*(tx20,28 +.X "nocbreak()" +\s-1PS1\s0:18\*(tx12 +.X "noclobber shell variable" +csh(1)\*(tx8,17, \s-1USD\s0:4\*(tx13,41 +.X "nocrmode()" +\s-1PS1\s0:18\*(tx12 +.X "node, ICON" +\s-1SMM\s0:19\*(tx10..11 +.X "node numbers" +\s-1SMM\s0:19\*(tx3..5 +.X "node types" +\s-1SMM\s0:19\*(tx3..4,15,20 +.X "nodes, leaf" +\s-1SMM\s0:10\*(tx16, \s-1SMM\s0:19\*(tx5,18 +.X "nodes, tree" +\s-1SMM\s0:19\*(tx5,13 +.X "noecho()" +\s-1PS1\s0:18\*(tx12 +.X "nofill mode" +\s-1USD\s0:22\*(tx6, \s-1USD\s0:23\*(tx6, \s-1USD\s0:24\*(tx12,16,25 +.X "noglob shell variable" +csh(1)\*(tx17, \s-1USD\s0:4\*(tx28,41 +.X "noheader" +\s-1USD\s0:7\*(tx19 +.X "nohup command" +csh(1)\*(tx13, nice(1), \s-1USD\s0:3\*(tx20 +.X "noisy phone lines" +\s-1USD\s0:7\*(tx20 +.X "nomagic option" +\s-1USD\s0:16\*(tx13 +.X "non\*(tx``ANSI standard'' extensions to Fortran" +\s-1PS1\s0:3\*(tx6 +.X "non\*(txASCII character, filenames containing" +\s-1USD\s0:10\*(tx11 +.X "non\*(txASCII characters" +cat(1), ed(1)\*(tx5, \s-1USD\s0:16\*(tx6, \s-1USD\s0:24\*(tx33 +.X "non\*(txblank lines" +\s-1USD\s0:17\*(tx7 +.X "non\*(txblocking I/O" +\s-1USD\s0:24\*(tx2, connect(2), dup(2), fcntl(2), read(2), send(2), socket(2), write(2), tty(4)\*(tx2, \s-1PS1\s0:6\*(tx13,19,25..26,34, \s-1SMM\s0:13\*(tx4 +.X "non\*(txblocking locks" +flock(2) +.X "non\*(txblocking open" +\s-1PS1\s0:6\*(tx28 +.X "non\*(txblocking sockets" +recv(2), \s-1PS1\s0:8\*(tx25 +.X "non\*(txbreakable spaces" +\s-1USD\s0:31\*(tx1 +.X "non\*(txempty directory" +rdist(1) +.X "NONEWGROUPS" +\s-1SMM\s0:10\*(tx4 +.X "non\*(txgraphic characters" +ed(1)\*(tx4, ls(1), od(1) +.X "Non\*(txinteractive Text Editor, SED \*(tx A" +\s-1USD\s0:13\*(tx16, \s-1USD\s0:18 +.X "nonl()" +\s-1PS1\s0:18\*(tx16 +.X "non\*(txlocal goto, setjmp, longjmp \*(tx" +setjmp(3) +.X "nonomatch shell variable" +csh(1)\*(tx18 +.X "nonportable character use" +\s-1PS1\s0:9\*(tx4 +.X "non\*(txprinting characters (see also non-ASCII)" +col(1), \s-1USD\s0:13\*(tx2, \s-1USD\s0:14\*(tx9, \s-1USD\s0:15\*(tx9, \s-1USD\s0:16\*(tx9, \s-1USD\s0:28\*(tx3 +.X "non\*(txstandard formats" +\s-1USD\s0:8\*(tx91,94 +.X "nonstandard functions and procedures in Berkeley Pascal" +\s-1PS1\s0:4\*(tx49 +.X "non\*(txstrict locking" +\s-1PS1\s0:13\*(tx13 +.X "nonterminal names" +\s-1PS1\s0:15\*(tx2..4,19,21..22 +.X "non\*(txwhite characters" +\s-1USD\s0:15\*(tx12,24..25, \s-1USD\s0:16\*(tx13,15 +.X "non\*(txzero status" +\s-1USD\s0:4\*(tx31,43 +.X "NOOP messages" +imp(4) +.X "noraw()" +\s-1PS1\s0:18\*(tx13 +.X "nosave" +mail(1)\*(tx6, \s-1USD\s0:7\*(tx19 +.X "no\*(txspace mode" +\s-1USD\s0:24\*(tx13..16,28..30 +.X "NOSTRICT" +lint(1) +.X "notation, decimal" +ns(3n), printf(3s) +.X "notation, dot" +ifconfig(8c) +.X "notation, substring" +\s-1PS2\s0:10\*(tx33,38 +.X "note, policy" +\s-1USD\s0:11\*(tx10 +.X "note titles" +\s-1USD\s0:11\*(tx4,9 +.X "notes, base" +\s-1USD\s0:11\*(tx2,5,7..10 +.X "Notes, Checking for New" +\s-1USD\s0:11\*(tx15 +.X "notes, reading" +\s-1USD\s0:11\*(tx4..9 +.X "notesfile director" +\s-1USD\s0:11\*(tx4,9..10 +.X "notesfile names" +\s-1USD\s0:11\*(tx2..3 +.X "notesfile, nfcomment \*(tx subroutine to enter text into a" +\s-1USD\s0:11\*(tx13 +.X "notesfile, nfpipe \*(tx input from a pipe to a" +\s-1USD\s0:11\*(tx13 +.X "notesfile, nfprint \*(tx formatted listing of a" +\s-1USD\s0:11\*(tx13 +.X "Notesfile Reference Manual" +\s-1USD\s0:11 +.X "notesfile sequencer" +\s-1USD\s0:11\*(tx10 +.X "notesfile system" +\s-1USD\s0:9\*(tx2,5, \s-1USD\s0:11 +.X "notesfile system statistics" +\s-1USD\s0:11\*(tx14 +.X "notesfiles" +\s-1USD\s0:11\*(tx2..3 +.X "notes/responses, editing" +\s-1USD\s0:11\*(tx9 +.X "NOTIFY" +\s-1SMM\s0:10\*(tx3..4,18 +.X "notify command" +rdist(1)\*(tx3, \s-1USD\s0:4\*(tx41 +.X "notify shell command" +csh(1)\*(tx2,13 +.X "notify shell variable" +csh(1)\*(tx2,13,18 +.X "NOTREACHED" +lint(1) +.X "nouns and adjectives" +\s-1USD\s0:32\*(tx6 +.X "Novation ``Smart Cat''" +L\*(txdevices(5) +.X "np \*(tx Interlan Np100 10 Mb/s Ethernet interface" +ix(4), np(4), \s-1SMM\s0:12\*(tx17,23 \s-1SMM\s0:13\*(tx31 +.X "NPROC" +\s-1SMM\s0:2\*(tx30 +.X "NR awk variable (current record number)" +awk(1), \s-1USD\s0:19\*(tx2..5 +.X "nroff \*(tx text formatting and typesetting" +col(1), eqn(1), nroff(1), troff(1), \s-1USD\s0:20\*(tx1,6, \s-1USD\s0:23\*(tx1, \s-1USD\s0:24\*(tx2, \s-1USD\s0:26\*(tx7, \s-1SMM\s0:12\*(tx10, \s-1SMM\s0:20\*(tx2..4 +.X "nroff \*(txme" +\s-1USD\s0:22\*(tx1 +.X "nroff \*(txms" +ms(7)\*(tx1 +.X "NROFF Terminal Descriptions" +\s-1SMM\s0:20\*(tx2..10 +.X "nroff terminal descriptor, installing an" +\s-1SMM\s0:20\*(tx5 +.X "NROFF using \*(txme, Writing Papers with" +\s-1USD\s0:22 +.X "Nroff, Using the \*(txms Macros with Troff and" +\s-1USD\s0:20 +.X "NROFF/TROFF, Exit from" +\s-1USD\s0:24\*(tx25 +.X "NROFF/TROFF User's Manual" +\s-1USD\s0:24 +.X "NRPOS" +fs(5)\*(tx3 +.X "ns \*(tx Xerox Network Systems(tm) protocol family" +ns(4f) +.X "NS addresses" +ns(4f), nsip(4) +.X "NS Clearinghouse service" +\s-1PS1\s0:8\*(tx12 +.X "NS domain" +\s-1PS1\s0:8\*(tx3..7,11,14,30,32 +.X "NS domains, binding addresses to sockets in the Internet and" +\s-1PS1\s0:8\*(tx30 +.X "NS domains, Internet and" +\s-1PS1\s0:8\*(tx4,30..31 +.X "NS network numbers" +\s-1PS1\s0:8\*(tx13 +.X "NS Packet Sequences" +\s-1PS1\s0:8\*(tx35 +.X "NS packets" +ifconfig(8c) +.X "NS protocol family" +ns(3n), en(4), ns(4f), nsip(4), routed(8c)\*(tx3, \s-1SMM\s0:13\*(tx12,30 +.X "NS Routing Information Protocol daemon, XNSrouted \*(tx" +XNSrouted(8c) +.X "ns_addr, ns_ntoa \*(tx Xerox NS(tm) address conversion routine" +ns(3n) +.X "nsip \*(tx software network interface encapsulating ns packets in ip ..." +nsip(4), \s-1SMM\s0:2\*(tx33 +.X "ntohl" +byteorder(3n) +.X "ntohs()" +byteorder(3n), \s-1PS1\s0:7\*(tx11 +.X "NULL" +\s-1PS1\s0:18\*(tx7 +.X "null \*(tx data sink" +null(4) +.X "null bytes" +od(1), bstring(3), \s-1PS1\s0:1\*(tx3 +.X "null character" +ex(1), \s-1USD\s0:16\*(tx6, open(2), gets(3s), printf(3s), string(3), tty(4)\*(tx7, gettytab(5)\*(tx2, \s-1PS1\s0:2\*(tx8, \s-1PS2\s0:3\*(tx14, \s-1SMM\s0:20\*(tx4 +.X "null pointer" +\s-1PS1\s0:11\*(tx2..4, \s-1PS2\s0:3\*(tx13 +.X "null statements" +\s-1PS1\s0:1\*(tx23, \s-1PS1\s0:5\*(tx4..5, \s-1PS2\s0:6\*(tx4,19, \s-1PS2\s0:8\*(tx7 +.X "nulls, file containing" +\s-1PS1\s0:16\*(tx7 +.X "number \*(tx convert Arabic numerals to English" +number(6) +.X "number lines from n, stop if n = 0, .n2" +\s-1USD\s0:23\*(tx6 +.X "number lines in margin from one on each page, .n1" +\s-1USD\s0:23\*(tx6 +.X "number radix" +dc(1), \s-1USD\s0:5\*(tx3 +.X "number references" +\s-1USD\s0:29\*(tx4 +.X "number registers" +roffbib(1), ms(7)\*(tx3, \s-1USD\s0:20\*(tx5, \s-1USD\s0:23\*(tx1..5, \s-1USD\s0:24\*(tx2,4,8..9,13,15..17,21..22,28, \s-1USD\s0:25\*(tx9..11, \s-1USD\s0:28\*(tx7, \s-1USD\s0:29\*(tx4 +.X "number registers used in \*(txms" +\s-1USD\s0:20\*(tx7 +.X "number, signal" +sh(1)\*(tx5..6, ptrace(2), sigvec(2)\*(tx3, psignal(3), signal(3f) +.X "numbered footnote" +ms(7)\*(tx3 +.X "numbering" +\s-1USD\s0:25\*(tx8 +.X "numbering lines" +\s-1USD\s0:14\*(tx10 +.X "number\*(txlines\*(txin\*(txwindow" +\s-1USD\s0:17\*(tx39 +.X "numbers, article" +\s-1SMM\s0:10\*(tx8 +.X "numbers at the left\*(txhand margin" +\s-1USD\s0:21\*(tx2 +.X "numbers, block" +grep(1), icheck(8), \s-1SMM\s0:5\*(tx7 +.X "numbers, chapter" +\s-1USD\s0:22\*(tx13, \s-1USD\s0:23\*(tx3,8 +.X "numbers, complex" +\s-1PS2\s0:6\*(tx7,13 +.X "numbers, decimal" +number(6), \s-1USD\s0:19\*(tx3, \s-1SMM\s0:11\*(tx6 +.X "numbers, device" +find(1), ls(1), mount(2), setquota(2), swapon(2), dmf(4), hp(4)\*(tx1, rx(4), uda(4)\*(tx1, up(4)\*(tx1, types(5), mknod(8), mkproto(8), pstat(8)\*(tx1, reboot(8)\*(tx2, \s-1SMM\s0:1\*(tx3,21, \s-1SMM\s0:2\*(tx8, \s-1SMM\s0:13\*(tx18 +.X "numbers, directory inode" +\s-1SMM\s0:5\*(tx7..8 +.X "numbers, drive" +autoconf(4), hk(4), hp(4)\*(tx1, uda(4)\*(tx1, up(4)\*(tx1, \s-1SMM\s0:2\*(tx10 +.X "numbers, event" +csh(1)\*(tx4,18 +.X "numbers, file" +\s-1SMM\s0:13\*(tx6 +.X "numbers, floating point" +\s-1USD\s0:19\*(tx3, scanf(3s), \s-1PS1\s0:5\*(tx1,13, \s-1PS1\s0:15\*(tx31, \s-1PS2\s0:9\*(tx39,88, \s-1PS2\s0:10\*(tx8,34 +.X "numbers, footnote" +refer(1), \s-1USD\s0:21\*(tx1, \s-1USD\s0:22\*(tx8, \s-1USD\s0:23\*(tx9, \s-1USD\s0:29\*(tx4..8, \s-1USD\s0:30\*(tx9 +.X "numbers, i\*(txnode" +find(1), \s-1USD\s0:10\*(tx11, dir(5), tar(5), fsck(8), restore(8), \s-1SMM\s0:5\*(tx7..8 +.X "numbers, job" +atrm(1), csh(1)\*(tx16, lpq(1), lprm(1), \s-1USD\s0:4\*(tx17..18,39 +.X "numbers, message" +mail(1)\*(tx1, mh(1), msgs(1), \s-1USD\s0:7\*(tx3,6,12..16, \s-1USD\s0:8\*(tx4,6,39,48,66,102, bugfiler(8) +.X "numbers, network" +getnetent(3n), inet(3n), ns(3n), hy(4), imp(4), inet(4f), networks(5), \s-1SMM\s0:1\*(tx39..42, \s-1SMM\s0:13\*(tx21..22,28 +.X "numbers, node" +\s-1SMM\s0:19\*(tx3..5 +.X "numbers, port" +telnet(1c)\*(tx1, getservent(3n), ns(3n), rcmd(3), ns(4f), L\*(txdevices(5), L.sys(5)\*(tx2, services(5), ftpd(8c), named(8), rexecd(8c), rlogind(8c), rshd(8c), \s-1SMM\s0:9\*(tx13,15, \s-1SMM\s0:11\*(tx8, \s-1SMM\s0:13\*(tx26,28..29 +.X "numbers, process" +csh(1)\*(tx7, kill(1), ps(1)\*(tx2, sh(1)\*(tx2, \s-1USD\s0:1\*(tx10, \s-1USD\s0:3\*(tx2,9, \s-1USD\s0:4\*(tx17..19,26,42, kill(2) +.X "numbers, random" +rand(3f), random(3) +.X "numbers, real" +flmin(3f), \s-1PS1\s0:4\*(tx19,23,27,29, \s-1PS1\s0:16\*(tx8 +.X "numbers, reference" +refer(1), \s-1USD\s0:29\*(tx5,8, \s-1USD\s0:30\*(tx11 +.X "numbers, register" +\s-1SMM\s0:19\*(tx8,11,14,17,20,23..25 +.X "numbers, section" +\s-1USD\s0:22\*(tx12, \s-1USD\s0:23\*(tx2..3, \s-1USD\s0:24\*(tx29, \s-1USD\s0:25\*(tx11 +.X "numbers, sector" +badsect(8), \s-1SMM\s0:13\*(tx31 +.X "numbers, sequence" +\s-1USD\s0:19\*(tx5, \s-1SMM\s0:9\*(tx6, \s-1SMM\s0:10\*(tx11, \s-1SMM\s0:13\*(tx26, \s-1SMM\s0:15\*(tx3, \s-1SMM\s0:21\*(tx3, \s-1SMM\s0:22\*(tx2 +.X "numbers, Sethi\*(txUllman" +\s-1SMM\s0:19\*(tx15,22..25 +.X "numbers, source line" +dbx(1)\*(tx2, error(1)\*(tx2, pdx(1)\*(tx1, assert(3), \s-1SMM\s0:19\*(tx12 +.X "numbers, statement" +f77(1)\*(tx2, struct(1) +.X "numbers, telephone" +dn(4), remote(5) +.X "numbers, version" +f77(1)\*(tx2, patch(1)\*(tx1, \s-1USD\s0:16\*(tx11, \s-1USD\s0:17\*(tx47, \s-1SMM\s0:11\*(tx7 +.X "numeric Arguments to JOVE Commands" +\s-1USD\s0:17\*(tx5 +.X "numeric domains" +\s-1PS2\s0:10\*(tx8..9,34,41 +.X "numeric expressions" +window(1)\*(tx6, \s-1USD\s0:24\*(tx8,17,23 +.X "numeric labels" +\s-1PS1\s0:5\*(tx4..5, \s-1PS2\s0:6\*(tx25 +.X "numeric operations" +csh(1)\*(tx6 +.X "numeric types" +\s-1PS2\s0:10\*(tx7,34,36,39,41,77 +.X "numeric values" +\s-1PS1\s0:17\*(tx4, \s-1PS2\s0:10\*(tx7,38,50,82 +.X "numerical columns" +\s-1USD\s0:28\*(tx3..7 +.L O +.X "O_APPEND" +\s-1PS1\s0:6\*(tx28 +.X "obase" +\s-1USD\s0:6\*(tx3 +.X "object code" +dbx(1)\*(tx3, liszt(1), pix(1), \s-1PS1\s0:4\*(tx8, \s-1PS1\s0:11\*(tx5, \s-1PS1\s0:13\*(tx3, \s-1PS2\s0:10\*(tx68, \s-1SMM\s0:19\*(tx12 +.X "object code optimizer" +\s-1PS1\s0:2\*(tx5, \s-1PS1\s0:4\*(tx37 +.X "object files" +cc(1), dbx(1)\*(tx1,6..7, f77(1)\*(tx1, gprof(1), ld(1), liszt(1), lorder(1), make(1)\*(tx2, nm(1), pc(1), pdx(1)\*(tx1, size(1), strings(1), vwidth(1), \s-1USD\s0:4\*(tx6, \s-1PS1\s0:2\*(tx4, \s-1PS1\s0:4\*(tx26, \s-1PS1\s0:11\*(tx5, \s-1PS1\s0:12\*(tx2..3,6,8, \s-1PS1\s0:13\*(tx11, \s-1PS2\s0:1\*(tx2, \s-1PS2\s0:9\*(tx66..68,104,123..128, \s-1SMM\s0:1\*(tx7, \s-1SMM\s0:12\*(tx20 +.X "object modules" +ld(1), what(1), \s-1PS1\s0:5\*(tx11..12, \s-1PS1\s0:12\*(tx1, \s-1PS1\s0:14\*(tx5, \s-1PS2\s0:9\*(tx120, \s-1SMM\s0:2\*(tx6 +.X "object parameters" +\s-1PS2\s0:7\*(tx10..11 +.X "object programs" +cc(1), f77(1)\*(tx1, ld(1), liszt(1) +.X "object references (descriptors)" +\s-1PS1\s0:6 +.X "objects, functional" +\s-1PS2\s0:9\*(tx3,36..37,101..103 +.X "objects, lisp" +\s-1PS2\s0:9\*(tx4,8..9,20,28,30,61,75,105..108,111,154 +.X "O_CREAT" +\s-1PS1\s0:6\*(tx28 +.X "octal numbers" +csh(1)\*(tx9, \s-1USD\s0:8\*(tx86, scanf(3s) +.X "octal, unsigned" +od(1) +.X "od \*(tx octal, decimal, hex, ASCII dump" +od(1) +.X "odd and even footers" +\s-1USD\s0:21\*(tx3 +.X "odd and even headers" +\s-1USD\s0:21\*(tx3 +.X "ODT (console debugger mode)" +cons(4) +.X "oe ligature" +\s-1USD\s0:21\*(tx3 +.X "O_EXCL" +\s-1PS1\s0:6\*(tx28 +.X "offset into a file" +\s-1PS1\s0:6\*(tx30..31 +.X "offset, page" +ms(7)\*(tx3 +.X "offset relative to end\*(txof\*(txfile" +\s-1PS1\s0:6\*(tx31 +.X "offsets, byte" +\s-1PS2\s0:3\*(tx15, \s-1PS2\s0:4\*(tx8 +.X "off_t" +\s-1PS1\s0:6\*(tx5 +.X "OFS" +awk(1), \s-1USD\s0:19\*(tx3 +.X "old file system" +\s-1SMM\s0:14\*(tx3 +.X "old news, browsing through" +\s-1USD\s0:9\*(tx5 +.X "omin \*(tx multiple precision integer arithmetic" +mp(3x) +.X "omout \*(tx multiple precision integer arithmetic" +mp(3x) +.X "O_NDELAY" +\s-1PS1\s0:6\*(tx28 +.X "One Variable Query Processor error message summary" +\s-1PS2\s0:10\*(tx82 +.X "onintr shell command" +csh(1)\*(tx13, \s-1USD\s0:4\*(tx31 +.X "online documentation" +hier(7), \s-1USD\s0:1\*(tx4 +.X "OOB (see also out-of-band)" +spp(4p) +.X "open" +ln(1), creat(2), \s-1SMM\s0:1\*(tx2, \s-1SMM\s0:12\*(tx13, \s-1SMM\s0:13\*(tx6 +.X "open \*(tx open a file for reading or writing, or create a new file" +open(2), stat(2)\*(tx1 +.X "open a stream" +fopen(3s) +.X "open command" +\s-1USD\s0:15\*(tx21 +.X "open file descriptors" +open(2), mktemp(3), \s-1PS1\s0:8\*(tx41, \s-1PS2\s0:3\*(tx10, \s-1PS2\s0:4\*(tx2, \s-1SMM\s0:12\*(tx16 +.X "open file handling" +\s-1SMM\s0:13\*(tx6 +.X "open file table" +pstat(8)\*(tx3 +.X "open file table entries" +\s-1PS2\s0:4\*(tx9 +.X "open files" +test(1), dup(2), flock(2), intro(2)\*(tx2, open(2), select(2), stat(2)\*(tx1, fopen(3s), popen(3), \s-1PS1\s0:2\*(tx15, \s-1PS1\s0:6\*(tx28, \s-1PS2\s0:1\*(tx5..9, \s-1PS2\s0:3\*(tx4..7, \s-1PS2\s0:4\*(tx8..9, \s-1PS2\s0:5\*(tx1..2, pstat(8)\*(tx3, \s-1SMM\s0:1\*(tx23, \s-1SMM\s0:13\*(tx4,6, \s-1SMM\s0:14\*(tx12 +.X "open for read & write" +\s-1PS1\s0:6\*(tx28 +.X "open mode" +\s-1USD\s0:14\*(tx22, \s-1USD\s0:15\*(tx21..22, \s-1USD\s0:16\*(tx8 +.X "open quote" +\s-1USD\s0:24\*(tx9,33 +.X "open reference format" +\s-1USD\s0:31\*(tx2 +.X "open statement" +\s-1PS1\s0:2\*(tx12,15,23..25, \s-1PS1\s0:3\*(tx4,7, \s-1SMM\s0:12\*(tx7 +.X "Open System Interconnection (OSI) model" +\s-1SMM\s0:15\*(tx3 +.X "open with file create" +\s-1PS1\s0:6\*(tx28 +.X "open with truncation" +\s-1PS1\s0:6\*(tx28 +.X "opendir" +directory(3) +.X "openers, sentence" +style(1), \s-1USD\s0:32\*(tx1..2,6,10 +.X "opening datagram socket" +\s-1PS1\s0:7\*(tx9..13 +.X "opening stream socket" +\s-1PS1\s0:7\*(tx15..17,20..21 +.X "openlog \*(tx control system log" +syslog(3) +.X "open(path, oflag, mode)" +\s-1PS1\s0:6\*(tx28 +.X "openpl" +plot(3x) +.X "operand faults" +crash(8v)\*(tx2, \s-1SMM\s0:12\*(tx16 +.X "operands, illegal" +trapov(3f) +.X "operands, lvalue" +\s-1PS1\s0:1\*(tx4,8 +.X "Operating 4.3BSD on the VAX, Installing and" +\s-1SMM\s0:1 +.X "operation, multiuser" +reboot(2), fsck(8), init(8), reboot(8)\*(tx1 +.X "Operation of UUCP, Installation and" +\s-1SMM\s0:9 +.X "operation, single user" +init(8) +.X "operations, arithmetic" +bc(1), \s-1USD\s0:5\*(tx4, \s-1USD\s0:6\*(tx3, \s-1SMM\s0:19\*(tx20 +.X "operations, standalone system" +\s-1SMM\s0:1\*(tx24..25 +.X "operations, system" +\s-1SMM\s0:1\*(tx17,45,51 +.X "operator, comma" +\s-1PS1\s0:1\*(tx12,33 +.X "operator, mod" +\s-1PS1\s0:15\*(tx24, \s-1PS2\s0:10\*(tx76 +.X "operator precedence in C" +\s-1PS1\s0:1\*(tx32 +.X "operator precedences" +expr(1), \s-1USD\s0:24\*(tx9, \s-1USD\s0:25\*(tx10, \s-1USD\s0:26\*(tx2 +.X "operator, prefix" +\s-1PS1\s0:16\*(tx11, \s-1PS2\s0:6\*(tx11 +.X "operators, additive" +\s-1PS1\s0:1\*(tx6..9,12 +.X "operators, arithmetic" +\s-1USD\s0:19\*(tx5, \s-1USD\s0:25\*(tx10, \s-1PS1\s0:15\*(tx15, \s-1PS2\s0:7\*(tx5, \s-1PS2\s0:10\*(tx33..34 +.X "operators, assignment" +csh(1)\*(tx16, \s-1USD\s0:19\*(tx5, \s-1PS1\s0:1\*(tx8,11,33, \s-1PS1\s0:9\*(tx6, \s-1PS2\s0:6\*(tx13, \s-1SMM\s0:19\*(tx9,15,21..22 +.X "operators, binary" +\s-1PS1\s0:1\*(tx31..32, \s-1PS1\s0:15\*(tx14..15, \s-1PS2\s0:6\*(tx12, \s-1SMM\s0:19\*(tx4,21 +.X "operators, C" +awk(1), dbx(1)\*(tx3, \s-1SMM\s0:19\*(tx14 +.X "operators, Comparison" +\s-1PS2\s0:10\*(tx35 +.X "operators, conversion" +\s-1SMM\s0:19\*(tx2,8..11,18 +.X "operators, logical" +\s-1USD\s0:19\*(tx6, \s-1PS2\s0:6\*(tx13, \s-1PS2\s0:10\*(tx35 +.X "operators, multiplicative" +\s-1PS1\s0:1\*(tx6,9 +.X "operators, precedence of expression" +\s-1PS1\s0:1\*(tx6 +.X "operators, relational" +struct(1), \s-1USD\s0:6\*(tx5, \s-1USD\s0:19\*(tx1,3,6, \s-1USD\s0:25\*(tx10, \s-1PS1\s0:1\*(tx10, \s-1PS2\s0:6\*(tx13, \s-1PS2\s0:10\*(tx77 +.X "operators, shift" +\s-1PS1\s0:1\*(tx9, \s-1PS1\s0:9\*(tx8 +.X "operators, unary" +\s-1PS1\s0:1\*(tx6..7,30..32, \s-1PS1\s0:15\*(tx14..15, \s-1PS2\s0:6\*(tx11, \s-1PS2\s0:10\*(tx28, \s-1SMM\s0:19\*(tx4,18 +.X "optimization" +\s-1SMM\s0:12\*(tx6, \s-1SMM\s0:19\*(tx11 +.X "optimization, cursor movement" +curses(3x), \s-1PS1\s0:18\*(tx3,6..7,22 +.X "optimization preference" +fs(5)\*(tx1, newfs(8), tunefs(8) +.X "optimizer, C" +cc(1)\*(tx1 +.X "optimizer, object code" +trpfpe(3f), \s-1PS1\s0:2\*(tx5, \s-1PS1\s0:4\*(tx37 +.X "optimizer, peephole" +\s-1SMM\s0:12\*(tx4 +.X "optimizing storage utilization" +\s-1SMM\s0:14\*(tx4 +.X "option argument, example of parsing" +getopt(3) +.X "option arguments" +pc(1), sort(1), \s-1USD\s0:24\*(tx2, \s-1USD\s0:30\*(tx5, getopt(3) +.X "option flags" +rlogin(1c), tset(1)\*(tx1 +.X "option letters" +getopt(3) +.X "option lists" +\s-1USD\s0:33\*(tx8, ip(4p), \s-1SMM\s0:9\*(tx3 +.X "option names" +mail(1)\*(tx4, \s-1USD\s0:16\*(tx10, \s-1USD\s0:28\*(tx2, \s-1SMM\s0:15\*(tx19 +.X "option values" +dd(1), \s-1USD\s0:16\*(tx10, getsockopt(2), \s-1SMM\s0:12\*(tx14 +.X "options, boolean" +\s-1USD\s0:16\*(tx10 +.X "options, compilation" +\s-1SMM\s0:2\*(tx15, \s-1SMM\s0:7\*(tx34,36 +.X "options, command (see man pages for specific commands)" +.X "options, configuration file" +dmf(4), dmz(4), \s-1SMM\s0:2\*(tx32, \s-1SMM\s0:13\*(tx20 +.X "options, IP" +ip(4p), \s-1SMM\s0:12\*(tx17, \s-1SMM\s0:13\*(tx23..24 +.X "options, list of mail customizing" +\s-1USD\s0:7\*(tx17 +.X "options, list of mh commands and" +\s-1USD\s0:8\*(tx106 +.X "options, load\*(txtime" +cc(1)\*(tx1, f77(1)\*(tx1, pc(1) +.X "options, socket" +getsockopt(2), idp(4p), spp(4p), tcp(4p), \s-1SMM\s0:13\*(tx29, \s-1SMM\s0:15\*(tx25 +.X "order, alphabetical" +sort(1), \s-1USD\s0:1\*(tx5..7, \s-1USD\s0:7\*(tx17, \s-1PS2\s0:7\*(tx15, \s-1PS2\s0:9\*(tx16,39 +.X "order, ascending" +bad144(8) +.X "order, byte" +\s-1PS1\s0:8\*(tx15 +.X "order, column\*(txmajor" +\s-1PS1\s0:2\*(tx10,13, \s-1PS2\s0:6\*(tx16,22 +.X "order, network" +byteorder(3n), gethostbyname(3), inet(3n), \s-1SMM\s0:22\*(tx2 +.X "order of application of sed commands" +\s-1USD\s0:18\*(tx2 +.X "order, sort" +ruptime(1c), \s-1SMM\s0:12\*(tx11 +.X "ordered \*(tx storage structure type" +\s-1PS2\s0:10\*(tx29 +.X "ordering keys" +\s-1PS2\s0:10\*(tx23 +.X "orders, integer" +\s-1USD\s0:6\*(tx1,7, bessel(3f), j0(3m) +.X "O_RDONLY" +\s-1PS1\s0:6\*(tx28 +.X "O_RDWR" +\s-1PS1\s0:6\*(tx28 +.X "orphaned files" +fsck(8) +.X "ORS" +awk(1), \s-1USD\s0:19\*(tx3 +.X "o\*(txslash" +\s-1USD\s0:21\*(tx3 +.X "O_TRUNC" +\s-1PS1\s0:6\*(tx28 +.X "outer windows" +\s-1PS1\s0:18\*(tx14 +.X "outgoing mail" +mail(1)\*(tx6, \s-1USD\s0:7\*(tx19, \s-1USD\s0:8\*(tx101, \s-1SMM\s0:7\*(tx26,30 +.X "outgoing messages" +\s-1USD\s0:7\*(tx2, getsockopt(2), ifconfig(8c), \s-1SMM\s0:16\*(tx8 +.X "outgoing packets" +icmp(4p), imp(4p), ip(4p), \s-1PS1\s0:8\*(tx8,35, \s-1SMM\s0:15\*(tx12,16,23 +.X "outline of a sample paper" +\s-1USD\s0:22\*(tx14 +.X "out\*(txof\*(txband data" +getsockopt(2), socket(2), rcmd(3), rexec(3), intro(4n)\*(tx1, \s-1PS1\s0:6\*(tx33, \s-1PS1\s0:7\*(tx19, \s-1PS1\s0:8\*(tx8..9,24..25,36, \s-1SMM\s0:13\*(tx13..14, \s-1SMM\s0:15\*(tx17,25 +.X "out\*(txof\*(txband message, high\*(txpriority" +\s-1PS1\s0:6\*(tx35 +.X "output bases" +dc(1), \s-1USD\s0:5\*(tx1,3,6, \s-1USD\s0:6\*(tx3 +.X "output block size" +dd(1) +.X "output buffering" +\s-1PS1\s0:4\*(tx30 +.X "output buffers" +getsockopt(2), \s-1SMM\s0:15\*(tx14 +.X "output characters" +\s-1USD\s0:1\*(tx3, tty(4)\*(tx2, \s-1SMM\s0:20\*(tx4 +.X "output conversion" +\s-1USD\s0:6\*(tx3, ecvt(3), printf(3s) +.X "output, debugging" +lib2648(3x)\*(tx1,5, uucico(8c), \s-1SMM\s0:7\*(tx36, \s-1SMM\s0:9\*(tx2,4,6,8, \s-1SMM\s0:19\*(tx13 +.X "output device" +\s-1PS2\s0:10\*(tx16,64,67 +.X "output device resolution" +\s-1USD\s0:24\*(tx12, \s-1SMM\s0:12\*(tx10 +.X "output, diagnostic (see also messages)" +csh(1)\*(tx8..9, pi(1), stty(1)\*(tx1, \s-1USD\s0:4\*(tx16,36,41, \s-1USD\s0:8\*(tx36, rcmd(3), rexec(3), \s-1PS1\s0:4\*(tx15, \s-1PS1\s0:13\*(tx6,10,14, \s-1PS2\s0:1\*(tx10, \s-1PS2\s0:10\*(tx70 +.X "output, Error" +\s-1USD\s0:24\*(tx5,26, \s-1SMM\s0:6\*(tx3 +.X "output field" +\s-1PS1\s0:2\*(tx23 +.X "output field separator" +awk(1), \s-1USD\s0:19\*(tx2..3 +.X "output, file" +\s-1PS1\s0:3\*(tx4,11, \s-1PS1\s0:4\*(tx27,30,35..37,44,47, \s-1PS2\s0:1\*(tx9..12, \s-1PS2\s0:3\*(tx4,13..14, \s-1PS2\s0:9\*(tx126, \s-1PS2\s0:10\*(tx50 +.X "output filter specifications" +\s-1SMM\s0:6\*(tx5 +.X "output filters" +popen(3), \s-1SMM\s0:6\*(tx4 +.X "output, flush" +exit(3f), flush(3f), tty(4)\*(tx10 +.X "output, flush buffered" +exit(3) +.X "output flush character" +tty(4)\*(tx4 +.X "output formats" +awk(1) +.X "output, formatted" +printf(3s) +.X "output formatting" +\s-1USD\s0:19\*(tx3 +.X "output functions" +\s-1PS1\s0:18\*(tx6,8, \s-1SMM\s0:13\*(tx30 +.X "output, gathering of data for" +\s-1PS1\s0:6\*(tx25 +.X "output, graphic" +plot(3f) +.X "output line numbering" +\s-1USD\s0:24\*(tx4,23 +.X "output, message" +\s-1USD\s0:3\*(tx21, \s-1USD\s0:8\*(tx30 +.X "output, multicolumn" +col(1), \s-1USD\s0:23\*(tx5 +.X "output operations" +fseek(3s), \s-1SMM\s0:13\*(tx9, \s-1SMM\s0:15\*(tx14..15 +.X "output page" +vgrind(1), \s-1USD\s0:22\*(tx3, \s-1USD\s0:25\*(tx13 +.X "output, pending" +csh(1)\*(tx2, exit(3) +.X "output port" +\s-1PS2\s0:9\*(tx65,72,112 +.X "output processing" +tty(4)\*(tx4 +.X "output queues" +more(1)\*(tx3, tty(4)\*(tx2..4,7..8, \s-1SMM\s0:13\*(tx9,13, \s-1SMM\s0:15\*(tx11 +.X "output record separator" +awk(1), \s-1USD\s0:19\*(tx3 +.X "output, redirecting (see redirection)" +.X "output repeatedly" +yes(1) +.X "output saved vertical space" +\s-1USD\s0:24\*(tx14 +.X "output speeds" +gettytab(5)\*(tx2 +.X "output, standard" +csh(1)\*(tx8,11, setbuf(3s), stdio(3s), \s-1PS1\s0:7\*(tx4 +.X "output, stopping" +window(1)\*(tx3, \s-1USD\s0:4\*(tx10, tty(4)\*(tx9, gettytab(5)\*(tx2, \s-1SMM\s0:12\*(tx10 +.X "output stream" +m4(1), \s-1USD\s0:1\*(tx9, printf(3s), putc(3s), setbuf(3s), \s-1PS1\s0:4\*(tx38, \s-1PS1\s0:16\*(tx1, \s-1PS2\s0:3\*(tx14, \s-1PS2\s0:4\*(tx6 +.X "output, suppress formatted" +\s-1USD\s0:24\*(tx2 +.X "output tabs" +nroff(1) +.X "output, Terminal" +stty(1)\*(tx2, \s-1PS1\s0:6\*(tx38, \s-1PS1\s0:8\*(tx25 +.X "output, text length on the last line" +\s-1USD\s0:24\*(tx12 +.X "output text line" +\s-1USD\s0:24\*(tx12..14 +.X "output to files (see also redirection)" +\s-1USD\s0:4\*(tx4 +.X "output translation" +\s-1USD\s0:24\*(tx20 +.X "output units" +\s-1PS1\s0:2\*(tx24, \s-1PS2\s0:6\*(tx21..22,28 +.X "output, write, writev \*(tx write" +write(2) +.X "output(c)" +\s-1PS1\s0:16\*(tx6 +.X "overflow" +infnan(3m), \s-1PS1\s0:4\*(tx47 +.X "overflow and divide check in expression evaluation" +\s-1PS1\s0:1\*(tx6 +.X "overflow, buffer" +\s-1PS2\s0:10\*(tx79,82 +.X "overflow, floating point" +trapov(3f) +.X "overflow, integer" +floor(3m), math(3m)\*(tx2, traper(3f) +.X "overflow, silo" +dh(4), dhu(4), dmf(4), dmz(4), dz(4) +.X "overhead, system call" +ik(4), ps(4), \s-1SMM\s0:14\*(tx9 +.X "overlapping windows" +\s-1PS1\s0:18\*(tx6,16 +.X "overlay(win1, win2)" +\s-1PS1\s0:18\*(tx11 +.X "overstrikes" +ul(1), \s-1USD\s0:24\*(tx2,19,21, \s-1USD\s0:25\*(tx7 +.X "over\*(txwrite\*(txmode" +\s-1USD\s0:17\*(tx2,23,39 +.X "overwrite(win1, win2)" +\s-1PS1\s0:18\*(tx11 +.X "owner (pid/pgrp), get descriptor" +\s-1PS1\s0:6\*(tx19 +.X "owners, list" +\s-1SMM\s0:7\*(tx11, \s-1SMM\s0:12\*(tx22 +.X "ownership, file" +chgrp(1), find(1), chown(2), \s-1PS1\s0:6\*(tx29 +.X "ownership, quot \*(tx summarize file system" +quot(8) +.X "O_WRONLY" +\s-1PS1\s0:6\*(tx28 +.L P +.X "P0 region" +\s-1PS1\s0:6\*(tx10 +.X "P1 region" +\s-1PS1\s0:6\*(tx10 +.X "P1003 committee on Unix" +\s-1USD\s0:9\*(tx11 +.X "pac \*(tx printer/plotter accounting information" +pac(8), \s-1SMM\s0:12\*(tx21 +.X "packet, ECHO_REQUEST" +ping(8), routed(8c)\*(tx1, XNSrouted(8c) +.X "packet, ECHO_RESPONSE" +ping(8) +.X "packet exchange" +\s-1PS1\s0:6\*(tx33, \s-1PS1\s0:8\*(tx38,40 +.X "packet forwarding" +\s-1SMM\s0:1\*(tx41, \s-1SMM\s0:15\*(tx25 +.X "packet headers" +\s-1SMM\s0:15\*(tx23 +.X "packet, PEX" +\s-1PS1\s0:8\*(tx40 +.X "packet reception" +\s-1SMM\s0:15\*(tx20 +.X "packet sequencing information" +trpt(8c), trsp(8c) +.X "packet size" +arp(4p), \s-1SMM\s0:13\*(tx26, \s-1SMM\s0:15\*(tx17 +.X "packet transmission" +\s-1SMM\s0:15\*(tx19 +.X "packet type" +idp(4p), vv(4) +.X "packet, zero\*(txlength" +\s-1PS1\s0:8\*(tx38..39, \s-1SMM\s0:13\*(tx14 +.X "packets, broadcast" +idp(4p), udp(4p), vv(4), routed(8c)\*(tx1, XNSrouted(8c), \s-1SMM\s0:15\*(tx11..12,18,25 +.X "packets, data" +\s-1SMM\s0:15\*(tx3,23 +.X "packets, error" +\s-1SMM\s0:13\*(tx20,24,27 +.X "packets, IDP" +idp(4p), \s-1SMM\s0:2\*(tx33 +.X "packets, Incoming" +icmp(4p), intro(4n)\*(tx3, ip(4p), routed(8c)\*(tx1, XNSrouted(8c), \s-1SMM\s0:13\*(tx23, \s-1SMM\s0:15\*(tx20,25..26 +.X "packets, NS" +ifconfig(8c) +.X "packets, Outgoing" +icmp(4p), imp(4p), ip(4p), \s-1PS1\s0:8\*(tx8,35, \s-1SMM\s0:15\*(tx12,16,23 +.X "packets, queuing and dequeuing" +\s-1SMM\s0:15\*(tx20 +.X "packets, request" +routed(8c)\*(tx1, XNSrouted(8c) +.X "packets, response" +routed(8c)\*(tx1, XNSrouted(8c) +.X "packets, routing" +intro(4n)\*(tx3, \s-1SMM\s0:1\*(tx40 +.X "packets, sequenced" +\s-1PS1\s0:6\*(tx33 +.X "packets, trailer" +arp(4p), vv(4), \s-1SMM\s0:13\*(tx27 +.X "packets transferred" +netstat(1) +.X "packf \*(tx compress a folder into a single file" +\s-1USD\s0:8\*(tx42,46 +.X "pad characters" +termcap(3x), termcap(5)\*(tx12 +.X "pad records to size" +dd(1) +.X "padding in the terminal driver" +termcap(5)\*(tx11 +.X "page, Begin" +man(7), \s-1USD\s0:24\*(tx11, \s-1USD\s0:25\*(tx8 +.X "page boundaries" +ld(1), \s-1USD\s0:20\*(tx5, \s-1USD\s0:22\*(tx5, \s-1USD\s0:25\*(tx9,12..13, valloc(3c), \s-1SMM\s0:14\*(tx11, \s-1SMM\s0:15\*(tx13 +.X "page, burst" +lpr(1), lpd(8) +.X "page clusters" +pstat(8)\*(tx3, \s-1SMM\s0:13\*(tx3,13, \s-1SMM\s0:15\*(tx4..5 +.X "page control" +\s-1USD\s0:24\*(tx3,11 +.X "page faults" +systat(1)\*(tx3, vmstat(1), \s-1USD\s0:4\*(tx24,44, getrusage(2), vtimes(3c), crash(8v)\*(tx2, \s-1SMM\s0:13\*(tx13 +.X "page footer" +ms(7), \s-1USD\s0:20\*(tx2,5, \s-1USD\s0:28\*(tx7 +.X "page header" +pr(1), ms(7)\*(tx1 +.X "page headings/footings" +\s-1USD\s0:20\*(tx2 +.X "page, index" +\s-1USD\s0:11 +.X "page layout" +\s-1USD\s0:22\*(tx3, \s-1USD\s0:25\*(tx12 +.X "page length" +pr(1), \s-1USD\s0:23\*(tx2,9, \s-1USD\s0:24\*(tx11,16, printcap(5), \s-1SMM\s0:6\*(tx4 +.X "page margins" +\s-1USD\s0:24\*(tx28 +.X "page, motion up or down the" +\s-1USD\s0:25\*(tx6 +.X "page, new" +\s-1USD\s0:20\*(tx5 +.X "page number character" +\s-1USD\s0:24\*(tx23 +.X "page number in Arabic, .ar Set" +\s-1USD\s0:23\*(tx6 +.X "page number in roman numeral, .ro Set" +\s-1USD\s0:23\*(tx6 +.X "page numbers" +nroff(1), pr(1), troff(1), ms(7)\*(tx1, \s-1USD\s0:20\*(tx2,5, \s-1USD\s0:21\*(tx1, \s-1USD\s0:22\*(tx3,7..8,13,16, \s-1USD\s0:23\*(tx5,8, \s-1USD\s0:24\*(tx2,11,14,23,28..29, \s-1USD\s0:25\*(tx9..11, \s-1USD\s0:29\*(tx4..5,8, \s-1USD\s0:31\*(tx5, \s-1SMM\s0:13\*(tx16 +.X "page offset" +roffbib(1), ms(7)\*(tx3, \s-1USD\s0:23\*(tx2, \s-1USD\s0:24\*(tx11, \s-1USD\s0:25\*(tx4, \s-1USD\s0:29\*(tx4 +.X "page, output" +vgrind(1), \s-1USD\s0:22\*(tx3, \s-1USD\s0:25\*(tx13 +.X "page position" +\s-1USD\s0:24\*(tx16,28,31 +.X "page reclaims" +getrusage(2) +.X "page size" +brk(2), getpagesize(2), \s-1SMM\s0:15\*(tx4 +.X "page tables" +systat(1)\*(tx2,5, \s-1SMM\s0:2\*(tx31, \s-1SMM\s0:13\*(tx6,16..20, \s-1SMM\s0:15\*(tx24 +.X "page, text base\*(txline position on the" +\s-1USD\s0:24\*(tx12 +.X "page, title" +\s-1USD\s0:22\*(tx13, \s-1USD\s0:23\*(tx8, \s-1USD\s0:31\*(tx4 +.X "page titles" +ms(7)\*(tx2, \s-1USD\s0:20\*(tx1, \s-1USD\s0:25\*(tx12 +.X "page traps" +\s-1USD\s0:24\*(tx16 +.X "page width" +adb(1)\*(tx4, lpr(1), lp(4), printcap(5), lpd(8) +.X "page\*(txnext\*(txwindow (ESC C\*(txV)" +\s-1USD\s0:17\*(tx39 +.X "page\*(txnumber register" +\s-1USD\s0:24\*(tx23 +.X "PAGER environment variable" +mail(1)\*(tx6, \s-1USD\s0:11\*(tx12, \s-1SMM\s0:10\*(tx3, \s-1SMM\s0:12\*(tx9 +.X "pages" +more(1)\*(tx1, \s-1USD\s0:25\*(tx8 +.X "pages are core resident, information about whether" +\s-1PS1\s0:6\*(tx12 +.X "pages, buffer" +\s-1SMM\s0:2\*(tx31, \s-1SMM\s0:13\*(tx19, \s-1SMM\s0:15\*(tx14 +.X "pages, data" +execve(2), core(5), \s-1SMM\s0:15\*(tx14,26 +.X "pages, first" +\s-1USD\s0:20\*(tx2 +.X "pages, manual" +\s-1PS1\s0:18\*(tx7 +.X "pages, mapped" +\s-1PS1\s0:6\*(tx10 +.X "pages, memory" +getrusage(2), vtimes(3c), \s-1SMM\s0:15\*(tx14 +.X "pages, physical" +systat(1)\*(tx2 +.X "pages, primary" +\s-1PS2\s0:10\*(tx24 +.X "pages, protection of" +\s-1PS1\s0:6\*(tx11 +.X "pages, text" +systat(1)\*(tx2..3, \s-1SMM\s0:13\*(tx9,16 +.X "pagesize \*(tx print system page size" +pagesize(1) +.X "paging activity" +vmstat(1), \s-1SMM\s0:1\*(tx29..30 +.X "paging and swapping" +\s-1PS1\s0:6\*(tx23 +.X "paging areas" +hp(4)\*(tx3, uda(4)\*(tx2, up(4)\*(tx2, \s-1SMM\s0:1\*(tx4,13,28..30, \s-1SMM\s0:2\*(tx8,13,26,32 +.X "paging devices" +drum(4), crash(8v)\*(tx1, swapon(8), \s-1SMM\s0:2\*(tx5,7 +.X "paging, Scrolling and" +\s-1USD\s0:15\*(tx4 +.X "paging space" +\s-1SMM\s0:1\*(tx29, \s-1SMM\s0:2\*(tx32 +.X "paging/swapping, swapon \*(tx add a swap device for interleaved" +swapon(2) +.X "pairs, key/content" +dbm(3x), ndbm(3) +.X "pairs of sockets (see socketpairs)" +\s-1PS1\s0:6\*(tx34 +.X "pairs, register" +\s-1SMM\s0:19\*(tx15,19,22 +.X "panic messages" +syslog(3), crash(8v) +.X "panics, Translator" +\s-1PS1\s0:4\*(tx25 +.X "paper loading" +nroff(1), troff(1), \s-1USD\s0:24\*(tx2 +.X "paper, outline of a sample" +\s-1USD\s0:22\*(tx14 +.X "paragraph, Begin" +man(7) +.X "paragraph commands" +\s-1USD\s0:15\*(tx10, \s-1USD\s0:17\*(tx12 +.X "paragraph distance" +ms(7)\*(tx3 +.X "paragraph, exdented" +\s-1USD\s0:21\*(tx2 +.X "paragraph, format a" +fmt(1) +.X "paragraph, left\*(txaligned (block)" +\s-1USD\s0:20\*(tx1 +.X "paragraph, .lp Begin left\*(txjustified" +\s-1USD\s0:23\*(tx2 +.X "paragraph macros" +\s-1USD\s0:15\*(tx10, \s-1USD\s0:23\*(tx2, \s-1USD\s0:24\*(tx29, \s-1USD\s0:25\*(tx8,10, \s-1USD\s0:29\*(tx7 +.X "paragraphing" +ms(7)\*(tx2, \s-1USD\s0:15\*(tx10, \s-1USD\s0:16\*(tx17, \s-1USD\s0:20\*(tx1..2, \s-1USD\s0:22\*(tx2,9, \s-1USD\s0:23\*(tx2, \s-1USD\s0:24\*(tx2,29 +.X "paragraphs, annotation" +refer(1), roffbib(1), \s-1USD\s0:29\*(tx4,7 +.X "paragraphs, indented" +ms(7)\*(tx3, \s-1USD\s0:20\*(tx3, \s-1USD\s0:22\*(tx10, \s-1USD\s0:23\*(tx1..2, \s-1USD\s0:24\*(tx29, \s-1USD\s0:25\*(tx8 +.X "paragraphs, left\*(txjustified block\*(txstyle" +\s-1USD\s0:22\*(tx9 +.X "paragraphs, manipulating sentences and" +\s-1USD\s0:17\*(tx11 +.X "paragraphs, .np numbered" +\s-1USD\s0:23\*(tx2 +.X "parallel printer port on the DMF32" +\s-1SMM\s0:13\*(tx33 +.X "parameter passing" +\s-1USD\s0:3\*(tx1 +.X "PARAMETER Statement" +\s-1PS1\s0:2\*(tx18 +.X "parameter substitution" +sh(1)\*(tx2, \s-1USD\s0:3\*(tx8,13,15..17 +.X "parameters" +dbx(5)\*(tx1 +.X "parameters, configuration" +\s-1SMM\s0:2\*(tx9, \s-1SMM\s0:7\*(tx13, \s-1SMM\s0:13\*(tx15 +.X "parameters, file system" +mkfs(8), newfs(8), \s-1SMM\s0:1\*(tx30 +.X "parameters, formal" +\s-1USD\s0:6\*(tx10, \s-1PS1\s0:1\*(tx7,24..28, \s-1PS1\s0:4\*(tx41, \s-1PS2\s0:6\*(tx11, \s-1PS2\s0:9\*(tx46,95,98, \s-1SMM\s0:19\*(tx7 +.X "parameters, functional" +\s-1PS2\s0:7\*(tx28,30,33 +.X "parameters, Global configuration" +\s-1SMM\s0:2\*(tx7,15 +.X "parameters, Keyword" +\s-1USD\s0:3\*(tx14..15 +.X "parameters, object" +\s-1PS2\s0:7\*(tx10..11 +.X "parameters, optional" +rdist(1)\*(tx2, ifconfig(8c), \s-1SMM\s0:2\*(tx3 +.X "parameters, positional" +csh(1)\*(tx17, sh(1)\*(tx2,5, \s-1USD\s0:3\*(tx5..6,9,14..17 +.X "parameters, set" +\s-1USD\s0:16\*(tx10 +.X "paren\*(txflash\*(txdelay (variable)" +\s-1USD\s0:17\*(tx40 +.X "parent directory" +mkdir(1), \s-1USD\s0:3\*(tx3, \s-1USD\s0:4\*(tx34, intro(2)\*(tx6, mkdir(2), rename(2), dir(5), \s-1SMM\s0:2\*(tx4, \s-1SMM\s0:14\*(tx13 +.X "parent folder" +\s-1USD\s0:8\*(tx60 +.X "parent process" +wait(1), exit(2), fork(2), ptrace(2), vfork(2), wait(2), exit(3f), \s-1PS1\s0:2\*(tx16, \s-1PS1\s0:6\*(tx7, \s-1PS1\s0:7\*(tx4, \s-1PS2\s0:1\*(tx8,11, \s-1PS2\s0:4\*(tx3, \s-1SMM\s0:13\*(tx5 +.X "parent process ID" +execve(2), exit(2), fork(2), getpid(2), intro(2)\*(tx5 +.X "parenthesis and brace matching" +\s-1USD\s0:17\*(tx21..23 +.X "parenthesized commands" +csh(1)\*(tx19 +.X "parity" +stty(1)\*(tx1, gettytab(5), remote(5), \s-1PS1\s0:6\*(tx39 +.X "parity, odd" +od(1), tty(4)\*(tx2, gettytab(5)\*(tx2..3 +.X "parse\*(txerrors" +\s-1USD\s0:17\*(tx40 +.X "parser" +\s-1PS1\s0:15\*(tx1,7, \s-1PS2\s0:7\*(tx27, \s-1PS2\s0:10\*(tx70,76,78 +.X "parser actions" +\s-1PS1\s0:15\*(tx9,14,18 +.X "parser, bottom\*(txup" +\s-1SMM\s0:19\*(tx4,6 +.X "parser error message summary" +\s-1PS2\s0:10\*(tx76 +.X "parser generators" +\s-1PS1\s0:15\*(tx12, \s-1PS1\s0:16\*(tx2 +.X "parsers, Yacc" +\s-1PS1\s0:15\*(tx7,19, \s-1PS1\s0:16\*(tx9 +.X "parse\*(txspecial\*(txerrors" +\s-1USD\s0:17\*(tx40 +.X "parsing conflicts" +\s-1PS1\s0:15\*(tx14..16 +.X "parsing, error message" +\s-1USD\s0:17\*(tx22 +.X "parsing, LR(1)" +yacc(1) +.X "part of a file, writing out" +\s-1USD\s0:13\*(tx13 +.X "partial citations" +\s-1USD\s0:29\*(tx4..6,9 +.X "partial letter" +\s-1USD\s0:7\*(tx2,19 +.X "partial lines" +\s-1USD\s0:24\*(tx12, \s-1USD\s0:25\*(tx13 +.X "partition" +\s-1SMM\s0:14\*(tx3 +.X "partition sizes" +hk(4), \s-1SMM\s0:1\*(tx28, \s-1SMM\s0:2\*(tx8 +.X "partition, swap" +\s-1SMM\s0:1\*(tx20, \s-1SMM\s0:2\*(tx26 +.X "partition tables" +hk(4), hp(4)\*(tx4, uda(4)\*(tx1, up(4)\*(tx3, \s-1SMM\s0:1\*(tx29, \s-1SMM\s0:13\*(tx34 +.X "partitions, disk" +hk(4), hp(4)\*(tx4, up(4)\*(tx3, disktab(5), fstab(5), reboot(8), \s-1SMM\s0:1\*(tx4,7,10,18,20,28,51,63, \s-1SMM\s0:2\*(tx26..27, \s-1SMM\s0:5\*(tx3, \s-1SMM\s0:14\*(tx3..4 +.X "partitions, dump" +\s-1SMM\s0:2\*(tx26, \s-1SMM\s0:12\*(tx22 +.X "partitions, file system" +bad144(8), format(8v)\*(tx1, \s-1SMM\s0:2\*(tx8 +.X "partitions, RK06" +hk(4) +.X "partitions, RM03" +hp(4)\*(tx2 +.X "partitions, RM05" +hp(4)\*(tx2 +.X "parts of speech" +style(1), \s-1USD\s0:32\*(tx2 +.X "Pascal" +ctags(1), dbx(1)\*(tx1,3, error(1), file(1), pi(1), pix(1), px(1), vgrind(1), dbx(5)\*(tx1, \s-1PS1\s0:4, \s-1PS1\s0:4, \s-1PS2\s0:1\*(tx2, \s-1PS2\s0:7\*(tx5, \s-1PS2\s0:8\*(tx2,11, \s-1PS2\s0:9\*(tx105..108, \s-1SMM\s0:12\*(tx2,10 +.X "Pascal 6000\*(tx3" +pc(1), intro(3)\*(tx1, stab(5), \s-1PS1\s0:4\*(tx19,22,34,42,46,49..50, \s-1SMM\s0:19\*(tx24 +.X "Pascal conventions" +\s-1SMM\s0:12\*(tx10 +.X "Pascal cross\*(txreference program" +pxref(1) +.X "pascal debugger, pdx \*(tx" +pdx(1)\*(tx1 +.X "Pascal documents" +\s-1PS1\s0:4\*(tx3..4 +.X "Pascal execution profiler, pxp \*(tx" +pxp(1) +.X "Pascal, Extensions to the language" +\s-1PS1\s0:4\*(tx42 +.X "Pascal file variables, associations of UNIX file names with" +\s-1PS1\s0:4\*(tx31 +.X "Pascal files" +\s-1PS1\s0:4\*(tx28,31,43,48, \s-1PS2\s0:9\*(tx65 +.X "Pascal, nonstandard functions and procedures in Berkeley" +\s-1PS1\s0:4\*(tx49 +.X "Pascal prettyprinter" +\s-1PS1\s0:4\*(tx39 +.X "Pascal programs" +pmerge(1), px(1), \s-1PS1\s0:4\*(tx8,27..29,34,36,41,49, \s-1PS2\s0:9\*(tx106 +.X "Pascal, Standard" +\s-1PS1\s0:4\*(tx7,26,28..31,35,44..45 +.X "Pascal translator" +\s-1PS1\s0:4\*(tx7,21..24 +.X "Pascal User's Manual, Berkeley" +\s-1PS1\s0:4 +.X "passive sockets" +spp(4p), tcp(4p) +.X "passive verbs" +style(1), \s-1USD\s0:32\*(tx2,5..6 +.X "passwd" +\s-1SMM\s0:12\*(tx10 +.X "passwd \*(tx change password" +passwd(1) +.X "passwd \*(tx password file" +passwd(5) +.X "passwd, struct" +getpwent(3) +.X "passwdfile.dir" +mkpasswd(8) +.X "passwdfile.pag" +mkpasswd(8) +.X "password encryption" +crypt(3) +.X "password file" +login(1), sort(1), su(1), \s-1USD\s0:4\*(tx39, getpw(3c), getpwent(3), initgroups(3), passwd(5), \s-1PS2\s0:1\*(tx12, \s-1PS2\s0:3\*(tx15, \s-1PS2\s0:9\*(tx63,72,84, adduser(8), chown(8), ftpd(8c), lpd(8), mkpasswd(8), rshd(8c), vipw(8), \s-1SMM\s0:1\*(tx36, \s-1SMM\s0:12\*(tx2,8,10, \s-1SMM\s0:17\*(tx3, \s-1SMM\s0:18\*(tx2..5 +.X "password file entries" +getlogin(3), getpwent(3) +.X "password, getpass \*(tx read a" +getpass(3) +.X "password, root" +su(1), \s-1SMM\s0:1\*(tx21 +.X "password security" +\s-1SMM\s0:17\*(tx3, \s-1SMM\s0:18\*(tx1 +.X "Password Security: A Case History" +\s-1SMM\s0:18\ +.X "passwords" +\s-1USD\s0:14\*(tx4, rexecd(8c), \s-1SMM\s0:18\*(tx5 +.X "passwords, encrypted" +crypt(3), getgrent(3), group(5), passwd(5), adduser(8), \s-1SMM\s0:17\*(tx3, \s-1SMM\s0:18\*(tx5 +.X "passwords, salted" +\s-1SMM\s0:18\*(tx5 +.X "paste, cut and" +\s-1USD\s0:13\*(tx11 +.X "patch \*(tx a program for applying a diff file to an original" +patch(1)\*(tx1, \s-1SMM\s0:12\*(tx23 +.X "patch files" +patch(1) +.X "patching files" +\s-1PS1\s0:10\*(tx12 +.X "PATH environment variables" +csh(1)\*(tx14,17, mh(1)\*(tx1, sh(1)\*(tx2, which(1), environ(7), \s-1USD\s0:3\*(tx9, \s-1USD\s0:8\*(tx6, \s-1SMM\s0:9\*(tx5,19, \s-1SMM\s0:10\*(tx4,21 +.X "path, output data" +\s-1SMM\s0:15\*(tx14 +.X "path prefix" +chdir(2) +.X "path, search" +csh(1)\*(tx18, man(1), rsh(1c), sh(1)\*(tx2,4, \s-1USD\s0:3\*(tx9, \s-1USD\s0:4\*(tx12,23,34, \s-1USD\s0:8\*(tx8, \s-1PS2\s0:9\*(tx67..68, \s-1SMM\s0:9\*(tx14 +.X "path shell variable" +csh(1)\*(tx14,17..18 +.X "path variable" +\s-1USD\s0:4\*(tx41 +.X "pathalias" +\s-1SMM\s0:12\*(tx23 +.X "pathname" +csh(1)\*(tx18, rcp(1c), \s-1USD\s0:4\*(tx6,41 \s-1USD\s0:7\*(tx8,17, \s-1USD\s0:8\*(tx2,103, chdir(2), chroot(2), intro(2), mount(2), open(2), chdir(3f), getcwd(3f), fs(5)\*(tx3, \s-1PS1\s0:6\*(tx27, \s-1PS1\s0:7\*(tx8, \s-1PS1\s0:8\*(tx5, \s-1PS2\s0:1\*(tx3..9, \s-1PS2\s0:4\*(tx7..9, \s-1SMM\s0:1\*(tx26, \s-1SMM\s0:5\*(tx7, \s-1SMM\s0:10\*(tx4,13, \s-1SMM\s0:12\*(tx7,9, \s-1SMM\s0:14\*(tx13, \s-1SMM\s0:17\*(tx2 +.X "pathname, last component of a" +\s-1USD\s0:4\*(tx29 +.X "pathnames, absolute" +\s-1USD\s0:4\*(tx6,20,34,43, \s-1USD\s0:7\*(tx18, termcap(5)\*(tx6, \s-1SMM\s0:14\*(tx13 +.X "pathnames, relative" +\s-1USD\s0:4\*(tx34,42, \s-1SMM\s0:14\*(tx13 +.X "pattern BEGIN" +\s-1USD\s0:19\*(tx3 +.X "pattern END" +\s-1USD\s0:19\*(tx3 +.X "pattern matching" +awk(1), csh(1)\*(tx7, \s-1USD\s0:12\*(tx9, regex(3) +.X "pattern matching, approximate" +patch(1)\*(tx2 +.X "pattern matching operations" +\s-1USD\s0:1\*(tx7, \s-1USD\s0:3\*(tx7, \s-1USD\s0:8\*(tx47, \s-1USD\s0:18\*(tx2,8, \s-1USD\s0:32\*(tx7, \s-1SMM\s0:16\*(tx9 +.X "pattern, most recent" +\s-1USD\s0:13\*(tx8 +.X "pattern ranges" +\s-1USD\s0:19\*(tx4 +.X "Pattern Scanning and Processing Language, Awk \*(tx A" +\s-1USD\s0:19\*(tx1 +.X "pattern spaces" +sed(1), \s-1USD\s0:18\*(tx2..4,8..9 +.X "patterns" +awk(1), \s-1USD\s0:14\*(tx9, \s-1USD\s0:18\*(tx3, \s-1USD\s0:19\*(tx3 +.X "patterns, awk" +\s-1USD\s0:19\*(tx1,3 +.X "Patterns, DICTION" +\s-1USD\s0:32\*(tx14 +.X "patterns, Grep" +grep(1), \s-1USD\s0:8\*(tx47 +.X "patterns, replacement" +\s-1USD\s0:14\*(tx19, \s-1USD\s0:16\*(tx13..16 +.X "patterns, search" +\s-1USD\s0:8\*(tx47, \s-1USD\s0:13\*(tx15, \s-1USD\s0:15\*(tx24, \s-1USD\s0:17\*(tx10,38 +.X "patterns, searching for lines which match any of a set of" +\s-1USD\s0:19\*(tx1 +.X "patterns, substitute replacement" +\s-1USD\s0:16\*(tx13..14 +.X "patterns, test" +format(8v)\*(tx1, \s-1SMM\s0:1\*(tx10 +.X "pattern\*(txspace" +\s-1USD\s0:18\*(tx2 +.X "pause \*(tx stop until signal" +pause(3c) +.X "pause\*(txjove (ESC S)" +\s-1USD\s0:17\*(tx5,40 +.X "Pausing \*(tx Leaving JOVE, Exiting and" +\s-1USD\s0:17\*(tx5 +.X "pc" +dbx(5)\*(tx1, \s-1PS1\s0:4\*(tx35,37,41, \s-1PS1\s0:18\*(tx18, \s-1SMM\s0:19\*(tx24 +.X "pc \*(tx Pascal compiler" +pc(1), intro(3)\*(tx1, stab(5) +.X "pcl \*(tx DEC CSS PCL\*(tx11 B Network Interface" +pcl(4) +.X "pclose" +popen(3) +.X "PD paragraph spacing" +\s-1USD\s0:20\*(tx5 +.X "PDP\*(tx10" +ftp(1c)\*(tx6 +.X "PDP\*(tx10 CMULisp" +\s-1PS2\s0:9\*(tx128,140 +.X "PDP\*(tx11, DEC" +\s-1PS1\s0:1\*(tx3..4,13,16, \s-1PS1\s0:2\*(tx4, \s-1PS1\s0:4\*(tx25,47, \s-1PS1\s0:9\*(tx4,6..8, \s-1PS2\s0:1\*(tx2, \s-1PS2\s0:3\*(tx12 +.X "PDP\*(tx20" +ftp(1c)\*(tx6 +.X "pdx \*(tx pascal debugger" +pdx(1)\*(tx1 +.X "pdxinit" +pdx(1)\*(tx1 +.X "peek" +\s-1SMM\s0:15\*(tx17 +.X "peek at incoming message" +\s-1PS1\s0:6\*(tx35, \s-1PS1\s0:7\*(tx23, \s-1PS1\s0:8\*(tx8,24 +.X "peeking at a message without reading" +\s-1PS1\s0:6\*(tx35 +.X "peephole optimizer" +\s-1SMM\s0:12\*(tx4 +.X "peer, connected" +getpeername(2), \s-1SMM\s0:15\*(tx16 +.X "pending connections" +accept(2), listen(2), \s-1PS1\s0:7\*(tx14,18, \s-1PS1\s0:8\*(tx7, \s-1SMM\s0:13\*(tx15, \s-1SMM\s0:15\*(tx16 +.X "pending input" +tty(4)\*(tx1,3..4 +.X "pending output" +csh(1)\*(tx2, exit(3) +.X "pending system calls" +\s-1SMM\s0:12\*(tx2, \s-1SMM\s0:13\*(tx5 +.X "percent sign" +\s-1USD\s0:1\*(tx2 +.X "performance, file system" +\s-1SMM\s0:14\*(tx2..3,9 +.X "performance improvements" +\s-1SMM\s0:1\*(tx2, \s-1SMM\s0:9\*(tx8, \s-1SMM\s0:12\*(tx22, \s-1SMM\s0:13\*(tx2,29 +.X "performance monitoring" +\s-1SMM\s0:1\*(tx1 +.X "performance, uucp" +\s-1SMM\s0:21\*(tx5 +.X "peripheral devices" +\s-1PS2\s0:3\*(tx5, \s-1SMM\s0:2\*(tx7 +.X "permission, execute" +access(3f), \s-1PS1\s0:6\*(tx29 +.X "permission, read" +access(3f), \s-1PS1\s0:6\*(tx29 +.X "permission, test for execute (search)" +access(2) +.X "permission, test for read" +access(2) +.X "permission, test for write" +access(2) +.X "permission, Write" +chmod(1), unlink(2), access(3f), \s-1PS1\s0:6\*(tx29 +.X "permissions" +chmod(1), ls(1) +.X "permissions, access" +execve(2), getgid(2), intro(2)\*(tx7, \s-1SMM\s0:9\*(tx12, \s-1SMM\s0:21\*(tx2 +.X "permissions, file" +chmod(1), groups(1) +.X "permissions, file access" +intro(2)\*(tx6..7, USERFILE(5) +.X "permissions, read/write" +\s-1SMM\s0:9\*(tx7 +.X "permit \*(tx add permissions to a relation" +\s-1PS2\s0:10\*(tx30,77,80..81 +.X "permuted index" +ptx(1), \s-1USD\s0:1\*(tx11 +.X "perror, gerror, ierrno \*(tx get system error message" +perror(3f), \s-1SMM\s0:12\*(tx16 +.X "perror, sys_errlist sys_nerr \*(tx system error message" +perror(3) +.X "personal name" +\s-1USD\s0:8\*(tx64,96 +.X "per\*(txuser statistics" +sa(8) +.X "PEX" +\s-1PS1\s0:8\*(tx4,40..41 +.X "Phasers" +\s-1USD\s0:34\*(tx7 +.X "PhD thesis" +\s-1USD\s0:22\*(tx13, \s-1USD\s0:23\*(tx8, \s-1USD\s0:31\*(tx7 +.X "phone, home (see also telephone)" +passwd(1), passwd(5), adduser(8) +.X "phone lines" +\s-1USD\s0:10\*(tx2, \s-1USD\s0:11\*(tx2, tty(4)\*(tx5, L\*(txdevices(5), \s-1SMM\s0:1\*(tx33, \s-1SMM\s0:10\*(tx18 +.X "phone numbers" +finger(1), passwd(1), tip(1c)\*(tx2, dn(4), L\*(txdevices(5), L.sys(5), phones(5), remote(5), \s-1SMM\s0:1\*(tx36, \s-1SMM\s0:9\*(tx6,13,15,19, \s-1SMM\s0:12\*(tx10,12, \s-1SMM\s0:21\*(tx3 +.X "phones \*(tx remote host phone number data base" +hier(7)\*(tx2, phones(5) +.X "PHONES environment variable" +tip(1c)\*(tx3 +.X "photocomposition" +\s-1USD\s0:26\*(tx2 +.X "photon torpedo" +\s-1USD\s0:34\*(tx1,4,8..9 +.X "phototypesetter" +troff(1), \s-1USD\s0:23\*(tx2, \s-1USD\s0:27\*(tx1 +.X "phototypesetter accounting" +troff(1) +.X "phototypesetter commands" +lpr(1), lpd(8) +.X "phototypesetter, Graphic Systems" +eqn(1), tc(1), \s-1USD\s0:24\*(tx2,8, \s-1USD\s0:26\*(tx2 +.X "phrases, verb" +\s-1USD\s0:32\*(tx2,5..6 +.X "physical addresses" +\s-1SMM\s0:13\*(tx28,30 +.X "physical Ethernet address" +de(4), il(4), ix(4) +.X "physical I/O" +ps(1)\*(tx3 +.X "physical lines" +\s-1USD\s0:15\*(tx17, \s-1USD\s0:24\*(tx20 +.X "physical location" +\s-1SMM\s0:19\*(tx11 +.X "physical memory" +getrlimit(2), vlimit(3c), mem(4), \s-1SMM\s0:2\*(tx27,31..32, \s-1SMM\s0:13\*(tx15..16 +.X "physical pages" +systat(1)\*(tx2 +.X "physical records" +topen(3f) +.X "physical space" +\s-1SMM\s0:14\*(tx3 +.X "pi" +\s-1PS1\s0:4\*(tx34,36,49 +.X "pi \*(tx Pascal interpreter code translator" +pi(1), px(1) +.X "PI, Berkeley Pascal" +\s-1PS1\s0:4\*(tx16,19..23,28 +.X "pi options" +\s-1PS1\s0:4\*(tx34 +.X "PI paragraph indent" +\s-1USD\s0:20\*(tx5 +.X "pic picture, .PE End" +\s-1USD\s0:23\*(tx7 +.X "pic picture, .PS Begin" +\s-1USD\s0:23\*(tx7 +.X "pick \*(tx select messages by content" +\s-1USD\s0:8\*(tx6,47,98 +.X "pigs display" +systat(1)\*(tx1, \s-1SMM\s0:1\*(tx48 +.X "pile, cpile \*(tx centered" +\s-1USD\s0:27\*(tx7 +.X "pile, lpile \*(tx left\*(txjustified" +\s-1USD\s0:27\*(tx7 +.X "pile, rpile \*(tx right\*(txjustified" +\s-1USD\s0:27\*(tx7 +.X "ping \*(tx send ICMP ECHO_REQUEST packets to network hosts" +ping(8) +.X "pipe \*(tx create an interprocess communication channel" +pipe(2), popen(3) +.X "pipe and copy to a file" +tee(1) +.X "pipe the message" +mail(1)\*(tx5 +.X "pipelines" +csh(1)\*(tx1, sh(1)\*(tx1, wait(1), \s-1USD\s0:3\*(tx2, \s-1USD\s0:4\*(tx5,41 +.X "pipes" +csh(1)\*(tx9, fork(2), socketpair(2), \s-1PS1\s0:6\*(tx35, \s-1PS1\s0:7\*(tx1..2, \s-1PS2\s0:1\*(tx8 +.X "pix \*(tx Pascal interpreter and executor" +pix(1), \s-1PS1\s0:4\*(tx35 +.X "PKT mode" +\s-1SMM\s0:12\*(tx17, \s-1SMM\s0:13\*(tx10 +.X "plan files" +finger(1) +.X "plot" +lpr(1), lpd(8), \s-1SMM\s0:12\*(tx10,16 +.X "plot \*(tx graphics filters" +plot(1g) +.X "plot \*(tx graphics interface" +plot(5) +.X "plot filters" +graph(1g) +.X "plot mode" +vp(4), \s-1SMM\s0:6\*(tx4, \s-1SMM\s0:20\*(tx2..5 +.X "plot: openpl et al. \*(tx f77 library interface to plot (3X) library" +plot(3f) +.X "plotting area" +plot(5) +.X "plotting instructions" +plot(5) +.X "pmerge \*(tx pascal file merger" +pmerge(1) +.X "pmon.out" +pc(1) +.X "PO page offset" +\s-1USD\s0:20\*(tx5 +.X "point size changes" +\s-1USD\s0:28\*(tx4 +.X "point size (see also type size)" +eqn(1), vgrind(1), ms(7), \s-1USD\s0:20\*(tx1..2, \s-1USD\s0:22\*(tx18, \s-1USD\s0:23\*(tx4,9, \s-1USD\s0:24\*(tx9..10,13, \s-1USD\s0:25, \s-1USD\s0:28\*(tx4..6 +.X "point to point address" +intro(4n)\*(tx3 +.X "pointer alignment" +\s-1PS1\s0:9\*(tx6 +.X "pointer, character" +dbx(1)\*(tx5, execve(2), execl(3), printf(3s), \s-1PS1\s0:6\*(tx5, \s-1PS1\s0:9\*(tx4, \s-1PS2\s0:3\*(tx6,14, \s-1SMM\s0:19\*(tx10 +.X "pointer conversion, explicit" +\s-1PS1\s0:1\*(tx30 +.X "pointer, frame" +sigreturn(2), dbx(5)\*(tx1 +.X "pointer, input" +\s-1PS1\s0:3\*(tx5, \s-1PS1\s0:16\*(tx7 +.X "pointer, null" +\s-1PS1\s0:11\*(tx2..4 +.X "pointers" +\s-1PS1\s0:1\*(tx5,7,29 +.X "pointers, argument" +\s-1SMM\s0:13\*(tx4, \s-1SMM\s0:19\*(tx11 +.X "pointers, file" +sortbib(1), fcntl(2), fork(2), lseek(2), open(2), write(2), stdio(3s), \s-1PS2\s0:3\*(tx3..6,13, \s-1SMM\s0:12\*(tx16 +.X "pointers, I/O" +\s-1PS2\s0:4\*(tx8..9 +.X "pointers, stack" +brk(2), trpfpe(3f), \s-1SMM\s0:19\*(tx14 +.X "point" +\s-1USD\s0:17\*(tx1,6,13,17,35,39,43..44, \s-1USD\s0:24\*(tx8, plot(3x) +.X "pointsize (and line spacing), .sz set" +\s-1USD\s0:23\*(tx6 +.X "pointsize, .sm smaller" +\s-1USD\s0:23\*(tx6 +.X "pointsize, TROFF default" +\s-1USD\s0:24\*(tx13 +.X "point\*(txto\*(txpoint interfaces" +nsip(4), \s-1SMM\s0:13\*(tx21,28 +.X "point\*(txto\*(txpoint links" +ifconfig(8c), routed(8c)\*(tx1, \s-1SMM\s0:8\*(tx2, \s-1SMM\s0:12\*(tx20, \s-1SMM\s0:13\*(tx22, \s-1SMM\s0:15\*(tx21 +.X "Polhemus 3\*(txD digitizer" +tb(4) +.X "policy note" +\s-1USD\s0:11\*(tx10 +.X "poll a remote UUCP site" +uucico(8c), uupoll(8c) +.X "polling systems" +\s-1SMM\s0:9\*(tx6 +.X "popd command" +csh(1)\*(tx14, \s-1USD\s0:4\*(tx21,41..42, \s-1USD\s0:17\*(tx40 +.X "popen, pclose \*(tx initiate I/O to/from a process" +popen(3), \s-1SMM\s0:12\*(tx16 +.X "pop\*(txmark" +\s-1USD\s0:17\*(tx40 +.X "PORT commands" +ftp(1c)\*(tx5 +.X "port, default" +\s-1PS2\s0:9\*(tx63..65,69..72 +.X "port, foreign" +\s-1PS1\s0:8\*(tx4,30..31 +.X "port identifier" +udp(4p) +.X "port, Internet" +rcmd(3), \s-1PS1\s0:8\*(tx15,19,31 +.X "port names" +L.sys(5)\*(tx2, \s-1SMM\s0:9\*(tx15 +.X "port number, restricted" +\s-1PS1\s0:8\*(tx19 +.X "port numbers" +getservent(3n), ns(3n), rcmd(3), ns(4f), L\*(txdevices(5), L.sys(5)\*(tx2, services(5), \s-1PS1\s0:6\*(tx37, \s-1PS1\s0:7\*(tx11..13,16,18, \s-1PS1\s0:8\*(tx5,14,19..20,30..32,41, ftpd(8c), named(8), rexecd(8c), rlogind(8c), rshd(8c), \s-1SMM\s0:9\*(tx13,15, \s-1SMM\s0:11\*(tx8, \s-1SMM\s0:13\*(tx26,28..29 +.X "port, output" +\s-1PS2\s0:9\*(tx65,72,112 +.X "port, Privileged Internet" +rcmd(3) +.X "port selectors" +L.sys(5)\*(tx4, remote(5), \s-1SMM\s0:9\*(tx10,16 +.X "port, source" +rlogind(8c), rshd(8c) +.X "port, TCP" +tcp(4p), udp(4p), L.sys(5)\*(tx2 +.X "port, terminal" +ttynam(3f), bk(4), init(8) +.X "port, ttynam, isatty \*(tx find name of a terminal" +ttynam(3f) +.X "portability, check" +lint(1) +.X "portability restrictions" +\s-1PS1\s0:9\*(tx1 +.X "Portable C Compiler, Tour Through the" +\s-1SMM\s0:19 +.X "Portable Compilers" +\s-1SMM\s0:19\*(tx2,8..9,12..13,23..27 +.X "Portable Fortran 77 compiler" +\s-1PS1\s0:2, \s-1PS1\s0:3\*(tx7 +.X "Portal creation" +\s-1PS1\s0:6\*(tx28 +.X "portal removal, File, device, and" +\s-1PS1\s0:6\*(tx29 +.X "portal(name, server, param, dtype, protocol, domain, socktype)" +\s-1PS1\s0:6\*(tx28 +.X "position, File" +fseek(3s) +.X "position, home" +termcap(5)\*(tx8, \s-1PS1\s0:18\*(tx8,15 +.X "position, horizontal" +\s-1USD\s0:24\*(tx21, \s-1USD\s0:25\*(tx5, \s-1USD\s0:26\*(tx4, \s-1USD\s0:27\*(tx6 +.X "position, page" +\s-1USD\s0:24\*(tx16,28,31 +.X "position, starting" +\s-1PS1\s0:18\*(tx3 +.X "position, trap" +\s-1USD\s0:24\*(tx3,11,13..17,28 +.X "position, vertical" +\s-1USD\s0:24\*(tx3,8,11,15,16,22 \s-1USD\s0:25\*(tx6,9 +.X "positional parameters $1, $2, ...." +csh(1)\*(tx17, sh(1)\*(tx2,5, \s-1USD\s0:3\*(tx5..6,9,14..17 +.X "positions, rotational" +fs(5)\*(tx3, \s-1SMM\s0:14\*(tx7 +.X "post \*(tx deliver a message" +\s-1USD\s0:8\*(tx96 +.X "posting file" +lookbib(1), \s-1USD\s0:30\*(tx2 +.X "posting of messages" +msgs(1), \s-1USD\s0:9\*(tx3, \s-1USD\s0:10\*(tx3..5, \s-1SMM\s0:10\*(tx1..2,19 +.X "posting of software packages & documentation" +\s-1USD\s0:9\*(tx10, \s-1USD\s0:10\*(tx5 +.X "posting time" +\s-1USD\s0:8\*(tx76 +.X "postmaster" +mailaddr(7)\*(tx2 +.X "post\*(txmortem backtraces" +px(1), \s-1PS1\s0:4\*(tx36,41 +.X "post\*(txmortem control flow backtrace" +pi(1) +.X "post\*(txmortem dump" +\s-1SMM\s0:3 +.X "postnews" +\s-1USD\s0:9\*(tx4, \s-1USD\s0:10\*(tx5 +.X "pow \*(tx multiple precision integer arithmetic" +mp(3x) +.X "pow \*(tx power" +exp(3m) +.X "power fail and crash recovery" +reboot(8)\*(tx1 +.X "pr \*(tx print file" +pr(1), \s-1USD\s0:1\*(tx5..6, \s-1USD\s0:4\*(tx42 +.X "pr_ctlinput" +\s-1SMM\s0:15\*(tx18 +.X "pr_ctloutput" +\s-1SMM\s0:15\*(tx19 +.X "precedence" +vacation(1), \s-1USD\s0:27\*(tx9, \s-1SMM\s0:7\*(tx14,19,32,36 +.X "precedence in C, operator" +\s-1PS1\s0:1\*(tx32 +.X "precedence levels" +\s-1PS1\s0:5\*(tx5, \s-1PS1\s0:15\*(tx14..15 +.X "precedence of expression operators" +\s-1PS1\s0:1\*(tx6 +.X "precedence, operator" +\s-1USD\s0:24\*(tx9, \s-1USD\s0:25\*(tx10, \s-1USD\s0:26\*(tx2 +.X "precedence rules" +yacc(1), \s-1USD\s0:26\*(tx5 +.X "precision specification" +printf(3s) +.X "predefined strings in \*(txme" +\s-1USD\s0:23\*(tx9 +.X "predefined variables" +csh(1)\*(tx17 +.X "prefix characters" +\s-1USD\s0:17\*(tx3 +.X "prefix commands" +\s-1USD\s0:17\*(tx24,46 +.X "prefix operator" +\s-1PS1\s0:16\*(tx11, \s-1PS2\s0:6\*(tx11 +.X "prefix\*(tx1 (escape)" +\s-1USD\s0:17\*(tx25 +.X "preprocessor extensions" +\s-1SMM\s0:19\*(tx26 +.X "preprocessor, macro" +cc(1)\*(tx2 +.X "preprocessor, C" +cc(1)\*(tx2, diff(1), f77(1), unifdef(1), xstr(1), \s-1SMM\s0:12\*(tx2..3, \s-1SMM\s0:19\*(tx27 +.X "prerequisites line" +patch(1)\*(tx1 +.X "preserve command" +\s-1USD\s0:7\*(tx5..6,14, \s-1USD\s0:16\*(tx9 +.X "prettyprinter" +cb(1), indent(1), pxp(1), vgrind(1), \s-1USD\s0:17\*(tx23 +.X "prettyprinter, lisp" +vlp(1) +.X "prettyprinter, Pascal" +\s-1PS1\s0:4\*(tx39 +.X "prev \*(tx show the previous message" +\s-1USD\s0:8\*(tx51 +.X "previewing, colcrt \*(tx filter nroff output for CRT" +colcrt(1) +.X "previous context" +\s-1USD\s0:15\*(tx4 +.X "previous\*(txerror (C\*(txX C\*(txP)" +\s-1USD\s0:17\*(tx40 +.X "previous\*(txline (C\*(txP)" +\s-1USD\s0:17\*(tx40 +.X "previously executed commands" +lastcomm(1) +.X "previous\*(txpage (ESC V)" +\s-1USD\s0:17\*(tx41 +.X "Previous\*(txSequence" +\s-1USD\s0:8\*(tx26,54,66,85,101 +.X "previous\*(txwindow (C\*(txX P and C\*(txX O)" +\s-1USD\s0:17\*(tx41 +.X "primary alias file" +\s-1USD\s0:8\*(tx77,96 +.X "primary expressions" +\s-1PS1\s0:1\*(tx6..7,12 +.X "Primary Master Name Server" +\s-1SMM\s0:11\*(tx3,7,10 +.X "primary memory" +\s-1PS2\s0:4 +.X "primary pages" +\s-1PS2\s0:10\*(tx24 +.X "Primary prompt string" +sh(1)\*(tx2 +.X "primary relation" +\s-1PS2\s0:10\*(tx15,17,60 +.X "primary swap area" +crash(8v)\*(tx3, \s-1SMM\s0:1\*(tx20, \s-1SMM\s0:13\*(tx17 +.X "primitives, Interprocess communication" +\s-1PS1\s0:6\*(tx32, \s-1PS1\s0:8 +.X "primitives, Kernel" +\s-1PS1\s0:6\*(tx6,41 +.X "pr_input" +\s-1SMM\s0:15\*(tx18 +.X "print (see also printing)" +.X "print \*(tx print relation" +\s-1PS2\s0:10\*(tx30 +.X "print a message" +\s-1USD\s0:8\*(tx6 +.X "print a window of text" +\s-1USD\s0:16\*(tx12 +.X "print command" +mail(1)\*(tx2, \s-1USD\s0:7\*(tx13, \s-1USD\s0:12\*(tx3, \s-1USD\s0:13\*(tx9, \s-1USD\s0:14\*(tx11,17, \s-1USD\s0:17\*(tx23, cons(4), \s-1PS2\s0:10\*(tx56,58,77 +.X "print files" +pr(1) +.X "Print footer, .$f" +\s-1USD\s0:23\*(tx4 +.X "print function" +\s-1USD\s0:18\*(tx7 +.X "print index" +\s-1USD\s0:22\*(tx14, \s-1USD\s0:23\*(tx5 +.X "print, lpr \*(tx off line" +lpr(1) +.X "Print macros" +\s-1USD\s0:24\*(tx26 +.X "print mode" +\s-1SMM\s0:6\*(tx4 +.X "print out the manual" +man(1) +.X "print relations" +\s-1PS2\s0:10\*(tx3,30,58 +.X "Print section heading, .$p" +\s-1USD\s0:23\*(tx3 +.X "print statements" +\s-1USD\s0:19\*(tx2..5, \s-1PS1\s0:2\*(tx9..10,24, \s-1PS1\s0:3\*(tx5 +.X "Print string on standard error" +\s-1USD\s0:24\*(tx26 +.X "print the value of variables" +\s-1PS1\s0:11\*(tx3 +.X "print working directory" +\s-1USD\s0:4\*(tx20 +.X "printable ASCII approximation" +troff(1) +.X "printable ASCII characters" +tip(1c)\*(tx3, \s-1USD\s0:24\*(tx9 +.X "printcap \*(tx printer capability data base" +printcap(5), lpd(8), \s-1SMM\s0:6 +.X "printcap file, Creating a" +\s-1SMM\s0:6\*(tx3 +.X "printenv \*(tx print out the environment" +printenv(1) +.X "printer access" +lpd(8), \s-1SMM\s0:6\*(tx2,4 +.X "printer daemon" +lpq(1), lpc(8), \s-1SMM\s0:6\*(tx2 +.X "printer, default" +lpr(1), lprm(1), environ(7), printcap(5), pac(8) +.X "PRINTER environment variable" +lpq(1), lpr(1), lprm(1), environ(7), printcap(5), pac(8) +.X "printer, Imagen laser" +plot(3x) +.X "printer jobs" +lpc(8), \s-1SMM\s0:1\*(tx34 +.X "printer queues" +lpc(8), \s-1SMM\s0:6\*(tx6 +.X "printer/plotter accounting" +pac(8) +.X "printer/plotter, Versatec" +vp(4), \s-1SMM\s0:6\*(tx5 +.X "printers attached via serial lines" +\s-1SMM\s0:1\*(tx34, \s-1SMM\s0:6\*(tx2..3 +.X "printers, laser" +plot(1g), \s-1SMM\s0:1\*(tx34, \s-1SMM\s0:12\*(tx10,16 +.X "printers, line" +colcrt(1), lpq(1), plot(1g), script(1), \s-1USD\s0:4\*(tx6,15,41, \s-1USD\s0:17\*(tx32, \s-1USD\s0:20\*(tx4, \s-1USD\s0:22\*(tx1, lp(4), printcap(5), \s-1PS1\s0:4\*(tx10,14,27, \s-1PS2\s0:1\*(tx2, \s-1PS2\s0:4\*(tx5..6, \s-1PS2\s0:10\*(tx31, lpc(8), \s-1SMM\s0:1\*(tx34, \s-1SMM\s0:2\*(tx10, \s-1SMM\s0:6\*(tx2,5, \s-1SMM\s0:12\*(tx16 +.X "printers, Remote" +\s-1SMM\s0:6\*(tx4 +.X "printers, status of" +lpc(8) +.X "printers, test" +lptest(1) +.X "printf, fprintf, sprintf \*(tx formatted output conversion" +printf(3s) +.X "printing beginning of file" +head(1) +.X "printing characters" +ctype(3) +.X "printing error messages" +perror(3), \s-1SMM\s0:7\*(tx30 +.X "printing fields" +awk(1), \s-1USD\s0:19\*(tx2 +.X "printing files" +cat(1), \s-1USD\s0:1\*(tx1,5 +.X "printing information about processes" +ps(1)\*(tx1 +.X "printing long lines on short terminals" +\s-1USD\s0:13\*(tx2 +.X "printing, save text for later" +\s-1USD\s0:22\*(tx7 +.X "printing signal messages" +psignal(3) +.X "printing the bibliography" +\s-1USD\s0:29\*(tx3 +.X "printing the contents of the buffer" +\s-1USD\s0:12\*(tx3 +.X "printing trace records" +trpt(8c) +.X "printr \*(tx print relations" +\s-1PS2\s0:10\*(tx58 +.X "printw(fmt, arg1, arg2, ...)" +\s-1PS1\s0:18\*(tx6,11 +.X "priorities, queue" +\s-1SMM\s0:7\*(tx13..14 +.X "priority, alter" +renice(8) +.X "priority data" +\s-1PS1\s0:7\*(tx22 +.X "priority, getpriority, setpriority \*(tx get/set program scheduling" +getpriority(2) +.X "priority, lowering and raising" +csh(1)\*(tx13 +.X "priority, message" +syslogd(8), \s-1SMM\s0:7\*(tx9,32 +.X "priority, nice \*(tx set program" +nice(3c) +.X "priority, nice, nohup \*(tx run a command at low" +nice(1) +.X "priority, process" +ps(1)\*(tx1, getpriority(2) +.X "priority, Processor" +\s-1SMM\s0:13\*(tx2,7..8 +.X "priority, scheduling" +csh(1)\*(tx13, nice(1), getpriority(2), nice(3c), renice(8) +.X "priority, syslog message" +syslog(3) +.X "private file of references" +\s-1USD\s0:30\*(tx12 +.X "private page map" +crash(8v)\*(tx2, \s-1SMM\s0:15\*(tx4,24 +.X "private sequences" +\s-1USD\s0:8\*(tx54,60,86,89,100 +.X "privilege, user with least" +\s-1SMM\s0:1\*(tx21 +.X "Privileged Internet ports" +rcmd(3) +.X "prmail" +\s-1SMM\s0:12\*(tx10 +.X "probe routines" +\s-1SMM\s0:2\*(tx9,17..18,20,23 +.X "proc table" +\s-1SMM\s0:13\*(tx7..8 +.X "procedure arguments" +\s-1PS1\s0:2\*(tx14, \s-1PS2\s0:6\*(tx8,10 +.X "procedure calls" +\s-1PS1\s0:4\*(tx18, \s-1PS1\s0:8\*(tx40, \s-1PS2\s0:6\*(tx11 +.X "procedure invocations" +\s-1PS2\s0:6\*(tx10,15..16,25 +.X "procedure names" +\s-1PS1\s0:2\*(tx13, \s-1PS2\s0:6\*(tx7,10,15..16,23,25,35 +.X "procedure traceback" +dbx(1)\*(tx2 +.X "procedures, built\*(txin" +\s-1PS1\s0:4\*(tx11,22,45,48 +.X "procedures, C" +\s-1PS1\s0:2\*(tx6,13 +.X "procedures, dummy" +dbx(1)\*(tx7 +.X "procedures, Fortran" +\s-1PS1\s0:2\*(tx13, \s-1PS2\s0:6\*(tx28,35 +.X "procedures in Berkeley Pascal, nonstandard functions and" +\s-1PS1\s0:4\*(tx49 +.X "proceedings, conference" +\s-1USD\s0:31\*(tx5,16 +.X "process" +intro(2)\*(tx6, \s-1PS1\s0:4\*(tx31,48, \s-1PS1\s0:6, \s-1PS2\s0:1\*(tx8..9, \s-1PS2\s0:3\*(tx7,11, \s-1PS2\s0:4\*(tx3,8, \s-1PS2\s0:10\*(tx27,56,70..71 +.X "process, asynchronous" +kill(1), sh(1)\*(tx6 +.X "process, background" +w(1) +.X "process\*(txbind\*(txto\*(txkey" +\s-1USD\s0:17\*(tx41 +.X "process buffer" +\s-1USD\s0:17\*(tx41 +.X "process, child" +csh(1)\*(tx14, sh(1)\*(tx6, \s-1USD\s0:3\*(tx21, fork(2), getrusage(2), ptrace(2), umask(2), wait(2), nice(3c), wait(3f), tty(4)\*(tx1, \s-1PS1\s0:6\*(tx7, \s-1PS1\s0:7\*(tx7, \s-1PS1\s0:8\*(tx26, \s-1PS2\s0:1\*(tx8,11..12, \s-1PS2\s0:3\*(tx9..10, \s-1PS2\s0:4\*(tx3, \s-1PS2\s0:9\*(tx75, \s-1SMM\s0:13\*(tx7 +.X "process context" +sigreturn(2), sigvec(2)\*(tx1, signal(3c)\*(tx2 +.X "process control" +\s-1PS1\s0:6, \s-1PS1\s0:6\*(tx13, \s-1PS2\s0:4\*(tx1, \s-1PS2\s0:9\*(tx3 +.X "process, control" +rcmd(3), rexec(3) +.X "process creation" +tty(4)\*(tx5, \s-1PS1\s0:6\*(tx7, \s-1SMM\s0:13\*(tx7 +.X "process, current" +w(1) +.X "process, daemon" +syslog(3), lpd(8), \s-1SMM\s0:1\*(tx21, \s-1SMM\s0:12\*(tx19,21, \s-1SMM\s0:14\*(tx12 +.X "process descriptors" +\s-1PS1\s0:6\*(tx24 +.X "process entry" +lastcomm(1), \s-1SMM\s0:13\*(tx4 +.X "process file" +\s-1USD\s0:3\*(tx11, execve(2) +.X "process, fork \*(tx create a new" +fork(2) +.X "process group" +kill(1), stty(1)\*(tx3, fcntl(2), getpgrp(2), getpriority(2), intro(2)\*(tx1,5, kill(2), killpg(2), setpgrp(2), socket(2), vhangup(2), rcmd(3), rexec(3), tty(4)\*(tx1..2,5,10, \s-1PS1\s0:6\*(tx9,13..14,19..21,38..39, \s-1PS1\s0:8\*(tx19,24..26, renice(8), \s-1SMM\s0:12\*(tx13..14, \s-1SMM\s0:13\*(tx8..9,14 +.X "process group id" +execve(2), intro(2)\*(tx5, kill(2), tty(4)\*(tx9, \s-1PS1\s0:8\*(tx26, renice(8) +.X "process group leaders" +ps(1)\*(tx2 +.X "process id" +csh(1)\*(tx2,12, leave(1), logger(1), m4(1), sysline(1), \s-1USD\s0:11\*(tx14, execve(2), fcntl(2), fork(2), getpid(2), getpriority(2), intro(2)\*(tx5..6, kill(2), wait(2), fork(3f), getpid(3f), kill(3f), mktemp(3), syslog(3), \s-1PS1\s0:6\*(tx6..9, \s-1PS1\s0:7\*(tx2, \s-1PS1\s0:8\*(tx24,26, \s-1PS1\s0:17\*(tx5, \s-1PS2\s0:3\*(tx8..9, \s-1PS2\s0:9\*(tx78..79,126, lpd(8), renice(8), syslogd(8), \s-1SMM\s0:10\*(tx20, \s-1SMM\s0:11\*(tx13 +.X "process image" +execve(2), core(5), pstat(8)\*(tx3 +.X "process, init" +init(8), \s-1SMM\s0:1\*(tx33 +.X "process, initialization" +exit(2), intro(2)\*(tx6, wait(2), crash(8v)\*(tx1, cron(8) +.X "process, interactive" +\s-1USD\s0:17\*(tx20,32,35..37,41 +.X "process, logging" +implogd(8c) +.X "process, login" +ftp(1c)\*(tx7, \s-1USD\s0:14\*(tx4, gettytab(5)\*(tx2, \s-1PS1\s0:8\*(tx20,24, rlogind(8c), telnetd(8c) +.X "process management" +\s-1SMM\s0:1\*(tx26 +.X "process naming and protection" +\s-1PS1\s0:6 +.X "process number" +csh(1)\*(tx7, kill(1), ps(1)\*(tx2, sh(1)\*(tx2, \s-1USD\s0:1\*(tx10, \s-1USD\s0:3\*(tx2,9, \s-1USD\s0:4\*(tx17..19,26,42, kill(2), \s-1PS1\s0:8\*(tx26, \s-1PS2\s0:3\*(tx8, \s-1PS2\s0:9\*(tx75, \s-1PS2\s0:10\*(tx70 +.X "process, parent" +fork(2), \s-1PS1\s0:2\*(tx16, \s-1PS1\s0:6\*(tx7, \s-1PS1\s0:7\*(tx4, \s-1PS2\s0:1\*(tx8,11, \s-1PS2\s0:4\*(tx3 +.X "process priority" +ps(1)\*(tx1, getpriority(2), \s-1PS1\s0:6\*(tx21 +.X "process profiling" +\s-1PS1\s0:6\*(tx17 +.X "process\*(txprompt (variable)" +\s-1USD\s0:17\*(tx41 +.X "process resource accounting" +\s-1PS1\s0:6\*(tx21, \s-1SMM\s0:1\*(tx50 +.X "process, routing" +routed(8c), \s-1SMM\s0:15\*(tx22 +.X "process, routing table management" +\s-1SMM\s0:1\*(tx40 +.X "process, runnable" +sysline(1), pstat(8)\*(tx3 +.X "process, running" +gcore(1), renice(8) +.X "process scheduling" +systat(1)\*(tx2 +.X "process, server" +\s-1PS1\s0:6\*(tx29, \s-1PS1\s0:8\*(tx6..7,11,17,20..21,24,27,30 +.X "process, sharing of data between" +\s-1PS1\s0:6\*(tx10 +.X "process, Shell" +sh(1)\*(tx4, \s-1USD\s0:17\*(tx21, init(8) +.X "process statistics" +ps(1)\*(tx2 +.X "process status longword" +sigreturn(2) +.X "process, suspended" +sysline(1) +.X "process, swapping" +\s-1PS2\s0:4\*(tx3..4 +.X "process table entry" +\s-1PS2\s0:4\*(tx2..4, \s-1SMM\s0:13\*(tx5 +.X "process table management" +\s-1SMM\s0:13\*(tx5 +.X "process table" +intro(2)\*(tx2, \s-1PS2\s0:4\*(tx2..3, \s-1PS2\s0:10\*(tx57,70,74, pstat(8)\*(tx2, \s-1SMM\s0:13\*(tx5,8 +.X "process, terminated" +wait(2), core(5) +.X "process, terminated child" +getrusage(2), times(3c), vtimes(3c) +.X "process termination" +kill(1), close(2), exit(2), abort(3), exit(3), \s-1PS1\s0:6\*(tx7,13..14, \s-1PS2\s0:3\*(tx10 +.X "process time accounting file" +\s-1SMM\s0:13\*(tx7 +.X "process times" +times(3c) +.X "process, trace" +ptrace(2) +.X "process, user" +getgroups(2), setgroups(2), ik(4), ps(4), spp(4p), \s-1PS1\s0:6\*(tx37, \s-1PS1\s0:8\*(tx7, \s-1PS2\s0:4\*(tx1..4, pstat(8)\*(tx3, \s-1SMM\s0:5\*(tx5, \s-1SMM\s0:15\*(tx22 +.X "process virtual time" +getitimer(2), \s-1PS1\s0:6\*(tx16 +.X "process, wait \*(tx await completion of" +wait(1) +.X "process, waiting" +\s-1PS1\s0:6\*(tx12, \s-1PS2\s0:3\*(tx10, \s-1PS2\s0:4\*(tx1, pstat(8)\*(tx3 +.X "processes, client" +\s-1PS1\s0:8\*(tx17,20,27 +.X "processes, communicating" +sail(6)\*(tx1, \s-1PS1\s0:7\*(tx7,22, \s-1PS1\s0:8\*(tx2,4 +.X "processes, cooperating" +flock(2), pipe(2), \s-1PS1\s0:6\*(tx31, \s-1PS1\s0:7\*(tx1..2, \s-1PS2\s0:3\*(tx9 +.X "processes, maximum number of" +\s-1SMM\s0:2\*(tx30 +.X "processes, printing information about" +ps(1)\*(tx1 +.X "processes, total number of" +fork(2) +.X "Processes Under JOVE" +\s-1USD\s0:17\*(tx19 +.X "processor priorities" +\s-1SMM\s0:13\*(tx2 +.X "processor time" +\s-1USD\s0:30\*(tx3 +.X "processor use statistics" +systat(1)\*(tx2 +.X "producing a core file" +tty(4)\*(tx5 +.X "production system" +\s-1SMM\s0:16\*(tx1,8 +.X "prof \*(tx display profile data" +cc(1)\*(tx1, f77(1)\*(tx1, prof(1), monitor(3), \s-1SMM\s0:12\*(tx10 +.X "profil \*(tx execution time profile" +profil(2), monitor(3) +.X "profil(buf, bufsize, offset, scale)" +\s-1PS1\s0:6\*(tx17 +.X "profile buffers" +kgmon(8) +.X "profile file" +gprof(1), prof(1) +.X "profiled system, Building" +\s-1SMM\s0:2\*(tx6 +.X "profiler, pxp \*(tx Pascal execution" +pxp(1) +.X "profiling, execution" +cc(1)\*(tx1, f77(1)\*(tx1, gprof(1), liszt(1), pc(1), pi(1), pxp(1), \s-1USD\s0:1\*(tx13, getitimer(2), monitor(3), \s-1PS1\s0:2\*(tx5, \s-1PS1\s0:4\*(tx15..16,36..37, config(8) +.X "profiling, kernel" +kgmon(8), \s-1SMM\s0:2\*(tx15 +.X "profiling, process" +\s-1PS1\s0:6\*(tx17 +.X "program, calling" +\s-1SMM\s0:21\*(tx4 +.X "program counter" +profil(2), monitor(3), \s-1PS1\s0:6\*(tx17, \s-1PS1\s0:10\*(tx3, \s-1SMM\s0:2\*(tx6 +.X "program, definition of" +\s-1USD\s0:14\*(tx3 +.X "program development" +\s-1PS1\s0:12\*(tx1, \s-1PS2\s0:1\*(tx14, \s-1PS2\s0:9\*(tx137 +.X "program errors" +signal(3c)\*(tx1 +.X "program faults" +\s-1PS1\s0:4\*(tx15, \s-1PS2\s0:1\*(tx12, \s-1PS2\s0:3\*(tx10 +.X "program listing" +pc(1), pi(1), vgrind(1), \s-1PS1\s0:4\*(tx15,35 +.X "program, send mail directly to a" +\s-1USD\s0:7\*(tx11 +.X "program, stopping a (see also job control)" +tty(4)\*(tx5 +.X "Programming" +\s-1USD\s0:1\*(tx12..14 +.X "Programming, Functional" +\s-1PS2\s0:7 +.X "Programming Language EFL" +efl(1), \s-1PS2\s0:6 +.X "programming languages (see specific languages)" +\s-1USD\s0:1\*(tx2,12, \s-1USD\s0:19\*(tx1 +.X "programming the shell" +\s-1USD\s0:1\*(tx1 +.X "Programming, UNIX" +\s-1PS2\s0:3 +.X "programs, EFL" +\s-1PS2\s0:6\*(tx1..3,16,23 +.X "programs, Fortran" +\s-1PS1\s0:2\*(tx5,7,14..15, \s-1PS2\s0:8\*(tx2,12, \s-1PS2\s0:9\*(tx101 +.X "programs, indentations of" +\s-1USD\s0:17\*(tx1 +.X "programs, Lex" +\s-1PS1\s0:15\*(tx7, \s-1PS1\s0:16\*(tx2..3 +.X "programs, lisp" +\s-1PS2\s0:9\*(tx4,78,116,126,140 +.X "programs, mail to files and" +\s-1SMM\s0:16\*(tx6 +.X "Programs, Maintaining Computer" +\s-1PS1\s0:12 +.X "programs, multi\*(txfile" +\s-1PS1\s0:1\*(tx26, \s-1PS1\s0:4\*(tx40,45 +.X "programs, object" +cc(1)\*(tx1 +.X "programs, Pascal" +\s-1PS1\s0:4\*(tx8,27..29,34,36,41,49, \s-1PS2\s0:9\*(tx106 +.X "programs, Ratfor" +\s-1PS2\s0:6\*(tx24, \s-1PS2\s0:8\*(tx1 +.X "programs, server" +inetd(8), \s-1SMM\s0:1\*(tx41 +.X "programs, set\*(txUID (see also set-useid-id)" +\s-1SMM\s0:17\*(tx2..3 +.X "programs, shell" +diff(1), echo(1), window(1)\*(tx1,7, \s-1USD\s0:3\*(tx10 +.X "programs, source" +\s-1PS1\s0:2\*(tx4, \s-1PS1\s0:4\*(tx18, \s-1PS1\s0:5\*(tx4, \s-1PS2\s0:1\*(tx13, \s-1PS1\s0:2\*(tx11, \s-1PS1\s0:18\*(tx3 +.X "programs, utility" +hier(7)\*(tx1 +.X "programs, very large" +a.out(5)\*(tx2 +.X "PROJECT environment variable" +sccs(1)\*(tx2 +.X "project file" +finger(1) +.X "project libraries" +\s-1PS1\s0:13\*(tx1 +.X "prolog, function" +\s-1SMM\s0:19\*(tx6,11..12 +.X "prolog, subroutine" +\s-1SMM\s0:19\*(tx2..3 +.X "prompt character" +\s-1USD\s0:1\*(tx2 +.X "prompt, login" +gettytab(5)\*(tx2 +.X "PROMPT shell variable" +csh(1)\*(tx17..18, \s-1USD\s0:4\*(tx22 +.X "prompter \*(tx prompting editor front\*(txend" +\s-1USD\s0:8\*(tx8,52 +.X "prompt" +\s-1USD\s0:16\*(tx17 +.X "prompts, shell" +sh(1)\*(tx3, \s-1USD\s0:3\*(tx4,10, \s-1USD\s0:4\*(tx32,42 +.X "proms, MRSP" +tu(4), \s-1SMM\s0:1\*(tx65 +.X "pronouns" +\s-1USD\s0:32\*(tx6 +.X "property lists" +\s-1PS2\s0:7\*(tx29, \s-1PS2\s0:9\*(tx4,21..25,32..34,39,51,54,111,116,152..154 +.X "property, separator" +\s-1PS2\s0:9\*(tx85,87..89,94..95 +.X "protection, armor" +\s-1USD\s0:33\*(tx3 +.X "protection bits" +\s-1PS1\s0:6\*(tx6,29, \s-1PS2\s0:1\*(tx4,6, \s-1SMM\s0:17\*(tx1 +.X "protection mode" +find(1), \s-1PS2\s0:1\*(tx6,12, \s-1PS2\s0:3\*(tx6, \s-1SMM\s0:17\*(tx2 +.X "protection of pages" +\s-1PS1\s0:6\*(tx11 +.X "protection scheme" +\s-1SMM\s0:14\*(tx12, \s-1SMM\s0:17\*(tx2 +.X "Proteon proNET ring network" +vv(4) +.X "Protocol, Address Resolution (see also ARP)" +arp(4p), de(4), ec(4), ex(4), il(4), ix(4), qe(4), arp(8c), ifconfig(8c), \s-1SMM\s0:2\*(tx10,13, \s-1SMM\s0:13\*(tx21,27, \s-1SMM\s0:15\*(tx11..12 +.X "protocol buffering policies" +\s-1SMM\s0:15\*(tx24 +.X "protocol control blocks" +netstat(1), trpt(8c), trsp(8c), \s-1SMM\s0:13\*(tx5,23..24,29, \s-1SMM\s0:15\*(tx6,23 +.X "Protocol, Error" +ns(4f) +.X "Protocol, Exterior Gateway (see also EGP)" +routed(8c)\*(tx2, \s-1SMM\s0:1\*(tx41, \s-1SMM\s0:15\*(tx22 +.X "protocol families" +intro(2)\*(tx4, socket(2), intro(4n), ns(4f), ifconfig(8c), \s-1SMM\s0:7\*(tx32, \s-1SMM\s0:13\*(tx20, \s-1SMM\s0:15\*(tx3,8..12,17,19..23 +.X "Protocol, File Transfer (see also FTP)" +ftp(1c)\*(tx1,5..6, tftp(1c), \s-1SMM\s0:7\*(tx1,28, \s-1SMM\s0:12\*(tx23 +.X "Protocol, Internet Control Message (see also ICMP)" +icmp(4p), inet(4f), \s-1SMM\s0:15\*(tx19 +.X "Protocol, Internet Transport (see also IP)" +intro(4n)\*(tx1, ns(4f), routed(8c)\*(tx3, XNSrouted(8c) +.X "protocol layer" +\s-1SMM\s0:12\*(tx14, \s-1SMM\s0:13\*(tx20, \s-1SMM\s0:15\*(tx8 +.X "protocol levels" +getsockopt(2), \s-1SMM\s0:15\*(tx19 +.X "protocol, line" +\s-1SMM\s0:9\*(tx5,7, \s-1SMM\s0:21\*(tx2,4..5 +.X "protocol, locking" +tip(1c)\*(tx2, \s-1SMM\s0:1\*(tx22,35 +.X "protocol, login" +\s-1PS1\s0:8\*(tx19..20 +.X "protocol, MH window management" +\s-1USD\s0:8\*(tx69 +.X "protocol modules" +getsockopt(2), implogd(8c), \s-1SMM\s0:15\*(tx9,15..20 +.X "protocol names" +getprotoent(3n), getservent(3n), protocols(5), services(5), \s-1PS1\s0:8\*(tx14 +.X "protocol number" +getsockopt(2), socket(2), getprotoent(3n), ip(4p), tcp(4p), \s-1PS1\s0:6\*(tx36, \s-1PS1\s0:8\*(tx14,28, \s-1SMM\s0:13\*(tx21, \s-1SMM\s0:15\*(tx9..10,23 +.X "protocol, remote magtape" +rmt(8c) +.X "protocol, routing" +ifconfig(8c), routed(8c), \s-1SMM\s0:1\*(tx41, \s-1SMM\s0:13\*(tx27 +.X "Protocol, Routing Information" +XNSrouted(8c) +.X "protocol statistics" +netstat(1) +.X "protocol switch table" +\s-1SMM\s0:13\*(tx23, \s-1SMM\s0:15\*(tx9,15..16 +.X "Protocol, Tape Mass Storage Control" +tmscp(4), \s-1SMM\s0:13\*(tx20,33 +.X "protocol, TCP" +\s-1PS1\s0:6\*(tx37, \s-1PS1\s0:8\*(tx4,14,24 +.X "Protocol, tcp \*(tx Internet Transmission Control" +tcp(4p) +.X "Protocol, Time Synchronization" +date(1), timed(8), timedc(8), \s-1SMM\s0:22 +.X "protocol trace" +trpt(8c) +.X "Protocol, Trivial File Transfer" +tftp(1c), tftpd(8c) +.X "protocol type" +socket(2), \s-1SMM\s0:15\*(tx26 +.X "Protocol, udp \*(tx Internet User Datagram" +udp(4p) +.X "protocol, virtual terminal" +telnetd(8c) +.X "Protocol, Xerox Internet Datagram (see also IDP)" +idp(4p), spp(4p), \s-1SMM\s0:12\*(tx17..18 +.X "Protocol/network\*(txinterface interface" +\s-1SMM\s0:15\*(tx19 +.X "Protocol/protocol interface" +\s-1SMM\s0:15\*(tx17 +.X "protocols \*(tx protocol name data base" +protocols(5) +.X "protocols, communication" +intro(2)\*(tx5,7, socket(2), \s-1PS1\s0:8\*(tx3,14, \s-1SMM\s0:1\*(tx38, \s-1SMM\s0:12\*(tx17, \s-1SMM\s0:15\*(tx3,6,15 +.X "Protocols, Domains and" +\s-1PS1\s0:7\*(tx7 +.X "protocols, Internet" +socket(2), getprotoent(3n), arp(4p), ddn(4), inet(4f), ip(4p), \s-1PS1\s0:7\*(tx8, \s-1PS1\s0:8\*(tx11, ifconfig(8c), \s-1SMM\s0:2\*(tx13, \s-1SMM\s0:13\*(tx20,23, \s-1SMM\s0:15\*(tx17..18 +.X "protocols, network" +socket(2), intro(4n)\*(tx1, \s-1PS1\s0:7\*(tx8, inetd(8), \s-1SMM\s0:15\*(tx14 +.X "protocols, Socket types and" +\s-1PS1\s0:6\*(tx33,37 +.X "protocols, Trailer" +\s-1SMM\s0:15\*(tx12,14,26 +.X "protocols, Xerox Network Systems (see also NS)" +socket(2), intro(4n)\*(tx1, \s-1SMM\s0:2\*(tx13,33, \s-1SMM\s0:13\*(tx20,28 +.X "protocols, Xerox PUP" +\s-1SMM\s0:12\*(tx23 +.X "protoent, struct" +getprotoent(3n) +.X "prototype file" +mkproto(8) +.X "prototype headers" +\s-1PS1\s0:8\*(tx3,35..38 +.X "PRU_ACCEPT" +\s-1SMM\s0:15\*(tx16 +.X "PRU_ATTACH" +\s-1SMM\s0:15\*(tx15 +.X "PRU_BIND" +\s-1SMM\s0:15\*(tx15 +.X "PRU_CONNECT" +\s-1SMM\s0:15\*(tx16 +.X "PRU_CONTROL" +\s-1SMM\s0:15\*(tx16 +.X "PRU_DETACH" +\s-1SMM\s0:15\*(tx15 +.X "PRU_DISCONNECT" +\s-1SMM\s0:15\*(tx16 +.X "PRU_LISTEN" +\s-1SMM\s0:15\*(tx15 +.X "PRU_RCVD" +\s-1SMM\s0:15\*(tx16 +.X "PRU_RCVOOB" +\s-1SMM\s0:15\*(tx17 +.X "PRU_SEND" +\s-1SMM\s0:15\*(tx16 +.X "PRU_SENSE" +\s-1SMM\s0:15\*(tx16 +.X "ps \*(tx Evans and Sutherland Picture System 2 graphics device interface" +ps(4), \s-1SMM\s0:12\*(tx17 +.X "ps \*(tx process status" +ps(1)\*(tx1, \s-1USD\s0:3\*(tx2, \s-1USD\s0:4\*(tx18,42, \s-1SMM\s0:12\*(tx10 +.X "PS point size" +\s-1USD\s0:20\*(tx5 +.X "psc750.bin" +reboot(8)\*(tx2 +.X "pseudo devices" +imp(4), \s-1SMM\s0:2\*(tx3,10,13 +.X "pseudo terminals" +window(1)\*(tx1, pty(4), \s-1PS1\s0:8\*(tx27,29, rlogind(8c), \s-1SMM\s0:1\*(tx33,39, \s-1SMM\s0:2\*(tx10,13 +.X "pseudo\*(txpage transition" +\s-1USD\s0:24\*(tx11 +.X "pseudo\*(txvariables $1, $2, . . ." +\s-1PS1\s0:15\*(tx5 +.X "psignal, sys_siglist \*(tx system signal message" +psignal(3), \s-1SMM\s0:12\*(tx16 +.X "pstat \*(tx print system facts" +pstat(8)\*(tx1, \s-1SMM\s0:12\*(tx21 +.X "psychoanalyst, doctor \*(tx interact with a" +doctor(6) +.X "ptrace \*(tx process trace" +ptrace(2), wait(2), execl(3), \s-1SMM\s0:12\*(tx13 +.X "ptx \*(tx permuted index" +ptx(1), \s-1SMM\s0:12\*(tx10 +.X "pty \*(tx pseudo terminal driver (see also pseudo terminal)" +pty(4), \s-1SMM\s0:1\*(tx32, \s-1SMM\s0:12\*(tx10,17 +.X "pty master" +\s-1SMM\s0:12\*(tx17, \s-1SMM\s0:13\*(tx10 +.X "pubindex" +\s-1USD\s0:29\*(tx5 +.X "public directory" +uucp(1c), uux(1c), \s-1SMM\s0:1\*(tx23 +.X "public domain" +\s-1USD\s0:8\*(tx112, \s-1USD\s0:10\*(tx4 +.X "public sequences" +\s-1USD\s0:8\*(tx85,100 +.X "public\*(txkey cryptosystem" +xsend(1) +.X "publishing houses" +\s-1USD\s0:31\*(tx4,9 +.X "punch cards" +bcd(6) +.X "punctuation" +\s-1USD\s0:15\*(tx6 +.X "punctuation characters" +\s-1USD\s0:17\*(tx47, ctype(3) +.X "PUP" +\s-1SMM\s0:12\*(tx23, \s-1SMM\s0:13\*(tx20 +.X "purge \*(tx destroy all expired and temporary relations" +\s-1PS2\s0:10\*(tx59 +.X "push character back into input stream" +ungetc(3s) +.X "push directory" +csh(1)\*(tx14, \s-1USD\s0:4\*(tx21,36,41..42, \s-1USD\s0:17\*(tx40,42 +.X "Push Option" +\s-1USD\s0:8\*(tx104 +.X "putc, fputc \*(tx write a character to a Fortran logical unit" +printf(3s), putc(3f) +.X "putc, putchar, fputc, putw \*(tx put character or word on a stream" +putc(3s) +.X "puts, fputs \*(tx put a string on a stream" +puts(3s) +.X "putting two or more files together" +\s-1USD\s0:13\*(tx12 +.X "pwd \*(tx print working directory name" +pwd(1), \s-1USD\s0:17\*(tx42 +.X "px" +\s-1USD\s0:21\*(tx2 +.X "px \*(tx Pascal interpreter" +pdx(1)\*(tx3, px(1) +.X "pxp \*(tx Pascal execution profiler" +pxp(1), \s-1PS1\s0:4\*(tx17..18,37..39 +.X "pxref \*(tx Pascal cross\*(txreference program" +pxref(1) +.L Q +.X "Q\*(txbus" +autoconf(4), intro(4) +.X "qe \*(tx DEC DEQNA Q\*(txbus 10 Mb/s Ethernet interface" +qe(4) +.X "QED" +\s-1PS1\s0:16\*(tx2..3, \s-1PS2\s0:1\*(tx2 +.X "qelem, struct" +insque(3) +.X "qlinker function" +\s-1PS2\s0:9\*(tx116,128 +.X "qsort \*(tx quick sort" +qsort(3f) +.X "qsort \*(tx quicker sort" +qsort(3) +.X "quadratic hash" +\s-1SMM\s0:14\*(tx9 +.X "QUEL" +\s-1PS2\s0:10 +.X "quel \*(tx QUEry Language for INGRES" +\s-1PS2\s0:10\*(tx32 +.X "Quel Statements" +\s-1PS2\s0:10\*(tx51..53,76,79,83 +.X "query buffer" +\s-1PS2\s0:10\*(tx19,26..29,82 +.X "QUEry Language for INGRES, quel \*(tx" +\s-1PS2\s0:10\*(tx32 +.X "query modification" +\s-1PS2\s0:10\*(tx47,75,77,81 +.X "Query Modification error message summary" +\s-1PS2\s0:10\*(tx80 +.X "query replace" +\s-1USD\s0:17\*(tx10,42 +.X "query\*(txreplace\*(txstring" +\s-1USD\s0:17\*(tx42 +.X "question mark" +grep(1), \s-1USD\s0:13\*(tx8 +.X "questions, answers to frequently asked" +\s-1USD\s0:10\*(tx10 +.X "queue directory" +\s-1SMM\s0:7\*(tx10,32 +.X "queue files" +sendmail(8)\*(tx3, \s-1SMM\s0:7\*(tx8,32 +.X "queue, Forcing the" +\s-1SMM\s0:7\*(tx9 +.X "queue, insque, remque \*(tx insert/remove element from a" +insque(3) +.X "queue interval" +\s-1SMM\s0:7\*(tx12,14..15 +.X "queue, mail" +sendmail(8)\*(tx3, \s-1SMM\s0:7\*(tx6..10,28,38 +.X "queue priorities" +\s-1SMM\s0:7\*(tx13..14 +.X "queue, raw" +\s-1SMM\s0:13\*(tx10 +.X "queue, UUCP spool" +\s-1SMM\s0:9\*(tx8 +.X "queues, character" +\s-1PS2\s0:4\*(tx6, \s-1PS2\s0:5\*(tx3 +.X "queues, data" +\s-1SMM\s0:15\*(tx6..7 +.X "queues, device" +\s-1PS2\s0:5\*(tx5..6 +.X "queues, input" +tty(4)\*(tx4,7..8, pstat(8)\*(tx3, \s-1SMM\s0:15\*(tx18 +.X "queues, output" +more(1)\*(tx3, tty(4)\*(tx2..4,7..8, \s-1SMM\s0:13\*(tx9,13, \s-1SMM\s0:15\*(tx11 +.X "queues, printer" +lpc(8), \s-1SMM\s0:6\*(tx6 +.X "queues, run" +uptime(1), vmstat(1), w(1), \s-1SMM\s0:13\*(tx8 +.X "queues, spooling" +lpq(1), lprm(1), lpc(8), \s-1SMM\s0:1\*(tx34, \s-1SMM\s0:6\*(tx2,5 +.X "queuing and dequeuing packets" +\s-1SMM\s0:15\*(tx20 +.X "quiet" +\s-1USD\s0:7\*(tx19 +.X "quit character" +stty(1)\*(tx1 +.X "QUIT signal (see also SIGQUIT)" +sh(1)\*(tx4, \s-1USD\s0:4\*(tx9..10,17, signal(3c), fsck(8), \s-1SMM\s0:1\*(tx45 +.X "quiz \*(tx test your knowledge" +quiz(6) +.X "quot \*(tx summarize file system ownership" +quot(8) +.X "quota \*(tx display disc usage and limits" +quota(1) +.X "quota \*(tx manipulate disk quotas" +quota(2) +.X "quota files" +setquota(2), quotacheck(8), \s-1SMM\s0:4, \s-1SMM\s0:12\*(tx10 +.X "quota of disk blocks" +creat(2) +.X "quota of inodes" +creat(2) +.X "quota structures" +\s-1SMM\s0:2\*(tx31 +.X "quota, summarize" +repquota(8) +.X "quota system" +\s-1USD\s0:14\*(tx21, \s-1SMM\s0:1\*(tx50, \s-1SMM\s0:2\*(tx7, \s-1SMM\s0:4, \s-1SMM\s0:12\*(tx10, \s-1SMM\s0:13\*(tx12 +.X "quotacheck \*(tx file system quota consistency checker" +quotacheck(8) +.X "quota(cmd, uid, arg, addr)" +\s-1PS1\s0:6\*(tx32 +.X "quotaon, quotaoff \*(tx turn file system quotas on and off" +quotaon(8), \s-1SMM\s0:4\*(tx2 +.X "quotas, disc" +intro(2)\*(tx5, setquota(2), edquota(8), quotacheck(8), quotaon(8), \s-1SMM\s0:1\*(tx50, \s-1SMM\s0:2\*(tx31, \s-1SMM\s0:4 +.X "quotas, disk" +quota(2), fstab(5), mtab(5), \s-1PS1\s0:6\*(tx32, quotacheck(8), \s-1SMM\s0:1\*(tx26,47,50, \s-1SMM\s0:2\*(tx3,6..7,14,31, \s-1SMM\s0:14\*(tx13 +.X "quotas, edquota \*(tx edit user" +edquota(8) +.X "quotation" +\s-1USD\s0:4\*(tx8 +.X "quotation mechanism" +\s-1USD\s0:4\*(tx31 +.X "quote indent" +ms(7)\*(tx3 +.X "quote, Left" +\s-1USD\s0:23\*(tx9 +.X "quote, left and right" +\s-1USD\s0:22\*(tx18 +.X "quote marks" +sh(1)\*(tx3, \s-1USD\s0:3\*(tx4, \s-1USD\s0:21\*(tx2, \s-1USD\s0:22\*(tx16..18, \s-1USD\s0:23\*(tx6, \s-1PS1\s0:1\*(tx3, \s-1PS1\s0:2\*(tx8,20,22 \s-1PS1\s0:4\*(tx40, \s-1PS1\s0:17\*(tx3, \s-1PS2\s0:6\*(tx4, \s-1PS2\s0:9\*(tx10 +.X "quote, .(q Begin major" +\s-1USD\s0:23\*(tx4 +.X "quote, .)q End major" +\s-1USD\s0:23\*(tx4 +.X "quote, Right" +\s-1USD\s0:23\*(tx9 +.X "quoted string" +csh(1)\*(tx5 +.X "quoted text" +\s-1USD\s0:22\*(tx5,18, \s-1USD\s0:27\*(tx5 +.X "quotes, Double" +\s-1USD\s0:3\*(tx17, \s-1USD\s0:25\*(tx7, \s-1SMM\s0:16\*(tx6 +.X "quoting conventions" +csh(1)\*(tx1,5, expr(1), grep(1), sh(1)\*(tx3, \s-1USD\s0:3\*(tx4,7,15..18, \s-1USD\s0:17\*(tx4, \s-1USD\s0:26\*(tx4, \s-1PS1\s0:16\*(tx4, \s-1PS1\s0:17\*(tx2 +.X "quoting, Evaluation and" +\s-1USD\s0:3\*(tx16 +.L R +.X "RA60" +\s-1SMM\s0:1\*(tx2,28 +.X "RA60 partitions" +uda(4)\*(tx1 +.X "RA80" +\s-1SMM\s0:1\*(tx28 +.X "RA80 partitions" +uda(4)\*(tx2 +.X "RA81" +\s-1SMM\s0:1\*(tx28 +.X "RA81 partitions" +uda(4)\*(tx2 +.X "Racal\*(txVadic modems" +tip(1c)\*(tx2, L\*(txdevices(5), L.sys(5)\*(tx2, \s-1SMM\s0:9\*(tx9,15 +.X "race conditions" +binmail(1), \s-1SMM\s0:13\*(tx20 +.X "Radial Serial Protocol (RSP)" +tu(4) +.X "radix, default" +adb(1)\*(tx4 +.X "radix, number" +dc(1), \s-1USD\s0:5\*(tx3 +.X "railmag file" +lpr(1) +.X "rain \*(tx animated raindrops display" +rain(6) +.X "rand, drand, irand \*(tx return random value" +rand(3f) +.X "Rand MH Message Handling System: User's Manual" +\s-1USD\s0:8 +.X "rand, srand \*(tx random number generator" +rand(3c) +.X "RANDOM" +\s-1SMM\s0:12\*(tx16 +.X "random, drandm, irandm \*(tx better random number generator" +random(3f) +.X "random number generator" +ching(6), rand(3c), random(3) +.X "random, srandom \*(tx better random number generator" +random(3) +.X "range \*(tx declare a variable to range over a relation" +\s-1PS2\s0:10\*(tx40 +.X "range of lines" +\s-1USD\s0:13\*(tx9 +.X "range statements" +\s-1PS2\s0:10\*(tx13,19,29,33,40,76 +.X "RANLIB" +lorder(1), \s-1SMM\s0:12\*(tx10 +.X "ranlib \*(tx convert archives to random libraries" +ranlib(1) +.X "raster images" +lpr(1), lpd(8), \s-1SMM\s0:6\*(tx4 +.X "Ratfor" +f77(1), m4(1), struct(1), vgrind(1), \s-1USD\s0:1\*(tx13, \s-1PS1\s0:2\*(tx4..5, \s-1PS1\s0:16\*(tx1, \s-1PS1\s0:17\*(tx1, \s-1PS2\s0:6\*(tx33, \s-1PS2\s0:8 +.X "RATFOR \*(tx A Preprocessor for a Rational Fortran" +\s-1PS2\s0:8 +.X "ratfor \*(tx rational Fortran dialect" +ratfor(1) +.X "Ratfor, EFL and" +\s-1PS2\s0:6\*(tx33 +.X "Ratfor grammar" +\s-1PS2\s0:8\*(tx10 +.X "Ratfor programs" +struct(1), \s-1PS2\s0:6\*(tx24, \s-1PS2\s0:8\*(tx1,10,14 +.X "Rational Fortran" +ratfor(1) +.X "raw()" +\s-1PS1\s0:18\*(tx13 +.X "raw devices" +hk(4), hp(4)\*(tx4, up(4)\*(tx3, fsck(8), quotacheck(8), \s-1SMM\s0:1\*(tx5 +.X "raw files" +hk(4), hp(4), uda(4)\*(tx1, up(4) +.X "RAW interface" +inet(4f), ns(4f) +.X "raw I/O" +hk(4), hp(4), uda(4)\*(tx1, up(4) +.X "Raw IP sockets" +ip(4p), \s-1SMM\s0:13\*(tx23..24, \s-1SMM\s0:15\*(tx22 +.X "raw magnetic tape" +mtio(4) +.X "raw mode" +stty(1), tset(1)\*(tx3, bk(4), tb(4), tty(4)\*(tx2..4,7, gettytab(5)\*(tx3, \s-1PS1\s0:6\*(tx38 +.X "raw queue" +\s-1SMM\s0:13\*(tx10 +.X "raw socket" +socket(2), intro(4n)\*(tx1, icmp(4p), inet(4f), ip(4p), ns(4f), \s-1PS1\s0:6\*(tx33,37, \s-1PS1\s0:8\*(tx3,28,30,38, route(8c), \s-1SMM\s0:13\*(tx21..23, \s-1SMM\s0:15\*(tx3..4,22..24 +.X "rc \*(tx command script for auto\*(txreboot and daemons (see also /etc/rc)" +rc(8) +.X "RC25 partitions" +uda(4)\*(tx1 +.X "rcmd" +\s-1SMM\s0:12\*(tx16 +.X "rcp \*(tx remote file copy" +rcp(1c), \s-1SMM\s0:12\*(tx10 +.X "RCS" +\s-1PS1\s0:12\*(tx6,9, \s-1PS1\s0:13 +.X "rcs \*(tx change RCS file attributes" +\s-1PS1\s0:13\*(tx12 +.X "rcs commands" +rcsintro(1) +.X "RCS file, access list of the" +\s-1PS1\s0:13\*(tx8,13 +.X "RCS file attributes, rcs \*(tx change" +\s-1PS1\s0:13\*(tx12 +.X "RCS file name" +\s-1PS1\s0:13\*(tx5,8,10,14..15,19..20 +.X "RCS file, rcsfile \*(tx format of" +\s-1PS1\s0:13\*(tx16 +.X "RCS file, rlog \*(tx print log messages and other information about" +\s-1PS1\s0:13\*(tx20 +.X "RCS files" +rcsintro(1), \s-1PS1\s0:13\*(tx2..16,19..22 +.X "RCS revisions" +\s-1PS1\s0:13\*(tx8,14,18 +.X "RCS revisions, ci \*(tx check in" +\s-1PS1\s0:13\*(tx4 +.X "RCS revisions, co \*(tx check out" +\s-1PS1\s0:13\*(tx8 +.X "RCS revisions, rcsdiff \*(tx compare" +\s-1PS1\s0:13\*(tx14 +.X "RCS revisions, rcsmerge \*(tx merge" +\s-1PS1\s0:13\*(tx18 +.X "RCS version of diff3" +\s-1SMM\s0:12\*(tx4 +.X "rcsdiff \*(tx compare RCS revisions" +\s-1PS1\s0:13\*(tx14 +.X "rcsfile \*(tx format of RCS file" +\s-1PS1\s0:13\*(tx16 +.X "rcsintro \*(tx introduction to RCS commands" +rcsintro(1) +.X "rcsmerge \*(tx merge RCS revisions" +\s-1PS1\s0:13\*(tx18 +.X "rcvstore \*(tx incorporate new mail asynchronously" +\s-1USD\s0:8\*(tx54 +.X "rcvtty program" +\s-1USD\s0:8\*(tx38 +.X "rd request" +nroff(1), troff(1), \s-1USD\s0:24\*(tx2 +.X "RD52 partitions" +uda(4)\*(tx1 +.X "RD53 partitions" +uda(4)\*(tx1 +.X "rdist \*(tx remote file distribution program" +rdist(1), catman(8), \s-1SMM\s0:12\*(tx10 +.X "rdump \*(tx file system dump across the network" +rdump(8c) +.X "read" +stat(2)\*(tx1 +.X "read \*(tx Bourne shell command" +sh(1)\*(tx1 +.X "read & write, open for" +\s-1PS1\s0:6\*(tx28 +.X "read a string" +gets(3s) +.X "read access" +csh(1)\*(tx9 +.X "read an EBCDIC tape" +dd(1) +.X "read and write with sockets" +\s-1PS1\s0:6\*(tx36 +.X "read commands" +adb(1)\*(tx4, \s-1USD\s0:12\*(tx3, cons(4) +.X "read from the terminal" +csh(1)\*(tx9 +.X "read permission" +access(3f), \s-1PS1\s0:6\*(tx29 +.X "read, readv \*(tx read input" +read(2), \s-1SMM\s0:14\*(tx10 +.X "Read the Network News, How to" +\s-1USD\s0:9\*(tx1 +.X "read timeout" +\s-1SMM\s0:7\*(tx14 +.X "readability index" +style(1), \s-1USD\s0:32\*(tx2..4 +.X "read\*(txahead" +\s-1USD\s0:1\*(tx3 +.X "readdir" +directory(3) +.X "reader, BBoard" +\s-1USD\s0:8\*(tx42 +.X "read(fd, buf, nbytes)" +\s-1PS1\s0:6\*(tx25, \s-1PS1\s0:7\*(tx19 +.X "reading additional files" +\s-1USD\s0:14\*(tx21 +.X "reading commands" +\s-1USD\s0:4\*(tx11,26,42 +.X "reading files" +fopen(3s) +.X "reading list" +\s-1USD\s0:1\*(tx2 +.X "reading, mail" +mh(1)\*(tx1, \s-1USD\s0:7\*(tx7, \s-1SMM\s0:12\*(tx23 +.X "reading notes" +\s-1USD\s0:11\*(tx4..9 +.X "reading, peeking at a message without" +\s-1PS1\s0:6\*(tx35 +.X "reading responses" +\s-1USD\s0:11\*(tx7 +.X "reading, scatter" +read(2) +.X "reading text from a file" +\s-1USD\s0:12\*(tx2..3 +.X "readlink \*(tx read value of a symbolic link" +ln(1), readlink(2), \s-1SMM\s0:12\*(tx13 +.X "readlink(path, buf, bufsize)" +\s-1PS1\s0:6\*(tx30 +.X "read\*(txmacros\*(txfrom\*(txfile" +\s-1USD\s0:17\*(tx43,48 +.X "readnews command" +patch(1)\*(tx1, \s-1USD\s0:9\*(tx2,5..6 +.X "readonly \*(tx Bourne shell command" +sh(1)\*(tx1 +.X "read\*(txonly file system" +mount(2), mount(8) +.X "read\*(txonly folders" +\s-1USD\s0:8\*(tx20,60 +.X "read\*(txword\*(txabbrev\*(txfile" +\s-1USD\s0:17\*(tx42,48 +.X "read/write" +\s-1SMM\s0:13\*(tx6 +.X "read/write permission" +\s-1SMM\s0:9\*(tx7 +.X "real constants" +\s-1PS1\s0:2\*(tx24, \s-1PS2\s0:6\*(tx8 +.X "real group ID" +access(2), getgid(2), intro(2)\*(tx5..6, setregid(2), getuid(3f), setuid(3) +.X "real hostname" +gettytab(5)\*(tx2, L.aliases(5) +.X "real memory" +ps(1)\*(tx2, vmstat(1), \s-1SMM\s0:1\*(tx12 +.X "real memory address" +od(1) +.X "real numbers" +flmin(3f), \s-1PS1\s0:4\*(tx19,23,27,29, \s-1PS1\s0:16\*(tx8 +.X "real time" +csh(1)\*(tx18, getitimer(2), \s-1PS1\s0:6\*(tx16, sa(8) +.X "real user ID" +sh(1)\*(tx2, \s-1USD\s0:10\*(tx11, access(2), execve(2), getuid(2), intro(2)\*(tx5, setreuid(2), getuid(3f), setuid(3), USERFILE(5), \s-1PS1\s0:6\*(tx8, \s-1SMM\s0:10\*(tx14..15, \s-1SMM\s0:12\*(tx11,13..14, \s-1SMM\s0:13\*(tx8, \s-1SMM\s0:17\*(tx1 +.X "realloc" +malloc(3) +.X "rearranging a line with \\\\( ... \\\\)" +\s-1USD\s0:13\*(tx7 +.X "rearranging and duplicating text" +\s-1USD\s0:15\*(tx10 +.X "reboot" +cons(4), fastboot(8), icheck(8), init(8), shutdown(8), \s-1SMM\s0:1\*(tx45 +.X "reboot \*(tx reboot system or halt processor" +reboot(2), \s-1PS1\s0:6\*(tx23 +.X "reboot \*(tx UNIX bootstrapping procedures" +reboot(8)\*(tx1 +.X "reboot, automatic" +crash(8v)\*(tx1, fsck(8), rc(8) +.X "reboot, machine halt or" +\s-1PS1\s0:6\*(tx23 +.X "reboot switch" +\s-1SMM\s0:1\*(tx8 +.X "rebooting the completed root file system" +\s-1SMM\s0:1\*(tx14 +.X "receive datagrams" +\s-1PS1\s0:6\*(tx34 +.X "receive messages from a socket" +recv(2) +.X "receive primitive" +\s-1PS1\s0:6\*(tx35 +.X "Received" +sendmail(8)\*(tx2, \s-1SMM\s0:7\*(tx32,36 +.X "recipient addresses" +sendmail(8)\*(tx2, \s-1SMM\s0:7\*(tx9,23,27, \s-1SMM\s0:16\*(tx4,7 +.X "recipient line" +\s-1SMM\s0:7\*(tx12 +.X "recipient list" +mail(1)\*(tx5, \s-1USD\s0:7\*(tx9, \s-1SMM\s0:16\*(tx4..5 +.X "recipients, carbon copy" +mail(1)\*(tx4..5, \s-1USD\s0:7\*(tx18 +.X "recipients, sighted" +\s-1USD\s0:8\*(tx64,96 +.X "re_comp, re_exec \*(tx regular expression handler" +regex(3) +.X "recompile the entire system source" +\s-1SMM\s0:1\*(tx48 +.X "recompiling and reinstalling system software" +\s-1SMM\s0:1\*(tx48 +.X "Record" +mail(1)\*(tx6, \s-1USD\s0:7\*(tx19, dbx(5)\*(tx4 +.X "record all outgoing mail" +mail(1)\*(tx6 +.X "record boundaries" +\s-1PS1\s0:6\*(tx33, \s-1PS1\s0:8\*(tx3, \s-1SMM\s0:15\*(tx8,10 +.X "record, input" +dd(1), \s-1USD\s0:19\*(tx2,5, bk(4), \s-1PS1\s0:2\*(tx9, \s-1PS1\s0:3\*(tx9, \s-1PS1\s0:6\*(tx38 +.X "record length" +dir(5), \s-1PS1\s0:2\*(tx12,15,25..27, \s-1PS1\s0:3\*(tx3 +.X "record number" +awk(1), \s-1USD\s0:19\*(tx2, topen(3f) +.X "record separator" +\s-1USD\s0:19\*(tx2 +.X "Records and Fields" +\s-1USD\s0:19\*(tx2 +.X "records, disk" +hk(4), hp(4)\*(tx1, uda(4)\*(tx1, up(4)\*(tx1 +.X "records, fixed length" +dd(1) +.X "records, logical" +\s-1PS1\s0:3\*(tx3, \s-1PS2\s0:4\*(tx9 +.X "records, physical" +topen(3f) +.X "records, resource" +\s-1SMM\s0:11\*(tx6..9 +.X "records, skip over files and/or" +topen(3f) +.X "records, trace" +trpt(8c), trsp(8c) +.X "records, variable length" +dd(1) +.X "RECOVER" +\s-1USD\s0:16\*(tx9 +.X "recoverable ECC error" +hk(4), hp(4)\*(tx4, up(4)\*(tx3 +.X "recovering files lost in a crash" +\s-1USD\s0:14\*(tx2,18,21, \s-1USD\s0:15\*(tx14 +.X "recovering from hangups and crashes" +\s-1USD\s0:16\*(tx3 +.X "recovering from system/editor crashes" +\s-1USD\s0:16\*(tx1, \s-1USD\s0:17\*(tx15 +.X "recovering lost lines" +\s-1USD\s0:15\*(tx14 +.X "recovery, backups and disaster" +\s-1SMM\s0:1\*(tx46 +.X "recovery, error" +\s-1SMM\s0:13\*(tx32 +.X "recursion" +\s-1System Index\s0\*(tx\n% +.X "recursion, left" +\s-1PS1\s0:15\*(tx19 +.X "recursive editing level" +\s-1USD\s0:17\*(tx11,42 +.X "recursively list subdirectories" +ls(1) +.X "recv, recvfrom, recvmsg \*(tx receive a message from a socket" +recv(2) +.X "recvfrom(s, buf, len, flags, from, fromlenaddr)" +icmp(4p), idp(4p), ip(4p), udp(4p), \s-1PS1\s0:6\*(tx35, \s-1PS1\s0:7\*(tx22, \s-1PS1\s0:8\*(tx9 +.X "recvmsg(s, msg, flags)" +\s-1PS1\s0:6\*(tx36, \s-1PS1\s0:7\*(tx22 +.X "recv(s, buf, len, flags)" +recv(2), \s-1PS1\s0:6\*(tx35, \s-1PS1\s0:7\*(tx22, \s-1PS1\s0:8\*(tx8,24 +.X "redirect, ICMP routing" +\s-1SMM\s0:1\*(tx40..41, \s-1SMM\s0:2\*(tx33 +.X "redirection, input output" +csh(1)\*(tx6,12,14, sh(1)\*(tx3..4, tc(1), tk(1), window(1)\*(tx1, \s-1USD\s0:1\*(tx1,12, \s-1USD\s0:3\*(tx2,21, \s-1USD\s0:4\*(tx9, \s-1USD\s0:9\*(tx5 +.X "redraw\*(txdisplay (C\*(txL)" +\s-1USD\s0:17\*(tx17,43 +.X "redraw display" +\s-1USD\s0:16\*(tx17 +.X "reduce action" +\s-1PS1\s0:15\*(tx8 +.X "reduce/reduce conflicts" +\s-1PS1\s0:15\*(tx12,16 +.X "Refer \*(tx A Bibliography System" +lookbib(1), refer(1), \s-1USD\s0:29, \s-1USD\s0:31\*(tx1, \s-1SMM\s0:12\*(tx10 +.X "refer \*(tx find and insert literature references in documents" +refer(1) +.X "refer and \*(txms" +\s-1USD\s0:30\*(tx10 +.X "Refer Bugs and Some Solutions" +\s-1USD\s0:29\*(tx6 +.X "REFER environment variable" +refer(1) +.X "refer options" +\s-1USD\s0:29\*(tx5, \s-1USD\s0:30\*(tx10 +.X "reference, bibliographic" +lookbib(1), refer(1), \s-1USD\s0:29\*(tx1 +.X "reference counts" +intro(4n)\*(tx2, \s-1SMM\s0:5\*(tx9, \s-1SMM\s0:13\*(tx10 +.X "reference, descriptor" +\s-1PS1\s0:6\*(tx18 +.X "Reference File Formats" +\s-1USD\s0:31\*(tx4,12 +.X "reference files" +bib(1), lookbib(1), \s-1USD\s0:30\*(tx1,8, \s-1USD\s0:31\*(tx1..4,13 +.X "Reference Format Designer's Guide" +\s-1USD\s0:31\*(tx8 +.X "reference, footnoted" +\s-1USD\s0:31\*(tx3 +.X "reference formats" +bib(1), \s-1USD\s0:31\*(tx3,6..7 +.X "reference, history" +csh(1)\*(tx5 +.X "reference, locality of" +\s-1SMM\s0:14\*(tx8 +.X "reference, ``see''" +\s-1USD\s0:29\*(tx8, \s-1USD\s0:30\*(tx11 +.X "references, array" +\s-1PS2\s0:6\*(tx8, \s-1PS2\s0:9\*(tx55,108 +.X "references at the end of a chapter" +\s-1USD\s0:29\*(tx5 +.X "references, external" +ld(1) +.X "references, illegal memory" +\s-1PS2\s0:3\*(tx10, \s-1PS2\s0:9\*(tx38,62 +.X "references, name cache" +\s-1SMM\s0:13\*(tx10..11 +.X "references, numbering" +refer(1), \s-1USD\s0:29\*(tx4..5,8, \s-1USD\s0:30\*(tx11 +.X "references, private file of" +\s-1USD\s0:30\*(tx12 +.X "references, sort" +refer(1), \s-1USD\s0:31\*(tx3 +.X "references, structure" +\s-1SMM\s0:19\*(tx11 +.X "refile \*(tx file message in other folders" +\s-1USD\s0:8\*(tx55 +.X "refresh()" +\s-1PS1\s0:18\*(tx4..6,11 +.X "Refresh" +\s-1SMM\s0:11\*(tx7,11..13 +.X "register allocation" +\s-1SMM\s0:19\*(tx14,17,19..20,23..27 +.X "register, Assign format to" +\s-1USD\s0:24\*(tx17 +.X "register declarations" +\s-1PS1\s0:1\*(tx13, \s-1SMM\s0:19\*(tx8 +.X "register names" +adb(1)\*(tx2, \s-1USD\s0:20\*(tx7, \s-1USD\s0:24\*(tx17, \s-1SMM\s0:19\*(tx3,14 +.X "register names, list of \*(txms macros and" +\s-1USD\s0:20\*(tx7 +.X "register numbers" +\s-1SMM\s0:19\*(tx8,11,14,17,20,23..25 +.X "register, page\*(txnumber" +\s-1USD\s0:24\*(tx23 +.X "register pairs" +\s-1SMM\s0:19\*(tx15,19,22 +.X "register, Remove" +\s-1USD\s0:24\*(tx18 +.X "register symbols" +\s-1PS1\s0:5\*(tx7 +.X "register, target" +\s-1SMM\s0:19\*(tx19,23 +.X "register variables" +dbx(5)\*(tx1, \s-1PS1\s0:1\*(tx4,18,21..22,31, \s-1PS1\s0:10\*(tx8,13, \s-1SMM\s0:13\*(tx19, \s-1SMM\s0:19\*(tx3,8,12..14 +.X "registers" +\s-1USD\s0:20\*(tx1,5, \s-1USD\s0:24\*(tx17 +.X "registers, control status" +\s-1SMM\s0:1\*(tx57, \s-1SMM\s0:2\*(tx10 +.X "registers, device" +\s-1SMM\s0:2\*(tx4,16 +.X "registers, interface" +ik(4), ps(4) +.X "registers, list of string" +ms(7)\*(tx3 +.X "registers, list of troff number" +\s-1USD\s0:24\*(tx7 +.X "registers, map" +\s-1SMM\s0:2\*(tx16,20,22, \s-1SMM\s0:13\*(tx33, \s-1SMM\s0:15\*(tx12..13 +.X "registers, number" +roffbib(1), ms(7)\*(tx3, \s-1USD\s0:20\*(tx5,7, \s-1USD\s0:23\*(tx1..5, \s-1USD\s0:24\*(tx2,4,8..9,13,15..17,21..22,28, \s-1USD\s0:25\*(tx9..11, \s-1USD\s0:28\*(tx7, \s-1USD\s0:29\*(tx4 +.X "registers, scratch" +\s-1SMM\s0:19\*(tx15..19,22..25 +.X "regular expression handler" +regex(3) +.X "regular expression summary" +\s-1USD\s0:16\*(tx14 +.X "regular expressions" +awk(1), ed(1)\*(tx2, expr(1), grep(1), lex(1), more(1)\*(tx1, sed(1)\*(tx2, \s-1USD\s0:12\*(tx9, \s-1USD\s0:13\*(tx15, \s-1USD\s0:15\*(tx5,19, \s-1USD\s0:16\*(tx13, \s-1USD\s0:17\*(tx10,38, \s-1USD\s0:18\*(tx1, \s-1USD\s0:19\*(tx3, \s-1PS1\s0:16\*(tx1 +.X "regular expressions in lex" +\s-1PS1\s0:16\*(tx12 +.X "rehash shell command" +csh(1)\*(tx14, \s-1USD\s0:4\*(tx23 +.X "REJECT" +\s-1PS1\s0:16\*(tx7..8,13 +.X "related files, maintaining a group of" +\s-1USD\s0:4\*(tx25 +.X "relation, create \*(tx create a new" +\s-1PS2\s0:10\*(tx11 +.X "relation, database" +\s-1PS2\s0:10\*(tx4,55,58 +.X "relation, destroy \*(tx destroy existing" +\s-1PS2\s0:10\*(tx15 +.X "relation, index \*(tx create a secondary index on an existing" +\s-1PS2\s0:10\*(tx16 +.X "relation, modify \*(tx convert the storage structure of a" +\s-1PS2\s0:10\*(tx22 +.X "relation names" +\s-1PS2\s0:10\*(tx13,41,45..46,65 +.X "relation, permit \*(tx add permissions to a" +\s-1PS2\s0:10\*(tx30 +.X "relation, primary" +\s-1PS2\s0:10\*(tx15,17,60 +.X "relation, print \*(tx print" +\s-1PS2\s0:10\*(tx30 +.X "relation, range \*(tx declare a variable to range over a" +\s-1PS2\s0:10\*(tx40 +.X "relation, replace \*(tx replace values of domains in a" +\s-1PS2\s0:10\*(tx41 +.X "relation, retrieve \*(tx retrieve tuples from a" +\s-1PS2\s0:10\*(tx42 +.X "relation, view \*(tx define a virtual" +\s-1PS2\s0:10\*(tx44 +.X "relational database" +join(1) +.X "relational expressions" +awk(1), \s-1USD\s0:19\*(tx3, \s-1SMM\s0:19\*(tx19 +.X "relational operators" +struct(1), \s-1USD\s0:6\*(tx5, \s-1USD\s0:19\*(tx1,3,6, \s-1USD\s0:25\*(tx10, \s-1PS1\s0:1\*(tx10, \s-1PS2\s0:6\*(tx13, \s-1PS2\s0:10\*(tx77 +.X "relations, integrity" +\s-1PS2\s0:10\*(tx62 +.X "relations, printr \*(tx print" +\s-1PS2\s0:10\*(tx3,30,58 +.X "relations, purge \*(tx destroy all expired and temporary" +\s-1PS2\s0:10\*(tx59 +.X "relative pathnames" +\s-1USD\s0:4\*(tx34,42, \s-1PS1\s0:6\*(tx27, \s-1PS1\s0:7\*(tx10, \s-1SMM\s0:14\*(tx13 +.X "relative size changes" +\s-1USD\s0:25\*(tx3 +.X "release a lock" +\s-1PS1\s0:6\*(tx12 +.X "release and configuration control" +\s-1PS1\s0:13\*(tx1 +.X "release blocked signals" +sigpause(2) +.X "release number" +\s-1PS1\s0:14\*(tx5..6,9,15 +.X "released paper format" +\s-1USD\s0:20\*(tx5 +.X "releases, Creating new" +\s-1PS1\s0:14\*(tx5 +.X "reliable datagrams" +\s-1PS1\s0:6\*(tx33 +.X "reliable delivery" +getsockopt(2) +.X "reliably\*(txdelivered message" +\s-1PS1\s0:6\*(tx33 +.X "relocation information" +ld(1), strip(1), a.out(5), \s-1PS1\s0:5\*(tx8 +.X "remap" +\s-1USD\s0:16\*(tx17 +.X "remote \*(tx remote host description file" +remote(5) +.X "remote command" +rexec(3) +.X "remote diagnosis" +cons(4) +.X "REMOTE environment variable" +tip(1c) +.X "remote execution" +rexecd(8c), rshd(8c) +.X "remote file copy" +rcp(1c) +.X "remote file distribution" +rdist(1)\*(tx1 +.X "remote host phone number" +phones(5) +.X "remote login" +rlogind(8c) +.X "remote login client code" +\s-1PS1\s0:8\*(tx16 +.X "remote login protocol" +\s-1PS1\s0:8\*(tx19..20 +.X "remote login to IBM VM/CM, tn3270 \*(tx full\*(txscreen" +tn3270(1) +.X "remote machine" +finger(1), ftp(1c)\*(tx2 +.X "remote magtape protocol" +rmt(8c) +.X "Remote Master Site Message" +\s-1SMM\s0:22\*(tx9 +.X "remote printers" +\s-1SMM\s0:6\*(tx4 +.X "remote tar commands" +tar(1) +.X "remote user information" +fingerd(8c) +.X "removable file systems" +mount(2), mount(8) +.X "removable volume" +\s-1PS2\s0:1\*(tx4 +.X "removal, File, device, and portal" +\s-1PS1\s0:6\*(tx29 +.X "remove aliases" +\s-1USD\s0:4\*(tx24 +.X "remove directory entry" +unlink(2) +.X "remove environment variables" +\s-1USD\s0:4\*(tx24 +.X "remove eqn commands" +deroff(1) +.X "remove files" +\s-1SMM\s0:6\*(tx3 +.X "remove jobs" +atrm(1), lprm(1), \s-1SMM\s0:6\*(tx2 +.X "remove messages" +mh(1)\*(tx1, \s-1USD\s0:8\*(tx61 +.X "remove nroff and troff commands" +deroff(1) +.X "remove register" +\s-1USD\s0:24\*(tx18 +.X "remove request, macro, or string" +\s-1USD\s0:24\*(tx16 +.X "remove tbl commands" +deroff(1) +.X "removing a directory" +rm(1) +.X "removing a file" +rm(1), \s-1USD\s0:13\*(tx12 +.X "removing a subtree" +rm(1) +.X "removing columns" +colrm(1) +.X "removing old files" +find(1) +.X "removing users" +find(1) +.X "remque" +insque(3) +.X "rename" +ftp(1c)\*(tx5, stat(2)\*(tx2, \s-1SMM\s0:11\*(tx9, \s-1SMM\s0:12\*(tx13 +.X "rename \*(tx change the name of a file" +intro(2)\*(tx5, rename(2), rename(3f), \s-1SMM\s0:14\*(tx13 +.X "rename request, macro, or string" +\s-1USD\s0:24\*(tx17 +.X "rename\*(txbuffer" +\s-1USD\s0:17\*(tx43 +.X "rename(oldname, newname)" +\s-1PS1\s0:6\*(tx30 +.X "renaming directories" +\s-1SMM\s0:14\*(tx13 +.X "renaming files and directories" +mv(1), \s-1PS1\s0:6\*(tx30 +.X "renaming, Links and" +\s-1PS1\s0:6\*(tx30 +.X "renice \*(tx alter priority of running processes" +renice(8) +.X "repair corrupted file systems" +\s-1SMM\s0:5\*(tx2 +.X "repeat counts" +adb(1)\*(tx3, \s-1USD\s0:17\*(tx12 +.X "repeat forms" +\s-1PS2\s0:9\*(tx53..54 +.X "repeat shell command" +csh(1)\*(tx14, \s-1USD\s0:4\*(tx23,43, \s-1USD\s0:15\*(tx24..27 +.X "repeat statement" +\s-1PS2\s0:6\*(tx19 +.X "Repeat\*(txBy" +bugfiler(8), \s-1SMM\s0:12\*(tx11 +.X "repeated lines" +uniq(1) +.X "repeated searches" +\s-1USD\s0:13\*(tx8 +.X "repeating commands" +csh(1)\*(tx3 +.X "repetition character" +\s-1USD\s0:12\*(tx9 +.X "repetition counts" +\s-1USD\s0:15\*(tx18, \s-1USD\s0:17\*(tx5 +.X "repl \*(tx reply to a message" +\s-1USD\s0:8\*(tx57,62,102,104 +.X "replace \*(tx replace values of domains in a relation" +\s-1PS2\s0:10\*(tx41 +.X "replace\*(txin\*(txregion" +\s-1USD\s0:17\*(tx43 +.X "replacement commands" +\s-1USD\s0:17\*(tx10 +.X "replacement patterns" +\s-1USD\s0:14\*(tx19, \s-1USD\s0:16\*(tx13..16 +.X "replacement sectors" +bad144(8), \s-1SMM\s0:12\*(tx19 +.X "replacement text" +m4(1), \s-1USD\s0:12\*(tx10, \s-1USD\s0:13\*(tx6, \s-1PS1\s0:17\*(tx3, \s-1PS2\s0:10\*(tx19,21 +.X "replace\*(txstring (ESC R)" +\s-1USD\s0:17\*(tx43 +.X "replacing your kernel" +\s-1SMM\s0:1\*(tx18 +.X "replcomps" +\s-1USD\s0:8\*(tx57 +.X "Replied:" +\s-1USD\s0:8\*(tx84 +.X "Reply" +mail(1)\*(tx2, \s-1USD\s0:7\*(tx3..4, \s-1SMM\s0:12\*(tx9 +.X "reply template" +\s-1USD\s0:8\*(tx57..59 +.X "Replyall" +mail(1)\*(tx6, \s-1SMM\s0:12\*(tx9 +.X "replying to mail" +mail(1)\*(tx1, \s-1USD\s0:7\*(tx3..4,11,13, \s-1USD\s0:9\*(tx3 +.X "Reply\*(txTo" +\s-1USD\s0:8\*(tx36,57,83,97, bugfiler(8), \s-1SMM\s0:10\*(tx4 +.X "report" +\s-1USD\s0:16\*(tx17 +.X "report generation" +\s-1USD\s0:19\*(tx6 +.X "reports, technical" +\s-1USD\s0:31\*(tx7 +.X "repquota \*(tx summarize quotas for a file system" +repquota(8), \s-1SMM\s0:12\*(tx21 +.X "reprint line character" +stty(1)\*(tx3, tty(4)\*(tx3 +.X "REQUEST packets" +routed(8c)\*(tx1 +.X "requests, asynchronous notification of I/O" +\s-1PS1\s0:8\*(tx26 +.X "requests, stop" +\s-1PS1\s0:11\*(tx3,6 +.X "Resent:" +\s-1USD\s0:8\*(tx84 +.X "Resent\*(txBcc:" +\s-1USD\s0:8\*(tx18,83 +.X "Resent\*(txcc:" +\s-1USD\s0:8\*(tx18,83 +.X "Resent\*(txDate:" +\s-1USD\s0:8\*(tx83 +.X "Resent\*(txFcc:" +\s-1USD\s0:8\*(tx18,84 +.X "Resent\*(txFrom:" +\s-1USD\s0:8\*(tx83 +.X "Resent\*(txMessage\*(txId:" +\s-1USD\s0:8\*(tx84,96 +.X "Resent\*(txTo:" +\s-1USD\s0:8\*(tx18,83..84 +.X "reserved words" +\s-1PS1\s0:15\*(tx20 +.X "reset, UNIBUS" +hk(4), up(4)\*(tx3, \s-1SMM\s0:13\*(tx18..19,30,33, \s-1SMM\s0:15\*(tx14 +.X "resetting tty stats" +\s-1PS1\s0:18\*(tx14 +.X "resetty()" +\s-1PS1\s0:18\*(tx17 +.X "resident, information about whether pages are core" +\s-1PS1\s0:6\*(tx12 +.X "resident set size" +getrlimit(2), getrusage(2) +.X "residual count" +\s-1USD\s0:24\*(tx13 +.X "resolution, output device" +\s-1USD\s0:24\*(tx12, \s-1SMM\s0:12\*(tx10 +.X "resolution, vertical" +\s-1USD\s0:24\*(tx8,29, \s-1SMM\s0:20\*(tx2..4 +.X "resolver configuration file" +resolver(5) +.X "resolver routines" +resolver(3), resolver(5), \s-1SMM\s0:11\*(tx2,14 +.X "resource consumption, vlimit \*(tx control maximum system" +getrlimit(2), vlimit(3c) +.X "resource controls" +\s-1PS1\s0:6\*(tx13,20,42, \s-1SMM\s0:1\*(tx1,50 +.X "resource limits" +csh(1)\*(tx13,16, execve(2), getrlimit(2), \s-1PS1\s0:6\*(tx2,13,22, \s-1SMM\s0:13\*(tx8,16 +.X "resource records" +\s-1SMM\s0:11\*(tx6..9 +.X "resource utilization" +execve(2), fork(2), getrlimit(2), getrusage(2), vtimes(3c), \s-1PS1\s0:6\*(tx7,21, \s-1SMM\s0:1\*(tx50, \s-1SMM\s0:14\*(tx2 +.X "resources, UNIBUS (see UNIBUS)" +.X "respond to the current message (see also reply)" +mh(1)\*(tx1 +.X "response packets" +routed(8c)\*(tx1, XNSrouted(8c) +.X "restarting system calls" +siginterrupt(3), \s-1PS1\s0:6\*(tx14,17 +.X "restoration of complete subtrees" +restore(8)\*(tx2 +.X "restore \*(tx incremental file system restore" +restore(8)\*(tx1 +.X "restore \*(tx recover from an INGRES or UNIX crash" +\s-1PS2\s0:10\*(tx60 +.X "restore a complete dump tape" +restore(8)\*(tx1 +.X "restore an incremental dump tape" +restore(8)\*(tx1 +.X "restore spacing" +\s-1USD\s0:24\*(tx14 +.X "restoresymtab" +restore(8)\*(tx1 +.X "restoring old versions" +\s-1PS1\s0:14\*(tx6 +.X "restoring the root file system" +\s-1SMM\s0:1\*(tx13 +.X "restricted port number" +\s-1PS1\s0:8\*(tx19 +.X "retries, max" +L.sys(5)\*(tx2, \s-1SMM\s0:9\*(tx15 +.X "retrieve \*(tx retrieve tuples from a relation" +\s-1PS2\s0:10\*(tx42,50,56,77 +.X "retrieve permission" +\s-1PS2\s0:10\*(tx9,42,58 +.X "Retry" +\s-1SMM\s0:11\*(tx7,11..13 +.X "retry time" +L.sys(5)\*(tx2, \s-1SMM\s0:9\*(tx10,15 +.X "return addresses" +mailaddr(7)\*(tx2 +.X "return codes" +intro(1), \s-1USD\s0:3\*(tx1,9, \s-1USD\s0:8\*(tx38, intro(2)\*(tx1 +.X "return from signal" +sigreturn(2) +.X "Return Statements" +\s-1USD\s0:6\*(tx5,10, \s-1PS1\s0:1\*(tx23, \s-1PS1\s0:2\*(tx21, \s-1PS2\s0:6\*(tx10,23, \s-1PS2\s0:8\*(tx8, \s-1SMM\s0:19\*(tx10 +.X "Return upward only to a marked vertical place" +\s-1USD\s0:24\*(tx12 +.X "return values" +\s-1PS1\s0:1\*(tx23,30, \s-1PS1\s0:2\*(tx13..14, \s-1PS1\s0:8\*(tx26, \s-1PS1\s0:9\*(tx3..4, \s-1PS2\s0:1\*(tx5,8, \s-1PS2\s0:3\*(tx4..5,10, \s-1PS2\s0:6\*(tx24,26, \s-1PS2\s0:9\*(tx133,136 +.X "returning, Marking and" +\s-1USD\s0:15\*(tx12 +.X "Return\*(txReceipt\*(txTo:" +\s-1SMM\s0:7\*(tx12 +.X "returns, alternate" +\s-1PS1\s0:2\*(tx14,18,21 +.X "rev \*(tx reverse lines of a file" +rev(1) +.X "reverse direction" +\s-1USD\s0:12\*(tx10, \s-1USD\s0:13\*(tx8, \s-1USD\s0:14\*(tx19, \s-1USD\s0:15\*(tx25 +.X "reverse line feeds" +col(1), colcrt(1), rev(1) +.X "reverse line motions" +col(1), ms(7)\*(tx1, \s-1USD\s0:26\*(tx7 +.X "reverse order" +awk(1), last(1), nm(1), \s-1USD\s0:4\*(tx5, \s-1USD\s0:9\*(tx5, \s-1USD\s0:12\*(tx7, \s-1USD\s0:19\*(tx2 +.X "reverse Polish notation" +\s-1USD\s0:5\*(tx1 +.X "reverse the effects of the last command" +\s-1USD\s0:14\*(tx15 +.X "reverse video" +sysline(1), window(1), \s-1USD\s0:17\*(tx18,38, termcap(5)\*(tx9..10 +.X "Revised Version of \*(txms" +\s-1USD\s0:21 +.X "revision, checked\*(txin" +\s-1PS1\s0:13\*(tx5..6 +.X "revision, ci \*(tx check in RCS" +\s-1PS1\s0:13\*(tx4 +.X "revision, co \*(tx check out RCS" +\s-1PS1\s0:13\*(tx8 +.X "Revision Control System (see also RCS)" +rcsintro(1), \s-1PS1\s0:13 +.X "revision numbers" +\s-1PS1\s0:13\*(tx1..2,5..6 +.X "revisions, multiple" +\s-1PS1\s0:13\*(tx1 +.X "revisions of text files" +rcsintro(1) +.X "revisions, RCS" +\s-1PS1\s0:13\*(tx8,14,18 +.X "revisions, rcsdiff \*(tx compare RCS" +\s-1PS1\s0:13\*(tx14 +.X "revisions, rcsmerge \*(tx merge RCS" +\s-1PS1\s0:13\*(tx18 +.X "rewind" +fopen(3s), fseek(3s) +.X "rewind a tape" +mt(1), topen(3f) +.X "rewind the argument list" +\s-1USD\s0:16\*(tx10 +.X "rewinddir" +directory(3) +.X "rewrite calls" +\s-1PS1\s0:4\*(tx31,44 +.X "rewriting rules" +\s-1SMM\s0:7\*(tx17,20..21,26, \s-1SMM\s0:12\*(tx22, \s-1SMM\s0:16\*(tx8, \s-1SMM\s0:19\*(tx17..22,25 +.X "rewriting sets" +\s-1SMM\s0:7\*(tx17,22,27,36 +.X "rexec \*(tx return stream to a remote command" +rexec(3) +.X "rexecd \*(tx remote execution server" +rexecd(8c) +.X "RFC 733" +\s-1SMM\s0:16\*(tx1,7 +.X "RFC 733 header" +\s-1SMM\s0:12\*(tx9 +.X "RFC 810" +htable(8) +.X "RFC 812: Nicname/Whois" +whois(1) +.X "RFC 819" +\s-1SMM\s0:7\*(tx25 +.X "RFC 821" +sendmail(8), \s-1SMM\s0:7\*(tx32 +.X "RFC 822" +mailaddr(7)\*(tx3, \s-1USD\s0:8\*(tx19,82..84,91,94,97, bugfiler(8), sendmail(8)\*(tx4, \s-1SMM\s0:7\*(tx25, \s-1SMM\s0:10\*(tx7, \s-1SMM\s0:12\*(tx9, \s-1SMM\s0:16\*(tx1 +.X "RFC 882" +resolver(3), named(8), \s-1SMM\s0:11\*(tx2,6,16 +.X "RFC 883" +resolver(3), named(8), \s-1SMM\s0:11\*(tx2,16 +.X "RFC 919" +\s-1SMM\s0:1\*(tx40 +.X "RFC 934" +\s-1USD\s0:8\*(tx14,25 +.X "RFC 950" +\s-1SMM\s0:1\*(tx39, \s-1SMM\s0:13\*(tx22 +.X "RFC 959" +ftpd(8c), \s-1SMM\s0:12\*(tx8, \s-1SMM\s0:13\*(tx22 +.X "RFC 973" +resolver(3), named(8), \s-1SMM\s0:11\*(tx2,6,16 +.X "RFC 974" +resolver(3), named(8), \s-1SMM\s0:11\*(tx2,9,16 +.X "RFLAGS" +\s-1PS1\s0:12\*(tx6,9 +.X "RH right heading" +\s-1USD\s0:20\*(tx5 +.X "right marginal comments" +\s-1PS1\s0:4\*(tx39..40 +.X "right margin" +\s-1USD\s0:20\*(tx5 +.X "right quote" +\s-1USD\s0:23\*(tx9 +.X "right quote, left and" +\s-1USD\s0:22\*(tx18 +.X "right recursive rule" +\s-1PS1\s0:15\*(tx19 +.X "right\*(txadjusted column entry" +\s-1USD\s0:28\*(tx3 +.X "right\*(txmargin" +\s-1USD\s0:17\*(tx43 +.X "rindex \*(tx string operation" +index(3f), string(3) +.X "ring, kill" +\s-1USD\s0:17\*(tx8 +.X "ring of marks" +\s-1USD\s0:17\*(tx6 +.X "ringing or noisy terminal line" +init(8) +.X "rint \*(tx round\*(txto\*(txnearest\*(txinteger function" +floor(3m) +.X "RK06 partitions" +hk(4) +.X "RK07" +autoconf(4), dmf(4), dmz(4), hk(4), format(8v)\*(tx3, reboot(8)\*(tx2, \s-1SMM\s0:1\*(tx5,17, \s-1SMM\s0:2\*(tx16 +.X "RL02 disks" +crl(4), arff(8v) +.X "rlimit, struct" +\s-1PS1\s0:6\*(tx22 +.X "rlog \*(tx print log messages and other information about RCS files" +\s-1PS1\s0:13\*(tx20 +.X "rlogin \*(tx remote login" +rlogin(1c), pty(4), \s-1SMM\s0:12\*(tx10 +.X "rlogind \*(tx remote login server" +pty(4), rlogind(8c), \s-1SMM\s0:12\*(tx10,21 +.X "rm, rmdir \*(tx remove (unlink) files or directory" +rm(1), \s-1SMM\s0:12\*(tx11 +.X "RM03" +hp(4)\*(tx1, bad144(8), \s-1SMM\s0:1\*(tx4,28 +.X "RM03 partitions" +hp(4)\*(tx2 +.X "RM05" +hp(4)\*(tx1, bad144(8), \s-1SMM\s0:1\*(tx4,28 +.X "RM05 partitions" +hp(4)\*(tx2 +.X "RM80 partitions" +hp(4)\*(tx2 +.X "RM80s" +hp(4)\*(tx1, bad144(8), \s-1SMM\s0:1\*(tx4,32 +.X "rmail \*(tx handle remote mail received via uucp" +rmail(1) +.X "rmdir \*(tx remove a directory file" +rmdir(2), \s-1SMM\s0:12\*(tx11 +.X "rmdir(path)" +\s-1PS1\s0:6\*(tx27 +.X "rmf \*(tx remove folder" +\s-1USD\s0:8\*(tx60 +.X "rmm \*(tx remove messages" +\s-1USD\s0:8\*(tx61 +.X "rmt \*(tx remote magtape protocol module" +rmt(8c), \s-1SMM\s0:12\*(tx21 +.X "rn \*(tx new interface for reading (or ignoring) news" +\s-1SMM\s0:12\*(tx23 +.X "rnews program" +\s-1SMM\s0:10\*(tx12,19 +.X "robots \*(tx fight off villainous robots" +robots(6) +.X "roffbib \*(tx run off bibliographic database" +roffbib(1), \s-1USD\s0:29\*(tx1 +.X "rogue \*(tx Exploring The Dungeons of Doom" +rogue(6), \s-1USD\s0:33 +.X "ROGUEOPTS" +\s-1USD\s0:33\*(tx7..8 +.X "Roman font" +ms(7)\*(tx2, \s-1USD\s0:25\*(tx8, \s-1USD\s0:27\*(tx9, \s-1USD\s0:29\*(tx7 +.X "roman numeral page numbering" +\s-1USD\s0:21\*(tx2 +.X "roman numeral, .ro Set page number in" +\s-1USD\s0:23\*(tx6 +.X "Roman, Times" +\s-1USD\s0:22\*(tx16, \s-1USD\s0:24\*(tx9,20,32, \s-1USD\s0:25\*(tx3 +.X "root device" +autoconf(4), \s-1SMM\s0:1\*(tx10,12..14,64, \s-1SMM\s0:2\*(tx4,8,26 +.X "root directory" +sccs(1)\*(tx2, \s-1USD\s0:1\*(tx7, \s-1USD\s0:4\*(tx6,34,41,43, chroot(2), execve(2), intro(2)\*(tx6..7, dir(5), mkfs(8), restore(8)\*(tx1, \s-1SMM\s0:5\*(tx8 +.X "root directory context" +\s-1PS1\s0:6\*(tx27 +.X "root file system" +intro(2)\*(tx7, reboot(2), autoconf(4), hp(4)\*(tx3, uda(4)\*(tx2, up(4)\*(tx2, fstab(5), config(8), crash(8v)\*(tx1, fsck(8), icheck(8), tunefs(8), \s-1SMM\s0:1\*(tx2..4,7,10..14,20,28..32,47,55,63..64, \s-1SMM\s0:2\*(tx2..8,12,26 +.X "root inode" +fs(5)\*(tx2 +.X "root, mini" +\s-1SMM\s0:1\*(tx3,7,11..12,20,52 +.X "root name" +\s-1USD\s0:4\*(tx37..38 +.X "root password" +su(1), \s-1SMM\s0:1\*(tx21 +.X "root, primary" +\s-1SMM\s0:1\*(tx24..25 +.X "root, square" +dc(1), eqn(1), \s-1USD\s0:5\*(tx2,5,7, \s-1USD\s0:6\*(tx3,10, \s-1USD\s0:19\*(tx4, \s-1USD\s0:26\*(tx3, \s-1USD\s0:27\*(tx4, intro(3f)\*(tx1, sqrt(3m), \s-1PS1\s0:2\*(tx6, \s-1PS2\s0:9\*(tx46, \s-1PS2\s0:10\*(tx36 +.X "root, user" +\s-1SMM\s0:6\*(tx3, \s-1SMM\s0:10\*(tx4 +.X "ROOTID" +\s-1SMM\s0:10\*(tx2,7,19 +.X "rotational layout tables" +fs(5)\*(tx3, \s-1SMM\s0:14\*(tx7,9 +.X "rotational position" +fs(5)\*(tx3, \s-1SMM\s0:14\*(tx7 +.X "rotationally optimal blocks" +\s-1SMM\s0:14\*(tx7 +.X "rounding modes" +floor(3m), sqrt(3m) +.X "roundoff" +asinh(3m), exp(3m), hypot(3m), sinh(3m), sqrt(3m) +.X "ROUTE" +\s-1SMM\s0:12\*(tx21 +.X "route \*(tx manually manipulate the routing tables" +route(8c) +.X "route, add a" +route(8c) +.X "route, default" +\s-1SMM\s0:12\*(tx21 +.X "route, delete a" +route(8c) +.X "routed \*(tx network routing daemon" +route(8c), routed(8c), \s-1SMM\s0:12\*(tx21 +.X "Router, Internetwork Mail" +sendmail(8)\*(tx4, \s-1SMM\s0:16\*(tx1..10 +.X "router, internetwork" +spp(4p), routed(8c), XNSrouted(8c) +.X "routes, multiple" +intro(4n)\*(tx2, \s-1SMM\s0:15\*(tx21 +.X "routes, wildcard" +intro(4n), \s-1SMM\s0:1\*(tx40 +.X "routines, I/O" +stdio(3s), \s-1PS1\s0:18\*(tx4 +.X "routines, library" +index(3f), \s-1SMM\s0:12\*(tx7 +.X "routing" +\s-1SMM\s0:1\*(tx40, \s-1SMM\s0:13\*(tx21 +.X "routing a message manually" +mailaddr(7)\*(tx2 +.X "routing changes" +\s-1SMM\s0:13\*(tx23..24,29 +.X "routing daemon" +intro(4n)\*(tx2, htable(8), \s-1SMM\s0:1\*(tx40, \s-1SMM\s0:15\*(tx22 +.X "routing decisions" +\s-1SMM\s0:15\*(tx10,18..19 +.X "routing entries" +inet(4f), intro(4n)\*(tx2, \s-1SMM\s0:13\*(tx21, \s-1SMM\s0:15\*(tx22 +.X "Routing Information Protocol" +XNSrouted(8c) +.X "routing issues, Gateways and" +\s-1SMM\s0:15\*(tx20 +.X "routing metric" +intro(4n)\*(tx3, ifconfig(8c), \s-1SMM\s0:13\*(tx21 +.X "routing oriented statistics" +\s-1SMM\s0:1\*(tx40 +.X "routing packet, send data without" +\s-1PS1\s0:8\*(tx8 +.X "routing packets" +intro(4n)\*(tx3, \s-1SMM\s0:1\*(tx40 +.X "routing policy, User level" +\s-1SMM\s0:15\*(tx22 +.X "routing process" +routed(8c), \s-1SMM\s0:15\*(tx22 +.X "routing protocols" +ifconfig(8c), routed(8c), \s-1SMM\s0:1\*(tx41, \s-1SMM\s0:13\*(tx27 +.X "routing redirect control messages" +\s-1SMM\s0:1\*(tx40, \s-1SMM\s0:15\*(tx21 +.X "routing statistics" +netstat(1) +.X "routing table entries" +intro(4n)\*(tx2, route(8c), routed(8c), XNSrouted(8c), \s-1SMM\s0:1\*(tx40, \s-1SMM\s0:15\*(tx21..22 +.X "routing table management daemon" +route(8c), \s-1SMM\s0:1\*(tx40 +.X "routing tables" +netstat(1), intro(4n)\*(tx2, ping(8), route(8c), routed(8c), XNSrouted(8c), \s-1SMM\s0:1\*(tx40, \s-1SMM\s0:15\*(tx21..22 +.X "routing, uucp path" +\s-1SMM\s0:12\*(tx23 +.X "RP05 partitions" +hp(4)\*(tx2 +.X "RP06" +hp(4)\*(tx1, bad144(8), diskpart(8), format(8v)\*(tx3, \s-1SMM\s0:1\*(tx28 +.X "RP06 partitions" +hp(4)\*(tx2 +.X "RP07 partitions" +hp(4)\*(tx2 +.X "RP0X" +format(8v)\*(tx3 +.X "rpile \*(tx right\*(txjustified pile" +\s-1USD\s0:27\*(tx7 +.X "rpow \*(tx multiple precision integer arithmetic" +mp(3x) +.X "rrestore \*(tx restore a file system dump across the network" +rrestore(8c) +.X "rresvport" +rcmd(3), \s-1PS1\s0:8\*(tx31 +.X "RS awk variable (input record separator)" +\s-1USD\s0:19\*(tx2 +.X "rsh \*(tx remote shell" +rsh(1c), \s-1SMM\s0:12\*(tx11 +.X "rshd" +rcmd(3) +.X "rshd \*(tx remote shell server" +rshd(8c) +.X "rubout" +doctor(6), \s-1USD\s0:4\*(tx39,43, \s-1USD\s0:11\*(tx9, \s-1USD\s0:17\*(tx2,4 +.X "rule, default" +\s-1PS1\s0:13\*(tx4, \s-1PS1\s0:14\*(tx11 +.X "rules, built\*(txin" +\s-1PS1\s0:12\*(tx2..5 +.X "rules, disambiguating" +\s-1USD\s0:26\*(tx6, \s-1PS1\s0:15\*(tx1,12..16 +.X "rules, error" +\s-1PS1\s0:15\*(tx16..17 +.X "rules, grammar" +\s-1PS1\s0:15\*(tx1..8,11..16,19,24 +.X "rules, Lex" +\s-1PS1\s0:16\*(tx3,7..9 +.X "rules, make default" +\s-1PS1\s0:12\*(tx9 +.X "rules, rewriting" +\s-1SMM\s0:7\*(tx17,20..21,26, \s-1SMM\s0:12\*(tx22, \s-1SMM\s0:16\*(tx8, \s-1SMM\s0:19\*(tx17..22,25 +.X "rules, right recursive" +\s-1PS1\s0:15\*(tx19 +.X "rules, scope" +\s-1PS1\s0:1\*(tx24..25 +.X "rules section" +\s-1PS1\s0:15\*(tx3..4,24,27,33, \s-1PS1\s0:16\*(tx8 +.X "run queues" +uptime(1), vmstat(1), w(1), \s-1SMM\s0:13\*(tx8 +.X "run time" +ioinit(3f), \s-1PS1\s0:2\*(tx18, \s-1PS1\s0:3\*(tx7..8, \s-1PS1\s0:4\*(tx31,36, \s-1PS1\s0:10\*(tx7, \s-1PS2\s0:9\*(tx120, \s-1PS2\s0:10\*(tx51..52,82 +.X "runnable processes" +sysline(1), pstat(8)\*(tx3 +.X "running processes" +gcore(1), renice(8) +.X "Running Processes in JOVE Windows" +\s-1USD\s0:17\*(tx20 +.X "running text" +\s-1USD\s0:24\*(tx28, \s-1USD\s0:26\*(tx2, \s-1SMM\s0:13\*(tx16 +.X "running time" +\s-1SMM\s0:14\*(tx9 +.X "runtime checks" +pc(1), pi(1) +.X "runtime errors" +\s-1PS1\s0:4\*(tx15,26,43..44, \s-1PS2\s0:10\*(tx50..51 +.X "run\*(txtime recording mechanism" +cc(1)\*(tx1, f77(1)\*(tx1 +.X "ruptime \*(tx show host status of local machines" +ruptime(1c), \s-1PS1\s0:8\*(tx21, \s-1SMM\s0:12\*(tx11 +.X "rusage, struct" +\s-1PS1\s0:6\*(tx8,21 +.X "ruserok" +rcmd(3), \s-1SMM\s0:12\*(tx16 +.X "rval field" +\s-1SMM\s0:19\*(tx7..8,11 +.X "rwho \*(tx who's logged in on local machines" +rwho(1c), \s-1SMM\s0:12\*(tx11 +.X "rwhod \*(tx system status server" +\s-1PS1\s0:8\*(tx20..22, rwhod(8c), \s-1SMM\s0:12\*(tx22 +.X "rx \*(tx DEC RX02 floppy disk interface" +rx(4) +.X "RX01, DEC" +fl(4) +.X "rxformat \*(tx format floppy disks" +rxformat(8v), \s-1SMM\s0:12\*(tx22 +.L S +.X "sa, accton \*(tx system accounting" +sa(8), \s-1SMM\s0:12\*(tx22 +.X "sail \*(tx multi\*(txuser wooden ships and iron men" +sail(6)\*(tx1 +.X "salted passwords" +\s-1SMM\s0:18\*(tx5 +.X "sample configuration files" +\s-1SMM\s0:2\*(tx28 +.X "sample paper, outline of a" +\s-1USD\s0:22\*(tx14 +.X "sample sendmail configuration files" +\s-1SMM\s0:1\*(tx22 +.X "sample shell script" +\s-1USD\s0:4\*(tx27..28 +.X "save \*(tx save a relation until a date" +\s-1PS2\s0:10\*(tx43 +.X "save a contiguous vertical block" +\s-1USD\s0:24\*(tx14 +.X "save command" +\s-1USD\s0:7\*(tx6,16..17 +.X "save text for later printing" +\s-1USD\s0:22\*(tx7 +.X "savecore \*(tx save a core dump of the operating system" +crash(8v)\*(tx3, savecore(8), \s-1SMM\s0:12\*(tx22 +.X "save\*(txfile (C\*(txX C\*(txS)" +\s-1USD\s0:17\*(tx5,43 +.X "savehist shell variable" +csh(1)\*(tx18 +.X "savetty()" +\s-1PS1\s0:18\*(tx17 +.X "saving notes in files" +\s-1USD\s0:11\*(tx8 +.X "saving the modified text" +\s-1USD\s0:14\*(tx12 +.X "SBI faults" +crash(8v)\*(tx2 +.X "sbrk \*(tx change data segment size" +brk(2), end(3), malloc(3) +.X "sbrk(incr)" +\s-1PS1\s0:6\*(tx10 +.X "SC\*(tx21V, Emulex" +up(4)\*(tx1, \s-1SMM\s0:2\*(tx13,17,20,22,29 +.X "SC750, Emulex" +hp(4)\*(tx1 +.X "scalar" +\s-1PS1\s0:1\*(tx18 +.X "scalar values" +\s-1PS2\s0:10\*(tx36,51 +.X "scale factor" +\s-1USD\s0:5, \s-1USD\s0:22\*(tx12, \s-1USD\s0:23\*(tx1, \s-1USD\s0:25\*(tx3,5, \s-1PS1\s0:2\*(tx23, \s-1PS1\s0:3\*(tx6 +.X "scale indicators" +\s-1USD\s0:24\*(tx5,8, \s-1USD\s0:25\*(tx10 +.X "scale specifier" +\s-1USD\s0:25\*(tx6 +.X "scaling" +\s-1USD\s0:6\*(tx3 +.X "scan \*(tx produce a one line per message scan listing" +\s-1USD\s0:3\*(tx20, \s-1USD\s0:8\*(tx2,4,26,62,98 +.X "scandir, alphasort \*(tx scan a directory" +scandir(3), \s-1SMM\s0:12\*(tx16 +.X "scanf, fscanf, sscanf \*(tx formatted input conversion" +scanf(3s) +.X "Scanning and Processing Language, Awk \*(tx A Pattern" +\s-1USD\s0:19\*(tx1 +.X "scanning, backward" +\s-1SMM\s0:12\*(tx9 +.X "scan" +\s-1USD\s0:15\*(tx25 +.X "scanw(fmt, arg1, arg2, ...)" +\s-1PS1\s0:18\*(tx13 +.X "scatter reading" +read(2) +.X "scatter/gather" +\s-1PS1\s0:6\*(tx35 +.X "scattering of data on input" +\s-1PS1\s0:6\*(tx25 +.X "SCCS" +sccs(1), what(1), \s-1PS1\s0:14\*(tx1..10 +.X "sccs \*(tx front end for the SCCS subsystem" +sccs(1)\*(tx1 +.X "sccs admin" +\s-1PS1\s0:14\*(tx2,9 +.X "sccs check" +\s-1PS1\s0:14\*(tx4,13 +.X "sccs commands and option, summary of" +\s-1PS1\s0:14\*(tx14 +.X "sccs delget" +\s-1PS1\s0:14\*(tx8 +.X "sccs delta" +\s-1PS1\s0:14\*(tx3..4 +.X "sccs edit" +\s-1PS1\s0:14\*(tx3 +.X "SCCS File, Creating" +\s-1PS1\s0:14\*(tx1 +.X "SCCS files" +sccs(1), \s-1PS1\s0:13\*(tx22, \s-1PS1\s0:14\*(tx3,5,8..11 +.X "sccs fix" +\s-1PS1\s0:14\*(tx8 +.X "SCCS Id" +intro(3f)\*(tx1, \s-1PS1\s0:14\*(tx2, \s-1SMM\s0:10\*(tx8 +.X "sccs info" +\s-1PS1\s0:14\*(tx4,8 +.X "sccs prt" +\s-1PS1\s0:14\*(tx7 +.X "sccs what" +\s-1PS1\s0:14\*(tx5 +.X "sccstorcs \*(tx build RCS file from SCCS file" +\s-1PS1\s0:13\*(tx22 +.X "schedule signal after specified time" +ualarm(3) +.X "scheduler" +intro(2)\*(tx6 +.X "scheduling priorities" +csh(1)\*(tx13, nice(1), getpriority(2), nice(3c), renice(8) +.X "scope, lexical" +\s-1PS1\s0:1\*(tx25 +.X "scope of externals" +\s-1PS1\s0:1\*(tx25 +.X "scope rules" +\s-1PS1\s0:1\*(tx24..25 +.X "scratch files" +\s-1USD\s0:4\*(tx43 +.X "scratch registers" +\s-1SMM\s0:19\*(tx15..19,22..25 +.X "screen" +\s-1USD\s0:7\*(tx19 +.X "screen clear" +\s-1USD\s0:8\*(tx30, gettytab(5)\*(tx1 +.X "screen editor (see also display editor)" +error(1)\*(tx1, mail(1)\*(tx5, vi(1), \s-1USD\s0:7\*(tx8,17 +.X "screen, graphics" +lib2648(3x)\*(tx1..2 +.X "screen, Moving around on the" +\s-1USD\s0:15\*(tx5 +.X "screen package" +\s-1PS1\s0:18 +.X "screen routines" +\s-1PS1\s0:18\*(tx14,17 +.X "screen size" +systat(1)\*(tx3, \s-1USD\s0:8\*(tx30..31, \s-1USD\s0:15\*(tx18,28, \s-1USD\s0:16\*(tx12 +.X "screen, split the" +\s-1USD\s0:17\*(tx18 +.X "screen, terminal" +tn3270(1), window(1)\*(tx1..2, \s-1USD\s0:8\*(tx88, \s-1USD\s0:15\*(tx17, termcap(5)\*(tx13, \s-1PS1\s0:18\*(tx3..5,11,15 +.X "screen updating" +\s-1PS1\s0:18\*(tx3,22 +.X "Screen Updating and Cursor Movement Optimization: A Library Package" +\s-1PS1\s0:18 +.X "screen updating functions" +\s-1PS1\s0:18\*(tx6,22 +.X "script \*(tx make typescript of terminal session" +script(1), \s-1SMM\s0:12\*(tx11 +.X "script, advanced file handling" +\s-1USD\s0:2\*(tx5 +.X "script, basic file handling" +\s-1USD\s0:2\*(tx5 +.X "script, Bourne shell" +false(1), true(1), \s-1SMM\s0:12\*(tx8 +.X "script, command" +csh(1)\*(tx1, \s-1USD\s0:4\*(tx25,39,41,43..44 rc(8), \s-1SMM\s0:1\*(tx41 +.X "script, ed" +patch(1) +.X "script, editing" +diff(1), ed(1)\*(tx1, \s-1USD\s0:1\*(tx10, \s-1USD\s0:4\*(tx31, \s-1USD\s0:13\*(tx2,16, \s-1USD\s0:16\*(tx1, \s-1USD\s0:18\*(tx1 +.X "script, expect/send" +L\*(txdevices(5), L.sys(5), \s-1SMM\s0:9\*(tx13,16 +.X "script files" +tip(1c)\*(tx3, \s-1PS2\s0:7\*(tx17 +.X "script, lesson" +learn(1), \s-1USD\s0:2\*(tx1 +.X "scroll" +\s-1USD\s0:16\*(tx17 +.X "scroll commands" +\s-1USD\s0:15\*(tx18, \s-1USD\s0:17\*(tx17 +.X "scroll the current window" +window(1)\*(tx3 +.X "scroll\*(txdown (ESC Z)" +\s-1USD\s0:17\*(tx43 +.X "scrolling and paging" +\s-1USD\s0:15\*(tx4 +.X "scrolling through text" +ed(1)\*(tx5 +.X "scrollok(win, boolf)" +\s-1PS1\s0:18\*(tx5,16 +.X "scroll\*(txstep (variable)" +\s-1USD\s0:17\*(tx43 +.X "scroll\*(txup (C\*(txZ)" +\s-1USD\s0:17\*(tx43 +.X "scroll(win)" +\s-1PS1\s0:18\*(tx17 +.X "sdb, debugger" +cc(1)\*(tx1, stab(5) +.X "sdiv \*(tx multiple precision integer arithmetic" +mp(3x) +.X "search commands" +more(1)\*(tx2, \s-1USD\s0:13\*(tx8, \s-1USD\s0:14\*(tx15,19, \s-1USD\s0:15\*(tx12, \s-1USD\s0:17\*(tx9 +.X "search, incremental" +\s-1USD\s0:17\*(tx9,35,44 +.X "search, key" +crypt(3), \s-1SMM\s0:18\*(tx3..4 +.X "search key" +\s-1USD\s0:30\*(tx9..10 +.X "search path" +csh(1)\*(tx18, man(1), rsh(1c), sh(1)\*(tx2,4, \s-1USD\s0:3\*(tx9, \s-1USD\s0:4\*(tx12,23,34, \s-1USD\s0:8\*(tx8, \s-1PS2\s0:9\*(tx67..68, \s-1SMM\s0:9\*(tx14 +.X "search patterns" +\s-1USD\s0:8\*(tx47, \s-1USD\s0:13\*(tx15, \s-1USD\s0:15\*(tx24, \s-1USD\s0:17\*(tx10,38 +.X "search permission" +access(2), chdir(2), chmod(2), unlink(2) +.X "searches, context" +\s-1USD\s0:1\*(tx11, \s-1USD\s0:12\*(tx6..9, \s-1USD\s0:13\*(tx8..9, \s-1USD\s0:14\*(tx16,19, \s-1USD\s0:18\*(tx6 +.X "searches, repeated" +\s-1USD\s0:13\*(tx8, \s-1USD\s0:17\*(tx10 +.X "search\*(txexit\*(txchar (variable)" +\s-1USD\s0:17\*(tx44 +.X "search\*(txforward (C\*(txS)" +\s-1USD\s0:17\*(tx44 +.X "searching" +ed(1)\*(tx2, \s-1USD\s0:14\*(tx19, \s-1USD\s0:15\*(tx4, \s-1USD\s0:17\*(tx9..10,38, \s-1USD\s0:30\*(tx1 +.X "searching, context" +\s-1USD\s0:12\*(tx1 +.X "searching for authors" +\s-1USD\s0:11\*(tx9 +.X "searching for lines which match any of a set of patterns" +\s-1USD\s0:19\*(tx1 +.X "searching for strings" +grep(1), more(1), od(1), \s-1USD\s0:15\*(tx19 +.X "searching, ignore case in" +grep(1) +.X "searching notes for keywords" +\s-1USD\s0:11\*(tx9 +.X "searching, word" +grep(1) +.X "search\*(txreverse (C\*(txR)" +\s-1USD\s0:17\*(tx44 +.X "secondary control connection" +ftp(1c)\*(tx4 +.X "secondary index" +\s-1PS2\s0:10\*(tx3,8,15..17,23,56,60..62,76,82 +.X "Secondary Master Server" +\s-1SMM\s0:11\*(tx3..4,10 +.X "secondary memory" +\s-1PS2\s0:4\*(tx1..3 +.X "secondary prompt string" +sh(1)\*(tx2 +.X "secondary server" +\s-1SMM\s0:11\*(tx4,7 +.X "secret mail" +xsend(1) +.X "section boundary" +\s-1USD\s0:15\*(tx10,24,26..28 +.X "section commands" +\s-1USD\s0:15\*(tx10 +.X "section depth" +\s-1USD\s0:22\*(tx12, \s-1USD\s0:23\*(tx3 +.X "section, format" +\s-1USD\s0:28\*(tx3..5 +.X "section headers" +ms(7)\*(tx2, \s-1USD\s0:13\*(tx11, \s-1USD\s0:20\*(tx2, \s-1USD\s0:22\*(tx12..13, \s-1USD\s0:23\*(tx2 +.X "section lists" +\s-1SMM\s0:10\*(tx8 +.X "section macros" +\s-1USD\s0:16\*(tx17 +.X "section numbers" +\s-1USD\s0:22\*(tx12, \s-1USD\s0:23\*(tx2..3, \s-1USD\s0:24\*(tx29, \s-1USD\s0:25\*(tx11 +.X "section title" +\s-1USD\s0:22\*(tx12, \s-1USD\s0:23\*(tx2..3, \s-1USD\s0:25\*(tx11 +.X "sections" +\s-1USD\s0:15\*(tx10, \s-1USD\s0:24\*(tx2 +.X "sector information" +bad144(8) +.X "sector offsets" +\s-1SMM\s0:12\*(tx20 +.X "sector size" +crl(4), fs(5)\*(tx3, \s-1SMM\s0:1\*(tx29 +.X "sectors, disk" +hk(4), hp(4)\*(tx1, uda(4)\*(tx1, up(4)\*(tx1, \s-1SMM\s0:1\*(tx5,8,29 +.X "sectors, Replacement" +bad144(8), \s-1SMM\s0:12\*(tx19 +.X "secure communication" +xsend(1) +.X "security holes" +rlogin(1c), xsend(1), USERFILE(5), ftpd(8c), uucico(8c), \s-1SMM\s0:1\*(tx43, \s-1SMM\s0:12\*(tx21..22, \s-1SMM\s0:17\*(tx3 +.X "security options" +\s-1SMM\s0:1\*(tx22 +.X "security, password" +\s-1SMM\s0:17\*(tx3 +.X "security, system" +write(2), ftpd(8c), ncheck(8), tftpd(8c), \s-1SMM\s0:1\*(tx21, \s-1SMM\s0:10\*(tx2, \s-1SMM\s0:17\*(tx1..2, \s-1SMM\s0:18\*(tx1..2 +.X "security, uucp" +\s-1SMM\s0:9\*(tx19 +.X "SED \*(tx A Non\*(txinteractive Text Editor" +\s-1USD\s0:13\*(tx16, \s-1USD\s0:18, \s-1SMM\s0:12\*(tx11 +.X "sed \*(tx stream editor" +sed(1)\*(tx1 +.X "sed commands, order of application of" +\s-1USD\s0:18\*(tx2 +.X "sed example" +\s-1USD\s0:18\*(tx5 +.X "sed input/output functions" +\s-1USD\s0:18\*(tx7 +.X "sed, lex, awk performance comparison, wc, grep, egrep, fgrep," +\s-1USD\s0:19\*(tx6 +.X "``see'' reference" +\s-1USD\s0:29\*(tx8, \s-1USD\s0:30\*(tx11 +.X "seek" +lseek(2), fseek(3s) +.X "seek pointer" +lseek(2) +.X "seekdir" +directory(3) +.X "segment size" +\s-1SMM\s0:13\*(tx8,26 +.X "segmentation violation" +signal(3c) +.X "segment, bss" +ld(1), size(1), \s-1PS1\s0:5\*(tx2,4..6,10..11 +.X "segment, code (see segment, text)" +.X "segment, data" +adb(1)\*(tx5, as(1), ld(1), size(1), systat(1)\*(tx2, brk(2), getrlimit(2), getrusage(2), a.out(5), dbx(5)\*(tx1, \s-1PS1\s0:5\*(tx2,4..6,13, \s-1PS1\s0:10\*(tx9..11, \s-1PS2\s0:4\*(tx2..3, \s-1SMM\s0:2\*(tx31..32, \s-1SMM\s0:13\*(tx16,26 +.X "segment, stack" +getrlimit(2), getrusage(2), intro(2)\*(tx2 +.X "segment, text" +as(1), size(1), systat(1)\*(tx2, getrusage(2), a.out(5), dbx(5)\*(tx1, \s-1PS1\s0:5\*(tx4..6,13, \s-1PS2\s0:4\*(tx2..3, \s-1SMM\s0:2\*(tx22,30,32 +.X "select \*(tx synchronous I/O multiplexing" +connect(2), select(2), usleep(3), \s-1PS1\s0:6\*(tx18..19,26, \s-1PS1\s0:8\*(tx9,24, \s-1SMM\s0:1\*(tx23, \s-1SMM\s0:12\*(tx14, \s-1SMM\s0:13\*(tx9 +.X "select for exceptional conditions on sockets" +\s-1SMM\s0:13\*(tx14 +.X "select messages" +\s-1USD\s0:8\*(tx47..48,98 +.X "select statement" +\s-1PS2\s0:6\*(tx17,20..21 +.X "select window" +window(1)\*(tx2 +.X "select\*(txbuffer (C\*(txX B)" +\s-1USD\s0:17\*(tx44 +.X "selecting a fragment size" +\s-1SMM\s0:1\*(tx31 +.X "selecting buffers, creating and" +\s-1USD\s0:17\*(tx16 +.X "selecting lines for editing" +\s-1USD\s0:18\*(tx2 +.X "semantics of communication" +\s-1PS1\s0:6\*(tx33 +.X "semantics of rewriting rule sets" +\s-1SMM\s0:7\*(tx22 +.X "semaphore file" +\s-1PS1\s0:13\*(tx7,10,14 +.X "semaphores" +\s-1PS1\s0:6\*(tx12 +.X "semicolon" +\s-1USD\s0:13\*(tx9 +.X "send \*(tx send a message" +\s-1USD\s0:8\*(tx64 +.X "send a file to a remote host" +uusend(1c) +.X "send data without routing packets" +\s-1PS1\s0:8\*(tx8 +.X "Send, Expect" +L\*(txdevices(5), L.sys(5)\*(tx1, \s-1SMM\s0:9\*(tx14 +.X "send mail directly to a program" +\s-1USD\s0:7\*(tx11 +.X "send, sendto, sendmsg \*(tx send a message from a socket" +send(2), \s-1PS1\s0:7\*(tx22 +.X "sendbug \*(tx mail a system bug report to 4bsd\*(txbugs" +sendbug(1), \s-1SMM\s0:12\*(tx11 +.X "Sender" +\s-1USD\s0:8\*(tx34,37,65,83, sendmail(8)\*(tx1 +.X "sender addresses" +\s-1SMM\s0:7\*(tx19,23 +.X "sending an internet domain datagram" +\s-1PS1\s0:7\*(tx14 +.X "sending datagrams" +socket(2), \s-1PS1\s0:7\*(tx22 +.X "sending mail" +mail(1)\*(tx1, \s-1USD\s0:1\*(tx1 +.X "sending signals" +csh(1)\*(tx12, kill(1), kill(2), killpg(2), \s-1PS1\s0:6\*(tx14 +.X "SENDMAIL \*(tx An Internetwork Mail Router" +rmail(1), \s-1USD\s0:8\*(tx35, aliases(5), \s-1SMM\s0:7, \s-1SMM\s0:12\*(tx22, \s-1SMM\s0:16 +.X "sendmail \*(tx send mail over the internet" +sendmail(8)\*(tx1 +.X "sendmail configuration" +\s-1SMM\s0:16\*(tx8 +.X "sendmail configuration file, sample" +\s-1SMM\s0:1\*(tx22 +.X "sendmail frozen configuration file" +\s-1SMM\s0:1\*(tx22 +.X "SENDMAIL Installation and Operation Guide" +\s-1SMM\s0:7 +.X "sendmsg(s, msg, flags)" +\s-1PS1\s0:6\*(tx36, \s-1PS1\s0:7\*(tx22 +.X "send(s, buf, len, flags)" +\s-1PS1\s0:6\*(tx35 +.X "sendto(s, buf, len, flags, to, tolen)" +icmp(4p), idp(4p), ip(4p), udp(4p), \s-1PS1\s0:6\*(tx35, \s-1PS1\s0:7\*(tx22, \s-1PS1\s0:8\*(tx8,24,34,38 +.X "send\*(txtypeout\*(txto\*(txbuffer (variable)" +\s-1USD\s0:17\*(tx44 +.X "sentence boundary" +\s-1USD\s0:15\*(tx10, \s-1USD\s0:32\*(tx10 +.X "sentence commands" +\s-1USD\s0:17\*(tx11 +.X "sentence, end of a" +\s-1USD\s0:24\*(tx12 +.X "sentence identification" +\s-1USD\s0:32\*(tx10 +.X "sentence length" +style(1), \s-1USD\s0:32\*(tx2,4..5 +.X "sentence openers" +style(1), \s-1USD\s0:32\*(tx1..2,6,10 +.X "sentence structure" +\s-1USD\s0:32\*(tx4..5 +.X "sentence types" +\s-1USD\s0:32\*(tx1..10 +.X "sentences" +\s-1USD\s0:15\*(tx9 +.X "sentences and paragraph, manipulating" +\s-1USD\s0:17\*(tx11 +.X "sentences, complex" +\s-1USD\s0:32\*(tx5..6,9 +.X "sentences, compound\*(txcomplex" +\s-1USD\s0:32\*(tx5..6,9 +.X "sentences, finding" +\s-1USD\s0:32\*(tx10 +.X "sentences, imperative" +\s-1USD\s0:32\*(tx3..4,9..10 +.X "sentences, wordy" +diction(1) +.X "separate compilation" +\s-1PS1\s0:4\*(tx25,41,43,50 +.X "separator property" +\s-1PS2\s0:9\*(tx85,87..89,94..95 +.X "separators, field" +awk(1), \s-1USD\s0:19\*(tx2..5 +.X "separators, record" +awk(1), \s-1USD\s0:19\*(tx2..3 +.X "sequence, calling" +\s-1PS1\s0:2\*(tx4, \s-1PS2\s0:1\*(tx5 +.X "sequence, clear\*(txscreen" +\s-1PS1\s0:18\*(tx9..10 +.X "sequence count" +\s-1SMM\s0:21\*(tx3 +.X "sequence numbers" +\s-1USD\s0:19\*(tx5, \s-1SMM\s0:9\*(tx6, \s-1SMM\s0:10\*(tx11, \s-1SMM\s0:13\*(tx26, \s-1SMM\s0:15\*(tx3, \s-1SMM\s0:21\*(tx3, \s-1SMM\s0:22\*(tx2 +.X "Sequenced Packet Protocol" +ns(4f), \s-1PS1\s0:6\*(tx33, \s-1SMM\s0:13\*(tx29 +.X "sequenced packet protocol trace" +trsp(8c) +.X "sequenced packet socket type" +listen(2), socket(2), ns(4f), spp(4p) +.X "Sequence\*(txNegation" +\s-1USD\s0:8\*(tx85,101 +.X "sequencer mode" +\s-1USD\s0:11\*(tx3,10,12 +.X "sequencer, notesfile" +\s-1USD\s0:11\*(tx10 +.X "sequences, escape" +more(1)\*(tx1, sed(1)\*(tx1, \s-1USD\s0:15\*(tx27, \s-1USD\s0:17\*(tx24, \s-1USD\s0:24\*(tx20..21, lib2648(3x)\*(tx1, tty(4)\*(tx4, termcap(5)\*(tx6,12, \s-1PS1\s0:1\*(tx2, \s-1PS2\s0:1\*(tx5, \s-1PS2\s0:10\*(tx51, \s-1SMM\s0:9\*(tx10 +.X "sequences, message" +\s-1USD\s0:8\*(tx28..29,48,98 +.X "sequences, private" +\s-1USD\s0:8\*(tx54,60,86,89,100 +.X "sequences, public" +\s-1USD\s0:8\*(tx85,100 +.X "sequences, user\*(txdefined" +\s-1USD\s0:8\*(tx98 +.X "sequential access" +\s-1PS1\s0:3\*(tx3..4,9, \s-1PS2\s0:1\*(tx13 +.X "sequential files" +\s-1PS1\s0:3\*(tx3,9 +.X "sequential I/O" +\s-1PS1\s0:2\*(tx15,24,26, \s-1PS1\s0:3\*(tx9 +.X "serial" +\s-1SMM\s0:11\*(tx7,11..13 +.X "serial lines" +dmf(4), tb(4), tu(4), slattach(8c), \s-1SMM\s0:6\*(tx3 +.X "serial lines, Printers on" +\s-1SMM\s0:6\*(tx3 +.X "servent, struct" +\s-1PS1\s0:8\*(tx14,16,18 +.X "server, FTP" +ftp(1c), ftpd(8c), \s-1SMM\s0:1\*(tx43..44, \s-1SMM\s0:12\*(tx20 +.X "server, login" +login(1), rlogind(8c) +.X "server, name" +gethostbyname(3), resolver(3), hosts(5), networks(5), protocols(5), resolver(5), named(8), \s-1SMM\s0:1\*(tx22,34,42, \s-1SMM\s0:7\*(tx4, \s-1SMM\s0:11\*(tx2..7,10,13, \s-1SMM\s0:12\*(tx2,15,22, \s-1SMM\s0:16\*(tx11 +.X "Server, Primary Master Name" +\s-1SMM\s0:11\*(tx3,7,10 +.X "server processes (see also daemons)" +netstat(1), tty(4)\*(tx1, \s-1PS1\s0:6\*(tx29, \s-1PS1\s0:8\*(tx6..7,11,17,20..21,24,27,30, comsat(8c), inetd(8), \s-1SMM\s0:1\*(tx41..43, \s-1SMM\s0:11\*(tx5,11,16 +.X "server, rexecd \*(tx remote execution" +rexecd(8c) +.X "server, rlogind \*(tx remote login" +rlogind(8c) +.X "server, rshd \*(tx remote shell" +rshd(8c) +.X "server, rwhod \*(tx system status" +\s-1PS1\s0:8\*(tx20..22, rwhod(8c) +.X "Server, Secondary Master" +\s-1SMM\s0:11\*(tx3..4,7,10 +.X "server, SMTP" +\s-1SMM\s0:7\*(tx14, \s-1SMM\s0:16\*(tx1 +.X "server, talkd \*(tx remote user communication" +talkd(8c) +.X "server, telnet" +telnet(1c)\*(tx1 +.X "server, telnetd \*(tx DARPA TELNET protocol" +telnetd(8c)\*(tx1 +.X "server, tftpd \*(tx DARPA Trivial File Transfer Protocol" +tftpd(8c) +.X "server, time" +adjtime(2), inetd(8), timed(8) +.X "service, character generator" +inetd(8) +.X "service, daytime" +inetd(8) +.X "service definition" +\s-1PS1\s0:8\*(tx17,20 +.X "service, discard" +inetd(8) +.X "service, echo" +inetd(8) +.X "service name" +services(5), \s-1PS1\s0:8\*(tx11,14, \s-1PS2\s0:9\*(tx32, inetd(8), \s-1SMM\s0:1\*(tx41 +.X "service specification" +gettable(8c), rexecd(8c), rlogind(8c), rshd(8c), rwhod(8c) +.X "services \*(tx service name data base" +services(5) +.X "services, Network" +\s-1SMM\s0:1\*(tx38, \s-1SMM\s0:11\*(tx2, \s-1SMM\s0:15\*(tx3, \s-1SMM\s0:21\*(tx6 +.X "session, editing" +\s-1USD\s0:12\*(tx3, \s-1USD\s0:14, \s-1USD\s0:15\*(tx4,18, \s-1USD\s0:16\*(tx1,6, \s-1USD\s0:17\*(tx5,24 +.X "session, FTP" +ftp(1c)\*(tx1, ftpd(8c) +.X "session, hard\*(txcopy record of terminal" +script(1), tip(1c)\*(tx3 +.X "session, history of your" +\s-1USD\s0:17\*(tx20 +.X "session layer" +\s-1SMM\s0:15\*(tx3 +.X "session, terminal" +script(1), \s-1USD\s0:4\*(tx11 +.X "set (see also setting)" +.X "set \*(tx Bourne shell command" +sh(1)\*(tx1 +.X "set breakpoints" +adb(1)\*(tx5, \s-1PS1\s0:10\*(tx27 +.X "set command" +csh(1)\*(tx6,14, jove(1)\*(tx2, sh(1)\*(tx6, \s-1USD\s0:3\*(tx14, \s-1USD\s0:4\*(tx11..12,32,39,43, \s-1USD\s0:7\*(tx4..5,16,22, \s-1USD\s0:15\*(tx13..14, \s-1USD\s0:17\*(tx23,26,44 +.X "Set Date Acknowledgment Message" +\s-1SMM\s0:22\*(tx8 +.X "Set Date Request Message" +\s-1SMM\s0:22\*(tx7..8 +.X "set dot" +\s-1USD\s0:13\*(tx10..11 +.X "set mask" +\s-1PS1\s0:8\*(tx9..10 +.X "Set Network Time Message" +\s-1SMM\s0:22\*(tx4 +.X "set of patterns, searching for lines which match any of a" +\s-1USD\s0:19\*(tx1 +.X "set parameters" +\s-1USD\s0:16\*(tx10 +.X "set prevailing indent" +man(7) +.X "set the mark" +\s-1USD\s0:17\*(tx6 +.X "set vertical base\*(txline spacing" +\s-1USD\s0:24\*(tx13 +.X "setbuf, setbuffer, setlinebuf \*(tx assign buffering to a stream" +setbuf(3s) +.X "setenv command" +csh(1)\*(tx14,16, environ(7), \s-1USD\s0:4\*(tx23 +.X "setenv TERM" +tset(1)\*(tx2, \s-1USD\s0:15\*(tx2 +.X "setfsent" +getfsent(3) +.X "setgrent" +getgrent(3) +.X "set\*(txgroup\*(txID" +chmod(1), ls(1), chmod(2), getgid(2), intro(2)\*(tx6, ptrace(2), stat(2)\*(tx2, \s-1SMM\s0:1\*(tx21, \s-1SMM\s0:12\*(tx9, \s-1SMM\s0:17\*(tx2 +.X "set\*(txgroup\*(txid programs" +chown(2), \s-1SMM\s0:12\*(tx11,13 +.X "setgroups \*(tx set group access list" +setgroups(2) +.X "setgroups(gidsetsize, gidset)" +\s-1PS1\s0:6\*(tx9 +.X "Sethi\*(txUllman numbers" +\s-1SMM\s0:19\*(tx15,22..25 +.X "sethostent" +gethostbyname(3) +.X "sethostid \*(tx set unique identifier of current host" +gethostid(2) +.X "sethostid(hostid)" +\s-1PS1\s0:6\*(tx7 +.X "sethostname \*(tx set name of current host" +gethostname(2) +.X "sethostname(name, len)" +\s-1PS1\s0:6\*(tx7 +.X "setitimer \*(tx set value of interval timer" +getitimer(2) +.X "setitimer(which, value, ovalue)" +usleep(3), \s-1PS1\s0:6\*(tx17 +.X "setjmp, longjmp \*(tx non\*(txlocal goto" +setjmp(3), \s-1SMM\s0:12\*(tx16 +.X "setlogmask \*(tx control system log" +syslog(3) +.X "set\*(txmark (C\*(tx@)" +\s-1USD\s0:17\*(tx44 +.X "setnetent" +getnetent(3n) +.X "setpgrp \*(tx set process group" +setpgrp(2) +.X "setpriority \*(tx set program scheduling priority" +getpriority(2) +.X "setpriority(which, who, prio)" +\s-1PS1\s0:6\*(tx21, \s-1SMM\s0:12\*(tx14 +.X "setprotoent" +getprotoent(3n) +.X "setpwent" +getpwent(3) +.X "setpwfile" +getpwent(3) +.X "setquota \*(tx enable/disable quotas on a file system" +setquota(2) +.X "setquota(special, file)" +\s-1PS1\s0:6\*(tx32 +.X "setregid \*(tx set real and effective group ID" +setregid(2) +.X "setregid(rgid, egid)" +\s-1PS1\s0:6\*(tx9 +.X "setreuid \*(tx set real and effective user ID's" +setreuid(2) +.X "setreuid(ruid, euid)" +\s-1PS1\s0:6\*(tx9, \s-1SMM\s0:12\*(tx14 +.X "setrlimit" +getrlimit(2) +.X "setservent" +getservent(3n) +.X "setsockopt \*(tx set options on sockets" +getsockopt(2), ip(4p), spp(4p), tcp(4p), \s-1SMM\s0:12\*(tx14 +.X "setsockopt(s, level, optname, optval, optlen)" +\s-1PS1\s0:6\*(tx36, \s-1PS1\s0:8\*(tx35 +.X "setstate" +random(3) +.X "setsyntax function" +\s-1PS2\s0:9\*(tx85,92,95 +.X "setterm, Variables Set By" +\s-1PS1\s0:18\*(tx18 +.X "setterm(name)" +\s-1PS1\s0:18\*(tx6..7,17 +.X "settimeofday" +\s-1PS1\s0:6\*(tx16 +.X "setting up a uucp connection" +\s-1SMM\s0:1\*(tx35 +.X "setting up the mail system" +\s-1SMM\s0:1\*(tx35 +.X "setting up the new 4.3BSD filesystems" +\s-1SMM\s0:1\*(tx17 +.X "setting up the /usr file system" +\s-1SMM\s0:1\*(tx14 +.X "setting up your terminal" +tset(1)\*(tx1 +.X "setting variables" +sh(1)\*(tx2,5 +.X "settings, default" +\s-1USD\s0:20\*(tx5 +.X "settings, nmap" +ftp(1c)\*(tx2..4 +.X "setttyent" +getttyent(3) +.X "set\*(txuser ID shell script" +csh(1)\*(tx19, \s-1SMM\s0:12\*(tx4 +.X "set\*(txuser\*(txid" +chmod(1), ls(1), sccs(1), chmod(2), chown(2), getuid(2), intro(2)\*(tx6, ptrace(2), stat(2)\*(tx2, write(2), abs(3), ncheck(8), \s-1SMM\s0:9\*(tx19,21, \s-1SMM\s0:17\*(tx2..3 +.X "setusershell" +getusershell(3) +.X "sex in crustaceans" +\s-1USD\s0:21\*(tx2 +.X "S\*(txexpressions" +\s-1PS2\s0:9\*(tx120,133,135 +.X "s\*(txexpressions, Lisp" +\s-1USD\s0:15\*(tx24 +.X "s\*(txfile" +\s-1PS1\s0:14\*(tx1 +.X "sgttyb, struct" +stty(3c), tty(4)\*(tx6,8 +.X "sharable executable files" +sticky(8) +.X "shared calendars" +calendar(1) +.X "shared locks" +flock(2), \s-1SMM\s0:14\*(tx12 +.X "shared strings" +xstr(1) +.X "shared text" +ld(1), execve(2), \s-1PS1\s0:10\*(tx9 +.X "sharing object modules" +\s-1SMM\s0:2\*(tx6 +.X "sharing of data between processes" +\s-1PS1\s0:6\*(tx10 +.X "shell" +find(1), grep(1), mail(1)\*(tx3, su(1), vgrind(1), wait(1), environ(7), \s-1USD\s0:1\*(tx9,12, \s-1USD\s0:7\*(tx17, \s-1USD\s0:11\*(tx13, \s-1USD\s0:17\*(tx21, system(3f), passwd(5) +.X "shell, Bourne" +jove(1)\*(tx1, sh(1)\*(tx1, tset(1)\*(tx2, \s-1USD\s0:8\*(tx36, \s-1USD\s0:15\*(tx2 +.X "shell, C" +jove(1)\*(tx1, learn(1), tset(1)\*(tx2, \s-1USD\s0:4 +.X "shell characters" +uucp(1c), uux(1c), \s-1SMM\s0:9\*(tx3..4 +.X "shell, chsh \*(tx change login" +passwd(1) +.X "shell command scripts" +\s-1USD\s0:1\*(tx13, \s-1USD\s0:4\*(tx15,39,43..44, \s-1USD\s0:8\*(tx8, execl(3) +.X "shell commands" +csh(1)\*(tx2,9, ftp(1c)\*(tx6, mail(1)\*(tx4, sh(1)\*(tx4, \s-1USD\s0:3\*(tx10, \s-1USD\s0:4\*(tx41, \s-1USD\s0:7\*(tx6, \s-1USD\s0:14\*(tx20, \s-1USD\s0:16\*(tx17, \s-1USD\s0:17\*(tx41, system(3), \s-1SMM\s0:10\*(tx14, \s-1SMM\s0:16\*(tx6 +.X "shell comments" +csh(1)\*(tx1, \s-1USD\s0:4\*(tx25,29 +.X "shell, Control flow in the" +\s-1USD\s0:3\*(tx5 +.X "shell control structures" +\s-1USD\s0:4\*(tx25 +.X "shell, default" +mail(1)\*(tx6, window(1)\*(tx6, \s-1USD\s0:8\*(tx88, \s-1USD\s0:17\*(tx45 +.X "SHELL environment variable" +dbx(1)\*(tx6, pdx(1)\*(tx3, window(1)\*(tx6, term(7), \s-1USD\s0:4\*(tx16, \s-1USD\s0:17\*(tx44 +.X "shell escape command" +\s-1USD\s0:16\*(tx17,19 +.X "shell escapes" +\s-1USD\s0:16\*(tx4,12 +.X "shell, Escaping to a" +\s-1USD\s0:15\*(tx11 +.X "shell exits" +csh(1)\*(tx11, su(1) +.X "shell files" +sh(1)\*(tx6, \s-1SMM\s0:10\*(tx9,11,20 +.X "shell, Fork a" +\s-1USD\s0:11\*(tx4 +.X "shell in a window" +\s-1USD\s0:17\*(tx20 +.X "shell input" +csh(1)\*(tx6,8, sh(1)\*(tx3,6, \s-1USD\s0:3\*(tx1,21..22 +.X "shell, interactive" +sh(1)\*(tx4,6, \s-1USD\s0:3\*(tx18,22, \s-1USD\s0:7\*(tx16, \s-1USD\s0:17\*(tx5,35, \s-1SMM\s0:12\*(tx13,15 +.X "shell, Introduction to the C" +\s-1USD\s0:4 +.X "Shell, Introduction to the UNIX" +\s-1USD\s0:3 +.X "shell metacharacters" +apply(1), csh(1)\*(tx1, expr(1), rsh(1c), uucp(1c), uux(1c), \s-1USD\s0:3\*(tx17, \s-1USD\s0:4\*(tx41, \s-1USD\s0:7\*(tx17 +.X "shell, Metacharacters in the" +\s-1USD\s0:4\*(tx5 +.X "shell, MH" +\s-1USD\s0:8\*(tx42 +.X "shell procedures (see also shell scripts)" +\s-1USD\s0:3\*(tx1,5..7,13..16,19, \s-1USD\s0:4\*(tx25,31,34 +.X "shell process" +sh(1)\*(tx4, \s-1USD\s0:17\*(tx21, init(8) +.X "shell, programming the" +\s-1USD\s0:1\*(tx1 +.X "shell prompts" +sh(1)\*(tx3, \s-1USD\s0:3\*(tx10, \s-1USD\s0:4\*(tx32,42 +.X "shell, rsh \*(tx remote" +rsh(1c) +.X "shell scripts" +csh(1)\*(tx7,9,13,17,19..20, echo(1), tset(1)\*(tx2, window(1)\*(tx1,7, \s-1USD\s0:3\*(tx10, \s-1USD\s0:4\*(tx1,25..31,34..35, \s-1USD\s0:8\*(tx90, \s-1USD\s0:17\*(tx20, \s-1USD\s0:29\*(tx3, \s-1SMM\s0:10\*(tx2,17,20, \s-1SMM\s0:12\*(tx7 +.X "shell shell variable" +csh(1)\*(tx17..18 +.X "shell, single user" +init(8), rc(8), reboot(8)\*(tx1 +.X "shell startup and termination" +\s-1USD\s0:4\*(tx11 +.X "shell, Terminal usage of the" +\s-1USD\s0:4\*(tx3 +.X "shell variables" +csh(1)\*(tx6,14,16..17, expr(1), \s-1USD\s0:3\*(tx8,14, \s-1USD\s0:4\*(tx12,25,43..44 +.X "shell\*(txcommand (C\*(txX !)" +\s-1USD\s0:17\*(tx44 +.X "shell\*(txflags (variable)" +\s-1USD\s0:17\*(tx45 +.X "shells, getusershell, setusershell, endusershell \*(tx get legal user" +getusershell(3) +.X "shift \*(tx Bourne shell command" +csh(1)\*(tx15, sh(1)\*(tx1 +.X "shift action" +\s-1PS1\s0:15\*(tx8 +.X "shift operations" +bit(3f) +.X "shift operators" +\s-1PS1\s0:1\*(tx9, \s-1PS1\s0:9\*(tx8 +.X "shifting lines" +\s-1USD\s0:16\*(tx13 +.X "shift/reduce conflicts" +\s-1PS1\s0:15\*(tx12..16 +.X "shiftwidth" +\s-1USD\s0:16\*(tx17 +.X "short \*(tx integer object conversion" +long(3f) +.X "shorthand for in\*(txline equations" +\s-1USD\s0:27\*(tx7 +.X "shorthand notations" +\s-1USD\s0:1\*(tx6 +.X "show \*(tx show (list) messages" +\s-1USD\s0:8\*(tx6,45,51,66 +.X "show match" +\s-1USD\s0:17\*(tx23 +.X "showmatch" +\s-1USD\s0:15\*(tx15, \s-1USD\s0:16\*(tx1,18 +.X "show\*(txmatch\*(txmode" +\s-1USD\s0:17\*(tx45 +.X "showproc" +\s-1USD\s0:8\*(tx45,51 +.X "shrink\*(txwindow" +\s-1USD\s0:17\*(tx45 +.X "shutdown" +login(1), intro(2)\*(tx5, reboot(8)\*(tx1, \s-1SMM\s0:12\*(tx22 +.X "shutdown \*(tx close down the system at a given time" +shutdown(8) +.X "shutdown \*(tx shut down part of a full\*(txduplex connection" +shutdown(2) +.X "shutdown log" +savecore(8) +.X "shutdown operations" +\s-1PS1\s0:6\*(tx23 +.X "shutdown procedures" +\s-1SMM\s0:1\*(tx45, \s-1SMM\s0:5\*(tx5 +.X "shutdown(s, direction)" +\s-1PS1\s0:6\*(tx36 +.X "SID" +sccs(1)\*(tx1, \s-1PS1\s0:14\*(tx2..3,6..7,10,14..15 +.X "SIGALRM signal" +dbx(1)\*(tx2, getitimer(2), getrusage(2), sigvec(2)\*(tx2, signal(3c)\*(tx1, ualarm(3), \s-1PS1\s0:6\*(tx16 +.X "sigblock \*(tx block signals" +sigblock(2) +.X "sigblock(mask)" +sigpause(2), \s-1PS1\s0:6\*(tx15 +.X "SIGBUS" +sigvec(2)\*(tx2, signal(3c)\*(tx1, \s-1PS1\s0:6\*(tx13 +.X "SIGCHLD" +exit(2), sigvec(2)\*(tx2, signal(3c), syslog(3), \s-1PS1\s0:6\*(tx13, \s-1PS1\s0:8\*(tx19,26..27, \s-1SMM\s0:12\*(tx13, \s-1SMM\s0:13\*(tx8 +.X "SIGCONT" +dbx(1)\*(tx2, \s-1USD\s0:17\*(tx28, sigblock(2), sigsetmask(2), sigvec(2), signal(3c)\*(tx2, \s-1PS1\s0:6\*(tx13 +.X "sigcontext, struct" +sigreturn(2), sigvec(2)\*(tx3, signal(3c)\*(tx2 +.X "SIG_DEF" +\s-1PS1\s0:6\*(tx14 +.X "SIG_DFL" +sigvec(2)\*(tx2, signal(3c)\*(tx2 +.X "SIGEMT" +signal(3c) +.X "SIGFPE" +sigvec(2), signal(3c)\*(tx2, traper(3f), \s-1PS1\s0:6\*(tx13, uucico(8c), \s-1SMM\s0:9\*(tx10, \s-1SMM\s0:12\*(tx6 +.X "SIGHUP" +signal(3c),13,39, \s-1PS2\s0:3\*(tx10 +.X "SIG_IGN" +\s-1PS1\s0:6\*(tx14 +.X "SIGILL" +sigvec(2)\*(tx1, signal(3c)\*(tx1, \s-1PS1\s0:6\*(tx13, \s-1SMM\s0:12\*(tx14 +.X "SIGINT" +dbx(1)\*(tx2, signal(3c), tty(4)\*(tx5, printcap(5), \s-1PS1\s0:6\*(tx13, \s-1PS2\s0:3\*(tx10..12, \s-1SMM\s0:6\*(tx5 +.X "siginterrupt \*(tx allow signals to interrupt system calls" +siginterrupt(3), \s-1SMM\s0:12\*(tx16 +.X "SIGIO" +fcntl(2), socket(2), signal(3c)\*(tx1, tty(4)\*(tx2, \s-1PS1\s0:6\*(tx13,19, \s-1PS1\s0:8\*(tx24,26, \s-1SMM\s0:12\*(tx13..14, \s-1SMM\s0:13\*(tx14, \s-1SMM\s0:15\*(tx7 +.X "SIGIOT" +signal(3c) +.X "SIGKILL" +signal(3c), \s-1PS1\s0:6\*(tx13 +.X "sigmask, macro" +sigblock(2), sigsetmask(2) +.X "sign extension" +\s-1PS1\s0:1\*(tx5,31, \s-1PS2\s0:3\*(tx6, \s-1SMM\s0:12\*(tx2 +.X "signal" +sh(1)\*(tx4, flock(2), getpgrp(2), kill(2), killpg(2), ptrace(2), signal(3c), \s-1PS1\s0:6\*(tx12,14,41, \s-1PS1\s0:8\*(tx26, \s-1SMM\s0:12\*(tx13,16, \s-1SMM\s0:13\*(tx5 +.X "signal \*(tx change the action for a signal" +signal(3f) +.X "signal \*(tx simplified software signal facilities" +signal(3c) +.X "signal actions" +signal(3f), \s-1SMM\s0:12\*(tx2, \s-1SMM\s0:13\*(tx8 +.X "signal, Blocked" +execve(2) +.X "signals, broadcasting" +kill(2) +.X "signals, caught" +execve(2) +.X "signal, continue (see also SIGCONT)" +csh(1)\*(tx13, abs(3) +.X "signal, default action for" +signal(3c)\*(tx2 +.X "signal handlers" +csh(1)\*(tx20, gprof(1), sh(1)\*(tx5, sigstack(2), sigvec(2), pause(3c), siginterrupt(3), trapov(3f), trpfpe(3f), \s-1PS1\s0:6\*(tx12..15, \s-1PS2\s0:3\*(tx12, \s-1SMM\s0:12\*(tx16, \s-1SMM\s0:13\*(tx5..6 +.X "signal handling semantics, 4.2 BSD" +siginterrupt(3) +.X "signal, hangup (see also SIGHUP)" +stty(1)\*(tx3, window(1)\*(tx3, \s-1USD\s0:16\*(tx3, exit(2), vhangup(2), signal(3c), tty(4)\*(tx5, gettytab(5)\*(tx2, inetd(8), init(8), syslogd(8), \s-1SMM\s0:1\*(tx33 +.X "signal, ignored" +\s-1USD\s0:3\*(tx22, execve(2), signal(3c)\*(tx2 +.X "signal inheritance" +signal(3c)\*(tx2 +.X "signal, INTERRUPT (see also SIGINT)" +\s-1USD\s0:4\*(tx8, signal(3c) +.X "signal, kill (see also SIGKILL)" +dbx(1)\*(tx2, \s-1USD\s0:17\*(tx35, sigblock(2), sigsetmask(2), sigvec(2), signal(3c), \s-1SMM\s0:6\*(tx5, \s-1SMM\s0:12\*(tx8 +.X "signal masks" +execve(2), sigsetmask(2), sigvec(2), setjmp(3), siginterrupt(3), \s-1PS1\s0:6\*(tx14, \s-1SMM\s0:13\*(tx19 +.X "signal names" +csh(1)\*(tx12, kill(1), psignal(3) +.X "signal number" +sh(1)\*(tx5..6, ptrace(2), sigvec(2)\*(tx3, psignal(3), signal(3f) +.X "signal, pause \*(tx stop until" +pause(3c) +.X "signal, QUIT (see also SIGQUIT)" +sh(1)\*(tx4, \s-1USD\s0:4\*(tx9..10,17, signal(3c), fsck(8), \s-1SMM\s0:1\*(tx45 +.X "signal, return from" +sigreturn(2) +.X "signal, software termination" +signal(3c) +.X "signal stacks" +execve(2), getrlimit(2), sigstack(2), sigvec(2), \s-1PS1\s0:6\*(tx14..15, \s-1SMM\s0:13\*(tx4..6 +.X "signal, STOP" +csh(1)\*(tx2,15, rsh(1c), \s-1USD\s0:4\*(tx9,17,19,22,44, \s-1USD\s0:17\*(tx46 +.X "signal, stop process" +tty(4)\*(tx10 +.X "signal, terminal stop" +init(8) +.X "signal, terminate (see also SIGTERM)" +csh(1)\*(tx12,20, error(1)\*(tx2, kill(1), nice(1), rsh(1c), shutdown(8), syslogd(8) +.X "signal usage in 4.3BSD" +\s-1SMM\s0:13\*(tx6 +.X "signal.h" +signal(3c) +.X "signals, list of" +sigvec(2) +.X "signals, mask of blocked" +\s-1PS1\s0:6\*(tx14 +.X "signals, release blocked" +sigpause(2) +.X "signals, sending" +csh(1)\*(tx12, kill(1), kill(2), killpg(2), \s-1PS1\s0:6\*(tx14 +.X "signals, sigblock \*(tx block" +sigblock(2) +.X "signals, trapping specified" +\s-1PS1\s0:11\*(tx6 +.X "signals, unmasking" +sigreturn(2) +.X "signature" +\s-1USD\s0:8\*(tx64,87..88, \s-1USD\s0:10\*(tx9 +.X "SIGNATURE environment variable" +\s-1USD\s0:8\*(tx64,87 +.X "signature line" +\s-1USD\s0:20\*(tx5 +.X "signature, mail" +\s-1USD\s0:8\*(tx87 +.X "signed conversions" +printf(3s) +.X "signed decimal" +od(1) +.X "significant bits" +math(3m)\*(tx2 +.X "significant characters" +\s-1PS2\s0:10\*(tx26 +.X "significant sort keys" +\s-1PS2\s0:10\*(tx23 +.X "signing off (see also logout)" +\s-1USD\s0:14\*(tx7 +.X "sigpause \*(tx atomically release blocked signals and wait for interrupt" +sigpause(2) +.X "sigpause(mask)" +\s-1PS1\s0:6\*(tx15 +.X "SIGPIPE" +getsockopt(2), socket(2), \s-1PS1\s0:7\*(tx14, \s-1SMM\s0:13\*(tx13 +.X "SIGPROF" +getitimer(2), sigvec(2)\*(tx2, signal(3c)\*(tx1 +.X "SIGQUIT" +sigvec(2)\*(tx1, signal(3c)\*(tx1, tty(4)\*(tx5, \s-1PS1\s0:6\*(tx13, \s-1PS2\s0:3\*(tx10..12 +.X "sigreturn \*(tx return from signal" +sigreturn(2), \s-1SMM\s0:12\*(tx14 +.X "SIGSEGV" +getrlimit(2), signal(3c), \s-1PS1\s0:6\*(tx13 +.X "sigsetmask \*(tx set current signal mask" +sigsetmask(2) +.X "sigsetmask(mask)" +\s-1PS1\s0:6\*(tx15 +.X "sigstack \*(tx set and/or get signal stack context" +sigstack(2) +.X "sigstack, struct" +sigstack(2), \s-1PS1\s0:6\*(tx15 +.X "SIGSTOP" +sigblock(2), sigsetmask(2), sigvec(2), wait(2), signal(3c)\*(tx2 +.X "SIGSYS" +signal(3c) +.X "SIGTERM" +signal(3c), \s-1PS1\s0:6\*(tx13 +.X "SIGTRAP" +ptrace(2), signal(3c) +.X "SIGTSTP" +sigvec(2)\*(tx2, wait(2), signal(3c)\*(tx1, tty(4)\*(tx5, \s-1PS1\s0:6\*(tx13,38, init(8) +.X "SIGTTIN" +sigvec(2)\*(tx2, vfork(2), wait(2), signal(3c)\*(tx1, tty(4)\*(tx3,5, \s-1PS1\s0:6\*(tx13 +.X "SIGTTOU" +vfork(2), wait(2), signal(3c)\*(tx1, tty(4)\*(tx5, \s-1PS1\s0:6\*(tx13, \s-1SMM\s0:12\*(tx8 +.X "SIGURG" +fcntl(2), socket(2), signal(3c), \s-1PS1\s0:6\*(tx13,19, \s-1PS1\s0:7\*(tx22, \s-1PS1\s0:8\*(tx24..26, \s-1SMM\s0:12\*(tx13, \s-1SMM\s0:13\*(tx14 +.X "SIGUSR" +sigvec(2)\*(tx2, signal(3c)\*(tx1, \s-1PS1\s0:6\*(tx13, \s-1SMM\s0:12\*(tx14, \s-1SMM\s0:13\*(tx4 +.X "sigvec \*(tx software signal facilities" +sigvec(2), signal(3c)\*(tx1, \s-1SMM\s0:12\*(tx14, \s-1SMM\s0:13\*(tx5 +.X "sigvec, struct" +sigvec(2)\*(tx1, \s-1PS1\s0:6\*(tx14 +.X "SIGVTALRM" +getitimer(2), sigvec(2)\*(tx2, signal(3c)\*(tx1 +.X "SIGWINCH" +sigvec(2)\*(tx2, signal(3c)\*(tx1, tty(4)\*(tx5,10, \s-1SMM\s0:12\*(tx10,14, \s-1SMM\s0:13\*(tx4,9 +.X "SIGXCPU" +sigvec(2)\*(tx2, signal(3c)\*(tx1, \s-1PS1\s0:6\*(tx13..14 +.X "SIGXFSZ" +sigvec(2)\*(tx2, signal(3c)\*(tx1, \s-1PS1\s0:6\*(tx13..14 +.X "SILENT" +make(1)\*(tx2 +.X "silo overflow" +dh(4), dhu(4), dmf(4), dmz(4), dz(4) +.X "silo timeouts" +dmf(4), dmz(4), \s-1SMM\s0:13\*(tx32 +.X "sine" +bc(1) +.X "single column horizontal lines" +\s-1USD\s0:28\*(tx5 +.X "single precision arithmetic" +\s-1SMM\s0:19\*(tx25..26 +.X "single precision floating point" +\s-1SMM\s0:12\*(tx2 +.X "single step" +adb(1)\*(tx5, dbx(1)\*(tx6, \s-1PS1\s0:10\*(tx8, \s-1PS1\s0:11\*(tx3 +.X "single user operation" +init(8), shutdown(8), \s-1SMM\s0:1\*(tx14,33,45 +.X "single user shell" +init(8), rc(8), reboot(8)\*(tx1 +.X "sinh, cosh, tanh \*(tx hyperbolic function" +sinh(3m) +.X "sink, null \*(tx data" +null(4) +.X "SIOCATMARK" +\s-1PS1\s0:8\*(tx24..25 +.X "SIOCGIFADDR" +intro(4n)\*(tx3 +.X "SIOCGIFBRDADDR" +intro(4n)\*(tx3 +.X "SIOCGIFCONF" +intro(4n)\*(tx4, \s-1PS1\s0:8\*(tx32, routed(8c)\*(tx1 +.X "SIOCGIFDSTADDR" +intro(4n)\*(tx3, \s-1PS1\s0:8\*(tx34 +.X "SIOCGIFFLAGS" +intro(4n)\*(tx4, \s-1PS1\s0:8\*(tx33..34 +.X "SIOCGIFMETRIC" +intro(4n)\*(tx4 +.X "SIOCGIFNETMASK" +inet(4f) +.X "SIOCSIFADDR" +intro(4n)\*(tx3, ix(4) +.X "SIOCSIFBRDADDR" +intro(4n)\*(tx3 +.X "SIOCSIFDSTADDR" +intro(4n)\*(tx3 +.X "SIOCSIFFLAGS" +intro(4n)\*(tx3 +.X "SIOCSIFMETRIC" +intro(4n)\*(tx4 +.X "SIOCSIFNETMASK" +inet(4f) +.X "SIOCSPGRP ioctl" +\s-1SMM\s0:12\*(tx14 +.X "site administrator" +\s-1SMM\s0:10\*(tx3,18, \s-1SMM\s0:11\*(tx3 +.X "site name" +\s-1SMM\s0:1\*(tx34..36, \s-1SMM\s0:10\*(tx4 +.X "sites, Local" +uucico(8c), \s-1SMM\s0:9\*(tx10 +.X "sites, USENET" +\s-1USD\s0:10\*(tx2..3, \s-1SMM\s0:10\*(tx1 +.X "sites, UUCP" +uupoll(8c), \s-1SMM\s0:7\*(tx4 +.X "site\*(txspecific modifications" +\s-1SMM\s0:2\*(tx14 +.X "size \*(tx size of an object file" +size(1) +.X "size changes" +checknr(1), eqn(1), \s-1USD\s0:20\*(tx4 +.X "size control, font and character" +\s-1USD\s0:24\*(tx3 +.X "size" +\s-1SMM\s0:12\*(tx11 +.X "sizes, fonts and" +\s-1USD\s0:23\*(tx6 +.X "skip over files and/or records" +topen(3f) +.X "slash" +\s-1USD\s0:13\*(tx8, \s-1USD\s0:14\*(tx9,19, \s-1SMM\s0:16\*(tx6 +.X "slattach \*(tx attach serial lines as network interfaces" +slattach(8c) +.X "Slave Active message" +\s-1SMM\s0:22\*(tx5 +.X "slave device" +pty(4) +.X "slave numbers" +\s-1SMM\s0:1\*(tx3, \s-1SMM\s0:2\*(tx22 +.X "slave time daemons" +\s-1SMM\s0:8\*(tx2, \s-1SMM\s0:22\*(tx2 +.X "sleep \*(tx suspend execution for an interval" +sleep(1), sleep(3), \s-1SMM\s0:12\*(tx16 +.X "sleep time" +sleep(1), alarm(3f), sleep(3), usleep(3), \s-1SMM\s0:13\*(tx8 +.X "slime bomb" +hunt(6)\*(tx1 +.X "SLIPDISC" +\s-1SMM\s0:13\*(tx10 +.X "slow terminals, Editing on" +\s-1USD\s0:15\*(tx12 +.X "SMD disks" +\s-1SMM\s0:1\*(tx5 +.X "smiley face" +\s-1USD\s0:10\*(tx8..10 +.X "SMTP" +sendmail(8)\*(tx1, \s-1SMM\s0:7\*(tx27,30..32,36 +.X "SMTP connections" +sendmail(8)\*(tx1 +.X "SMTP help file" +sendmail(8)\*(tx2, \s-1SMM\s0:7\*(tx38 +.X "SMTP over an IPC connection" +\s-1SMM\s0:16\*(tx4 +.X "SMTP over pipes" +\s-1SMM\s0:16\*(tx4 +.X "SMTP server" +\s-1SMM\s0:7\*(tx14, \s-1SMM\s0:16\*(tx1 +.X "snake, snscore \*(tx display chase game" +snake(6) +.X "snapshot, uusnap \*(tx uucp queue" +\s-1SMM\s0:9\*(tx5 +.X "sockaddr, struct" +\s-1PS1\s0:6\*(tx34, \s-1PS1\s0:7\*(tx9..23, \s-1PS1\s0:8\*(tx5..9,13,16,18..22,27,30..38,41 +.X "sockaddr structure" +\s-1SMM\s0:15\*(tx4 +.X "sockbuf, struct" +\s-1SMM\s0:15\*(tx6..7 +.X "SOCK_DGRAM" +\s-1PS1\s0:6\*(tx33,37 +.X "socket" +find(1), ls(1), close(2), getpeername(2), intro(2)\*(tx7, \s-1PS1\s0:6\*(tx24,37, \s-1PS1\s0:7\*(tx12,16,18,21, \s-1PS1\s0:8\*(tx3,22,30..32,35, \s-1SMM\s0:12\*(tx7,14, \s-1SMM\s0:15\*(tx6 +.X "socket \*(tx create an endpoint for communication" +socket(2) +.X "socket abstractions" +intro(4n)\*(tx1, \s-1SMM\s0:15\*(tx6 +.X "socket, accept \*(tx accept a connection on a" +accept(2), \s-1PS1\s0:6\*(tx34 +.X "socket, active" +netstat(1), spp(4p), tcp(4p) +.X "socket and protocol options" +\s-1PS1\s0:6\*(tx36 +.X "socket, binding stream" +\s-1PS1\s0:7\*(tx16,18,21 +.X "socket's bound name" +\s-1PS1\s0:6\*(tx34 +.X "socket, connect \*(tx initiate a connection on a" +connect(2), \s-1PS1\s0:6\*(tx34 +.X "socket, connected" +getsockopt(2), intro(2)\*(tx4, recv(2), gethostbyname(3), \s-1SMM\s0:13\*(tx13 +.X "socket connection queuing" +\s-1SMM\s0:15\*(tx8 +.X "socket creation" +\s-1PS1\s0:6\*(tx33, \s-1PS1\s0:7\*(tx7..17,20..21, \s-1PS1\s0:8\*(tx4 +.X "socket creation time" +\s-1SMM\s0:15\*(tx6,24 +.X "socket data queues" +\s-1SMM\s0:15\*(tx7 +.X "socket, datagram" +connect(2), getsockopt(2), intro(2)\*(tx4, inet(4f), \s-1PS1\s0:6\*(tx33..34, \s-1PS1\s0:7\*(tx8,11..12,19, \s-1PS1\s0:8\*(tx3..4,8..9,20,32..35, inetd(8), \s-1SMM\s0:13\*(tx13,15, \s-1SMM\s0:15\*(tx8 +.X "socket, debugging" +trpt(8c), trsp(8c) +.X "socket, fstat system call on a" +\s-1SMM\s0:15\*(tx16 +.X "socket, IDP" +idp(4p) +.X "socket I/O, Interrupt driven" +\s-1PS1\s0:8\*(tx26 +.X "socket, ioctl system call on a" +\s-1SMM\s0:15\*(tx16 +.X "socket layer" +getsockopt(2), \s-1SMM\s0:13\*(tx13..14, \s-1SMM\s0:15\*(tx6 +.X "socket, listen \*(tx listen for connections on a" +listen(2) +.X "socket names" +\s-1PS1\s0:6\*(tx37, \s-1PS1\s0:7\*(tx12,16,18 +.X "socket, nonblocking" +recv(2) +.X "socket, opening datagram" +\s-1PS1\s0:7\*(tx9..13 +.X "socket, opening stream" +\s-1PS1\s0:7\*(tx15..17,20..21 +.X "socket operations" +fcntl(2), intro(2)\*(tx4..5, icmp(4p), idp(4p), ip(4p), spp(4p), tcp(4p), udp(4p), \s-1SMM\s0:13\*(tx13, \s-1SMM\s0:15\*(tx8..10,15..17,24 +.X "socket options" +getsockopt(2), idp(4p), spp(4p), tcp(4p), \s-1PS1\s0:8\*(tx35, \s-1SMM\s0:13\*(tx29, \s-1SMM\s0:15\*(tx25 +.X "socket, passive" +spp(4p), tcp(4p) +.X "socket, raw" +socket(2), icmp(4p), inet(4f), ip(4p), \s-1PS1\s0:6\*(tx33,37, \s-1PS1\s0:8\*(tx3,28,30,38, route(8c), \s-1SMM\s0:13\*(tx21..23, \s-1SMM\s0:15\*(tx22..23 +.X "socket, Raw IP" +ip(4p), \s-1SMM\s0:13\*(tx23..24, \s-1SMM\s0:15\*(tx22 +.X "socket, Select for exceptional conditions on" +\s-1SMM\s0:13\*(tx14 +.X "socket, send, sendto, sendmsg \*(tx send a message from a" +send(2) +.X "socket, setsockopt \*(tx set options on" +getsockopt(2) +.X "socket state" +netstat(1), \s-1SMM\s0:15\*(tx7 +.X "socket structures" +systat(1)\*(tx2, pstat(8)\*(tx3, \s-1SMM\s0:15\*(tx6..8 +.X "socket types" +accept(2), intro(2)\*(tx4,7, socket(2), intro(4n)\*(tx1, spp(4p), \s-1PS1\s0:6\*(tx33, \s-1PS1\s0:7\*(tx8, \s-1PS1\s0:8\*(tx3..4,35, inetd(8), \s-1SMM\s0:15\*(tx8..10 +.X "socket types and protocols" +\s-1PS1\s0:6\*(tx33,37 +.X "socket, urgent condition present on" +signal(3c) +.X "socket(domain, type, protocol)" +icmp(4p), \s-1PS1\s0:6\*(tx33..34, \s-1PS1\s0:8\*(tx4,25,28, \s-1SMM\s0:15\*(tx6 +.X "socketpair \*(tx create a pair of connected sockets" +socketpair(2) +.X "socketpair(domain, type, protocol, sv)" +\s-1PS1\s0:6\*(tx35 +.X "socketpairs" +pipe(2), \s-1PS1\s0:6\*(tx34, \s-1PS1\s0:7\*(tx4 +.X "socket/protocol interface" +\s-1SMM\s0:15\*(tx15 +.X "sockets, read and write with" +\s-1PS1\s0:6\*(tx36 +.X "sockets, socketpair \*(tx create a pair of connected" +socketpair(2) +.X "socket, stream" +connect(2), socket(2), \s-1PS1\s0:7\*(tx14..15,20, \s-1PS1\s0:8\*(tx3..4,8..9,24,26,31, \s-1SMM\s0:13\*(tx14..15, \s-1SMM\s0:15\*(tx25 +.X "socket, UNIX domain" +window(1)\*(tx1, \s-1PS1\s0:7\*(tx8, \s-1PS1\s0:8\*(tx5,41 +.X "SOCK_RAW" +\s-1PS1\s0:6\*(tx33 +.X "SOCK_RDM" +\s-1PS1\s0:6\*(tx33 +.X "SOCK_SEQPACKET" +\s-1PS1\s0:6\*(tx33 +.X "SOCK_STREAM" +\s-1PS1\s0:6\*(tx33,37 +.X "SO_DEBUG" +\s-1SMM\s0:1\*(tx50 +.X "SO_DEFAULT_HEADERS" +\s-1PS1\s0:8\*(tx38 +.X "soelim \*(tx eliminate .so's from nroff input" +soelim(1) +.X "SO_ERROR" +\s-1PS1\s0:8\*(tx9 +.X "soft limit (quota)" +getrlimit(2), intro(2)\*(tx2, \s-1PS1\s0:6\*(tx32, \s-1SMM\s0:1\*(tx50, \s-1SMM\s0:4\*(tx1, \s-1SMM\s0:14\*(tx13 +.X "software conditions" +\s-1PS1\s0:6\*(tx13 +.X "software distribution" +\s-1PS1\s0:13\*(tx2,6 +.X "software interrupts" +\s-1PS1\s0:6\*(tx9 +.X "software interrupts and terminal multiplexors" +\s-1SMM\s0:13\*(tx6 +.X "software loopback interface" +lo(4), routed(8c)\*(tx1, XNSrouted(8c), \s-1SMM\s0:13\*(tx21 +.X "software maintenance" +rdist(1)\*(tx1, \s-1SMM\s0:21\*(tx1,5..6 +.X "software packages & documentation, posting of" +\s-1USD\s0:9\*(tx10 +.X "software termination signal" +signal(3c) +.X "Software Tools" +ratfor(1) +.X "software, user contributed" +\s-1SMM\s0:1\*(tx17, \s-1SMM\s0:12\*(tx8,23 +.X "Software\*(txPractice and Experience" +\s-1USD\s0:31\*(tx2 +.X "SO_HEADERS_ON_OUTPUT" +\s-1PS1\s0:8\*(tx38 +.X "SO_OOBINLINE" +\s-1PS1\s0:8\*(tx24 +.X "sort" +uniq(1), \s-1SMM\s0:12\*(tx11 +.X "sort by fields" +\s-1USD\s0:29\*(tx3 +.X "sort by time" +ls(1) +.X "sort command" +\s-1USD\s0:4\*(tx5,16 +.X "sort keys" +sort(1), sortbib(1) +.X "sort order" +ruptime(1c), \s-1SMM\s0:12\*(tx11 +.X "sort, qsort \*(tx quick" +qsort(3f) +.X "sort, qsort \*(tx quicker" +qsort(3) +.X "sort template" +\s-1USD\s0:31\*(tx10 +.X "sort, tsort \*(tx topological" +tsort(1) +.X "SORTACTIVE" +\s-1SMM\s0:10\*(tx5,8,15 +.X "sortbib" +roffbib(1), sortbib(1), \s-1USD\s0:29\*(tx1..3 +.X "sorted lists" +look(1), \s-1USD\s0:4\*(tx5,8 +.X "sorting a bibliography" +\s-1USD\s0:29\*(tx1,3 +.X "sortm \*(tx sort messages" +\s-1USD\s0:8\*(tx68 +.X "source code" +error(1)\*(tx1, \s-1USD\s0:10\*(tx4, crash(8v)\*(tx1, \s-1SMM\s0:1\*(tx17,22,28,30, \s-1SMM\s0:2\*(tx4,6,14, \s-1SMM\s0:13\*(tx2, \s-1SMM\s0:19\*(tx2,12 +.X "source code, compiling changed" +\s-1PS1\s0:12\*(tx1 +.X "source code control system (see also SCCS)" +sccs(1)\*(tx2, what(1), \s-1PS1\s0:13\*(tx1, \s-1PS1\s0:14\*(tx1..14 +.X "source code dependencies" +\s-1SMM\s0:2\*(tx5 +.X "source code, finding" +whereis(1) +.X "source code for utilities" +hier(7)\*(tx5 +.X "source commands" +csh(1)\*(tx15, mail(1)\*(tx4, vi(1), \s-1USD\s0:4\*(tx23, \s-1USD\s0:7\*(tx16, \s-1USD\s0:16\*(tx1,10, \s-1USD\s0:17\*(tx24 +.X "source, compiler" +\s-1SMM\s0:12\*(tx3, \s-1SMM\s0:19\*(tx3 +.X "source directory" +make(1)\*(tx2, \s-1SMM\s0:13\*(tx2 +.X "source files" +\s-1PS1\s0:11\*(tx6 +.X "source for manuals" +man(1) +.X "source level debugging" +dbx(1)\*(tx1, pdx(1)\*(tx1 +.X "source, Lex" +\s-1PS1\s0:16\*(tx1,3,8..9 +.X "source line numbers" +dbx(1)\*(tx2, error(1)\*(tx2, pdx(1)\*(tx1, assert(3), \s-1PS1\s0:11\*(tx6, \s-1SMM\s0:19\*(tx12 +.X "source, lisp" +ctags(1) +.X "source management" +\s-1PS1\s0:14\*(tx1 +.X "source modules" +\s-1SMM\s0:2\*(tx6,15 +.X "source port" +rlogind(8c), rshd(8c) +.X "source, program" +\s-1PS1\s0:2\*(tx11, \s-1PS1\s0:18\*(tx3 +.X "source, Ratfor" +\s-1PS1\s0:11\*(tx1..3,6, \s-1PS2\s0:8\*(tx10,14, \s-1PS2\s0:9\*(tx4 +.X "source, recompile the entire system" +\s-1SMM\s0:1\*(tx48 +.X "source shell command" +csh(1)\*(tx12 +.X "source, /sys/sys \*(tx machine independent kernel" +\s-1SMM\s0:1\*(tx26 +.X "sourceany option" +\s-1SMM\s0:12\*(tx5 +.X "sources, system" +hier(7)\*(tx2, config(8), \s-1SMM\s0:1\*(tx16,21,26,32,48..49,56, \s-1SMM\s0:2\*(tx4, \s-1SMM\s0:12\*(tx19 +.X "space between columns" +\s-1USD\s0:28\*(tx4 +.X "space, buffer" +intro(2)\*(tx4, \s-1SMM\s0:13\*(tx4,13, \s-1SMM\s0:15\*(tx18 +.X "space characters" +\s-1USD\s0:22\*(tx3, \s-1USD\s0:24\*(tx12,15,19, scanf(3s) +.X "space, disk" +dbx(1)\*(tx7, \s-1USD\s0:4\*(tx43, \s-1USD\s0:9\*(tx2, fs(5), dcheck(8), mkfs(8), \s-1SMM\s0:1\*(tx3,7,30..31,50, \s-1SMM\s0:2\*(tx6, \s-1SMM\s0:5\*(tx4, \s-1SMM\s0:10\*(tx5, \s-1SMM\s0:12\*(tx21, \s-1SMM\s0:17\*(tx1 +.X "space, file" +ranlib(1), \s-1USD\s0:4\*(tx4, dbm(3x), ndbm(3), \s-1SMM\s0:1\*(tx47 +.X "space, free" +df(1), dir(5), newfs(8), \s-1SMM\s0:10\*(tx7, \s-1SMM\s0:14\*(tx6,9..11, \s-1SMM\s0:15\*(tx24 +.X "space, I/O" +mem(4), \s-1SMM\s0:15\*(tx14 +.X "space, need vertical" +\s-1USD\s0:24\*(tx11 +.X "space, Output saved vertical" +\s-1USD\s0:24\*(tx14 +.X "space, Paging" +\s-1SMM\s0:1\*(tx29, \s-1SMM\s0:2\*(tx32 +.X "space, stack" +getrlimit(2), vlimit(3c), \s-1SMM\s0:19\*(tx3 +.X "space, swap" +brk(2), fork(2), intro(2)\*(tx2, fstab(5), \s-1SMM\s0:2\*(tx8,32, \s-1SMM\s0:13\*(tx17, \s-1SMM\s0:17\*(tx1 +.X "space, text" +gprof(1), \s-1SMM\s0:2\*(tx6 +.X "space, vertical (see also spacing)" +\s-1USD\s0:24\*(tx13..14,23, \s-1USD\s0:25\*(tx3,8 +.X "space, wasted" +\s-1SMM\s0:14\*(tx5..6 +.X "space, white" +awk(1), pr(1), \s-1USD\s0:15\*(tx15..16,22,25, \s-1USD\s0:16\*(tx7..8,13,15..17, \s-1USD\s0:17\*(tx7, \s-1USD\s0:19\*(tx2, \s-1USD\s0:22\*(tx3, \s-1USD\s0:23\*(tx4, \s-1USD\s0:24\*(tx8, \s-1USD\s0:26\*(tx3, getopt(3), resolver(5), \s-1SMM\s0:10\*(tx23, \s-1SMM\s0:19\*(tx26 +.X "space\*(txcharacter size" +\s-1USD\s0:24\*(tx10 +.X "spaces, non\*(txbreakable" +\s-1USD\s0:31\*(tx1 +.X "spacing, Base\*(txline" +\s-1USD\s0:24\*(tx13,28..29 +.X "spacing, double" +ms(7)\*(tx1, \s-1USD\s0:22\*(tx3 +.X "spacing, line" +me(7)\*(tx1, ms(7)\*(tx1, \s-1USD\s0:23\*(tx6, \s-1USD\s0:24\*(tx13, \s-1USD\s0:25\*(tx2..3,10 +.X "spacing, minimum interword" +\s-1USD\s0:24\*(tx12 +.X "spacing, Restore" +\s-1USD\s0:24\*(tx14 +.X "spacing, Set vertical base\*(txline" +\s-1USD\s0:24\*(tx13 +.X "spacing, vertical" +fpr(1), ms(7)\*(tx3, \s-1USD\s0:22\*(tx18, \s-1USD\s0:23\*(tx4, \s-1USD\s0:24\*(tx3,13,28,32, \s-1USD\s0:25\*(tx3,10, \s-1USD\s0:27\*(tx7, \s-1USD\s0:28\*(tx4 +.X "spanned heading" +\s-1USD\s0:28\*(tx3 +.X "spanning, Vertical" +\s-1USD\s0:28\*(tx4 +.X "special characters" +\s-1USD\s0:12\*(tx6..9, \s-1USD\s0:14\*(tx19, \s-1USD\s0:23\*(tx9, \s-1USD\s0:25\*(tx4, \s-1SMM\s0:20\*(tx4 +.X "special characters: ESC, CR and DEL" +\s-1USD\s0:15\*(tx3 +.X "special characters for advanced editing" +\s-1USD\s0:12\*(tx1 +.X "special files" +find(1), hier(7)\*(tx1, mknod(2), intro(4), makedev(8), mknod(8), \s-1SMM\s0:1\*(tx4 +.X "special font" +\s-1USD\s0:24\*(tx9 +.X "Special Mathematical Font" +\s-1USD\s0:24\*(tx9,21 +.X "specifiers, type" +\s-1SMM\s0:19\*(tx17 +.X "speech, parts of" +style(1) +.X "speed, line" +\s-1PS1\s0:6\*(tx39 +.X "spell" +\s-1SMM\s0:12\*(tx11 +.X "spell\*(txbuffer" +\s-1USD\s0:17\*(tx45 +.X "spelling, Australian" +quota(2) +.X "spelling checking" +\s-1USD\s0:17\*(tx22 +.X "spelling errors" +\s-1USD\s0:17\*(tx22, \s-1USD\s0:32\*(tx1, \s-1SMM\s0:12\*(tx19 +.X "spelling lists" +spell(1) +.X "spelling mistakes" +\s-1USD\s0:1\*(tx11, \s-1USD\s0:12\*(tx6 +.X "splicing macro" +\s-1PS2\s0:9\*(tx93 +.X "split \*(tx split a file into pieces" +split(1) +.X "split a multi\*(txroutine Fortran file" +fsplit(1) +.X "split into fields" +\s-1USD\s0:19\*(tx5 +.X "split the screen" +\s-1USD\s0:17\*(tx18 +.X "split\*(txcurrent\*(txwindow (C\*(txX 2)" +\s-1USD\s0:17\*(tx45 +.X "splitting lines" +\s-1USD\s0:13\*(tx6 +.X "spool" +\s-1SMM\s0:10\*(tx13,16 +.X "spool directory" +uucp(1c), lpd(8), uucico(8c), uuclean(8c), \s-1SMM\s0:1\*(tx21, \s-1SMM\s0:9\*(tx2..8,12,20, \s-1SMM\s0:10\*(tx19..20 +.X "spool files" +\s-1SMM\s0:6\*(tx3, \s-1SMM\s0:9\*(tx7, \s-1SMM\s0:10\*(tx5, \s-1SMM\s0:12\*(tx2 +.X "spool queues" +lpq(1), lprm(1), lpc(8), \s-1SMM\s0:1\*(tx34, \s-1SMM\s0:6\*(tx2,5 +.X "Spooler Manual, 4.3BSD Line Printer" +\s-1SMM\s0:6 +.X "spooling areas" +lpq(1), \s-1SMM\s0:1\*(tx35..36, \s-1SMM\s0:6\*(tx2..3, \s-1SMM\s0:14\*(tx12 +.X "spooling daemons" +lpr(1), lpc(8), \s-1SMM\s0:6\*(tx5, \s-1SMM\s0:14\*(tx9 +.X "spooling directory" +lpq(1), lprm(1), \s-1SMM\s0:1\*(tx22,36, \s-1SMM\s0:6\*(tx4 +.X "SPP" +idp(4p), ns(4f), spp(4p), \s-1PS1\s0:8\*(tx40, \s-1SMM\s0:1\*(tx38, \s-1SMM\s0:12\*(tx14, \s-1SMM\s0:13\*(tx29 +.X "SPP connections" +\s-1PS1\s0:8\*(tx37..38 +.X "SPP header" +\s-1PS1\s0:8\*(tx35 +.X "SPP trace records" +trsp(8c) +.X "sprintf" +printf(3s) +.X "sqrt" +sqrt(3m) +.X "square brackets" +\s-1USD\s0:6\*(tx9, \s-1USD\s0:18\*(tx3, \s-1PS1\s0:1\*(tx7, \s-1PS2\s0:6\*(tx3, \s-1PS2\s0:9\*(tx10, \s-1SMM\s0:19\*(tx3 +.X "square root" +dc(1), eqn(1), \s-1USD\s0:5\*(tx2,5,7, \s-1USD\s0:6\*(tx3,10, \s-1USD\s0:19\*(tx4, \s-1USD\s0:26\*(tx3, \s-1USD\s0:27\*(tx4, intro(3f)\*(tx1, sqrt(3m), \s-1PS1\s0:2\*(tx6, \s-1PS2\s0:9\*(tx46, \s-1PS2\s0:10\*(tx36 +.X "srand" +rand(3c) +.X "srandom" +random(3) +.X "sscanf \*(tx formatted input conversion" +scanf(3s) +.X "sstk(incr)" +\s-1PS1\s0:6\*(tx10 +.X "stab \*(tx symbol table types" +stab(5) +.X "stab directives" +\s-1PS1\s0:5\*(tx11 +.X "stab entries" +dbx(5)\*(tx1,5, stab(5) +.X "stabd directive" +stab(5), \s-1PS1\s0:5\*(tx11..12 +.X "stabs assembler directive" +stab(5) +.X "stack" +vlimit(3c), a.out(5)\*(tx2 +.X "stack areas" +\s-1PS1\s0:6\*(tx10 +.X "stack, C" +setjmp(3) +.X "stack, directory" +csh(1)\*(tx11,14, sysline(1), \s-1USD\s0:4\*(tx21,36..37, \s-1USD\s0:17\*(tx21,31,40,42 +.X "stack frames" +dbx(1)\*(tx5, malloc(3), varargs(3), dbx(5)\*(tx1, \s-1PS1\s0:10\*(tx5, \s-1PS2\s0:9\*(tx139, \s-1SMM\s0:12\*(tx2, \s-1SMM\s0:19\*(tx2,12..13,20 +.X "stack level" +\s-1USD\s0:5\*(tx3 +.X "stack, lisp runtime" +\s-1PS2\s0:9\*(tx49,73,79 +.X "stack of marks" +\s-1USD\s0:17\*(tx6 +.X "stack pointers" +brk(2), trpfpe(3f), \s-1SMM\s0:19\*(tx14 +.X "stack position" +\s-1PS2\s0:3\*(tx11, \s-1PS2\s0:9\*(tx137 +.X "stack segments" +getrlimit(2), getrusage(2), intro(2)\*(tx2 +.X "stack size limit" +csh(1)\*(tx13 +.X "stack space" +getrlimit(2), vlimit(3c), \s-1SMM\s0:19\*(tx3 +.X "stack trace" +dbx(1)\*(tx5, \s-1PS1\s0:10\*(tx6, \s-1PS1\s0:11\*(tx2, \s-1PS1\s0:18\*(tx8, crash(8v)\*(tx3 +.X "stack, value" +\s-1PS1\s0:15\*(tx9,28, \s-1PS2\s0:9\*(tx98..99 +.X "stack, Yacc value" +\s-1PS1\s0:15\*(tx21..22,28, \s-1SMM\s0:19\*(tx6 +.X "stacks, signal" +execve(2), getrlimit(2), sigstack(2), sigvec(2), \s-1PS1\s0:6\*(tx14..15, \s-1SMM\s0:13\*(tx4..6 +.X "stand\*(txalone bibliographies" +refer(1), \s-1USD\s0:29\*(tx4,9 +.X "standalone disk test" +drtest(8) +.X "standalone I/O library" +format(8v)\*(tx1 +.X "standalone programs" +drtest(8), format(8v)\*(tx1, \s-1SMM\s0:1\*(tx63 +.X "standalone system operations" +\s-1SMM\s0:1\*(tx4..5,24..25,48 +.X "standard error" +echo(1), setbuf(3s), stdio(3s), \s-1SMM\s0:12\*(tx2 +.X "standard error, Print string on" +\s-1USD\s0:24\*(tx26 +.X "Standard Fortran" +\s-1PS1\s0:2\*(tx4, \s-1PS2\s0:6\*(tx27,31,33 +.X "standard input" +csh(1)\*(tx7..9, \s-1USD\s0:24\*(tx5,24, fork(2), gets(3s), stdio(3s), \s-1PS1\s0:7\*(tx4, \s-1PS1\s0:13\*(tx6,14 +.X "Standard Input/Output Library" +hier(7)\*(tx6, intro(3)\*(tx1, stdio(3s), \s-1PS1\s0:18\*(tx3, \s-1PS2\s0:3\*(tx2,12, \s-1SMM\s0:14\*(tx6 +.X "standard libraries" +ld(1) +.X "standard output from a command" +csh(1)\*(tx8,11, \s-1USD\s0:3\*(tx1, puts(3s), setbuf(3s), stdio(3s), \s-1PS1\s0:7\*(tx4 +.X "Standard Pascal" +\s-1PS1\s0:4\*(tx35 +.X "Standard Resource Record Format" +\s-1SMM\s0:11\*(tx5..6 +.X "standards, C language" +\s-1USD\s0:9\*(tx11 +.X "standend()" +\s-1PS1\s0:18\*(tx12 +.X "standout()" +\s-1PS1\s0:18\*(tx12 +.X "standout mode" +ul(1), \s-1USD\s0:16\*(tx16, termcap(5)\*(tx9..10,13, \s-1PS1\s0:18\*(tx12 +.X "star (metacharacter)" +\s-1USD\s0:13\*(tx4 +.X "Star Trek" +\s-1USD\s0:34\*(tx1..12 +.X "start character (see also flow control)" +rlogin(1c), stty(1), tty(4)\*(tx4,7 +.X "start conditions" +\s-1PS1\s0:16\*(tx5,9,11..12 +.X "start symbol" +\s-1PS1\s0:15\*(tx4 +.X "Start Tracing Message" +\s-1SMM\s0:22\*(tx8 +.X "starting point" +\s-1PS2\s0:1\*(tx3 +.X "starting position" +\s-1PS1\s0:18\*(tx3 +.X "start\*(txremembering (C\*(txX ()" +\s-1USD\s0:17\*(tx45 +.X "startup file for csh" +hier(7)\*(tx5 +.X "startup file for ex" +hier(7)\*(tx5 +.X "startup file for mail" +hier(7)\*(tx5 +.X "startup file for msgs" +hier(7)\*(tx5 +.X "startup file for various network programs" +hier(7)\*(tx5 +.X "stat, lstat, fstat \*(tx get file status" +ln(1), stat(2)\*(tx1, stat(3f)\*(tx1 +.X "stat, struct" +stat(2), \s-1PS1\s0:6\*(tx29, \s-1SMM\s0:15\*(tx16 +.X "state, Socket" +netstat(1), \s-1SMM\s0:15\*(tx7 +.X "state, stopped" +ptrace(2) +.X "state, terminal (see also tty)" +stty(3c), \s-1PS1\s0:18\*(tx17 +.X "statement labels" +\s-1PS1\s0:2\*(tx14, \s-1PS1\s0:10\*(tx5, \s-1PS2\s0:6\*(tx25 +.X "statement limit" +pi(1), \s-1PS1\s0:4\*(tx15,26,36,48 +.X "statement numbers" +f77(1)\*(tx2, struct(1), \s-1PS1\s0:2\*(tx5,7,22, \s-1PS1\s0:4\*(tx41, \s-1PS2\s0:8\*(tx2,5 +.X "statements, action" +\s-1USD\s0:19\*(tx4 +.X "statements, assignment" +fp(1), \s-1USD\s0:6\*(tx7 +.X "statements, compound" +indent(1) +.X "statements, control" +f77(1)\*(tx2, \s-1USD\s0:6\*(tx5..6 +.X "statements, error\*(txhandling" +math(3m)\*(tx5 +.X "statements, print" +\s-1USD\s0:19\*(tx2..5 +.X "statements, Unreachable" +lint(1), \s-1PS1\s0:4\*(tx24, \s-1PS1\s0:9\*(tx3 +.X "static" +\s-1SMM\s0:19\*(tx7 +.X "static storage" +dbm(3x) +.X "static variables" +adb(1)\*(tx4, \s-1SMM\s0:19\*(tx8 +.X "statically allocated variable" +dbx(5)\*(tx1 +.X "statistics, command usage" +sa(8) +.X "statistics, disk I/O" +systat(1)\*(tx1,3 +.X "statistics, disk throughput" +systat(1)\*(tx2 +.X "statistics, dynamic" +\s-1PS2\s0:7\*(tx15..16,30 +.X "statistics functions, time and" +\s-1PS1\s0:6 +.X "statistics gathering" +\s-1PS1\s0:16\*(tx10 +.X "statistics, iostat \*(tx report I/O" +iostat(1) +.X "statistics line" +\s-1PS1\s0:4\*(tx15 +.X "statistics, mbuf" +netstat(1), systat(1)\*(tx2 +.X "statistics, notesfile system" +\s-1USD\s0:11\*(tx14 +.X "statistics, process" +ps(1)\*(tx2 +.X "statistics, processor use" +systat(1)\*(tx2 +.X "statistics, protocol" +netstat(1) +.X "statistics, routing" +netstat(1), \s-1SMM\s0:1\*(tx40 +.X "statistics, system" +systat(1)\*(tx1, kg(4), pstat(8)\*(tx1 +.X "statistics, vmstat \*(tx report virtual memory" +ps(1)\*(tx2, systat(1)\*(tx1..2, vmstat(1) +.X "stat(path, stb)" +\s-1PS1\s0:6\*(tx29 +.X "stats, tty" +\s-1PS1\s0:18\*(tx17 +.X "status buffer" +\s-1SMM\s0:15\*(tx17 +.X "status command" +\s-1SMM\s0:12\*(tx21 +.X "status, error" +getsockopt(2), \s-1PS1\s0:7\*(tx14,22, \s-1PS1\s0:8\*(tx9, \s-1SMM\s0:12\*(tx14, \s-1SMM\s0:13\*(tx4 +.X "status, exit" +csh(1)\*(tx18, \s-1PS1\s0:6\*(tx7, \s-1PS1\s0:8\*(tx26, \s-1PS1\s0:13\*(tx6,10,14,21, \s-1PS1\s0:14\*(tx14 +.X "status fields" +\s-1PS2\s0:10\*(tx47,56,63..65, quotaon(8) +.X "status, file" +stat(2), stat(3f)\*(tx1 +.X "status information" +\s-1USD\s0:3\*(tx2, \s-1PS1\s0:8\*(tx7,20..23, \s-1PS2\s0:5\*(tx3, \s-1PS2\s0:10\*(tx55,58, implogd(8c), \s-1SMM\s0:13\*(tx6,23, \s-1SMM\s0:15\*(tx22, \s-1SMM\s0:21\*(tx4 +.X "status line of a terminal, sysline \*(tx display system status on" +ruptime(1c), sysline(1), termcap(5)\*(tx12 +.X "status messages" +lpc(8), rwhod(8c), \s-1SMM\s0:12\*(tx20 +.X "status, netstat \*(tx show network" +netstat(1) +.X "status of printers" +lpc(8) +.X "status, ps \*(tx process" +ps(1)\*(tx1 +.X "status reports" +ruptime(1c), sysline(1) +.X "status shell variable" +csh(1)\*(tx11,17..18, \s-1USD\s0:4\*(tx27 +.X "status, termination" +sh(1)\*(tx6, wait(2), wait(3f) +.X "stayopen flag" +gethostbyname(3), getnetent(3n), getprotoent(3n), getservent(3n) +.X "stderr" +stdio(3s) +.X "stdin" +stdio(3s) +.X "stdio \*(tx standard buffered input/output package" +stdio(3s), \s-1SMM\s0:12\*(tx16 +.X "stdio.h" +intro(3)\*(tx1, stdio(3s) +.X "stdout" +stdio(3s) +.X "step command" +dbx(1)\*(tx3, pdx(1)\*(tx2 +.X "step, single" +\s-1PS1\s0:10\*(tx8 +.X "stepping mode" +\s-1PS2\s0:9\*(tx133..139 +.X "sticky \*(tx persistent text and append\*(txonly directories" +sticky(8) +.X "sticky bit" +chmod(1), chmod(2), sticky(8), \s-1SMM\s0:1\*(tx23 +.X "sticky directories" +unlink(2), sticky(8) +.X "sticky text" +sticky(8), \s-1SMM\s0:12\*(tx13..14, \s-1SMM\s0:13\*(tx11 +.X "stop bits" +\s-1PS1\s0:6\*(tx39 +.X "stop character (see also flow control)" +stty(1), tty(4)\*(tx4,7 +.X "stop commands" +csh(1)\*(tx15, dbx(1)\*(tx2, \s-1USD\s0:4\*(tx17..19,42..44, \s-1USD\s0:16\*(tx10 +.X "stop output" +window(1)\*(tx3, tty(4)\*(tx9, gettytab(5)\*(tx2 +.X "stop process signal (see also SIGSTOP)" +csh(1)\*(tx2,15, rsh(1c), \s-1USD\s0:4\*(tx9,17,19,22,44, \s-1USD\s0:17\*(tx46, signal(3c), tty(4)\*(tx10 +.X "stop requests" +\s-1PS1\s0:11\*(tx3,6 +.X "stopped state" +ptrace(2) +.X "stopping a program" +\s-1USD\s0:1\*(tx3, tty(4)\*(tx5 +.X "stopping output" +\s-1USD\s0:4\*(tx10, \s-1SMM\s0:12\*(tx10 +.X "stop\*(txprocess" +\s-1USD\s0:17\*(tx46 +.X "stop\*(txremembering (C\*(txX ))" +\s-1USD\s0:17\*(tx46 +.X "storage allocation" +\s-1USD\s0:5\*(tx4, \s-1SMM\s0:19\*(tx6 +.X "storage class" +\s-1PS1\s0:1\*(tx3..4,14,20,24..25,28, \s-1PS2\s0:6\*(tx8, \s-1SMM\s0:19\*(tx6..8,11 +.X "storage class specifiers" +\s-1PS1\s0:1\*(tx12..13 +.X "storage, file" +\s-1SMM\s0:5\*(tx3 +.X "storage management" +\s-1SMM\s0:14\*(tx2 +.X "storage, static" +dbm(3x), ndbm(3) +.X "store" +dbm(3x) +\s-1USD\s0:1\*(tx2 +.X "strategy routines" +\s-1PS2\s0:5\*(tx6..7, \s-1SMM\s0:13\*(tx31 +.X "stray xmit interrupt" +acc(4), il(4), ix(4), pcl(4) +.X "strcat, strcmp, strcpy, strlen \*(tx string operation" +string(3) +.X "stream" +stdio(3s) +.X "stream abstraction" +intro(4n)\*(tx1, spp(4p), tcp(4p) +.X "stream, block buffered" +setbuf(3s) +.X "stream, byte" +socket(2) +.X "stream communication" +\s-1PS1\s0:7\*(tx1,8,23 +.X "stream, data" +\s-1PS1\s0:8\*(tx24..25, \s-1SMM\s0:15\*(tx25 +.X "stream editor (see also sed)" +\s-1USD\s0:13\*(tx16 +.X "stream, line buffered" +setbuf(3s) +.X "stream, output" +m4(1), \s-1USD\s0:1\*(tx9, fclose(3s), fread(3s), printf(3s), putc(3s), puts(3s), setbuf(3s), \s-1PS1\s0:4\*(tx38, \s-1PS1\s0:16\*(tx1, \s-1PS2\s0:3\*(tx14, \s-1PS2\s0:4\*(tx6 +.X "stream socket type" +accept(2), connect(2), getsockopt(2), intro(2)\*(tx4, listen(2), socket(2), rcmd(3), rexec(3), ns(4f), spp(4p), tcp(4p), \s-1SMM\s0:13\*(tx14, \s-1SMM\s0:15\*(tx8,10 +.X "stream sockets" +connect(2), socket(2), \s-1PS1\s0:7\*(tx14..15,20, \s-1PS1\s0:8\*(tx3..4,8..9,24,26,31, \s-1SMM\s0:13\*(tx14..15, \s-1SMM\s0:15\*(tx25 +.X "strict locking" +\s-1PS1\s0:13\*(tx2,13 +.X "strict type checking" +dbx(1)\*(tx5, lint(1) +.X "string, Append" +\s-1USD\s0:24\*(tx16 +.X "string, appends a copy of" +string(3) +.X "string, character" +scanf(3s) +.X "string comparison" +\s-1USD\s0:19\*(tx4, \s-1USD\s0:25\*(tx12, bstring(3), string(3) +.X "string concatenation" +\s-1USD\s0:19\*(tx5, \s-1PS1\s0:2\*(tx20 +.X "string copy function" +bstring(3) +.X "string, Define a" +\s-1USD\s0:24\*(tx16, \s-1USD\s0:25\*(tx7 +.X "string, find a character in" +string(3) +.X "string, length of" +string(3) +.X "string names, Macro and" +\s-1USD\s0:24\*(tx14 +.X "string operations" +string(3) +.X "string, quoted" +csh(1)\*(tx5 +.X "string, read a" +gets(3s) +.X "string registers, list of" +ms(7)\*(tx3 +.X "string registers used in \*(txms" +\s-1USD\s0:20\*(tx7 +.X "string, Remove request, macro, or" +\s-1USD\s0:24\*(tx16 +.X "string search" +od(1), \s-1USD\s0:15\*(tx19 +.X "string, search again for the same" +\s-1USD\s0:17\*(tx10 +.X "string substitution" +\s-1USD\s0:3\*(tx1 +.X "string zero function" +bstring(3) +.X "string\*(txlength" +\s-1USD\s0:17\*(tx46 +.X "strings" +\s-1USD\s0:23\*(tx1, \s-1USD\s0:24\*(tx3,14, \s-1SMM\s0:12\*(tx16 +.X "strings \*(tx find the printable strings in a object, or other binary, file" +strings(1) +.X "strings, database of constant" +xstr(1) +.X "strings, lexicographic comparison of" +string(3) +.X "strings, shared" +xstr(1) +.X "strip \*(tx remove symbols and relocation bits" +install(1), ld(1), strip(1) +.X "strncat, strncmp, strncpy \*(tx string operations" +string(3) +.X "struct (see also structure)" +.X "struct \*(tx structure Fortran programs" +struct(1) +.X "struct disktab" +getdiskbyname(3) +.X "struct domain" +\s-1SMM\s0:13\*(tx4, \s-1SMM\s0:15\*(tx9..10 +.X "struct hostent" +\s-1PS1\s0:7\*(tx13,15, \s-1PS1\s0:8\*(tx11,16, \s-1SMM\s0:12\*(tx15 +.X "struct idp" +\s-1PS1\s0:8\*(tx37,40 +.X "struct ifreq" +\s-1PS1\s0:8\*(tx32..34 +.X "struct iovec" +\s-1PS1\s0:6\*(tx25, \s-1PS1\s0:7\*(tx23 +.X "struct itimerval" +\s-1PS1\s0:6\*(tx16..17 +.X "struct listcell" +\s-1PS2\s0:9\*(tx105 +.X "struct listoffixnumscell" +\s-1PS2\s0:9\*(tx105 +.X "struct msghdr" +\s-1PS1\s0:6\*(tx35..36 +.X "struct netent" +\s-1PS1\s0:8\*(tx13 +.X "struct pex" +\s-1PS1\s0:8\*(tx40 +.X "struct protoent" +\s-1PS1\s0:8\*(tx14 +.X "struct qelem" +insque(3) +.X "struct rlimit" +\s-1PS1\s0:6\*(tx22 +.X "struct rusage" +\s-1PS1\s0:6\*(tx8,21 +.X "struct servent" +\s-1PS1\s0:8\*(tx14,16,18 +.X "struct sigstack" +\s-1PS1\s0:6\*(tx15 +.X "struct sigvec" +\s-1PS1\s0:6\*(tx14 +.X "struct sockaddr" +\s-1PS1\s0:6\*(tx34, \s-1PS1\s0:7\*(tx9..23, \s-1PS1\s0:8\*(tx5..9,13,16,18..22,27,30..38,41 +.X "struct sockbuf" +\s-1SMM\s0:15\*(tx6..7 +.X "struct stat" +stat(2), \s-1PS1\s0:6\*(tx29, \s-1SMM\s0:15\*(tx16 +.X "struct tchars" +tty(4)\*(tx9 +.X "struct timeval" +\s-1PS1\s0:6\*(tx16,19,30, \s-1PS1\s0:7\*(tx17 +.X "struct timezone" +\s-1PS1\s0:6\*(tx16 +.X "struct ttychars" +\s-1PS1\s0:6\*(tx39 +.X "struct ttymode" +\s-1PS1\s0:6\*(tx39 +.X "struct, typedef" +\s-1PS1\s0:1\*(tx20 +.X "structure and union declarations" +\s-1PS1\s0:1\*(tx16 +.X "structure assignment" +\s-1SMM\s0:13\*(tx23, \s-1SMM\s0:19\*(tx9,13,21,24 +.X "structure, block" +\s-1SMM\s0:19\*(tx8 +.X "structure, cmap" +\s-1SMM\s0:13\*(tx3,15,20 +.X "structure, ctlr" +\s-1SMM\s0:2\*(tx20..21 +.X "structure declaration" +\s-1PS1\s0:1\*(tx17,28, \s-1PS2\s0:6\*(tx13,15, \s-1SMM\s0:19\*(tx7..8 +.X "structure, device" +\s-1SMM\s0:2\*(tx20..23, \s-1SMM\s0:13\*(tx18 +.X "structure, directory" +\s-1USD\s0:4\*(tx43, \s-1PS2\s0:1\*(tx3, \s-1PS2\s0:4\*(tx7, \s-1SMM\s0:5\*(tx6, \s-1SMM\s0:14\*(tx2 +.X "structure, HdrInfo" +\s-1SMM\s0:7\*(tx38 +.X "structure, ifnet" +\s-1SMM\s0:13\*(tx21,28, \s-1SMM\s0:15\*(tx14,16 +.X "structure, ltchars" +tty(4)\*(tx10 +.X "structure members" +\s-1PS1\s0:1\*(tx16,28,30, \s-1PS2\s0:6\*(tx10..13,21,23,26, \s-1SMM\s0:19\*(tx8 +.X "structure modification commands" +\s-1PS2\s0:9\*(tx146..148 +.X "structure of a TSP message" +\s-1SMM\s0:22\*(tx2 +.X "Structure of Fortran Files" +\s-1PS1\s0:2\*(tx15 +.X "structure references" +\s-1SMM\s0:19\*(tx11 +.X "structure, socket" +systat(1)\*(tx2, pstat(8)\*(tx3, \s-1SMM\s0:15\*(tx6..8 +.X "structure tags" +\s-1PS1\s0:1\*(tx16..18, \s-1PS2\s0:3\*(tx3 +.X "structure, tconc" +\s-1PS2\s0:9\*(tx35..36,93..94 +.X "structure, tree" +\s-1USD\s0:4\*(tx43 +.X "structure, tty" +\s-1SMM\s0:13\*(tx9..10 +.X "structure, user" +systat(1)\*(tx2,5, ptrace(2), core(5), \s-1SMM\s0:1\*(tx23, \s-1SMM\s0:2\*(tx32, \s-1SMM\s0:13\*(tx5..7,16 +.X "structure, WINDOW" +\s-1PS1\s0:18\*(tx20 +.X "structured devices" +\s-1PS1\s0:6\*(tx39 +.X "structures, system data" +\s-1SMM\s0:1\*(tx12, \s-1SMM\s0:2\*(tx2..3,7,13,15,30 +.X "STST files" +uusnap(8c), \s-1SMM\s0:9\*(tx20 +.X "stty \*(tx set terminal options" +stty(1)\*(tx1, \s-1PS1\s0:18\*(tx7, \s-1SMM\s0:12\*(tx11 +.X "stty all" +\s-1USD\s0:1\*(tx3 +.X "stty, gtty \*(tx set and get terminal state (defunct)" +stty(3c) +.X "stty \*(txtabs" +\s-1USD\s0:1\*(tx2 +.X "stty tostop" +csh(1)\*(tx2, \s-1USD\s0:4\*(tx20 +.X "style \*(tx analyze surface characteristics of a document" +style(1), \s-1USD\s0:32\*(tx2..11 +.X "STYLE abbreviations" +\s-1USD\s0:32\*(tx12 +.X "STYLE and DICTION Programs" +\s-1USD\s0:32 +.X "style, writing" +style(1), \s-1USD\s0:10\*(tx7, \s-1USD\s0:32\*(tx1,4..5,11 +.X "style, yacc grammar hints on" +\s-1PS1\s0:15\*(tx19 +.X "styles, citation" +\s-1USD\s0:31\*(tx2,16 +.X "styles, document" +indent(1), vgrind(1), \s-1USD\s0:31\*(tx1..2 +.X "SU" +csh(1)\*(tx15, \s-1PS1\s0:3\*(tx6..7, \s-1SMM\s0:10\*(tx1, \s-1SMM\s0:11\*(tx16, \s-1SMM\s0:12\*(tx11 +.X "su \*(tx substitute user id temporarily" +su(1) +.X "subdirectories, recursively list" +ls(1) +.X "subexpression elimination" +\s-1SMM\s0:12\*(tx5..6 +.X "Subject:" +\s-1USD\s0:8\*(tx83 +.X "subject field" +mail(1)\*(tx1,5, mh(1)\*(tx1, \s-1USD\s0:7\*(tx17 +.X "subject, \*(txsubject" +\s-1USD\s0:8\*(tx34,109 +.X "subnet field" +ifconfig(8c), \s-1SMM\s0:1\*(tx40 +.X "SUBNETSARELOCAL" +\s-1SMM\s0:2\*(tx33 +.X "subnetwork addressing" +inet(4f), \s-1SMM\s0:13\*(tx22 +.X "subnetworks, Local" +ifconfig(8c), \s-1SMM\s0:1\*(tx39, \s-1SMM\s0:12\*(tx9 +.X "subrange variables" +pi(1) +.X "subroutine calls" +\s-1PS1\s0:2\*(tx21, \s-1PS2\s0:1\*(tx8, \s-1PS2\s0:6\*(tx16,25, \s-1PS2\s0:9\*(tx152 +.X "subroutine prologs" +\s-1SMM\s0:19\*(tx2..3 +.X "subroutines, Fortran" +\s-1SMM\s0:12\*(tx7 +.X "subroutines, user" +\s-1USD\s0:11\*(tx13 +.X "subschema, define \*(tx define" +\s-1PS2\s0:10\*(tx12 +.X "subscripted variables" +\s-1USD\s0:6\*(tx5, \s-1PS1\s0:1\*(tx29 +.X "subscription list" +\s-1USD\s0:9\*(tx1..4, \s-1SMM\s0:10\*(tx13,23 +.X "subscripts" +colcrt(1), eqn(1), \s-1USD\s0:23\*(tx9, \s-1USD\s0:27\*(tx3, termcap(5)\*(tx12 +.X "subscripts and superscripts" +\s-1USD\s0:26\*(tx3 +.X "subsequencer files" +\s-1USD\s0:11\*(tx11 +.X "subshell" +sh(1)\*(tx1 +.X "substitute commands" +ed(1)\*(tx4, \s-1USD\s0:4\*(tx15, \s-1USD\s0:12\*(tx1,5..10, \s-1USD\s0:13, \s-1USD\s0:14\*(tx10..11,18..19,22, \s-1USD\s0:16\*(tx10,13..15 +.X "substitute function" +\s-1USD\s0:18\*(tx6 +.X "substitute replacement patterns" +\s-1USD\s0:16\*(tx13..14 +.X "substituting newlines" +\s-1USD\s0:13\*(tx6 +.X "substitution, Command" +csh(1)\*(tx6..8,20, sh(1)\*(tx2..3, \s-1USD\s0:3\*(tx16..17,21, \s-1USD\s0:4\*(tx33,35,44 +.X "substitution, filename" +csh(1)\*(tx6..7,17 +.X "substitution, history" +csh(1)\*(tx1,3..5,17..19, \s-1USD\s0:4\*(tx23,25 +.X "substitution, macro" +\s-1PS1\s0:1\*(tx26, \s-1PS1\s0:9\*(tx6, \s-1PS2\s0:6\*(tx5 +.X "substitution, Parameter" +sh(1)\*(tx2, \s-1USD\s0:3\*(tx8,13,15..17 +.X "substitution, string" +\s-1USD\s0:3\*(tx1 +.X "substr" +\s-1PS1\s0:17\*(tx5 +.X "substring notation" +\s-1PS2\s0:10\*(tx33,38 +.X "substrings" +csh(1)\*(tx12 +.X "subtree, lid" +\s-1PS2\s0:10\*(tx29 +.X "subtree, removing a" +rm(1) +.X "subtrees, restoration of complete" +restore(8)\*(tx2 +.X "subwindow" +\s-1PS1\s0:18\*(tx14 +.X "subwin(win, lines, cols, beginy, beginx)" +\s-1PS1\s0:18\*(tx5,16 +.X "suffix, filename" +basename(1), csh(1)\*(tx3 +.X "SUFFIXES" +make(1), \s-1PS1\s0:12\*(tx9 +.X "sum \*(tx sum and count blocks in a file" +sum(1) +.X "sumacc" +\s-1SMM\s0:12\*(tx23 +.X "summarize quotas" +repquota(8) +.X "summary of 4.3 BSD kernel facilities" +\s-1PS1\s0:6\*(tx41 +.X "summary of adb commands" +\s-1PS1\s0:10\*(tx26 +.X "summary of C syntax" +\s-1PS1\s0:1\*(tx32 +.X "summary of dbx commands" +\s-1PS1\s0:11\*(tx6 +.X "summary of ed commands and line numbers" +\s-1USD\s0:12\*(tx10 +.X "summary of m4 built\*(txin macros" +\s-1PS1\s0:17\*(tx6 +.X "summary of nroff/troff requests" +\s-1USD\s0:24\*(tx3 +.X "summary of sccs commands and options" +\s-1PS1\s0:14\*(tx14 +.X "summation" +\s-1USD\s0:26\*(tx4, \s-1USD\s0:27\*(tx4 +.X "Sun" +\s-1SMM\s0:12\*(tx23 +.X "Sun workstation" +\s-1PS1\s0:8\*(tx5 +.X "sunrpc" +\s-1SMM\s0:12\*(tx23 +.X "super block" +mount(2), fs(5), dumpfs(8), fsck(8), icheck(8), update(8), \s-1SMM\s0:5\*(tx3,6, \s-1SMM\s0:13\*(tx3, \s-1SMM\s0:14\*(tx3 +.X "super block, alternate" +fsck(8) +.X "super block, sync \*(tx update the" +sync(2), sync(8) +.X "super\*(txblock checking" +\s-1SMM\s0:5\*(tx6 +.X "super\*(txblock, default" +\s-1SMM\s0:5\*(tx3,6, \s-1SMM\s0:14\*(tx4 +.X "superscripts" +colcrt(1), eqn(1), \s-1USD\s0:23\*(tx9, \s-1USD\s0:27\*(tx3, termcap(5)\*(tx12 +.X "superscripts, subscripts and" +\s-1USD\s0:26\*(tx3 +.X "super\*(txuser (see also su, root)" +csh(1)\*(tx18, lastcomm(1), wall(1), acct(2), intro(2)\*(tx1,6, \s-1SMM\s0:1\*(tx13 +.X "super\*(txuser, becoming" +su(1) +.X "superuser, INGRES" +\s-1PS2\s0:10\*(tx47..49,56,59..62,74 +.X "suppress formatted output" +\s-1USD\s0:24\*(tx2 +.X "suspend execution" +csh(1)\*(tx15, sleep(1), sleep(3) +.X "suspend execution for interval" +usleep(3) +.X "suspend process character" +stty(1)\*(tx3 +.X "suspend the editor" +\s-1USD\s0:15\*(tx11 +.X "suspend the rlogin session" +rlogin(1c) +.X "suspend window" +window(1)\*(tx2 +.X "suspended jobs" +csh(1)\*(tx2, \s-1USD\s0:4\*(tx18..19,34 +.X "suspended processes" +sysline(1) +.X "suspend\*(txjove (ESC S)" +\s-1USD\s0:17\*(tx46 +.X "swab \*(tx swap bytes" +swab(3) +.X "swap areas" +brk(2), swapon(2), hk(4), badsect(8), sticky(8), \s-1SMM\s0:1\*(tx2,7, \s-1SMM\s0:2\*(tx8,26 +.X "swap bytes" +dd(1), swab(3) +.X "swap configuration table" +swapon(8) +.X "swap devices" +systat(1)\*(tx2, swapon(2), swapon(8), \s-1SMM\s0:12\*(tx14 +.X "swap partition" +\s-1SMM\s0:1\*(tx20, \s-1SMM\s0:2\*(tx26 +.X "swap space" +brk(2), fork(2), intro(2)\*(tx2, fstab(5), \s-1SMM\s0:2\*(tx8,32, \s-1SMM\s0:13\*(tx17, \s-1SMM\s0:17\*(tx1 +.X "swap space usage" +systat(1)\*(tx1 +.X "swapon \*(tx add a swap device for interleaved paging/swapping" +swapon(2), swapon(8), \s-1SMM\s0:12\*(tx14,22 +.X "swapon(blkdev, size)" +\s-1PS1\s0:6\*(tx23 +.X "swap/paging area, Multiple" +\s-1SMM\s0:2\*(tx26 +.X "swapping activity" +systat(1)\*(tx3, swapon(8), \s-1SMM\s0:1\*(tx48 +.X "swapping, paging and" +\s-1PS1\s0:6\*(tx23, config(8) +.X "swapping process" +\s-1PS2\s0:4\*(tx3..4 +.X "switch command" +csh(1)\*(tx15 +.X "switch, context" +systat(1)\*(tx3, getrusage(2), \s-1SMM\s0:13\*(tx8,19 +.X "switch, reboot" +\s-1SMM\s0:1\*(tx8 +.X "switch source file" +\s-1USD\s0:24\*(tx25 +.X "switch statement" +csh(1)\*(tx9..10, struct(1), \s-1USD\s0:4\*(tx35, \s-1PS1\s0:1\*(tx22..23, \s-1PS2\s0:8\*(tx4..5, \s-1SMM\s0:19\*(tx2,9..10 +.X "switching between fonts" +\s-1USD\s0:22\*(tx16 +.X "symbol, bss" +\s-1PS1\s0:5\*(tx6 +.X "symbol, data" +\s-1PS1\s0:5\*(tx6, \s-1PS1\s0:10\*(tx13 +.X "symbol, external" +ld(1) +.X "symbol, input" +\s-1PS1\s0:4\*(tx30, \s-1PS1\s0:15\*(tx13..18,21 +.X "symbol, local" +ld(1) +.X "symbol, mathematical" +\s-1USD\s0:27\*(tx1..2 +.X "symbol names" +nm(1), a.out(5)\*(tx3, \s-1PS1\s0:5\*(tx11, \s-1PS1\s0:10\*(tx13, \s-1PS2\s0:9\*(tx89, \s-1SMM\s0:19\*(tx4 +.X "symbol, nonterminal" +\s-1PS1\s0:15\*(tx2..4,21 +.X "symbol, start" +\s-1PS1\s0:15\*(tx4 +.X "symbol table entries" +a.out(5), dbx(5)\*(tx1, stab(5), \s-1SMM\s0:19\*(tx8,11 +.X "symbol table maintenance" +\s-1SMM\s0:19\*(tx3,5,7 +.X "symbol table operations" +\s-1SMM\s0:19\*(tx12 +.X "symbol tables" +adb(1)\*(tx1..2, dbx(1)\*(tx1, gprof(1), ld(1), nm(1), pdx(1)\*(tx1, prof(1), ranlib(1), strip(1), symorder(1), a.out(5), stab(5), \s-1PS1\s0:5\*(tx2,11..14, \s-1PS1\s0:10\*(tx8, \s-1PS1\s0:11\*(tx1,5, \s-1PS1\s0:15\*(tx20, \s-1PS2\s0:9\*(tx37, \s-1PS2\s0:10\*(tx79, \s-1SMM\s0:1\*(tx49, \s-1SMM\s0:2\*(tx5, \s-1SMM\s0:19\*(tx2,4..8,12 +.X "symbol, text" +\s-1PS1\s0:5\*(tx6 +.X "symbol, undefined" +ld(1) +.X "symbolic addresses" +dbx(1)\*(tx6 +.X "symbolic debuggers" +\s-1PS1\s0:4\*(tx37, \s-1PS1\s0:5\*(tx11, \s-1PS1\s0:11\*(tx1, \s-1SMM\s0:12\*(tx2, \s-1SMM\s0:19\*(tx4,12 +.X "symbolic link" +chgrp(1), chmod(1), find(1), ln(1), ls(1), rdist(1)\*(tx1, tar(1), chdir(2), chown(2), intro(2)\*(tx5, link(2), open(2), readlink(2), rename(2), stat(2), symlink(2), link(3f), tar(5), \s-1PS1\s0:6\*(tx28..30, catman(8), chown(8), \s-1SMM\s0:1\*(tx26, \s-1SMM\s0:2\*(tx4,6, \s-1SMM\s0:12\*(tx7..8,13,16,19,21, \s-1SMM\s0:13\*(tx12, \s-1SMM\s0:14\*(tx13 +.X "symbolic names" +\s-1PS1\s0:2\*(tx18..19, \s-1PS1\s0:13\*(tx1,13,20 +.X "symlink \*(tx make symbolic link to a file" +symlink(2) +.X "symlink(path1, path2)" +\s-1PS1\s0:6\*(tx30 +.X "symmetric protocol" +\s-1PS1\s0:8\*(tx17 +.X "symorder \*(tx rearrange name list" +symorder(1), \s-1SMM\s0:12\*(tx11 +.X "sync \*(tx update super\*(txblock" +sync(2), \s-1PS1\s0:6\*(tx23, halt(8), shutdown(8), sync(8), update(8), \s-1SMM\s0:5\*(tx5 +.X "sync\*(txfrequency (variable)" +\s-1USD\s0:17\*(tx46 +.X "synchronization, clock" +\s-1SMM\s0:8\*(tx2, \s-1SMM\s0:22\*(tx10 +.X "synchronization primitives" +\s-1PS1\s0:6\*(tx12 +.X "synchronize a file" +fsync(2) +.X "synchronize a mapped region with the file it maps" +\s-1PS1\s0:6\*(tx11 +.X "synchronous multiplexing" +\s-1PS1\s0:6\*(tx18, \s-1PS1\s0:8\*(tx10 +.X "synonyms for commands" +csh(1)\*(tx5 +.X "syntax class" +\s-1PS2\s0:9\*(tx85..90,94..95 +.X "syntax errors" +\s-1PS1\s0:4\*(tx10,12,18..19, \s-1PS1\s0:5\*(tx8, \s-1PS1\s0:15\*(tx16..18,21,28, \s-1PS2\s0:7\*(tx28, \s-1PS2\s0:8\*(tx10, \s-1PS2\s0:9\*(tx71, \s-1PS2\s0:10\*(tx78 +.X "syscall \*(tx indirect system call" +syscall(2) +.X "syscmd" +\s-1PS1\s0:17\*(tx5 +.X "sys_errlist" +perror(3) +.X "sysline \*(tx display system status on status line of a terminal" +sysline(1), \s-1SMM\s0:12\*(tx11 +.X "syslog facility parameter" +syslog(3) +.X "syslog, log errors via" +\s-1PS1\s0:8\*(tx19 +.X "syslog logging options" +syslog(3) +.X "syslog message priorities" +syslog(3) +.X "syslog, openlog, closelog, setlogmask \*(tx control system log" +logger(1), syslog(3), printcap(5), ftpd(8c), halt(8), lpd(8), reboot(8)\*(tx1, \s-1SMM\s0:1\*(tx22, \s-1SMM\s0:12\*(tx9,16 +.X "syslogd \*(tx log systems messages" +syslog(3), syslogd(8), \s-1SMM\s0:7\*(tx8, \s-1SMM\s0:12\*(tx22 +.X "sysmod \*(tx modify system relations to predetermined storage structures" +\s-1PS2\s0:10\*(tx62 +.X "sys_nerr" +perror(3) +.X "sys_siglist" +psignal(3) +.X "systat \*(tx display system statistics on a crt" +systat(1)\*(tx1, \s-1SMM\s0:1\*(tx48, \s-1SMM\s0:12\*(tx11 +.X "system \*(tx issue a shell command" +system(3) +.X "system \*(tx execute a UNIX command" +system(3f) +.X "system abstractions for files" +\s-1PS1\s0:6 +.X "system accounting" +\s-1USD\s0:8\*(tx93, sa(8) +.X "system administrator" +\s-1USD\s0:7\*(tx5, \s-1USD\s0:9\*(tx9, \s-1USD\s0:10\*(tx2, fstab(5), lpc(8), sendmail(8)\*(tx2, \s-1SMM\s0:4, \s-1SMM\s0:11\*(tx2, \s-1SMM\s0:14\*(tx6, \s-1SMM\s0:17\*(tx2, \s-1SMM\s0:18\*(tx2 +.X "system binaries" +crash(8v)\*(tx1, \s-1SMM\s0:1\*(tx2,29, \s-1SMM\s0:9\*(tx11 +.X "system, build a bootable" +config(8), \s-1SMM\s0:2\*(tx4..5 +.X "system call, bad argument to" +signal(3c) +.X "system call, interrupted" +siginterrupt(3) +.X "system call overhead" +ik(4), ps(4), \s-1SMM\s0:14\*(tx9 +.X "system call, restarting" +siginterrupt(3), \s-1PS1\s0:6\*(tx14 +.X "system calls (see also man section 2)" +systat(1)\*(tx3, fcntl(2), getitimer(2), intro(2)\*(tx1..2, ptrace(2), sigvec(2)\*(tx2, syscall(2), siginterrupt(3), signal(3c)\*(tx2, usleep(3), \s-1PS1\s0:6\*(tx5,14,17,25, \s-1PS1\s0:7\*(tx9,19, \s-1PS1\s0:8\*(tx4, \s-1PS2\s0:1\*(tx4,8,13..14, \s-1PS2\s0:3\*(tx9..11, \s-1PS2\s0:9\*(tx73,79, \s-1SMM\s0:1\*(tx18,26, \s-1SMM\s0:5\*(tx5, \s-1SMM\s0:10\*(tx2,5,15, \s-1SMM\s0:13\*(tx5..7,20 +.X "system clock" +adjtime(2), getitimer(2), gettimeofday(2), timedc(8), \s-1SMM\s0:2\*(tx6, \s-1SMM\s0:12\*(tx13 +.X "system configuration files" +config(8), \s-1SMM\s0:1\*(tx7, \s-1SMM\s0:2\*(tx2,33, \s-1SMM\s0:4\*(tx2, \s-1SMM\s0:16\*(tx8 +.X "system configuration" +autoconf(4), config(8), \s-1SMM\s0:1\*(tx32..33,38,65, \s-1SMM\s0:2\*(tx2,8,15,23, \s-1SMM\s0:4\*(tx2 +.X "system console" +syslog(3), syslogd(8) +.X "system crashes" +jove(1)\*(tx2, \s-1USD\s0:14\*(tx21, \s-1USD\s0:15\*(tx14, \s-1USD\s0:16\*(tx1,3,9, crash(8v), rc(8), sendmail(8)\*(tx3, \s-1SMM\s0:1\*(tx65, \s-1SMM\s0:2\*(tx26, \s-1SMM\s0:3, \s-1SMM\s0:14\*(tx12 +.X "system data structures" +\s-1SMM\s0:1\*(tx12, \s-1SMM\s0:2\*(tx2..3,7,13,15,30 +.X "system debugging" +crash(8v)\*(tx3 +.X "system description" +intro(4), \s-1SMM\s0:1\*(tx3 +.X "system diagnostic messages" +dmesg(8) +.X "system directories" +csh(1)\*(tx14, \s-1USD\s0:4\*(tx41, \s-1SMM\s0:9\*(tx11 +.X "system dumps" +config(8), \s-1SMM\s0:2\*(tx8,26 +.X "system error log" +intro(4), dmesg(8) +.X "system error messages" +perror(3), perror(3f), \s-1SMM\s0:7\*(tx36 +.X "system file table" +creat(2), open(2) +.X "system, generic distribution version of the" +\s-1SMM\s0:1\*(tx27 +.X "system hangs" +\s-1SMM\s0:1\*(tx65 +.X "system identification" +\s-1SMM\s0:2\*(tx2, \s-1SMM\s0:9\*(tx6 +.X "system identifier" +\s-1SMM\s0:2\*(tx2..7 +.X "system images" +trpt(8c), trsp(8c), \s-1SMM\s0:1\*(tx8,27, \s-1SMM\s0:2\*(tx2,4..7,14 +.X "system index" +\s-1USD\s0:31\*(tx2 +.X "System Industries SI 9700 tape subsystem" +ut(4) +.X "system initialization" +\s-1SMM\s0:1\*(tx26 +.X "system limits" +brk(2), open(2) +.X "system load" +systat(1)\*(tx1, \s-1SMM\s0:7\*(tx15,32 +.X "system log, logger \*(tx make entries in the (see also syslog)" +logger(1), syslog(3), shutdown(8), \s-1SMM\s0:7\*(tx8 +.X "system mailbox" +mail(1)\*(tx3..5, \s-1USD\s0:7\*(tx2..7,14..18 +.X "system maintenance" +intro(1), \s-1SMM\s0:2\*(tx2 +.X "system messages" +msgs(1), \s-1USD\s0:4\*(tx11 +.X "system name translation cacheing" +systat(1)\*(tx2 +.X "system names" +uucp(1c), uuname(1c), L.aliases(5), L.sys(5)\*(tx1, \s-1SMM\s0:7\*(tx4, \s-1SMM\s0:9\*(tx5..6,19..20, \s-1SMM\s0:10\*(tx12,23..24 +.X "system operations" +\s-1SMM\s0:1\*(tx1,17,45,51 +.X "system options" +\s-1SMM\s0:2\*(tx3,15 +.X "system page size" +getpagesize(2), \s-1SMM\s0:15\*(tx26 +.X "system page tables" +\s-1SMM\s0:2\*(tx31..32, \s-1SMM\s0:13\*(tx19 +.X "system resources" +getrlimit(2), \s-1SMM\s0:8\*(tx2, \s-1SMM\s0:15\*(tx12 +.X "system security" +write(2), ftpd(8c), \s-1SMM\s0:1\*(tx21, \s-1SMM\s0:17\*(tx2, \s-1SMM\s0:18\*(tx1..2 +.X "system setup" +\s-1SMM\s0:1\*(tx24 +.X "system size limitations" +\s-1SMM\s0:2\*(tx32 +.X "system software, Recompiling and reinstalling" +\s-1SMM\s0:1\*(tx1,48 +.X "system sources" +hier(7)\*(tx2, config(8), \s-1SMM\s0:1\*(tx16,21,26,32,48..49,56, \s-1SMM\s0:2\*(tx4, \s-1SMM\s0:12\*(tx19 +.X "system staff" +adduser(8) +.X "system standard types" +\s-1PS1\s0:6\*(tx5 +.X "system statistics" +systat(1)\*(tx1, kg(4), pstat(8)\*(tx1 +.X "system tables" +vhangup(2), pstat(8) +.X "system time" +csh(1)\*(tx18, ps(1)\*(tx1, sh(1)\*(tx5, \s-1USD\s0:4\*(tx24, \s-1USD\s0:30\*(tx3, adjtime(2), getrusage(2), etime(3f), time(3f), times(3c), vtimes(3c), sa(8), update(8), \s-1SMM\s0:1\*(tx48 +.X "system utilities" +\s-1SMM\s0:1\*(tx18, \s-1SMM\s0:14\*(tx6,13 +.X "System V" +make(1)\*(tx3, \s-1SMM\s0:10\*(tx21..22, \s-1SMM\s0:13\*(tx8 +.X "System V compatibility" +kill(2), \s-1SMM\s0:9\*(tx8,10, \s-1SMM\s0:12\*(tx14..15,18, \s-1SMM\s0:13\*(tx3 +.X "System V interrupt handling" +siginterrupt(3) +.X "Sytek" +L\*(txdevices(5) +.L T +.X "tab characters (see also tabs)" +sort(1), \s-1USD\s0:1\*(tx2, \s-1USD\s0:15\*(tx9,22, \s-1USD\s0:17\*(tx7,35,40, \s-1PS1\s0:2\*(tx7, \s-1PS1\s0:3\*(tx7, \s-1PS1\s0:16\*(tx3, \s-1PS2\s0:10\*(tx65,75 +.X "tab, .re Reset" +\s-1USD\s0:23\*(tx7 +.X "tab repetition character" +\s-1USD\s0:24\*(tx18 +.X "tab replacement character" +\s-1USD\s0:25\*(tx5 +.X "tab settings" +nroff(1) +.X "tab stops" +\s-1USD\s0:15\*(tx9, \s-1USD\s0:16\*(tx15,18, \s-1USD\s0:17\*(tx12, \s-1USD\s0:21\*(tx1, \s-1USD\s0:24\*(tx18, \s-1USD\s0:25\*(tx5,12, \s-1USD\s0:26\*(tx3, \s-1USD\s0:27\*(tx2, tty(4)\*(tx4, termcap(5)\*(tx11, \s-1PS1\s0:4\*(tx39,46 +.X "tab stops and types" +\s-1USD\s0:24\*(tx18 +.X "tab, vertical" +\s-1USD\s0:13\*(tx2, ctype(3) +.X "table" +colcrt(1), \s-1USD\s0:13\*(tx13, \s-1USD\s0:20\*(tx4,6, \s-1USD\s0:22\*(tx13,15, \s-1USD\s0:23\*(tx7, \s-1USD\s0:28, \s-1SMM\s0:19\*(tx4 +.X "table as wide as the current line length, expand \*(tx make the" +\s-1USD\s0:28\*(tx2 +.X "table, center \*(tx center the" +\s-1USD\s0:28\*(tx2 +.X "table continue" +\s-1USD\s0:28\*(tx6 +.X "table, data for a" +\s-1USD\s0:28\*(tx5 +.X "table end" +\s-1USD\s0:28\*(tx1 +.X "table end, .te" +\s-1USD\s0:23\*(tx7 +.X "table in a box, allbox \*(tx enclose each item in the" +\s-1USD\s0:28\*(tx2 +.X "table in a box, box \*(tx enclose the" +\s-1USD\s0:28\*(tx2 +.X "table in two boxes, doublebox \*(tx enclose the" +\s-1USD\s0:28\*(tx2 +.X "table, multi\*(txpage boxed" +\s-1USD\s0:28\*(tx2 +.X "Table of Contents" +ms(7)\*(tx2, \s-1USD\s0:21\*(tx2, \s-1USD\s0:22\*(tx8,14 +.X "table of mounted devices" +mount(8) +.X "table start" +\s-1USD\s0:28\*(tx1 +.X "Table start, .T" +\s-1USD\s0:23\*(tx7 +.X "table, .TH With .TS H, ends the header portion of the" +\s-1USD\s0:23\*(tx7 +.X "table, timeout" +crash(8v)\*(tx2 +.X "table, very long" +\s-1USD\s0:20\*(tx6 +.X "table width" +\s-1USD\s0:28\*(tx7 +.X "tables, equations within" +\s-1USD\s0:28\*(tx7 +.X "tables, formating" +tbl(1), \s-1USD\s0:28 +.X "tables, symbol" +\s-1PS1\s0:11\*(tx1,5 +.X "tables, system" +vhangup(2), pstat(8) +.X "tables, Troff commands within" +\s-1USD\s0:28\*(tx5 +.X "tablet, GTCO digitizing" +tb(4) +.X "tablet line discipline" +\s-1SMM\s0:13\*(tx3..4 +.X "tablet types" +tb(4), \s-1SMM\s0:13\*(tx10 +.X "tabs" +col(1), \s-1USD\s0:17\*(tx26,34,47, \s-1USD\s0:24\*(tx4,18, termcap(5)\*(tx11, \s-1PS1\s0:18\*(tx8 +.X "tabs \*(tx set terminal tabs" +tabs(1) +.X "tabs, expand" +expand(1), tip(1c)\*(tx3, tty(4)\*(tx4 +.X "tabs, horizontal" +\s-1USD\s0:25\*(tx5 +.X "tabs, output" +nroff(1) +.X "tabstop" +\s-1USD\s0:16\*(tx18 +.X "TAC" +\s-1SMM\s0:13\*(tx25..26 +.X "tac \*(tx display a file in reverse line order" +\s-1SMM\s0:12\*(tx23 +.X "tag command" +\s-1USD\s0:16\*(tx1,10,18 +.X "tag command line option to JOVE" +\s-1USD\s0:17\*(tx21 +.X "tag file" +ctags(1), jove(1)\*(tx1, logger(1), lookbib(1), vi(1), \s-1USD\s0:15\*(tx19, \s-1USD\s0:16\*(tx11,18, \s-1USD\s0:17\*(tx21,33, \s-1USD\s0:30\*(tx2 +.X "tag, hanging" +\s-1USD\s0:21\*(tx2 +.X "tag names" +\s-1USD\s0:16\*(tx11,19, \s-1USD\s0:17\*(tx19 +.X "tag\*(txfile (variable)" +\s-1USD\s0:17\*(tx46 +.X "tags, field" +\s-1USD\s0:31\*(tx4 +.X "tags, structure" +\s-1PS1\s0:1\*(tx16..18, \s-1PS2\s0:3\*(tx3 +.X "tail \*(tx deliver the last part of a file" +tail(1), \s-1SMM\s0:12\*(tx11 +.X "talk \*(tx talk to another user" +mesg(1), talk(1), inetd(8), \s-1SMM\s0:12\*(tx11 +.X "talkd \*(tx remote user communication server" +talkd(8c), \s-1SMM\s0:12\*(tx22 +.X "tall characters" +\s-1USD\s0:24\*(tx21 +.X "tan \*(tx trigonometric function" +sin(3m) +.X "tandem mode" +stty(1)\*(tx1, tip(1c)\*(tx2, tty(4)\*(tx4 +.X "tanh \*(tx hyperbolic function" +sinh(3m) +.X "tape archive, tp \*(tx manipulate" +tp(1) +.X "tape block size" +restore(8)\*(tx2, \s-1SMM\s0:12\*(tx21 +.X "tape blocking" +tcopy(1) +.X "tape, Booting from" +\s-1SMM\s0:1\*(tx7 +.X "tape bootstrap monitor" +\s-1SMM\s0:1\*(tx7,59,62 +.X "tape density" +mt(4), mtio(4) +.X "tape device" +mt(1), autoconf(4), rdump(8c), rrestore(8c), \s-1SMM\s0:1\*(tx2 +.X "tape, distribution" +reboot(8)\*(tx2, \s-1SMM\s0:1\*(tx2..5,13,17..22,47,49,52..56, \s-1SMM\s0:12\*(tx7 +.X "tape drive" +mt(1), autoconf(4), ht(4), mt(4), tm(4), ts(4), ut(4), \s-1SMM\s0:1\*(tx2..3,8 +.X "tape drive control status register" +topen(3f) +.X "tape drive interface" +ht(4), mt(4), tm(4), tmscp(4), ts(4), ut(4) +.X "tape drivers" +\s-1SMM\s0:13\*(tx31..32 +.X "tape errors" +ht(4), mt(4), tm(4), ut(4), restore(8)\*(tx2 +.X "tape files" +tcopy(1), mtio(4) +.X "tape formatters" +autoconf(4), \s-1SMM\s0:1\*(tx3..5 +.X "tape, incremental" +restore(8)\*(tx1 +.X "tape I/O, f77" +topen(3f) +.X "tape, labelled (see tapes in ANSI format)" +.X "tape logical unit" +topen(3f) +.X "tape marks" +tcopy(1), mtio(4) +.X "Tape Mass Storage Control Protocol" +tmscp(4), \s-1SMM\s0:13\*(tx20,33 +.X "tape, non\*(txraw" +ht(4), mt(4), tm(4), ts(4), ut(4) +.X "tape, read an EBCDIC" +dd(1) +.X "tape, restore a complete dump" +restore(8)\*(tx1 +.X "tape, restore an incremental dump" +restore(8)\*(tx1 +.X "tape, rewind a" +mt(1), topen(3f) +.X "tape, tcopy \*(tx copy a mag" +tcopy(1), \s-1SMM\s0:12\*(tx12 +.X "tapes, dump" +dump(5), fs(5)\*(tx2, dump(8), restore(8), \s-1SMM\s0:1\*(tx17,46 +.X "tapes in ANSI format" +\s-1SMM\s0:12\*(tx23 +.X "tapes, magnetic" +tar(1), tcopy(1), \s-1PS1\s0:6\*(tx24,39, \s-1PS2\s0:1\*(tx3, \s-1PS2\s0:4\*(tx5, \s-1PS2\s0:5\*(tx1, dump(8), rmt(8c), rrestore(8c), \s-1SMM\s0:12\*(tx12 +.X "tar \*(tx tape archive file format" +tar(5) +.X "tar \*(tx tape archiver" +tar(1), \s-1SMM\s0:12\*(tx11 +.X "target names" +make(1), \s-1SMM\s0:14\*(tx13 +.X "target register" +\s-1SMM\s0:19\*(tx19,23 +.X "tb \*(tx line discipline for digitizing devices" +col(1), tb(4) +.X "tbl \*(tx format tables for nroff or troff" +tbl(1), \s-1USD\s0:13\*(tx13, \s-1USD\s0:22\*(tx13, \s-1USD\s0:27\*(tx10, \s-1USD\s0:28 +.X "tbl, eqn and" +\s-1USD\s0:28\*(tx7 +.X "tbl examples" +\s-1USD\s0:28\*(tx8 +.X "tbl limits" +\s-1USD\s0:28\*(tx7 +.X "tc \*(tx photoypesetter simulator" +tc(1) +.X "tclose \*(tx f77 tape I/O" +topen(3f) +.X "tconc structure" +\s-1PS2\s0:9\*(tx35..36,93..94 +.X "tcopy \*(tx copy a mag tape" +tcopy(1), gethostbyname(3), \s-1SMM\s0:12\*(tx12 +.X "tcp \*(tx Internet Transmission Control Protocol (see also procotol)" +getsockopt(2), gethostbyname(3), resolver(3), inet(4f), ip(4p), tcp(4p), udp(4p), \s-1PS1\s0:6\*(tx33,37, \s-1PS1\s0:8\*(tx4,14,24, \s-1SMM\s0:1\*(tx38, \s-1SMM\s0:7\*(tx4, \s-1SMM\s0:9\*(tx15, \s-1SMM\s0:11\*(tx2,8,12, \s-1SMM\s0:12\*(tx14,18, \s-1SMM\s0:13\*(tx23..29, \s-1SMM\s0:15\*(tx16,22,25 +.X "TCP connections" +resolver(3), L.sys(5)\*(tx2, gettable(8c), \s-1SMM\s0:2\*(tx33, \s-1SMM\s0:9\*(tx15, \s-1SMM\s0:15\*(tx16 +.X "TCP connections to 4.2BSD" +\s-1SMM\s0:2\*(tx33 +.X "TCP ports" +tcp(4p), udp(4p), L.sys(5)\*(tx2 +.X "TCP_COMPAT_42" +\s-1SMM\s0:2\*(tx33 +.X "TCP/IP, UUCP on" +\s-1SMM\s0:9\*(tx9 +.X "tdefine" +\s-1USD\s0:27\*(tx8 +.X "TE\*(tx16" +ht(4) +.X "technical documents" +\s-1USD\s0:32\*(tx1,4..5,8 +.X "technical reports" +\s-1USD\s0:31\*(tx7 +.X "tee \*(tx pipe fitting" +tee(1), \s-1SMM\s0:12\*(tx12 +.X "Tektronix" +plot(1g), stty(1)\*(tx2, tc(1), \s-1USD\s0:15\*(tx23, plot(3f), termcap(5)\*(tx6,8,11..12, \s-1SMM\s0:12\*(tx10,16 +.X "Tektronix 4013 terminal" +plot(3x) +.X "Tektronix 4014 and 4015 terminals" +plot(3x) +.X "Tektronix 4014, tk \*(tx paginator for the" +tk(1) +.X "telephone lines" +\s-1USD\s0:14\*(tx4 +.X "telephone numbers" +dn(4), remote(5) +.X "telephone rates" +L.sys(5)\*(tx1 +.X "teletype drivers" +stty(1), \s-1USD\s0:15\*(tx22 +.X "Televideo 925/950" +sysline(1) +.X "telldir" +directory(3) +.X "telnet \*(tx user interface to the TELNET protocol" +telnet(1c)\*(tx1, tn3270(1), ftpd(8c), \s-1SMM\s0:1\*(tx38, \s-1SMM\s0:12\*(tx12 +.X "telnet escape character" +telnet(1c) +.X "telnet protocol" +telnet(1c), \s-1PS1\s0:8\*(tx17, telnetd(8c) +.X "telnet server" +telnet(1c) +.X "telnet SYNCH sequence" +telnet(1c)\*(tx2,4 +.X "telnetd \*(tx DARPA TELNET protocol server" +telnetd(8c), \s-1SMM\s0:12\*(tx22 +.X "template, citation" +\s-1USD\s0:31\*(tx10..13 +.X "template, .../files/dbtmplt7 \*(tx database" +\s-1PS2\s0:10\*(tx65 +.X "template, code" +\s-1SMM\s0:19\*(tx4,15,20,23 +.X "template matching" +\s-1SMM\s0:19\*(tx15,17..23 +.X "template, sort" +\s-1USD\s0:31\*(tx10 +.X "temporary escape `!'" +\s-1USD\s0:13\*(tx15 +.X "temporary indent" +\s-1USD\s0:22\*(tx4, \s-1USD\s0:24\*(tx14, \s-1USD\s0:25\*(tx5 +.X "temporary relations, purge \*(tx destroy all expired and" +\s-1PS2\s0:10\*(tx59 +.X "TENSOR operator" +\s-1USD\s0:26\*(tx6 +.X "term \*(tx conventional names for terminals" +term(7) +.X "TERM environment variables" +csh(1)\*(tx12,14,17, jove(1)\*(tx1, mset(1), tset(1), ul(1), environ(7), \s-1USD\s0:15\*(tx2, \s-1USD\s0:16\*(tx1, getttyent(3), termcap(3x), \s-1PS1\s0:18\*(tx7, init(8), rlogind(8c) +.X "termcap \*(tx terminal capability data base" +termcap(5)\*(tx1, \s-1PS1\s0:18, \s-1PS1\s0:18\*(tx7,18 +.X "termcap capabilities" +termcap(5)\*(tx5, \s-1SMM\s0:12\*(tx15 +.X "termcap description" +hier(7)\*(tx1, termcap(5)\*(tx7,11, \s-1PS1\s0:18\*(tx15 +.X "termcap entries" +window(1)\*(tx1,7, map3270(5)\*(tx1 +.X "TERMCAP environment variable" +tset(1)\*(tx2, window(1)\*(tx1, environ(7), \s-1USD\s0:8\*(tx88, \s-1USD\s0:16\*(tx1, plot(3x), termcap(3x), termcap(5) +.X "termcap file (see also /etc/termcap)" +environ(7), termcap(3x), termcap(5)\*(tx5..6 +.X "termcap file entry, example" +termcap(5)\*(tx5 +.X "terminal" +\s-1USD\s0:1\*(tx8, \s-1PS1\s0:6\*(tx18,24,38, \s-1PS1\s0:18\*(tx3 +.X "terminal access daemon" +\s-1USD\s0:8\*(tx38 +.X "terminal, background write attempted to control" +signal(3c)\*(tx1 +.X "terminal baud rate" +stty(1)\*(tx2 +.X "terminal behavior, strange" +tset(1)\*(tx3, \s-1USD\s0:1\*(tx2 +.X "terminal bell" +csh(1)\*(tx3, tty(4)\*(tx2 +.X "terminal capabilities (see also termcap)" +environ(7), \s-1SMM\s0:20\*(tx2 +.X "terminal capability data base" +clear(1), termcap(3x), termcap(5) +.X "terminal characteristics" +more(1)\*(tx2, gettytab(5)\*(tx1, \s-1PS1\s0:18\*(tx5,17 +.X "terminal characteristics, setting and displaying" +stty(1)\*(tx1 +.X "terminal, console" +last(1), autoconf(4), \s-1SMM\s0:1\*(tx45 +.X "terminal, controlling" +nice(1), syslog(3), tty(4)\*(tx1, \s-1PS1\s0:8\*(tx18..19,28, routed(8c)\*(tx2, XNSrouted(8c) +.X "terminal, CRT" +ex(1), \s-1USD\s0:7\*(tx16, tty(4)\*(tx3 +.X "terminal dependent initialization" +tset(1)\*(tx1 +.X "terminal description files" +\s-1USD\s0:15\*(tx1, termcap(3x), termcap(5)\*(tx6,12..14, \s-1SMM\s0:20\*(tx2 +.X "terminal device" +test(1), ttynam(3f), ttyname(3), \s-1SMM\s0:1\*(tx33 +.X "terminal, Directly\*(txlinked" +\s-1USD\s0:14\*(tx4 +.X "terminal, disable a" +\s-1SMM\s0:1\*(tx33 +.X "terminal, display" +jove(1)\*(tx1, vmh(1), \s-1USD\s0:1\*(tx3, \s-1USD\s0:8\*(tx69, \s-1USD\s0:13\*(tx2, \s-1USD\s0:15\*(tx1 +.X "terminal driver" +tty(4), gettytab(5)\*(tx3, termcap(5)\*(tx11, \s-1SMM\s0:13\*(tx6 +.X "terminal driver modes" +tset(1)\*(tx2, tty(4)\*(tx2, termcap(5)\*(tx11 +.X "terminal, dumb" +\s-1USD\s0:15\*(tx4,6..8,12,17,22,25, \s-1USD\s0:16\*(tx17 +.X "terminal file" +tty(4)\*(tx1 +.X "terminal, graphics" +plot(1g), lib2648(3x)\*(tx1 +.X "terminal handler" +tty(4)\*(tx3, \s-1PS1\s0:6\*(tx38..39, \s-1SMM\s0:1\*(tx26 +.X "terminal, hardcopy" +error(1)\*(tx3, \s-1USD\s0:15\*(tx1,21..22, tty(4)\*(tx3, termcap(5)\*(tx11..12 +.X "terminal hardware support" +\s-1PS1\s0:6\*(tx39 +.X "terminal, Hazeltine" +stty(1)\*(tx2, tty(4)\*(tx4,9, termcap(5)\*(tx13 +.X "terminal information" +\s-1PS1\s0:18\*(tx7 +.X "terminal initialization string" +tset(1)\*(tx3 +.X "terminal input" +csh(1)\*(tx9, \s-1USD\s0:4\*(tx37, tty(4)\*(tx2..3, \s-1PS1\s0:6\*(tx38, \s-1PS1\s0:8\*(tx27,37, \s-1PS1\s0:18\*(tx6, \s-1PS2\s0:4\*(tx1 +.X "terminal, Intelligent" +vi(1), \s-1USD\s0:15\*(tx12, \s-1USD\s0:16\*(tx17, termcap(5)\*(tx9 +.X "terminal interfaces" +tty(4)\*(tx1,9 +.X "terminal line disciplines, Changes in the" +\s-1SMM\s0:13\*(tx9 +.X "terminal line" +tip(1c)\*(tx2, bk(4), tty(4)\*(tx4, gettytab(5)\*(tx1, remote(5), ttys(5), getty(8), init(8), \s-1SMM\s0:1\*(tx1,19,33 +.X "terminal line, ringing or noisy" +init(8) +.X "terminal, lock \*(tx reserve a" +lock(1) +.X "terminal modes" +tset(1)\*(tx1, pty(4), gettytab(5)\*(tx2, termcap(5)\*(tx8, getty(8), \s-1SMM\s0:12\*(tx9 +.X "terminal monitor" +\s-1PS2\s0:10\*(tx22,26,29,54,56 +.X "terminal monitor macro facility" +\s-1PS2\s0:10\*(tx3,18 +.X "terminal multiplexor handling, Changes in" +\s-1SMM\s0:13\*(tx32 +.X "terminal multiplexors" +dmf(4), \s-1SMM\s0:1\*(tx32, \s-1SMM\s0:13\*(tx6 +.X "terminal multiplexors, Software interrupts and" +\s-1SMM\s0:13\*(tx6 +.X "terminal names" +finger(1), tabs(1), talk(1), tty(1), who(1), write(1), term(7), \s-1USD\s0:4\*(tx42, termcap(3x), termcap(5), \s-1SMM\s0:1\*(tx32..33, \s-1SMM\s0:12\*(tx20, \s-1SMM\s0:20\*(tx5 +.X "terminal newline" +\s-1USD\s0:18\*(tx3,8 +.X "terminal output" +stty(1)\*(tx2, \s-1PS1\s0:6\*(tx38, \s-1PS1\s0:8\*(tx25 +.X "terminal, physical" +window(1)\*(tx1,7 +.X "terminal port" +ttynam(3f), bk(4), init(8) +.X "terminal port, ttynam, isatty \*(tx find name of a" +ttynam(3f) +.X "terminal, pseudo" +pty(4), rlogind(8c), \s-1SMM\s0:1\*(tx33,39, \s-1SMM\s0:2\*(tx10,13 +.X "terminal, read from the" +csh(1)\*(tx9 +.X "terminal screen" +tn3270(1), window(1)\*(tx1..2, \s-1USD\s0:8\*(tx88, \s-1USD\s0:15\*(tx17, termcap(5)\*(tx13, \s-1PS1\s0:18\*(tx3..5,11,15 +.X "terminal security" +\s-1SMM\s0:12\*(tx11,13 +.X "terminal session" +script(1), \s-1USD\s0:4\*(tx11 +.X "terminal session, hard\*(txcopy record of" +script(1) +.X "terminal session, script \*(tx make typescript of" +script(1) +.X "terminal, setting the speed" +getty(8) +.X "terminal, setting up your" +tset(1)\*(tx1 +.X "terminal size (see also screen)" +stty(1)\*(tx2, tty(4)\*(tx5, \s-1SMM\s0:13\*(tx4 +.X "terminal state" +stty(3c) +.X "terminal stop signal" +init(8) +.X "terminal, sysline \*(tx display system status on status line of a" +sysline(1) +.X "terminal tabs, setting" +tabs(1) +.X "terminal, ttyname, isatty, ttyslot \*(tx find name of a" +ttyname(3) +.X "terminal types" +clear(1), login(1), mset(1), plot(1g), rlogin(1c), roffbib(1), tset(1), window(1)\*(tx7, environ(7), \s-1USD\s0:8\*(tx30,88, \s-1USD\s0:11\*(tx2, \s-1USD\s0:15\*(tx2, \s-1USD\s0:16\*(tx1,18, \s-1USD\s0:24\*(tx2, \s-1USD\s0:27\*(tx10, getttyent(3), gettytab(5)\*(tx2, termcap(5)\*(tx1,13, ttys(5), \s-1PS1\s0:6\*(tx20, \s-1PS2\s0:10\*(tx54,73, rlogind(8c), telnetd(8c), \s-1SMM\s0:1\*(tx22,33, \s-1SMM\s0:12\*(tx12,19, \s-1SMM\s0:20\*(tx2 +.X "terminal, Upper case only" +\s-1USD\s0:15\*(tx20, tty(4)\*(tx4 +.X "terminal usage of the shell" +\s-1USD\s0:4\*(tx3 +.X "terminal wiring" +\s-1SMM\s0:1\*(tx33 +.X "terminal, writable" +\s-1SMM\s0:12\*(tx11,13 +.X "terminals, Editing on slow" +\s-1USD\s0:15\*(tx12 +.X "terminals, term \*(tx conventional names for" +term(7) +.X "terminals, window \*(tx window environment on ASCII" +window(1)\*(tx1 +.X "terminate a process" +kill(1), exit(2), exit(3) +.X "terminate signal (see also SIGTERM)" +csh(1)\*(tx12,20, kill(1), nice(1), shutdown(8), syslogd(8) +.X "terminate, wait \*(tx wait for a process to" +wait(3f) +.X "terminate, wait, wait3 \*(tx wait for process to" +wait(2) +.X "terminated child process" +getrusage(2), wait(2), times(3c), vtimes(3c) +.X "terminated process" +wait(2), core(5) +.X "terminating commands" +\s-1USD\s0:4\*(tx8 +.X "termination, abnormal" +\s-1PS1\s0:2\*(tx6, \s-1PS1\s0:4\*(tx15, \s-1PS2\s0:10\*(tx60 +.X "termination, abort \*(tx abnormal" +abort(3f) +.X "termination, process" +close(2), abort(3), \s-1PS1\s0:6\*(tx13..14, \s-1PS2\s0:3\*(tx10 +.X "termination status" +wait(2) +.X "terminfo" +termcap(5)\*(tx14 +.X "terms, glossary of" +\s-1USD\s0:4\*(tx34 +.X "test \*(tx test for various conditions" +test(1), \s-1USD\s0:3\*(tx10..11 +.X "test, disk" +drtest(8) +.X "test for execute (search) permission" +access(2) +.X "test for existence of file" +test(1), access(2), access(3f) +.X "test for read permission" +access(2) +.X "test for write permission" +access(2) +.X "test printers" +lptest(1) +.X "test programs" +\s-1SMM\s0:21\*(tx5 +.X "test substitutions" +\s-1USD\s0:18\*(tx10 +.X "testing, conditional" +\s-1PS1\s0:17\*(tx5 +.X "testing interrupt handling routines" +\s-1PS1\s0:10\*(tx6 +.X "TeX" +lpr(1), printcap(5), lpd(8) +.X "text, adding" +\s-1USD\s0:1\*(tx4, \s-1USD\s0:13\*(tx9 +.X "text, appending" +mail(1)\*(tx5, \s-1USD\s0:14\*(tx6 +.X "text base\*(txline position on the page" +\s-1USD\s0:24\*(tx12 +.X "text blocks" +\s-1USD\s0:28\*(tx4..6 +.X "text, boxed" +ms(7)\*(tx1 +.X "text cache" +\s-1SMM\s0:12\*(tx12, \s-1SMM\s0:13\*(tx20 +.X "text, centered" +\s-1USD\s0:22\*(tx4 +.X "text, data and stack" +\s-1PS1\s0:6\*(tx10 +.X "text, defining" +\s-1USD\s0:16\*(tx14 +.X "text, delayed" +\s-1USD\s0:22\*(tx8 +.X "text editing" +\s-1USD\s0:12, \s-1USD\s0:13, \s-1USD\s0:14, \s-1USD\s0:15, \s-1USD\s0:16, \s-1USD\s0:17, \s-1USD\s0:18, \s-1PS1\s0:4\*(tx3, \s-1PS2\s0:1\*(tx13 +.X "text editor ex" +\s-1USD\s0:14\*(tx1 +.X "text editors" +ed(1)\*(tx1, ex(1), jove(1)\*(tx1, learn(1), mail(1)\*(tx3,5, uuencode(1c), vi(1), \s-1USD\s0:1\*(tx3..4, \s-1USD\s0:7\*(tx8,13,17, \s-1USD\s0:12\*(tx1, \s-1USD\s0:14\*(tx3..4, \s-1USD\s0:16\*(tx1, lpd(8), \s-1SMM\s0:10\*(tx4 +.X "text, English" +\s-1USD\s0:17\*(tx11, \s-1USD\s0:30\*(tx3, \s-1USD\s0:32\*(tx2 +.X "text, entering" +\s-1USD\s0:14\*(tx2,5,23 +.X "text filling" +\s-1USD\s0:17\*(tx1,12, \s-1USD\s0:24\*(tx3,12 +.X "text formatters" +fmt(1), troff(1), \s-1USD\s0:22\*(tx2 +.X "text, hints for preparing" +\s-1USD\s0:22\*(tx2 +.X "text images" +sticky(8), \s-1SMM\s0:13\*(tx9,17 +.X "text indentation commands" +\s-1USD\s0:17\*(tx12 +.X "text, input" +\s-1PS1\s0:4\*(tx40, \s-1PS1\s0:16\*(tx7,11, \s-1PS2\s0:10\*(tx19 +.X "text input" +\s-1USD\s0:15\*(tx15, \s-1USD\s0:20\*(tx2, \s-1USD\s0:24\*(tx17 +.X "text input mode" +\s-1USD\s0:14\*(tx6..8,17, \s-1USD\s0:16\*(tx3 +.X "text, inserted" +\s-1USD\s0:15\*(tx18,26 +.X "text insertion mode" +\s-1USD\s0:16\*(tx3 +.X "text, killed" +\s-1USD\s0:17\*(tx8,13,48 +.X "text length on the last line output" +\s-1USD\s0:24\*(tx12 +.X "text mode" +\s-1USD\s0:17\*(tx12,16,22,34 +.X "text, moving" +\s-1USD\s0:12\*(tx8, \s-1USD\s0:14\*(tx13, \s-1USD\s0:17\*(tx8 +.X "text pages" +systat(1)\*(tx2..3, \s-1SMM\s0:13\*(tx9,16 +.X "text, print a window of" +\s-1USD\s0:16\*(tx12 +.X "text, quoted" +\s-1USD\s0:27\*(tx5 +.X "text, rearranging and duplicating" +\s-1USD\s0:15\*(tx10 +.X "text, replacement" +m4(1), \s-1USD\s0:12\*(tx10, \s-1USD\s0:13\*(tx6, \s-1PS1\s0:17\*(tx3, \s-1PS2\s0:10\*(tx19,21 +.X "text, saving modified" +\s-1USD\s0:14\*(tx12 +.X "text segments" +as(1), size(1), systat(1)\*(tx2, getrusage(2), a.out(5), dbx(5)\*(tx1, \s-1PS1\s0:5\*(tx4..6,13, \s-1PS2\s0:4\*(tx2..3, \s-1SMM\s0:2\*(tx30,32 +.X "text, shared" +ld(1), execve(2), \s-1PS1\s0:10\*(tx9 +.X "text, sticky" +sticky(8), \s-1SMM\s0:12\*(tx13..14, \s-1SMM\s0:13\*(tx11 +.X "text symbols" +\s-1PS1\s0:5\*(tx6 +.X "text table" +pstat(8)\*(tx1, \s-1SMM\s0:13\*(tx16..17 +.X "text, viewing large sections of" +\s-1USD\s0:14\*(tx12 +.X "text, Writing" +\s-1USD\s0:12\*(tx2, \s-1USD\s0:14\*(tx7 +.X "text\*(txformatting" +\s-1USD\s0:25\*(tx1 +.X "tftp \*(tx trivial file transfer program" +tftp(1c), \s-1SMM\s0:12\*(tx12 +.X "tftpd \*(tx DARPA Trivial File Transfer Protocol server" +tftpd(8c), \s-1SMM\s0:12\*(tx22 +.X "tgetent, tgetnum, tgetflag, tgetstr \*(tx terminal ..." +termcap(3x) +.X "tgoto \*(tx terminal independent operation routines" +termcap(3x), \s-1PS1\s0:18\*(tx8 +.X "thesaurus for diction" +diction(1) +.X "thesis mode" +\s-1USD\s0:21\*(tx1..2, \s-1USD\s0:22\*(tx14 +.X "thesis mode, .th Set" +\s-1USD\s0:23\*(tx8 +.X "thesis, PhD" +\s-1USD\s0:22\*(tx13, \s-1USD\s0:23\*(tx8, \s-1USD\s0:31\*(tx7 +.X "third party copies" +rcp(1c) +.X "thorn" +\s-1USD\s0:21\*(tx3 +.X "three part titles" +\s-1USD\s0:22\*(tx3, \s-1USD\s0:23\*(tx3, \s-1USD\s0:24\*(tx4,14,22 +.X "three\*(txway handshake" +\s-1PS1\s0:8\*(tx38, \s-1SMM\s0:2\*(tx33, \s-1SMM\s0:13\*(tx29 +.X "threshold, underflow" +ieee(3m) +.X "throughput rates" +\s-1SMM\s0:14\*(tx2,9..11 +.X "ticks, clock" +profil(2), vtimes(3c), \s-1SMM\s0:13\*(tx6..7 +.X "tilde" +ms(7)\*(tx3, \s-1USD\s0:21\*(tx3, \s-1USD\s0:23\*(tx9, \s-1USD\s0:26\*(tx3, \s-1USD\s0:27\*(tx2 +.X "tilde escapes" +mail(1)\*(tx4, tip(1c)\*(tx1, \s-1USD\s0:7\*(tx8..10,15,23..24 +.X "time and statistics functions" +\s-1PS1\s0:6 +.X "time \*(tx time a command" +csh(1)\*(tx16, time(1), \s-1USD\s0:4\*(tx23,44 +.X "time, access" +\s-1PS1\s0:6\*(tx23,29, \s-1PS1\s0:10\*(tx11, \s-1PS2\s0:9\*(tx9 +.X "time, cpu" +lastcomm(1), ps(1)\*(tx1, time(1), w(1), \s-1USD\s0:4\*(tx11,23..24,42, getrlimit(2), vtimes(3c) +.X "time, creation" +\s-1SMM\s0:7\*(tx14, \s-1SMM\s0:12\*(tx22 +.X "time, ctime, ltime, gmtime \*(tx return system time" +time(3f) +.X "time daemon limitations" +\s-1SMM\s0:8\*(tx2 +.X "time daemons" +timed(8), \s-1SMM\s0:8, \s-1SMM\s0:22\*(tx2..9 +.X "time, daylight savings" +ctime(3), \s-1SMM\s0:2\*(tx7 +.X "time differences" +\s-1SMM\s0:8\*(tx2, \s-1SMM\s0:22\*(tx2..4 +.X "time, elapsed" +time(1), \s-1USD\s0:4\*(tx24, etime(3f) +.X "time, execution" +gprof(1), time(1), \s-1USD\s0:18\*(tx2, etime(3f), \s-1PS1\s0:3\*(tx3, \s-1PS1\s0:4\*(tx15,37, \s-1PS2\s0:10\*(tx26,51, \s-1SMM\s0:12\*(tx2 +.X "time field" +\s-1SMM\s0:9\*(tx6,10 +.X "time, ftime \*(tx get date and time" +time(3c) +.X "time, Greenwich mean" +gettimeofday(2), ctime(3), time(3c) +.X "time, idle" +finger(1), rwho(1c), systat(1)\*(tx2, \s-1SMM\s0:12\*(tx13 +.X "time intervals" +\s-1USD\s0:32\*(tx15, \s-1SMM\s0:7\*(tx13,18,32 +.X "time limit" +select(2), \s-1SMM\s0:9\*(tx20 +.X "time, login" +finger(1), w(1), who(1), \s-1USD\s0:11\*(tx13, getgid(2), \s-1PS1\s0:6\*(tx8, \s-1PS2\s0:10\*(tx26,54,64,67,72,74, rexecd(8c) +.X "time, network" +date(1), adjtime(2), timed(8), \s-1SMM\s0:8\*(tx2, \s-1SMM\s0:22\*(tx2..4 +.X "time of last modification" +\s-1PS1\s0:12\*(tx3 +.X "time, posting" +\s-1USD\s0:8\*(tx76 +.X "time, process virtual" +getitimer(2) +.X "time, processor" +\s-1USD\s0:30\*(tx3 +.X "time range" +L.sys(5)\*(tx2, \s-1SMM\s0:9\*(tx15 +.X "time, Real" +csh(1)\*(tx18, getitimer(2), \s-1PS1\s0:6\*(tx16, sa(8) +.X "time, retry" +L.sys(5)\*(tx2, \s-1SMM\s0:9\*(tx10,15 +.X "time, run" +\s-1PS1\s0:2\*(tx18, \s-1PS1\s0:3\*(tx7..8, \s-1PS1\s0:4\*(tx31,36, \s-1PS1\s0:10\*(tx7, \s-1PS2\s0:9\*(tx120, \s-1PS2\s0:10\*(tx51..52,82, \s-1SMM\s0:14\*(tx9, \s-1SMM\s0:18\*(tx3 +.X "time servers" +adjtime(2), timed(8) +.X "time service" +inetd(8) +.X "time shell variable" +csh(1)\*(tx16,18 +.X "time, sleep" +sleep(1), alarm(3f), sleep(3), usleep(3), \s-1SMM\s0:13\*(tx8 +.X "time, socket creation" +\s-1SMM\s0:15\*(tx6,24 +.X "time, Sort by" +ls(1) +.X "time stamps" +stat(2)\*(tx2, \s-1SMM\s0:16\*(tx7 +.X "Time Synchronization Protocol" +date(1), timed(8), timedc(8), \s-1SMM\s0:8\*(tx2, \s-1SMM\s0:22\*(tx2 +.X "time synchronization server" +\s-1SMM\s0:12\*(tx2 +.X "time, system" +csh(1)\*(tx18, ps(1)\*(tx1, sh(1)\*(tx5, \s-1USD\s0:4\*(tx24, \s-1USD\s0:30\*(tx3, adjtime(2), getrusage(2), etime(3f), time(3f), times(3c), vtimes(3c), sa(8), update(8), \s-1SMM\s0:1\*(tx48 +.X "time the system has been up" +uptime(1) +.X "time to ASCII, date and" +ctime(3) +.X "time, user" +vmstat(1), \s-1USD\s0:4\*(tx24, getrusage(2), etime(3f), times(3c), vtimes(3c) +.X "time values" +getitimer(2), select(2) +.X "time zone" +gettimeofday(2), ctime(3), time(3c), \s-1PS1\s0:6\*(tx16, sendmail(8)\*(tx3 +.X "timed \*(tx time server daemon" +date(1), timed(8) +.X "Timed Installation and Operation Guide" +\s-1SMM\s0:8 +.X "timedc \*(tx timed control program" +timedc(8), \s-1SMM\s0:22\*(tx8 +.X "timeout on read" +sendmail(8)\*(tx2 +.X "timeout on undelivered messages" +sendmail(8)\*(tx3 +.X "timeout period" +getsockopt(2), intro(2)\*(tx5 +.X "timeout table" +crash(8v)\*(tx2 +.X "timeouts, message" +\s-1SMM\s0:7\*(tx14 +.X "timeouts, Read" +\s-1SMM\s0:7\*(tx14 +.X "timeouts, silo" +dmf(4), dmz(4), \s-1SMM\s0:13\*(tx32 +.X "timer routines" +\s-1SMM\s0:13\*(tx27, \s-1SMM\s0:15\*(tx11 +.X "timer value" +getitimer(2) +.X "timers, interval" +\s-1PS1\s0:6\*(tx13,16..17 +.X "times \*(tx Bourne shell command" +sh(1)\*(tx1 +.X "times \*(tx get process times" +times(3c), fdate(3f) +.X "times, average seek" +iostat(1) +.X "Times Bold" +\s-1USD\s0:22\*(tx16, \s-1USD\s0:24\*(tx9,32 +.X "Times Italic" +\s-1USD\s0:22\*(tx16, \s-1USD\s0:24\*(tx9,32 +.X "Times Roman" +\s-1USD\s0:22\*(tx16, \s-1USD\s0:24\*(tx9,20,32, \s-1USD\s0:25\*(tx3 +.X "timeval, struct" +\s-1PS1\s0:6\*(tx16,19,30, \s-1PS1\s0:7\*(tx17 +.X "Timezone" +\s-1SMM\s0:2\*(tx2 +.X "timezone, struct" +gettimeofday(2), \s-1PS1\s0:6\*(tx16 +.X "timing commands" +csh(1)\*(tx18 +.X "TIOCCBRK" +tty(4)\*(tx4,8 +.X "TIOCCDTR" +tty(4) +.X "TIOCEXCL" +tty(4)\*(tx8 +.X "TIOCFLUSH" +tty(4)\*(tx4..5 +.X "TIOCGETD ioctl" +tty(4)\*(tx1 +.X "TIOCGETP" +stty(3c), tty(4)\*(tx8 +.X "TIOCGPGRP" +getpgrp(2), tty(4)\*(tx2 +.X "TIOCGWINSZ ioctl" +\s-1PS1\s0:18\*(tx14,17 +.X "TIOCHPCL ioctl" +tty(4)\*(tx5 +.X "TIOCNOTTY" +tty(4)\*(tx1 +.X "TIOCOUTQ" +tty(4)\*(tx9 +.X "TIOCPKT" +pty(4) +.X "TIOCREMOTE" +pty(4) +.X "TIOCSBRK ioctl" +tty(4)\*(tx4 +.X "TIOCSDTR" +tty(4) +.X "TIOCSETD" +bk(4), tb(4), tty(4)\*(tx1 +.X "TIOCSETN" +tty(4)\*(tx2 +.X "TIOCSETP" +stty(3c), tty(4)\*(tx2,8 +.X "TIOCSPGRP" +getpgrp(2), tty(4)\*(tx1 +.X "TIOCSTART" +pty(4) +.X "TIOCSTI ioctl" +tty(4)\*(tx2 +.X "TIOCSTOP" +pty(4) +.X "TIOCUCNTL" +pty(4) +.X "tip, cu \*(tx connect to a remote system" +tip(1c)\*(tx1, phones(5), fingerd(8c), \s-1SMM\s0:12\*(tx12 +.X "tiprc" +tip(1c)\*(tx2 +.X "tip.record" +tip(1c)\*(tx3 +.X "title" +\s-1USD\s0:22\*(tx12, \s-1USD\s0:25\*(tx8, lpd(8) +.X "title, bottom" +ms(7)\*(tx1 +.X "title, chapter" +me(7)\*(tx2, ms(7)\*(tx1, \s-1USD\s0:21\*(tx2, \s-1USD\s0:23\*(tx8 +.X "title length" +ms(7)\*(tx3, \s-1USD\s0:24\*(tx22..23, \s-1USD\s0:25\*(tx10,12 +.X "title, page" +ms(7)\*(tx2, \s-1USD\s0:20\*(tx1, \s-1USD\s0:25\*(tx12 +.X "title page" +\s-1USD\s0:22\*(tx13, \s-1USD\s0:23\*(tx8, \s-1USD\s0:31\*(tx4 +.X "title page, .tp Begin" +\s-1USD\s0:23\*(tx8 +.X "title, section" +\s-1USD\s0:22\*(tx12, \s-1USD\s0:23\*(tx2..3, \s-1USD\s0:25\*(tx11 +.X "titles, note" +\s-1USD\s0:11\*(tx4,9 +.X "title, three part" +\s-1USD\s0:22\*(tx3, \s-1USD\s0:23\*(tx3, \s-1USD\s0:24\*(tx4,14,22 +.X "tk \*(tx paginator for the Tektronix 4014" +tk(1) +.X "TK50" +mtio(4), tmscp(4) +.X "tm \*(tx TM\*(tx11/TE\*(tx10 magtape interface" +tm(4), \s-1SMM\s0:1\*(tx5 +.X "TM\*(tx03" +ht(4), mtio(4) +.X "TM11" +mtio(4), ts(4) +.X "TM78" +mt(4), mtio(4) +.X "tmscp \*(tx DEC TMSCP magtape interface" +tmscp(4) +.X "tn3270 \*(tx full\*(txscreen remote login to IBM VM/CMS" +mset(1), tn3270(1), \s-1SMM\s0:12\*(tx12 +.X "To:" +\s-1USD\s0:8\*(tx83 +.X "toascii" +ctype(3) +.X "today's date" +\s-1USD\s0:23\*(tx9 +.X "token, input" +\s-1PS1\s0:4\*(tx19,39, \s-1PS1\s0:15\*(tx8..9,17..18, \s-1PS1\s0:16\*(tx2 +.X "token, lookahead" +\s-1PS1\s0:15\*(tx8..11,16..17 +.X "token names" +yacc(1), \s-1PS1\s0:15\*(tx3,7,15..16,19 +.X "token numbers" +\s-1PS1\s0:15\*(tx6..7 +.X "tolower" +ctype(3) +.X "tone dialing" +\s-1SMM\s0:9\*(tx13 +.X "tools, debugging" +\s-1USD\s0:1\*(tx13, ns(4f) +.X "topen, tclose, tread, twrite, trewin, tskipf, tstate \*(tx f77 tape I/O" +topen(3f) +.X "toplines" +\s-1USD\s0:7\*(tx19 +.X "TOPS\*(tx20" +\s-1USD\s0:8\*(tx94 +.X "tostop, stty" +csh(1)\*(tx2, \s-1USD\s0:4\*(tx20 +.X "total number of processes" +fork(2) +.X "touch \*(tx update date last modified of a file" +touch(1), \s-1USD\s0:3\*(tx20, \s-1PS1\s0:12\*(tx8 +.X "touchline(win, y, startx, endx)" +\s-1PS1\s0:18\*(tx6,16 +.X "touchoverlap()" +\s-1PS1\s0:18\*(tx6 +.X "touchoverlap(win1, win2)" +\s-1PS1\s0:18\*(tx16 +.X "touchwin(win)" +\s-1PS1\s0:18\*(tx6,16 +.X "toupper" +ctype(3) +.X "Tour Through the Portable C Compiler" +\s-1SMM\s0:19 +.X "TP" +man(7), \s-1SMM\s0:12\*(tx12 +.X "tp \*(tx DEC/mag tape formats" +tp(5) +.X "tp \*(tx manipulate tape archive" +tp(1) +.X "tputs \*(tx terminal independent operation routine" +termcap(3x) +.X "tr \*(tx translate characters" +tr(1) +.X "trace bit" +execl(3) +.X "trace fields" +\s-1SMM\s0:7\*(tx36..37 +.X "trace information" +\s-1PS2\s0:7\*(tx30, \s-1PS2\s0:9\*(tx116 +.X "trace package" +lisp(1), \s-1PS2\s0:7\*(tx15,19, \s-1PS2\s0:9\*(tx4,116,119 +.X "trace process" +ptrace(2) +.X "trace records" +trpt(8c), trsp(8c) +.X "trace, stack" +dbx(1)\*(tx5, \s-1PS1\s0:10\*(tx6, \s-1PS1\s0:11\*(tx2, \s-1PS1\s0:18\*(tx8, crash(8v)\*(tx3 +.X "trace trap" +signal(3c), crash(8v)\*(tx2 +.X "trace, trsp \*(tx transliterate sequenced packet protocol" +trsp(8c) +.X "traceback, procedure" +dbx(1)\*(tx2 +.X "tracing commands" +dbx(1)\*(tx2 +.X "tracing information" +dbx(1)\*(tx2, pdx(1)\*(tx1, \s-1PS1\s0:11\*(tx6, \s-1SMM\s0:8\*(tx3 +.X "traffic, mail" +\s-1SMM\s0:2\*(tx13, \s-1SMM\s0:7\*(tx7 +.X "trailer encapsulation" +arp(4p), vv(4), arp(8c), ifconfig(8c), \s-1SMM\s0:13\*(tx27,30, \s-1SMM\s0:15\*(tx12,26 +.X "trailer packets" +arp(4p), vv(4), \s-1SMM\s0:13\*(tx27 +.X "trailer protocol header" +\s-1SMM\s0:15\*(tx26 +.X "trailer protocols" +\s-1SMM\s0:15\*(tx12,14,26 +.X "trailing blanks" +dd(1), diff(1), \s-1USD\s0:29\*(tx6, ar(5), \s-1PS1\s0:2\*(tx26, \s-1PS1\s0:4\*(tx32,48, \s-1PS2\s0:4\*(tx7, \s-1PS2\s0:10\*(tx23,38 +.X "trailing characters" +\s-1USD\s0:31\*(tx12 +.X "trailing comments" +\s-1PS1\s0:4\*(tx39, \s-1PS2\s0:6\*(tx6 +.X "trampoline code" +sigreturn(2) +.X "transfer commands" +\s-1SMM\s0:10\*(tx23..24 +.X "transfer files to and from a remote machine" +tftp(1c) +.X "transfer rates" +iostat(1), \s-1SMM\s0:9\*(tx9, \s-1SMM\s0:14\*(tx3,6,9 +.X "transfer table entries" +\s-1PS2\s0:9\*(tx82,128 +.X "transfer tables" +\s-1PS2\s0:9\*(tx51,80,82,116,128 +.X "transferring files" +ftp(1c)\*(tx4, uucico(8c), \s-1SMM\s0:12\*(tx23 +.X "transfers, dma" +dh(4), dhu(4), dmf(4), dmz(4), en(4) +.X "transient errors" +\s-1SMM\s0:7\*(tx38, \s-1SMM\s0:12\*(tx15 +.X "translation, character" +tr(1), \s-1USD\s0:24\*(tx4,19 +.X "translation, filename character" +ftp(1c)\*(tx4 +.X "translation, name" +systat(1)\*(tx2, \s-1SMM\s0:13\*(tx11 +.X "translator panics" +\s-1PS1\s0:4\*(tx25 +.X "translator, Pascal" +\s-1PS1\s0:4\*(tx7,21..24 +.X "transliterate" +csh(1)\*(tx12 +.X "translit(s, f, t)" +\s-1PS1\s0:17\*(tx5 +.X "transmit a message" +send(2) +.X "transparent throughput" +\s-1USD\s0:24\*(tx20 +.X "transport layer" +inet(4f), intro(4n)\*(tx2, ns(4f), \s-1SMM\s0:15\*(tx3 +.X "transport service" +\s-1USD\s0:8\*(tx73 +.X "transport system" +\s-1USD\s0:8\*(tx64 +.X "transpose a two dimensional matrix" +\s-1PS1\s0:2\*(tx13 +.X "transpose two lines" +\s-1USD\s0:17\*(tx14 +.X "transpose\*(txcharacters (C\*(txT)" +\s-1USD\s0:17\*(tx46 +.X "transposing two characters" +\s-1USD\s0:17\*(tx14 +.X "trap \*(tx Bourne shell command" +sh(1)\*(tx1,5, \s-1USD\s0:3\*(tx19..20 +.X "trap, diversion" +\s-1USD\s0:24\*(tx11,15..17 +.X "trap, footer" +\s-1USD\s0:24\*(tx28,30..31 +.X "trap, Install a diversion" +\s-1USD\s0:24\*(tx17 +.X "trap position" +\s-1USD\s0:24\*(tx11,13,16..17,28 +.X "trap, trace" +signal(3c), crash(8v)\*(tx2 +.X "traper \*(tx trap arithmetic errors" +traper(3f) +.X "trapov \*(tx trap and repair floating point overflow" +trapov(3f) +.X "trapping specified signals" +\s-1PS1\s0:11\*(tx6 +.X "tread \*(tx f77 tape I/O" +topen(3f) +.X "tree building" +\s-1SMM\s0:19\*(tx8 +.X "tree, directory" +\s-1SMM\s0:12\*(tx4 +.X "tree nodes" +\s-1SMM\s0:19\*(tx5,13 +.X "tree structure" +\s-1USD\s0:4\*(tx43 +.X "tree, walking a" +\s-1PS2\s0:6\*(tx30 +.X "trees, expression" +\s-1PS1\s0:9\*(tx7, \s-1PS2\s0:6\*(tx30, \s-1SMM\s0:19\*(tx3..5,8,10..11,14..16,19,23,26 +.X "trek \*(tx trekkie game" +trek(6) +.X "trewin \*(tx f77 tape I/O" +topen(3f) +.X "trigonometric functions" +sin(3m) +.X "Trivial File Transfer Protocol" +tftp(1c), tftpd(8c) +.X "trman" +\s-1SMM\s0:12\*(tx12 +.X "troff" +troff(1), \s-1USD\s0:20\*(tx1, \s-1USD\s0:22\*(tx5,16..17, \s-1USD\s0:23\*(tx8, \s-1USD\s0:24, \s-1USD\s0:26\*(tx2, \s-1USD\s0:27\*(tx1,10 +.X "Troff and Nroff, Using the \*(txms Macros with" +\s-1USD\s0:20 +.X "Troff commands, removing" +deroff(1) +.X "Troff commands within tables" +\s-1USD\s0:28\*(tx5 +.X "troff comment" +\s-1USD\s0:31\*(tx3 +.X "troff default pointsize" +\s-1USD\s0:24\*(tx13 +.X "troff, device\*(txindependent (see also ditroff)" +lpr(1), \s-1USD\s0:23\*(tx11, \s-1USD\s0:24\*(tx2, \s-1USD\s0:25\*(tx1, printcap(5) +.X "troff, fonts for" +hier(7)\*(tx4 +.X "troff interpreter" +deroff(1) +.X "troff macro definitions" +me(7)\*(tx1, ms(7)\*(tx1, \s-1USD\s0:24\*(tx15, \s-1USD\s0:31\*(tx8 +.X "troff, macro packages for" +hier(7)\*(tx4, intro(7) +.X "troff \*(txms" +ms(7)\*(tx1, \s-1USD\s0:20\*(tx6, \s-1USD\s0:27\*(tx10 +.X "troff naming conventions for characters" +\s-1USD\s0:24\*(tx33 +.X "troff, nroff \*(tx text formatting and typesetting" +troff(1), \s-1USD\s0:24 +.X "troff number registers" +\s-1USD\s0:28\*(tx7 +.X "troff number registers, list of" +\s-1USD\s0:24\*(tx7 +.X "troff request crossreference" +\s-1USD\s0:24\*(tx5 +.X "troff requests" +me(7)\*(tx1, ms(7)\*(tx1, \s-1USD\s0:28\*(tx6 +.X "TROFF Tutorial" +\s-1USD\s0:25 +.X "troff tutorial examples" +\s-1USD\s0:24\*(tx28 +.X "troff width table for a font" +vwidth(1) +.X "trojan horses" +\s-1SMM\s0:12\*(tx7 +.X "trpfpe, fpecnt \*(tx trap and repair floating point fault" +trpfpe(3f) +.X "trpt \*(tx transliterate protocol trace" +trpt(8c), \s-1SMM\s0:1\*(tx50, \s-1SMM\s0:12\*(tx22 +.X "trsp \*(tx transliterate sequenced packet protocol trace" +trsp(8c) +.X "true \*(tx provide truth values" +false(1) +.X "truncate \*(tx truncate a file to a specified length" +truncate(2) +.X "truncate(path, length)" +\s-1PS1\s0:6\*(tx31 +.X "truncating files" +open(2), truncate(2), fopen(3s) +.X "truncation, open with" +\s-1PS1\s0:6\*(tx28 +.X "trusted hosts" +rlogind(8c), rshd(8c), \s-1SMM\s0:1\*(tx42 +.X "trusted users" +\s-1SMM\s0:7\*(tx19 +.X "truth values" +false(1), true(1) +.X "ts \*(tx TS\*(tx11 magtape interface" +mtio(4), ts(4), \s-1SMM\s0:1\*(tx5 +.X "tset \*(tx terminal dependent initialization" +csh(1)\*(tx1, tset(1)\*(tx1, \s-1USD\s0:4\*(tx3,44, \s-1USD\s0:15\*(tx2, termcap(5)\*(tx11, \s-1SMM\s0:12\*(tx12 +.X "tskipf \*(tx f77 tape I/O" +topen(3f) +.X "tsort \*(tx topological sort" +lorder(1), tsort(1) +.X "TSP message, structure of a" +\s-1SMM\s0:22\*(tx2 +.X "tstate \*(tx f77 tape I/O" +topen(3f) +.X "tstp()" +\s-1PS1\s0:18\*(tx17 +.X "tty" +\s-1USD\s0:4\*(tx44, \s-1SMM\s0:12\*(tx18 +.X "tty \*(tx general terminal interface" +tty(4)\*(tx1 +.X "tty \*(tx get terminal name" +tty(1) +.X "tty driver" +csh(1)\*(tx1, bk(4), tty(4)\*(tx1, gettytab(5)\*(tx2 +.X "tty group ID" +intro(2)\*(tx5 +.X "tty line" +getttyent(3), ttys(5), getty(8), slattach(8c), \s-1SMM\s0:6\*(tx3 +.X "tty mode flags" +gettytab(5)\*(tx1 +.X "tty modes" +\s-1PS1\s0:18\*(tx6..7,13 +.X "tty names" +gettytab(5)\*(tx2, \s-1SMM\s0:1\*(tx33 +.X "tty operations" +fcntl(2) +.X "tty state" +\s-1PS1\s0:18\*(tx17 +.X "tty stats" +\s-1PS1\s0:18\*(tx17 +.X "tty structure" +\s-1SMM\s0:13\*(tx9..10 +.X "ttyent, struct" +getttyent(3) +.X "ttynam, isatty \*(tx find name of a terminal port" +ttynam(3f) +.X "ttyname, isatty, ttyslot \*(tx find name of a terminal" +ttyname(3) +.X "ttys \*(tx terminal initialization data" +getttyent(3), ttys(5), init(8), \s-1SMM\s0:12\*(tx18..19 +.X "ttyslot \*(tx find name of a terminal" +ttyname(3), \s-1SMM\s0:12\*(tx17..18 +.X "tu \*(tx VAX\*(tx11/730 and VAX\*(tx11/750 TU58 console cassette interface" +tu(4), \s-1SMM\s0:1\*(tx5 +.X "TU45" +mtio(4) +.X "TU58 console cassette, VAX 11/730 and 11/750" +tu(4), uu(4), arff(8v), reboot(8)\*(tx2, \s-1SMM\s0:1\*(tx9 +.X "TU\*(tx77" +ht(4) +.X "TU\*(tx78" +mt(4) +.X "TU81" +mtio(4), tmscp(4), \s-1SMM\s0:13\*(tx2,33 +.X "tunefs \*(tx tune up an existing file system" +tunefs(8), \s-1SMM\s0:12\*(tx23 +.X "Tutorial, Advanced 4.3BSD IPC" +\s-1PS1\s0:8 +.X "Tutorial Introduction to the UNIX Text Editor" +\s-1USD\s0:12 +.X "tutorial, interactive jove" +jove(1)\*(tx3 +.X "tutorial, mh" +\s-1USD\s0:8\*(tx4 +.X "Tutorial, TROFF" +\s-1USD\s0:25 +.X "Twinkle" +\s-1PS1\s0:18\*(tx22,27 +.X "two\*(txcolumn format (see also multicolumn)" +ms(7)\*(tx1, \s-1USD\s0:20\*(tx1 +.X "twrite \*(tx f77 tape I/O" +topen(3f) +.X "type casts" +\s-1PS1\s0:9\*(tx4, \s-1SMM\s0:19\*(tx9 +.X "type characters" +topen(3f), \s-1SMM\s0:1\*(tx32 +.X "type checking" +stab(5), \s-1PS1\s0:4\*(tx43, \s-1PS1\s0:9\*(tx1,4 +.X "type checking rules of Pascal" +pc(1) +.X "type clashes" +\s-1PS1\s0:4\*(tx22..24 +.X "type coercion" +\s-1SMM\s0:12\*(tx2 +.X "type command" +\s-1USD\s0:7\*(tx2 +.X "type conversions" +\s-1SMM\s0:19\*(tx9 +.X "type, datastream" +\s-1PS1\s0:8\*(tx36..39 +.X "type, default" +f77(1)\*(tx2, ftp(1c)\*(tx1,5 +.X "type, file" +file(1), \s-1PS1\s0:3\*(tx3, \s-1PS1\s0:6\*(tx29, \s-1PS1\s0:10\*(tx9, restore(8)\*(tx2 +.X "type, file transfer" +ftp(1c)\*(tx1,5 +.X "type identifier" +\s-1PS1\s0:4\*(tx24,50 +.X "type name description" +\s-1PS1\s0:18\*(tx19 +.X "type names" +\s-1PS1\s0:1\*(tx7..8,19, \s-1PS2\s0:3\*(tx3, \s-1PS2\s0:6\*(tx9, \s-1PS2\s0:9\*(tx4 +.X "type sizes" +\s-1USD\s0:22\*(tx18, \s-1USD\s0:23\*(tx2, \s-1USD\s0:24\*(tx8,13, \s-1USD\s0:28\*(tx4 +.X "type specifiers" +\s-1PS1\s0:1\*(tx13,24, \s-1PS2\s0:10\*(tx8, \s-1SMM\s0:19\*(tx17 +.X "type statements" +\s-1PS1\s0:2\*(tx7 +.X "type words" +\s-1SMM\s0:19\*(tx4..5,8..9 +.X "typeahead" +csh(1)\*(tx2 +.X "typedef" +ctags(1), \s-1PS1\s0:1\*(tx20, \s-1SMM\s0:13\*(tx2 +.X "typedef names" +\s-1PS1\s0:1\*(tx13,17,25, \s-1SMM\s0:19\*(tx7..8 +.X "typedef struct" +\s-1PS1\s0:1\*(tx20 +.X "types \*(tx primitive system data types" +types(5) +.X "types, arithmetic" +\s-1PS1\s0:1\*(tx4,8,18, \s-1PS2\s0:6\*(tx11, \s-1PS2\s0:10\*(tx7,34,36,39,41,77 +.X "types, complex" +\s-1SMM\s0:19\*(tx25 +.X "types, data" +\s-1PS1\s0:1\*(tx19, \s-1PS1\s0:2\*(tx6, \s-1PS1\s0:3\*(tx3, \s-1PS1\s0:5\*(tx6,10, \s-1PS2\s0:6\*(tx11, \s-1PS2\s0:9\*(tx3..4,76,78..80,108, \s-1PS2\s0:10\*(tx32 +.X "types, descriptor" +\s-1PS1\s0:6\*(tx25,36 +.X "types, function" +\s-1PS2\s0:9\*(tx4,10, \s-1PS2\s0:10\*(tx76, \s-1SMM\s0:19\*(tx12 +.X "types, socket" +\s-1PS1\s0:6\*(tx33, \s-1PS1\s0:7\*(tx8, \s-1PS1\s0:8\*(tx3..4,35 +.X "types, stab \*(tx symbol table" +stab(5) +.X "types, system standard" +\s-1PS1\s0:6\*(tx5 +.X "typescript" +script(1) +.X "typesetting (see troff)" +.X "typesetting mathematics" +eqn(1), \s-1USD\s0:26, \s-1USD\s0:27 +.X "Typesetting Mathematics \*(tx User's Guide" +\s-1USD\s0:27\*(tx1 +.X "typesetting, troff, nroff \*(tx text formatting and" +troff(1) +.X "typing commands" +\s-1USD\s0:1\*(tx1..2 +.X "typing errors" +csh(1)\*(tx3, \s-1USD\s0:1\*(tx3, \s-1USD\s0:4\*(tx13,38, \s-1USD\s0:12\*(tx5, \s-1USD\s0:14\*(tx6,9,14 +.L U +.X "u. area" +core(5) +.X "ualarm \*(tx schedule signal after specified time" +ualarm(3), \s-1SMM\s0:12\*(tx17 +.X "uba (see also UNIBUS)" +\s-1SMM\s0:13\*(tx19,33 +.X "uba_ctlr structure" +\s-1SMM\s0:13\*(tx18 +.X "uba_device structure" +\s-1SMM\s0:2\*(tx17..21, \s-1SMM\s0:13\*(tx18 +.X "uba_driver structure" +\s-1SMM\s0:2\*(tx17,21 +.X "UCI\*(txLisp" +liszt(1), \s-1PS2\s0:9\*(tx4,83,140 +.X "uda \*(tx UDA\*(tx50 disk controller interface" +uda(4)\*(tx1, \s-1SMM\s0:1\*(tx5,28 +.X "UDA\*(tx50/RA" +reboot(8)\*(tx2 +.X "udp \*(tx Internet User Datagram Protocol" +resolver(3), inet(4f), ip(4p), udp(4p), \s-1SMM\s0:1\*(tx38, \s-1SMM\s0:11\*(tx2,8, \s-1SMM\s0:13\*(tx23..24,27, \s-1SMM\s0:15\*(tx16,18,22 +.X "UDP port" +udp(4p) +.X "UDP user datagram protocol" +\s-1PS1\s0:6\*(tx33 +.X "uid (see also user id)" +uucp(1c), quota(2), getpw(3c), uucico(8c), \s-1SMM\s0:17\*(tx1..2 +.X "uid, effective" +\s-1SMM\s0:17\*(tx1 +.X "uid, real" +execve(2), \s-1SMM\s0:10\*(tx14..15, \s-1SMM\s0:17\*(tx1 +.X "UIOCCMD" +pty(4) +.X "ul \*(tx do underlining" +ul(1) +.X "ul request" +\s-1USD\s0:22\*(tx4,16, \s-1USD\s0:23\*(tx6 +.X "ULP" +math(3m)\*(tx1, sinh(3m), sqrt(3m) +.X "Ultrix" +\s-1SMM\s0:11\*(tx2 +.X "umask \*(tx Bourne shell command" +cp(1), csh(1)\*(tx16, sh(1)\*(tx1, \s-1USD\s0:17\*(tx32, mknod(2), open(2), \s-1SMM\s0:10\*(tx2 +.X "umask \*(tx set file creation mode mask" +umask(2) +.X "umlaut" +ms(7)\*(tx3, \s-1USD\s0:21\*(tx3, \s-1USD\s0:23\*(tx9 +.X "umodem" +\s-1SMM\s0:12\*(tx23 +.X "umount \*(tx unmount file system" +mount(2), mtab(5), mount(8) +.X "unabbreviate word" +\s-1USD\s0:16\*(tx11 +.X "unalias" +csh(1)\*(tx16 +.X "unary minus" +\s-1PS1\s0:15\*(tx15,24,29 +.X "unary operators" +\s-1PS1\s0:1\*(tx6..7,30..32, \s-1PS1\s0:15\*(tx14..15, \s-1PS2\s0:6\*(tx11, \s-1PS2\s0:10\*(tx28, \s-1SMM\s0:19\*(tx4,18 +.X "unbind\*(txkey" +\s-1USD\s0:17\*(tx46 +.X "unbuffered files" +\s-1SMM\s0:12\*(tx16 +.X "unbuffered output stream" +setbuf(3s) +.X "uncompact, compact and" +\s-1SMM\s0:1\*(tx23 +.X "unctrl(ch)" +\s-1PS1\s0:18\*(tx16 +.X "undefine" +\s-1PS1\s0:17\*(tx3 +.X "undefined symbol" +ld(1) +.X "undefined variables" +\s-1USD\s0:4\*(tx26 +.X "underdot" +\s-1USD\s0:21\*(tx3 +.X "underflow threshold" +ieee(3m) +.X "underline" +window(1)\*(tx5 +.X "underline a word" +\s-1USD\s0:20\*(tx4 +.X "underline font" +\s-1USD\s0:23\*(tx6, \s-1USD\s0:24\*(tx19..20 +.X "underline, .u" +\s-1USD\s0:23\*(tx6 +.X "underlining" +colcrt(1), more(1)\*(tx1, \s-1USD\s0:20\*(tx4, \s-1USD\s0:22\*(tx4,17, \s-1USD\s0:24\*(tx19, termcap(5)\*(tx9 +.X "underlining, ul \*(tx do" +ul(1) +.X "underscore character" +csh(1)\*(tx6, \s-1USD\s0:17\*(tx47 +.X "underscores" +ul(1) +.X "undivert" +\s-1PS1\s0:17\*(tx4 +.X "undo command" +ed(1)\*(tx5, \s-1USD\s0:13\*(tx2, \s-1USD\s0:14\*(tx15, \s-1USD\s0:15\*(tx8,16, \s-1USD\s0:16\*(tx11, \s-1USD\s0:17\*(tx6 +.X "undo drastic changes to a file" +\s-1USD\s0:17\*(tx15 +.X "unexpand spaces to tabs" +expand(1) +.X "ungetc \*(tx push character back into input stream" +fseek(3s), ungetc(3s) +.X "unhash" +csh(1)\*(tx16 +.X "UNIBUS" +autoconf(4), dh(4), dhu(4), dmf(4), dmz(4), ec(4), intro(4), mtio(4), uu(4), va(4), config(8), format(8v)\*(tx1, reboot(8), \s-1SMM\s0:1\*(tx2,5,24,57, \s-1SMM\s0:2\*(tx16..22, \s-1SMM\s0:12\*(tx17, \s-1SMM\s0:13\*(tx2,29, \s-1SMM\s0:14\*(tx9, \s-1SMM\s0:15\*(tx13..14 +.X "UNIBUS adapter error" +dh(4), dhu(4), dmf(4), dmz(4) +.X "UNIBUS adapters" +autoconf(4), \s-1SMM\s0:1\*(tx4, \s-1SMM\s0:2\*(tx9,17,21, \s-1SMM\s0:12\*(tx17 +.X "UNIBUS address" +ec(4), \s-1SMM\s0:2\*(tx20, \s-1SMM\s0:13\*(tx33 +.X "UNIBUS controllers" +\s-1SMM\s0:1\*(tx5, \s-1SMM\s0:2\*(tx9..10,13,17,21 +.X "UNIBUS device drivers and related code, /sys/vaxuba VAX" +\s-1SMM\s0:1\*(tx26 +.X "UNIBUS devices" +autoconf(4), en(4), intro(4), \s-1SMM\s0:1\*(tx57,64, \s-1SMM\s0:2\*(tx16 +.X "UNIBUS disks" +format(8v)\*(tx1, reboot(8)\*(tx2, \s-1SMM\s0:1\*(tx5, \s-1SMM\s0:2\*(tx12 +.X "UNIBUS interfaces" +\s-1SMM\s0:15\*(tx12 +.X "UNIBUS memory" +\s-1SMM\s0:2\*(tx20, \s-1SMM\s0:13\*(tx18,30,33 +.X "UNIBUS resets" +hk(4), up(4)\*(tx3, \s-1SMM\s0:13\*(tx18..19,30,33, \s-1SMM\s0:15\*(tx14 +.X "UNIBUS resources" +ex(4), hy(4), uda(4)\*(tx2, \s-1SMM\s0:2\*(tx21..22, \s-1SMM\s0:13\*(tx29, \s-1SMM\s0:15\*(tx13..14 +.X "unifdef \*(tx remove ifdef'ed lines" +unifdef(1) +.X "uninitialized data" +a.out(5)\*(tx1 +.X "unions" +\s-1PS1\s0:1\*(tx7,25,28 +.X "uniq \*(tx report repeated lines in a file" +uniq(1) +.X "unique file name" +mktemp(3), \s-1PS1\s0:17\*(tx5 +.X "Unit in the Last Place (see ULP)" +math(3m)\*(tx2 +.X "unit numbers" +types(5), \s-1PS1\s0:2\*(tx25..26, \s-1PS1\s0:3\*(tx4,7..9, format(8v)\*(tx1, reboot(8)\*(tx2, \s-1SMM\s0:1\*(tx3..5,32, \s-1SMM\s0:2\*(tx8,21,26, \s-1SMM\s0:12\*(tx7,20, \s-1SMM\s0:13\*(tx27,34 +.X "units \*(tx conversion program" +units(1) +.X "units, Basic" +\s-1USD\s0:23\*(tx1, \s-1USD\s0:24\*(tx8 +.X "units digits" +\s-1USD\s0:28\*(tx3, \s-1USD\s0:34\*(tx5 +.X "units, logical" +\s-1PS1\s0:2\*(tx12, \s-1PS1\s0:3 +.X "units, output" +\s-1PS1\s0:2\*(tx24, \s-1PS2\s0:6\*(tx21..22,28 +.X "UNIX 32/V" +\s-1PS2\s0:2 +.X "UNIX, Berkeley" +\s-1USD\s0:1\*(tx2..3 +.X "UNIX command interpreter (see also shell)" +\s-1USD\s0:2\*(tx8 +.X "UNIX command, system \*(tx execute a" +system(3f) +.X "UNIX commands from the editor" +\s-1USD\s0:14\*(tx20 +.X "UNIX domain" +bind(2), connect(2), \s-1PS1\s0:6\*(tx36, \s-1PS1\s0:7\*(tx4,8..9,21..22, \s-1PS1\s0:8\*(tx3..7, \s-1SMM\s0:12\*(tx9 +.X "UNIX domain names" +\s-1PS1\s0:7\*(tx8,10..11, \s-1PS1\s0:8\*(tx17 +.X "UNIX domain sockets" +window(1)\*(tx1, getsockname(2), socketpair(2), \s-1PS1\s0:7\*(tx8, \s-1PS1\s0:8\*(tx5,41, \s-1SMM\s0:15\*(tx4 +.X "UNIX domain stream connection" +\s-1PS1\s0:7\*(tx20..21 +.X "UNIX, features of" +\s-1USD\s0:1\*(tx13, \s-1USD\s0:2\*(tx10, \s-1USD\s0:14\*(tx3 +.X "UNIX file name" +\s-1PS1\s0:4\*(tx44 +.X "UNIX file names with Pascal file variables, associations of" +\s-1PS1\s0:4\*(tx31 +.X "UNIX file system, original 512 byte" +\s-1SMM\s0:14\*(tx2 +.X "UNIX file system (see also file system)" +\s-1PS1\s0:6\*(tx23, \s-1PS1\s0:8\*(tx2, \s-1PS2\s0:4\*(tx1,6, \s-1PS2\s0:10\*(tx49, \s-1SMM\s0:1\*(tx4, \s-1SMM\s0:14\*(tx2..5,10,13 +.X "UNIX files and commands, introduction to" +\s-1USD\s0:2\*(tx1 +.X "UNIX For Beginners" +\s-1USD\s0:1 +.X "UNIX Implementation (describes version 7)" +\s-1PS2\s0:4, \s-1PS2\s0:5 +.X "UNIX, information about general features of" +\s-1PS1\s0:4\*(tx2 +.X "UNIX, introduction to" +\s-1USD\s0:1 +.X "UNIX I/O System (describes version 7)" +\s-1PS2\s0:5 +.X "UNIX kernel (see also kernel)" +\s-1PS1\s0:3\*(tx9, \s-1PS2\s0:4\*(tx1,9 +.X "UNIX manual" +\s-1USD\s0:4\*(tx40 +.X "UNIX Programming" +\s-1PS2\s0:3 +.X "UNIX Reading List" +\s-1USD\s0:1\*(tx13, \s-1PS1\s0:4\*(tx2 +.X "UNIX, Security of" +\s-1SMM\s0:17 +.X "UNIX Shell, Introduction to the" +\s-1USD\s0:3 +.X "UNIX shell (see also shell, cshell)" +\s-1USD\s0:3 +.X "UNIX Text Editor, Tutorial Introduction to the" +\s-1USD\s0:12 +.X "UNIX Time\*(txSharing System (overview of version 7)" +\s-1PS2\s0:1 +.X "UNIX, versions of" +\s-1USD\s0:1\*(tx14, \s-1USD\s0:17\*(tx41, setbuf(3s), autoconf(4), \s-1PS1\s0:6\*(tx16..17, \s-1SMM\s0:2\*(tx23, \s-1SMM\s0:7\*(tx34 +.X "UNIX virtual machine" +\s-1PS1\s0:6\*(tx6 +.X "Un\*(txkilling" +\s-1USD\s0:17\*(tx8 +.X "unlimit" +csh(1)\*(tx16 +.X "unlink \*(tx remove a directory entry" +stat(2)\*(tx2, unlink(2), unlink(3f), lpd(8), \s-1SMM\s0:12\*(tx14 +.X "unlink(path)" +\s-1PS1\s0:6\*(tx29 +.X "unlock" +flock(2) +.X "unmap" +\s-1USD\s0:16\*(tx11 +.X "unmasking signals" +sigreturn(2) +.X "unmount(dir)" +\s-1PS1\s0:6\*(tx23 +.X "unnumbered section headings" +\s-1USD\s0:23\*(tx2 +.X "unpaddable space" +\s-1USD\s0:22\*(tx10 +.X "unpaddable white space" +\s-1USD\s0:25\*(tx6 +.X "unprintable characters" +tip(1c)\*(tx2, sa(8) +.X "unput(c)" +\s-1PS1\s0:16\*(tx6 +.X "unreachable statements" +lint(1), \s-1PS1\s0:4\*(tx24, \s-1PS1\s0:9\*(tx3 +.X "unresolved external reference" +ld(1) +.X "Unseen\*(txSequence" +\s-1USD\s0:8\*(tx85,101 +.X "unsent messages" +getsockopt(2) +.X "unset commands" +csh(1)\*(tx6,16, \s-1USD\s0:4\*(tx24 +.X "unsetenv command" +csh(1)\*(tx16 +.X "unsigned decimal" +od(1) +.X "unsigned hexadecimal" +od(1) +.X "unsigned octal" +od(1) +.X "unstructured devices" +\s-1PS1\s0:6\*(tx39 +.X "unsuperscript" +\s-1USD\s0:23\*(tx9 +.X "unuse \*(tx specify a group of delimitors to no longer be used" +\s-1PS2\s0:10\*(tx44 +.X "unused arguments in functions" +lint(1) +.X "unused variables and functions" +\s-1PS1\s0:9\*(tx2 +.X "up \*(tx unibus storage module controller/drives" +up(4) +.X "update \*(tx periodically update the super blocks" +update(8) +.X "updating, screen" +\s-1PS1\s0:18\*(tx3,22 +.X "upgrading a 4.2BSD system" +\s-1SMM\s0:1\*(tx18 +.X "upper case and lower case letters" +\s-1USD\s0:17\*(tx10 +.X "upper case letter" +ctype(3) +.X "upper case mapping" +tip(1c)\*(tx3 +.X "upper case only terminals" +\s-1USD\s0:15\*(tx20, tty(4)\*(tx4 +.X "uppercase letters" +tty(4)\*(tx4, \s-1PS1\s0:18\*(tx19 +.X "uptime \*(tx show how long system has been up" +ruptime(1c), uptime(1) +.X "urgent condition" +\s-1PS1\s0:6\*(tx13 +.X "urgent condition present on socket" +signal(3c) +.X "urgent data" +telnet(1c)\*(tx2, \s-1PS1\s0:8\*(tx24..25, \s-1SMM\s0:13\*(tx26, \s-1SMM\s0:15\*(tx25 +.X "usage, disc" +quota(1), quotacheck(8), repquota(8) +.X "usage, disk" +du(1), \s-1USD\s0:4\*(tx17 +.X "usage, memory" +systat(1)\*(tx2, \s-1USD\s0:4\*(tx24, vtimes(3c), sa(8) +.X "usage, resource" +execve(2), \s-1SMM\s0:1\*(tx50, \s-1SMM\s0:14\*(tx2 +.X "usage, word" +\s-1USD\s0:32\*(tx1..2,5..6,10 +.X "use \*(tx specify a group of delimitors to be used" +\s-1PS2\s0:10\*(tx44 +.X "Usenet" +\s-1USD\s0:9, \s-1USD\s0:10, \s-1USD\s0:11\*(tx2, \s-1SMM\s0:12\*(tx12 +.X "USENET administrators" +\s-1USD\s0:10\*(tx1..5 +.X "USENET etiquette" +\s-1USD\s0:10\*(tx1 +.X "USENET sites" +\s-1USD\s0:10\*(tx2..3, \s-1SMM\s0:10\*(tx1 +.X "USENET Version B Installation" +\s-1SMM\s0:10 +.X "user accounts" +\s-1SMM\s0:1\*(tx1,44 +.X "user and group IDs (see ids)" +login(1), execve(2), \s-1PS1\s0:6\*(tx8, \s-1SMM\s0:13\*(tx2,4 +.X "user code" +\s-1PS1\s0:15\*(tx1,9, \s-1PS2\s0:10\*(tx63,74 +.X "user context" +\s-1USD\s0:8\*(tx2,89 +.X "user contributed software" +\s-1SMM\s0:1\*(tx17,52, \s-1SMM\s0:12\*(tx8,23 +.X "user customization" +\s-1USD\s0:8\*(tx85 +.X "user data segment" +\s-1PS2\s0:4\*(tx2..3 +.X "user\*(txdefined sequences" +\s-1USD\s0:8\*(tx98 +.X "user defined signal" +signal(3c) +.X "user environment" +su(1), environ(7), \s-1SMM\s0:7\*(tx36 +.X "USER environment variable" +csh(1)\*(tx14,17, environ(7), USERFILE(5), \s-1SMM\s0:12\*(tx12 +.X "user file systems" +adduser(8), fsck(8), \s-1SMM\s0:1\*(tx16,18,28,31, \s-1SMM\s0:14\*(tx5 +.X "user identity (see id)" +ftp(1c)\*(tx7, getuid(2), rshd(8c) +.X "user id" +passwd(5), \s-1PS1\s0:6\*(tx8,14,29,31, \s-1PS2\s0:1\*(tx4,12, \s-1PS2\s0:3\*(tx15, \s-1PS2\s0:9\*(tx84, \s-1PS2\s0:10\*(tx46, adduser(8) +.X "user information" +finger(1), \s-1PS2\s0:10\*(tx64,67,74, \s-1SMM\s0:10\*(tx4, \s-1SMM\s0:12\*(tx20 +.X "user interfaces" +\s-1SMM\s0:10\*(tx19..20, \s-1SMM\s0:11\*(tx2, \s-1SMM\s0:14\*(tx11 +.X "user level" +\s-1SMM\s0:13\*(tx28, \s-1SMM\s0:15\*(tx22 +.X "user level routing policies" +\s-1SMM\s0:15\*(tx22 +.X "user memory" +ps(4), \s-1SMM\s0:13\*(tx16 +.X "user mode" +systat(1)\*(tx2, getrusage(2), \s-1SMM\s0:11\*(tx13..14 +.X "user name directory service" +whois(1) +.X "user names" +csh(1)\*(tx2, finger(1), login(1), lpq(1), lprm(1), passwd(1), rcp(1c), w(1), who(1), mailaddr(7)\*(tx2, \s-1USD\s0:7\*(tx5,13, rcmd(3), fingerd(8c), ftpd(8c), renice(8), rexecd(8c), rshd(8c), \s-1SMM\s0:7\*(tx32, \s-1SMM\s0:10\*(tx3,7, \s-1SMM\s0:12\*(tx15, \s-1SMM\s0:16\*(tx6, \s-1SMM\s0:18\*(tx5, \s-1SMM\s0:21\*(tx3 +.X "user processes" +getgroups(2), setgroups(2), ik(4), ps(4), spp(4p), \s-1PS1\s0:6\*(tx37, \s-1PS1\s0:8\*(tx7, \s-1PS2\s0:4\*(tx1..4, pstat(8)\*(tx3, \s-1SMM\s0:5\*(tx5, \s-1SMM\s0:15\*(tx22 +.X "user programs" +\s-1USD\s0:11\*(tx13, \s-1SMM\s0:1\*(tx48, \s-1SMM\s0:5\*(tx4, \s-1SMM\s0:14\*(tx6,9,11..12 +.X "user request routine" +\s-1SMM\s0:15\*(tx15 +.X "user structure" +systat(1)\*(tx2,5, ptrace(2), core(5), \s-1SMM\s0:1\*(tx23, \s-1SMM\s0:2\*(tx32, \s-1SMM\s0:13\*(tx5..7,16 +.X "user time" +vmstat(1), \s-1USD\s0:4\*(tx24, getrusage(2), etime(3f), times(3c), vtimes(3c) +.X "user with least privilege" +\s-1SMM\s0:1\*(tx21 +.X "USERFILE \*(tx UUCP pathname permissions file" +L.cmds(5), USERFILE(5), \s-1SMM\s0:9\*(tx4,7,17..21 +.X "users \*(tx compact list of users who are on the system" +users(1) +.X "users, adding new" +adduser(8) +.X "users, trusted" +\s-1SMM\s0:7\*(tx19 +.X "users, wall \*(tx write to all" +wall(1) +.X "users, well\*(txknown" +\s-1SMM\s0:1\*(tx21 +.X "users, Writing to other (see also mail, messages)" +\s-1USD\s0:1\*(tx4 +.X "usersetup \*(tx setup users file" +\s-1PS2\s0:10\*(tx62 +.X "USG systems (see also System V)" +L.aliases(5), \s-1SMM\s0:10\*(tx5,10 +.X "usleep \*(tx suspend execution for interval" +usleep(3), \s-1SMM\s0:12\*(tx17 +.X "usrreq routine" +\s-1SMM\s0:13\*(tx13, \s-1SMM\s0:15\*(tx15,17,25 +.X "ut \*(tx UNIBUS TU45 tri\*(txdensity tape drive interface" +ut(4) +.X "utilities, data and maintenance" +hier(7)\*(tx1 +.X "utilities, source code for" +hier(7)\*(tx5 +.X "utilities, system (see man sections 1 and 8)" +\s-1SMM\s0:1\*(tx18, \s-1SMM\s0:14\*(tx6,13 +.X "utility programs" +hier(7)\*(tx1 +.X "utime \*(tx set file times" +utime(3c) +.X "utimes \*(tx set file times" +stat(2), utimes(2) +.X "utimes(path, tvp)" +\s-1PS1\s0:6\*(tx30 +.X "utmp, wtmp \*(tx login record" +utmp(5) +.X "uu \*(tx TU58/DECtape II UNIBUS cassette interface" +uu(4) +.X "uucico \*(tx copy in, copy out" +\s-1SMM\s0:9\*(tx5,21 +.X "uucico, Changes to" +\s-1SMM\s0:9\*(tx10 +.X "uucico program" +\s-1SMM\s0:9\*(tx3..6,9,19..20, \s-1SMM\s0:21\*(tx2 +.X "uucico, uucpd \*(tx transfer files queued by uucp or uux" +uucico(8c) +.X "uuclean \*(tx uucp spool directory cleanup" +uuclean(8c), \s-1SMM\s0:9\*(tx8 +.X "uucp \*(tx unix to unix copy" +mail(1)\*(tx2, uucp(1c), mailaddr(7), \s-1USD\s0:7\*(tx10, \s-1USD\s0:9\*(tx1, \s-1USD\s0:10\*(tx2, L\*(txdevices(5), L.cmds(5), L.sys(5), USERFILE(5), uucico(8c), uupoll(8c), uusnap(8c), \s-1SMM\s0:7\*(tx4,24,36, \s-1SMM\s0:9\*(tx2,21, \s-1SMM\s0:10\*(tx16..18,21, \s-1SMM\s0:12\*(tx12, \s-1SMM\s0:16\*(tx1 +.X "uucp account" +\s-1SMM\s0:1\*(tx36 +.X "uucp administration" +uucp(1c), L.sys(5)\*(tx1, USERFILE(5), uuxqt(8c), \s-1SMM\s0:9\*(tx17,19 +.X "uucp commands" +uuq(1c), \s-1USD\s0:10\*(tx2, \s-1SMM\s0:9\*(tx2..4,7..8,20, \s-1SMM\s0:10\*(tx2,12 +.X "UUCP connection, Setting up a" +\s-1SMM\s0:1\*(tx35 +.X "UUCP connections" +\s-1SMM\s0:1\*(tx35, \s-1SMM\s0:7\*(tx24..25 +.X "uucp files" +uucico(8c), \s-1SMM\s0:1\*(tx19, \s-1SMM\s0:10\*(tx22 +.X "UUCP, Honey\*(txDanber" +L.sys(5)\*(tx4 +.X "UUCP hosts" +uuname(1c), mailaddr(7)\*(tx1, L.sys(5)\*(tx3, \s-1SMM\s0:7\*(tx4,24, \s-1SMM\s0:9\*(tx12,15 \s-1SMM\s0:10\*(tx2,5 +.X "UUCP hosts, uuname \*(tx list names of" +uuname(1c) +.X "uucp implementation changes" +\s-1SMM\s0:9\*(tx8 +.X "Uucp Implementation Description" +uucp(1c), USERFILE(5), uucico(8c), \s-1SMM\s0:1\*(tx35, \s-1SMM\s0:9\*(tx2, \s-1SMM\s0:16\*(tx12 +.X "UUCP, Installation and Operation of" +\s-1SMM\s0:9 +.X "UUCP log files, uulog \*(tx display" +uulog(1c) +.X "uucp logging" +\s-1SMM\s0:9\*(tx18 +.X "uucp logins" +\s-1SMM\s0:9\*(tx21 +.X "UUCP network" +uuencode(1c), mailaddr(7)\*(tx1, \s-1USD\s0:8\*(tx73, \s-1USD\s0:10\*(tx10, \s-1SMM\s0:9\*(tx11,19, \s-1SMM\s0:10\*(tx12 +.X "UUCP on TCP/IP" +\s-1SMM\s0:9\*(tx9 +.X "uucp on X.25" +\s-1SMM\s0:9\*(tx9 +.X "uucp path routing" +\s-1SMM\s0:12\*(tx23 +.X "uucp performance" +\s-1SMM\s0:21\*(tx5 +.X "Uucp Queue Snapshot, Uusnap \*(tx" +\s-1SMM\s0:9\*(tx5 +.X "uucp, rmail \*(tx handle remote mail received via" +rmail(1) +.X "uucp security" +\s-1SMM\s0:9\*(tx19 +.X "uucp spool directory cleanup, uuclean \*(tx" +\s-1SMM\s0:9\*(tx8 +.X "UUCP spool queue" +\s-1SMM\s0:9\*(tx8 +.X "UUCP utilities" +uulog(1c), uuclean(8c) +.X "uucpd" +uucico(8c), \s-1SMM\s0:12\*(tx23 +.X "uucp.h modifications" +\s-1SMM\s0:9\*(tx18 +.X "uuencode \*(tx format of an encoded uuencode file" +uuencode(5) +.X "uulog \*(tx display UUCP log files" +uulog(1c) +.X "uuname \*(tx list names of UUCP hosts" +uuname(1c) +.X "uupoll \*(tx poll a remote UUCP site" +uupoll(8c) +.X "uuq \*(tx examine or manipulate the uucp queue" +uuq(1c), \s-1SMM\s0:9\*(tx8 +.X "uusend \*(tx send a file to a remote host" +uuencode(1c), uusend(1c) +.X "uusnap \*(tx show snapshot of the UUCP system" +uusnap(8c), \s-1SMM\s0:9\*(tx2,5 +.X "uux \*(tx unix to unix command execution" +uusend(1c), uux(1c), L.cmds(5), uucico(8c), \s-1SMM\s0:9\*(tx2,4,8,21, \s-1SMM\s0:10\*(tx12..13, \s-1SMM\s0:21\*(tx5 +.X "uuxqt \*(tx UUCP execution file interpreter" +uuxqt(8c), \s-1SMM\s0:9\*(tx4,7,19..21 +.L V +.X "V7 systems" +\s-1SMM\s0:10\*(tx10 +.X "va \*(tx Benson\*(txVarian interface" +va(4) +.X "vacation \*(tx return ``I am on vacation'' indication" +vacation(1), \s-1SMM\s0:12\*(tx12 +.X "vadvise" +ps(1)\*(tx1 +.X "validation, data" +\s-1USD\s0:19\*(tx6 +.X "valloc \*(tx aligned memory allocator" +valloc(3c) +.X "value assignments" +\s-1PS1\s0:2\*(tx9..10 +.X "value cells" +\s-1PS2\s0:9\*(tx9,19,30,38,106,108,111 +.X "value of an expression" +\s-1PS1\s0:11\*(tx6 +.X "value parameters" +\s-1SMM\s0:19\*(tx25 +.X "value stack" +\s-1PS1\s0:15\*(tx9,28, \s-1PS2\s0:9\*(tx98..99 +.X "var parameters" +pc(1) +.X "varargs \*(tx variable argument list" +lint(1), printf(3s), varargs(3) +.X "variable length records" +dd(1) +.X "variable length strings" +bstring(3) +.X "variable numbers of arguments" +lint(1) +.X "variable substitution in the shell" +csh(1)\*(tx6, \s-1USD\s0:4\*(tx25 +.X "variables" +jove(1)\*(tx2, \s-1USD\s0:4\*(tx44, \s-1USD\s0:6\*(tx4, \s-1USD\s0:17\*(tx3,23, \s-1USD\s0:19\*(tx4, \s-1PS1\s0:2\*(tx9, \s-1PS2\s0:6\*(tx8,10, \s-1PS2\s0:10\*(tx76 +.X "variables as vectors" +\s-1USD\s0:4\*(tx32 +.X "variables, associations of UNIX file names with Pascal file" +\s-1PS1\s0:4\*(tx31 +.X "variables, attributes of" +\s-1USD\s0:4\*(tx25 +.X "variables, automatic" +adb(1)\*(tx4, bc(1), lint(1), \s-1USD\s0:6\*(tx4, \s-1PS1\s0:1\*(tx4, \s-1PS1\s0:2\*(tx7, \s-1SMM\s0:19\*(tx11 +.X "variables, character" +\s-1PS1\s0:1\*(tx4, \s-1PS1\s0:2\*(tx18,24, \s-1PS2\s0:6\*(tx28 +.X "variables, environment" +csh(1)\*(tx14,17, printenv(1), \s-1USD\s0:8\*(tx36,87..89, \s-1USD\s0:11\*(tx12, getenv(3f), ioinit(3f), \s-1SMM\s0:12\*(tx7 +.X "variables, equivalenced" +f77(1)\*(tx2 +.X "variables, external" +adb(1)\*(tx4 +.X "variables, floating point" +f77(1)\*(tx2, \s-1PS1\s0:2\*(tx5, \s-1PS1\s0:15\*(tx28, \s-1PS2\s0:6\*(tx8,15 +.X "variables, formal" +\s-1PS2\s0:9\*(tx55 +.X "variables, getenv \*(tx get value of environment" +getenv(3f) +.X "variables, global" +dbx(5)\*(tx1, \s-1SMM\s0:2\*(tx30 +.X "variables, initialized" +cc(1)\*(tx1 +.X "variables, Lisp status" +\s-1PS2\s0:9\*(tx3 +.X "variables, list of JOVE commands and" +\s-1USD\s0:17\*(tx25 +.X "variables, local" +dbx(5)\*(tx1, \s-1PS1\s0:10\*(tx3 +.X "variables, predefined" +csh(1)\*(tx17 +.X "variables, print the value of" +\s-1PS1\s0:11\*(tx3 +.X "variables, Register" +dbx(5)\*(tx1, \s-1PS1\s0:1\*(tx4,18,21..22,31, \s-1PS1\s0:10\*(tx8,13, \s-1SMM\s0:13\*(tx19, \s-1SMM\s0:19\*(tx3,8,12..14 +.X "variables set by gettmode" +\s-1PS1\s0:18\*(tx19 +.X "variables set by setterm" +\s-1PS1\s0:18\*(tx18 +.X "variables, setting" +sh(1)\*(tx2,5 +.X "variables, Shell" +csh(1)\*(tx6,14,16..17, \s-1USD\s0:3\*(tx8,14, \s-1USD\s0:4\*(tx12,25,43..44 +.X "variables, static" +adb(1)\*(tx4, dbx(5)\*(tx1, \s-1SMM\s0:19\*(tx8 +.X "variables, Subscripted" +\s-1USD\s0:6\*(tx5 +.X "variables, undefined" +\s-1USD\s0:4\*(tx26 +.X "Varian (see also va)" +vgrind(1), \s-1SMM\s0:1\*(tx34, \s-1SMM\s0:6\*(tx2 +.X "VAX 11/730 and 11/750 TU58 console cassette" +tu(4) +.X "VAX 8600" +\s-1SMM\s0:2\*(tx2,7, \s-1SMM\s0:12\*(tx17, \s-1SMM\s0:13\*(tx2,33 +.X "VAX 8600 console RL02 interface" +crl(4) +.X "VAX architecture" +trpfpe(3f), \s-1SMM\s0:15\*(tx26 +.X "VAX console media" +arff(8v) +.X "VAX D floating point" +exp(3m) +.X "VAX hardware terminology" +\s-1SMM\s0:1\*(tx3 +.X "VAX, Installing and Operating 4.3BSD on the" +\s-1SMM\s0:1\*(tx1, \s-1SMM\s0:11\*(tx2 +.X "VAX network interface code, /sys/vaxif" +\s-1SMM\s0:1\*(tx26 +.X "VAX specific files" +config(8) +.X "VAX specific mainline code, /sys/vax" +\s-1SMM\s0:1\*(tx26 +.X "VAX\*(tx11 assembler, as \*(tx" +as(1) +.X "VAX\*(tx11 console" +cons(4) +.X "VAX\*(tx11, DEC" +ptrace(2), sigvec(2)\*(tx3, execl(3), signal(3c)\*(tx2, intro(4), a.out(5)\*(tx1, \s-1PS1\s0:1, \s-1PS1\s0:1\*(tx3,5,9,16,30, \s-1PS1\s0:4\*(tx25..26,47, \s-1PS1\s0:6\*(tx10, \s-1PS1\s0:8\*(tx15, config(8), \s-1SMM\s0:2\*(tx2, \s-1SMM\s0:12\*(tx3,16..17 +.X "VAX\*(tx11/730" +tu(4), \s-1SMM\s0:2\*(tx2,7 +.X "VAX\*(tx11/730 hardware configuration" +\s-1SMM\s0:1\*(tx3 +.X "VAX\*(tx11/750" +trapov(3f), \s-1SMM\s0:2\*(tx2,7,11..13, \s-1SMM\s0:12\*(tx17, \s-1SMM\s0:14\*(tx9 +.X "VAX\*(tx11/780" +\s-1SMM\s0:2\*(tx2,7,11,13, \s-1SMM\s0:12\*(tx17 +.X "VAX\*(tx11/785" +\s-1SMM\s0:12\*(tx17 +.X "VAX630 (MicroVAX II)" +\s-1SMM\s0:2\*(tx7 +.X "VAXStation II (QVSS)" +\s-1SMM\s0:12\*(tx23 +.X "vectors, interrupt" +\s-1SMM\s0:2\*(tx5 +.X "vectors, variables as" +\s-1USD\s0:4\*(tx32 +.X "verb phrases" +\s-1USD\s0:32\*(tx2,5..6 +.X "Verbose" +\s-1USD\s0:7\*(tx19 +.X "verbose shell variable" +csh(1)\*(tx6,18, \s-1USD\s0:4\*(tx44 +.X "verbs, auxiliary" +\s-1USD\s0:32\*(tx4..5,9 +.X "verbs, passive" +style(1), \s-1USD\s0:32\*(tx2,5..6 +.X "verification, assert \*(tx program" +assert(3) +.X "verifier, lint \*(tx a C program" +lint(1) +.X "verify mail addresses" +\s-1USD\s0:8\*(tx73 +.X "Versatec D1200A printer\*(txplotter" +plot(1g) +.X "Versatec printer/plotters" +roffbib(1), vp(4), vfont(5), \s-1SMM\s0:1\*(tx34, \s-1SMM\s0:6\*(tx2,5 +.X "version numbers" +f77(1)\*(tx2, patch(1)\*(tx1, \s-1USD\s0:16\*(tx11, \s-1USD\s0:17\*(tx47, \s-1PS1\s0:2\*(tx5, \s-1PS1\s0:14\*(tx1..2,5, \s-1PS2\s0:10\*(tx26, \s-1SMM\s0:11\*(tx7 +.X "versions (branches), maintaining different" +\s-1PS1\s0:14\*(tx9 +.X "versions, differences between" +\s-1PS1\s0:14\*(tx1 +.X "versions of object modules" +what(1) +.X "versions, UNIX" +m4(1), \s-1USD\s0:25\*(tx2, setbuf(3s), \s-1PS1\s0:6\*(tx16..17 +.X "vertical bar" +\s-1PS1\s0:4\*(tx18, \s-1PS1\s0:15\*(tx4, \s-1PS2\s0:9\*(tx26, \s-1PS2\s0:10\*(tx70 +.X "vertical format control" +\s-1PS1\s0:2\*(tx25..26, \s-1PS1\s0:3\*(tx4,7,11 +.X "vertical lines" +\s-1USD\s0:25\*(tx7, \s-1USD\s0:28\*(tx4 +.X "vertical motion" +\s-1USD\s0:24\*(tx21, \s-1USD\s0:25\*(tx6..7, \s-1USD\s0:26\*(tx2, \s-1USD\s0:27\*(tx3,6, gettytab(5)\*(tx1 +.X "vertical piles" +eqn(1), \s-1USD\s0:26\*(tx4, \s-1USD\s0:27\*(tx7 +.X "vertical position" +\s-1USD\s0:24\*(tx8,11,15..16,22, \s-1USD\s0:25\*(tx6,9 +.X "vertical resolution" +\s-1USD\s0:24\*(tx8,29, \s-1SMM\s0:20\*(tx2..4 +.X "vertical size" +\s-1USD\s0:24\*(tx15..16,30, \s-1USD\s0:25\*(tx13, tty(4)\*(tx10 +.X "vertical spacing" +fpr(1), ms(7)\*(tx3, \s-1USD\s0:20\*(tx5, \s-1USD\s0:22\*(tx18, \s-1USD\s0:23\*(tx4, \s-1USD\s0:24\*(tx3,13..14,23,28,32, \s-1USD\s0:25\*(tx3,8,10, \s-1USD\s0:27\*(tx7, \s-1USD\s0:28\*(tx4 +.X "vertical spacing changes" +\s-1USD\s0:28\*(tx4 +.X "vertical spanning" +\s-1USD\s0:28\*(tx4 +.X "vertical tab" +\s-1USD\s0:13\*(tx2, ctype(3) +.X "vertically spanned heading" +\s-1USD\s0:28\*(tx3 +.X "vertically spanned items" +\s-1USD\s0:28\*(tx5 +.X "vfont \*(tx font formats for the Benson\*(txVarian or Versatec" +vfont(5) +.X "vfont to troff conversion" +vwidth(1) +.X "vfork \*(tx spawn new process in a virtual memory efficient way" +vfork(2), stdio(3s) +.X "vgrind \*(tx grind nice listings of programs" +ctags(1), vgrind(1), \s-1SMM\s0:12\*(tx12 +.X "vgrindefs \*(tx vgrind's language definition data base" +vgrindefs(5) +.X "vhangup \*(tx virtually ``hangup'' the current control terminal" +vhangup(2) +.X "vi \*(tx screen oriented (visual) display editor based on ex" +error(1)\*(tx1, ex(1), vi(1), environ(7), \s-1USD\s0:15, \s-1USD\s0:16\*(tx1,8,11, \s-1PS2\s0:1\*(tx9, \s-1PS2\s0:9\*(tx140 +.X "vi control characters, list of" +\s-1USD\s0:15\*(tx22 +.X "vi file manipulation command, list of" +\s-1USD\s0:15\*(tx18 +.X "Vi, Introduction to Display Editing with" +\s-1USD\s0:15 +.X "vi, learning about" +learn(1) +.X "vi, movement commands in" +\s-1USD\s0:15\*(tx6 +.X "vi options, list of" +\s-1USD\s0:15\*(tx13 +.X "video, reverse" +sysline(1), window(1), \s-1USD\s0:17\*(tx18,38, termcap(5)\*(tx9..10 +.X "view \*(tx define a virtual relation" +\s-1USD\s0:15\*(tx6, \s-1PS2\s0:10\*(tx44 +.X "view definitions" +\s-1PS2\s0:10\*(tx16,80 +.X "view more than one file at once" +\s-1USD\s0:17\*(tx1 +.X "viewing large sections of text" +\s-1USD\s0:14\*(tx12 +.X "vipw \*(tx edit the password file" +vipw(8), \s-1SMM\s0:12\*(tx23 +.X "virtual address space" +\s-1PS2\s0:1\*(tx8, \s-1SMM\s0:2\*(tx31, \s-1SMM\s0:14\*(tx2 +.X "virtual circuit protocols" +\s-1SMM\s0:15\*(tx16 +.X "virtual circuits" +\s-1PS1\s0:6\*(tx33,36 +.X "virtual memory" +ps(1)\*(tx1, vmstat(1), execve(2), vfork(2), ik(4), mem(4), ps(4), \s-1SMM\s0:1\*(tx26,48, \s-1SMM\s0:2\*(tx31..32, \s-1SMM\s0:13\*(tx15,32 +.X "virtual memory limits, configuration of the" +\s-1SMM\s0:1\*(tx23 +.X "virtual memory statistics" +ps(1)\*(tx2, systat(1)\*(tx1..2 +.X "virtual terminal (see also pseudo terminal)" +\s-1PS1\s0:6\*(tx20 +.X "virtual terminal protocol" +termcap(5)\*(tx13, telnetd(8c) +.X "visible bell" +termcap(5)\*(tx9 +.X "visible\*(txbell (variable)" +\s-1USD\s0:17\*(tx47 +.X "visible\*(txspaces\*(txin\*(txwindow" +\s-1USD\s0:17\*(tx47 +.X "visit\*(txfile (C\*(txX C\*(txV)" +\s-1USD\s0:17\*(tx47 +.X "visiting files" +\s-1USD\s0:17\*(tx14 +.X "VISUAL" +mail(1)\*(tx5..6, \s-1USD\s0:7\*(tx8,17 +.X "visual commands" +mail(1)\*(tx6, \s-1USD\s0:7\*(tx17, \s-1USD\s0:16\*(tx7,18 +.X "visual front\*(txend" +\s-1USD\s0:8\*(tx69 +.X "visual modes" +fmt(1), \s-1USD\s0:15\*(tx16, \s-1USD\s0:16\*(tx3..5,8,11,15..16 +.X "vlimit \*(tx control maximum system resource consumption" +vlimit(3c) +.X "vlp \*(tx Format Lisp programs to be printed with nroff, vtroff, or troff" +vlp(1), \s-1SMM\s0:12\*(tx12 +.X "VM/CMS, tn3270 \*(tx full\*(txscreen remote login to IBM" +tn3270(1) +.X "vmh \*(tx visual front\*(txend to MH" +vmh(1), \s-1USD\s0:8\*(tx69 +.X "vmhproc" +vmh(1) +.X "VMS" +date(1), \s-1SMM\s0:12\*(tx23 +.X "vmstat \*(tx report virtual memory statistics" +systat(1)\*(tx1,4, vmstat(1), \s-1SMM\s0:12\*(tx12 +.X "vnews commands" +\s-1USD\s0:9\*(tx2,12 +.X "void" +\s-1PS1\s0:1\*(tx6 +.X "volume numbers" +\s-1USD\s0:31\*(tx5, dump(5) +.X "volume, removable" +\s-1PS2\s0:1\*(tx4 +.X "vp \*(tx Versatec interface" +vp(4) +.X "VPATH environment variable" +make(1), \s-1PS1\s0:12\*(tx6, \s-1SMM\s0:12\*(tx9 +.X "vpr" +\s-1SMM\s0:12\*(tx13 +.X "VS line spacing" +\s-1USD\s0:20\*(tx5 +.X "VS100 display" +\s-1SMM\s0:13\*(tx2 +.X "VT100" +termcap(5)\*(tx8,11 +.X "vtimes \*(tx get information about resource utilization" +vtimes(3c) +.X "vv \*(tx Proteon proNET 10 Megabit ring" +vv(4) +.X "vwidth \*(tx make troff width table for a font" +vwidth(1) +.L W +.X "w \*(tx who is on and what they are doing" +w(1), \s-1SMM\s0:12\*(tx13 +.X "waddch(win, ch)" +\s-1PS1\s0:18\*(tx4,8 +.X "waddstr(win, str)" +\s-1PS1\s0:18\*(tx8 +.X "wait" +exit(2), ptrace(2), exit(3f), \s-1SMM\s0:10\*(tx19, \s-1SMM\s0:13\*(tx6 +.X "wait \*(tx await completion of process" +wait(1) +.X "wait \*(tx Bourne shell command" +sh(1)\*(tx1 +.X "wait \*(tx wait for a process to terminate" +wait(3f) +.X "wait channels" +\s-1SMM\s0:12\*(tx10, \s-1SMM\s0:15\*(tx7 +.X "wait command" +csh(1)\*(tx16 +.X "wait, wait3 \*(tx wait for process to terminate" +wait(2) +.X "wait3(astatus, options, arusage)" +\s-1PS1\s0:6\*(tx8 +.X "wait(astatus)" +\s-1PS1\s0:6\*(tx8 +.X "waiting process" +\s-1PS1\s0:6\*(tx12, \s-1PS2\s0:3\*(tx10, \s-1PS2\s0:4\*(tx1, pstat(8)\*(tx3 +.X "wakeup service" +\s-1PS1\s0:6\*(tx16 +.X "walking a tree" +\s-1PS2\s0:6\*(tx30 +.X "wall \*(tx write to all users" +wall(1), \s-1SMM\s0:12\*(tx13 +.X "warning diagnostics" +syslog(3), \s-1PS1\s0:2\*(tx5,8, \s-1PS1\s0:4\*(tx7,12,36,45, \s-1PS1\s0:5\*(tx10, \s-1PS1\s0:6\*(tx32, \s-1PS2\s0:9\*(tx66 +.X "warp factor" +\s-1USD\s0:34\*(tx3..6 +.X "wasted space as a function of block size" +\s-1SMM\s0:14\*(tx5..6 +.X "watchdog routines" +up(4)\*(tx3, uu(4), vv(4), \s-1SMM\s0:2\*(tx30, \s-1SMM\s0:15\*(tx11 +.X "wc - byte, word, line count" +wc(1), \s-1USD\s0:19\*(tx6 +.X "wc, grep, egrep, fgrep, sed, lex, awk performance comparison" +\s-1USD\s0:19\*(tx6 +.X "wclear(win)" +\s-1PS1\s0:18\*(tx9 +.X "wclrtobot(win)" +\s-1PS1\s0:18\*(tx9 +.X "wclrtoeol(win)" +\s-1PS1\s0:18\*(tx9 +.X "wdelch(win)" +\s-1PS1\s0:18\*(tx9 +.X "wdeleteln(win)" +\s-1PS1\s0:18\*(tx10 +.X "Webster's word list" +\s-1SMM\s0:12\*(tx19 +.X "well\*(txknown groups" +\s-1SMM\s0:1\*(tx21 +.X "well\*(txknown users" +\s-1SMM\s0:1\*(tx21 +.X "wgetch(win)" +\s-1PS1\s0:18\*(tx12 +.X "wgetstr(win, str)" +\s-1PS1\s0:18\*(tx13 +.X "what \*(tx show what versions of object modules were used to construct a file" +what(1) +.X "what, sccs" +\s-1PS1\s0:14\*(tx5 +.X "whatis \*(tx describe what a command is" +whatis(1) +.X "whatis database" +catman(8), \s-1SMM\s0:12\*(tx9 +.X "whatnow \*(tx prompting front\*(txend for send" +\s-1USD\s0:8\*(tx4,16..19,24..25,58,71,104 +.X "whatnowproc, default" +\s-1USD\s0:8\*(tx18,57,88 +.X "wheel group" +su(1), \s-1SMM\s0:1\*(tx21 +.X "whereis \*(tx locate source, binary, and or manual for program" +whereis(1), \s-1SMM\s0:12\*(tx13 +.X "which \*(tx locate a program file including aliases and paths (csh only)" +which(1), \s-1SMM\s0:12\*(tx13 +.X "while \*(tx Bourne shell command" +sh(1)\*(tx1, \s-1USD\s0:3\*(tx10 +.X "while command" +csh(1)\*(tx16 +.X "while statement" +\s-1PS1\s0:1\*(tx21 +.X "white space" +awk(1), col(1), diff(1), pr(1), uniq(1), \s-1USD\s0:15\*(tx15..16,22,25, \s-1USD\s0:16\*(tx7..8,13,15..17, \s-1USD\s0:17\*(tx7, \s-1USD\s0:19\*(tx2, \s-1USD\s0:22\*(tx3, \s-1USD\s0:23\*(tx4, \s-1USD\s0:24\*(tx8, \s-1USD\s0:26\*(tx3, getopt(3), \s-1PS1\s0:1, \s-1PS1\s0:1\*(tx26, \s-1PS1\s0:16\*(tx10, \s-1PS1\s0:17\*(tx4, \s-1PS2\s0:6\*(tx11, \s-1SMM\s0:10\*(tx23, \s-1SMM\s0:19\*(tx26 +.X "white space, .bl Leave contiguous" +\s-1USD\s0:23\*(tx6 +.X "who \*(tx who is on the system" +rwho(1c), who(1), \s-1USD\s0:1\*(tx2 +.X "who am I" +who(1) +.X "whoami \*(tx print effective current user id" +whoami(1), \s-1SMM\s0:12\*(tx13 +.X "whois \*(tx DARPA Internet user name directory service" +whois(1) +.X "whole\*(txline oriented functions" +\s-1USD\s0:18\*(tx4 +.X "whom \*(tx report to whom a message would go" +\s-1USD\s0:8\*(tx73 +.X "width computations" +\s-1USD\s0:25\*(tx11 +.X "width, field" +printf(3s), scanf(3s), \s-1PS1\s0:2\*(tx24, \s-1PS1\s0:3\*(tx5,11, \s-1PS2\s0:10\*(tx56 +.X "width function" +\s-1USD\s0:24\*(tx7,18,20..21, \s-1USD\s0:25\*(tx6 +.X "width, page" +adb(1)\*(tx4, lpr(1), lp(4), printcap(5), lpd(8) +.X "widths, character" +\s-1USD\s0:24\*(tx2, \s-1SMM\s0:20\*(tx5 +.X "widths, column" +ms(7)\*(tx2, \s-1USD\s0:20\*(tx2, \s-1USD\s0:23\*(tx5, \s-1USD\s0:24\*(tx30, \s-1USD\s0:28\*(tx3..6 +.X "wildcard addressing" +spp(4p), tcp(4p) +.X "wildcard routes" +intro(4n), \s-1SMM\s0:1\*(tx40 +.X "winch(win)" +\s-1PS1\s0:18\*(tx14 +.X "window" +\s-1USD\s0:16\*(tx18, \s-1USD\s0:17\*(tx21,39,41,45, \s-1SMM\s0:12\*(tx13 +.X "window \*(tx window environment on ASCII terminals" +window(1)\*(tx1 +.X "window clear" +\s-1PS1\s0:18\*(tx9 +.X "window, Close" +window(1)\*(tx3 +.X "window, Create a new" +window(1)\*(tx2 +.X "window cursors" +window(1)\*(tx5..7 +.X "window field" +\s-1SMM\s0:12\*(tx18, \s-1SMM\s0:13\*(tx26 +.X "window mode" +sysline(1), \s-1USD\s0:17\*(tx45 +.X "window, Move" +window(1)\*(tx3,6 +.X "window, Move the cursor of the current" +window(1)\*(tx3 +.X "window, Scroll the current" +window(1)\*(tx3 +.X "window, shell in a" +\s-1USD\s0:17\*(tx20 +.X "window size changes" +signal(3c), rlogind(8c), \s-1SMM\s0:12\*(tx10..11,14,18, \s-1SMM\s0:13\*(tx4 +.X "window size information" +tty(4)\*(tx10, \s-1SMM\s0:12\*(tx18 +.X "window sizes" +more(1)\*(tx2, rlogin(1c), window(1)\*(tx3, \s-1USD\s0:15\*(tx10..12,18, \s-1USD\s0:16\*(tx2, tty(4)\*(tx10, rlogind(8c), \s-1SMM\s0:12\*(tx5,11..12, \s-1SMM\s0:13\*(tx9 +.X "WINDOW structure" +\s-1PS1\s0:18\*(tx3,20 +.X "window systems" +getttyent(3), tcp(4p), \s-1SMM\s0:12\*(tx20,23 +.X "window\*(txfind (C\*(txX 4)" +\s-1USD\s0:17\*(tx47 +.X "windowing information" +\s-1SMM\s0:15\*(tx10,16,24 +.X "windows, multiple" +\s-1USD\s0:17\*(tx2,18 +.X "windows, outer" +\s-1PS1\s0:18\*(tx14 +.X "windows, overlapping" +\s-1PS1\s0:18\*(tx6,16 +.X "Windows, Running Processes in JOVE" +\s-1USD\s0:17\*(tx20 +.X "window's size, get and set a terminal or" +\s-1SMM\s0:13\*(tx3 +.X "winsch(win, c)" +\s-1PS1\s0:18\*(tx10 +.X "winsertln(win)" +\s-1PS1\s0:18\*(tx11 +.X "winsize, struct" +tty(4)\*(tx10 +.X "WKS" +\s-1SMM\s0:11\*(tx8,12 +.X "wmove(win, y, x)" +\s-1PS1\s0:18\*(tx4,11 +.X "WNOHANG" +wait(2) +.X "word abbrev mode" +\s-1USD\s0:17\*(tx2,23,42,47 +.X "word abbreviations" +\s-1USD\s0:15\*(tx17, \s-1USD\s0:17\*(tx23,25,27 +.X "word boundaries" +\s-1PS1\s0:2\*(tx12, \s-1PS1\s0:9\*(tx6, \s-1SMM\s0:19\*(tx18 +.X "word commands" +\s-1USD\s0:17\*(tx11 +.X "word count" +wc(1) +.X "word erase character" +stty(1)\*(tx3 +.X "word lengths" +style(1), \s-1USD\s0:32\*(tx1,3..4 +.X "word lists" +deroff(1), hier(7)\*(tx4, \s-1SMM\s0:12\*(tx19, \s-1SMM\s0:18\*(tx3 +.X "word list, Webster's" +\s-1SMM\s0:12\*(tx19 +.X "word searching" +grep(1) +.X "word, unabbreviate" +\s-1USD\s0:16\*(tx11 +.X "word, underline a" +\s-1USD\s0:20\*(tx4 +.X "word usage" +\s-1USD\s0:32\*(tx1..2,5..6,10 +.X "word\*(txabbrev\*(txmode" +\s-1USD\s0:17\*(tx47 +.X "word\*(txerase character" +tty(4)\*(tx3 +.X "words" +\s-1USD\s0:4\*(tx44 +.X "words, argument" +\s-1USD\s0:4\*(tx8,34 +.X "words, English" +lookbib(1) +.X "words in a box" +\s-1USD\s0:22\*(tx17 +.X "words, lengths of" +\s-1PS1\s0:16\*(tx10 +.X "words, misspelled" +\s-1USD\s0:1\*(tx11, \s-1USD\s0:17\*(tx14,45 +.X "words, type" +\s-1SMM\s0:19\*(tx4..5,8..9 +.X "wordy sentences" +diction(1) +.X "working directory (see directory)" +cd(1), csh(1)\*(tx14 +.X "worms \*(tx animate worms on a display terminal" +worms(6) +.X "wprintw(win, fmt, arg1, arg2, ...)" +\s-1PS1\s0:18\*(tx11 +.X "wrap around past the end of the file" +\s-1USD\s0:16\*(tx18 +.X "wrapmargin" +vi(1), \s-1USD\s0:16\*(tx18 +.X "wrap(old, proto)" +\s-1PS1\s0:6\*(tx20 +.X "wrapscan" +\s-1USD\s0:16\*(tx18 +.X "wrap\*(txsearch (variable)" +\s-1USD\s0:17\*(tx48 +.X "wrefresh(win)" +\s-1PS1\s0:18\*(tx4,6,11 +.X "writable terminal" +\s-1SMM\s0:12\*(tx11..13 +.X "write" +stat(2), \s-1PS2\s0:3\*(tx5,9..10, \s-1PS2\s0:5\*(tx3,5,7, \s-1SMM\s0:12\*(tx13 +.X "write()" +\s-1PS1\s0:7\*(tx19 +.X "write \*(tx write to another user" +write(1) +.X "write a character" +putc(3f) +.X "write access" +csh(1)\*(tx9, access(2) +.X "write command" +\s-1USD\s0:12\*(tx2, cons(4) +.X "WRITE environment variable" +chmod(1), \s-1USD\s0:11\*(tx8,12, \s-1USD\s0:16\*(tx11, unlink(2), access(3f) +.X "write function" +\s-1USD\s0:18\*(tx7 +.X "write on a pipe with no one to read it" +signal(3c) +.X "write, open for read and" +\s-1PS1\s0:6\*(tx28 +.X "write permission" +\s-1PS1\s0:6\*(tx29 +.X "write with sockets, read and" +\s-1PS1\s0:6\*(tx36 +.X "write, writev \*(tx write output" +write(2), \s-1SMM\s0:14\*(tx5,10 +.X "write(fd, buf, nbytes)" +\s-1PS1\s0:6\*(tx25 +.X "write\*(txfile (C\*(txX C\*(txW)" +\s-1USD\s0:17\*(tx48 +.X "write\*(txfiles\*(txon\*(txmake (variable)" +\s-1USD\s0:17\*(tx48 +.X "write\*(txmacros\*(txto\*(txfile" +\s-1USD\s0:17\*(tx48 +.X "write\*(txmodified\*(txfiles (C\*(txX C\*(txM)" +\s-1USD\s0:17\*(tx48 +.X "write\*(txregion" +\s-1USD\s0:17\*(tx48 +.X "write\*(txword\*(txabbrev\*(txfile" +\s-1USD\s0:17\*(tx48 +.X "writing files" +\s-1USD\s0:12\*(tx1..2, \s-1USD\s0:13\*(tx13, \s-1USD\s0:14\*(tx2,7, fopen(3s), \s-1SMM\s0:14\*(tx10 +.X "writing, gather" +write(2) +.X "writing notes & responses" +\s-1USD\s0:11\*(tx7 +.X "writing out part of a file" +\s-1USD\s0:13\*(tx13 +.X "writing papers with nroff using \*(txme" +\s-1USD\s0:22\*(tx1 +.X "writing parts of the buffer" +\s-1USD\s0:14\*(tx21 +.X "writing programs" +\s-1USD\s0:1\*(tx2 +.X "writing, quitting, editing new file" +\s-1USD\s0:15\*(tx11 +.X "writing style" +style(1), \s-1USD\s0:10\*(tx7, \s-1USD\s0:32\*(tx1,4..5,11 +.X "writing to other users (see also mail, talk)" +\s-1USD\s0:1\*(tx4 +.X "Writing Tools \*(tx The STYLE and DICTION Programs" +\s-1USD\s0:32\*(tx1..14 +.X "written, characters" +ed(1)\*(tx5, \s-1USD\s0:16\*(tx11 +.X "wscanw(win, fmt, arg1, arg2, ...)" +\s-1PS1\s0:18\*(tx13 +.X "wstandend(win)" +\s-1PS1\s0:18\*(tx12 +.X "wstandout(win)" +\s-1PS1\s0:18\*(tx12 +.X "wtmp file" +last(1), who(1), utmp(5), ac(8) +.X "wump \*(tx the game of hunt\*(txthe\*(txwumpus" +wump(6) +.X "WUNTRACED" +wait(2) +.L X +.X "X \*(tx window system" +\s-1SMM\s0:12\*(tx23 +.X "X.25 carriers" +L.sys(5)\*(tx1 +.X "X.25 PAD connection" +L\*(txdevices(5), L.sys(5)\*(tx2, \s-1SMM\s0:9\*(tx13 +.X "X.25, uucp on" +\s-1SMM\s0:9\*(tx9 +.X "Xerox" +\s-1PS1\s0:8\*(tx3,12,14,40 +.X "Xerox Bulk Data Transfer Protocol" +\s-1PS1\s0:8\*(tx36 +.X "Xerox Development Environment" +ns(3n) +.X "Xerox Internet Datagram Protocol" +idp(4p), \s-1SMM\s0:12\*(tx17 +.X "Xerox Interpress format" +\s-1SMM\s0:12\*(tx23 +.X "Xerox Network System network communication protocols" +socket(2), ns(3n), de(4), il(4), intro(4n)\*(tx1, ix(4), ns(4f), nsip(4), ifconfig(8c), routed(8c)\*(tx3, \s-1SMM\s0:1\*(tx38, \s-1SMM\s0:2\*(tx13,33, \s-1SMM\s0:9\*(tx7, \s-1SMM\s0:12\*(tx2,17, \s-1SMM\s0:13\*(tx12,20,28..30 +.X "Xerox NS support code, /sys/netn" +\s-1SMM\s0:1\*(tx26 +.X "Xerox PUP protocols" +\s-1SMM\s0:12\*(tx23 +.X "Xerox Sequenced Packet Protocol" +spp(4p), \s-1SMM\s0:12\*(tx18 +.X "xget \*(tx secret mail" +xsend(1) +.X "xmit, stray" +acc(4), il(4), ix(4), pcl(4) +.X "XNS addresses" +ns(3n) +.X "XNSrouted \*(tx NS Routing Information Protocol daemon" +routed(8c)\*(tx3, XNSrouted(8c), \s-1SMM\s0:12\*(tx23 +.X "xsend, xget, enroll \*(tx secret mail" +xsend(1), \s-1SMM\s0:12\*(tx13 +.X "xstr \*(tx extract strings from C programs to implement shared strings" +xstr(1), \s-1SMM\s0:12\*(tx13 +.X "XTABS" +termcap(3x), telnetd(8c), \s-1SMM\s0:6\*(tx3 +.L Y +.X "yacc \*(tx yet another compiler\*(txcompiler" +ctags(1), vgrind(1), yacc(1), \s-1USD\s0:19\*(tx6, \s-1PS1\s0:12\*(tx6, \s-1PS1\s0:15, \s-1PS1\s0:16\*(tx1..2,5,9, \s-1SMM\s0:12\*(tx4 +.X "yacc, features of" +\s-1SMM\s0:19\*(tx6 +.X "yacc grammar hints on style" +\s-1PS1\s0:15\*(tx19 +.X "yacc input syntax" +\s-1PS1\s0:15\*(tx26 +.X "yacc library" +\s-1PS1\s0:15\*(tx18, \s-1PS1\s0:16\*(tx9 +.X "yacc parsers" +\s-1PS1\s0:15\*(tx7,19, \s-1PS1\s0:16\*(tx9 +.X "yacc specification" +\s-1PS1\s0:15\*(tx3,24..26 +.X "yacc value stack" +\s-1PS1\s0:15\*(tx21..22,28, \s-1SMM\s0:19\*(tx6 +.X "YACCE" +\s-1PS1\s0:12\*(tx6,9 +.X "YACCR" +\s-1PS1\s0:12\*(tx6,9 +.X "Yale ASCII Terminal Communication System" +map3270(5) +.X "yank" +\s-1USD\s0:16\*(tx12, \s-1USD\s0:17\*(tx8 +.X "yank\*(txpop (ESC Y)" +\s-1USD\s0:17\*(tx48 +.X "Yendor, Amulet of" +rogue(6) +.X "yes \*(tx be repetitively affirmative" +yes(1) +.X "YFLAGS" +make(1)\*(tx2, \s-1PS1\s0:12\*(tx6,9 +.X "yogh" +\s-1USD\s0:21\*(tx3 +.X "y.output" +yacc(1) +.X "y.tab.c" +\s-1PS1\s0:15\*(tx18 +.X "y.tab.h" +yacc(1) +.X "YYACCEPT" +\s-1PS1\s0:15\*(tx21 +.X "yyclearin" +\s-1PS1\s0:15\*(tx17 +.X "yydebug" +\s-1PS1\s0:15\*(tx18 +.X "YYERROR" +yacc(1), \s-1PS1\s0:15\*(tx17,21,30..31 +.X "yyleng" +\s-1PS1\s0:16\*(tx6 +.X "yyless (n)" +\s-1PS1\s0:16\*(tx6 +.X "yylex()" +\s-1PS1\s0:15\*(tx18, \s-1PS1\s0:16\*(tx2,9 +.X "yylval" +\s-1PS1\s0:15\*(tx6 +.X "yymore()" +\s-1PS1\s0:16\*(tx6 +.X "yyparse" +yacc(1), \s-1PS1\s0:15\*(tx18 +.X "YYSTYPE" +\s-1PS1\s0:15\*(tx22 +.X "yytext" +\s-1PS1\s0:16\*(tx5 +.X "yywrap()" +\s-1PS1\s0:16\*(tx7 +.L Z +.X "zero size" +csh(1)\*(tx9 +.X "zero\*(txlength packet" +\s-1PS1\s0:8\*(tx38..39, \s-1SMM\s0:13\*(tx14 +.X "zero\*(txmotion command" +\s-1USD\s0:25\*(tx7 +.X "zero\*(txpadding" +printf(3s) +.X "zero\*(txwidth character" +\s-1USD\s0:24\*(tx12,21 +.X "zone, time" +gettimeofday(2), ctime(3), time(3c), sendmail(8) +.X "zork - the game of dungeon" +zork(6) + + + + diff --git a/doc/index/misc/fixpagenums.sed b/doc/index/misc/fixpagenums.sed new file mode 100644 index 00000000..e0258b27 --- /dev/null +++ b/doc/index/misc/fixpagenums.sed @@ -0,0 +1 @@ +s/\.\([0-9][0-9]*\)$/-\1/ diff --git a/doc/index/misc/jove.macros b/doc/index/misc/jove.macros new file mode 100644 index 0000000000000000000000000000000000000000..c1562ad35465e846f591aa9565529ec2ad3867c0 GIT binary patch literal 103 zcmZQzU{GRUVBk$j%}Fgu)lJPSDXL_Ut|(3|(aq&$12Ga6(iGyfw6r)lIAXLQke3mt qMH-|nwW6dbF}XxHF(sv#K_*U{ml38{CN4ToJC>J8Tp~|Wq5uHvO&CW2 literal 0 HcmV?d00001 diff --git a/doc/index/misc/macs/index.ms.footers b/doc/index/misc/macs/index.ms.footers new file mode 100644 index 00000000..4a13feea --- /dev/null +++ b/doc/index/misc/macs/index.ms.footers @@ -0,0 +1,38 @@ +.\" @(#)index 6.1 (Berkeley) 5/23/86 +.\" +.bp 1 +.SH +.nr LL 7i +.MC 3.25i .5i +.ds LF +.nh +.na +.ps 10 +.vs 12p +.in .4i +.de X +.if \\*(LF .ds LF \\$1 \" first entry on page for footer +.ds RF \\$1 \" last entry on page +.ti -.5i +\\fB\\$1\\fP \\$2 +.br +.. +. \" BT - bottom title +.de BT +.nr PF \\n(.f +.nr PX \\n(.s +.ft 1 +.ps \\n(PS +.lt \\n(LTu +.po \\n(POu +.if \\n(TM .if \\n(CT \{\ +. tl ''\\n(PN'' +. nr CT 0 +.\} +.if \\n% .if !\\n(EF .if !\\n(OF .tl \\*(LF\\*(CF\\*(RF +.if \\n% .if \\n(OF .if o .tl \\*(O3 +.if \\n% .if \\n(EF .if e .tl \\*(E4 +.ft \\n(PF +.ps \\n(PX +.ds LF \" undefine it +.. diff --git a/doc/index/misc/macs/index.ms.headers.bad b/doc/index/misc/macs/index.ms.headers.bad new file mode 100644 index 00000000..4d95e493 --- /dev/null +++ b/doc/index/misc/macs/index.ms.headers.bad @@ -0,0 +1,118 @@ +.\" @(#)index 6.1 (Berkeley) 5/23/86 +.\" +.bp 1 +.SH +.nr LL 7i +.MC 3.25i .5i +Index ps 10 vs 12p +.nh +.na +.ps 10 +.vs 12p +.in .4i +.wh 0 + +.de X +.if \\*(LH .ds LH \\$1 \" header string +.ti -.5i +\\$1 \\$2 +.br +.. +. \" BT - bottom title +.de BT +.tm beginning of bt +.di +.tm np in bt +.if !\\n(LT .nr LT \\n(LLu +.if \\n(FM+\\n(HM>=\\n(.p \{\ +. tm HM + FM longer than page +. ab +.\} +.if "\*(.T"vp" .CM +.if !\\n(HM .nr HM 1i +.po \\n(POu +.nr PF \\n(.f +.nr PX \\n(.s +.ft 1 +.ps \\n(PS +'sp \\n(HMu/2u +.PT +'sp |\\n(HMu +.HD \"undefined +.ps \\n(PX +.ft \\n(PF +.nr XX 0 1 +.nr YY 0-\\n(FMu +.ch FO 16i +.ch FX 17i +.ch FO -\\n(FMu +.ch FX \\n(.pu-\\n(FMu +.if \\n(MF .FV +.nr MF 0 +.mk +.os +.ev 1 +.if !\\n(TD .if \\n(TC<5 .XK +.nr TC 0 +.ev +.nr TQ \\n(.i +.nr TK \\n(.u +.if \\n(IT \{\ +. in 0 +. nf +. TT +. in \\n(TQu +. if \\n(TK .fi +.\} +.ns +.mk #T +.. +. \" PT - page titles +.de PT +.lt \\n(LTu +.pc % +.nr PN \\n% +.nr PT \\n% +.if \\n(P1 .nr PT 2 +.if \\n(PT>1 .if !\\n(EH .if !\\n(OH .tl \\*(LH\\*(CH\\*(RH +.if \\n(PT>1 .if \\n(OH .if o .tl \\*(O1 +.if \\n(PT>1 .if \\n(EH .if e .tl \\*(E2 +.lt \\n(.lu +.tm xy +.xy +.nr PX \\n(.s +.ft 1 +.ps \\n(PS +.lt \\n(LTu +.po \\n(POu +.if \\n(TM .if \\n(CT \{\ +. tl ''\\n(PN'' +. nr CT 0 +.\} +.if \\n% .if !\\n(EF .if !\\n(OF .tl \\*(LF\\*(CF\\*(RF +.if \\n% .if \\n(OF .if o .tl \\*(O3 +.if \\n% .if \\n(EF .if e .tl \\*(E4 +.ft \\n(PF +.ps \\n(PX +.ds LH " +.di xy +.tm end of BT +.. +. \" NP - new page +.de NP +.tm np noop +.. + +. \" PT - page titles +.de PT +.tm pt +.lt \\n(LTu +.pc % +.nr PN \\n% +.nr PT \\n% +.if \\n(P1 .nr PT 2 +.if \\n(PT>1 .if !\\n(EH .if !\\n(OH .tl \\*(LH\\*(CH\\*(RH +.if \\n(PT>1 .if \\n(OH .if o .tl \\*(O1 +.if \\n(PT>1 .if \\n(EH .if e .tl \\*(E2 +.lt \\n(.lu +.. diff --git a/doc/index/misc/macs/index.ms.leftfooter b/doc/index/misc/macs/index.ms.leftfooter new file mode 100644 index 00000000..b1af3cb9 --- /dev/null +++ b/doc/index/misc/macs/index.ms.leftfooter @@ -0,0 +1,39 @@ +.\" @(#)index 6.1 (Berkeley) 5/23/86 +.\" +.bp 1 +.SH +.nr LL 7i +.MC 3.25i .5i +.ds LF +.ds CH +.nh +.na +.ps 10 +.vs 12p +.in .4i +.de X +.if \\*(LF .ds LF \\$1 \" first entry on page for footer +.\" .ds RF \\$1 \" last entry on page +.ti -.5i +\\fB\\$1\\fP \\$2 +.br +.. +. \" BT - bottom title +.de BT +.nr PF \\n(.f +.nr PX \\n(.s +.ft 1 +.ps \\n(PS +.lt \\n(LTu +.po \\n(POu +.if \\n(TM .if \\n(CT \{\ +. tl ''\\n(PN'' +. nr CT 0 +.\} +.if \\n% .if !\\n(EF .if !\\n(OF .tl \\*(LF\\*(CF\\*(RF +.if \\n% .if \\n(OF .if o .tl \\*(O3 +.if \\n% .if \\n(EF .if e .tl \\*(E4 +.ft \\n(PF +.ps \\n(PX +.ds LF \" undefine it +.. diff --git a/doc/index/misc/macs/index.ms.ps10.vs12.1c b/doc/index/misc/macs/index.ms.ps10.vs12.1c new file mode 100644 index 00000000..709e1715 --- /dev/null +++ b/doc/index/misc/macs/index.ms.ps10.vs12.1c @@ -0,0 +1,15 @@ +.\" @(#)index 6.1 (Berkeley) 5/23/86 +.\" +.bp 1 +.SH +.nr LL 7i +Index ps 10 vs 12p +.nh +.na +.ps 10 +.vs 12p +.in .4i +.de X +.ti -.5i +.br +.. diff --git a/doc/index/misc/macs/index.ms.ps10.vs12.2c b/doc/index/misc/macs/index.ms.ps10.vs12.2c new file mode 100644 index 00000000..cf860c1a --- /dev/null +++ b/doc/index/misc/macs/index.ms.ps10.vs12.2c @@ -0,0 +1,17 @@ +.\" @(#)index 6.1 (Berkeley) 5/23/86 +.\" +.bp 1 +.SH +.2C +.nr LL 7i +Index ps 10 vs 12p +.nh +.na +.ps 10 +.vs 12p +.in .4i +.de X +.ti -.5i +\\fB\\$1\\fP \\$2 +.br +.. diff --git a/doc/index/misc/macs/index.ms.ps10.vs12.2c.wide b/doc/index/misc/macs/index.ms.ps10.vs12.2c.wide new file mode 100644 index 00000000..73043062 --- /dev/null +++ b/doc/index/misc/macs/index.ms.ps10.vs12.2c.wide @@ -0,0 +1,16 @@ +.\" @(#)index 6.1 (Berkeley) 5/23/86 +.\" +.bp 1 +.SH +.nr LL 7i +.MC 3.25i .5i +Index ps 10 vs 12p +.nh +.na +.ps 10 +.vs 12p +.in .4i +.de X +.ti -.5i +.br +.. diff --git a/doc/index/misc/macs/index.ms.ps8.vs9.2c b/doc/index/misc/macs/index.ms.ps8.vs9.2c new file mode 100644 index 00000000..990be259 --- /dev/null +++ b/doc/index/misc/macs/index.ms.ps8.vs9.2c @@ -0,0 +1,14 @@ +.\" @(#)index 6.1 (Berkeley) 5/23/86 +.\" +.bp 1 +.2C +.SH +Index ps 8 vs 9p +.nf +.ps 8 +.vs 9p +.in .5i +.de X +.ti -.5i +.br +.. diff --git a/doc/index/misc/troff.mail b/doc/index/misc/troff.mail new file mode 100644 index 00000000..b99203e4 --- /dev/null +++ b/doc/index/misc/troff.mail @@ -0,0 +1,47 @@ +From edmoy@opal.Berkeley.Edu Mon Jul 28 15:26:02 1986 +Received: by monet.Berkeley.EDU (5.54/1.14) + id AA25164; Mon, 28 Jul 86 15:25:54 PDT +Received: by opal.Berkeley.Edu (4.20/5.6) + id AA05370; Mon, 28 Jul 86 15:25:50 pdt +Date: Mon, 28 Jul 86 15:25:50 pdt +From: edmoy@opal.Berkeley.Edu +Message-Id: <8607282225.AA05370@opal.Berkeley.Edu> +To: mis@monet.Berkeley.EDU +Subject: ditroff +Status: R + +. \" In the newest ditroff, number register .! is read-only and +. \" returns the exit status of the .sy command. Thus try to +. \" set .! to 99 and if it is the same, it is the old version. +. nr .! 99 +. ie \\n(.!=99 \{\ +. if "\\*(.T"aps" \{\ +. nr MA 100 +. nr EB 5 +. \} +. \} +. \" This is the new version of ditroff +. el \{\ + +From edmoy@opal.Berkeley.Edu Mon Jul 28 15:45:10 1986 +Received: by monet.Berkeley.EDU (5.54/1.14) + id AA25248; Mon, 28 Jul 86 15:45:05 PDT +Received: by opal.Berkeley.Edu (4.20/5.6) + id AA05702; Mon, 28 Jul 86 15:45:04 pdt +Date: Mon, 28 Jul 86 15:45:04 pdt +From: edmoy@opal.Berkeley.Edu +Message-Id: <8607282245.AA05702@opal.Berkeley.Edu> +To: mis@monet.Berkeley.EDU +Subject: Stop the presses! +Status: R + +Fixing troff to alias even those special characters seemed like something +I'd do (for completeness). And this is how you do it: + + .al \\' mumble + +(you need two backslashes). Now when you invoke \' you get mumble (the +same for \`). That should save you a lot of work! + +Ed + diff --git a/doc/index/print.sh b/doc/index/print.sh new file mode 100644 index 00000000..b5a0c5a9 --- /dev/null +++ b/doc/index/print.sh @@ -0,0 +1 @@ +ditroff -ms -Plz $* index.macs index.version6.reduced.troffinput diff --git a/doc/index/src/Makefile b/doc/index/src/Makefile new file mode 100644 index 00000000..3a029137 --- /dev/null +++ b/doc/index/src/Makefile @@ -0,0 +1,38 @@ +YFLAGS=-d # create y.tab.h +CFLAGS=-g +OBJS = reduce.o index.o +DOBJS = duphead.o index.o +UOBJS = unduphead.o index.o + +unduphead: ${UOBJS} + cc $(UOBJS) -ly -ll -o unduphead + +unduphead.o: reduce.h pagesizes.h + yacc -d unduphead.y + cc -g -c y.tab.c +# rm y.tab.c + mv y.tab.o unduphead.o + +duphead: ${DOBJS} + cc $(DOBJS) -ly -ll -o duphead + +duphead.o: reduce.h pagesizes.h + yacc -d duphead.y + cc -g -c y.tab.c +# rm y.tab.c + mv y.tab.o duphead.o + +reduce: ${OBJS} + cc $(OBJS) -ly -ll -o reduce + +reduce.o: reduce.h pagesizes.h + yacc -d reduce.y + cc -g -c y.tab.c +# rm y.tab.c + mv y.tab.o reduce.o + +index.o: index.h + lex index.l + cc $(CFLAGS) -c lex.yy.c +# rm lex.yy.c + mv lex.yy.o index.o diff --git a/doc/index/src/duphead.y b/doc/index/src/duphead.y new file mode 100644 index 00000000..f0e7026f --- /dev/null +++ b/doc/index/src/duphead.y @@ -0,0 +1,308 @@ +/* this program (modified from reduce.y) +should duplicate headwords on duplicate lines, +so we can sort and grep on them without losing information. +run prior to running reduce (or after modifying reduce to compare +adjacent lines for duplicate headwords). */ +%{ +#include "reduce.h" +#include +#include "pagesizes.h" /* contains last page information for each doc */ +int npages; /* current number of pages in group */ +#define MAXPAGES 300 +#define MAXHDLEN 200 +#define MAXSTRING 255 +Page pages[MAXPAGES]; /* contains an entire group's page references */ +char text[MAXHDLEN]=""; /* headword text */ +int initial=1; +%} +%union { + char *sptr; /* pointer to string */ + Page *pptr; /* pointer to page entry */ +} +%token HEADWORD +%token WORD +%token DUP +%token PAGE +%token WHITESPACE +%token ELLIPSIS + +%% +index: + | index group { + debugpr("group\n",10); + npages=0; + } + ; + +group: hdsentence '\n' { + debugpr("newhead\n",10); + } + | group dup '\n' + ; + +dup: DUP PAGE { + outputhead(); + outputpage($2,++npages); + debugpr("dup",10); + } + ; +hdsentence : + | HEADWORD { + debugpr("head",10); + sprintf(text,"%s",$1); + } + | hdsentence WORD { + debugpr("addword",10); + strcat(text,$2); + } + | hdsentence WHITESPACE { + debugpr("addwhite",10); + strcat(text,"\t"); + } + | hdsentence ELLIPSIS { + debugpr("ellipsis",10); + strcat(text,$2); + } + | hdsentence PAGE { + debugpr("headpage",10); + outputhead(); + outputpage($2,npages); + } + ; + +%% +#include +#include +extern int lineno; +#define YYDEBUG +char *progname; +jmp_buf reparse; +int debug=0; + +main(argc,argv) + char *argv[]; +{ + progname = argv[0]; + debug=0; + setjmp(reparse); + yyparse(); +} + +outputpage(p,position) + char *p; + int position; + { + if (debug>8) fprintf(stderr, "\nppage %s position %d ", p, position); + pages[position].filename[0]='\0'; + pages[position].percent[0]='\0'; + strcpy(pages[position].pageentry,"unknown"); + sscanf(p,"%s%s%s",pages[position].filename, + pages[position].percent, + pages[position].pageentry); + parsepageentry(&pages[position]); + if (debug>8) + fprintf(stderr, + "\naddpage posn %d file %s %s page %s \nsort %d vol %s section %d docnum %d docname %s pagenum %d\n", + position, + pages[position].filename, + pages[position].percent, + pages[position].pageentry, + pages[position].sortkey, + pages[position].volname, + pages[position].section, + pages[position].docnum, + pages[position].docname, + pages[position].pagenum); + printf("%s",p); + } + +parsepageentry(p) + Page *p; + { + char *colon, *minus, *lparen, *rparen; + char tmp[MAXSTRING]; + char *t; + + if (debug>8) + fprintf(stderr, "parsepageentry %s", p->pageentry); + if(strcmp(p->pageentry,"unknown")==0) { + intuitpageentry(p); + } + strcpy(tmp,p->pageentry); /* we work on it here */ + if (colon = index(tmp,':')) { + /* found a supplementary docname */ + *colon='\0'; + strcpy(p->volname,tmp); t=colon+1; + + if(strcmp(p->volname,"USD")==0) { + p->sortkey=4; + } + else if(strcmp(p->volname,"PS1")==0) { + p->sortkey=9; + } + else if(strcmp(p->volname,"PS2")==0) { + p->sortkey=10; + } + else if(strcmp(p->volname,"SMM")==0) { + p->sortkey=12; + } + else parseerror("bad supp volume name",p); + + if(minus=index(t,'-')) { + /* break out docnum and pagenum */ + *minus='\0'; + p->docnum=atoi(t); t=minus+1; + p->pagenum=atoi(t); + strcpy(p->docname,""); + } else parseerror("bogus supp",p); + + } else if (lparen = index(tmp,'(')) { + /* found a man page entry */ + *lparen='\0'; + strcpy(p->docname,tmp); t=lparen+1; + p->section=atoi(t); + p->docnum=0; + switch(p->section) { + case 1: + p->sortkey = 1; + strcpy(p->volname,"URM"); + break; + case 2: + p->sortkey = 5; + strcpy(p->volname,"PRM"); + break; + case 3: + p->sortkey = 6; + strcpy(p->volname,"PRM"); + break; + case 4: + p->sortkey = 7; + strcpy(p->volname,"PRM"); + break; + case 5: + p->sortkey = 8; + strcpy(p->volname,"PRM"); + break; + case 6: + p->sortkey = 2; + strcpy(p->volname,"URM"); + break; + case 7: + p->sortkey = 3; + strcpy(p->volname,"URM"); + break; + case 8: + p->sortkey = 11; + strcpy(p->volname,"SMM"); + break; + default: + parseerror("bad section number",p); + } + if (rparen = index(t,')')) + if(minus=index(rparen,'-')) { + t=minus+1; + p->pagenum=atoi(t); + } + else p->pagenum=0; + } else parseerror("neither man nor supp entry",p); +} + + +intuitpageentry(p) + Page *p; + { + char *q; + int docnum; + + if((q=index(p->filename,'.'))==0) parseerror("cant intuit",p); + q++; + docnum=atoi(q); + if(strncmp(p->filename,"USD.",4)==0) { + sprintf(p->pageentry,"USD:%d-0",docnum); + return; + } + else if(strncmp(p->filename,"PS1.",4)==0) { + sprintf(p->pageentry,"PS1:%d-0",docnum); + return; + } + else if(strncmp(p->filename,"PS2.",4)==0) { + sprintf(p->pageentry,"PS2:%d-0",docnum); + return; + } + else if(strncmp(p->filename,"SMM.",4)==0) { + sprintf(p->pageentry,"SMM:%d-0",docnum); + return; + } else { /* must be a man page */ + sprintf(p->pageentry,"%s",p->filename); + if((q=index(p->pageentry,'.'))==0) parseerror("cant intuit man",p); + else { + *q='('; + if (*(++q)=='N') *q='1'; /* correct man(n) to man(1) */ + } + + if((q=index(p->pageentry,':'))==0) parseerror("cant intuit man",p); + else *q=')'; + strcat(p->pageentry,"-0"); + } +} + +int compar(p1, p2) + Page *p1, *p2; +{ + int ret; + + if (p1->sortkey < p2->sortkey) return -1; + else if (p1->sortkey == p2->sortkey) { + if (p1->docnum < p2->docnum) return -1; + else if (p1->docnum == p2->docnum) { + if ((ret=strcmp(p1->docname, p2->docname))==0) { + return (p1->pagenum - p2->pagenum); + } else return ret; + } else return 1; + } else return 1; +} + +int samedoc(i, j) + int i,j; +{ + if (pages[i].sortkey != pages[j].sortkey) return 0; + if (pages[i].docnum != pages[j].docnum) return 0; + if ((strcmp(pages[i].docname, pages[j].docname)==0) && + (pages[i].docnum == pages[j].docnum)) + return 1; + else return 0; +} + +outputhead() +{ + printf("\n%s ",text); +} + +yyerror(s) /* syntax error routine */ + char *s; +{ + prerror(s, (char *) 0); +} + +prerror(s1,s2) + char *s1, *s2; +{ + fprintf(stderr, "%s", s1); + if (s2) fprintf(stderr, "%s", s2); + fprintf(stderr, " at line %d, token %d\n", lineno, yychar); + +} + +debugpr(s1,level) + char *s1; + int level; +{ + if (debug>level) fprintf(stderr, "%s", s1); +} + +parseerror(s1,p) + char *s1; + Page *p; +{ + fprintf(stderr, "%s:%s\n", s1, p->pageentry); +} diff --git a/doc/index/src/index.l b/doc/index/src/index.l new file mode 100644 index 00000000..c9090470 --- /dev/null +++ b/doc/index/src/index.l @@ -0,0 +1,110 @@ +%{ +#include "reduce.h" +#include "y.tab.h" +int lineno = 1; /* since recognition involves readahead, this is + usually a few greater than where the error occurs, like at the beginning + of the next group */ +extern char text[]; +extern int debug; +%} +B [ ] +W [ \t] +D [^ \t\n] +DNP [^ .\t\n] +AN [-A-Za-z0-9_+] +A [A-Za-z_] +%% +^{D}+ { + /* index head entry */ +#define DEBUG +#ifdef DEBUG + if(debug>14) { + printf ("HEAD"); + ECHO; + } +#endif + yylval.sptr = &yytext[0]; + return HEADWORD; +} +{D}* { + /* words in an entry */ +#ifdef DEBUG + if(debug>14) { + printf ("WORD"); + ECHO; + } +#endif + yylval.sptr = &yytext[0]; + return WORD; +} +"..." { + /* ellipsis in long index entries */ +#ifdef DEBUG + if(debug>14) { + printf ("..."); + ECHO; + } +#endif + yylval.sptr = &yytext[0]; + return ELLIPSIS; +} +{W} { +#ifdef DEBUG + ECHO; +#endif + strcat(text," "); /* kludge, should be returned */ + ; +} +^{W}+\"{W}+ { + /* index entry after head */ +#ifdef DEBUG + if(debug>14) { + printf ("DUP"); + ECHO; + } +#endif + return DUP; +} +{W}{W}+ { + /* white space */ +#ifdef DEBUG + if(debug>14) { + printf("WHITE"); + ECHO; + } +#endif + return WHITESPACE; +} +{AN}+"."{AN}+:{W}+[0-9]+%.*$ { + /* page reference */ +#ifdef DEBUG + if(debug>14) { + printf("PAGE"); + ECHO; + } +#endif + yylval.pptr = &yytext[0]; + return PAGE; +} +\n { + lineno++; +#ifdef DEBUG + if(debug>14) { + printf("NL"); + ECHO; + } +#endif + return '\n'; +} +. { +#ifdef DEBUG + if(debug>14) { + printf("OTHER"); + ECHO; + } +#endif + return yytext[0]; +} + +%% +/* user routines */ diff --git a/doc/index/src/pagesizes.h b/doc/index/src/pagesizes.h new file mode 100644 index 00000000..6ca45da3 --- /dev/null +++ b/doc/index/src/pagesizes.h @@ -0,0 +1,884 @@ +typedef struct LASTPAGES { + char docname[30]; + int lastpagenum; +} LASTPAGES; +LASTPAGES lastpages[]= { /* contains an entry for the last page of every doc */ +{"PS1:1", 37}, +{"PS1:2", 28}, +{"PS1:3", 11}, +{"PS1:4", 50}, +{"PS1:5", 14}, +{"PS1:6", 43}, +{"PS1:7", 25}, +{"PS1:8", 41}, +{"PS1:9", 11}, +{"PS1:10", 27}, +{"PS1:11", 6}, +{"PS1:12", 9}, +{"PS1:13", 22}, +{"PS1:14", 15}, +{"PS1:15", 33}, +{"PS1:16", 13}, +{"PS1:17", 6}, +{"PS1:18", 2}, +{"PS2:1", 15}, +{"PS2:2", 14}, +{"PS2:3", 16}, +{"PS2:4", 10}, +{"PS2:5", 7}, +{"PS2:6", 35}, +{"PS2:7", 37}, +{"PS2:8", 14}, +{"PS2:9", 157}, +{"PS2:10", 88}, +{"SMM:1", 65}, +{"SMM:2", 34}, +{"SMM:3", 2}, /* this is wrong */ +{"SMM:4", 3}, +{"SMM:5", 22}, +{"SMM:6", 8}, +{"SMM:07", 39}, +{"SMM:7", 39}, +{"SMM:8", 4}, +{"SMM:9", 21}, +{"SMM:10", 24}, +{"SMM:11", 16}, +{"SMM:12", 23}, +{"SMM:13", 34}, +{"SMM:14", 15}, +{"SMM:15", 27}, +{"SMM:16", 14}, +{"SMM:17", 3}, +{"SMM:18", 6}, +{"SMM:19", 28}, +{"SMM:20", 11}, +{"SMM:21", 7}, +{"SMM:22", 10}, +{"USD:1", 14}, +{"USD:2", 12}, +{"USD:3", 24}, +{"USD:4", 45}, +{"USD:5", 8}, +{"USD:6", 14}, +{"USD:7", 25}, +{"USD:8", 112}, +{"USD:9", 13}, +{"USD:10", 12}, +{"USD:11", 15}, +{"USD:12", 10}, +{"USD:13", 16}, +{"USD:14", 24}, +{"USD:15", 29}, +{"USD:16", 19}, +{"USD:17", 48}, +{"USD:18", 10}, +{"USD:19", 8}, +{"USD:20", 8}, +{"USD:21", 3}, +{"USD:22", 19}, +{"USD:23", 16}, +{"USD:24", 35}, +{"USD:25", 16}, +{"USD:26", 8}, +{"USD:27", 11}, +{"USD:28", 18}, +{"USD:29", 10}, +{"USD:30", 12}, +{"USD:31", 17}, +{"USD:32", 15}, +{"USD:33", 9}, +{"USD:34", 13}, +{"ADB(1)", 6}, +{"ADDBIB(1)", 2}, +{"APPLY(1)", 1}, +{"APROPOS(1)", 1}, +{"AR(1)", 2}, +{"AS(1)", 1}, +{"AT(1)", 2}, +{"ATQ(1)", 1}, +{"ATRM(1)", 1}, +{"AWK(1)", 2}, +{"BASENAME(1)", 1}, +{"BC(1)", 2}, +{"BIFF(1)", 1}, +{"BINMAIL(1)", 2}, +{"CAL(1)", 1}, +{"CALENDAR(1)", 1}, +{"CAT(1)", 1}, +{"CB(1)", 1}, +{"CC(1)", 3}, +{"CD(1)", 1}, +{"CHECKNR(1)", 1}, +{"CHGRP(1)", 1}, +{"CHMOD(1)", 1}, +{"CLEAR(1)", 1}, +{"CMP(1)", 1}, +{"COL(1)", 1}, +{"COLCRT(1)", 1}, +{"COLRM(1)", 1}, +{"COMM(1)", 1}, +{"COMPRESS(1)", 2}, +{"CP(1)", 1}, +{"CRYPT(1)", 1}, +{"CSH(1)", 21}, +{"CTAGS(1)", 2}, +{"DATE(1)", 1}, +{"DBX(1)", 7}, +{"DC(1)", 2}, +{"DD(1)", 2}, +{"DEROFF(1)", 1}, +{"DF(1)", 1}, +{"DICTION(1)", 1}, +{"DIFF(1)", 2}, +{"DIFF3(1)", 2}, +{"DU(1)", 1}, +{"ECHO(1)", 1}, +{"ED(1)", 6}, +{"EFL(1)", 1}, +{"EQN(1)", 2}, +{"ERROR(1)", 3}, +{"EX(1)", 2}, +{"EXPAND(1)", 1}, +{"EXPR(1)", 1}, +{"F77(1)", 3}, +{"FALSE(1)", 1}, +{"FILE(1)", 1}, +{"FIND(1)", 2}, +{"FINGER(1)", 1}, +{"FMT(1)", 1}, +{"FOLD(1)", 1}, +{"FP(1)", 1}, +{"FPR(1)", 1}, +{"FROM(1)", 1}, +{"FSPLIT(1)", 1}, +{"FTP(1C)", 7}, +{"GCORE(1)", 1}, +{"GPROF(1)", 2}, +{"GRAPH(1G)", 1}, +{"GREP(1)", 2}, +{"GROUPS(1)", 1}, +{"HEAD(1)", 1}, +{"HOSTID(1)", 1}, +{"HOSTNAME(1)", 1}, +{"INDENT(1)", 1}, +{"INSTALL(1)", 1}, +{"INTRO(1)", 1}, +{"IOSTAT(1)", 1}, +{"JOIN(1)", 1}, +{"KILL(1)", 1}, +{"LAST(1)", 1}, +{"LASTCOMM(1)", 1}, +{"LD(1)", 2}, +{"LEARN(1)", 2}, +{"LEAVE(1)", 1}, +{"LEX(1)", 1}, +{"LINT(1)", 2}, +{"LISP(1)", 1}, +{"LISZT(1)", 2}, +{"LN(1)", 1}, +{"LOCK(1)", 1}, +{"LOGGER(1)", 1}, +{"LOGIN(1)", 1}, +{"LOOK(1)", 1}, +{"LOOKBIB(1)", 1}, +{"LORDER(1)", 1}, +{"LPQ(1)", 1}, +{"LPR(1)", 2}, +{"LPRM(1)", 1}, +{"LPTEST(1)", 1}, +{"LS(1)", 2}, +{"LXREF(1)", 1}, +{"M4(1)", 2}, +{"MAIL(1)", 7}, +{"MAKE(1)", 3}, +{"MAN(1)", 1}, +{"MESG(1)", 1}, +{"MKDIR(1)", 1}, +{"MKSTR(1)", 1}, +{"MORE(1)", 3}, +{"MSET(1)", 1}, +{"MSGS(1)", 2}, +{"MT(1)", 1}, +{"MV(1)", 1}, +{"NETSTAT(1)", 2}, +{"NEWALIASES(1)", 1}, +{"NICE(1)", 1}, +{"NM(1)", 1}, +{"NROFF(1)", 1}, +{"OD(1)", 2}, +{"PAGESIZE(1)", 1}, +{"PASSWD(1)", 1}, +{"PC(1)", 2}, +{"PDX(1)", 4}, +{"PI(1)", 2}, +{"PIX(1)", 1}, +{"PLOT(1G)", 2}, +{"PMERGE(1)", 1}, +{"PR(1)", 1}, +{"PRINTENV(1)", 1}, +{"PROF(1)", 1}, +{"PS(1)", 3}, +{"PTX(1)", 1}, +{"PWD(1)", 1}, +{"PX(1)", 1}, +{"PXP(1)", 2}, +{"PXREF(1)", 1}, +{"QUOTA(1)", 1}, +{"RANLIB(1)", 1}, +{"RATFOR(1)", 1}, +{"RCP(1C)", 1}, +{"RDIST(1)", 4}, +{"REFER(1)", 2}, +{"REV(1)", 1}, +{"RLOGIN(1C)", 1}, +{"RM(1)", 1}, +{"RMAIL(1)", 1}, +{"RMDIR(1)", 1}, +{"ROFFBIB(1)", 1}, +{"RSH(1C)", 1}, +{"RUPTIME(1C)", 1}, +{"RWHO(1C)", 1}, +{"SCCS(1)", 3}, +{"SCRIPT(1)", 1}, +{"SED(1)", 3}, +{"SENDBUG(1)", 1}, +{"SH(1)", 6}, +{"SIZE(1)", 1}, +{"SLEEP(1)", 1}, +{"SOELIM(1)", 1}, +{"SORT(1)", 2}, +{"SORTBIB(1)", 1}, +{"SPELL(1)", 1}, +{"SPLINE(1G)", 1}, +{"SPLIT(1)", 1}, +{"STRINGS(1)", 1}, +{"STRIP(1)", 1}, +{"STRUCT(1)", 2}, +{"STTY(1)", 3}, +{"STYLE(1)", 1}, +{"SU(1)", 1}, +{"SUM(1)", 1}, +{"SYMORDER(1)", 1}, +{"SYSLINE(1)", 2}, +{"SYSTAT(1)", 5}, +{"TABS(1)", 1}, +{"TAIL(1)", 1}, +{"TALK(1)", 1}, +{"TAR(1)", 2}, +{"TBL(1)", 1}, +{"TC(1)", 1}, +{"TCOPY(1)", 1}, +{"TEE(1)", 1}, +{"TELNET(1C)", 4}, +{"TEST(1)", 1}, +{"TFTP(1C)", 2}, +{"TIME(1)", 1}, +{"TIP(1C)", 4}, +{"TIP(1)", 4}, /* added manually */ +{"TK(1)", 1}, +{"TN3270(1)", 2}, +{"TOUCH(1)", 1}, +{"TP(1)", 2}, +{"TR(1)", 1}, +{"TROFF(1)", 2}, +{"TRUE(1)", 1}, +{"TSET(1)", 4}, +{"TSORT(1)", 1}, +{"TTY(1)", 1}, +{"UL(1)", 1}, +{"UNIFDEF(1)", 1}, +{"UNIQ(1)", 1}, +{"UNITS(1)", 1}, +{"UPTIME(1)", 1}, +{"USERS(1)", 1}, +{"UUCP(1C)", 2}, +{"UUENCODE(1C)", 1}, +{"UULOG(1C)", 1}, +{"UUNAME(1C)", 1}, +{"UUQ(1C)", 1}, +{"UUSEND(1C)", 1}, +{"UUX(1C)", 2}, +{"VACATION(1)", 1}, +{"VGRIND(1)", 2}, +{"VI(1)", 1}, +{"VLP(1)", 1}, +{"VMSTAT(1)", 2}, +{"VWIDTH(1)", 1}, +{"W(1)", 1}, +{"WAIT(1)", 1}, +{"WALL(1)", 1}, +{"WC(1)", 1}, +{"WHAT(1)", 1}, +{"WHATIS(1)", 1}, +{"WHEREIS(1)", 1}, +{"WHICH(1)", 1}, +{"WHO(1)", 1}, +{"WHOAMI(1)", 1}, +{"WHOIS(1)", 1}, +{"WINDOW(1)", 7}, +{"WRITE(1)", 1}, +{"XSEND(1)", 1}, +{"XSTR(1)", 1}, +{"YACC(1)", 1}, +{"YES(1)", 1}, +{"ACCEPT(2)", 1}, +{"ACCESS(2)", 2}, +{"ACCT(2)", 1}, +{"ADJTIME(2)", 1}, +{"BIND(2)", 2}, +{"BRK(2)", 1}, +{"CHDIR(2)", 1}, +{"CHMOD(2)", 2}, +{"CHOWN(2)", 2}, +{"CHROOT(2)", 1}, +{"CLOSE(2)", 1}, +{"CONNECT(2)", 2}, +{"CREAT(2)", 2}, +{"DUP(2)", 1}, +{"EXECVE(2)", 2}, +{"EXIT(2)", 1}, +{"FCNTL(2)", 2}, +{"FLOCK(2)", 1}, +{"FORK(2)", 1}, +{"FSYNC(2)", 1}, +{"GETDTABLESIZE(2)", 1}, +{"GETGID(2)", 1}, +{"GETGROUPS(2)", 1}, +{"GETHOSTID(2)", 1}, +{"GETHOSTNAME(2)", 1}, +{"GETITIMER(2)", 2}, +{"GETPAGESIZE(2)", 1}, +{"GETPEERNAME(2)", 1}, +{"GETPGRP(2)", 1}, +{"GETPID(2)", 1}, +{"GETPRIORITY(2)", 1}, +{"GETRLIMIT(2)", 2}, +{"GETRUSAGE(2)", 2}, +{"GETSOCKNAME(2)", 1}, +{"GETSOCKOPT(2)", 2}, +{"GETTIMEOFDAY(2)", 1}, +{"GETUID(2)", 1}, +{"INTRO(2)", 7}, +{"IOCTL(2)", 1}, +{"KILL(2)", 1}, +{"KILLPG(2)", 1}, +{"LINK(2)", 2}, +{"LISTEN(2)", 1}, +{"LSEEK(2)", 1}, +{"MKDIR(2)", 2}, +{"MKNOD(2)", 2}, +{"MOUNT(2)", 2}, +{"OPEN(2)", 2}, +{"PIPE(2)", 1}, +{"PROFIL(2)", 1}, +{"PTRACE(2)", 2}, +{"QUOTA(2)", 2}, +{"READ(2)", 2}, +{"READLINK(2)", 1}, +{"REBOOT(2)", 1}, +{"RECV(2)", 2}, +{"RENAME(2)", 2}, +{"RMDIR(2)", 1}, +{"SELECT(2)", 2}, +{"SEND(2)", 2}, +{"SETGROUPS(2)", 1}, +{"SETPGRP(2)", 1}, +{"SETQUOTA(2)", 1}, +{"SETREGID(2)", 1}, +{"SETREUID(2)", 1}, +{"SHUTDOWN(2)", 1}, +{"SIGBLOCK(2)", 1}, +{"SIGPAUSE(2)", 1}, +{"SIGRETURN(2)", 1}, +{"SIGSETMASK(2)", 1}, +{"SIGSTACK(2)", 1}, +{"SIGVEC(2)", 3}, +{"SOCKET(2)", 2}, +{"SOCKETPAIR(2)", 1}, +{"STAT(2)", 3}, +{"SWAPON(2)", 1}, +{"SYMLINK(2)", 2}, +{"SYNC(2)", 1}, +{"SYSCALL(2)", 1}, +{"TRUNCATE(2)", 1}, +{"UMASK(2)", 1}, +{"UNLINK(2)", 1}, +{"UTIMES(2)", 1}, +{"VFORK(2)", 1}, +{"VHANGUP(2)", 1}, +{"WAIT(2)", 2}, +{"WRITE(2)", 2}, +{"ABORT(3)", 1}, +{"ABORT(3F)", 1}, +{"ABS(3)", 1}, +{"ACCESS(3F)", 1}, +{"ALARM(3C)", 1}, +{"ALARM(3F)", 1}, +{"ASINH(3M)", 1}, +{"ASSERT(3)", 1}, +{"ATOF(3)", 1}, +{"BESSEL(3F)", 1}, +{"BIT(3F)", 1}, +{"BSTRING(3)", 1}, +{"BYTEORDER(3N)", 1}, +{"CHDIR(3F)", 1}, +{"CHMOD(3F)", 1}, +{"CRYPT(3)", 1}, +{"CTIME(3)", 2}, +{"CTYPE(3)", 1}, +{"CURSES(3X)", 2}, +{"DBM(3X)", 2}, +{"DIRECTORY(3)", 2}, +{"ECVT(3)", 1}, +{"END(3)", 1}, +{"ERF(3M)", 1}, +{"ETIME(3F)", 1}, +{"EXECL(3)", 2}, +{"EXIT(3)", 1}, +{"EXIT(3F)", 1}, +{"EXP(3M)", 2}, +{"FCLOSE(3S)", 1}, +{"FDATE(3F)", 1}, +{"FERROR(3S)", 1}, +{"FLMIN(3F)", 1}, +{"FLOOR(3M)", 1}, +{"FLUSH(3F)", 1}, +{"FOPEN(3S)", 1}, +{"FORK(3F)", 1}, +{"FREAD(3S)", 1}, +{"FREXP(3)", 1}, +{"FSEEK(3F)", 1}, +{"FSEEK(3S)", 1}, +{"GETARG(3F)", 1}, +{"GETC(3F)", 1}, +{"GETC(3S)", 1}, +{"GETCWD(3F)", 1}, +{"GETDISKBYNAME(3)", 1}, +{"GETENV(3)", 1}, +{"GETENV(3F)", 1}, +{"GETFSENT(3)", 1}, +{"GETGRENT(3)", 1}, +{"GETHOSTBYNAME(3N)", 2}, +{"GETHOSTBYNAME(3)", 2}, /* these entries from manual correction */ +{"GETLOG(3F)", 1}, +{"GETLOGIN(3)", 1}, +{"GETNETENT(3N)", 1}, +{"GETOPT(3)", 2}, +{"GETPASS(3)", 1}, +{"GETPID(3F)", 1}, +{"GETPROTOENT(3N)", 1}, +{"GETPW(3C)", 1}, +{"GETPWENT(3)", 2}, +{"GETS(3S)", 1}, +{"GETSERVENT(3N)", 1}, +{"GETTTYENT(3)", 2}, +{"GETUID(3F)", 1}, +{"GETUSERSHELL(3)", 1}, +{"GETWD(3)", 1}, +{"HOSTNM(3F)", 1}, +{"HYPOT(3M)", 1}, +{"IDATE(3F)", 1}, +{"IEEE(3M)", 2}, +{"INDEX(3F)", 1}, +{"INET(3N)", 2}, +{"INFNAN(3M)", 2}, +{"INITGROUPS(3)", 1}, +{"INSQUE(3)", 1}, +{"INTRO(3)", 7}, +{"INTRO(3F)", 3}, +{"IOINIT(3F)", 2}, +{"J0(3M)", 1}, +{"KILL(3F)", 1}, +{"LGAMMA(3M)", 1}, +{"LIB2648(3X)", 5}, +{"LINK(3F)", 1}, +{"LOC(3F)", 1}, +{"LONG(3F)", 1}, +{"MALLOC(3)", 2}, +{"MALLOC(3F)", 2}, +{"MATH(3M)", 7}, +{"MKTEMP(3)", 1}, +{"MONITOR(3)", 2}, +{"MP(3X)", 2}, +{"NDBM(3)", 2}, +{"NICE(3C)", 1}, +{"NLIST(3)", 1}, +{"NS(3N)", 1}, +{"PAUSE(3C)", 1}, +{"PERROR(3)", 1}, +{"PERROR(3F)", 2}, +{"PLOT(3F)", 1}, +{"PLOT(3X)", 2}, +{"POPEN(3)", 1}, +{"PRINTF(3S)", 2}, +{"PSIGNAL(3)", 1}, +{"PUTC(3F)", 1}, +{"PUTC(3S)", 1}, +{"PUTS(3S)", 1}, +{"QSORT(3)", 1}, +{"QSORT(3F)", 1}, +{"RAND(3C)", 1}, +{"RAND(3F)", 1}, +{"RANDOM(3)", 2}, +{"RANDOM(3F)", 1}, +{"RCMD(3)", 2}, +{"REGEX(3)", 1}, +{"RENAME(3F)", 1}, +{"RESOLVER(3)", 2}, +{"REXEC(3)", 1}, +{"SCANDIR(3)", 1}, +{"SCANF(3S)", 2}, +{"SETBUF(3S)", 1}, +{"SETJMP(3)", 1}, +{"SETUID(3)", 1}, +{"SIGINTERRUPT(3)", 1}, +{"SIGNAL(3C)", 3}, +{"SIGNAL(3F)", 1}, +{"SIN(3M)", 2}, +{"SINH(3M)", 1}, +{"SLEEP(3)", 1}, +{"SLEEP(3F)", 1}, +{"SQRT(3M)", 1}, +{"STAT(3F)", 1}, +{"STDIO(3S)", 2}, +{"STRING(3)", 1}, +{"STTY(3C)", 1}, +{"SWAB(3)", 1}, +{"SYSLOG(3)", 2}, +{"SYSTEM(3)", 1}, +{"SYSTEM(3F)", 1}, +{"TERMCAP(3X)", 2}, +{"TIME(3C)", 1}, +{"TIME(3F)", 1}, +{"TIMES(3C)", 1}, +{"TOPEN(3F)", 2}, +{"TRAPER(3F)", 1}, +{"TRAPOV(3F)", 1}, +{"TRPFPE(3F)", 1}, +{"TTYNAM(3F)", 1}, +{"TTYNAME(3)", 1}, +{"UALARM(3)", 1}, +{"UNGETC(3S)", 1}, +{"UNLINK(3F)", 1}, +{"USLEEP(3)", 1}, +{"UTIME(3C)", 1}, +{"VALLOC(3C)", 1}, +{"VARARGS(3)", 2}, +{"VLIMIT(3C)", 1}, +{"VTIMES(3C)", 1}, +{"WAIT(3F)", 1}, +{"ACC(4)", 1}, +{"AD(4)", 1}, +{"ARP(4P)", 2}, +{"AUTOCONF(4)", 2}, +{"BK(4)", 1}, +{"CONS(4)", 1}, +{"CRL(4)", 1}, +{"CSS(4)", 1}, +{"CT(4)", 1}, +{"DDN(4)", 1}, +{"DE(4)", 1}, +{"DH(4)", 1}, +{"DHU(4)", 1}, +{"DMC(4)", 1}, +{"DMF(4)", 1}, +{"DMZ(4)", 1}, +{"DN(4)", 1}, +{"DRUM(4)", 1}, +{"DZ(4)", 1}, +{"EC(4)", 1}, +{"EN(4)", 1}, +{"EX(4)", 1}, +{"FL(4)", 1}, +{"HDH(4)", 1}, +{"HK(4)", 2}, +{"HP(4)", 4}, +{"HT(4)", 1}, +{"HY(4)", 1}, +{"ICMP(4P)", 1}, +{"IDP(4P)", 2}, +{"IK(4)", 1}, +{"IL(4)", 1}, +{"IMP(4)", 2}, +{"IMP(4P)", 1}, +{"INET(4F)", 2}, +{"INTRO(4)", 2}, +{"INTRO(4N)", 4}, +{"IP(4P)", 1}, +{"IX(4)", 1}, +{"KG(4)", 1}, +{"LO(4)", 1}, +{"LP(4)", 1}, +{"MEM(4)", 1}, +{"MT(4)", 1}, +{"MTIO(4)", 2}, +{"NP(4)", 2}, +{"NS(4F)", 2}, +{"NSIP(4)", 1}, +{"NULL(4)", 1}, +{"PCL(4)", 1}, +{"PS(4)", 2}, +{"PTY(4)", 2}, +{"QE(4)", 1}, +{"RX(4)", 2}, +{"SPP(4P)", 2}, +{"TB(4)", 1}, +{"TCP(4P)", 2}, +{"TM(4)", 1}, +{"TMSCP(4)", 1}, +{"TS(4)", 1}, +{"TTY(4)", 11}, +{"TU(4)", 1}, +{"UDA(4)", 3}, +{"UDP(4P)", 1}, +{"UP(4)", 3}, +{"UT(4)", 1}, +{"UU(4)", 2}, +{"VA(4)", 2}, +{"VP(4)", 1}, +{"VV(4)", 1}, +{"L-DEVICES(5)", 2}, +{"L-DIALCODES(5)", 1}, +{"L.ALIASES(5)", 1}, +{"L.CMDS(5)", 1}, +{"L.SYS(5)", 4}, +{"L_ALIASES(5)", 1}, /* indexer has problems with a.b.c because of versioning */ +{"L_CMDS(5)", 1}, +{"L_SYS(5)", 4}, +{"USERFILE(5)", 2}, +{"A.OUT(5)", 3}, +{"ACCT(5)", 2}, +{"ALIASES(5)", 1}, +{"AR(5)", 1}, +{"CORE(5)", 1}, +{"DBX(5)", 5}, +{"DIR(5)", 2}, +{"DISKTAB(5)", 1}, +{"DUMP(5)", 2}, +{"FS(5)", 4}, +{"FSTAB(5)", 1}, +{"GETTYTAB(5)", 3}, +{"GROUP(5)", 1}, +{"HOSTS(5)", 1}, +{"MAP3270(5)", 5}, +{"MTAB(5)", 1}, +{"NETWORKS(5)", 1}, +{"PASSWD(5)", 1}, +{"PHONES(5)", 1}, +{"PLOT(5)", 1}, +{"PRINTCAP(5)", 2}, +{"PROTOCOLS(5)", 1}, +{"REMOTE(5)", 2}, +{"RESOLVER(5)", 1}, +{"SERVICES(5)", 1}, +{"STAB(5)", 2}, +{"TAR(5)", 2}, +{"TERMCAP(5)", 14}, +{"TP(5)", 1}, +{"TTYS(5)", 1}, +{"TYPES(5)", 2}, +{"UTMP(5)", 1}, +{"UUENCODE(5)", 1}, +{"VFONT(5)", 1}, +{"VGRINDEFS(5)", 2}, +{"AARDVARK(6)", 1}, +{"ADVENTURE(6)", 1}, +{"ARITHMETIC(6)", 1}, +{"BACKGAMMON(6)", 1}, +{"BANNER(6)", 1}, +{"BATTLESTAR(6)", 2}, +{"BCD(6)", 1}, +{"BOGGLE(6)", 1}, +{"CANFIELD(6)", 1}, +{"CHESS(6)", 1}, +{"CHING(6)", 1}, +{"CRIBBAGE(6)", 2}, +{"DOCTOR(6)", 1}, +{"FISH(6)", 1}, +{"FORTUNE(6)", 1}, +{"HANGMAN(6)", 1}, +{"HUNT(6)", 3}, +{"MILLE(6)", 3}, +{"MONOP(6)", 2}, +{"NUMBER(6)", 1}, +{"QUIZ(6)", 1}, +{"RAIN(6)", 1}, +{"ROBOTS(6)", 2}, +{"ROGUE(6)", 1}, +{"SAIL(6)", 13}, +{"SNAKE(6)", 1}, +{"TREK(6)", 1}, +{"WORM(6)", 1}, +{"WORMS(6)", 1}, +{"WUMP(6)", 1}, +{"ZORK(6)", 1}, +{"ASCII(7)", 1}, +{"ENVIRON(7)", 1}, +{"EQNCHAR(7)", 2}, +{"HIER(7)", 6}, +{"INTRO(7)", 1}, +{"MAILADDR(7)", 3}, +{"MAN(7)", 2}, +{"ME(7)", 3}, +{"MS(7)", 3}, +{"TERM(7)", 1}, +{"XNSROUTED(8C)", 2}, +{"AC(8)", 1}, +{"ADDUSER(8)", 1}, +{"ARFF(8V)", 2}, +{"ARP(8C)", 1}, +{"BAD144(8)", 2}, +{"BADSECT(8)", 1}, +{"BUGFILER(8)", 2}, +{"CATMAN(8)", 1}, +{"CHOWN(8)", 1}, +{"CLRI(8)", 1}, +{"COMSAT(8C)", 1}, +{"CONFIG(8)", 1}, +{"CRASH(8V)", 3}, +{"CRON(8)", 1}, +{"DCHECK(8)", 1}, +{"DISKPART(8)", 1}, +{"DMESG(8)", 1}, +{"DRTEST(8)", 1}, +{"DUMP(8)", 2}, +{"DUMPFS(8)", 1}, +{"EDQUOTA(8)", 1}, +{"FASTBOOT(8)", 1}, +{"FINGERD(8C)", 1}, +{"FORMAT(8V)", 3}, +{"FSCK(8)", 2}, +{"FTPD(8C)", 2}, +{"GETTABLE(8C)", 1}, +{"GETTY(8)", 1}, +{"HALT(8)", 1}, +{"HTABLE(8)", 1}, +{"ICHECK(8)", 1}, +{"IFCONFIG(8C)", 2}, +{"IMPLOG(8C)", 1}, +{"IMPLOGD(8C)", 1}, +{"INETD(8)", 2}, +{"INIT(8)", 2}, +{"INTRO(8)", 1}, +{"KGMON(8)", 1}, +{"LPC(8)", 2}, +{"LPD(8)", 2}, +{"MAKEDEV(8)", 1}, +{"MAKEKEY(8)", 1}, +{"MKFS(8)", 1}, +{"MKHOSTS(8)", 1}, +{"MKLOST+FOUND(8)", 1}, +{"MKNOD(8)", 1}, +{"MKPASSWD(8)", 1}, +{"MKPROTO(8)", 1}, +{"MOUNT(8)", 1}, +{"NAMED(8)", 2}, +{"NCHECK(8)", 1}, +{"NEWFS(8)", 2}, +{"PAC(8)", 1}, +{"PING(8)", 1}, +{"PSTAT(8)", 4}, +{"QUOT(8)", 1}, +{"QUOTACHECK(8)", 1}, +{"QUOTAON(8)", 1}, +{"RC(8)", 1}, +{"RDUMP(8C)", 1}, +{"REBOOT(8)", 3}, +{"RENICE(8)", 1}, +{"REPQUOTA(8)", 1}, +{"RESTORE(8)", 3}, +{"REXECD(8C)", 2}, +{"RLOGIND(8C)", 1}, +{"RMT(8C)", 2}, +{"ROUTE(8C)", 2}, +{"ROUTED(8C)", 3}, +{"RRESTORE(8C)", 1}, +{"RSHD(8C)", 2}, +{"RWHOD(8C)", 2}, +{"RXFORMAT(8V)", 1}, +{"SA(8)", 2}, +{"SAVECORE(8)", 1}, +{"SENDMAIL(8)", 4}, +{"SHUTDOWN(8)", 1}, +{"SLATTACH(8C)", 1}, +{"STICKY(8)", 1}, +{"SWAPON(8)", 1}, +{"SYNC(8)", 1}, +{"SYSLOGD(8)", 2}, +{"TALKD(8C)", 1}, +{"TELNETD(8C)", 1}, +{"TFTPD(8C)", 1}, +{"TIMED(8)", 1}, +{"TIMEDC(8)", 1}, +{"TRPT(8C)", 1}, +{"TRSP(8c)", 1}, +{"TUNEFS(8)", 2}, +{"UPDATE(8)", 1}, +{"UUCICO(8C)", 2}, +{"UUCLEAN(8C)", 1}, +{"UUPOLL(8C)", 1}, +{"UUSNAP(8C)", 1}, +{"UUXQT(8C)", 1}, +{"VIPW(8)", 1}, +{"ALI(1)", 1}, +{"ANNO(1)", 1}, +{"AP(8)", 2}, +{"BIB(1)", 2}, +{"BURST(1)", 2}, +{"CI(1)", 3}, +{"CO(1)", 3}, +{"COMP(1)", 2}, +{"CONFLICT(8)", 1}, +{"DIST(1)", 2}, +{"DP(8)", 1}, +{"FOLDER(1)", 2}, +{"FORW(1)", 3}, +{"IDENT(1)", 1}, +{"INC(1)", 2}, +{"INSTALL-MH(8)", 1}, +{"INVERT(1)", 2}, +{"JOVE(1)", 3}, +{"JOVE_RECOVER(1)", 2}, +{"MARK(1)", 2}, +{"MERGE(1)", 1}, +{"MH-ALIAS(5)", 3}, +{"MH-CHART(1)", 3}, +{"MH-FORMAT(5)", 3}, +{"MH-MAIL(5)", 3}, +{"MH-PROFILE(5)", 6}, +{"MH(1)", 3}, +{"MHL(1)", 4}, +{"MHMAIL(1)", 1}, +{"MHOOK(1)", 4}, +{"MHPATH(1)", 2}, +{"MSGCHK(1)", 1}, +{"MSH(1)", 3}, +{"NEXT(1)", 1}, +{"PACKF(1)", 1}, +{"PATCH(1)", 3}, +{"PICK(1)", 3}, +{"POST(8)", 2}, +{"PREV(1)", 1}, +{"PROMPTER(1)", 2}, +{"RCS(1)", 2}, +{"RCSDIFF(1)", 1}, +{"RCSFILE(5)", 3}, +{"RCSINTRO(1)", 1}, +{"RCSMERGE(1)", 1}, +{"REFILE(1)", 2}, +{"REPL(1)", 3}, +{"RLOG(1)", 2}, +{"RMF(1)", 1}, +{"RMM(1)", 1}, +{"SCAN(1)", 2}, +{"SCCSTORCS(8)", 1}, +{"SEND(1)", 2}, +{"SHOW(1)", 2}, +{"SORTM(1)", 1}, +{"TEACHJOVE(1)", 1}, +{"VMH(1)", 2}, +{"WHATNOW(1)", 2}, +{"WHOM(1)", 1}, +}; +int ndocs = { sizeof lastpages/sizeof lastpages[0] }; + diff --git a/doc/index/src/reduce.h b/doc/index/src/reduce.h new file mode 100644 index 00000000..ff3e86d8 --- /dev/null +++ b/doc/index/src/reduce.h @@ -0,0 +1,15 @@ +/* header for 4.3 index from thinking machines indexer */ +typedef struct Page { + char filename[30]; + char percent[30]; + char pageentry[30]; + /* these entries are computed from pageentry + or if unknown or blank, intuited from filename */ + int sortkey; /* output order, a function of vol and doc */ + char volname[4]; /* PRM, URM, USD, PS1, PS2, SMM */ + int section; /* for man pages: 1..8 */ + int docnum; /* for supplementary docs: 1..34 */ + char docname[30]; /* for man pages e.g. "cat" */ + int pagenum; /* page number within document; unknown = 0 */ +} Page; + diff --git a/doc/index/src/reduce.y b/doc/index/src/reduce.y new file mode 100644 index 00000000..018271ad --- /dev/null +++ b/doc/index/src/reduce.y @@ -0,0 +1,496 @@ +/* known bug: looks forward for - rather than back, so turns +L-devices into L. +should lower case most man page names */ + +%{ +#include "reduce.h" +#include +#include "pagesizes.h" /* contains last page information for each doc */ +int npages; /* current number of pages in group */ +extern int lineno; /* set by parser */ +#define MAXPAGES 300 +#define MAXHDLEN 200 +#define MAXSTRING 255 +Page pages[MAXPAGES]; /* contains an entire group's page references */ +char text[MAXHDLEN]=""; /* headword text */ +int initial=1; +%} +%union { + char *sptr; /* pointer to string */ + Page *pptr; /* pointer to page entry */ +} +%token HEADWORD +%token WORD +%token DUP +%token PAGE +%token WHITESPACE +%token ELLIPSIS + +%% +index: + | index group { + debugpr("group\n",10); + outputhead(); + sortpages(npages); + coalescepages(npages); /* which also outputs */ + npages=0; + } + ; + +group: hdsentence '\n' { + debugpr("newhead\n",10); + } + | group dup '\n' + ; + +dup: DUP PAGE { + addpage($2,++npages); + debugpr("dupadd",10); + } + ; +hdsentence : + | HEADWORD { + debugpr("head",10); + sprintf(text,"%s",$1); + } + | hdsentence WORD { + debugpr("addword",10); + strcat(text,$2); + } + | hdsentence WHITESPACE { + debugpr("addwhite",10); + strcat(text,"\t"); + } + | hdsentence ELLIPSIS { + debugpr("ellipsis",10); + strcat(text,$2); + } + | hdsentence PAGE { + debugpr("headpage",10); + addpage($2,npages); + } + ; + +%% +#include +#include +extern int lineno; +#define YYDEBUG +char *progname; +jmp_buf reparse; +int debug=0; + +main(argc,argv) + char *argv[]; +{ + progname = argv[0]; + debug=0; + setjmp(reparse); + yyparse(); +} + +addpage(p,position) + char *p; + int position; + { + if (debug>8) fprintf(stderr, "\nppage %s position %d ", p, position); + pages[position].filename[0]='\0'; + pages[position].percent[0]='\0'; + strcpy(pages[position].pageentry,"unknown"); + sscanf(p,"%s%s%s",pages[position].filename, + pages[position].percent, + pages[position].pageentry); + parsepageentry(&pages[position]); + if (debug>8) + fprintf(stderr, + "\naddpage posn %d file %s %s page %s \nsort %d vol %s section %d docnum %d docname %s pagenum %d\n", + position, + pages[position].filename, + pages[position].percent, + pages[position].pageentry, + pages[position].sortkey, + pages[position].volname, + pages[position].section, + pages[position].docnum, + pages[position].docname, + pages[position].pagenum); + } + +parsepageentry(p) + Page *p; + { + char *colon, *minus, *lparen, *rparen; + char tmp[MAXSTRING]; + char *t; + + if (debug>8) + fprintf(stderr, "parsepageentry %s", p->pageentry); + if(strcmp(p->pageentry,"unknown")==0) { + intuitpageentry(p); + } + strcpy(tmp,p->pageentry); /* we work on it here */ + if (colon = index(tmp,':')) { + /* found a supplementary docname */ + *colon='\0'; + strcpy(p->volname,tmp); t=colon+1; + + if(strcmp(p->volname,"USD")==0) { + p->sortkey=4; + } + else if(strcmp(p->volname,"PS1")==0) { + p->sortkey=9; + } + else if(strcmp(p->volname,"PS2")==0) { + p->sortkey=10; + } + else if(strcmp(p->volname,"SMM")==0) { + p->sortkey=12; + } + else parseerror("bad supp volume name",p); + + if(minus=index(t,'-')) { + /* break out docnum and pagenum */ + *minus='\0'; + p->docnum=atoi(t); t=minus+1; + p->pagenum=atoi(t); + strcpy(p->docname,""); + } else parseerror("bogus supp",p); + + } else if (lparen = index(tmp,'(')) { + /* found a man page entry */ + *lparen='\0'; + strcpy(p->docname,tmp); t=lparen+1; + p->section=atoi(t); + p->docnum=0; + switch(p->section) { + case 1: + p->sortkey = 1; + strcpy(p->volname,"URM"); + break; + case 2: + p->sortkey = 5; + strcpy(p->volname,"PRM"); + break; + case 3: + p->sortkey = 6; + strcpy(p->volname,"PRM"); + break; + case 4: + p->sortkey = 7; + strcpy(p->volname,"PRM"); + break; + case 5: + p->sortkey = 8; + strcpy(p->volname,"PRM"); + break; + case 6: + p->sortkey = 2; + strcpy(p->volname,"URM"); + break; + case 7: + p->sortkey = 3; + strcpy(p->volname,"URM"); + break; + case 8: + p->sortkey = 11; + strcpy(p->volname,"SMM"); + break; + default: + parseerror("bad section number",p); + } + if (rparen = index(t,')')) + if(minus=index(rparen,'-')) { + t=minus+1; + p->pagenum=atoi(t); + } + else p->pagenum=0; + } else parseerror("neither man nor supp entry",p); +} + + +intuitpageentry(p) + Page *p; + { + char *q; + int docnum; + + if((q=index(p->filename,'.'))==0) parseerror("cant intuit",p); + q++; + docnum=atoi(q); + if(strncmp(p->filename,"USD.",4)==0) { + sprintf(p->pageentry,"USD:%d-0",docnum); + return; + } + else if(strncmp(p->filename,"PS1.",4)==0) { + sprintf(p->pageentry,"PS1:%d-0",docnum); + return; + } + else if(strncmp(p->filename,"PS2.",4)==0) { + sprintf(p->pageentry,"PS2:%d-0",docnum); + return; + } + else if(strncmp(p->filename,"SMM.",4)==0) { + sprintf(p->pageentry,"SMM:%d-0",docnum); + return; + } else { /* must be a man page */ + sprintf(p->pageentry,"%s",p->filename); + if((q=index(p->pageentry,'.'))==0) parseerror("cant intuit man",p); + else { + *q='('; + if (*(++q)=='N') *q='1'; /* correct man(n) to man(1) */ + } + + if((q=index(p->pageentry,':'))==0) parseerror("cant intuit man",p); + else *q=')'; + strcat(p->pageentry,"-0"); + } +} + +int compar(p1, p2) + Page *p1, *p2; +{ + int ret; + + if (p1->sortkey < p2->sortkey) return -1; + else if (p1->sortkey == p2->sortkey) { + if (p1->docnum < p2->docnum) return -1; + else if (p1->docnum == p2->docnum) { + if ((ret=strcmp(p1->docname, p2->docname))==0) { + return (p1->pagenum - p2->pagenum); + } else return ret; + } else return 1; + } else return 1; +} + +sortpages(nentries) + int nentries; + { + int i; + /* if only one in group, no sort or key generation required */ + if(nentries==0) return 0; + qsort((char *)pages, nentries+1, sizeof pages[0], compar); +} +static int lastpos; /* save last position to speed up seach */ +int pagesindoc(pos) + int pos; +{ + int i; + char *p; + if (strncmp(lastpages[lastpos].docname, + pages[pos].pageentry, strlen(lastpages[i].docname))==0) { + /* found it quickly, same as last */ + return(lastpages[lastpos].lastpagenum); + } + for (i=0; i<=ndocs; i++) { + /* sigh, linear search */ + if (strncmp(lastpages[i].docname, + pages[pos].pageentry, strlen(lastpages[i].docname))==0) { + /* found it */ + lastpos=i; + return(lastpages[i].lastpagenum); + } + } + fprintf(stderr, "docwarning: not in lastpage pos %d: %s %s %s\n", pos, + pages[pos].filename, pages[pos].percent, pages[pos].pageentry); + return -1; + +} +/* */ +coalescepages(nentries) + int nentries; + { + int curdoc=0, last; + + if (nentries == 0) { /* nothing to coalesce */ + if (trywholedoc(curdoc,nentries) == 0) { + outputsingle(curdoc); + } + return 0; + } + while (curdoc <= nentries) { + if (last=trywholedoc(curdoc,nentries)) curdoc=last; + else if(findrangebegin(curdoc,nentries) >= 0) { + /* curdoc begins a range */ + last = findrangeend(curdoc,nentries); + outputrange(curdoc,last); + curdoc = last+1; + } else { + /* curdoc is a singleton reference */ + if (trywholedoc(curdoc,nentries) == 0) { + outputsingle(curdoc); + } + curdoc++; + + } + } +} + +static int printed; /* 1 means in the middle of printing a list */ +static int lastdoc; /* last printed document pointer */ + +int trywholedoc(startpos,nentries) + int startpos,nentries; + { + int nreferences[MAXPAGES]; /* number of references per page */ + int i = startpos, j, ntot=0, n; + char *p; + char s[MAXSTRING]; + + for (j=0; j<=MAXPAGES; j++) + nreferences[j]=0; + while (i <= nentries && samedoc(startpos, i)) { + nreferences[pages[i].pagenum]++; + i++; + } + if ((n=pagesindoc(startpos)) < 0) return 0; + for (j=0; j<=n; j++) /* number of pages with references */ + if(nreferences[j]) ntot++; + if (ntot >= (n+1)/2) { /* use whole document if lots of references */ + strcpy(s, pages[startpos].pageentry); + if (p=index(s, '-')) *p='\0'; + if (printed==0) { + printed++; + printf("%s", s); + } + else printf(", %s", s); + lastdoc=startpos; + return i; + } + else return 0; /* couldn't use whole document */ +} + +int findrangebegin(startpos,nentries) + int startpos,nentries; + { + int i; + for (i=startpos; i<=nentries; i++) { + if (samedoc(i,i+1) && + ((pages[i].pagenum == pages[i+1].pagenum) || + (pages[i].pagenum+1 == pages[i+1].pagenum))) + return i; + else return -1; + } +} + +int findrangeend(startpos,nentries) + int startpos,nentries; + { + int endpos=startpos+1; + while ((endpos+1) <=nentries) { + if (samedoc(endpos,endpos+1) && + ((pages[endpos].pagenum == pages[endpos+1].pagenum) || + ((pages[endpos].pagenum+1) == pages[endpos+1].pagenum))) + endpos++; + else { + /* gap of size one -- but is it bigger? */ + if ((endpos+1) > nentries) return endpos; + if ((!samedoc(endpos,endpos+1) || + ((pages[endpos].pagenum+2) < pages[endpos+1].pagenum))) + /* gap is two or bigger */ + return endpos; + else endpos++; + } + } + return endpos; +} + + + +outputsingle(pos) + int pos; + { + char s[MAXSTRING]; + char *p; + + if (pages[pos].pagenum) { /* real page numbers */ + if (printed==0) { + printed=1; + printf("%s",pages[pos].pageentry); + lastdoc=pos; + } else { + if (samedoc(pos, lastdoc)) + printf(",%d",pages[pos].pagenum); + else { /* new document name */ + lastdoc=pos; + printf(", %s",pages[pos].pageentry); + } + } + } else { /* page number is unknown, print warning, + output only document number */ + strcpy(s, pages[pos].pageentry); + if (p=index(s, '-')) *p='\0'; + if (printed==0) { + printed=1; + printf("%s",s); + } else { + printf(", %s",s); + } + fprintf(stderr, "warning: line %d %s %s %s appears as %s\n", + lineno, pages[pos].filename, pages[pos].percent, + pages[pos].pageentry, s); + } +} + + +outputrange(beginpos, endpos) + int beginpos, endpos; + { + if (pages[endpos].pagenum != pages[beginpos].pagenum) { + /* not a range of references to the same page */ + outputsingle(beginpos); + printf("..%d", pages[endpos].pagenum); + } else { + /* someday we will typographically mark this according + to number of entries in the range */ + outputsingle(beginpos); + } +} + +int samedoc(i, j) + int i,j; +{ + if (pages[i].sortkey != pages[j].sortkey) return 0; + if (pages[i].docnum != pages[j].docnum) return 0; + if ((strcmp(pages[i].docname, pages[j].docname)==0) && + (pages[i].docnum == pages[j].docnum)) + return 1; + else return 0; +} + +outputhead() +{ + /* the .X macro is for formatting the index entry; + the unpaddable space is for those unfortunate commands that + start with a . and thus resemble troff macros */ + printf("\"\n.X \"\\&%s\" \"",text); + printed=0; /* indicate not yet printed the first reference */ +} + +yyerror(s) /* syntax error routine */ + char *s; +{ + prerror(s, (char *) 0); +} + +prerror(s1,s2) + char *s1, *s2; +{ + fprintf(stderr, "line %d: %s", lineno, s1); + if (s2) fprintf(stderr, "%s", s2); + fprintf(stderr, " token %d\n", yychar); + +} + +debugpr(s1,level) + char *s1; + int level; +{ + if (debug>level) fprintf(stderr, "%s", s1); +} + +parseerror(s1,p) + char *s1; + Page *p; +{ + fprintf(stderr, "line %d: %s:%s\n", lineno, s1, p->pageentry); +} diff --git a/doc/index/src/splitindex.sh b/doc/index/src/splitindex.sh new file mode 100755 index 00000000..15f63990 --- /dev/null +++ b/doc/index/src/splitindex.sh @@ -0,0 +1,9 @@ +#! /bin/sh +# this should only be run on the dupheads version of the index +for i in a b c d e f g h i j k l m n o p q r s t u v w x y z +do +cat $* | grep -i "^$i" | sort -d -f >$i.sorted +echo $i +done +cat $* | egrep -v "^[a-zA-Z]" | sort -f >specials.sorted +cat specials.sorted ?.sorted >/tmp/index.merged diff --git a/doc/index/src/unduphead.y b/doc/index/src/unduphead.y new file mode 100644 index 00000000..29dacb5b --- /dev/null +++ b/doc/index/src/unduphead.y @@ -0,0 +1,326 @@ +/* this program (modified from duphead.y) +should contract duplicate headwords (independent of case) into " +so we can run reduce again. */ + +%{ +#include "reduce.h" +#include +#include +#include "pagesizes.h" /* contains last page information for each doc */ +int npages; /* current number of pages in group */ +#define MAXPAGES 300 +#define MAXHDLEN 200 +#define MAXSTRING 255 +Page pages[MAXPAGES]; /* contains an entire group's page references */ +char text[MAXHDLEN]=""; /* headword text */ +char oldtext[MAXHDLEN]=""; /* headword text for previous entry*/ +int initial=1; +%} +%union { + char *sptr; /* pointer to string */ + Page *pptr; /* pointer to page entry */ +} +%token HEADWORD +%token WORD +%token DUP +%token PAGE +%token WHITESPACE +%token ELLIPSIS + +%% +index: + | index group { + debugpr("group\n",10); + npages=0; + } + ; + +group: hdsentence '\n' { + debugpr("newhead\n",10); + } + | group dup '\n' + ; + +dup: DUP PAGE { + fprintf(stderr, "unduphead found a dup!"); + } + ; +hdsentence : + | HEADWORD { + debugpr("head",10); + sprintf(text,"%s",$1); + } + | hdsentence WORD { + debugpr("addword",10); + strcat(text,$2); + } + | hdsentence WHITESPACE { + debugpr("addwhite",10); + strcat(text,"\t"); + } + | hdsentence ELLIPSIS { + debugpr("ellipsis",10); + strcat(text,$2); + } + | hdsentence PAGE { + debugpr("headpage",10); + outputhead(); + outputpage($2,npages); + } + ; + +%% +#include +#include +extern int lineno; +#define YYDEBUG +char *progname; +jmp_buf reparse; +int debug=0; + +main(argc,argv) + char *argv[]; +{ + progname = argv[0]; + debug=0; + setjmp(reparse); + yyparse(); +} + +outputpage(p,position) + char *p; + int position; + { + if (debug>8) fprintf(stderr, "\nppage %s position %d ", p, position); + pages[position].filename[0]='\0'; + pages[position].percent[0]='\0'; + strcpy(pages[position].pageentry,"unknown"); + sscanf(p,"%s%s%s",pages[position].filename, + pages[position].percent, + pages[position].pageentry); + parsepageentry(&pages[position]); + if (debug>8) + fprintf(stderr, + "\naddpage posn %d file %s %s page %s \nsort %d vol %s section %d docnum %d docname %s pagenum %d\n", + position, + pages[position].filename, + pages[position].percent, + pages[position].pageentry, + pages[position].sortkey, + pages[position].volname, + pages[position].section, + pages[position].docnum, + pages[position].docname, + pages[position].pagenum); + printf("%s",p); + } + +parsepageentry(p) + Page *p; + { + char *colon, *minus, *lparen, *rparen; + char tmp[MAXSTRING]; + char *t; + + if (debug>8) + fprintf(stderr, "parsepageentry %s", p->pageentry); + if(strcmp(p->pageentry,"unknown")==0) { + intuitpageentry(p); + } + strcpy(tmp,p->pageentry); /* we work on it here */ + if (colon = index(tmp,':')) { + /* found a supplementary docname */ + *colon='\0'; + strcpy(p->volname,tmp); t=colon+1; + + if(strcmp(p->volname,"USD")==0) { + p->sortkey=4; + } + else if(strcmp(p->volname,"PS1")==0) { + p->sortkey=9; + } + else if(strcmp(p->volname,"PS2")==0) { + p->sortkey=10; + } + else if(strcmp(p->volname,"SMM")==0) { + p->sortkey=12; + } + else parseerror("bad supp volume name",p); + + if(minus=index(t,'-')) { + /* break out docnum and pagenum */ + *minus='\0'; + p->docnum=atoi(t); t=minus+1; + p->pagenum=atoi(t); + strcpy(p->docname,""); + } else parseerror("bogus supp",p); + + } else if (lparen = index(tmp,'(')) { + /* found a man page entry */ + *lparen='\0'; + strcpy(p->docname,tmp); t=lparen+1; + p->section=atoi(t); + p->docnum=0; + switch(p->section) { + case 1: + p->sortkey = 1; + strcpy(p->volname,"URM"); + break; + case 2: + p->sortkey = 5; + strcpy(p->volname,"PRM"); + break; + case 3: + p->sortkey = 6; + strcpy(p->volname,"PRM"); + break; + case 4: + p->sortkey = 7; + strcpy(p->volname,"PRM"); + break; + case 5: + p->sortkey = 8; + strcpy(p->volname,"PRM"); + break; + case 6: + p->sortkey = 2; + strcpy(p->volname,"URM"); + break; + case 7: + p->sortkey = 3; + strcpy(p->volname,"URM"); + break; + case 8: + p->sortkey = 11; + strcpy(p->volname,"SMM"); + break; + default: + parseerror("bad section number",p); + } + if (rparen = index(t,')')) + if(minus=index(rparen,'-')) { + t=minus+1; + p->pagenum=atoi(t); + } + else p->pagenum=0; + } else parseerror("neither man nor supp entry",p); +} + + +intuitpageentry(p) + Page *p; + { + char *q; + int docnum; + + if((q=index(p->filename,'.'))==0) parseerror("cant intuit",p); + q++; + docnum=atoi(q); + if(strncmp(p->filename,"USD.",4)==0) { + sprintf(p->pageentry,"USD:%d-0",docnum); + return; + } + else if(strncmp(p->filename,"PS1.",4)==0) { + sprintf(p->pageentry,"PS1:%d-0",docnum); + return; + } + else if(strncmp(p->filename,"PS2.",4)==0) { + sprintf(p->pageentry,"PS2:%d-0",docnum); + return; + } + else if(strncmp(p->filename,"SMM.",4)==0) { + sprintf(p->pageentry,"SMM:%d-0",docnum); + return; + } else { /* must be a man page */ + sprintf(p->pageentry,"%s",p->filename); + if((q=index(p->pageentry,'.'))==0) parseerror("cant intuit man",p); + else { + *q='('; + if (*(++q)=='N') *q='1'; /* correct man(n) to man(1) */ + } + + if((q=index(p->pageentry,':'))==0) parseerror("cant intuit man",p); + else *q=')'; + strcat(p->pageentry,"-0"); + } +} + +int compar(p1, p2) + Page *p1, *p2; +{ + int ret; + + if (p1->sortkey < p2->sortkey) return -1; + else if (p1->sortkey == p2->sortkey) { + if (p1->docnum < p2->docnum) return -1; + else if (p1->docnum == p2->docnum) { + if ((ret=strcmp(p1->docname, p2->docname))==0) { + return (p1->pagenum - p2->pagenum); + } else return ret; + } else return 1; + } else return 1; +} + +int samedoc(i, j) + int i,j; +{ + if (pages[i].sortkey != pages[j].sortkey) return 0; + if (pages[i].docnum != pages[j].docnum) return 0; + if ((strcmp(pages[i].docname, pages[j].docname)==0) && + (pages[i].docnum == pages[j].docnum)) + return 1; + else return 0; +} + +outputhead() +{ +int i, equal; +char c, d; + /* if head same as previously printed, put out " */ + if (strcmp(oldtext, text)==0) { + printf("\n \" "); + return; + } + equal=1; /* assume equal */ + for (i=0; ilevel) fprintf(stderr, "%s", s1); +} + +parseerror(s1,p) + char *s1; + Page *p; +{ + fprintf(stderr, "%s:%s\n", s1, p->pageentry); +} diff --git a/doc/misc/berknet/coverpage.n b/doc/misc/berknet/coverpage.n new file mode 100644 index 00000000..ee428a80 --- /dev/null +++ b/doc/misc/berknet/coverpage.n @@ -0,0 +1,45 @@ +.LP +.nr LL 5.5i +.LP +.sp 20 +.sp .5i +.ce 99 +.ps 14 +.ft B +The Berkeley UNIX Network +.ps +.sp 2 +.ft I +Eric Schmidt +.ft R +.sp 3 +.ce +.sp .5i +.RS +.SH +Overall Introduction +.PP +This set of papers documents a network constructed to satisfy the project +option for the Master's degree from the EECS Department, C. S. Division, +U. C. Berkeley. +.PP +The first paper is a technical description of the history of the project, +details of implementation, and summary points. +The second paper is an introduction being sold to many +.UX +users on the Berkeley campus. +The third group of pages are the +.UX +Programmers Manual sections for the network commands available. +The last paper is a manual for systems staff about operation +and setup of the network. +.LP +.sp 2 +.sp 2 +.in 20 +.DS +Eric Schmidt +.sp +June 1979 +.DE +.in 0 diff --git a/doc/misc/berknet/distrib b/doc/misc/berknet/distrib new file mode 100644 index 00000000..c76521b4 --- /dev/null +++ b/doc/misc/berknet/distrib @@ -0,0 +1,6 @@ +Bill Joy, Bob Fabry, Eric Schmidt (CS Division) +Vance Vaughn, Ed Gould, Kirk Thege, Ricki Blau (CC) +George Lavender(SRC, 2538 Channing Way, Campus) +Bob Kridle (187M Cory), Asa Bromberger (384 Cory), Len Edmonsen (187M Cory), Eric Allman (380 Cory), Jim Kleckner (319 Cory) +Dave Wasley (431 Davis Hall, Campus) +John Saxer Naval Ocean Systems Center, Point Loma, San Diego diff --git a/doc/misc/berknet/makefile b/doc/misc/berknet/makefile new file mode 100644 index 00000000..11e49c3f --- /dev/null +++ b/doc/misc/berknet/makefile @@ -0,0 +1,24 @@ +# the documentation to the Berkeley network +# +# Eric Schmidt Feb. 1980 +# +# users are given netintro, mannnet, refcard +# system managers are given that plus systemmanual +# professors are given all +# +TROFF = /usr/local/ditroff +all: coverpage masters netintro mannet systemmanual refcard done +coverpage: + $(TROFF) -ms coverpage.n; +masters: + tbl masters.n | $(TROFF) -ms +netintro: + tbl netintro.n | $(TROFF) -ms +mannet: + cd /usr/man/man1; $(TROFF) -man net*.1 +systemmanual: + $(TROFF) -ms systemmanual.n; +refcard: + tbl refcard.n | $(TROFF) -ms +done: + echo DONE diff --git a/doc/misc/berknet/makefile.doc b/doc/misc/berknet/makefile.doc new file mode 100644 index 00000000..11e49c3f --- /dev/null +++ b/doc/misc/berknet/makefile.doc @@ -0,0 +1,24 @@ +# the documentation to the Berkeley network +# +# Eric Schmidt Feb. 1980 +# +# users are given netintro, mannnet, refcard +# system managers are given that plus systemmanual +# professors are given all +# +TROFF = /usr/local/ditroff +all: coverpage masters netintro mannet systemmanual refcard done +coverpage: + $(TROFF) -ms coverpage.n; +masters: + tbl masters.n | $(TROFF) -ms +netintro: + tbl netintro.n | $(TROFF) -ms +mannet: + cd /usr/man/man1; $(TROFF) -man net*.1 +systemmanual: + $(TROFF) -ms systemmanual.n; +refcard: + tbl refcard.n | $(TROFF) -ms +done: + echo DONE diff --git a/doc/misc/berknet/masters.n b/doc/misc/berknet/masters.n new file mode 100644 index 00000000..0d40f908 --- /dev/null +++ b/doc/misc/berknet/masters.n @@ -0,0 +1,1181 @@ +.if n .ds y + +.if n .ds z ++ +.if t .ds y \(dg +.if t .ds z \(dd +.ds a ``An Introduction to the Berkeley Network'' +.ds b ``Network System Manual'' +.TL +The Berkeley Network \- +A Retrospective +.AU +Eric Schmidt +.AI +Computer Science Division +Department of Electrical Engineering and Computer Science +University of California, Berkeley +Berkeley, California 94720 +.AB +The Berkeley Network connects a number of +.UX +machines on the Berkeley campus. +It provides facilities for file transfer, sending and reading mail, +and remote printing. +Operating in a batch mode, network requests are transferred one by one +through an inter-connected network until they reach their final destination. +.PP +This document describes the history and goals of this project, +the design decisions faced, discusses issues in portable software +development in networks, and discusses the future of this project. +.AE +.SH +.ce +Introduction +.sp .5 +.PP +This document is intended for readers with an interest in networking +who are familiar with two other documents about the network, +\*a, and the \*b, by this author. +It is not necessary to read this document to set up and maintain the network, +although systems persons will benefit if they are familiar with the +concepts presented here. +.PP +The sections are presented as follows: +.DS +Principals +History +Overall System Description +Protocol Explanation +Portability +Security +Future Plans +Summary +.DE +.PP +The most important section is the last, +which details a set of principles the author +has learned during this project. +.SH +.ce +.sp 1 +Principals +.sp .5 +.PP +This project was a collaboration of many individuals. +Dr. Robert S. Fabry participated in the initial design +and has exerted the strongest influence on polishing the final product. +Bill Joy and Ed Gould provided valuable technical expertise every step of +the way, primarily about developing systems programs. +The support staff of the EECS Department and the Computer Center +(Bob Kridle, Jeff Schreibman, Vance Vaughan, Robyn Allsman, and Ricki Blau) +were involved in setting up and administering this multi-domain project. +The lowest-level concepts the author used came from experience +at \s-2XEROX PARC\s0, primarily from discussions +with David Boggs, one of the \s-2ETHERNET\s0\*y designers. +.FS +\*y ``Ethernet: Distributed Packet Switching for Local Computer Networks'', by Robert Metcalfe and David Boggs, CACM, July 1976. +.FE +.SH +.ce +.sp 1 +History +.sp .5 +.PP +The network project can be divided into two distinct phases. +The first, from January 1978 to May 1978 (4\(12 months) +involved designing and implementing the network facilities +now available. +The second, from October 1978 to March 1979 (5 months), saw the addition +of many more machines to the network with emphasis on +portability, security, and minor design changes. +The network has been in almost continuous service to users since May 1, 1978. +.SH +First Phase +.PP +An initial design was worked out with Dr. Fabry in January 1978. +A suitable connection was made between the Computer Center ``A'' and ``Q'' +machines (then called ``D''). +.DS +.cs R 24 + + + A Q + + +.cs R +.DE +.PP +Development proceeded on two fronts \- +a set of daemons were written to transfer files, using +.UX +pipes for debugging. +The lowest-level protocols were designed and implemented of the terminal-type +connection between A and Q. +These were debugged using simple programs to send and receive packets, +and a pair +of programs to transfer a file from one to the other. +This was the first experience with a distributed software development \- +the Q machine is a DEC PDP-11/34 with no lineprinter, a non-standard +tape drive, and terminal access only by telephone, so +most development had to proceed on the A machine. +.PP +During this phase the goals of the project increased in scope. +The implementor and only user had to use the network to transfer +network source and worked out simple ways to automate this +(the ``.netrc'' file is an example). +.PP +When it appeared usable by more than the implementor, +the connection was changed to be between A and the Computer Center ``C'' +machine: +.DS +.cs R 24 + + + A C + + +.cs R +.DE +.PP +Up until now, the network had required an account on both machines. +It became clear this was a handicap since +the A machine had too many accounts and the password file was immense. +Certain ``free'' commands were allowed, without an account. +.PP +The Cory machine was soon added to the network: +.DS +.cs R 24 + + + Cory A C + + +.cs R +.DE +.PP +This produced major changes in the design \- +initially we had assumed network users would have accounts on all machines. +This was unreasonably strict +and a solution (kludge) was worked out where a request was +examined and forwarded through the queue(s) on the intermediate machine. +The network became table-driven +to accomplish the routing, and distributed software +development became more difficult because of the increased number of machines. +The implementor quickly discovered only one solution: +Always have a designated source machine for all changes. +To this day, software changes are made only on this ``source'' machine, +the others are guaranteed to have copies. +This makes remote updating (copying new versions around the network) +possible. +.PP +Documentation was written and sent off to about fifteen +faculty, staff, and graduate student users. +A few bugs were fixed and the system frozen from the end +of May to October. +End of Phase 1. +.SH +Second Phase +.PP +While the implementor was away at a summer job, the connection between +the A and C machines was switched to reduce the loading on the A machine: +.DS +.cs R 24 + + + Cory C A + + +.cs R +.DE +.PP +Unknown to the implementor, the network source was modified in +divergent and incompatible ways, and the commands were moved to a different +place. +These changes invalidated certain assumptions about full pathnames and +some commands such as inter-machine mail stopped working. +.PP +The Computer Center had also made absolutely incompatible changes +to some system calls. +This began a path of software divergence that became very painful +and is still not completely solved. +.PP +Fortunately, the Computer Center placed Robyn Allsman in charge of maintaining +the network on their machines \- +to lighten that routine part of the load from the implementor. +.PP +The Computer Center acquired a ``D'' machine, and the EECS Division +a DEC VAX 11/780, running an experimental Version 7 +.UX +system. +The implementor decided to use the (at this point) unused VAX +to to do software development and incorporate the Version 7 +changes into the network code. +By this time, the protocols were stable which made it possible +to run a Version 7 network +on the VAX connected to the old Version 6 code +on the existing network, to facilitate debugging. +Because of improved terminal availability and better machine +response, many new ways were used to debug the network \- +using pipes, using TTY lines wired together on the VAX and over the +usual machine-to-machine link. +A file was added (``initfile'') which allowed quick reconfiguration +of the daemons when system parameters were changed. +A temporary connection between the VAX and C machines was arranged. +.DS +.cs R 24 + + + VAX + + + + + + + + + Cory C A + + +.cs R +.DE +.PP +The network code had to be able to run on three different types of +machines \- +the VAX running +.UX +Version 7, the Cory machine running Version 6, and the anomalous +Computer Center machines. +There was no conversion package available at the time,\*y +.FS +\*y The ``retrofit'' library, by Bill Joy, is now available. +.FE +and the old network code had not used any system header +files, so after a great deal of experimentation, conditional +compilation was used as much as possible and a procedural interface +was used to elide system differences. +.PP +The new +.UX +command +.I make +(I) was used with a ``makefile'' to organize this regime. +The old network code was used to bootstrap +the D machine onto a network running the new network code exclusively. +.DS +.cs R 24 + + + VAX + + + + + + + + + Cory C A + + + + + + + + + D + + +.cs R +.DE +.PP +Shortly thereafter, over the Christmas break, the VAX and Cory connections +went down for security reasons (discussed in the ``Security'' section). +After seven weeks, they reentered the network in a new configuration. +.DS +.cs R 24 + + + Cory C D + + + + + + + + + VAX A + + + +.cs R +.tr -- +.DE +.PP +Shortly after that, they were down again because of a lightning strike +for another week but have been operational since then. +During the last time period the network was made less Berkeley-specific +and a copy was run on the Rand Corporation UNIX machines. +Documentation was rewritten and prepared for release. +The network queues were converted to send shortest-job first. +Extensive monitoring of system load, network performance, +and network use was added. +The format of the +.I netq +command was changed to summarize more information on output. +The E machine, and then later the Survey Research Center (SRC) +machine, were added. +.DS +.cs R 24 + + + A + + + + + + + + + Cory C D + + + + + + + + + VAX E SRC + + +.cs R +.DE +.PP +Tuning was still important \- +serious overloading problems caused by sluggish response +stopped the network between Cory and C for a week. +Network parameters were tuned to help solve this problem. +The complexity of software development and maintenance became too +great for unstructured changes. +Versions on all the machines except the VAX were frozen +for a month at a time. +The protocols were almost immutable. +People were delegated responsibility to observe and straighten +out, if necessary, problems with the net queues. +.PP +As this is written, the software is stable and the +user-documentation is finished and being sold, +and there is hope of adding more +.UX +machines to the network. +.SH +.ce +.sp 1 +Overall System Description +.sp .5 +.PP +The Berkeley network operates in a batch/ request mode, and is similar +in concept to a line printer queue. +``Requests'' are queued up at the source, where they are sent in shortest +job first order through an interconnected network of machines to +their destination. +At each intermediate node, they are queued as if they were originated locally. +.PP +The network consists of a set of user-executed commands, +a queue of requests to be sent, and a continuously-running +program called a +.I daemon +which transmits requests in the queue and listens for any request being sent +to it. +There are many network commands \- +one to send mail, one to read mail, one to copy files, etc. +They all use the +.I net +command to access the network. +The +.I net +command takes a command, assorted parameters, with any input +data, and puts a request in the queue. +These requests are composed of a header, the command to be executed, +and any data for input to the command. +The header contains network information such +as the destination machine, login name, and password. +This request is stored in the queue as a normal ASCII +file, owned by the invoker. +This way +.UX +commands can be used to examine the file. +.PP +The daemon examines the queue to see if there is anything to send. +If so, it begins sending to a remote daemon, +using a protocol to establish this dialog, +involving retransmissions and timeouts. +The remote daemon accepts the requests, +parses the header information, and takes any +data for the command and puts it in a file. +The main loop of the daemon then returns to a waiting state. +.PP +The command execution is done by `forking' a series of processes. +One of these is the user's login shell, +which is given the command to execute. +Another is a process which waits for the command +to be executed, then examines the output of the command. +The output is typically sent back to the user, via a +.I net +command, executed by the daemon. +.PP +In the reverse transmission, the command is called ``mwrite'', +and it is routed and handled exactly as in the forward mode, +except no password is required. +The ``mwrite'' command is executed on the original machine +with input data which is a copy of the output of +the remote command. +The user is either ``written'' or ``mailed'' to, +depending on certain options. +If ``written'', the user's screen is filled with the output\*y +.FS +\*y Standard output and standard error files. +.FE +of the command executed remotely, just as if he had executed it locally. +Otherwise, it is in his mailbox, as mail from the remote account he used. +The user's terminal must be write-able (see the +.I mesg +(I) option), the originating user must still be logged in, +and he must not have logged off and on again. +.PP +The output from the command is preceded by a line of information +listing the command, the time it was sent, and the time elapsed. +.PP +Our design then tries to simulate local +.UX +commands as much as possible. +With defaults set correctly\*y +.FS +\*y With a ``.netrc'' file, see below. +.FE +the user in principle need only precede the command he is executing +with the command +.I net. +.SH +Copying Remote Files +.PP +The most frequent use of the network is file-transfer using the +.I netcp +command. +The +.I netcp +command is based on the +.I cp +(I) command. +Its two arguments are a source and destination file, optionally with +remote machine names prepended: +.DS +\fBnetcp\fI\ \ from\-file\ \ to\-file\fR +.DE +where the names are local or remote. +Since +.DS +Cory:/usr/pascal/sh +.DE +is a file on the Cory machine, +.DS +% netcp\ \ junk\ \ Cory:/usr/pascal/sh +.DE +will transfer the file ``junk'' to the named file on the Cory machine\*z. +.FS +\*z For more examples, see the \*a document. +.FE +.PP +The way the transfer is accomplished depends on the type of file copy: +.IP 1. +Copy local file to remote file \- +.br +On the remote machine a +.I cat +(I) command is executed on the remote file with the local +file as standard input. +.IP 2. +Copy remote file to local file \- +.br +A +.I cat +command is executed on the remote machine from the remote file +to standard output. +This standard output is sent back to the local machine +into a +.I +response file, +.R +instead of being written or mailed to the user. +.IP 3. +Copy remote file to another remote file \- +.br +If both are on the same machine, a +.I cp +command is sent. +Otherwise, a +.I netcp +command is sent to the remote machine where the +.I from\-file +exists, +to copy that file to the \fIto\-file\fP's machine. +.PP +This last case is experimental. +Unfortunately, the system is structured only to carry one login +name and password to a remote machine. +Since the last option involves three machines, +the second remote machine is handled imperfectly at best. +.SH +Sending Mail +.PP +The +.I mail +(I) command on the network machines has been modified to examine the names of +the recipients of a particular message. +If their names have a remote prefix, +.I mail +executes an internal command ``sendmail'', +which in turn executes a +.I net +command. +This net command sends a mail command to the remote machine, +with the message as input. +Since the recipient would like to know which machine +the message came from, a simple program ``mmail'' +is executed to insert a pseudo-header indicating the real +source of the mail. +The net command logs in as user ``network'', +so remote mail does not require an account on the destination machine. +This facility has proven invaluable. +.SH +Reading Mail +.PP +The +.I netmail +command uses the +.I net +command to send a command to read mail for a specified user +on a remote machine. +Since the existing mail programs on different machines vary in their +options, it was decided the only thing that would work on both +.UX +Version 6 and 7 systems was to copy the mail from the remote +to the local machine. +If the user subsequently logs in on the remote machine, +his mail will be there, as if it were unread. +An internal program ``prmail'' is used to copy the user's mail +back to the local machine. +It knows the location of the mailboxes and the user's name. +.PP +The mail programs at Berkeley are being modified to search a database +to see whether a user would like to receive all his mail on +another machine and automatically forward it. +This will diminish the need for the +.I netmail +command. +.SH +Printing on remote lineprinters +.PP +The +.I netlpr +command takes a list of arguments as files to be printed on a remote +lineprinter. +Unfortunately, there can only be one standard input file for the remote +command, so each file is sent as a +.I net +command executing the command +.I lpr. +.SH +Other System Components +.sp .5 +.LP +The ``.netrc'' file. +.PP +A user must specify defaults for frequently repeated options +on a per-machine basis. +This is done in a file ``.netrc'' in the user's login directory, +and is fully described in the \*a. +.sp .5 +.LP +The +.I netq +command. +.PP +To see the network queue, the user must type the +.I netq +command. +It lists the queue for each directly-connected machine, in the order +requests will be sent. +Each request is listed, one per line, giving +the local and remote machines, the destination machine, the time sent, +and the command to be executed. +Commands which are internal to the network are called ``responses'' +in the +.I netq +listing. +.sp .5 +.LP +The +.I netrm +command. +.PP +Requests may be removed from the send queue using the +.I netrm +command. +Since the originator of the file owns the queue file, a simple user-id +check suffices to validate permission. +Unfortunately, this notion breaks down for queue files +of requests on intermediate machines. +On such a machine an appropriate user does not exist, +and the files are owned by ``root''. +There is an option to +.I netrm +to remove all the user's queue files, to make +.I netrm +easier to use. +.sp .5 +.LP +The +.I netlog +command and other information. +.PP +A number of log files are kept by the network. +Users may execute a +.I netlog +command which prints the last few entries of a log of commands +sent and received. +Also listed is the user, the time of the entry, +and the return code of the command. +.PP +A more unreadable logfile is `/usr/net/plogfile?'. +This log file has all the information of +.I netlog, +in a more cryptic form, along with trace information +about net errors. +The beginning and ending of sending and receiving are noted. +This way the exact state of the network can be determined. +.PP +Hourly and daily statistics in a file `/usr/net/netstat?'. +The number of bytes transmitted, the number of commands, and a +breakdown of their type, and system load is recorded. +This information is recorded in both hourly and daily form +to track the performance of the network under different system loads. +.PP +Every hour, a +.I netq +command is executed and the number of queue entries is recorded in a +file `/usr/net/netqstats'. +This gives an estimate of the queue length. +.PP +Finally, the login names of each local user are recorded +in a file `/usr/net/usernames'. +Periodically, these names are sorted and duplicates removed. +This gives a complete listing of network users, +useful for sending network-specific mail and for general interest. +.SH +.sp 1 +.ce +Protocol Explanation +.sp .5 +.PP +The network uses three distinct levels of protocol. +The highest level of protocol (the ``command'' protocol) +refers to the organization of the information sent to the remote +machine. +An intermediate level splits such a stream into distinct numbered packets +with a small header in each packet. +The lowest level refers to the appearance of these packets on the hardware +connection. +At the present, this is a modified 6-bit ASCII code. +Each of these layers is distinct, and presents the +interface through procedure calls. +.SH +The Command Protocol +.PP +Each machine sends a request using a precise command protocol +involving a header, the command, and any associated data. +.TS +center allbox; +l l l l. +length header command ... data ... +.TE +All but the length field is formatted by the +.I net +command before the file is queued for transmission. +The length is used to detect abnormally short, and +poorly-formed, requests. +The header includes all the information to route and verify the +request. +It includes +.RS +.IP a) +the origin and destination machines, +.IP b) +the login names on both machines, +.IP c) +a version stamp for this command protocol, +.IP d) +the time sent, +.IP e) +information about the originating terminal, and +.IP f) +the pseudo-command. +.RE +.PP +The pseudo-command is read by +.I netq, +and instead of printing the actual command being +executed, prints something more appropriate. +All the commands which use +.I net +(e.g. +.I netcp) +use the pseudo-command to list themselves rather +than the command they are executing on the remote machine. +.PP +In order to be able to print the data on a normal +.UX +terminal for debugging, the fields within the header are variable-length ASCII, +separated by colons (`:'). +This forces the daemon to parse the header information and +requires that literal colons (e.g. in the command being sent) +be properly escaped within the protocol, +but I felt the alternatives of using byte counts or fixed-length fields +were too difficult to debug. +The shortest header is approximately 85 bytes. +Fortunately, this means the shortest command +will fit into a single packet.\*y +.FS +\*y (less than 100 bytes, see below). +.FE +.SH +The Packet Protocol +.PP +The above information is conveyed to each machine as a stream. +This is done using subroutine calls to read and write data +of arbitrary length over the link. +The write procedure breaks the information into a set +of numbered packets, +with a length and exclusive-or check-sum in a header: +.TS +center allbox; +l l l l l. +length seqnum type chksum ... data ... +.TE +.PP +The length, type and checksum are one byte each, +and the sequence number is two bytes. +Since the packets are variable length the checksum is in the +header rather than at the end of the packet to avoid the extra computation +required to access it. +.PP +Each packet is transmitted over a link to a listener. +Normally an acknowledgement packet is sent back. +If there is an error, nothing is sent back, +and the sending end will retransmit after a certain number of seconds. +.PP +There are no windowing or piggyback acknowledgements for two reasons: +1) this scheme is very simple to implement and +2) the error rate if each packet were not acknowledged would be +high because of the hardware involved. +If the future, I hope that both hardware and kernel device drivers +will allow this improvement. +.PP +The so-called ``rendezvous'' protocol, whereby two daemons agree to communicate, +is a simple ``contention'' scheme. +When one daemon wants to transmit, +it sends a special packet ``reset'' to the possible receiver, +then transmits his first packet. +Normally a daemon able to receive listens for a ``reset''. +If it receives one, it enters a section of code designed +to receive a header command, and data, and ultimately will execute it. +If not, after a prescribed time interval is checks to see if there are any +requests to send. +Should both send at once, the characters may be garbled, +or both may receive resets at the same time. +In each case they both will retransmit. +Each has a randomizing factor to break any ties which might develop. +.PP +In retrospect, this protocol is very primitive. +Now that the network is in production use, +the extra acknowledgements and separate ``reset'' are too +expensive. +A redesign would modify the protocol to transmit +more than one packet before acknowledging it (ACKs), +use negative ACKs to indicate immediately that an error has occurred, +and eliminate the separate ``reset'' entirely. +.PP +The ``rendezvous'' protocol consumes a fair amount of time +when both daemons choose to send packets. +The alternative of constantly sending status packets when +the daemons would be idle was never seriously considered +because it was felt that the daemon should have as light a system +load as possible; it seems now the daemons are busy most of the time +and thus the initial connection tradeoffs +should have been studied more closely. +.SH +The Low-Level Protocol +.PP +The network transmits over TTY lines through terminal interfaces +and system drivers which behave as if the characters coming from another +machine are from a terminal. +This mode was chosen because it is absolutely the simplest, +cheapest interconnection scheme possible. +Unfortunately, the +.UX +terminal drivers cannot accept 8-bit bytes unless they are in +.I raw +mode. +This was judged to be a high system load, so the +TTY lines operate in +.I cooked, +the reverse of +.I raw, +mode. +In this mode certain bit combinations, +e.g. ASCII newline and escape, do not +transmit through the terminal driver to the user's program +but rather are interpreted as control information. +.PP +After much experimentation, the following transmission method was chosen. +Each 3 byte triple is viewed as 24 bits, and broken into 4 6-bit groups. +Each 6-bit number is in the range 0-63, and is added to a constant +representing the lowest acceptable character code (a blank) +in the ASCII sequence. +This is sent as an ASCII character to a receiver +who gathers 4 bytes, subtracts the increment, and shifts the 4 6-bit groups +into 3 bytes. +This represents a 3 to 4 expansion of all characters over the +link, or a 33% loss of bandwidth. +.PP +In retrospect, this expansion has a considerable cost. +The most scarce resource in the network +is the actual hardware speed of the links. +The alternative of using raw mode was never seriously considered. +.PP +The implementor's hope is that better hardware will make better +middle- and lower-level protocols easier. +Until then, the difficulties of using TTY lines efficiently +make further protocol improvements unlikely to yield big increases in speed. +.SH +A Note About Features this Protocol Lacks +.PP +In +.UX +a process may only read or write one I/O device at a time. +A daemon approach requires a single process reading and writing on a link to +another machine. +This process must decide who will receive this packet. +I judged (correctly) that this decision was hard to schedule using +.UX +pipes and signals, +and only allow one kind of communication between daemons. +This also makes it almost impossible +to forward packets through intermediate machines. +Thus intermediate machines copy whole requests before sending them again. +.PP +If the design specification required a simple packet-oriented driver +within the system, the +.UX +kernel could decide which of several special files this was destined to, +and allow much more intermixing of traffic than before. +I did not realize the importance of this and, in retrospect, +would have chosen the other of the two approaches. +.SH +.sp 1 +.ce +Portability +.sp .5 +.PP +The acquisition of VAX/UNIX (Version 7) and the divergence of the Computer +Center and Cory Hall Version 6 systems made the portability of the +network source code important. +Until then, the source code on all machines was identical. +Fortunately, the +.UX +implementors encountered these same problems and developed a number of +facilities the network now uses. +.PP +Since many system calls use machine and version dependent data fields, +so-called ``include'' files are available to hide the system differences +and help standardize the system interface. +The conditional compilation feature of the C language was used to select +which kinds of code to generate, when the ``include'' files were +not sufficient. +Roughly, the following command included at the beginning of each C module: +.DS +# include +.DE +would define which system, by name, the code was run on. +For example, the above defines ``VAX'' on the VAX machine, +and then lines such as +.DS +# ifdef VAX + . + . +# endif +.DE +control the code generated. +In the network, sequences such as this in turn define other sequences, +such as +.DS +# ifdef \s-2CORY\s0 +# define \s-2FUID\s0 +# define \s-2OLDTTY\s0 +# define \s-2PASSWDF\s0 +# endif +.DE +defines the unusual features of the Cory machine: +the combined user-id and group-id returned by the +.I getuid() +system call, that it uses the old 1-character terminal names, and +that it has a split password file for security reasons. +Each of these symbols, e.g. ``FUID'', is tested +in order to compile the correct code for that feature. +.PP +To help in isolating the changes, attempts were made to create a procedural +interface to hide machines differences. +These procedures are all in one file. +Only one or two cases exist of conditional sections of code +not in ``mach.c'' or ``mach.h'', its header file. +.PP +One problem these features pose is testing changes \- +the conditional sections hide errors in inapplicable code. +A regimen was adopted: +Testing was first done on the VAX (Version 7), +then, after it was stable for a few days, +moved to Cory, where typically there was some Version 6-dependent +error, and after that was fixed and stable, it was moved to the +Computer Center machines. +This notion of a ``testing'' machine is very important \- +the VAX always has an up-to-date copy of the network +source, even though other machines may lag in improvements. +.PP +There is now a ``retrofit library'' +that simulates many of the features ``mach.c'' provides. +It was not stable enough when the network was converted to Version 7, +otherwise I would have used it. +.PP +At this point, when the entire source for the software +for the network is transferred between machines only the first five +lines of the ``makefile'' need be changed. +.SH +.sp 1 +.ce +.sp .5 +Security +.PP +Over Christmas vacation of 1978, a 15-year old high school student +repeatedly broke into the Computer Center and Cory machines. +He was able to use the network to gain access to privileged files on +the VAX, and the fear of protection ``holes'' caused the staff to take +the network down for seven weeks. +.PP +There were two security problems posed by the network: +.RS +.IP 1. +The threat to the ``root'' account on another system. +.IP 2. +The threat to a user's remote accounts. +.RE +.NH 0 +Threat to ``root'' +.PP +Originally the network would allow a user logged in as ``root'' +on one machine to execute any command as ``root'' on another network +machine. +As far as we know, this feature was never used to break into a system. +However, the network has been changed to prevent a user from logging +in as ``root'' on another machine, regardless of the password. +This check is performed on the sending machine. +Since ``root'' could conceivably circumvent this check by altering +the command, the receiving end of a command checks the user-id +of all commands being executed. +If it is zero (i.e. ``root'') only a set of five commands is allowed, +all needed by the network internally, and believed ``safe''. +.PP +We believe this makes the network ``safer'' than many local machine +features such as the use of dial-up lines. +.NH +Threat to user's remote accounts. +.PP +If a user places remote passwords in his ``.netrc'' file, +an illicit superuser could get the password to all the user's remote +accounts. +Even if the user does not care, system managers dislike this because +the illicit superuser could now use a legal account on another system +to break into it. +.PP +We have no good solutions to this. +Users are now warned of this danger in the documentation, +and a ``.netrc'' file with passwords must be +readable only by the owner of the file. +.PP +Various solutions have been proposed: +.RS +.IP a) +Disallow passwords in ``.netrc'' files. +.br +Unfortunately, heavy network users would have to repeatedly +type their password. +.IP b) +Encrypt the ``.netrc'' file. +.br +A program would have to exist to decrypt the file. +A superuser could get access to whatever key technique that program used, +if it were on the local machine. +A public-key encryption scheme would make this option possible. +We decided it was too much work to implement this. +.IP c) +Once-a-session passwords. +.br +In this scheme, a user would register his password when he logged in, +then use the network without needing to type in a password. +When he logged off, the password would be removed. +We discarded this because we could not guarantee the password would +disappear unless we wrote a daemon, which itself could be compromised. +The best solution along this line uses the ``alias'' feature +of the C shell. +Each net command is aliased with itself and the +\fB\-l\fP, \fB\-p\fP options. +When the user logs in, +he sets a shell variable to his password. +When he logs off, his shell dies and the passwords are forgotten. +.RE +.PP +I believe the current alternatives are sufficient for a conscientious +user to protect himself and still have an easy-to-use network interface. +.SH +.sp 1 +.ce +Future Plans +.sp .5 +.NH 0 +Hardware +.PP +The net has suffered with low speed hardware. +Short-term plans include speeding up the current terminal +interface hardware from 1200 Baud to 9600 Baud and writing a driver +for the device to bypass the internal +.UX +character queues. +This driver will improve the reliability of transmission and decrease the character +interrupt overhead. +The speedup from 1200 Baud to 9600 Baud may overload the systems due +to the number of hardware interrupts it causes. +.PP +In the longer term, the EECS Department is considering acquiring +direct-memory-access (DMA) devices such as the Logical Network Interface (LNI) +or the Digital Corp. DMC-11 links for high-speed transmission. +These devices are capable of over 1-megabit speeds, and +would increase the speed of the current network by factors of hundreds. +.NH +Adding More Machines to the Network +.PP +The \s-2INGRES\s0 Research group and various other research units within +the EECS department have expressed interest in being added to the network. +.NH +Remote Use of the Typesetter Facilities +.PP +The Computer Center A machine has a Graphics Systems phototypesetter +and the VAX Research machine has a Versatec 36'' dot-matrix plotter +with a +.I troff +simulator. +Software now being debugged will allow remote use of the typesetter +by running the +.I troff +program locally and sending the typesetter device codes to the remote +machine. +.PP +This will distribute the typesetting load and help overloading on +the A and VAX machines. +It will also allow the use of +.I troff +macro packages only available on some machines. +.NH +Remote Mail Forwarding +.PP +The +.UX +mail programs will be modified to forward mail to another account on another +machine, allowing a user with accounts on many machines to read it all on one +designated machine. +.SH +.sp 1 +.ce +Summary Points +.sp .5 +.PP +The author would like to stress these points about his experience: +.IP 1. +Success in building networking software depends on having ready access +to the correct hardware. +The minimum is two terminals connected to two usable machines with two +magnetic tape drives or some other existing means of software transfer. +.IP 2. +Design in portability and security. +More careful attention to machine dependence and security +in the first phase would have saved much later re-programming. +.IP 3. +Develop good local debugging techniques. +The ``self-loop'' trick for network debugging depends on the accuracy +of that simulation. +.UX +pipes, for example, were not sufficient to simulate TTY lines +because TTY lines are 7-bits with a restricted ASCII range. +.IP 4. +Encourage users to use the system. +Their feed back is important. +However, it is necessary to have an unused network link for new +protocol development, etc. +.IP 5. +There is a fine line between support of an existing network and research. +In the best of all possible worlds, support of research-developed +software would be the responsibility of the systems staff +for the machines it runs on. +This is seldom the case. +.IP 6. +The concept of layers of networks was very helpful in this project. +There appear to be these levels: +.DS L +.ce 99 +.ls 2 +.sp 2 +user interface +queues and daemons +command protocol +packet protocol +transmission protocol +teletype lines +.sp 2 +.ls 1 +.ce 0 +.DE +These levels are quite distinct. +If a new, better network not involving queues is built, the transfer of files +could still be by +.I netcp. +If state-of-the-art link hardware is used, perhaps all of the levels +below the command protocol could be discarded. +.IP 7. +The chief virtue of the current system is its extreme flexibility +and low start-up costs. +No modifications to the +.UX +kernel are required and all local features are conditionally +specified in a header file. +.IP 8. +Networks are hard to build because +.RS +.IP a) +They involve mutually-cooperating copies of software on (usually) +differing computers. +.IP b) +Many options are not practical because of compatibility considerations \- +new networks need drivers in unchangeable systems, and new protocols have to +accept the old protocols until the old protocols are extinct. +.RE diff --git a/doc/misc/berknet/netintro.n b/doc/misc/berknet/netintro.n new file mode 100644 index 00000000..e08403a4 --- /dev/null +++ b/doc/misc/berknet/netintro.n @@ -0,0 +1,1068 @@ +.ds X X +.ds Y Y +.ds Z Z +.TL +An Introduction to the Berkeley Network +.AU +Eric Schmidt +.AI +Computer Science Division +Department of Electrical Engineering and Computer Science +University of California, Berkeley +Berkeley, California 94720 +.sp +May 1979 +(revised March 1980) +.AB +This document describes the use of a network +between a number of +.UX +machines on the Berkeley campus. +This network can execute commands on other machines, +including file transfers, sending and receiving mail, +remote printing, and shell-scripts. +.PP +The network operates in a batch-request mode. +Network requests are queued up at the source and sent in shortest-first +order to the destination machine. +To do this, the requests are forwarded through a network +of inter-connected machines until they arrive at their destination +where they are executed. +The time this requires depends on system load, inter-machine transfer speed, +and quantity of data being sent. +.PP +The network enforces normal +.UX +security and +demands a remote account with a password for most commands. +Information can be returned to the user in files, for later +processing, or on the terminal for immediate viewing. +.AE +.SH +Introduction +.PP +A network between a number of +.UX +machines on the Berkeley campus has been implemented. +This document is a brief introduction to the use of this network. +Information which is specific to the local network has been +gathered into Appendix A. +The new user should read both this introduction and Appendix A in order +to learn to use the network effectively. +.PP +This document is subdivided into the following sections: +.ds c Copying Files over the Network +.ds d Listing Requests in the Network Queue +.ds e Removing Requests from the Network Queue +.ds f Sending Mail over the Network +.ds g Reading Mail over the Network +.ds h Using the Lineprinter over the Network +.DS +Use of the Network + 1) \*c + 2) \*d + 3) \*e + 4) \*f + 5) \*g + 6) \*h + 7) Net Prototype Command +Setting Defaults +How to Specify Remote Passwords +Appendix A: The Network at Berkeley +Appendix B: Getting Started \(em An Example +.DE +.PP +This manual is written in terms of three mythical machines, +named \*X, \*Y, and \*Z. +Specific names at Berkeley are in Appendix A, +along with more local information. +.SH +Use of the Network +.PP +The network provides facilities for issuing a command on one +machine (the +.I local +machine) which is to be executed on another (the +.I remote +machine). +Network commands are available to transfer files from one machine +to another, to send mail to a user on a remote machine, +to retrieve one's mail from a remote account, +or to print a file on a remote lineprinter. +These commands are described below, as is the more general +.I net +command which allows users to specify the name of some command +or shell script to be executed on a remote machine. +Network requests are queued on the local machine and sent to the remote +machine, forwarded through intermediate machines if necessary. +.PP +Most of the network commands require that you have an account on +the remote machine. +If a remote account is not needed for a particular command, +it will be noted in the following discussion. +The first example introduces procedures and responses which are applicable +to all network commands. +.sp 1.5 +.NH +\*c +.PP +Suppose that you have accounts on both the \*X and \*Y machines and that you are +presently logged into the \*X machine. +If you want to copy a file named `file1' from your current +directory on machine \*X to machine \*Y (the +.I remote +machine), use the command: +.DS +% netcp file1 \*Y:file1 +.DE +The net will make a copy of `file1' in your login directory +on the \*Y machine. +(The `\*Y:' will not be part of the filename on the \*Y machine.) +In order to verify your permission to write into the \*Y account, the +.I netcp +command will prompt you with: +.DS +Name (\*Y:your-name): +.DE +You should respond with your login name on the Y machine, +followed by a carriage-return. +If you have the same login name on both machines, just type a carriage-return. +Next a password will be requested: +.DS +Password (\*Y:remote-name): +.DE +Now type in your password followed by a carriage-return (you must type +it even if your passwords are the same on both machines). +The +.I netcp +command will make a copy of your `file1' in a queue destined +for the \*Y machine, and will then return you to the shell. +.PP +Likewise if you wanted to transfer a file named `scan.p' from \*Y to \*X, +.DS +% netcp \*Y:scan.p scan.p +.DE +would place that file in your current directory on \*X. +.PP +The network will ``write'' you when it has executed +your request (if you are still logged in), +or will ``mail'' you a message (if you are not). +You may use the +.B +\-n +.R +option (described later) to disallow the interruption and thus force +mail to be sent. +A typical message might look like this: +.DS +Message from \*Y:your-name at time ... +(command: netcp file1 \*Y:file1, R: 0, sent April 1 18:03, took 10 min 3 sec) +------- +.DE +The message includes the current time, the time you sent the +command on machine \*X, +and the exit code of the command (zero normally means success). +.PP +The network response will tell you if it was unable to execute the +remote command successfully by returning an error message some time later. +If, for example, you type the wrong password, you will get the response +.DS +Message from \*Y:your-name at time ... +(command: netcp file1 \*Y:file1, sent April 1 18:03, took 10 min 3 sec) +Error: bad login/password your-name +------ +.DE +.PP +The +.I netcp +command is actually a generalization of the +.UX +.I cp +command, similar to +.I uucp\fP\(dg. +.FS +\(dg See the +.UX +Programmers Manual (Version 7 only). +.FE +Its syntax is: +.DS +\fBnetcp\fR [\fB\-l\fI login\fR] [\fB\-p\fI password\fR] [\fB\-n\fR] [\fB\-q\fR] [\fB\-f\fR] \fIfromfile tofile\fR +.DE +where +.I fromfile +and +.I tofile +can be local or remote files. +A filename which is not a full pathname +is either from the current directory on the local machine +or your login directory on the remote machine. +The +.B +\-l +.R +and +.B +\-p +.R +options may be used to specify your remote login name and password +on the command line. +If the password contains shell meta-characters, it must be in quotes. +(These options are useful in shell scripts, +but be sure to make the shell script readable only +by yourself if you've got passwords in it!) +The +.B +\-n +.R +option forces any responses from the remote machine to be mailed +rather than written to you. +The +.B +\-f +.R +option forces prompting for a remote user name and password, +even if they are set by other options or are in the ``.netrc'' file +(see ``Setting Defaults'' below). +Finally, the +.B +\-q +.R +option prevents any confirmation messages from being sent back to you, +if there were no errors, the exit code of the command is zero, +and the command had no output. +.PP +Transferred files may or may not have the correct file protection mode; +use the +.I chmod +(I) command to reset it. +When files are to be brought from a remote machine, +they are created zero-length at the time the command is issued; +when they arrive, they assume their true length. +Unlike +.I cp, +.I netcp +does not allow the +.I tofile +to be simplified to a directory, +if the files have the same name. +.LP +Examples: +.RS +.TS +l l. +% netcp\ \ file1\ \ \*Y:file1 copy `file1' from the current directory to \*Y +% netcp\ \ \*Y:file1\ \ file1 copy `file1' from \*Y to the current directory +% netcp\ \ \*Z:file1\ \ \*Z:file2 \fIcp\fP command on remote machine +% netcp\ \ \*X:lex.c\ \ \*Y:lex.c copy from \*X to \*Y +% netcp\ \ \*Y:subdir/file1\ \ file1 copy from a sub-directory +% netcp\ \ file1\ \ file2 an error\(em use the \fIcp\fP command +.TE +.RE +.sp 1.5 +.NH +\*d +.PP +To see where your command is in the queue, type +.DS +% netq +.DE +A typical output of which looks like: +.DS L +.cs R 23 + From To Len Code Time Command +\*X:your-name \*Y:remote-name 100 b99999 Mar 23 18:05 netcp file1 \*Y:file1 +.cs R +.DE +The format is similar to that of the +.I lpq +command. +The files are sent one at a time, in the order listed. +If +.I netq +tells you the queue is empty, your request has been sent already. +The queues for different destinations are totally separate. +.DS +% netq \*Y +.DE +will list just the queue destined for the \*Y machine. +.I Netq +summarizes requests from other users. +The command +.DS +% netq \-a +.DE +will print the requests from all users. +.sp 1.5 +.NH +\*e +.PP +If you want to cancel your net request, and ``b99999'' +(see the +.I netq +example above) is your ``Code,'' use the command +.DS +% netrm b99999 +.DE +which will remove the request (if it hasn't already been sent). +Furthermore, +.DS +% netrm \- +.DE +will remove all your net requests in the queues on the local machine +(you must have made the request in order to remove it). +.sp 1.5 +.NH +\*f +.PP +To send mail to remote machines, use the +.I mail +command with the remote account prefixed by the destination machine's +name and a `:'. +``\*Y:schmidt'', for example, refers to an account ``schmidt'' on the \*Y machine. +The full sequence is illustrated below: +.DS +% mail \*Y:schmidt +\ \ \ \ {your message to user ``schmidt'' } +{control-d} +.DE +This will send to user ``schmidt'' on the \*Y machine the text you type in. +As with intra-machine mail, the message is terminated by a control-d. +.PP +You do not need an account on a remote machine to send mail to a user there. +.ne 9v +.sp 1.5 +.NH +\*g +.PP +It is also possible to read your mail on remote machines. +From the \*X machine, the command +.DS +% netmail \*Y +.DE +sends a command to the \*Y machine to take any mail you may have and mail +it back to you. +As a precaution, the mail on the remote machine (\*Y in this example) +is appended to the file ``mbox''. +Netmail has +\fB\-l\fP, \fB\-p\fP, \fB\-n\fP and \fB\-f\fP options just like +.I netcp. +If a machine is not specified, the default machine\(dg is used. +.FS +\(dg (see ``Setting Defaults'' below) +.FE +If the +.B +\-q +.R +option is specified (like +.I netcp) +no message is sent back if there is no mail. +.PP +Netmail also takes a +.B +\-c +.R +option: +.DS +% netmail\ \-c\ \*Y:username +.DE +which turns the command into a ``mail check'' command. +A message is sent back telling the user whether the specified username +has mail. +No password is required. +As above, the +.B +\-q +.R +option suppresses the message if there is no mail. +This command was designed to be put in C shell ``.login'' files. +.sp 1.5 +.NH +\*h +.PP +Remote lineprinters can be used with the +.I netlpr +command: +.DS +\fBnetlpr\fR [\fB\-m\fI machine\fR] [\fB\-c\fI command\fR] \fIfile1 file2 ... filen\fR +.DE +which sends the files its arguments represent to the lineprinter on +.I machine. +It will prompt you for an account and password. +The \fB\-l\fR, \fB\-p\fR, \fB\-n\fR and \fB\-f\fR options may be supplied, +as in the +.I netcp +command. +If the +.B +\-c +.R +option is specified, a different printing +.I command +(default is ``lpr'') can be specified; +see Appendix A for the list of printers allowed. +Copies of the files are not made in the remote account. +.sp 1.5 +.NH +Net Prototype Command +.PP +The above commands all use internally one more general command\(emthe +.I net +command which has the following form: +.DS +.ds a \fR[\fP +.ds b \fR]\fP +\fBnet \*a\-m\fI machine\*b \*a\fB\-l\fI login\*b \*a\fB\-p\fI password\*b \*a\fB\-r\fI file\*b \*a\fB\-\*b \*a\-n\*b \*a\-q\*b \*a\-f\*b\fI command\fR +.DE +.I Net +sends the given command to a remote machine. +The machine may be specified either with the +.B +\-m +.R +option or in the ``.netrc'' file +(for the specific names, see Appendix A). +If not specified, a default is used. +\fB\-l\fP, \fB\-p\fP, \fB\-n\fP, \fB\-q\fP and \fB\-f\fP are as explained above for the +.I netcp +command. +The \fB\-r\fP option indicates the local +.I file +which will receive the output (the standard output and standard error files) of +.I command +when it is executed on the remote machine. +By default this output is written or mailed to you. +Thus, for example, to find out who is on the \*Y machine when you are +logged in on the \*X machine, +execute the following command: +.DS +% net \-m \*Y "who" +.DE +which will run the +.I who +command on the \*Y machine; +the response will be written or mailed to you. +Similarly, +.DS +% net \-m \*Y \-r resp "who" +.DE +will take the output (result) +and return it to you in file `resp' on the local machine. +If instead you want the result of the +.I who +command to remain on the \*Y machine the command +.DS +% net \-m \*Y "who >resp" +.DE +will create a file `resp' in your login directory on the \*Y machine. +It is a good idea to put the command in quotes, and it +.I must +be in quotes if I/O redirection +(<, >, or other syntax special to the shell) is used. +.PP +If you do not specify the remote machine explicitly (or in the ``.netrc'' +file, explained below), the default machine will be used (see Appendix A). +.PP +The +.B +\- +.R +option indicates that standard input from the +local machine is to be supplied to the command executing remotely +as standard input, thus if defaults for the login name and password +are set up correctly as described below, +.DS +% net \-m \*Y \- "mail ripper" +\ \ \ \ { message to ripper } +{control-d} +.DE +is equivalent to +.DS +% mail \*Y:ripper +\ \ \ \ { message to ripper } +{control-d} +.DE +.PP +The net command also has other options not documented here. +See the +.UX +Programmer's Manual sections for more details. +.SH +Setting Defaults +.PP +Instead of repeatedly typing frequently-needed options +for every invocation of the various network commands, the user may supply +in his login directory a file ``.netrc'', which contains the repeated +information. +The ``.netrc'' file is typically used to specify login names +on remote machines, as well as other options. +An example of such a file is given below: +.DS +default \*Y +machine \*Y, login dracula +machine \*Z login dracula, quiet yes +.DE +.LP +This example sets the default machine to \*Y +so that for net commands where a remote machine is not explicitly specified, +the command will then be executed on the \*Y machine. +The second and third lines indicate +for the \*Y and \*Z machines a login name of ``dracula'' +should be used to network commands, and to assume the ``quiet'' +option on all commands destined for the \*Z machine. +The complete list of options that may follow the machine indication is: +.sp 1 +.TS +center box; +cB s s s +l l l l. + .netrc options for each machine +Option Parameter Default Comment +_ +\fBlogin\fP name localname login name for remote machine +\fBpassword\fP password (none) password for remote login name +\fBcommand\fP command (none) default command to be executed +\fBwrite\fP yes/no yes if possible, write to user +\fBforce\fP yes/no no always prompt for name and password +\fBquiet\fP yes/no no like the \fB\-q\fR option +.TE +.sp 1 +.PP +In setting up the ``.netrc'' file, if the ``default'' option is present, +it must be the first line of the file. +The information for each machine starts with the word +``machine'' and the machine name and continues +one or more lines up to another machine indication +(or the end of the file). +Input is free-format. +Multiple spaces, tabs, newlines, and commas +serve as separators between words. +Double quotes (") must surround passwords with blanks or special +characters in them. +.SH +How to Specify Remote Passwords +.PP +For the commands which require the password for the account on the remote +machine, there are a number of ways to specify the password: +.IP 1) +letting the command ask you, as in the +.I netcp +example in Section 1, +.IP 2) +specifying it with an alias (if using the C shell), +.IP 3) +putting it into the current environment if the local machine is running +.UX +Version 7, +.IP 4) +specifying it on the command line with the +.B +\-p +.R +option, +.IP 5) +storing it in the ``.netrc'' file, described in the previous section. +.PP +These can be ranked in order of security, from 1 = greatest security +to 5 = lowest security, from the point of view of security of passwords +from unauthorized use by other users and possibly an illicit super-user. +Each is described in turn: +.IP 1) +If you make no effort to specify the remote password elsewhere, +the network commands will prompt you with: +.DS +Password(mach:username): +.DE +Type your password, followed by a carriage return. +This is the most secure mode of specifying passwords. +If the net command is executed in the background +(i.e. with ``&'') then the command can't read the password from +your terminal and one of options 2-5 below must be used. +.IP 2) +The alias feature of the C shell can be used to specify the remote password. +The command +.DS +% alias\ netcp\ netcp\ \-l\ godzilla\ \-p\ $pass +.DE +in the ``.cshrc'' file, followed by +.DS +% set\ path=your-passwd +.DE +right before using the network will set for subsequent +.I netcp +commands the login name ``godzilla'' and password ``passwd''. +This alias command must be given everytime you login (see the +.UX +Programmers Manual section for the C shell +(csh (1)) for more information about +.I alias. +Do +.I not +put this alias command in your ``.login'' file. +.IP 3) +If running on a Version 7 +.UX +system, the password can be put in the current environment. +The command (to the C shell) +.DS +% setenv\ MACH\fImch\fR\ \(ganetlogin\ \-m\ \fImch\fR\(ga +.DE +or (to the default Version 7 ``Bourne'' shell) +.DS +% MACH\fImch\fR=\(ganetlogin\ \-m\ \fImch\fR\(ga +% export MACH\fImch\fR +.DE +will prompt you for a login name and password for the remote machine +.I mch +and put an encrypted copy of the password in your environment. +(Note the back-quotes to the shell.) +Subsequent network commands will find it in your environment and +not prompt you for it. +These encrypted passwords are invalidated after the user logs out. +Type ``man netlogin'' for more information on the +.I netlogin +command. +.IP 4) +Each net command takes a +.B +\-p +.R +option on the command line to specify the password. +These are usually put in shell command scripts. +These shell script files should have file mode 0600 \- +use the chmod(I) command to set the mode. +.IP 5) +The remote password can be specified in the user's ``.netrc'' file. +If passwords are present, the ``.netrc'' file must have mode 0600 +(as in #4 above). +.LP +The system managers recommend options 1-3 and warn against 4 and 5. +Should someone break into your account on one machine, and you use option +4 or 5, you will have to +change your passwords on all net machines for which your +passwords have been stored in shell script files or in the ``.netrc'' file. +.SH +Log File +.PP +The file ``/usr/spool/berknet/logfile'' has a record of the most recent +requests and responses, each line of which is dated. +Lines indicating ``sent'' show the file name sent; +lines indicating ``rcv'' show commands executed on the local machine (C: ), +their return code (R: ), and their originator. +For example, on the \*Y machine, the logfile: +.DS +.cs R 23 +Feb 28 10:29: rcv \*X: neil (neil) R: 0 C: netcp design \*Y:design +Feb 28 10:43: sent tuck to \*Z (z00466, 136 bytes, wait 2 min 3 sec) +Feb 28 11:05: rcv \*X: bill (bill) R: 0 C: netcp structures \*Y:structures +.cs R +.DE +shows three entries. +In this example, there are two +.I netcp +commands sending files from the \*X machine to \*Y, each from a different user. +The second command sent was originated here by ``tuck'' and is 136 bytes long; +the command that was sent is not shown. +The command +.DS +% netlog +.DE +will print the last few lines of this file. +Its prototype is +.DS +\fBnetlog \-\fInum\fR +.DE +where +.I num +is an integer will print the last +.I num +lines from the file. +.SH +Acknowledgements +.PP +Special thanks go to +Bob Fabry, Bill Joy, Vance Vaughan, Ed Gould, Robyn Allsman, +Bob Kridle, Jeff Schriebman, Kirk Thege and Ricki Blau of Berkeley, +and Dave Boggs of X\s-2EROX\s0 P\s-2ARC\s0 +for their help in making this network possible. +.bp +.ce +.I "Appendix A" +.sp 2 +.ce +The Network at Berkeley +.sp 2 +.NH 0 +The Configuration (March 1, 1980) +.sp +.R +.TS +center box; +cB s s s s +l l l l l. + The Current State of the Berkeley \s-2UNIX\s0 Network +Machine Internal Run Default Other +Name Name By Machine Name(s) +_ +A A Computer Center C +B B Computer Center D +C C Computer Center A +D D Computer Center C +E E Computer Center C +Ing70 I I\s-2NGRES\s0 Group IngVAX Ingres +IngVAX J I\s-2NGRES\s0 Group Ing70 +Image M Sakrison ESVAX +ESVAX O EE-CE Research CSVAX +SRC S Survey Res. Cent. D +CSVAX V CS Research Cory +Cory Y EECS Dept. CSVAX +EECS40 Z EECS Dept. ESVAX +.TE +.sp 3i +.LP +If a path exists from the local machine to the requested remote +machine, the network will forward the request to the correct machine. +Thus Cory users may communicate with all the other machines on the network +as well as C and CSVAX (with a degradation in speed +because of the intermediate machine(s)). +The links between +Ing70\-IngVAX, Ing70\-CSVAX, A\-C, C\-D, C\-E, and B\-D run at 9600 Baud, +the other links run at 1200 Baud. +.NH +Documentation +.PP +The network commands +.I +(net, netq, netrm, netlog, netcp, netmail, netlpr, netlogin) +.R +are all documented in the +.UX +Programmers Manual. +For example, +.DS L + % man netq +.DE +will print the +.I netq +manual section. +.PP +There are two more documents available: +.DS +Network System Manual +Berkeley Network Retrospective +.DE +The Manual is intended for the systems staff who will maintain the network. +The Retrospective is my Master's report and details +the history of the project, discusses the design, and lists future plans. +.PP +There is an up-to-date news file: +.DS L + % news net +or + % help net +or + % cat /usr/net/news {if those fail} +.DE +which prints news about the network, dated and with the most recent news first. +.PP +The +.UX +Programmer's Manual, section I, has information on the +.I +chmod, cp, mail, who, +.R +and +.I write +commands mentioned in the text. +Also, the +.I help +command has information about file protections: +.DS L + % news access {on the Cory machine} +or + % help permissions {on the CC machines} +.DE +.NH +Features at Berkeley +.IP a) +There is a built-in character limit +of 100,000 characters per single transmission, which cannot be overridden. +The limit is 500,000 characters between the I\s-2NGRES\s0 machines. +Longer files must be split into smaller ones in order to be sent. +.IP b) +The 1200 Baud links between machines seldom transmit +any faster than 50 characters per second +(for 9600 Baud links, 350 characters a second), +and can slow to a fraction of that in peak system loading periods. +This is due to an expansion of +the data packets to accomodate a seven-bit data path, +wakeup time on the machines, and the packet sent in acknowledgement. +Heavy file transfer is faster by magnetic tape. +.IP c) +On the CSVAX, IngVAX, and ESVAX the net commands are all in `/usr/ucb'. +Your search path on these VAX's should be set to include the +directory `/usr/ucb'; +otherwise you will have to prefix all net commands by `/usr/ucb', +as in `/usr/ucb/netcp'. +.IP d) +Limited Free Commands +.RS +.PP +Users who do not have accounts on remote machines may still execute +certain commands by giving a remote login name of ``network'', +and no remote password. +The commands currently allowed are: +.KS +.TS +l l l l l. +bpq netlog rcs vpq whom +epq netq rcslog w write +finger ps rcsq where yank +lpq pstat trq who +.TE +.KE +.LP +The +.I lpr +command is allowed on the I\s-2NGRES\s0 machine. +Also, +.I mail +to remote machines and +.I netlpr +between Computer Center machines do not require a remote account. +The EECS40 machine allows no free commands (but allows the sending of mail). +.PP +.LP +For example, to execute an +.I lpq +command on the A machine, the user would type: +.DS +% net\ \-l\ network\ \-m\ A\ ``who'' +.DE +.RE +.IP e) +If no machine name specification is in the front of a full path name, +the first four characters are checked and the machine +is inferred from that if possible. +In the command +.DS +% netcp file1 /ca/schmidt/file1 +.DE +the second file name is equivalent to ``C:file1'', if you are ``schmidt'' +on the C machine. +.IP f) +The network can only send files in one direction at a time. +Thus confirmations can slow down heavy file transfer. +If you regularly use a shell script to transfer a set of files, the +.B +\-q +.R +option to +.I netcp +will improve transfer time. +.IP g) +The network creates a heavy load on the system and thus is expensive to +run. If general user throughput is adversely affected, a charge will be +implemented on the Computer Center machines. +.IP h) +When transferring files, quota overflow will result in a partial copy, +so you should check the space requirements of the file being sent. +.IP i) +The Computer Center ``A'' machine's phototypesetter is usable from other +network machines. +If on one of the B-E machines, you do not need an account on the A machine. +You simply type +.DS +% troff\ \-Q\ other-options\ file(s) +.DE +instead of the normal +.DS +% troff\ other-options\ file(s) +.DE +The troff command is executed on the local machine and the phototypesetter +instructions are sent to the A machine. +You will be sent mail both when the file is queued and when it is finally +typeset. +To see your place in the +.I troff +queue, type: +.DS +% trq +.DE +on any Computer Center machine. +There is a command +.DS +% trrm\ code +.DE +(where +.I code +is the code from the +.I trq +command) +to remove queue files before they have been typeset. +.I Trrm +must be executed on the same machine from which the job was submitted. +.RS +.PP +If you are on a non-Computer Center machine, you may use the +.I nettroff +command: +.DS +% nettroff\ options\ file(s) +.DE +which is similar to the ``troff \-Q'' command earlier. +You will need an account on the A machine and the +.I trrm +command doesn't work from a non-Computer Center machine. +.PP +If using +.I nettroff, +no more than 15 pages may be sent to the typesetter. +If using +.I troff +more than 15 pages may be sent only if the +.B +\-s +.R +option is specified (see troff(1) for more information). +The network will not transfer any file longer than +100,000 characters to the A machine. +(It is best to aim for files of 25,000 characters or less)\(dg. +.FS +\(dg Characters from +.I troff\fR's +output, not the user's source files. +It is our general experience that +.I troff +outputs roughly twice as many characters as are in the source file +(before any +.I eqn +or +.I tbl +preprocessing.) +.FE +For more information, type +.DS L + man troff {on the Computer Center machines} +or + man nettroff {on the other machines} +.DE +The +.I nettroff +command is not supported by the Computer Center. +.RE +.IP j) +The +.I netlpr +command allows ``epr'', ``bpr'', and ``vpr'' as alternate lineprinters +(using the \fB\-c\fP option). +.NH +Bugs in systems at Berkeley (As of March 1, 1980) +.IP a) +If you are on the Computer Center machines +using obsolete shells (/usr/pascal/sh, /usr/pascal/nsh) +and have a ``.profile'' or ``.shrc'' file to change your +shell prompt, you must make sure that you don't turn on ``prompting'' +for non-interactive shells. +This will interfere with the net commands. +You should use this shell command to change your prompt: +.DS +${prompt?prompt=P} +.DE +where ``P'' is the prompt desired. +This will avoid the problem. +.IP +If you set the variable +.I time +in the C shell, extraneous time stamps may appear in response messages. +The correct way to set the variable +.I time +in the C shell is +.DS +if ($?prompt) then + set time=\fInum\fP +endif +.DE +where +.I num +is the time interval in seconds. +.IP b) +The file mode should be preserved by +.I netcp +and it should be possible to default the second file name to a directory +as in cp(I). +.IP c) +Various response messages are lost. +This includes ``fetching'' files when the file being retrieved never arrives. +I suspect this has something to do with unreliable delivery of error messages, +but this is not reliably reproducible. +.IP d) +The network makes no provision for errors in transit on intermediate +machines, such as ``No more processes'' or ``File System Overflow''. +While these occur only rarely, when they do, no message or +notification is sent to anyone. +.IP e) +The network commands are too slow on heavily-loaded instructional machines. +The +.I net +command has to read the password file, ``.netrc'' file and the +``/etc/utmp'' file. +.IP f) +The queue files are normally sent shortest-job first. +Unfortunately, under heavy loading the queue-search becomes +too expensive and the network will choose the next file +to send from the first 35 queue entries it finds in the queue directory, +so the user should not depend on the requests being sent shortest-first. +.IP g) +Comments and bug discoveries are encouraged and can be sent by +local or remote mail to ``csvax:schmidt''. +.bp +.ce +.I "Appendix B" +.sp 2 +.ce +Getting Started \(em An Example +.sp +.LP +The best way to start out is to follow this example. +Suppose you're a Cory user, and you have accounts on the A and CSVAX machines. +.IP 1) +Add a file ``.netrc'' (mode 600) to your login directory, as in +the following example: +.DS L +default CSVAX +machine A login \fIyourNameOnA\fP +machine CSVAX login \fIyourNameOnCSVax\fP +.DE +(If ``default'' occurs, it must be the first line of the file.) +.IP 2) +Make sure that +.RS +.IP a) +if you are on one of the VAX's, you have in your search path +the directory `/usr/ucb'. +Otherwise, on those machines you will have to prefix all commands by `/usr/ucb/' +(e.g. `/usr/ucb/netcp'). +.IP b) +on the Computer Center machines, if you choose to set your shell prompt, +you have done so correctly (details in Appendix A). +.RE +.IP 3) +Then type +.DS L +% net\ ``who'' +% netq +.DE +which will send a +.I w +command to the CSVAX; some undetermined time later you will +have written (or mailed) to you the output from the command +executed on the CSVAX machine. +.IP +The adventuresome may try: +.DS L +% net\ \-m\ A\ ``who'' +.DE +with the effect of being routed more slowly through an intermediate link in the +net. diff --git a/doc/misc/berknet/refcard.n b/doc/misc/berknet/refcard.n new file mode 100644 index 00000000..52b99ef3 --- /dev/null +++ b/doc/misc/berknet/refcard.n @@ -0,0 +1,127 @@ +.LP +.sp 2 +.ce +.B +\s+2Berkeley Network Quick Reference\s0 +.R +.sp +.ce 2 +May 1979 +(updated March 1980) +.sp 1 +.ds a \fR[\fP +.ds b \fR]\fP +.TS +l l l. +\fBCommand Summary Example Explanation\fP + +\fBnetcp\fI fromfile tofile\fR % netcp\ \ defs.h\ \ C:defs.h copy defs.h to C machine + % netcp\ \ A:fig1\ \ fig1 copy from A to here + % netcp\ \ Cory:q1\ \ D:q1 copy from Cory to D +\fBmail\fI mach:user\fR % mail\ \ A:alan send mail to ``alan'' on A + % mail\ \ A:alan\ \ C:george multiple recipients +\fBnetmail \*a\-c\*b \*a\fImach\*b\fR % netmail\ \ Cory read mail on Cory machine + % netmail\ \-c\ Cory:usern check mail on Cory machine +\fBnetlpr \*a\-m \fImach\*b file\fR % netlpr\ \ \-m D\ \ p1.p print p1.p on D lineprinter +\fBnetq \*a\-a\*b \*a\fImach\*b\fR % netq list network queue + % netq\ \ \-a\ \ Cory ... all files to Cory +\fBnetrm \*a\-\*b \*a\fIcode\*b\fR % netrm\ \ \- remove the user's requests +\fBnet \*a\-m \fImach\fB\*b \*a\-\*b \fIcommand\fR % net\ \ \-m A\ \ who send who to A machine + % net\ \ \-\ \ \-mA\ \ lpr\ \ 4 character +expansion from 8 bits to 6, and the responses. +.RE +.IP 2. +Software +.RS +.PP +To run the network code, you must have a +.UX +running Version 6 or 7. +Version 7 machines should have all the right software already. +Version 6 systems must have the +.I make +command, the ``Version 7'' C compiler that came out a few years +after initial Version 6 (about 1978), and the +.I alarm() +system call. +This compiler, for example, supports multi-level include files. +.PP +There is a directory ``/usr/src/cmd/berknet'' +with all the network source files and a ``makefile''. +The file ``READ_ME'' has information about +the different conditional compilation +option available, and table entries which must be made in the `.c' files. +.PP +Assuming the options have been specified in the makefile, the command +.DS +% make all +.DE +will make all the necessary files. +Then the command +.DS +% make install DESTDIR= +.DE +will install the user commands and service programs. +The directories are specified as options in the makefile. +Finally, +.DS +% make clean +.DE +removes all the `.o' and executable files. +.PP +There are also other little-used programs, made by ``make othernet''. +Included are programs to send and receive packets and files, and a program +to simulate TTY lines using pipes. +It should not be necessary to run these. +.PP +The documentation is in /usr/man/man1 and in /usr/doc/berknet. +.RE +.IP 3. +Directories and Files. +.RS +.PP +The central directories are `/usr/net', which has subdirectories `bin' +and `network', and `/usr/spool/berknet', which has subdirectories `rcv' +and `send?', where +the `?' represents the one-letter codes of the directly-connected machines. +For various reasons, the support programs +.I +(netdaemon, netstart, mmail, mwrite, +.R +etc.) must be in `/usr/net/bin'. +The user programs may be anywhere but the pathnames in ``Paths.h'' +must be reset correctly. +.PP +The logfiles are `logfile' and `plogfile?', +one for each directly-connected machine. +If not present in `/usr/spool/berknet', they are not created. +.PP +The file `/usr/net/bin/start' should start up all the net daemons +on the current machine. +This file is normally executed by `/etc/rc'. +The file `/usr/net/initfile' has a format similar to `.netrc' +but is read by the net daemons when they are started. +It has the network device names, speed and various tuning parameters. +The complete list is in the source file `netrc.c'. +It is generally possible to change almost anything about the network +through the `initfile' and restarting the daemon. +.PP +The program `/usr/net/bin/netstart' is a simple program to +start up a net daemon, and if it should abort for any reason, restart it. +.PP +There must be an account `network', which executes +all responses and the free commands. +Its login directory should be `/usr/net/network' and +login shell should be `nsh' in that directory. +The list of free commands can be changed in `nsh.c'. +.PP +At Berkeley, we follow the convention that the TTY +special files are named `/dev/net-X', where `X' +is the remote machine name. +.PP +The +.UX +mail program should be modified to recognize +remote names and to fork a ``/usr/net/bin/sendberkmail'' command. +Since many people will not or cannot add the options the network +would like mail to have, there is a program ``v6mail.c'' that +implements all the options the network wants. +.RE +.IP 4. +Adding a new machine. +.RS +.PP +Tables in `config.h' must be updated. +Machine descriptions (V6, etc.) must be added to `mach.h'. +Path names must be specified in `Paths.h'. +Free commands must be checked in `nsh.c'. +A procedure ``gothru'' in `sub.c' must be updated. +All the files etc. described in #3 above must be present. +.RE + +.SH +Future Plans +.PP +It is important to understand the scope of this network; +what it is and what it is not. +Since it is ``batched'', there are a lot of things it cannot do. +Our experience is that remote file copying, mailing and printing between +.UX +machines are adequate for our immediate needs. +.PP +In the future, we will concentrate on improving +the hardware and speeding up the network, rather than major user-interface +changes. +.PP +This is a list of the things that have been planned for the future +for the network. +.IP 1. +Use Bill Joy's retrofit library to simulate the version 7 system calls. +This would reduce the dependence on conditional compilation for V6 code. +.IP 2. +The file length restriction is a major inconvenience. +One way to allow large files would be to +send large files (over 100,000 chars) only when there are no smaller ones. +This would be non-preemptive, but might be workable. +Another way would be to have two hardware links, +and two sets of daemons, one for large files and one for small ones. +.IP 3. +Bob Fabry has suggested generalizing the machine name to +be user-definable as a login/machine pair, to +make it easier for people with multiple accounts on multiple machines. +.IP 4. +It is possible to share binaries between all +the similar machine configurations (e.g. the Comp. Center machines). +This involves ``patching'' the local machine in the binary. +.IP 5. +Ed Gould suggested that the notion of ``default'' machine +was too restrictive\(em +that an appropriate default for, say, ``netlpr'' was a +nearby machine with a quality printer, whereas the default for ``net'' +should be the logical most useful machine. +.IP 6. +Security \(em +I have just recently bullet-proofed the network +so `root' commands are very restricted. +However, the presence of passwords in the `.netrc' files +poses a hazard to other machines when one machine is broken into. +As long as the root password is not in a file, the root is safe. +I am fairly convinced there is no way using encryption +to handle the `.netrc' files. +The introductory documentation is very explicit about +the threat these passwords pose. +.IP 7. +Certain other more exotic requests are unlikely +to get done until things change: +.RS +.IP a) +Having the same user-id's across machines. +.IP b) +Adding an option to ``net'' to wait until a response has been received. +.IP c) +There should be a net status command which would +give things like load averages, the number of users, etc. +.IP d) +The notion of a local queue is not general enough\(em +.I netq +should print out relevant queues on other machines. +.IP e) +Files on intermediate machines can't be \fInetrm\fP'ed. +.RE +.SH +For Berkeley +.IP 1. +A driver for the network links to avoid character +processing would make 9600-baud practical. +On the Computer Center machines, this could be accomplished +using a high speed link through the Bussiplexor. +.IP 2. +We need a +.I netrcs +command to use the rcs facilities from remote machines. +.SH +Bugs +.IP 1. +Extra files beginning with `df...' are created in the `send?' +directories, with no control files (`cf...'). +They should be removed periodically. +.I netrm +will remove them. +.IP 2. +In general, some requests can block the queue until removed. +Shorter requests will get through, and longer ones will not. +Again, their net queue files should be removed. +.IP 3. +The network rendezvous protocol seems to occasionally get +in a state where a specific file is continually retransmitted +and never seems to get through. +This happens when both the +host system and the network queues are overloaded, and thus +is very unpleasant to debug. +.IP 4. +The network daemons occasionally core dump. +They should not. diff --git a/doc/misc/comments.t b/doc/misc/comments.t new file mode 100644 index 00000000..85e72de5 --- /dev/null +++ b/doc/misc/comments.t @@ -0,0 +1,522 @@ +.TL +Comments on the performance of +.UX +on the +\s-2VAX\s0\(dd +.FS +\(dd \s-2VAX\s0 and \s-2VMS\s0 are trademarks of Digital Equipment Corporation. +.FE +.AU +William Joy +.AI +Computer Science Division +Electrical Engineering and Computer Science Department +University of California, Berkeley +Berkeley, Ca. 94720 +.SH +Introduction +.PP +A recent paper written by David Kashtan of SRI discussed some +measurements he made comparing the performance of the two available operating +systems for the \s-2VAX\s0: \s-2UNIX\s0 and \s-2VMS\s0. +The \s-2UNIX\s0 system measured by Kashtan was \s-2UNIX/32V\s0 as extended +by U.C. Berkeley to support virtual memory. +The measurements were made on version 2.1 of the Berkeley system and +version 1.6 of \s-2VMS\s0. +This note seeks to help interpret these +results and more clearly point out the differences in approach and current +state of the two systems. +.PP +We will show that the differences that Kashtan measured have simple +explanations, and that the comparison of performance on such benchmarks +can guide short-term tuning. Long-term decisions as to which system to +run have been made on the basis of portability and flexibility considerations. +The results reporte here confirm the correctness of the choice +of \s-2UNIX\s0 on these grounds by confirming its flexibility. +The detected slownesses in \s-2UNIX\s0 +are neither fundamental to the way \s-2UNIX\s0 does business, nor difficult to +mitigate if it is felt important to work on the areas in question. +We will discuss simple changes to the \s-2UNIX\s0 system that have +been made improving performance in the areas mentioned. +The improvements described here were incorporated in the production system +at Berkeley during the first three weeks of March, 1980. +.AE +.SH +System call overhead +.PP +Let us first consider system call overhead, which underlies +the measurements that were made of ``Context +Switching Performance.'' +>From the measurements Kashtan gives for context switching overheads, +we can first estimate some fundamental +times for the \s-2VMS\s0 system: a simple +system call (e.g. an event flag call) on \s-2VMS\s0 appears to take about 114\(*msec, +and a context switch about 178\(*msec. To get an idea of scale here, the \s-2VAX\s0 +memory cycle time (for cache write-through) is about 1.2\(*msec, +the simplest procedure +call \fBjsb\fR and matching return \fBrsb\fR +takes about 4\(*msec, and the high level +language call instruction \fBcalls\fR and matching return +\fBret\fR takes a minimum of 16\(*msec, +more if some registers are to be saved. +.PP +On the version of \s-2UNIX\s0 Kashtan had, a trivial system call +took about 350\(*msec. This is almost three times as much time as \s-2VMS\s0 used. +Where was this time being spent? The following is a rough breakdown: +.TS +center box; +l n. +save registers, call \fItrap\fR 40\(*msec +setup in \fItrap\fR for syscall 30\(*msec +fetching arguments for syscall 60\(*msec +saving context in case interrupted 100\(*msec +system call proper 30\(*msec +checking to see if signals waiting 30\(*msec +recomputing process priority 60\(*msec +restore registers, \fBrei\fR 30\(*msec +.TE +.PP +This code is all modularly and straightforwardly written, using a +small set of primitives (for instance the ``non-local-goto'' at +the point of an interrupted system call is effected by using part of +the primitives performing context switching.) There are a many +calls to small routines here. Each system call argument is fetched +by calling a primitive \fIfuword\fR which fetches a word from user-space +after performing access checks. The saving of the context involves a procedure +call, as does checking for signals and recomputing priority. +Altogether, when a system call has two +arguments, seven \fBcalls\fR instructions are performed here to various +subroutines. These alone take roughly 105\(*msec, assuming no registers +are specified to be saved in the entry mask. +Since the saving and restoring of the registers for the +call to \fItrap\fR takes an additional 20\(*msec, this means that 125\(*msec +is accounted for without any of the work for the system call itself. +Clearly, if this is to be sped up, some of these routine calls must +be eliminated. +.PP +With minor changes to the code for trap handling we +have sped up the system call time so that the basic overhead +is 140\(*msec, instead of 350\(*msec. This was done as follows: +.IP 1. +The \fItrap\fR routine's ``entry mask'' as generated by the C compiler +is modified at boot time to save all possible registers, to avoid +saving some registers twice.\(dg +.FS +\(dg Previously, +the assembly language for the system saved all the registers, and +made no assumptions about what \fItrap\fR itself did, resulting in registers +which were used for register variables within \fItrap\fR being saved twice. +.FE +.IP 2. +The routine to handle system calls was broken out from the handler +for all other traps and called \fIsyscall\fR. This minimizes the changes +to the code for handling other traps in making the +following improvements, and allows some small simplifications. +.IP 3. +Fetching of all arguments can be done by a single routine \fIcopyin\fR, +instead of calling \fIfuword\fR for each argument.\(dd +.FS +\(dd The copy of arguments into system space +is important to avoid severe system security problems with system calls +that self-modify their arguments after they have been checked for consistency. +.FE +Since the number of argument words to system calls is very small +it is easy to expand the \fIcopyin\fR primitive in line in this critical path. +It can be implemented, in this special case, by two basic \s-2VAX\s0 instructions: +a \fBprober\fR to determine accessibility, and a \fBmovc3\fR to move the +arguments into system space.* +.FS +* The \fIcopyin\fR primitive is complicated in the general case by +the rather strange semantics of \fBprober\fR, which only checks accessibility +of the first and last pages in the address range it is given. This forces +software to loop over each page involved in the \fIcopyin\fR. The looping +checks are not needed in the code which fetches arguments for system calls, +because there are at most 16 bytes of direct arguments to a system call. +.FE +.IP 4. +To restore after an interrupted system call it suffices to be able to +locate the frame pointer and stack pointer of the original \fIsyscall\fR +procedure. We can effect this context save +using just three \fBmovl\fR instructions. +.IP 5. +A subroutine call to check if signals are pending to this process +can be avoided in almost all cases by first checking the mask of pending +signals. This partial inline expansion of the \fIissig\fR routine reduces +the overhead here by at least 16\(*msec. +.IP 6. +Recomputation of the process priority at each system call can be avoided +by ``unloading'' the \fBp_pri\fR per-process information field. +The system used a single field to encode both the processes user-CPU usage +dependent scheduling priority, and priorities related to process blocking +during system calls. By adding a \fBp_usrpri\fR information field reflecting +user-CPU usage, the code in \fItrap\fR reduces to an assignment of this +priority to the \fBp_pri\fR field, instead of recomputing the user +priority after each system call. The space overhead is one byte per +process, the way in which the system works is unaffected, and the code +is then somewhat easier to understand. +.PP +These changes reflect only local optimization of the code; +the substance of system call handling has not been changed. +It is simply the case that \fBcalls\fR sequence used by the C compiler +for procedure calls is relatively expensive. +Expansion of small routines and machine dependent primitives +in critical paths is an important +technique that can be used to quickly and easily mitigate routine +call slowness when profiling or other measurements show this to be +necessary. +.PP +It should be noted that the use of \fBcalls\fR and passing of +routine parameters on the stack in the current \s-2VAX\s0 C compiler is +different from the way \s-2VMS\s0 is coded.\(dg +.FS +\(dg VMS is written in assembly language. +.FE +\s-2VMS\s0 makes almost exclusive use of the \fBjsb\fR and +\fBrsb\fR instructions to +avoid the overhead of \fBcalls\fR, and has stylized conventions +for assignment of registers across assembly language routines so that +pushing and popping of data on the stack can be avoided. This basic +mechanism is a good deal faster than \fBcalls\fR if register usage can be +optimized carefully, but tends to make the code harder to change. +.LP +.LP +.B Perspective. +Our departmental \s-2VAX\s0 running 20 users +in the afternoon does an average of about 100 system calls a second. +Under the old system the basic overhead for these 100 system calls was +about 3.5% of the available processor time. +The faster system call interface reduces this +to about 1.4%. +.PP +The fact that the primitives for critical sections (the \fIspl\fR +set priority level routines) were implemented by \fBcalls\fR to the two +instructions implementing them accounted for nearly 1/3 of the time in +a \fIread\fR or \fIwrite\fR system call. +Since over half of all system calls are reads or writes, +a simple inline expansion of these primitives accounted for more +improvement for reads and writes than the changes to the basic system +call routines. +.SH +Context switching +.PP +The context switching tests attempted to measure how fast the +systems could pass control from one process to another. Kashtan measured +that \s-2VMS\s0 could switch between two processes at a net rate of 2000 switches +per second using the ``event flag'' mechanism to signal process exchange. +On \s-2UNIX\s0, using the \fIkill\fR system call as a signalling mechanism, Kashtan +found that the maximum switching rate was 210 per second. He estimated that +the basic switching rate of the two systems was 5600 switches per +second on \s-2VMS\s0 and 425 per second on \s-2UNIX\s0. He concluded: +.QS +``\s-2UNIX\s0, as currently implemented, has to do considerably more +work when scheduling a process. In addition, \s-2UNIX\s0 must do a +context switch to process number 0 in order to make the decision +as to which process to be run next. Even this cannot +explain the greater than 10 to 1 difference in the performance +of the two systems.'' +.QE +We will see that this difference involves no great mystery, and that, in +fact, \s-2UNIX\s0 can be made to context switch nearly +as fast as \s-2VMS\s0 does simply +by changing the (assembly-language) primitive support of context +switching to match the hardware. Remaining differences in timings are +not the result of ``inefficiencies'' in \s-2UNIX\s0, +but from +the close fit of the \s-2VMS\s0 strategy with +the \s-2VAX\s0 architecture.\(dd +.FS +\(dd Specifically, +blocked jobs are queued on linked lists with \fBinsque\fR (insert in queue +instruction) for removal with \fBremque\fR (remove from queue instruction) +while \s-2UNIX\s0 uses subroutines which hash sleeping jobs. The +overhead of calling the hashed \fIsleep\fR and \fIwakeup\fR routines and searching +the hash chains will account for the remaining difference in time. +.FE +.PP +The \s-2VAX\s0 instruction set caters to a certain regime of context switching. +To make its idea of context switching amenable to \s-2UNIX\s0, +it sufficed to include the C library routines \fIsetjmp\fR +and \fIlongjmp\fR in the system to handle internal non-local goto's, and to +provide a new context switch primitive \fIresume\fR that corresponds +to a \fBsvpctx\fR followed by a \fBldpctx\fR. +.PP +There were two further problems with the context switching primitives: +as on the PDP-11, the per-process system stack and control information were +kept in kernel address space. It is much more efficient on the \s-2VAX\s0 to +keep this information in the P0 or P1 region where it will be remapped +when \fBldpctx\fR is used. This change was made by moving this information +to the base of the stack. +The final problem was the one Kashtan noted; that the system switched to +process 0 each time before switching to the eventual target for the switch. +This was done only to allow the system to idle in process 0. This is cleaner +than idling on an arbitrary process because, e.g., the process that +called \fIswtch\fR might have just swapped itself out, +and we would then be running +on system control information in memory that had been released. +There is actually no problem in not switching to process 0, +since the system cannot run anything but interrupt code until +we come out of the idle loop in \fIswitch\fR. +.PP +After these changes, the times for context switching improved dramatically, +dropping by more than a factor of 5 to about 400\(*msec per switch. +Examination of the remaining overhead revealed that there were several +small routines being called in critical paths in the \fIsleep\fR routine. +This was simply eliminated by an inline expansion of the code. +.PP +After the above changes had been made, we measured the system +context switch time and broke it down as follows: +.TS +center box; +l n. +blocking time in \fIsleep\fR 50 \(*msec +rescheduling time in \fIswtch\fR 60\(*msec +\fIresume\fR primitive 110\(*msec +unblocking time in \fIwakeup\fR 50\(*msec +.TE +Thus the context switching time had been reduced to 270\(*msec, +a factor of seven improvement. +.PP +In practice, there is a further efficiency +issue here that is not pointed out by the benchmarks. The \fIswtch\fR routine +used a search over a linked list testing to find the highest priority +job on the list. The \s-2VMS\s0 system uses the \fBffs\fR (find first set bit), +\fBinsque\fR and \fBremque\fR +instructions and an array of run-queues ordered by priority to make this +selection as rapid as possible. We coded this new \fIswtch\fR routine (it is +about 10 lines of assembly language), and changed the system so that only +truly runnable jobs were on the run queue (the old system left runnable jobs +on the run queue even when they were swapped out). This allows the \fIswtch\fR +primitive to run in time independent of the length of the run queue. +.LP +.LP +.B Perspective. +Let us try to get some perspective for timesharing \s-2UNIX\s0 systems +(such as the machine where this paper is being prepared). The system +is currently supporting about 20 users, and doing roughly 50 context switches +per second. The original code, which ran in about 2 milliseconds per context switch +would have cost 10% of the machine in context switching. +A version of the system changed to not switch to process 0 +in \fIswtch\fR ran in about 800\(*msec per context switch, resulting in a +average context switching overhead of about 4% of the machine. The current +system, with all the changes mentioned above, uses roughly 1.3% of the +machine in context switching. +.PP +If applications need absolutely fastest possible context switching time, +then \s-2UNIX\s0 would have to be changed so that the calls to +\fIsleep\fR and \fIwakeup\fR +were less expensive. Roughly half of the 100\(*msec spent in these routines +could be saved by writing them in assembly language and calling them +with \fBjsb\fR instead of \fBcalls\fR. They would then not have the 16\(*msec +overhead of \fBcalls\fR and \fBret\fR and could use registers 0-5 for scratch +work instead of saving and restoring registers 6-11, the +registers normally used by the C compiler for register variables. Measurements +of the incidence of \fIsleep\fR and \fIwakeup\fR in our environment do not +justify such a change. +.SH +IPC Mechanisms +.PP +The measurements here were of the time for a process to send either +4 or 512 byte packets to another process. The system call overhead and +context switch overhead reductions improved performance here, as did +the inline expansion of the priority level +routines. Finally, a few primitives (file lock and unlock, and user/kernel +data movement) were defined as macros or partially expanded inline to +save time. +.PP +The improvements measured in 4 byte packet transmission are reported in +the following table. The three experiments measured the rate at which a +process could send 4 bytes of data to itself, +to send 4 bytes to another process, and send 4 bytes to another process +and receive a 4 byte reply. +The measurements give the number of 4 byte packets transferred each second. +.TS +center box; +l l l l +a n n n. +Mechanism To self One-way Two-way +_ +\s-2VMS\s0 Mailboxes 440 297 363 +\s-2UNIX\s0 Before 370 294 281 +\s-2UNIX\s0 After 819 714 600 +.TE +.LP +.LP +.B Perspective. +The overhead in using pipes on \s-2UNIX\s0 was reduced greatly by simply +eliminating unnecessary \fBcalls\fR of primitives. The ultimate speed of +message passing through pipes should be between 600 and 1000 packets per +second, when no buffering is taking place. +.PP +We see no reason that the \fImpx\fR multiplexed file mechanism cannot +be made to operate at speeds greater than that of the pipe mechanism. +Most of the overhead in the pipe mechanism is in the block input/output system, +which must be called to access and release the file system blocks of +a pipe on each \fIread\fR or \fIwrite\fR operation. With \fImpx\fR, +messages will be buffered in memory, and this expensive indexing +can be avoided. By placing the \fImpx\fR buffers in paged memory, +it should be simple to provide fast response when activity is heavy without +tying up large amounts of core if buffered data accumulates. +.SH +Paging +.PP +Kashtan measured performance of the paging system on two kinds of +paging activity: sequential and random. He also tried varying, +in the random case, +the standard deviation of successive references. Never did his +paging experiments involve any ``memory'' in the behavior of the processes, +and they modified every referenced page. +To help cope with jobs which reference or modify +large numbers of pages rapidly, +we have changed the system to read and write +clusters of pages from the paging device. +This helps to minimize the incidence of pageins +and pageouts. Write clustering +alone make nearly a factor of two improvement in the time taking to run +most of Kashtan's benchmarks, since he modifies every page. Read clustering +improves the performance of jobs that sequentially access virtual memory, +and has a good, but less significant impact on other jobs, provided it +is used in moderation.* +.FS +* An excessive amount of prepaging tends to overload +the page replacement algorithm by creating an artificially high demand +for memory. We can mitigate this somewhat by not validating the pre-paged +pages, forcing a ``reclaim'' to occur quickly if the page is not to +be discarded. Observations show, however, that prepaging more than 2048 bytes +(2 of the basic 1024 byte pages that \s-2UNIX\s0 uses) at a time tends to +degrade general system performance. +.FE +.PP +\s-2UNIX\s0 attempts to determine the set of pages that have been +recently referenced using +software simulation of the page reference bits that are not provided by the +hardware. While experiments show that this works well on jobs that +are typical of our working environment, jobs such as those run by Kashtan +are not well observed by this method. A simple circular or random page +replacement algorithm is nearly optimal for the experiments that he made. +Disabling the gathering and use of page reference information +for ``memoryless'' jobs, and instead relying more on simple circular or random +replacement, more akin to the algorithm used by \s-2VMS\s0, improves +system performance also. +We have added an advisory +system call that informs the system that the process will not be well observed +by the normal reference information gathering algorithm. This is used +by \s-2LISP\s0 during garbage collection. One can easily imagine processes +informing the system of strongly sequential or random paging behavior. +.PP +The following table gives the relative times for the sequential +and random benchmarks on +Kashtan's machine and ours. His benchmark used 8192 pages of process +virtual space while ours used only 7500. He had 2 megabytes of real +memory while we had only 1.75. +These numbers are unfortunately not exactly comparable, and +we hope to run the experiment on a 2 megabyte machine in the near future. +.TS +center box; +l l l l +a n n n. +Experiment VMS Old UNIX New UNIX +Sequential access 4:32 20:16 6:45 +Random access 6:00 17:24 10:37 +.TE +.PP +Kashtan also measured a program with random paging behavior (each successive +reference was a random distance from the previous), with varying standard +deviations of references. We report here the times Kashtan measured +for \s-2VMS\s0 and \s-2UNIX\s0 when he made the experiment, and also +measurements on our system before and after the changes mentioned above +were introduced. Kashtan altered the basic paging strategy in \s-2VMS\s0 +for these tests; the strategy used in \s-2UNIX\s0 here was always the one we +use during general timesharing. +.TS +center box; +l | l l | l l +n | n n | n n. +Deviation VMS SRI UNIX Old Berk UNIX New Berk UNIX +1 0:16 0:16 0:23 0:23 +10 0:18 0:16 0:24 0:24 +30 0:25 0:18 0:66 0:44 +40 0:47 1:08 1:34 +50 1:21 3:54 4:37 2:38 +60 1:53 5:46 6:21 3:13 +80 3:04 6:38 8:47 4:53 +100 3:27 8:26 10:28 6:12 +.TE +.PP +These measurements are somewhat less than satisfactory for two reasons: +the machines had different configurations making the results more difficult +to interpret. Also, the experiments were too short, and therefore the +start-up time for the system to reach a stable state has not been factored +out of the results.\(dg +.FS +\(dg For example, the \s-2UNIX\s0 simulation of software reference bits +is disabled when there is a large amount of free memory and a certain +amount of time (15 to 20 seconds) is required after free memory drops +below a threshold before the reference information begins to become +available. This interval is of the same length as the experiments, +clouding the results. +.FE +.LP +.LP +.B Perspective. +The changes to the paging system to introduce clustering and for special +treatment of processes that are not well handled by the normal techniques +markedly improve the performance of \s-2UNIX\s0 on Kashtan's benchmarks. +For the jobs we normally see on our system the improvement +was not as noticeable. The effect of these changes on a standard synthetic +workload that we had previously run to evaluate system performance was +negligible. +.PP +Of far more importance to system performance was a revision of the swap +scheduling algorithm. The previous version of the system used an oldest +job first strategy for swapping out runnable jobs. Changing the system +to instead swap out the oldest of the \fIn\fR largest jobs and then slowing +down the rate of swapping had dramatic effects under the heavy +loads we have been encountering. This change is of much more importance +to the typical \s-2UNIX\s0 installation than the other changes mentioned above. +.SH +Conclusions +.PP +In selecting between \s-2UNIX\s0 and \s-2VMS\s0 as an operating system +for use in the \s-2ARPA\s0 Image Understanding and VLSI research communities, +the \s-2UNIX\s0 system was chosen primarily out of concern for portability. +For our purposes within the Computer Science Department at Berkeley, we +have chosen \s-2UNIX\s0 because of its pliability to meet our needs. +.PP +In the short term, there are areas of the \s-2UNIX\s0 system that are still +suffering growing pains from the porting of the system to larger machines. +We believe that the simplicity and modularity of the system, which are +the keys to its portability, are also the reasons why \s-2UNIX\s0 is easy +to tune, as this paper has demonstrated. +.PP +We have by no means made all the changes to the system that will be needed +by the \s-2ARPA\s0 community. The throughput of the \s-2UNIX\s0 file system +is more than adequate for our current time-sharing applications, +but will not be great enough +for large image processing applications, nor will it support page +clustering to the file system, which will be essential if large files +are to be shared among processes and paged from the file system. +.PP +Changes to support such facilities have been designed, and implementation +of these facilities is not difficult, because of the simplicity of the +current system. We believe that we can, with minor changes +to the file system structure, increase the throughput sufficiently to +support most of these applications.\(dg +.FS +\(dg We plan to initially implement +a file system, based on the current \fIinode\fR structure, but which maintains +a pool of 8192 byte buffers as well as a pool of 1024 byte buffers. By +judiciously allocating these 8192 byte contiguous chunks to large files, +and allowing programs which need access to large amounts of data to read +such large blocks directly into their address space (without copying them +in and out of the system buffer cache), we should achieve an significant +improvement in file system throughput on applications +which (for example) sequentially access large amounts of data. Such +a clustering scheme will also allow the paging system to cluster the +write-back of pages which are being shared by processes after being +``mapped'' from files. +.FE +In the long term, a different basic file system organization may be needed. +We are examining other file system schemes, such as extent based file systems, +confident that we can easily change the system to incorporate +whatever scheme we decide upon. This flexibility, essential for long-term +viability of the system, is the reason we choose to use \s-2UNIX\s0. diff --git a/doc/misc/ctour/cdoc0 b/doc/misc/ctour/cdoc0 new file mode 100644 index 00000000..dc0803cb --- /dev/null +++ b/doc/misc/ctour/cdoc0 @@ -0,0 +1,23 @@ +.TL +A Tour through the UNIX\(dg C Compiler +.AU "MH 2C517 3770 +D. M. Ritchie +.AI +.MH +.OK +Languages +Computing +..AB +..AE +.CS a b c d e f +.de II +.I +\\$1 +.R +.. +.de Op +.SH +\\$1 \fI\\$2 +.IP +.. +.PP diff --git a/doc/misc/ctour/cdoc1 b/doc/misc/ctour/cdoc1 new file mode 100644 index 00000000..66ec7337 --- /dev/null +++ b/doc/misc/ctour/cdoc1 @@ -0,0 +1,260 @@ +.SH +The Intermediate Language +.PP +.FS +\(dgUNIX is a Trademark of Bell Laboratories. +.FE +Communication between the two phases of the compiler proper +is carried out by means of a pair of intermediate files. +These files are treated as having identical structure, +although the second file contains only the code generated for strings. +It is convenient to write strings out separately to reduce the +need for multiple location counters in a later assembly +phase. +.PP +The intermediate language is not machine-independent; +its structure in a number of ways reflects +the fact that C was originally a one-pass compiler +chopped in two to reduce the maximum memory +requirement. +In fact, only the latest version +of the compiler has a complete +intermediate language at all. +Until recently, the first phase of the compiler generated +assembly code for those constructions it could deal with, +and passed expression parse trees, in absolute binary +form, +to the second phase for code generation. +Now, at least, all inter-phase information +is passed in a describable form, and there are +no absolute pointers involved, so the coupling between +the phases is not so strong. +.PP +The areas in which the machine +(and system) dependencies are most noticeable are +.IP 1. +Storage allocation for automatic variables and arguments +has already been performed, +and nodes for such variables refer to them by offset +from a display pointer. +Type conversion +(for example, from integer to pointer) +has already occurred using the assumption of +byte addressing and 2-byte words. +.IP 2. +Data representations suitable to the PDP-11 are assumed; +in particular, floating point constants are passed as +four words in the machine representation. +.PP +As it happens, each intermediate file is represented as a sequence +of binary numbers without any explicit demarcations. +It consists of a sequence of +conceptual lines, each headed by an operator, and possibly containing +various operands. +The operators are small numbers; +to assist in recognizing failure in synchronization, +the high-order byte of each operator word is always the +octal number 376. +Operands are +either 16-bit binary numbers or strings of characters representing names. +Each name is terminated by a null character. +There is no alignment requirement for numerical +operands and so there is no padding +after a name string. +.PP +The binary representation was chosen to avoid the necessity +of converting to and from character form +and to minimize the size of the files. +It would be very easy to make +each operator-operand `line' in the file be +a genuine, printable line, with the numbers in octal or decimal; +this in fact was the representation originally used. +.PP +The operators fall naturally into two classes: +those which represent part of an expression, and all others. +Expressions are transmitted in a reverse-Polish notation; +as they are being read, a tree is built which is isomorphic +to the tree constructed in the first phase. +Expressions are passed as a whole, with no non-expression operators +intervening. +The reader maintains a stack; each leaf of the expression tree (name, constant) +is pushed on the stack; +each unary operator replaces the top of the stack by a node whose +operand is the old top-of-stack; +each binary operator replaces the top pair on the stack with +a single entry. +When the expression is complete there is exactly one item on the +stack. +Following each expression +is a special operator which passes the unique previous expression +to the `optimizer' described below and then to the code +generator. +.PP +Here is the list of operators not themselves part of expressions. +.LP +.Op EOF +marks the end of an input file. +.Op BDATA "flag data ..." +specifies a sequence of bytes to be assembled +as static data. +It is followed by pairs of words; the first member +of the pair is non-zero to indicate that the data continue; +a zero flag is not followed by data and terminates +the operator. +The data bytes occupy the low-order part of a word. +.Op WDATA "flag data ..." +specifies a sequence of words to be assembled as +static data; it is identical to the BDATA operator +except that entire words, not just bytes, are passed. +.Op PROG +means that subsequent information is to be compiled as program text. +.Op DATA +means that subsequent information is to be compiled as static data. +.Op BSS +means that subsequent information is to be compiled as unitialized +static data. +.Op SYMDEF name +means that +the symbol +.I +name +.R +is an external name defined in the current program. +It is produced for each external data or function definition. +.Op CSPACE "name size" +indicates that the name refers to a data area whose size is the +specified number of bytes. +It is produced for external data definitions without explicit initialization. +.Op SSPACE size +indicates that +.I +size +.R +bytes should be set aside for data storage. +It is used to pad out short initializations of external data +and to reserve space for static (internal) data. +It will be preceded by an appropriate label. +.Op EVEN +is produced after each +external data definition whose size is not +an integral number of words. +It is not produced after strings except when they initialize +a character array. +.Op NLABEL name +is produced just before a BDATA or WDATA initializing +external data, and serves as a label for the data. +.Op RLABEL name +is produced just before each function definition, +and labels its entry point. +.Op SNAME "name number" +is produced at the start of each function for each static variable +or label +declared therein. +Subsequent uses of the variable will be in terms of the given number. +The code generator uses this only to produce a debugging symbol table. +.Op ANAME "name number" +Likewise, each automatic variable's name and stack offset +is specified by this operator. +Arguments count as automatics. +.Op RNAME "name number" +Each register variable is similarly named, with its register number. +.Op SAVE number +produces a register-save sequence at the start of each function, +just after its label (RLABEL). +.Op SETREG number +is used to indicate the number of registers used +for register variables. +It actually gives the register number of the lowest +free register; it is redundant because the RNAME operators could be +counted instead. +.Op PROFIL +is produced before the save sequence for functions +when the profile option is turned on. +It produces code to count the number +of times the function is called. +.Op SWIT "deflab line label value ..." +is produced for switches. +When control flows into it, +the value being switched on is in the register +forced by RFORCE (below). +The switch statement occurred on the indicated line +of the source, and the label number of the default location +is +.I +deflab. +.R +Then the operator is followed by a sequence of label-number and value pairs; +the list is terminated by a 0 label. +.Op LABEL number +generates an internal label. +It is referred to elsewhere using the given number. +.Op BRANCH number +indicates an unconditional transfer to the internal label number +given. +.Op RETRN +produces the return sequence for a function. +It occurs only once, at the end of each function. +.Op EXPR line +causes the expression just preceding to be compiled. +The argument is the line number in the source where the +expression occurred. +.Op NAME "class type name" +.Op NAME "class type number" +indicates a name occurring in an expression. +The first form is used when the name is external; +the second when the name is automatic, static, or a register. +Then the number indicates the stack offset, the label number, +or the register number as appropriate. +Class and type encoding is described elsewhere. +.Op CON "type value" +transmits an integer constant. +This and the next two operators occur as part of expressions. +.Op FCON "type 4-word-value" +transmits a floating constant as +four words in PDP-11 notation. +.Op SFCON "type value" +transmits a floating-point constant +whose value is correctly represented by its high-order word +in PDP-11 notation. +.Op NULL +indicates a null argument list of a function call in an expression; +call is a binary operator whose second operand is the argument list. +.Op CBRANCH "label cond" +produces a conditional branch. +It is an expression operator, and will be followed +by an EXPR. +The branch to the label number takes place if the expression's +truth value is the same as that of +.I +cond. +.R +That is, if +.I +cond=1 +.R +and the expression evaluates to true, the branch is taken. +.Op binary-operator type +There are binary operators corresponding +to each such source-language operator; +the type of the result of each is passed as well. +Some perhaps-unexpected ones are: +COMMA, which is a right-associative operator designed +to simplify right-to-left evaluation +of function arguments; +prefix and postfix ++ and \-\-, whose second operand +is the increment amount, as a CON; +QUEST and COLON, to express the conditional +expression as `a?(b:c)'; +and a sequence of special operators for expressing +relations between pointers, in case pointer comparison +is different from integer comparison +(e.g. unsigned). +.Op unary-operator type +There are also numerous unary operators. +These include ITOF, FTOI, FTOL, LTOF, ITOL, LTOI +which convert among floating, long, and integer; +JUMP which branches indirectly through a label expression; +INIT, which compiles the value of a constant expression +used as an initializer; +RFORCE, which is used before a return sequence or +a switch to place a value in an agreed-upon register. diff --git a/doc/misc/ctour/cdoc2 b/doc/misc/ctour/cdoc2 new file mode 100644 index 00000000..d5949f6f --- /dev/null +++ b/doc/misc/ctour/cdoc2 @@ -0,0 +1,200 @@ +.SH +Expression Optimization +.PP +Each expression tree, as it is read in, is subjected to +a fairly comprehensive +analysis. +This is performed +by the +.II optim +routine and a number of subroutines; +the major things done are +.IP 1. +Modifications and simplifications +of the tree so its value may be computed more efficiently +and conveniently by the code generator. +.RT +.IP 2. +Marking each interior node with an estimate of the number of +registers required to evaluate it. +This register count is needed to guide the code generation algorithm. +.PP +One thing that is definitely not done is +discovery or exploitation of common subexpressions, nor is this done anywhere in the +compiler. +.PP +The basic organization is simple: a depth-first scan of the tree. +.II Optim +does nothing for leaf nodes (except for automatics; see below), +and calls +.II unoptim +to handle unary operators. +For binary operators, +it calls itself to process the operands, +then treats each operator separately. +One important case is +commutative and associative operators, which are handled +by +.II acommute. +.PP +Here is a brief catalog of the transformations carried out by +by +.II optim +itself. +It is not intended to be complete. +Some of the transformations are machine-dependent, +although they may well be useful on machines other than the +PDP-11. +.IP 1. +As indicated in the discussion of +.II unoptim +below, the optimizer can create a node type corresponding +to the location addressed by a register plus a constant offset. +Since this is precisely the implementation of automatic variables +and arguments, where the register is fixed by convention, +such variables are changed to the new form to simplify +later processing. +.RT +.IP 2. +Associative and commutative operators are processed by the +special routine +.II acommute. +.RT +.IP 3. +After processing by +.II acommute, +the bitwise & operator is turned into a new +.II andn +operator; `a & b' becomes +`a +.II andn +~b'. +This is done because the PDP-11 provides +no +.II and +operator, but only +.II andn. +A similar transformation takes place for +`=&'. +.RT +.IP 4. +Relationals are turned around so the +more complicated expression is on the left. +(So that `2 > f(x)' becomes `f(x) < 2'). +This improves code generation since +the algorithm prefers to have the right operand +require fewer registers than the left. +.RT +.IP 5. +An expression minus a constant is turned into +the expression plus the negative constant, +and the +.II acommute +routine is called +to take advantage of the properties of addition. +.RT +.IP 6. +Operators with constant operands are evaluated. +.RT +.IP 7. +Right shifts (unless by 1) +are turned into left shifts with a negated right operand, +since the PDP-11 lacks a general right-shift operator. +.RT +.IP 8. +A number of special cases are simplified, such as division or +multiplication by 1, +and shifts by 0. +.LP +The +.II unoptim +routine performs the same sort of processing for unary operators. +.IP 1. +`*&x' and `&*x' are simplified to `x'. +.RT +.IP 2. +If +.II r +is a register and +.II c +is a constant or the address of a static or external +variable, +the expressions `*(r+c)' +and `*r' are turned into a special kind of name node +which expresses +the name itself and the offset. +This simplifies subsequent processing +because such constructions can appear as +the the address of a PDP-11 instruction. +.RT +.IP 3. +When the unary `&' operator is applied to +a name node of the special kind just discussed, +it is reworked to make the addition +explicit again; +this is done because the PDP-11 has no `load address' instruction. +.RT +.IP 4. +Constructions +like +`*r++' and +`*\-\-r' +where +.II r +is a register are discovered and marked +as being implementable using the PDP-11 +auto-increment and -decrement modes. +.RT +.IP 5. +If `!' is applied to a relational, +the `!' is discarded +and the sense of the relational is reversed. +.RT +.IP 6. +Special cases involving reflexive +use of negation and complementation are discovered. +.RT +.IP 7. +Operations applying to constants are evaluated. +.PP +The +.II acommute +routine, called for associative and commutative operators, +discovers clusters of the same operator at the top levels +of the current tree, and arranges them in a list: +for `a+((b+c)+(d+f))' +the list would be`a,b,c,d,e,f'. +After each subtree is optimized, the list is sorted in +decreasing difficulty of computation; +as mentioned above, +the code generation algorithm works best when left operands +are the difficult ones. +The `degree of difficulty' +computed is actually finer than +the mere number of registers required; +a constant is considered simpler +than the address of a static or external, which is simpler +than reference to a variable. +This makes it easy to fold all the constants +together, +and also to merge together the sum of a constant and the address of +a static +or external (since in such nodes there is space for +an `offset' value). +There are also special cases, like multiplication by 1 and addition of 0. +.II +A special routine is invoked to handle sums of products. +.II Distrib +is based on the fact that it is better +to compute `c1*c2*x + c1*y' as `c1*(c2*x + y)' +and makes the divisibility tests required to assure the +correctness of the transformation. +This transformation is rarely +possible with code directly written by the user, +but it invariably occurs as a result of the +implementation of multi-dimensional arrays. +.PP +Finally, +.II acommute +reconstructs a tree from the list +of expressions which result. diff --git a/doc/misc/ctour/cdoc3 b/doc/misc/ctour/cdoc3 new file mode 100644 index 00000000..67adfda3 --- /dev/null +++ b/doc/misc/ctour/cdoc3 @@ -0,0 +1,812 @@ +.SH +Code Generation +.PP +The grand plan for code-generation is +independent of any particular machine; +it depends largely on a set of tables. +But this fact does not necessarily make it very easy +to modify the compiler to produce code for other machines, +both because there is a good deal of machine-dependent structure +in the tables, and because in any event such tables are non-trivial to +prepare. +.PP +The arguments to the basic code generation routine +.II rcexpr +are a pointer to a tree representing an expression, +the name of a code-generation table, +and the number of a register in which the value of the +expression should be placed. +.II Rcexpr +returns the number of the register in which the value actually +ended up; +its caller +may need to produce a +.II mov +instruction if the value really needs to be in the given register. +There are four code generation tables. +.PP +.II Regtab +is the basic one, which actually does the job described +above: namely, +compile code which places the value represented by the expression +tree in a register. +.PP +.II Cctab +is used when the value of the expression is not actually needed, +but instead the value of the condition codes resulting from +evaluation of the expression. +This table is used, for example, to evaluate the expression after +.II if. +It is clearly silly to +calculate the value (0 or 1) of the expression +`a==b' in the context `if (a==b) ... ' +.PP +The +.II sptab +table is used when the value of an expression is to be pushed on the stack, +for example when it is an actual argument. +For example in the function call `f(a)' it is a bad idea to +load +.II a +into a register which is then pushed on the stack, +when there is a single instruction which does the job. +.PP +The +.II efftab +table is used when an expression is to be evaluated for its side effects, +not its value. +This occurs mostly for expressions which are statements, which have no +value. +Thus the code for the statement +`a = b' +need produce only the approoriate +.II mov +instruction, and need not leave the value of +.II b +in a register, +while in the expression `a + (b = c)' +the value of `b = c' will appear in a register. +.PP +All of the tables besides +.II regtab +are rather small, and handle only a relatively few special cases. +If one of these subsidiary tables does not contain +an entry applicable to the given expression tree, +.II rcexpr +uses +.II regtab +to put the value of the expression into a register +and then fixes things up; +nothing need be done when the table +was +.II efftab, +but a +.II tst +instruction is produced when the table called for was +.II cctab, +and a +.II mov +instruction, +pushing the register on the stack, +when the table was +.II sptab. +.PP +The +.II rcexpr +routine itself picks off some special +cases, then calls +.II cexpr +to do the real work. +.II Cexpr +tries to find an entry applicable +to the given tree in the given table, and returns \-1 if +no such entry is found, letting +.II rcexpr +try again with a different table. +A successful match yields a string +containing both literal characters +which are written out and pseudo-operations, or macros, which are expanded. +Before studying the contents +of these strings we will consider how table entries are matched +against trees. +.PP +Recall that most non-leaf nodes in an expression tree +contain the name of the operator, +the type of the value represented, and pointers to the subtrees (operands). +They also contain an estimate of the number of registers required to evaluate +the expression, placed there by the expression-optimizer routines. +The register counts are used to guide the code generation process, +which is based on the Sethi-Ullman algorithm. +.PP +The main code generation +tables consist of entries +each containing an operator number and a pointer +to a subtable for the corresponding operator. +A subtable consists of a sequence +of entries, each with a key describing certain properties of the +operands of the operator involved; associated with the key is a code string. +Once the subtable corresponding to the operator is found, the subtable +is searched linearly until a key is found such that the properties demanded +by the key are compatible with the operands of the tree node. +A successful match returns the code string; +an unsuccessful search, either for the operator in the main table +or a compatble key in the subtable, +returns a failure indication. +.PP +The tables are all contained in a file +which must be processed to obtain an assembly language program. +Thus they are written in a special-purpose language. +To provided definiteness to the following discussion, here is an +example of a subtable entry. +.DS +%n,aw + F + add A2,R +.DE +The `%' indicates the key; +the information following (up to a blank line) specifies the code string. +Very briefly, this entry is in the subtable +for `+' of +.II regtab; +the key specifies that the left operand is any integer, character, or pointer +expression, +and the right operand is any word quantity which is directly addressible +(e.g. a variable or constant). +The code string calls for the generation of the code +to compile the left (first) operand into the +current register (`F') +and then to produce an `add' instruction which adds the +second operand (`A2') to the register (`R'). +All of the notation will be explained below. +.PP +Only three features of the operands are used in deciding +whether a match has occurred. +They are: +.IP 1. +Is the type of the operand compatible with that demanded? +.RT +.IP 2. +Is the `degree of difficulty' (in a sense described below) compatible? +.RT +.IP 3. +The table may demand that the operand have a `*' +(indirection operator) as its highest operator. +.PP +As suggested above, the key for a subtable entry +is indicated by a `%,' and a comma-separated pair +of specifications for the operands. +(The second specification is ignored for unary operators). +A specification indicates +a type requirement by including one of the following letters. +If no type letter is present, any integer, character, +or pointer operand will satisfy the requirement (not float, double, or long). +.IP b +A byte (character) operand is required. +.RT +.IP w +A word (integer or pointer) operand is required. +.RT +.IP f +A float or double operand is required. +.RT +.IP d +A double operand is required. +.RT +.IP l +A long (32-bit integer) operand is required. +.PP +Before discussing the `degree of difficulty' specification, +the algorithm has to be explained more completely. +.II Rcexpr +(and +.II cexpr) +are called with a register number in which to place their result. +Registers 0, 1, ... are used during evaluation of expressions; +the maximum register which can be used in this way depends on the +number of register variables, but in any event only registers +0 through 4 are available since r5 is used as a stack frame +header and r6 (sp) and r7 (pc) have special +hardware properties. +The code generation routines assume that when called with register +.II n +as argument, they may use +.II n+1, +\&... +(up to the first register variable) +as temporaries. +Consider the expression `X+Y', where both +X and Y are expressions. +As a first approximation, there are three ways of compiling +code to put this expression in register +.II n. +.IP 1. +If Y is an addressible cell, +(recursively) put X into register +.II n +and add Y to it. +.RT +.IP 2. +If Y is an expression that can be calculated in +.II k +registers, where +.II k +smaller than the number of registers available, +compile X into register +.II n, +Y into register +.II n+1, +and add register +.II n+1 +to +.II n. +.RT +.IP 3. +Otherwise, compile Y into register +.II n, +save the result in a temporary (actually, on the stack) +compile X into register +.II n, +then add in the temporary. +.PP +The distinction between cases 2 and 3 therefore depends +on whether the right operand can be compiled in fewer than +.II k +registers, where +.II k +is the number of free registers left after registers 0 through +.II n +are taken: +0 through +.II n\-1 +are presumed to contain already computed temporary results; +.II n +will, in case 2, +contain the value of the left operand while the right +is being evaluated. +.PP +These considerations should make clear +the specification codes for the degree of difficulty, +bearing in mind that a number of special cases are also present: +.IP z +is satisfied when the operand is zero, so that special code +can be produced for expressions like `x = 0'. +.RT +.IP 1 +is satisfied when the operand is the constant 1, to optimize +cases like left and right shift by 1, which can be done +efficiently on the PDP-11. +.RT +.IP c +is satisfied when the operand is a positive (16-bit) +constant; this takes care of some special cases in long arithmetic. +.RT +.IP a +is satisfied when the operand is addressible; +this occurs not only for variables and constants, but also for +some more complicated constructions, such as indirection through +a simple variable, `*p++' where +.II p +is a register variable (because of the PDP-11's auto-increment address +mode), and `*(p+c)' where +.II p +is a register and +.II c +is a constant. +Precisely, the requirement is that the operand refers to a cell +whose address can be written as a source or destination of a PDP-11 +instruction. +.RT +.IP e +is satisfied by an operand whose value can be generated in a register +using no more than +.II k +registers, where +.II k +is the number of registers left (not counting the current register). +The `e' stands for `easy.' +.RT +.IP n +is satisfied by any operand. +The `n' stands for `anything.' +.PP +These degrees of difficulty are considered to lie in a linear ordering +and any operand which satisfies an earlier-mentioned requirement +will satisfy a later one. +Since the subtables are searched linearly, +if a `1' specification is included, almost certainly +a `z' must be written first to prevent +expressions containing the constant 0 to be compiled +as if the 0 were 1. +.PP +Finally, +a key specification may contain a `*' which +requires the operand to have an indirection as its leading operator. +Examples below should clarify the utility of this specification. +.PP +Now let us consider the contents of the code string +associated with each subtable entry. +Conventionally, lower-case letters in this string +represent literal information which is copied directly +to the output. +Upper-case letters generally introduce specific +macro-operations, some of which may be followed +by modifying information. +The code strings in the tables are written with tabs and +new-lines used freely to suggest instructions which will be generated; +the table-compiling program compresses tabs (using the 0200 bit of the +next character) and throws away some of the new-lines. +For example the macro `F' is ordinarily written on a line by itself; +but since its expansion will end with a new-line, the new-line +after `F' itself is dispensable. +This is all to reduce the size of the stored tables. +.PP +The first set of macro-operations is concerned with +compiling subtrees. +Recall that this is done by the +.II cexpr +routine. +In the following discussion the `current register' +is generally the argument register to +.II cexpr; +that is, the place where the result is desired. +The `next register' is numbered one +higher +than the current register. +(This explanation isn't fully true +because of complications, described below, involving +operations which require even-odd register pairs.) +.IP F +causes a recursive call to +the +.II rcexpr +routine to compile code which places the value of the first (left) +operand of the operator in the current register. +.RT +.IP F1 +generates code which places the value of the first operand in the +next register. +It is incorrectly used if there might be no next register; +that is, if the degree of difficulty of the first operand is not `easy;' +if not, another register might not be available. +.RT +.IP FS +generates code which pushes the value of the first operand on the stack, +by calling +.II rcexpr +specifying +.II sptab +as the table. +.LP +Analogously, +.IP "S, S1, SS" +compile the second (right) operand +into the current register, the next register, or onto the stack. +.LP +To deal with registers, there are +.IP R +which expands into the name of the current register. +.RT +.IP R1 +which expands into the name of the next register. +.RT +.IP R+ +which expands into the the name of the current register plus 1. +It was suggested above that this is the same as the next register, +except for complications; here is one of them. +Long integer variables have +32 bits and require 2 registers; in such cases the next register +is the current register plus 2. +The code would like to talk about both halves of the +long quantity, so R refers to the register with the high-order part +and R+ to the low-order part. +.RT +.IP R\- +This is another complication, involving division and mod. +These operations involve a pair of registers of which the odd-numbered +contains the left operand. +.II Cexpr +arranges that the current register is odd; +the R\- notation allows the code to refer to the next lower, +even-numbered register. +.LP +To refer to addressible quantities, there are the notations: +.IP A1 +causes generation of the address specified by the first operand. +For this to be legal, the operand must be addressible; its +key must contain an `a' +or a more restrictive specification. +.RT +.IP A2 +correspondingly generates the address of the second operand +providing it has one. +.PP +We now have enough mechanism to show a complete, if suboptimal, +table for the + operator on word or byte operands. +.DS +%n,z + F +.sp 1 +%n,1 + F + inc R +.sp 1 +%n,aw + F + add A2,R +.sp 1 +%n,e + F + S1 + add R1,R +.sp 1 +%n,n + SS + F + add (sp)+,R +.DE +The first two sequences handle some special cases. +Actually it turns out that handling a right operand of 0 +is unnecessary since the expression-optimizer +throws out adds of 0. +Adding 1 by using the `increment' instruction is done next, +and then the case where the right operand is addressible. +It must be a word quantity, since the PDP-11 lacks an `add byte' instruction. +Finally the cases where the right operand either can, or cannot, +be done in the available registers are treated. +.PP +The next macro-instructions are conveniently +introduced by noticing that the above table is suitable +for subtraction as well as addition, since no use is made of the +commutativity of addition. +All that is needed is substitution of `sub' for `add' +and `dec' for 'inc.' +Considerable saving of space is achieved by factoring out +several similar operations. +.IP I +is replaced by a string from another table indexed by the operator +in the node being expanded. +This secondary table actually contains two strings per operator. +.RT +.IP I\(fm +is replaced by the second string in the side table +entry for the current operator. +.PP +Thus, given that the entries for `+' and `\-' in the side table +(which is called +.II instab) +are `add' and `inc,' `sub' and `dec' +respectively, +the middle of of the above addition table can be written +.DS +%n,1 + F + I' R + +%n,aw + F + I A2,R +.DE +and it will be suitable for subtraction, +and several other operators, as well. +.PP +Next, there is the question of character and floating-point operations. +.IP B1 +generates the letter `b' if the first operand is a character, +`f' if it is float or double, and nothing otherwise. +It is used in a context like `movB1' +which generates a `mov', `movb', or `movf' +instruction according to the type of the operand. +.RT +.IP B2 +is just like B1 but applies to the second operand. +.RT +.IP BE +generates `b' if either operand is a character +and null otherwise. +.RT +.IP BF +generates `f' if the type of the operator node itself is float or double, +otherwise null. +.PP +For example, there is an entry in +.II efftab +for the `=' operator +.DS +%a,aw +%ab,a + IBE A2,A1 +.DE +Note first that two key specifications +can be applied to the same code string. +Next, observe that when a word is assigned to a byte or to a word, +or a word is assigned to a byte, +a single instruction, +a +.II mov +or +.II movb +as appropriate, does the job. +However, when a byte is assigned to a word, +it must pass through a register to implement the sign-extension rules: +.DS +%a,n + S + IB1 R,A1 +.DE +.PP +Next, there is the question of handling indirection properly. +Consider the expression `X + *Y', where X and Y are expressions, +Assuming that Y is more complicated than just a variable, +but on the other hand qualifies as `easy' in the context, +the expression would be compiled by placing the value of X in a register, +that of *Y in the next register, and adding the registers. +It is easy to see that a better job can be done +by compiling X, then Y (into the next register), +and producing the +instruction symbolized by `add (R1),R'. +This scheme avoids generating +the instruction `mov (R1),R1' +required actually to place the value of *Y in a register. +A related situation occurs +with the expression `X + *(p+6)', which +exemplifies a construction +frequent in structure and array references. +The addition table shown above would produce +.DS +[put X in register R] +mov p,R1 +add $6,R1 +mov (R1),R1 +add R1,R +.DE +when the best code is +.DS +[put X in R] +mov p,R1 +add 6(R1),R +.DE +As we said above, a key specification for a code table entry +may require an operand to have an indirection as its highest operator. +To make use of the requirement, +the following macros are provided. +.IP F* +the first operand must have the form *X. +If in particular it has the form *(Y + c), for some constant +.II c, +then code is produced which places the value of Y in +the current register. +Otherwise, code is produced which loads X into the current register. +.RT +.IP F1* +resembles F* except that the next register is loaded. +.RT +.IP S* +resembles F* except that the second operand is loaded. +.RT +.IP S1* +resembles S* except that the next register is loaded. +.RT +.IP FS* +The first operand must have the form `*X'. +Push the value of X on the stack. +.RT +.IP SS* +resembles FS* except that it applies to the second operand. +.LP +To capture the constant that may have been skipped over +in the above macros, there are +.IP #1 +The first operand must have the form *X; +if in particular it has the form *(Y + c) for +.II c +a constant, then the constant is written out, +otherwise a null string. +.RT +.IP #2 +is the same as #1 except that the second operand is used. +.LP +Now we can improve the addition table above. +Just before the `%n,e' entry, put +.DS +%n,ew* + F + S1* + add #2(R1),R +.DE +and just before the `%n,n' put +.DS +%n,nw* + SS* + F + add *(sp)+,R +.DE +When using the stacking macros there is no place to use +the constant +as an index word, so that particular special case doesn't occur. +.PP +The constant mentioned above can actually be more +general than a number. +Any quantity acceptable to the assembler as an expression will do, +in particular the address of a static cell, perhaps with a numeric offset. +If +.II x +is an external character array, +the expression `x[i+5] = 0' will generate +the code +.DS +mov i,r0 +clrb x+5(r0) +.DE +via the table entry (in the `=' part of +.II efftab) +.DS +%e*,z + F + I'B1 #1(R) +.DE +Some machine operations place restrictions on the registers +used. +The divide instruction, used to implement the divide and mod +operations, requires the dividend to be placed in the odd member +of an even-odd pair; +other peculiarities +of multiplication make it simplest to put the multiplicand +in an odd-numbered register. +There is no theory which optimally accounts for +this kind of requirement. +.II Cexpr +handles it by checking for a multiply, divide, or mod operation; +in these cases, its argument register number is incremented by +one or two so that it is odd, and if the operation was divide or mod, +so that it is a member of a free even-odd pair. +The routine which determines the number of registers required +estimates, conservatively, that +at least two registers are required for a multiplication +and three for the other peculiar operators. +After the expression is compiled, +the register where the result actually ended up is returned. +(Divide and mod are actually the same operation except for the +location of the result). +.PP +These operations are the ones which cause results to end up in +unexpected places, +and this possibility adds a further level of complexity. +The simplest way of handling the problem is always to move the +result to the place where the caller expected it, +but this will produce unnecessary register moves in many +simple cases; `a = b*c' would generate +.DS +mov b,r1 +mul c,r1 +mov r1,r0 +mov r0,a +.DE +The next thought is used the passed-back +information as to where the result landed to change the notion of the current +register. +While compiling the `=' operation above, which comes from a +table +entry +like +.DS +%a,e + S + mov R,A1 +.DE +it is sufficient to redefine the meaning of `R' +after processing the `S' which does the multiply. +This technique is in fact used; the tables are written in such a way +that correct code is produced. +The trouble is that the technique cannot be used in general, +because it invalidates the count of the number of registers +required for an expression. +Consider just `a*b + X' where X is some expression. +The algorithm assumes that the value of a*b, +once computed, requires just one register. +If there are three registers available, and X requires two registers to +compute, then this expression will match a key specifying +`%n,e'. +If a*b is computed and left in register 1, then there are, contrary +to expectations, no longer two registers available to compute X, +but only one, and bad code will be produced. +To guard against this possibility, +.II cexpr +checks the result returned by recursive calls which implement +F, S and their relatives. +If the result is not in the expected register, then the number of +registers required by the other operand is checked; +if it can be done using those registers which remain even +after making unavailable the unexpectedly-occupied +register, then +the notions of the `next register' and possibly the `current +register' are redefined. +Otherwise a register-copy instruction is produced. +A register-copy is also always produced +when the current operator is one of those which have odd-even requirements. +.PP +Finally, there are a few loose-end macro operations +and facts about the tables. +The operators: +.IP V +is used for long operations. +It is written with an address like a machine instruction; +it expands into `adc' (add carry) if the operation +is an additive operator, +`sbc' (subtract carry) if the operation is a subtractive +operator, and disappears, along with the rest of the line, otherwise. +Its purpose is to allow common treatment of logical +operations, which have no carries, and additive and subtractive +operations, which generate carries. +.RT +.IP T +generates a `tst' instruction if the first operand +of the tree does not set the condition codes correctly. +It is used with divide and mod operations, +which require a sign-extended 32-bit operand. +The code table for the operations contains an `sxt' +(sign-extend) instruction to generate the high-order part of the +dividend. +.RT +.IP H +is analogous to the `F' and `S' macros, +except that it calls for the generation of code for +the current tree +(not one of its operands) +using +.II regtab. +It is used in +.II cctab +for all the operators which, when executed normally, +set the condition codes properly according to the result. +It prevents a `tst' instruction from being generated for +constructions like `if (a+b) ...' +since after calculation of the value of +`a+b' a conditional branch can be written immediately. +.PP +All of the discussion above is in terms of operators with operands. +Leaves of the expression tree (variables and constants), however, +are peculiar in that they have no operands. +In order to regularize the matching process, +.II cexpr +examines its operand to determine if it is a leaf; +if so, it creates a special `load' operator whose operand +is the leaf, and substitutes it for the argument tree; +this allows the table entry for the created operator +to use the `A1' notation to load the leaf into a register. +.PP +Purely to save space in the tables, +pieces of subtables can be labelled and referred to later. +It turns out, for example, +that rather large portions of the +the +.II efftab +table for the `=' and `=+' operators are identical. +Thus `=' has an entry +.DS +%[move3:] +%a,aw +%ab,a + IBE A2,A1 +.DE +while part of the `=+' table is +.DS +%aw,aw +% [move3] +.DE +Labels are written as `%[ ... : ]', +before the key specifications; +references +are written +with `% [ ... ]' +after the key. +Peculiarities in the implementation +make it necessary that labels appear before references to them. +.PP +The example illustrates the utility +of allowing separate keys +to point to the same code string. +The assignment code +works properly if either the right operand is a word, or the left operand +is a byte; +but since there is no `add byte' instruction the addition code +has to be restricted to word operands. diff --git a/doc/misc/ctour/cdoc4 b/doc/misc/ctour/cdoc4 new file mode 100644 index 00000000..346ba336 --- /dev/null +++ b/doc/misc/ctour/cdoc4 @@ -0,0 +1,163 @@ +.SH +Delaying and reordering +.PP +Intertwined with the code generation routines are two other, +interrelated processes. +The first, implemented by a routine called +.II delay, +is based on the observation that +naive code generation for the expression +`a = b++' would produce +.DS +mov b,r0 +inc b +mov r0,a +.DE +The point is that the table for postfix ++ has to preserve +the value of +.II b +before incrementing it; +the general way to do this is to preserve its value in a register. +A cleverer scheme would generate +.DS +mov b,a +inc b +.DE +.II Delay +is called for each expression input to +.II rcexpr, +and it searches for postfix ++ and \-\- +operators. +If one is found applied to a variable, +the tree is patched to bypass the operator +and compiled as it stands; +then the increment or decrement itself is done. +The effect is as if `a = b; b++' had been written. +In this example, of course, the user himself could have done the same job, +but more complicated examples are easily constructed, for example +`switch (x++)'. +An essential restriction is that the condition codes not +be required. +It would be incorrect to compile +`if (a++) ...' +as +.DS +tst a +inc a +beq ... +.DE +because the `inc' destroys the required setting of the condition codes. +.PP +Reordering is a similar sort of optimization. +Many cases which it detects are useful +mainly with register variables. +If +.II r +is a register variable, +the expression `r = x+y' is best compiled +as +.DS +mov x,r +add y,r +.DE +but the codes tables would produce +.DS +mov x,r0 +add y,r0 +mov r0,r +.DE +which is in fact preferred if +.II r +is not a register. +(If +.II r +is not a register, +the +two sequences are the same size, but the +second is slightly faster.) +The scheme is to compile the expression as if it had been written +`r = x; r =+ y'. +The +.II reorder +routine +is called with a pointer to each tree that +.II rcexpr +is about to compile; +if it has the right characteristics, +the `r = x' tree is constructed and passed recursively +to +.II rcexpr; +then the original tree is modified to read `r =+ y' +and the calling instance of +.II rcexpr +compiles that instead. +Of course the whole business is itself recursive +so that more extended forms of the same phenomenon are +handled, like `r = x + y | z'. +.PP +Care does have to be taken +to avoid `optimizing' an expression like `r = x + r' +into `r = x; r =+ r'. +It is required that the right operand of the expression on the right +of the `=' be a ', distinct from the register variable. +.PP +The second case that +.II reorder +handles is expressions of the form `r = X' used as a subexpression. +Again, the code out of the tables for +`x = r = y' +would be +.DS +mov y,r0 +mov r0,r +mov r0,x +.DE +whereas if +.II r +were a register it would be better to produce +.DS +mov y,r +mov r,x +.DE +When +.II reorder +discovers that +a register variable is being assigned to +in a subexpression, +it calls +.II rcexpr +recursively to +compile the subexpression, then fiddles the tree passed +to it so that the register variable itself appears +as the operand instead of the whole subexpression. +Here care has to be taken to avoid an infinite regress, +with +.II rcexpr +and +.II reorder +calling each other forever to handle assignments to registers. +.PP +A third set of cases treated by +.II reorder +comes up when any name, not necessarily a register, +occurs as a left operand of an assignment operator other than `=' +or as an operand of prefix `++' or `\-\-'. +Unless condition-code tests are involved, +when a subexpression like `(a =+ b)' is seen, +the assignment is performed and the argument tree +modified so that +.II a +is its operand; +effectively +`x + (y =+ z)' is compiled as `y =+ z; x + y'. +Similarly, prefix increment and decrement are pulled out +and performed first, then the remainder of the expression. +.PP +Throughout code generation, +the expression optimizer is called whenever +.II delay +or +.II reorder +change the expression tree. +This allows some special cases to be found that otherwise +would not be seen. diff --git a/doc/misc/ctour/ios.r b/doc/misc/ctour/ios.r new file mode 100644 index 00000000..9b8a1e9b --- /dev/null +++ b/doc/misc/ctour/ios.r @@ -0,0 +1,417 @@ +.de sr +.sp 1 +.ft I +.ne 2 +\\$1 +.if t .sp .2 +.br +.ft R +.. +.de it +\fI\\$1\fR +.. +.TL +A New Input-Output Package +.AU +D. M. Ritchie +.PP +A new package of IO routines is available under the Unix system. +It was designed with the following goals in mind. +.IP 1. +It should be similar in spirit to the earlier Portable +Library, and, to the extent possible, be compatible with it. +At the same time a few dubious design choices +in the Portable Library will be corrected. +.IP 2. +It must be as efficient as possible, both in time and in space, +so that there will be no hesitation in using it +no matter how critical the application. +.IP 3. +It must be simple to use, and also free of the magic +numbers and mysterious calls the use +of which mars the understandability and portability +of many programs using older packages. +.IP 4. +The interface provided should be applicable on all machines, +whether or not the programs which implement it are directly portable +to other systems, +or to machines other than the PDP11 running a version of Unix. +.PP +It is intended that this package replace the Portable Library. +Although it is not directly compatible, as discussed below, +it is sufficiently similar that +a set of relatively small, inexpensive adaptor routines +exist which make it appear identical to the current Portable Library +except in some very obscure details. +.PP +The most crucial difference between this package and the Portable +Library is that the current offering names streams in terms +of pointers rather than by +the integers known as `file descriptors.' +Thus, for example, the routine which opens a named file +returns a pointer to a certain structure rather than a number; +the routine which reads an open file +takes as an argument the pointer returned from the open call. +.SH +General Usage +.RT +Each program using the library must have the line +.DS + #include +.DE +which defines certain macros and variables. +The library containing the routines is `/usr/lib/libS.a,' +so the command to compile is +.DS + cc . . . \-lS +.DE +All names in the include file intended only for internal use begin +with an underscore `\_' to reduce the possibility +of collision with a user name. +The names intended to be visible outside the package are +.IP stdin 10 +The name of the standard input file +.IP stdout 10 +The name of the standard output file +.IP stderr 10 +The name of the standard error file +.IP EOF 10 +is actually \-1, and is the value returned by +the read routines on end-of-file or error. +.IP NULL 10 +is a notation for the null pointer, returned by +pointer-valued functions +to indicate an error +.IP FILE 10 +expands to `struct \_iob' and is a useful +shorthand when declaring pointers +to streams. +.IP BUFSIZ +is a number (viz. 512) +of the size suitable for an IO buffer supplied by the user. +See +.it setbuf, +below. +.IP "getc, getchar, putc, putchar, feof, ferror, fileno" 10 + +.br +are defined as macros. +Their actions are described below; +they are mentioned here +to point out that it is not possible to +redeclare them +and that they are not actually functions; +thus, for example, they may not have breakpoints set on them. +.PP +The routines in this package, like the current Portable +Library, +offer the convenience of automatic buffer allocation +and output flushing where appropriate. +Absent, however, is the facility +of changing the default input and output streams +by assigning to `cin' and `cout.' +The names `stdin,' stdout,' and `stderr' +are in effect constants and may not be assigned to. +.SH +Calls +.RT +The routines in the library are in nearly one-to-one +correspondence with those in the Portable Library. +In several cases the name has been changed. +This is an attempt to reduce confusion. +If the attempt is judged to fail the names may be made identical even +though +the arguments may be different. +The order of this list generally follows the order +used in the Portable Library document. +.sr "FILE *fopen(filename, type)" +.it Fopen +opens the file and, if needed, allocates a buffer for it. +.it Filename +is a character string specifying the name. +.it Type +is a character string (not a single character). +It may be `"r",' `"w",' or `"a"' to indicate +intent to read, write, or append. +The value returned is a file pointer. +If it is null the attempt to open failed. +.sr "int getc(ioptr)" +returns the next character from the stream named by +.it ioptr, +which is a pointer to a file such as returned by +.it fopen, +or the name +.it stdin. +The integer EOF is returned on end-of-file or when +an error occurs. +The null character is a legal character. +.sr "putc(c, ioptr)" +.it Putc +writes the character +.it c +on the output stream named by +.it ioptr, +which is a value returned from +.it fopen +or perhaps +.it stdout +or +.it stderr. +The character is returned as value, +but EOF is returned on error. +.sr fclose(ioptr) +The file corresponding to +.it ioptr +is closed after any buffers are emptied. +A buffer allocated by the IO system is freed. +.it Fclose +is automatic on normal termination of the program. +.sr fflush(ioptr) +Any buffered information on the (output) stream named by +.it ioptr +is written out. +Output files are normally buffered +if and only if they are not directed to the terminal, +but +.it stderr +is unbuffered unless +.it setbuf +is used. +.sr exit(errcode) +.it Exit +terminates the process and returns its argument as status +to the parent. +This is a special version of the routine +which calls +.it fflush +for each output file. +To terminate without flushing, +use +.it \_exit. +.sr feof(ioptr) +returns non-zero when end-of-file +has occurred on the specified input stream. +.sr ferror(ioptr) +returns non-zero when an error has occurred while reading +or writing the named stream. +The error indication lasts until the file has been closed. +.sr "getchar( )" +is identical to `getc(stdin)'. +.sr "putchar(c)" +is identical to `putc(c, stdout)'. +.sr "char *gets(s)" +reads characters up to a new-line from the standard input. +The new-line character is replaced by a null character. +It is the user's responsibility to make sure that the character array +.it s +is large enough. +.it Gets +returns its argument, or null if end-of-file or error occurred. +.sr "char *fgets(s, n, ioptr)" +reads up to +.it n +characters from the stream +.it ioptr +into the character pointer +.it s. +The read terminates with a new-line character. +The new-line character is placed in the buffer +followed by a null pointer. +The first argument, +or a null pointer if error or end-of-file occurred, +is returned. +.sr puts(s) +writes the null-terminated string (character array) +.it s +on the standard output. +A new-line is appended. +No value is returned. +.sr "fputs(s, ioptr)" +writes the null-terminated string (character array) +on the stream +.it s. +No new-line is appended. +No value is returned. +.sr "ungetc(c, ioptr)" +The argument character +.it c +is pushed back on the input stream named by +.it ioptr. +Only one character may be pushed back. +.sr "printf(format, a1, . . .)" +.sr "fprintf(ioptr, format, a1, . . .)" +.sr "sprintf(s, format, a1, . . .)" +.it Printf +writes on the standard output. +.it Fprintf +writes on the named output stream. +.it Sprintf +puts characters in the character array (string) +named by +.it s. +The specifications are as usual. +.sr "scanf(format, a1, . . .)" +.sr "fscanf(ioptr, format, a1, . . .)" +.sr "sscanf(s, format, a1, . . .)" +.it Scanf +reads from the standard input. +.it Fscanf +reads from the named input stream. +.it Sscanf +reads from the character string +supplied as +.it s. +The specifications are identical +to those of the Portable Library. +.sr "fread(ptr, sizeof(*ptr), nitems, ioptr)" +writes +.it nitems +of data beginning at +.it ptr +on file +.it ioptr. +It behaves identically to the Portable Library's +.it cread. +No advance notification +that binary IO is being done is required; +when, for portability reasons, +it becomes required, it will be done +by adding an additional character to the mode-string on the +fopen call. +.sr "fwrite(ptr, sizeof(*ptr), nitems, ioptr)" +Like +.it fread, +but in the other direction. +.sr rewind(ioptr) +rewinds the stream +named by +.it ioptr. +It is not very useful except on input, +since a rewound output file is still open only for output. +.sr system(string) +.sr atof(s) +.sr tmpnam(s) +.sr abort(code) +.sr "intss( )" +.sr "cfree(ptr)" +.sr "wdleng( )" +are available with specifications identical to those +described for the Portable Library. +.sr "char *calloc(n, sizeof(object))" +returns null when no space is available. +The space is guaranteed to be 0. +.sr ftoa +is not implemented but there are plausible alternatives. +.sr "nargs( )" +is not implemented. +.sr getw(ioptr) +returns the next word from the input stream named by +.it ioptr. +EOF is returned on end-of-file or error, +but since this a perfectly good +integer +.it feof +and +.it ferror +should be used. +.sr "putw(w, ioptr)" +writes the integer +.it w +on the named output stream. +.sr "setbuf(ioptr, buf)" +.it Setbuf +may be used after a stream has been opened +but before IO has started. +If +.it buf +is null, +the stream will be unbuffered. +Otherwise the buffer supplied will be used. +It is a character array of sufficient size: +.DS +char buf[BUFSIZ]; +.DE +.sr "fileno(ioptr)" +returns the integer file descriptor associated with the file. +.PP +Several additional routines are available. +.sr "fseek(ioptr, offset, ptrname)" +The location of the next byte in the stream +named by +.it ioptr +is adjusted. +.it Offset +is a long integer. +If +.it ptrname +is 0, the offset is measured from the beginning of the file; +if +.it ptrname +is 1, the offset is measured from the current read or +write pointer; +if +.it ptrname +is 2, the offset is measured from the end of the file. +The routine accounts properly for any buffering. +.sr "long ftell(iop)" +The byte offset, measured from the beginning of the file, +associated with the named stream is returned. +Any buffering is properly accounted for. +.sr "getpw(uid, buf)" +The password file is searched for the given integer user ID. +If an appropriate line is found, it is copied into +the character array +.it buf, +and 0 is returned. +If no line is found corresponding to the user ID +then 1 is returned. +.sr "strcat(s1, s2)" +.it S1 +and +.it s2 +are character pointers. +The end (null byte) +of the +.it s1 +string is found and +.it s2 +is copied to +.it s1 +starting there. +The space pointed to by +.it s1 +must be large enough. +.sr "strcmp(s1, s2)" +The character strings +.it s1 +and +.it s2 +are compared. +The result is positive, zero, or negative according as +.it s1 +is greater than, equal to, or less than +.it s2 +in ASCII collating sequence. +.sr "strcpy(s1, s2) +The null-terminated character string +.it s2 +is copied to the location pointed to by +.it s1. +.sr "strlen(s)" +The number of bytes in s up to a null byte +is returned. +.it S +is a character pointer. +.sr "gcvt(num, ndig, buf)" +.it Num +is a floating or double quantity. +.it Ndig +significant digits are converted to ASCII and placed +into the character array +.it buf. +The conversion is in Fortran +.it e +or +.it f +style, whichever yields the shorter string. +Insignificant trailing zeros are eliminated. diff --git a/doc/misc/ctour/newstuff b/doc/misc/ctour/newstuff new file mode 100644 index 00000000..e0629ac3 --- /dev/null +++ b/doc/misc/ctour/newstuff @@ -0,0 +1,443 @@ +.na +.ce +C Changes + +1. Long integers + +The compiler implements 32-bit integers. +The associated type keyword is `long'. +The word can act rather like an adjective in that +`long int' means a 32-bit integer and `long float' +means the same as `double.' +But plain `long' is a long integer. +Essentially all operations on longs are implemented except that +assignment-type operators do not have values, so +l1+(l2=+l3) won't work. +Neither will l1 = l2 = 0. + +Long constants are written with a terminating `l' or `L'. +E.g. "123L" or "0177777777L" or "0X56789abcdL". +The latter is a hex constant, which could also have been short; +it is marked by starting with "0X". +Every fixed decimal constant larger than 32767 is taken to +be long, and so are octal or hex constants larger than +0177777 (0Xffff, or 0xFFFF if you like). +A warning is given in such a case since this is actually +an incompatibility with the older compiler. +Where the constant is just used as an initializer or +assigned to something it doesn't matter. +If it is passed to a subroutine +then the routine will not get what it expected. + +When a short and a long integer are +operands of an arithmetic operator, +the short is converted to long (with sign extension). +This is true also when a short is assigned to a long. +When a long is assigned to a short integer it +is truncated at the high order end with no notice +of possible loss of significant digits. +This is true as well when a long is added to a pointer +(which includes its usage as a subscript). +The conversion rules for expressions involving +doubles and floats mixed with longs +are the same as those for short integers, +.ul +mutatis mutandis. + +A point to note is that constant expressions involving +longs are not evaluated at compile time, +and may not be used where constants are expected. +Thus + + long x {5000L*5000L}; + +is illegal; + + long x {5000*5000}; + +is legal but wrong because the high-order part is lost; +but both + + long x 25000000L; + +and + + long x 25.e6; + +are correct +and have the same meaning +because the double constant is converted to long at compile time. + +2. Unsigned integers + +A new fundamental data type with keyword `unsigned,' is +available. It may be used alone: + + unsigned u; + +or as an adjective with `int' + + unsigned int u; + +with the same meaning. There are not yet (or possibly ever) +unsigned longs or chars. The meaning of an unsigned variable is +that of an integer modulo 2^n, where n is 16 on the PDP-11. All +operators whose operands are unsigned produce results consistent +with this interpretation except division and remainder where the +divisor is larger than 32767; then the result is incorrect. The +dividend in an unsigned division may however have any value (i.e. +up to 65535) with correct results. Right shifts of unsigned +quantities are guaranteed to be logical shifts. + +When an ordinary integer and an unsigned integer are combined +then the ordinary integer is mapped into an integer mod 2^16 and +the result is unsigned. Thus, for example `u = -1' results in +assigning 65535 to u. This is mathematically reasonable, and +also happens to involve no run-time overhead. + +When an unsigned integer is assigned to a plain integer, an +(undiagnosed) overflow occurs when the unsigned integer exceeds +2^15-1. + +It is intended that unsigned integers be used in contexts where +previously character pointers were used (artificially and +nonportably) to represent unsigned integers. + +3. Block structure. + +A sequence of declarations may now appear at the beginning of any +compound statement in {}. The variables declared thereby are +local to the compound statement. Any declarations of the same +name existing before the block was entered are pushed down for +the duration of the block. Just as in functions, as before, auto +variables disappear and lose their values when the block is left; +static variables retain their values. Also according to the same +rules as for the declarations previously allowed at the start of +functions, if no storage class is mentioned in a declaration the +default is automatic. + +Implementation of inner-block declarations is such that there is +no run-time cost associated with using them. + +4. Initialization (part 1) + +This compiler properly handles initialization of structures +so the construction + + struct { char name[8]; char type; float val; } x + { "abc", 'a', 123.4 }; + +compiles correctly. +In particular it is recognized that the string is supposed +to fill an 8-character array, the `a' goes into a character, +and that the 123.4 must be rounded and placed in a single-precision +cell. +Structures of arrays, arrays of structures, and the like all work; +a more formal description of what is done follows. + + ::= + + ::= | , | + { } | { , } + +An element is an expression or a comma-separated sequence of +elements possibly enclosed in braces. +In a brace-enclosed +sequence, a comma is optional after the last element. +This very +ambiguous definition is parsed as described below. +"Expression" +must of course be a constant expression within the previous +meaning of the Act. + +An initializer for a non-structured scalar is an element with +exactly one expression in it. + +An "aggregate" is a structure or an array. +If the initializer +for an aggregate begins with a left brace, then the succeeding +comma-separated sequence of elements initialize the members of +the aggregate. +It is erroneous for the number of members in the +sequence to exceed the number of elements in the aggregate. +If +the sequence has too few members the aggregate is padded. + +If the initializer for an aggregate does not begin with a left +brace, then the members of the aggregate are initialized with +successive elements from the succeeding comma-separated sequence. +If the sequence terminates before the aggregate is filled the +aggregate is padded. + +The "top level" initializer is the object which initializes an +external object itself, as opposed to one of its members. +The +top level initializer for an aggregate must begin with a left +brace. + +If the top-level object being initialized is an array and if its +size is omitted in the declaration, e.g. "int a[]", then the size +is calculated from the number of elements which initialized it. + +Short of complete assimilation of this description, there are two +simple approaches to the initialization of complicated objects. +First, observe that it is always legal to initialize any object +with a comma-separated sequence of expressions. +The members of +every structure and array are stored in a specified order, so the +expressions which initialize these members may if desired be laid +out in a row to successively, and recursively, initialize the +members. + +Alternatively, the sequences of expressions which initialize +arrays or structures may uniformly be enclosed in braces. + +5. Initialization (part 2) + +Declarations, whether external, at the head of functions, or +in inner blocks may have initializations whose syntax is the same +as previous external declarations with initializations. The only +restrictions are that automatic structures and arrays may not be +initialized (they can't be assigned either); nor, for the moment +at least, may external variables when declared inside a function. + +The declarations and initializations should be thought of as +occurring in lexical order so that forward references in +initializations are unlikely to work. E.g., + + { int a a; + int b c; + int c 5; + ... + } + +Here a is initialized by itself (and its value is thus +undefined); b is initialized with the old value of c (which is +either undefined or any c declared in an outer block). + +6. Bit fields + +A declarator inside a structure may have the form + + : + +which specifies that the object declared is stored in a field +the number of bits in which is specified by the constant. +If several such things are stacked up next to each other +then the compiler allocates the fields from right to left, +going to the next word +when the new field will not fit. +The declarator may also have the form + + : + +which allocates an unnamed field to simplify accurate +modelling of things like hardware formats where there are unused +fields. +Finally, + + : 0 + +means to force the next field to start on a word boundary. + +The types of bit fields can be only "int" or "char". +The only difference between the two +is in the alignment and length restrictions: +no int field can be longer than 16 bits, nor any char longer +than 8 bits. +If a char field will not fit into the current character, +then it is moved up to the next character boundary. + +Both int and char fields +are taken to be unsigned (non-negative) +integers. + +Bit-field variables are not quite full-class citizens. +Although most operators can be applied to them, +including assignment operators, +they do not have addresses (i.e. there are no bit pointers) +so the unary & operator cannot be applied to them. +For essentially this reason there are no arrays of bit field +variables. + +There are three twoes in the implementation: +addition (=+) applied to fields +can result in an overflow into the next field; +it is not possible to initialize bit fields. + +7. Macro preprocessor + +The proprocessor handles `define' statements with formal arguments. +The line + + #define macro(a1,...,an) ...a1...an... + +is recognized by the presence of a left parenthesis +following the defined name. +When the form + + macro(b1,...,bn) + +is recognized in normal C program text, +it is replaced by the definition, with the corresponding +.ul +bi +actual argument string substituted for the corresponding +.ul +ai +formal arguments. +Both actual and formal arguments are separated by +commas not included in parentheses; the formal arguments +have the syntax of names. + +Macro expansions are no longer surrounded by spaces. +Lines in which a replacement has taken place are rescanned until +no macros remain. + +The preprocessor has a rudimentary conditional facility. +A line of the form + + #ifdef name + +is ignored if +`name' is defined to the preprocessor +(i.e. was the subject of a `define' line). +If name is not defined then all lines through +a line of the form + + #endif + +are ignored. +A corresponding +form is + + #ifndef name + ... + #endif + +which ignores the intervening lines unless `name' is defined. +The name `unix' is predefined and replaced by itself +to aid writers of C programs which are expected to be transported +to other machines with C compilers. + +In connection with this, there is a new option to the cc command: + + cc -Dname + +which causes `name' to be defined to the preprocessor (and replaced by +itself). +This can be used together with conditional preprocessor +statements to select variant versions of a program at compile time. + +The previous two facilities (macros with arguments, conditional +compilation) +were actually available in the 6th Edition system, but +undocumented. +New in this release of the cc command is the ability to +nest `include' files. +Preprocessor include lines may have the new form + + #include + +where the angle brackets replace double quotes. +In this case, the file name is prepended with a standard prefix, +namely `/usr/include'. +In is intended that commonly-used include files be placed +in this directory; +the convention reduces the dependence on system-specific +naming conventions. +The standard prefix can be replaced by +the cc command option `-I': + + cc -Iotherdirectory + +8. Registers + +A formal argument may be given the storage class `register.' +When this occurs the save sequence copies it +from the place +the caller left it into a fast register; +all usual restrictions on its use are the same +as for ordinary register variables. + +Now any variable inside a function may be declared `register;' +if the type is unsuitable, or if +there are more than three register declarations, +then the compiler makes it `auto' instead. +The restriction that the & operator may not be applied +to a register remains. + +9. Mode declarations + +A declaration of the form + + typedef_______ type-specifier declarator ;_ + +makes the name given in the declarator into the equivalent +of a keyword specifying the type which the name would have +in an ordinary declaration. +Thus + + typedef int *iptr; + +makes `iptr' usable in declarations of pointers to integers; +subsequently the declarations + + iptr ip; +.br + int *ip; + +would mean the same thing. +Type names introduced in this way +obey the same scope rules as ordinary variables. +The facility is new, experimental, and probably buggy. + +10. Restrictions + +The compiler is somewhat stickier about +some constructions that used to be accepted. + +One difference is that external declarations made inside +functions are remembered to the end of the file, +that is even past the end of the function. +The most frequent problem that this causes is that +implicit declaration of a function as an integer in one +routine, +and subsequent explicit declaration +of it as another type, +is not allowed. +This turned out to affect +several source programs +distributed with the system. + +It is now required that all forward references to labels +inside a function be the subject of a `goto.' +This has turned out to affect mainly people who +pass a label to the routine `setexit.' +In fact a routine is supposed to be passed here, +and why a label worked I do not know. + +In general this compiler makes it more difficult +to use label variables. +Think of this as a contribution to structured programming. + +The compiler now checks multiple declarations of the same name +more carefully for consistency. +It used to be possible to declare the same name to +be a pointer to different structures; +this is caught. +So too are declarations of the same array as having different +sizes. +The exception is that array declarations with empty brackets +may be used in conjunction with a declaration with a specified size. +Thus + + int a[]; + int a[50]; + +is acceptable (in either order). + +An external array all of whose definitions +involve empty brackets is diagnosed as `undefined' +by the loader; +it used to be taken as having 1 element. diff --git a/doc/misc/diskperf/Makefile b/doc/misc/diskperf/Makefile new file mode 100644 index 00000000..775e7cd5 --- /dev/null +++ b/doc/misc/diskperf/Makefile @@ -0,0 +1,18 @@ +# +# Copyright (c) 1983 Regents of the University of California. +# All rights reserved. The Berkeley software License Agreement +# specifies the terms and conditions for redistribution. +# +# @(#)Makefile 6.1 (Berkeley) 4/20/86 +# +TROFF= ditroff -Pdp +TBL= dtbl -Pdp + +FILES= abs.ms motivation.ms equip.ms methodology.ms tests.ms results.ms \ + conclusions.ms appendix.ms + +paper: ${FILES} + ${TBL} ${FILES} | ${TROFF} -ms + +preview:${FILES} + tbl ${FILES} | nroff -ms | colcrt diff --git a/doc/misc/diskperf/abs.ms b/doc/misc/diskperf/abs.ms new file mode 100644 index 00000000..f464c744 --- /dev/null +++ b/doc/misc/diskperf/abs.ms @@ -0,0 +1,149 @@ +.\" Copyright (c) 1983 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)abs.ms 6.1 (Berkeley) 4/20/86 +.\" +.if n .ND +.TL +Performance Effects of Disk Subsystem Choices +for VAX\(dg Systems Running 4.2BSD UNIX* +.sp +Revised July 27, 1983 +.AU +Bob Kridle +.AI +mt Xinu +2560 9th Street +Suite #312 +Berkeley, California 94710 +.AU +Marshall Kirk McKusick\(dd +.AI +Computer Systems Research Group +Computer Science Division +Department of Electrical Engineering and Computer Science +University of California, Berkeley +Berkeley, CA 94720 +.AB +.FS +\(dgVAX, UNIBUS, and MASSBUS are trademarks of Digital Equipment Corporation. +.FE +.FS +* UNIX is a trademark of Bell Laboratories. +.FE +.FS +\(ddThis work was supported under grants from +the National Science Foundation under grant MCS80-05144, +and the Defense Advance Research Projects Agency (DoD) under +Arpa Order No. 4031 monitored by Naval Electronic System Command under +Contract No. N00039-82-C-0235. +.FE +Measurements were made of the UNIX file system +throughput for various I/O operations using the most attractive currently +available Winchester disks and controllers attached to both the +native busses (SBI/CMI) and the UNIBUS on both VAX 11/780s and VAX 11/750s. +The tests were designed to highlight the performance of single +and dual drive subsystems operating in the 4.2BSD +.I +fast file system +.R +environment. +Many of the results of the tests were initially counter-intuitive +and revealed several important aspects of the VAX implementations +which were surprising to us. +.PP +The hardware used included two Fujitsu 2351A +``Eagle'' +disk drives on each of two foreign-vendor disk controllers +and two DEC RA-81 disk drives on a DEC UDA-50 disk controller. +The foreign-vendor controllers were Emulex SC750, SC780 +and Systems Industries 9900 native bus interfaced controllers. +The DEC UDA-50 controller is a UNIBUS interfaced, heavily buffered +controller which is the first implementation of a new DEC storage +system architecture, DSA. +.PP +One of the most important results of our testing was the correction +of several timing parameters in our device handler for devices +with an RH750/RH780 type interface and having high burst transfer +rates. +The correction of these parameters resulted in an increase in +performance of over twenty percent in some cases. +In addition, one of the controller manufacturers altered their bus +arbitration scheme to produce another increase in throughput. +.AE +.LP +.de PT +.lt \\n(LLu +.pc % +.nr PN \\n% +.tl '\\*(LH'\\*(CH'\\*(RH' +.lt \\n(.lu +.. +.af PN i +.ds LH Performance +.ds RH Contents +.bp 1 +.\".if t .ds CF July 27, 1983 +.\".if t .ds LF CSRG TR/8 +.\".if t .ds RF Kridle, et. al. +.ce +.B "TABLE OF CONTENTS" +.LP +.sp 1 +.nf +.B "1. Motivation" +.LP +.sp .5v +.nf +.B "2. Equipment +2.1. DEC UDA50 disk controller +2.2. Emulex SC750/SC780 disk controllers +2.3. Systems Industries 9900 disk controller +2.4. DEC RA81 disk drives +2.5. Fujitsu 2351A disk drives +.LP +.sp .5v +.nf +.B "3. Methodology +.LP +.sp .5v +.nf +.B "4. Tests +.LP +.sp .5v +.nf +.B "5. Results +.LP +.sp .5v +.nf +.B "6. Conclusions +.LP +.sp .5v +.nf +.B Acknowledgements +.LP +.sp .5v +.nf +.B References +.LP +.sp .5v +.nf +.B "Appendix A +A.1. read_8192 +A.2. write_4096 +A.3. write_8192 +A.4. rewrite_8192 +.ds RH Motivation +.af PN 1 +.bp 1 +.de _d +.if t .ta .6i 2.1i 2.6i +.\" 2.94 went to 2.6, 3.64 to 3.30 +.if n .ta .84i 2.6i 3.30i +.. +.de _f +.if t .ta .5i 1.25i 2.5i +.\" 3.5i went to 3.8i +.if n .ta .7i 1.75i 3.8i +.. diff --git a/doc/misc/diskperf/appendix.ms b/doc/misc/diskperf/appendix.ms new file mode 100644 index 00000000..63cfe9dc --- /dev/null +++ b/doc/misc/diskperf/appendix.ms @@ -0,0 +1,71 @@ +.\" Copyright (c) 1983 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)appendix.ms 6.1 (Berkeley) 4/20/86 +.\" +.nr H2 1 +.ds RH Appendix A +.SH +\s+2Appendix A\s0 +.SH +read_8192 +.DS +#define BUFSIZ 8192 +main( argc, argv) +char **argv; +{ + char buf[BUFSIZ]; + int i, j; + + j = open(argv[1], 0); + for (i = 0; i < 1024; i++) + read(j, buf, BUFSIZ); +} +.DE +.SH +write_4096 +.DS +#define BUFSIZ 4096 +main( argc, argv) +char **argv; +{ + char buf[BUFSIZ]; + int i, j; + + j = creat(argv[1], 0666); + for (i = 0; i < 2048; i++) + write(j, buf, BUFSIZ); +} +.DE +.SH +write_8192 +.DS +#define BUFSIZ 8192 +main( argc, argv) +char **argv; +{ + char buf[BUFSIZ]; + int i, j; + + j = creat(argv[1], 0666); + for (i = 0; i < 1024; i++) + write(j, buf, BUFSIZ); +} +.DE +.bp +.SH +rewrite_8192 +.DS +#define BUFSIZ 8192 +main( argc, argv) +char **argv; +{ + char buf[BUFSIZ]; + int i, j; + + j = open(argv[1], 2); + for (i = 0; i < 1024; i++) + write(j, buf, BUFSIZ); +} +.DE diff --git a/doc/misc/diskperf/conclusions.ms b/doc/misc/diskperf/conclusions.ms new file mode 100644 index 00000000..677bf935 --- /dev/null +++ b/doc/misc/diskperf/conclusions.ms @@ -0,0 +1,100 @@ +.\" Copyright (c) 1983 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)conclusions.ms 6.1 (Berkeley) 4/20/86 +.\" +.ds RH Conclusions +.NH +Conclusions +.PP +Peak available throughput is only one criterion +in most storage system purchasing decisions. +Most of the VAX UNIX systems we are familiar with +are not I/O bandwidth constrained. +Nevertheless, an adequate disk bandwidth is necessary for +good performance and especially to preserve snappy +response time. +All of the disk systems we tested provide more than +adequate bandwidth for typical VAX UNIX system application. +Perhaps in some I/O-intensive applications such as +image processing, more consideration should be given +to the peak throughput available. +In most situations, we feel that other factors are more +important in making a storage choice between the systems we +tested. +Cost, reliability, availability, and support are some of these +factors. +The maturity of the technology purchased must also be weighed +against the future value and expandability of newer technologies. +.PP +Two important conclusions about storage systems in general +can be drawn from these tests. +The first is that buffering can be effective in smoothing +the the effects of lower bus speeds and bus contention. +Even though the UDA50 is located on the relatively slow +UNIBUS, its performance is similar to controllers located on +the faster processor busses. +However, the SC780 with only one sector of buffering shows that +little buffering is needed if the underlying bus is fast enough. +.PP +Placing more intelligence in the controller seems to hinder UNIX system +performance more than it helps. +Our profiling tests have indicated that UNIX spends about +the same percentage of time in the SC780 driver and the UDA50 driver +(about 10-14%). +Normally UNIX uses a disk sort algorithm that separates reads and +writes into two seek order queues. +The read queue has priority over the write queue, +since reads cause processes to block, +while writes can be done asynchronously. +This is particularly useful when generating large files, +as it allows the disk allocator to read +new disk maps and begin doing new allocations +while the blocks allocated out of the previous map are written to disk. +Because the UDA50 handles all block ordering, +and because it keeps all requests in a single queue, +there is no way to force the longer seek needed to get the next disk map. +This disfunction causes all the writes to be done before the disk map read, +which idles the disk until a new set of blocks can be allocated. +.PP +The additional functionality of the UDA50 controller that allows it +to transfer simultaneously from two drives at once tends to make +the two drive transfer tests run much more effectively. +Tuning for the single drive case works more effectively in the two +drive case than when controllers that cannot handle simultaneous +transfers are used. +.ds RH Acknowledgements +.nr H2 1 +.sp 1 +.SH +\s+2Acknowledgements\s0 +.PP +We thank Paul Massigilia and Bill Grace +of Digital Equipment Corp for helping us run our +disk tests on their UDA50/RA81. +We also thank Rich Notari and Paul Ritkowski +of Emulex for making their machines available +to us to run our tests of the SC780/Eagles. +Dan McKinster, then of Systems Industries, +arranged to make their equipment available for the tests. +We appreciate the time provided by Bob Gross, Joe Wolf, and +Sam Leffler on their machines to refine our benchmarks. +Finally we thank our sponsors, +the National Science Foundation under grant MCS80-05144, +and the Defense Advance Research Projects Agency (DoD) under +Arpa Order No. 4031 monitored by Naval Electronic System Command under +Contract No. N00039-82-C-0235. +.ds RH References +.nr H2 1 +.sp 1 +.SH +\s+2References\s0 +.LP +.IP [McKusick83] 20 +M. McKusick, W. Joy, S. Leffler, R. Fabry, +``A Fast File System for UNIX'', +\fIACM Transactions on Computer Systems 2\fP, 3. +pp 181-197, August 1984. +.ds RH Appendix A +.bp diff --git a/doc/misc/diskperf/equip.ms b/doc/misc/diskperf/equip.ms new file mode 100644 index 00000000..0f8e1635 --- /dev/null +++ b/doc/misc/diskperf/equip.ms @@ -0,0 +1,150 @@ +.\" Copyright (c) 1983 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)equip.ms 6.1 (Berkeley) 4/20/86 +.\" +.ds RH Equipment +.NH +Equipment +.PP +Various combinations of the three manufacturers disk controllers, +and two pairs of Winchester disk drives were tested on both +VAX 11/780 and VAX 11/750 CPUs. The Emulex and Systems Industries +disk controllers were interfaced to Fujitsu 2351A +``Eagle'' +404 Megabyte disk drives. +The DEC UDA50 disk controller was interfaced to two DEC RA81 +456 Megabyte Winchester disk drives. +All three controllers were tested on the VAX 780 although +only the Emulex and DEC controllers were benchmarked on the VAX 11/750. +Systems Industries makes a VAX 11/750 CMI interface for +their controller, but we did not have time to test this device. +In addition, not all the storage systems were tested for +two drive throughput. +Each of the controllers and disk drives used in the benchmarks +is described briefly below. +.NH 2 +DEC UDA50 disk controller +.PP +This is a new controller design which is part of a larger, long range +storage architecture referred to as +``DSA'' +or \fBD\fRigital \fBS\fRtorage \fBA\fRrchetecture. +An important aspect of DSA is migrating a large part +of the storage management previously handled in the operating +system to the storage system. Thus, the UDA50 is a much more +intelligent controller than previous interfaces like the RH750 or +RH780. +The UDA50 handles all error correction. +It also deals with most of the physical storage parameters. +Typically, system software requests a logical block or +sequence of blocks. +The physical locations of these blocks, +their head, track, and cylinder indices, +are determined by the controller. +The UDA50 also orders disk requests to maximize throughput +where possible, minimizing total seek and rotational delays. +Where multiple drives are attached to a single controller, +the UDA50 can interleave +simultaneous +data transfers from multiple drives. +.PP +The UDA50 is a UNIBUS implementation of a DSA controller. +It contains 52 sectors of internal buffering to minimize +the effects of a slow UNIBUS such as the one on the VAX-11/780. +This buffering also minimizes the effects of contention with +other UNIBUS peripherals. +.NH 2 +Emulex SC750/SC780 disk controllers +.PP +These two models of the same controller interface to the CMI bus +of a VAX 11/750 and the SBI bus of a 11/VAX 780, respectively. +To the operating system, they emulate either an RH750 or +and RH780. +The controllers install in the +MASSBUS +locations in the CPU cabinets and operate from the +VAX power suplies. +They provide an +``SMD'' +or \fBS\fRtorage \fBM\fRodule \fBD\fRrive +interface to the disk drives. +Although a large number of disk drives use this interface, we tested +the controller exclusively connected to Fujitsu 2351A disks. +.PP +The controller ws first implemented for the VAX-11/750 as the SC750 +model several years ago. Although the SC780 was introduced more +recently, both are stable products with no bugs known to us. +.NH 2 +System Industries 9900 disk controller +.PP +This controller is an evolution of the S.I. 9400 first introduced +as a UNIBUS SMD interface. +The 9900 has been enhanced to include an interface to the VAX 11/780 native +bus, the SBI. +It has also been upgraded to operate with higher data rate drives such +as the Fujitsu 2351As we used in this test. +The controller is contained in its own rack-mounted drawer with an integral +power supply. +The interface to the SMD is a four module set which mounts in a +CPU cabinet slot normally occupied by an RH780. +The SBI interface derives power from the VAX CPU cabinet power +supplies. +.NH 2 +DEC RA81 disk drives +.PP +The RA81 is a rack-mountable 456 Megabyte (formatted) Winchester +disk drive manufactured by DEC. +It includes a great deal of technology which is an integral part +of the DEC \fBDSA\fR scheme. +The novel technology includes a serial packet based communications +protocol with the controller over a pair of mini-coaxial cables. +The physical characteristics of the RA81 are shown in the +table below: +.DS +.TS +box,center; +c s +l l. +DEC RA81 Disk Drive Characteristics +_ +Peak Transfer Rate 2.2 Mbytes/sec. +Rotational Speed 3,600 RPM +Data Sectors/Track 51 +Logical Cylinders 1,248 +Logical Data Heads 14 +Data Capacity 456 Mbytes +Minimum Seek Time 6 milliseconds +Average Seek Time 28 milliseconds +Maximum Seek Time 52 milliseconds +.TE +.DE +.NH 2 +Fujitsu 2351A disk drives +.PP +The Fujitsu 2351A disk drive is a Winchester disk drive +with an SMD controller interface. +Fujitsu has developed a very good reputation for +reliable storage products over the last several years. +The 2351A has the following physical characteristics: +.DS +.TS +box,center; +c s +l l. +Fujitsu 2351A Disk Drive Characteristics +_ +Peak Transfer Rate 1.859 Mbytes/sec. +Rotational Speed 3,961 RPM +Data Sectors/Track 48 +Cylinders 842 +Data Heads 20 +Data Capacity 404 Mbytes +Minimum Seek Time 5 milliseconds +Average Seek Time 18 milliseconds +Maximum Seek Time 35 milliseconds +.TE +.DE +.ds RH Methodology +.bp diff --git a/doc/misc/diskperf/methodology.ms b/doc/misc/diskperf/methodology.ms new file mode 100644 index 00000000..eb03fa43 --- /dev/null +++ b/doc/misc/diskperf/methodology.ms @@ -0,0 +1,84 @@ +.\" Copyright (c) 1983 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)methodology.ms 6.1 (Berkeley) 4/20/86 +.\" +.ds RH Methodology +.NH +Methodology +.PP +Our goal was to evaluate the performance of the target peripherals +in an environment as much like our 4.2BSD UNIX systems as possible. +There are two basic approaches to creating this kind of test environment. +These might be termed the \fIindirect\fR and the \fIdirect\fR approach. +The approach used by DEC in producing most of the performance data +on the UDA50/RA81 system under VMS is what we term the indirect +approach. +We chose to use the direct approach. +.PP +The indirect approach used by DEC involves two steps. +First, the environment in which performance is to be evaluated +is parameterized. +In this case, the disk I/O characteristics of VMS were measured +as to the distribution of various sizes of accesses and the proportion +of reads and writes. +This parameterization of +typical +I/O activity was termed a +``vax mix.'' +The second stage involves simulating this mixture of I/O activities +with the devices to be tested and noting the total volume of transactions +processed per unit time by each system. +.PP +The problems encountered with this indirect approach often +have to do with the completeness and correctness of the parameterization +of the context environment. +For example, the +``vax mix'' +model constructed for DECs tests uses a random distribution of seeks +to the blocks read or written. +It is not likely that any real system produces a distribution +of disk transfer locations which is truly random and does not +exhibit strong locality characteristics. +.PP +The methodology chosen by us is direct +in the sense that it uses the standard structured file system mechanism present +in the 4.2BSD UNIX operating system to create the sequence of locations +and sizes of reads and writes to the benchmarked equipment. +We simply create, write, and read +files as they would be by user's activities. +The disk space allocation and disk cacheing mechanism built into +UNIX is used to produce the actual device reads and writes as well +as to determine their size and location on the disk. +We measure and compare the rate at which these +.I +user files +.R +can be written, rewritten, or read. +.PP +The advantage of this approach is the implicit accuracy in +testing in the same environment in which the peripheral +will be used. +Although this system does not account for the I/O produced +by some paging and swapping, in our memory rich environment +these activities account for a relatively small portion +of the total disk activity. +.PP +A more significant disadvantage to the direct approach +is the occasional difficulty we have in accounting for our +measured results. +The apparently straight-forward activity of reading or writing a logical file +on disk can produce a complex mixture of disk traffic. +File I/O is supported by a file management system that +buffers disk traffic through an internal cache, +which allows writes to ba handled asynchronously. +Reads must be done synchronously, +however this restriction is moderated by the use of read-ahead. +Small changes in the performance of the disk controller +subsystem can result in large and unexpected +changes in the file system performance, +as it may change the characteristics of the memory contention +experienced by the processor. +.ds RH Tests +.bp diff --git a/doc/misc/diskperf/motivation.ms b/doc/misc/diskperf/motivation.ms new file mode 100644 index 00000000..ff972a2a --- /dev/null +++ b/doc/misc/diskperf/motivation.ms @@ -0,0 +1,66 @@ +.\" Copyright (c) 1983 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)motivation.ms 6.1 (Berkeley) 4/20/86 +.\" +.ds RH Motivation +.NH +Motivation +.PP +These benchmarks were performed for several reasons. +Foremost was our desire to obtain guideline to aid +in choosing one the most expensive components of any +VAX UNIX configuration, the disk storage system. +The range of choices in this area has increased dramatically +in the last year. +DEC has become, with the introduction of the UDA50/RA81 system, +cost competitive +in the area of disk storage for the first time. +Emulex's entry into the VAX 11/780 SBI controller +field, the SC780, represented a important choice for us to examine, given +our previous success with their VAX 11/750 SC750 controller and +their UNIBUS controllers. +The Fujitsu 2351A +Winchester disk drive represents the lowest cost-per-byte disk storage +known to us. +In addition, Fujitsu's reputation for reliability was appealing. +The many attractive aspects of these components justified a more +careful examination of their performance aspects under UNIX. +.PP +In addition to the direct motivation of developing an effective +choice of storage systems, we hoped to gain more insight into +VAX UNIX file system and I/O performance in general. +What generic characteristics of I/O subsystems are most +important? +How important is the location of the controller on the SBI/CMI versus +the UNIBUS? +Is extensive buffering in the controller essential or even important? +How much can be gained by putting more of the storage system +management and optimization function in the controller as +DEC does with the UDA50? +.PP +We also wanted to resolve particular speculation about the value of +storage system optimization by a controller in a UNIX +environment. +Is the access optimization as effective as that already provided +by the existing 4.2BSD UNIX device handlers for traditional disks? +VMS disk handlers do no seek optimization. +This gives the UDA50 controller an advantage over other controllers +under VMS which is not likely to be as important to UNIX. +Are there penalties associated with greater intelligence in the controller? +.PP +A third and last reason for evaluating this equipment is comparable +to the proverbial mountain climbers answer when asked why he climbs +a particular mountain, +``It was there.'' +In our case the equipment +was there. +We were lucky enough to assemble all the desired disks and controllers +and get them installed on a temporarily idle VAX 11/780. +This got us started collecting data. +Although many of the tests were later rerun on a variety of other systems, +this initial test bed was essential for working out the testing bugs +and getting our feet wet. +.ds RH Equipment +.bp diff --git a/doc/misc/diskperf/results.ms b/doc/misc/diskperf/results.ms new file mode 100644 index 00000000..43180645 --- /dev/null +++ b/doc/misc/diskperf/results.ms @@ -0,0 +1,310 @@ +.\" Copyright (c) 1983 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)results.ms 6.1 (Berkeley) 4/20/86 +.\" +.ds RH Results +.NH +Results +.PP +The following tables indicate the results of our +test runs. +Note that each table contains results for tests run +on two varieties of 4.2BSD file systems. +The first set of results is always for a file system +with a basic blocking factor of eight Kilobytes and a +fragment size of 1 Kilobyte. The second sets of measurements +are for file systems with a four Kilobyte block size and a +one Kilobyte fragment size. +The values in parenthesis indicate the percentage of CPU +time used by the test program. +In the case of the two disk arm tests, +the value in parenthesis indicates the sum of the percentage +of the test programs that were run. +Entries of ``n. m.'' indicate this value was not measured. +.DS +.TS +box,center; +c s s s s +c s s s s +c s s s s +l | l s | l s +l | l s | l s +l | l l | l l +l | c c | c c. +4.2BSD File Systems Tests - \fBVAX 11/750\fR += +Logically Sequential Transfers +from an \fB8K/1K\fR 4.2BSD File System (Kbytes/sec.) +_ +Test Emulex SC750/Eagle UDA50/RA81 + + 1 Drive 2 Drives 1 Drive 2 Drives +_ +read_8192 490 (69%) 620 (96%) 310 (44%) 520 (65%) +write_4096 380 (99%) 370 (99%) 370 (97%) 360 (98%) +write_8192 470 (99%) 470 (99%) 320 (71%) 410 (83%) +rewrite_8192 650 (99%) 620 (99%) 310 (50%) 450 (70%) += +.T& +c s s s s +c s s s s +l | l s | l s +l | l s | l s +l | l l | l l +l | c c | c c. +Logically Sequential Transfers +from \fB4K/1K\fR 4.2BSD File System (Kbytes/sec.) +_ +Test Emulex SC750/Eagle UDA50/RA81 + + 1 Drive 2 Drives 1 Drive 2 Drives +_ +read_8192 300 (60%) 400 (84%) 210 (42%) 340 (77%) +write_4096 320 (98%) 320 (98%) 220 (67%) 290 (99%) +write_8192 340 (98%) 340 (99%) 220 (65%) 310 (98%) +rewrite_8192 450 (99%) 450 (98%) 230 (47%) 340 (78%) +.TE +.DE +.PP +Note that the rate of write operations on the VAX 11/750 are ultimately +CPU limited in some cases. +The write rates saturate the CPU at a lower bandwidth than the reads +because they must do disk allocation in addition to moving the data +from the user program to the disk. +The UDA50/RA81 saturates the CPU at a lower transfer rate for a given +operation than the SC750/Eagle because +it causes more memory contention with the CPU. +We do not know if this contention is caused by +the UNIBUS controller or the UDA50. +.PP +The following table reports the results of test runs on a VAX 11/780 +with 4 Megabytes of main memory. +.DS +.TS +box,center; +c s s s s s s +c s s s s s s +c s s s s s s +l | l s | l s | l s +l | l s | l s | l s +l | l l | l l | l l +l | c c | c c | c c. +4.2BSD File Systems Tests - \fBVAX 11/780\fR += +Logically Sequential Transfers +from an \fB8K/1K\fR 4.2BSD File System (Kbytes/sec.) +_ +Test Emulex SC780/Eagle UDA50/RA81 Sys. Ind. 9900/Eagle + + 1 Drive 2 Drives 1 Drive 2 Drives 1 Drive 2 Drives +_ +read_8192 560 (70%) 480 (58%) 360 (45%) 540 (72%) 340 (41%) 520 (66%) +write_4096 440 (98%) 440 (98%) 380 (99%) 480 (96%) 490 (96%) 440 (84%) +write_8192 490 (98%) 490 (98%) 220 (58%)* 480 (92%) 490 (80%) 430 (72%) +rewrite_8192 760 (100%) 560 (72%) 220 (50%)* 180 (52%)* 490 (60%) 520 (62%) += +.T& +c s s s s s s +c s s s s s s +l | l s | l s | l s +l | l s | l s | l s +l | l l | l l | l l +l | c c | c c | c c. +Logically Sequential Transfers +from an \fB4K/1K\fR 4.2BSD File System (Kbytes/sec.) +_ +Test Emulex SC780/Eagle UDA50/RA81 Sys. Ind. 9900/Eagle + + 1 Drive 2 Drives 1 Drive 2 Drives 1 Drive 2 Drives +_ +read_8192 490 (77%) 370 (66%) n.m. n.m. 200 (31%) 370 (56%) +write_4096 380 (98%) 370 (98%) n.m. n.m. 200 (46%) 370 (88%) +write_8192 380 (99%) 370 (97%) n.m. n.m. 200 (45%) 320 (76%) +rewrite_8192 490 (87%) 350 (66%) n.m. n.m. 200 (31%) 300 (46%) +.TE +* the operation of the hardware was suspect during these tests. +.DE +.PP +The dropoff in reading and writing rates for the two drive SC780/Eagle +tests are probably due to the file system using insufficient +rotational delay for these tests. +We have not fully investigated these times. +.PP +The following table compares data rates on VAX 11/750s directly +with those of VAX 11/780s using the UDA50/RA81 storage system. +.DS +.TS +box,center; +c s s s s +c s s s s +c s s s s +l | l s | l s +l | l s | l s +l | l l | l l +l | c c | c c. +4.2BSD File Systems Tests - \fBDEC UDA50 - 750 vs. 780\fR += +Logically Sequential Transfers +from an \fB8K/1K\fR 4.2BSD File System (Kbytes/sec.) +_ +Test VAX 11/750 UNIBUS VAX 11/780 UNIBUS + + 1 Drive 2 Drives 1 Drive 2 Drives +_ +read_8192 310 (44%) 520 (84%) 360 (45%) 540 (72%) +write_4096 370 (97%) 360 (100%) 380 (99%) 480 (96%) +write_8192 320 (71%) 410 (96%) 220 (58%)* 480 (92%) +rewrite_8192 310 (50%) 450 (80%) 220 (50%)* 180 (52%)* += +.T& +c s s s s +c s s s s +l | l s | l s +l | l s | l s +l | l l | l l +l | c c | c c. +Logically Sequential Transfers +from an \fB4K/1K\fR 4.2BSD File System (Kbytes/sec.) +_ +Test VAX 11/750 UNIBUS VAX 11/780 UNIBUS + + 1 Drive 2 Drives 1 Drive 2 Drives +_ +read_8192 210 (42%) 342 (77%) n.m. n.m. +write_4096 215 (67%) 294 (99%) n.m. n.m. +write_8192 215 (65%) 305 (98%) n.m. n.m. +rewrite_8192 227 (47%) 336 (78%) n.m. n.m. +.TE +* the operation of the hardware was suspect during these tests. +.DE +.PP +The higher throughput available on VAX 11/780s is due to a number +of factors. +The larger main memory size allows a larger file system cache. +The block allocation routines run faster, raising the upper limit +on the data rates in writing new files. +.PP +The next table makes the same comparison using an Emulex controller +on both systems. +.DS +.TS +box, center; +c s s s s +c s s s s +c s s s s +l | l s | l s +l | l s | l s +l | l l | l l +l | c c | c c. +4.2BSD File Systems Tests - \fBEmulex - 750 vs. 780\fR += +Logically Sequential Transfers +from an \fB8K/1K\fR 4.2BSD File System (Kbytes/sec.) +_ +Test VAX 11/750 CMI Bus VAX 11/780 SBI Bus + + 1 Drive 2 Drives 1 Drive 2 Drives +_ +read_8192 490 (69%) 620 (96%) 560 (70%) 480 (58%) +write_4096 380 (99%) 370 (99%) 440 (98%) 440 (98%) +write_8192 470 (99%) 470 (99%) 490 (98%) 490 (98%) +rewrite_8192 650 (99%) 620 (99%) 760 (100%) 560 (72%) += +.T& +c s s s s +c s s s s +l | l s | l s +l | l s | l s +l | l l | l l +l | c c | c c. +Logically Sequential Transfers +from an \fB4K/1K\fR 4.2BSD File System (Kbytes/sec.) +_ +Test VAX 11/750 CMI Bus VAX 11/780 SBI Bus + + 1 Drive 2 Drives 1 Drive 2 Drives +_ +read_8192 300 (60%) 400 (84%) 490 (77%) 370 (66%) +write_4096 320 (98%) 320 (98%) 380 (98%) 370 (98%) +write_8192 340 (98%) 340 (99%) 380 (99%) 370 (97%) +rewrite_8192 450 (99%) 450 (98%) 490 (87%) 350 (66%) +.TE +.DE +.PP +The following table illustrates the evolution of our testing +process as both hardware and software problems effecting +the performance of the Emulex SC780 were corrected. +The software change was suggested to us by George Goble +of Purdue University. +.PP +The 4.2BSD handler for RH750/RH780 interfaced disk drives +contains several constants which to determine how +much time is provided between an interrupt signaling the completion +of a positioning command and the subsequent start of a data transfer +operation. These lead times are expressed as sectors of rotational delay. +If they are too small, an extra complete rotation will often be required +between a seek and subsequent read or write operation. +The higher bit rate and rotational speed of the 2351A Fujitsu +disk drives required +increasing these constants. +.PP +The hardware change involved allowing for slightly longer +delays in arbitrating for cycles on the SBI bus by +starting the bus arbitration cycle a little further ahead of +when the data was ready for transfer. +Finally we had to increase the rotational delay between consecutive +blocks in the file because +the higher bandwidth from the disk generated more memory contention, +which slowed down the processor. +.DS +.TS +box,center,expand; +c s s s s s s +c s s s s s s +c s s s s s s +l | l s | l s | l s +l | l s | l s | l s +l | l s | l s | l s +l | c c | c c | c c +l | c c | c c | c c. +4.2BSD File Systems Tests - \fBEmulex SC780 Disk Controller Evolution\fR += +Logically Sequential Transfers +from an \fB8K/1K\fR 4.2BSD File System (Kbytes/sec.) +_ +Test Inadequate Search Lead OK Search Lead OK Search Lead + Initial SBI Arbitration Init SBI Arb. Improved SBI Arb. + + 1 Drive 2 Drives 1 Drive 2 Drives 1 Drive 2 Drives +_ +read_8192 320 370 440 (60%) n.m. 560 (70%) 480 (58%) +write_4096 250 270 300 (63%) n.m. 440 (98%) 440 (98%) +write_8192 250 280 340 (60%) n.m. 490 (98%) 490 (98%) +rewrite_8192 250 290 380 (48%) n.m. 760 (100%) 560 (72%) += +.T& +c s s s s s s +c s s s s s s +l | l s | l s | l s +l | l s | l s | l s +l | l s | l s | l s +l | c c | c c | c c +l | c c | c c | c c. +Logically Sequential Transfers +from an \fB4K/1K\fR 4.2BSD File System (Kbytes/sec.) +_ +Test Inadequate Search Lead OK Search Lead OK Search Lead + Initial SBI Arbitration Init SBI Arb. Improved SBI Arb. + + 1 Drive 2 Drives 1 Drive 2 Drives 1 Drive 2 Drives +_ +read_8192 200 220 280 n.m. 490 (77%) 370 (66%) +write_4096 180 190 300 n.m. 380 (98%) 370 (98%) +write_8192 180 200 320 n.m. 380 (99%) 370 (97%) +rewrite_8192 190 200 340 n.m. 490 (87%) 350 (66%) +.TE +.DE +.ds RH Conclusions +.bp diff --git a/doc/misc/diskperf/tests.ms b/doc/misc/diskperf/tests.ms new file mode 100644 index 00000000..f2965fba --- /dev/null +++ b/doc/misc/diskperf/tests.ms @@ -0,0 +1,81 @@ +.\" Copyright (c) 1983 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)tests.ms 6.1 (Berkeley) 4/20/86 +.\" +.ds RH Tests +.NH +Tests +.PP +Our battery of tests consists of four programs, +read_8192, write_8192, write_4096 +and rewrite_8192 originally written by [McKusick83] +to evaluate the performance of the new file system in 4.2BSD. +These programs all follow the the same model and are typified by +read_8192 shown here. +.DS +#define BUFSIZ 8192 +main( argc, argv) +char **argv; +{ + char buf[BUFSIZ]; + int i, j; + + j = open(argv[1], 0); + for (i = 0; i < 1024; i++) + read(j, buf, BUFSIZ); +} +.DE +The remaining programs are included in appendix A. +.PP +These programs read, write with two different blocking factors, +and rewrite logical files in structured file system on the disk +under test. +The write programs create new files while the rewrite program +overwrites an existing file. +Each of these programs represents an important segment of the +typical UNIX file system activity with the read program +representing by far the largest class and the rewrite the smallest. +.PP +A blocking factor of 8192 is used by all programs except write_4096. +This is typical of most 4.2BSD user programs since a standard set of +I/O support routines is commonly used and these routines buffer +data in similar block sizes. +.PP +For each test run, a empty eight Kilobyte block +file system was created in the target +storage system. +Then each of the four tests was run and timed. +Each test was run three times; +the first to clear out any useful data in the cache, +and the second two to insure that the experiment +had stablized and was repeatable. +Each test operated on eight Megabytes of data to +insure that the cache did not overly influence the results. +Another file system was then initialized using a +basic blocking factor of four Kilobytes and the same tests +were run again and timed. +A command script for a run appears as follows: +.DS +#!/bin/csh +set time=2 +echo "8K/1K file system" +newfs /dev/rhp0g eagle +mount /dev/hp0g /mnt0 +mkdir /mnt0/foo +echo "write_8192 /mnt0/foo/tst2" +rm -f /mnt0/foo/tst2 +write_8192 /mnt0/foo/tst2 +rm -f /mnt0/foo/tst2 +write_8192 /mnt0/foo/tst2 +rm -f /mnt0/foo/tst2 +write_8192 /mnt0/foo/tst2 +echo "read_8192 /mnt0/foo/tst2" +read_8192 /mnt0/foo/tst2 +read_8192 /mnt0/foo/tst2 +read_8192 /mnt0/foo/tst2 +umount /dev/hp0g +.DE +.ds RH Results +.bp diff --git a/doc/misc/gprof/Makefile b/doc/misc/gprof/Makefile new file mode 100644 index 00000000..6b66a6ea --- /dev/null +++ b/doc/misc/gprof/Makefile @@ -0,0 +1,32 @@ +# +# Copyright (c) 1986 Regents of the University of California. +# All rights reserved. The Berkeley software License Agreement +# specifies the terms and conditions for redistribution. +# +# @(#)Makefile 5.2 (Berkeley) 6/17/86 +# +SRCS= header.me abstract.me intro.me profiling.me gathering.me \ + postp.me present.me refs.me +PICSRC= postp1.pic postp2.pic postp3.pic pres1.pic pres2.pic +MACROS= -me +PRINTER=Pdp +SOELIM= soelim +EQN= deqn -${PRINTER} +TBL= dtbl -${PRINTER} +PIC= pic -${PRINTER} +TROFF= ditroff -${PRINTER} + +paper: paper.${PRINTER} + lpr -${PRINTER} -n paper.${PRINTER} + +paper.${PRINTER}: ${SRCS} ${PICSRC} + ${SOELIM} ${SRCS} | ${PIC} | ${TBL} | ${EQN} | \ + ${TROFF} ${MACROS} -t > paper.${PRINTER} + +clean: + rm -f paper.[PTp]* *.spell errs Errs make.out + +spell: ${SRCS} + @for i in ${SRCS}; do \ + echo $$i; spell $$i | sort | comm -23 - spell.ok > $$i.spell; \ + done diff --git a/doc/misc/gprof/abstract.me b/doc/misc/gprof/abstract.me new file mode 100644 index 00000000..2f3a97c9 --- /dev/null +++ b/doc/misc/gprof/abstract.me @@ -0,0 +1,51 @@ +.\" @(#)abstract.me 1.7 (Berkeley) 6/17/86 +.\" +.sp 1 +.ce 1000 +Reprinted from +Proceedings of the ACM SIGPLAN '82 Symposium on Compiler Construction +SIGPLAN Notices 17, 6 (June 1982), pp 120-126\*[\(dg\*] +.(f +\(dgCopyright 1982 ACM 0-89791-074-5/82/006/0120 $00.75 +.br +Permission to copy without fee all or part of this material +is granted provided that the copies are not made or distributed for +direct commercial advantage, the ACM copyright notice and the title +of the publication and its date appear, and notice is given that +copying is by permission of the Association for Computing Machinery. +To copy otherwise, or to republish, requires a fee and / or +specific permission. +.)f +.sp 2 +\fB\s+2gprof: a Call Graph Execution Profiler\s-2\fP\** +.(f +\**This work was supported by grant MCS80-05144 +from the National Science Foundation. +.)f +.sp 1 +by +\fISusan L. Graham\fP +\fIPeter B. Kessler\fP +\fIMarshall K. McKusick\fP +.sp 1 +Computer Science Division +Electrical Engineering and Computer Science Department +University of California, Berkeley +Berkeley, California 94720 +.ce 0 +.sp 1 +.sp 0.5i +.sh 0 "Abstract" +.pp +Large complex programs are composed of many small routines +that implement abstractions for the routines that call them. +To be useful, an execution profiler must attribute +execution time in a way that is significant for the +logical structure of a program +as well as for its textual decomposition. +This data must then be displayed to the user +in a convenient and informative way. +The \fBgprof\fP profiler +accounts for the running time of called routines +in the running time of the routines that call them. +The design and use of this profiler is described. diff --git a/doc/misc/gprof/gathering.me b/doc/misc/gprof/gathering.me new file mode 100644 index 00000000..55c10f47 --- /dev/null +++ b/doc/misc/gprof/gathering.me @@ -0,0 +1,199 @@ +\" @(#)gathering.me 1.7 3/14/82 +.sh 1 "Gathering Profile Data" +.pp +Routine calls or statement executions can be measured by having a +compiler augment the code at strategic points. +The additions can be inline increments to counters [Knuth71] +[Satterthwaite72] [Joy79] or calls to +monitoring routines [Unix]. +The counter increment overhead is low, and is suitable for +profiling statements. +A call of the monitoring routine has an overhead comparable with a +call of a regular routine, and is therefore only suited +to profiling on a routine by routine basis. +However, the monitoring routine solution has certain advantages. +Whatever counters are needed by the monitoring routine can be +managed by the monitoring routine itself, rather than being +distributed around the code. +In particular, a monitoring routine can easily be called from separately +compiled programs. +In addition, different monitoring routines can be linked into the +program +being measured +to assemble different profiling data without having to +change the compiler or recompile the program. +We have exploited this approach; +our compilers for C, Fortran77, and Pascal can insert calls to a +monitoring routine in the prologue for each routine. +Use of the monitoring routine requires no planning on part of a +programmer other than to request that augmented routine +prologues be produced during compilation. +.pp +We are interested in gathering three pieces of information during +program execution: call counts and execution times for +each profiled routine, and the arcs of the dynamic call graph +traversed by this execution of the program. +By post-processing of this data we can build the dynamic call +graph for this execution of the program and propagate times along +the edges of this graph to attribute times for routines to the +routines that invoke them. +.pp +Gathering of the profiling information should not greatly +interfere with the running of the program. +Thus, the monitoring routine must not produce trace output each +time it is invoked. +The volume of data thus produced would be unmanageably large, +and the time required to record it would overwhelm the running +time of most programs. +Similarly, the monitoring routine can not do the analysis of +the profiling data (e.g. assembling the call graph, propagating +times around it, discovering cycles, etc.) during program +execution. +Our solution is to gather profiling data in memory during program +execution and to condense it to a file as the profiled +program exits. +This file is then processed by a separate program to produce the +listing of the profile data. +An advantage of this approach is that the profile data for +several executions of a program can be combined by the +post-processing to provide a profile of many +executions. +.pp +The execution time monitoring consists of three parts. +The first part allocates and initializes the runtime monitoring data +structures before the program begins execution. +The second part is the monitoring routine invoked from the +prologue of each profiled routine. +The third part condenses the data structures and writes them +to a file as the program terminates. +The monitoring routine is discussed in detail in the following sections. +.sh 2 "Execution Counts" +.pp +The \fBgprof\fP monitoring routine counts the number of times +each profiled routine is called. +The monitoring routine also records the arc in the call graph +that activated the profiled routine. +The count is associated with the arc in the call graph +rather than with the routine. +Call counts for routines can then be determined by summing the counts +on arcs directed into that routine. +In a machine-dependent fashion, the monitoring routine notes its +own return address. +This address is in the prologue of some profiled routine that is +the destination of an arc in the dynamic call graph. +The monitoring routine also discovers the return address for that +routine, thus identifying the call site, or source of the arc. +The source of the arc is in the \fIcaller\fP, and the destination is in +the \fIcallee\fP. +For example, if a routine A calls a routine B, A is the caller, +and B is the callee. +The prologue of B will include a call to the monitoring routine +that will note the arc from A to B and either initialize or +increment a counter for that arc. +.pp +One can not afford to have the monitoring routine output tracing +information as each arc is identified. +Therefore, the monitoring routine maintains a table of all the +arcs discovered, with counts of the numbers of times each is +traversed during execution. +This table is accessed once per routine call. +Access to it +must be as fast as possible so as not to overwhelm the time +required to execute the program. +.pp +Our solution is to access the table through a hash table. +We use the call site as the primary key with the callee +address being the secondary key. +Since each call site typically calls only one callee, we can +reduce (usually to one) the number of minor lookups based on the callee. +Another alternative would use the callee as the primary key and the +call site as the secondary key. +Such an organization has the advantage of associating callers with +callees, at the expense of longer lookups in the monitoring +routine. +We are fortunate to be running in a virtual memory environment, +and (for the sake of speed) were able to allocate enough space +for the primary hash table to allow a one-to-one mapping from +call site addresses to the primary hash table. +Thus our hash function is trivial to calculate and collisions +occur only for call sites that call multiple +destinations (e.g. functional parameters and functional variables). +A one level hash function using both call site and callee would +result in an unreasonably large hash table. +Further, the number of dynamic call sites and callees is not known during +execution of the profiled program. +.pp +Not all callers and callees can be identified by the monitoring +routine. +Routines that were compiled without the profiling augmentations +will not call the monitoring routine as part of their prologue, +and thus no arcs will be recorded whose destinations are in these +routines. +One need not profile all the routines in a program. +Routines that are not profiled run at full speed. +Certain routines, notably exception handlers, are invoked by +non-standard calling sequences. +Thus the monitoring routine may know the destination of an arc +(the callee), +but find it difficult or +impossible to determine the source of the arc (the caller). +Often in these cases the apparent source of the arc is not a call +site at all. +Such anomalous invocations are declared ``spontaneous''. +.sh 2 "Execution Times" +.pp +The execution times for routines can be gathered in at least two +ways. +One method measures the execution time of a routine by measuring +the elapsed time from routine entry to routine exit. +Unfortunately, time measurement is complicated on time-sharing +systems by the time-slicing of the program. +A second method samples the value of the program counter at some +interval, and infers execution time from the distribution of the +samples within the program. +This technique is particularly suited to time-sharing systems, +where the time-slicing can serve as the basis for sampling +the program counter. +Notice that, whereas the first method could provide exact timings, +the second is inherently a statistical approximation. +.pp +The sampling method need not require support from the operating +system: all that is needed is the ability to set and respond to +``alarm clock'' interrupts that run relative to program time. +It is imperative that the intervals be uniform since the +sampling of the program counter rather than the duration of the +interval is the basis of the distribution. +If sampling is done too often, the interruptions to sample the +program counter will overwhelm the running of the profiled program. +On the other hand, the program must run for enough sampled +intervals that the distribution of the samples accurately +represents the distribution of time for the execution of the +program. +As with routine call tracing, the monitoring routine can not +afford to output information for each program counter +sample. +In our computing environment, the operating system can provide a +histogram of the location of the program counter at the end of +each clock tick (1/60th of a second) in which a program runs. +The histogram is assembled in memory as the program runs. +This facility is enabled by our monitoring routine. +We have adjusted the granularity of the histogram so that +program counter values map one-to-one onto the histogram. +We make the simplifying assumption that all calls to a specific +routine require the same amount of time to execute. +This assumption may disguise that some calls +(or worse, some call sites) always invoke a routine +such that its execution is faster (or slower) +than the average time for that routine. +.pp +When the profiled program terminates, +the arc table and the histogram of +program counter samples is written to a file. +The arc table is condensed to consist of the source and destination +addresses of the arc and the count of the number of times the arc +was traversed by this execution of the program. +The recorded histogram consists of counters of the number of +times the program counter was found to be in each of the ranges covered +by the histogram. +The ranges themselves are summarized as a +lower and upper bound and a step size. diff --git a/doc/misc/gprof/header.me b/doc/misc/gprof/header.me new file mode 100644 index 00000000..ed205e53 --- /dev/null +++ b/doc/misc/gprof/header.me @@ -0,0 +1,5 @@ +.\" @(#)header.me 1.2 (Berkeley) 6/17/86 +.\" +.\"he 'gprof''Graham, Kessler, McKusick' +.\"fo 'Draft of \*(td''%' +.\"ls 2 diff --git a/doc/misc/gprof/intro.me b/doc/misc/gprof/intro.me new file mode 100644 index 00000000..37775366 --- /dev/null +++ b/doc/misc/gprof/intro.me @@ -0,0 +1,50 @@ +.\" @(#)intro.me 1.10 (Berkeley) 6/17/86 +.\" +.sh 1 "Programs to be Profiled" +.pp +Software research environments +normally include many large programs +both for production use and for experimental investigation. +These programs are typically modular, +in accordance with generally accepted principles +of good program design. +Often they consist of numerous small routines +that implement various abstractions. +Sometimes such large programs are written +by one programmer +who has understood the requirements for +these abstractions, and has programmed them +appropriately. +More frequently the program has +had multiple authors and has +evolved over time, changing the demands placed +on the implementation of the abstractions without +changing the implementation itself. +Finally, the program may be assembled from a library +of abstraction implementations +unexamined by the programmer. +.pp +Once a large program is executable, +it is often desirable to increase its speed, +especially if small portions of the program +are found to dominate its execution time. +The purpose of the \fBgprof\fP profiling tool is to +help the user evaluate alternative implementations +of abstractions. +We developed this tool in response to our efforts +to improve a code generator we were writing [Graham82]. +.pp +The \fBgprof\fP design takes advantage of the fact that the programs +to be measured are large, structured and hierarchical. +We provide a profile in which the execution time +for a set of routines that implement an +abstraction is collected and charged +to that abstraction. +The profile can be used to compare and assess the costs of +various implementations. +.pp +The profiler can be linked into a program without +special planning by the programmer. +The overhead for using \fBgprof\fP is low; +both in terms of added execution time and in the +volume of profiling information recorded. diff --git a/doc/misc/gprof/postp.me b/doc/misc/gprof/postp.me new file mode 100644 index 00000000..d42655ab --- /dev/null +++ b/doc/misc/gprof/postp.me @@ -0,0 +1,159 @@ +.\" @(#)postp.me 1.16 (Berkeley) 6/17/86 +.\" +.EQ +delim $$ +gsize 11 +.EN +.sh 1 "Post Processing" +.pp +Having gathered the arcs of the call graph and timing information +for an execution of the program, +we are interested in attributing the time for each routine to the +routines that call it. +We build a dynamic call graph with arcs from caller to callee, +and propagate time from descendants to ancestors +by topologically sorting the call graph. +Time propagation is performed from the leaves of the +call graph toward the roots, according to the order +assigned by a topological numbering algorithm. +The topological numbering ensures that +all edges in the graph go from higher numbered nodes to lower +numbered nodes. +An example is given in Figure 1. +If we propagate time from nodes in the +order assigned by the algorithm, +execution time can be propagated from descendants to ancestors +after a single traversal of each arc in the call graph. +Each parent receives some fraction of a child's time. +Thus time is charged to the +caller in addition to being charged to the callee. +.(z +.so postp1.pic +.ce 2 +Topological ordering +Figure 1. +.ce 0 +.)z +.pp +Let $C sub e$ be the number of calls to some routine, +$e$, and $C sub e sup r$ be the number of +calls from a caller $r$ to a callee $e$. +Since we are assuming each call to a routine takes the +average amount of time for all calls to that routine, +the caller is accountable for +$C sub e sup r / C sub e$ +of the time spent by the callee. +Let the $S sub e$ be the $selftime$ of a routine, $e$. +The selftime of a routine can be determined from the +timing information gathered during profiled program execution. +The total time, $T sub r$, we wish to account to a routine +$r$, is then given by the recurrence equation: +.EQ +T sub r ~ = ~ {S sub r} ~ + ~ + sum from {r ~ roman CALLS ~ e} + {T sub e times {{C sub e sup r} over {C sub e}}} +.EN +where $r ~ roman CALLS ~ e$ is a relation showing all routines +$e$ called by a routine $r$. +This relation is easily available from the call graph. +.pp +However, if the execution contains recursive calls, +the call graph has cycles that +cannot be topologically sorted. +In these cases, we discover strongly-connected +components in the call graph, +treat each such component as a single node, +and then sort the resulting graph. +We use a variation of Tarjan's strongly-connected +components algorithm +that discovers strongly-connected components as it is assigning +topological order numbers [Tarjan72]. +.pp +Time propagation within strongly connected +components is a problem. +For example, a self-recursive routine +(a trivial cycle in the call graph) +is accountable for all the time it +uses in all its recursive instantiations. +In our scheme, this time should be +shared among its call graph parents. +The arcs from a routine to itself are of interest, +but do not participate in time propagation. +Thus the simple equation for time propagation +does not work within strongly connected components. +Time is not propagated from one member of a cycle to another, +since, by definition, this involves propagating time from a routine +to itself. +In addition, children of one member of a cycle +must be considered children of all members of the cycle. +Similarly, parents of one member of the cycle must inherit +all members of the cycle as descendants. +It is for these reasons that we collapse connected components. +Our solution collects all members of a cycle together, +summing the time and call counts for all members. +All calls into the cycle are made to share the total +time of the cycle, and all descendants of the cycle +propagate time into the cycle as a whole. +Calls among the members of the cycle +do not propagate any time, +though they are listed in the call graph profile. +.pp +Figure 2 shows a modified version of the call graph of Figure 1, +in which the nodes labelled 3 and 7 in Figure 1 are mutually +recursive. +The topologically sorted graph after the cycle is collapsed is +given in Figure 3. +.(z +.so postp2.pic +.ce 2 +Cycle to be collapsed. +Figure 2. +.ce 0 +.)z +.(z +.so postp3.pic +.ce 2 +Topological numbering after cycle collapsing. +Figure 3. +.ce 0 +.)z +.pp +Since the technique described above only collects the +dynamic call graph, +and the program typically does not call every routine +on each execution, +different executions can introduce different cycles in the +dynamic call graph. +Since cycles often have a significant effect on time propagation, +it is desirable to incorporate the static call graph so that cycles +will have the same members regardless of how the program runs. +.pp +The static call graph can be constructed from the source text +of the program. +However, discovering the static call graph from the source text +would require two moderately difficult steps: +finding the source text for the program +(which may not be available), +and scanning and parsing that text, +which may be in any one of several languages. +.pp +In our programming system, +the static calling information is also contained in the +executable version of the program, +which we already have available, +and which is in language-independent form. +One can examine the instructions +in the object program, +looking for calls to routines, and note which +routines can be called. +This technique allows us to add arcs to those already in the +dynamic call graph. +If a statically discovered arc already exists in the dynamic call +graph, no action is required. +Statically discovered arcs that do not exist in the dynamic call +graph are added to the graph with a traversal count of zero. +Thus they are never responsible for any time propagation. +However, they may affect the structure of the graph. +Since they may complete strongly connected components, +the static call graph construction is +done before topological ordering. diff --git a/doc/misc/gprof/postp1.pic b/doc/misc/gprof/postp1.pic new file mode 100644 index 00000000..87f0d8d1 --- /dev/null +++ b/doc/misc/gprof/postp1.pic @@ -0,0 +1,27 @@ +.\" Copyright (c) 1986 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)postp1.pic 5.1 (Berkeley) 6/17/86 +.\" +.PS +circle diam .3i "8" +circle diam .3i "9" at 1st circle + (2i,0i) +circle diam .3i "3" at 1st circle + (0.5i,-0.5i) +circle diam .3i "7" at 2nd circle - (0.5i, 0.5i) +circle diam .3i "2" at 1st circle - (0i,1i) +circle diam .3i "5" at 5th circle + (1i,0i) +circle diam .3i "6" at 2nd circle - (0i,1i) +circle diam .3i "1" at 3rd circle - (0i,1i) +circle diam .3i "4" at 4th circle - (0i,1i) +arrow from 1st circle to 3rd circle chop .15i chop .15i +arrow from 1st circle to 4th circle chop .15i chop .15i +arrow from 2nd circle to 4th circle chop .15i chop .15i +arrow from 3rd circle to 5th circle chop .15i chop .15i +arrow from 4th circle to 5th circle chop .15i chop .15i +arrow from 4th circle to 6th circle chop .15i chop .15i +arrow from 4th circle to 7th circle chop .15i chop .15i +arrow from 5th circle to 8th circle chop .15i chop .15i +arrow from 6th circle to 8th circle chop .15i chop .15i +arrow from 6th circle to 9th circle chop .15i chop .15i +.PE diff --git a/doc/misc/gprof/postp2.pic b/doc/misc/gprof/postp2.pic new file mode 100644 index 00000000..7748862e --- /dev/null +++ b/doc/misc/gprof/postp2.pic @@ -0,0 +1,29 @@ +.\" Copyright (c) 1986 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)postp2.pic 5.1 (Berkeley) 6/17/86 +.\" +.PS +circle diam .3i "\(ci" +circle diam .3i "\(ci" at 1st circle + (2i,0i) +circle diam .3i "\(bu" at 1st circle + (0.5i,-0.5i) +circle diam .3i "\(bu" at 2nd circle - (0.5i, 0.5i) +circle diam .3i "\(ci" at 1st circle - (0i,1i) +circle diam .3i "\(ci" at 5th circle + (1i,0i) +circle diam .3i "\(ci" at 2nd circle - (0i,1i) +circle diam .3i "\(ci" at 3rd circle - (0i,1i) +circle diam .3i "\(ci" at 4th circle - (0i,1i) +arrow from 1st circle to 3rd circle chop .15i chop .15i +arrow from 1st circle to 4th circle chop .15i chop .15i +arrow from 2nd circle to 4th circle chop .15i chop .15i +spline -> from 3rd circle right .5i up .075i then right .5i down .075i chop .15i chop .15i +spline -> from 4th circle left .5i down .075i then left .5i up .075i chop .15i chop .15i +arrow from 3rd circle to 5th circle chop .15i chop .15i +arrow from 4th circle to 5th circle chop .15i chop .15i +arrow from 4th circle to 6th circle chop .15i chop .15i +arrow from 4th circle to 7th circle chop .15i chop .15i +arrow from 5th circle to 8th circle chop .15i chop .15i +arrow from 6th circle to 8th circle chop .15i chop .15i +arrow from 6th circle to 9th circle chop .15i chop .15i +.PE diff --git a/doc/misc/gprof/postp3.pic b/doc/misc/gprof/postp3.pic new file mode 100644 index 00000000..9db25516 --- /dev/null +++ b/doc/misc/gprof/postp3.pic @@ -0,0 +1,24 @@ +.\" Copyright (c) 1986 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)postp3.pic 5.1 (Berkeley) 6/17/86 +.\" +.PS +circle diam .3i "7" +circle diam .3i "8" at 1st circle + (2i,0i) +EL: ellipse wid 1i ht .3i "\fB6\fR\h'.7i'\fB6\fR" at 1st circle + (1i,-0.5i) +circle diam .3i "2" at 1st circle - (0i,1i) +circle diam .3i "4" at 3th circle + (1i,0i) +circle diam .3i "5" at 2nd circle - (0i,1i) +circle diam .3i "1" at 3rd circle + (0.5i,-0.5i) +circle diam .3i "3" at 5th circle - (0.5i,0.5i) +arrow from 1st circle to EL.nw chop .15i chop 0i +arrow from 2nd circle to EL.ne chop .15i chop 0i +arrow from EL.sw to 3rd circle chop 0i chop .15i +arrow from EL.s to 4th circle chop 0i chop .15i +arrow from EL.se to 5th circle chop 0i chop .15i +arrow from 3rd circle to 6th circle chop .15i chop .15i +arrow from 4th circle to 6th circle chop .15i chop .15i +arrow from 4th circle to 7th circle chop .15i chop .15i +.PE diff --git a/doc/misc/gprof/pres1.pic b/doc/misc/gprof/pres1.pic new file mode 100644 index 00000000..bbff2e4b --- /dev/null +++ b/doc/misc/gprof/pres1.pic @@ -0,0 +1,29 @@ +.\" Copyright (c) 1986 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)pres1.pic 5.1 (Berkeley) 6/17/86 +.\" +.PS +ellipse ht .3i wid .75i "\s-1CALLER1\s+1" +ellipse ht .3i wid .75i "\s-1CALLER2\s+1" at 1st ellipse + (2i,0i) +ellipse ht .3i wid .8i "\s-1EXAMPLE\s+1" at 1st ellipse + (1i,-.5i) +ellipse ht .3i wid .5i "\s-1SUB1\s+1" at 1st ellipse - (0i,1i) +ellipse ht .3i wid .5i "\s-1SUB2\s+1" at 3rd ellipse - (0i,.5i) +ellipse ht .3i wid .5i "\s-1SUB3\s+1" at 2nd ellipse - (0i,1i) +line <- from 1st ellipse up .5i left .5i chop .1875i +line <- from 1st ellipse up .5i right .5i chop .1875i +line <- from 2nd ellipse up .5i left .5i chop .1875i +line <- from 2nd ellipse up .5i right .5i chop .1875i +arrow from 1st ellipse to 3rd ellipse chop +arrow from 2nd ellipse to 3rd ellipse chop +arrow from 3rd ellipse to 4th ellipse chop +arrow from 3rd ellipse to 5th ellipse chop .15i chop .15i +arrow from 3rd ellipse to 6th ellipse chop +arrow from 4th ellipse down .5i left .5i chop .1875i +arrow from 4th ellipse down .5i right .5i chop .1875i +arrow from 5th ellipse down .5i left .5i chop .1875i +arrow from 5th ellipse down .5i right .5i chop .1875i +arrow from 6th ellipse down .5i left .5i chop .1875i +arrow from 6th ellipse down .5i right .5i chop .1875i +.PE diff --git a/doc/misc/gprof/pres2.pic b/doc/misc/gprof/pres2.pic new file mode 100644 index 00000000..5eee16f3 --- /dev/null +++ b/doc/misc/gprof/pres2.pic @@ -0,0 +1,25 @@ +.\" Copyright (c) 1986 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)pres2.pic 5.1 (Berkeley) 6/17/86 +.\" +.PS +ellipse ht .3i wid .6i "\s-1CALC1\s+1" +ellipse ht .3i wid .6i "\s-1CALC2\s+1" at 1st ellipse + (.75i,0i) +ellipse ht .3i wid .6i "\s-1CALC3\s+1" at 1st ellipse + (1.5i,0i) +ellipse ht .3i wid .8i "\s-1FORMAT1\s+1" at 1st ellipse - (0i,.5i) +ellipse ht .3i wid .8i "\s-1FORMAT2\s+1" at 3rd ellipse - (0i,.5i) +ellipse ht .3i wid .75i "\s-1\"WRITE\"\s+1" at 5th ellipse - (.75i,.5i) +line <- from 1st ellipse up .5i left .4i chop .1825i +line <- from 1st ellipse up .5i right .4i chop .1825i +line <- from 2nd ellipse up .5i left .4i chop .1825i +line <- from 2nd ellipse up .5i right .4i chop .1825i +line <- from 3rd ellipse up .5i left .4i chop .1825i +line <- from 3rd ellipse up .5i right .4i chop .1825i +arrow from 1st ellipse to 4th ellipse chop .15i +arrow from 2nd ellipse to 5th ellipse chop +arrow from 3rd ellipse to 5th ellipse chop .15i +arrow from 4th ellipse to 6th ellipse chop +arrow from 5th ellipse to 6th ellipse chop +.PE diff --git a/doc/misc/gprof/present.me b/doc/misc/gprof/present.me new file mode 100644 index 00000000..779ff151 --- /dev/null +++ b/doc/misc/gprof/present.me @@ -0,0 +1,275 @@ +.\" @(#)present.me 1.12 (Berkeley) 6/17/86 +.\" +.sh 1 "Data Presentation" +.pp +The data is presented to the user in two different formats. +The first presentation simply lists the routines +without regard to the amount of time their descendants use. +The second presentation incorporates the call graph of the +program. +.sh 2 "The Flat Profile +.pp +The flat profile consists of a list of all the routines +that are called during execution of the program, +with the count of the number of times they are called +and the number of seconds of execution time for which they +are themselves accountable. +The routines are listed in decreasing order of execution time. +A list of the routines that are never called during execution of +the program is also available +to verify that nothing important is omitted by +this execution. +The flat profile gives a quick overview of the routines that are used, +and shows the routines that are themselves responsible +for large fractions of the execution time. +In practice, +this profile usually shows that no single function +is overwhelmingly responsible for +the total time of the program. +Notice that for this profile, +the individual times sum to the total execution time. +.sh 2 "The Call Graph Profile" +.sz 10 +.(z +.TS +box center; +c c c c c l l +c c c c c l l +c c c c c l l +l n n n c l l. + called/total \ \ parents +index %time self descendants called+self name index + called/total \ \ children +_ + 0.20 1.20 4/10 \ \ \s-1CALLER1\s+1 [7] + 0.30 1.80 6/10 \ \ \s-1CALLER2\s+1 [1] +[2] 41.5 0.50 3.00 10+4 \s-1EXAMPLE\s+1 [2] + 1.50 1.00 20/40 \ \ \s-1SUB1\s+1 [4] + 0.00 0.50 1/5 \ \ \s-1SUB2\s+1 [9] + 0.00 0.00 0/5 \ \ \s-1SUB3\s+1 [11] +.TE +.ce 2 +Profile entry for \s-1EXAMPLE\s+1. +Figure 4. +.)z +.pp +Ideally, we would like to print the call graph of the program, +but we are limited by the two-dimensional nature of our output +devices. +We cannot assume that a call graph is planar, +and even if it is, that we can print a planar version of it. +Instead, we choose to list each routine, +together with information about +the routines that are its direct parents and children. +This listing presents a window into the call graph. +Based on our experience, +both parent information and child information +is important, +and should be available without searching +through the output. +.pp +The major entries of the call graph profile are the entries from the +flat profile, augmented by the time propagated to each +routine from its descendants. +This profile is sorted by the sum of the time for the routine +itself plus the time inherited from its descendants. +The profile shows which of the higher level routines +spend large portions of the total execution time +in the routines that they call. +For each routine, we show the amount of time passed by each child +to the routine, which includes time for the child itself +and for the descendants of the child +(and thus the descendants of the routine). +We also show the percentage these times represent of the total time +accounted to the child. +Similarly, the parents of each routine are listed, +along with time, +and percentage of total routine time, +propagated to each one. +.pp +Cycles are handled as single entities. +The cycle as a whole is shown as though it were a single routine, +except that members of the cycle are listed in place of the children. +Although the number of calls of each member +from within the cycle are shown, +they do not affect time propagation. +When a child is a member of a cycle, +the time shown is the appropriate fraction of the time +for the whole cycle. +Self-recursive routines have their calls broken +down into calls from the outside and self-recursive calls. +Only the outside calls affect the propagation of time. +.pp +The following example is a typical fragment of a call graph. +.(b +.so pres1.pic +.)b +The entry in the call graph profile listing for this example is +shown in Figure 4. +.pp +The entry is for routine \s-1EXAMPLE\s+1, which has +the Caller routines as its parents, +and the Sub routines as its children. +The reader should keep in mind that all information +is given \fIwith respect to \s-1EXAMPLE\s+1\fP. +The index in the first column shows that \s-1EXAMPLE\s+1 +is the second entry in the profile listing. +The \s-1EXAMPLE\s+1 routine is called ten times, four times by \s-1CALLER1\s+1, +and six times by \s-1CALLER2\s+1. +Consequently 40% of \s-1EXAMPLE\s+1's time is propagated to \s-1CALLER1\s+1, +and 60% of \s-1EXAMPLE\s+1's time is propagated to \s-1CALLER2\s+1. +The self and descendant fields of the parents +show the amount of self and descendant time \s-1EXAMPLE\s+1 +propagates to them (but not the time used by +the parents directly). +Note that \s-1EXAMPLE\s+1 calls itself recursively four times. +The routine \s-1EXAMPLE\s+1 calls routine \s-1SUB1\s+1 twenty times, \s-1SUB2\s+1 once, +and never calls \s-1SUB3\s+1. +Since \s-1SUB2\s+1 is called a total of five times, +20% of its self and descendant time is propagated to \s-1EXAMPLE\s+1's +descendant time field. +Because \s-1SUB1\s+1 is a member of \fIcycle 1\fR, +the self and descendant times +and call count fraction +are those for the cycle as a whole. +Since cycle 1 is called a total of forty times +(not counting calls among members of the cycle), +it propagates 50% of the cycle's self and descendant +time to \s-1EXAMPLE\s+1's descendant time field. +Finally each name is followed by an index that shows +where on the listing to find the entry for that routine. +.sh 1 "Using the Profiles" +.pp +The profiler is a useful tool for improving +a set of routines that implement an abstraction. +It can be helpful in identifying poorly coded routines, +and in evaluating the new algorithms and code that replace them. +Taking full advantage of the profiler +requires a careful examination of the call graph profile, +and a thorough knowledge of the abstractions underlying +the program. +.pp +The easiest optimization that can be performed +is a small change +to a control construct or data structure that improves the +running time of the program. +An obvious starting point +is a routine that is called many times. +For example, suppose an output +routine is the only parent +of a routine that formats the data. +If this format routine is expanded inline in the +output routine, the overhead of a function call and +return can be saved for each datum that needs to be formatted. +.pp +The drawback to inline expansion is that the data abstractions +in the program may become less parameterized, +hence less clearly defined. +The profiling will also become less useful since the loss of +routines will make its output more granular. +For example, +if the symbol table functions ``lookup'', ``insert'', and ``delete'' +are all merged into a single parameterized routine, +it will be impossible to determine the costs +of any one of these individual functions from the profile. +.pp +Further potential for optimization lies in routines that +implement data abstractions whose total execution +time is long. +For example, a lookup routine might be called only a few +times, but use an inefficient linear search algorithm, +that might be replaced with a binary search. +Alternately, the discovery that a rehashing function is being +called excessively, can lead to a different +hash function or a larger hash table. +If the data abstraction function cannot easily be speeded up, +it may be advantageous to cache its results, +and eliminate the need to rerun +it for identical inputs. +These and other ideas for program improvement are discussed in +[Bentley81]. +.pp +This tool is best used in an iterative approach: +profiling the program, +eliminating one bottleneck, +then finding some other part of the program +that begins to dominate execution time. +For instance, we have used \fBgprof\fR on itself; +eliminating, rewriting, and inline expanding routines, +until reading +data files (hardly a target for optimization!) +represents the dominating factor in its execution time. +.pp +Certain types of programs are not easily analyzed by \fBgprof\fR. +They are typified by programs that exhibit a large degree of +recursion, such as recursive descent compilers. +The problem is that most of the major routines are grouped +into a single monolithic cycle. +As in the symbol table abstraction that is placed +in one routine, +it is impossible to distinguish which members of the cycle are +responsible for the execution time. +Unfortunately there are no easy modifications to these programs that +make them amenable to analysis. +.pp +A completely different use of the profiler is to analyze the control +flow of an unfamiliar program. +If you receive a program from another user that you need to modify +in some small way, +it is often unclear where the changes need to be made. +By running the program on an example and then using \fBgprof\fR, +you can get a view of the structure of the program. +.pp +Consider an example in which you need to change the output format +of the program. +For purposes of this example suppose that the call graph +of the output portion of the program has the following structure: +.(b +.so pres2.pic +.)b +Initially you look through the \fBgprof\fR +output for the system call ``\s-1WRITE\s+1''. +The format routine you will need to change is probably +among the parents of the ``\s-1WRITE\s+1'' procedure. +The next step is to look at the profile entry for each +of parents of ``\s-1WRITE\s+1'', +in this example either ``\s-1FORMAT1\s+1'' or ``\s-1FORMAT2\s+1'', +to determine which one to change. +Each format routine will have one or more parents, +in this example ``\s-1CALC1\s+1'', ``\s-1CALC2\s+1'', and ``\s-1CALC3\s+1''. +By inspecting the source code for each of these routines +you can determine which format routine generates the output that +you wish to modify. +Since the \fBgprof\fR entry shows all the +potential calls to the format routine you intend to change, +you can determine if your modifications will affect output that +should be left alone. +If you desire to change the output of ``\s-1CALC2\s+1'', but not ``\s-1CALC3\s+1'', +then formatting routine ``\s-1FORMAT2\s+1'' needs to be split +into two separate routines, +one of which implements the new format. +You can then retarget just the call by ``\s-1CALC2\s+1'' +that needs the new format. +It should be noted that the static call information is particularly +useful here since the test case you run probably will not +exercise the entire program. +.sh 1 "Conclusions" +.pp +We have created a profiler that aids in the evaluation +of modular programs. +For each routine in the program, +the profile shows the extent to which that routine +helps support various abstractions, +and how that routine uses other abstractions. +The profile accurately assesses the cost of routines +at all levels of the program decomposition. +The profiler is easily used, +and can be compiled into the program without any prior planning by +the programmer. +It adds only five to thirty percent execution overhead to the program +being profiled, +produces no additional output until after the program finishes, +and allows the program to be measured in its actual environment. +Finally, the profiler runs on a time-sharing system +using only the normal services provided by the operating system +and compilers. diff --git a/doc/misc/gprof/profiling.me b/doc/misc/gprof/profiling.me new file mode 100644 index 00000000..d31c6639 --- /dev/null +++ b/doc/misc/gprof/profiling.me @@ -0,0 +1,83 @@ +\" @(#)profiling.me 1.6 3/14/82 +.sh 1 "Types of Profiling" +.pp +There are several different uses for program profiles, +and each may require different information from the profiles, +or different presentation of the information. +We distinguish two broad categories of profiles: +those that present counts of statement or routine invocations, +and those that display timing information about statements +or routines. +Counts are typically presented in tabular form, +often in parallel with a listing of the source code. +Timing information could be similarly presented; +but more than one measure of time might be associated with each +statement or routine. +For example, +in the framework used by \fBgprof\fP +each profiled segment would display two times: +one for the time used by the segment itself, and another for the +time inherited from code segments it invokes. +.pp +Execution counts are used in many different contexts. +The exact number of times a routine or statement is activated +can be used to determine if an algorithm is performing as +expected. +Cursory inspection of such counters may show algorithms whose +complexity is unsuited to the task at hand. +Careful interpretation of counters can often suggest +improvements to acceptable algorithms. +Precise examination can uncover subtle errors in an +algorithm. +At this level, profiling counters are similar to +debugging statements whose purpose is to show the number of times +a piece of code is executed. +Another view of such counters is as boolean values. +One may be interested that a portion of code has executed at +all, for exhaustive testing, or to check that one implementation +of an abstraction completely replaces a previous one. +.pp +Execution counts are not necessarily proportional to the amount +of time required to execute the routine or statement. +Further, the execution time of a routine will not be the same for +all calls on the routine. +The criteria for establishing execution time +must be decided. +If a routine implements an abstraction by invoking other abstractions, +the time spent in the routine will not accurately reflect the +time required by the abstraction it implements. +Similarly, if an abstraction is implemented by several +routines the time required by the abstraction will be distributed +across those routines. +.pp +Given the execution time of individual routines, +\fBgprof\fP accounts to each routine the time spent +for it by the routines it invokes. +This accounting is done by assembling a \fIcall graph\fP with nodes that +are the routines of the program and directed arcs that represent +calls from call sites to routines. +We distinguish among three different call graphs for a program. +The \fIcomplete call graph\fP incorporates all routines and all +potential arcs, +including arcs that represent calls to functional parameters +or functional variables. +This graph contains the other two graphs as subgraphs. +The \fIstatic call graph\fP includes all routines and all possible arcs +that are not calls to functional parameters or variables. +The \fIdynamic call graph\fP includes only those routines and +arcs traversed by the profiled execution of the program. +This graph need not include all routines, nor need it include all +potential arcs between the routines it covers. +It may, however, include arcs to functional parameters or +variables that the static call graph may omit. +The static call graph can be determined from the (static) program text. +The dynamic call graph is determined only by profiling an +execution of the program. +The complete call graph for a monolithic program could be determined +by data flow analysis techniques. +The complete call graph for programs that change +during execution, by modifying themselves or dynamically loading +or overlaying code, may never be determinable. +Both the static call graph and the dynamic call graph are used +by \fBgprof\fP, but it does not search for the complete call +graph. diff --git a/doc/misc/gprof/refs.me b/doc/misc/gprof/refs.me new file mode 100644 index 00000000..1da8a998 --- /dev/null +++ b/doc/misc/gprof/refs.me @@ -0,0 +1,31 @@ +\" @(#)refs.me 1.3 3/15/82 +.sh 1 "References" +.ls 1 +.ip [Bentley81] +Bentley, J. L., +``Writing Efficient Code'', +Department of Computer Science, +Carnegie-Mellon University, +Pittsburgh, Pennsylvania, +CMU-CS-81-116, 1981. +.ip [Graham82] +Graham, S. L., Henry, R. R., Schulman, R. A., +``An Experiment in Table Driven Code Generation'', +SIGPLAN '82 Symposium on Compiler Construction, +June, 1982. +.ip [Joy79] +Joy, W. N., Graham, S. L., Haley, C. B. ``Berkeley Pascal User's Manual'', +Version 1.1, Computer Science Division +University of California, Berkeley, CA. April 1979. +.ip [Knuth71] +Knuth, D. E. ``An empirical study of FORTRAN programs'', +Software - Practice and Experience, 1, 105-133. 1971 +.ip [Satterthwaite72] +Satterthwaite, E. ``Debugging Tools for High Level Languages'', +Software - Practice and Experience, 2, 197-217, 1972 +.ip [Tarjan72] +Tarjan, R. E., ``Depth first search and linear graph algorithm,'' +\fISIAM J. Computing\fP \fB1\fP:2, 146-160, 1972. +.ip [Unix] +Unix Programmer's Manual, ``\fBprof\fR command'', section 1, +Bell Laboratories, Murray Hill, NJ. January 1979. diff --git a/doc/misc/kchanges.4.1 b/doc/misc/kchanges.4.1 new file mode 100644 index 00000000..64b97fa1 --- /dev/null +++ b/doc/misc/kchanges.4.1 @@ -0,0 +1,1491 @@ +.TL +Changes in the Kernel in 4.1bsd +.sp +May 10, 1981 +.br +Revised: September 1, 1981 +.AU +Bill Joy +.AI +Computer Systems Research Group +University of California, Berkeley +.PP +This document summarizes the changes in the kernel +between the November 1980 4.0bsd release and the and +April 1981 4.1bsd distribution. The information is presented +in both overall terms (e.g. organizational changes), and as +specific comments about individual changed files. See +the source code itself for more details. +.PP +The major changes fall in five categories: +.IP 1) +Changes in the VAX 11/780 specific portions of the code, so that +VAX 11/750's are supported also. +.IP 2) +Changes in the organization of the code, so that more than one +configuration of the system may be built from a single set of sources. +Each system is described by a single file which includes parameters +such as system size, devices on the machine, etc. +All ``magic numbers'' such as device register addresses are collected +in this single file. +.IP 3) +Extensive changes in the device subsystem to allow multiple UNIBUS +and MASSBUS adapters to be used, multiple instances of device controllers +to exist without duplicating driver code, and to provide the capability +of system configuration at boot time. The configuration capability +is used to produce a generic system which runs on all supported hardware, +and is used for distributions. Pattern matching in the configuration +capability also allows hardware redundancy to be used to good effect. +.IP 4) +Diagnostics of the system have been reworked to be in a standard and +readable format; file system diagnostic refer to the file systems by +name rather than device number. Device diagnostics refer to the devices +by name, and print error messages including device registers decoded +symbolically rather than simply in octal or hexadecimal. +DEC standard bad sector forwarding has been added to the drivers for DEC disks. +.IP 5) +Performance improvements, noticeably in the paging subsystem. +.PP +A number of enhancements and bug fixes have also been made. +.SH +Carrying over local software +.PP +The majority of local changes should carry over to the new system +quite easily. It it necessary to create a configuration file for each +machine from which a system will be built, but this is quite easy, +and such files are designed to be usable without change in future +releases of the system. +.PP +Locally written UNIBUS device drivers will need to be converted to +work in the new system. The new functions needed of the device drivers are: +.IP 1) +Forcing a device interrupt at bootstrap time, given a proposed +device register address. This is used by the configuration program +to decide if the device really exists. +.IP 2) +If buffered data paths are to be used, the driver must use routines +in the UNIBUS adapter subsystem which arranges for i/o requests to be +queued when there are no resources available. +.IP 3) +Drivers must not assume that only one instance of a device exists in the +system, but must rather be parameterized and use the information provided +by the bootstrap procedure to drive all available devices. +.PP +Of course, it is not necessary to make a driver ``fully supported'' for it +to be used. It suffices to handle 1) by pretending that the interrupt +occurred, returning the (for a single system) known UNIBUS vector information, +and assuming that the device exists on specific UNIBUS adapters. +Drivers which use UNIBUS resources only statically or not all all need +not be concerned with 2), and drivers can assume that there is only one +instance of the supported device on the system, and just not work +if more than one such device is really present. +.PP +In any case, more information about device driver changes is given in the +last section of this document; +also see \fIautoconf\fR\|(4) for information about the messages +printed out by the configuration code at bootstrap time. +Looking at the provided standard +supported drivers for examples of code is also a good idea. +.PP +There is also a new interface for MASSBUS devices. Since all MASSBUS +devices are already supported, there is no external documentation for writing +new MASSBUS drivers at the present. If you have questions or intend +to write a driver for a home-brew interface, you should read the MASSBUS +and MASSBUS device driver code, which is amply commented. In any case, +the MASSBUS interface is more stylized than the UNIBUS interface, and you +may have to extend the functionality of the MASSBUS driver to handle radically +different devices. +.SH +Organizational changes +.PP +On RK07 systems the source for the system lives in the root directory, +since there is so little space. The system otherwise lives where it +used to: the subdirectories of /usr/src/sys, with copies of the header +files for the installed system in /usr/include/sys. +.PP +The system compilation procedure has been changes so that more than +one set of binaries may be kept conveniently with a single copy of the +source code. The system sources are kept in the directories \fBsys/sys\fR +and \fBsys/dev\fR with the header files in \fBsys/h\fR. Source files +which were previously kept in \fBsys/conf\fR are now in \fBsys/dev\fR, +and no binaries are kept in any of these directories. +.PP +The directory +\fBsys/conf\fR contains a number of files related to system configuration. +For each machine to be configured, a single file is created in the +\fBsys/conf\fR directory; thus files \fBERNIE\fR and \fBBERT\fR might +exist there. Each such file describes all the parameters of the machine +to be used: the devices which are to be configured into the system, optional +parts of the system to be included, as well as the timezone in which +the machine lives and the maximum number of simultaneous active users; the +last is used to scale system tables. +The format of the configuration files is described in \fIconfig\fR\|(8). +.PP +Corresponding to each system to be configured there is a directory of +\fBsys\fR, thus \fBsys/BERT\fR and \fBsys/ERNIE\fR. These directories +are made with \fImkdir\fR and then the \fB/etc/config\fR command is run, +from the \fBsys/conf\fR directory, specifying \fBBERT\fR or \fBERNIE\fR +as argument. The configuration program processes the information in +the configuration files, and produces, in the directory \fB../BERT\fR or +\fB\&../ERNIE\fR respectively: +.IP 1) +A set of header files, e.g. \fBdz.h\fR, which contain the number of devices +and controllers to be available in the target system. These definitions +force conditional compilation of drivers resulting in the inclusion +or exclusion of driver code and the sizing of driver tables. This +technique, based on compilation, is more powerful than a loader-based +technique, since small sections of code may be easily conditionalized. +Similarly, dynamic loading of device drivers is not needed, as only +drivers which are needed are included in the resulting system. +.IP 2) +A small assembly language vector interface, which turns the +hardware generated UNIBUS interrupt sequences into C calls on the +driver interrupt routines. This \fBubglue.s\fR file glues the hardware +interrupt sequence into the UNIX interface. +.IP 3) +A table file \fBioconf.c\fR which initializes tables to be +used at bootstrap time by the system configuration routines. The configuration +routines interpret the contents of the table and determine which devices +are available on the system. They determine the vector addresses of UNIBUS +devices by forcing the devices to interrupt. Pattern matching in the tables +may be used to take advantage of hardware redundancy: the specifications +need not completely constrain device placement, so the system can be built +to bootstrap in several different configurations, locating the same devices +on different interconnects by the fact that their unit numbers have not +changes (for example). Thus two RP06 disks could be specified as: +.DS +disk hp0 at mba? drive 0 +disk hp1 at mba? drive 1 +.DE +and then the disks could be cabled to any available MASSBUS adapter; the +pattern matching in the configuration procedure would locate the drives. +Similarly, a tape formatter on the same system could be specified: +.DS +master ht0 at mba? drive ? +.DE +and then placed anywhere on any MBA. +Contrast this flexible specification with +.DS +disk hp0 at mba0 drive 0 +disk hp1 at mba0 drive 1 +master ht0 at mba1 drive 0 +.DE +which is not reconfigurable. This latter specification corresponds +to the previous UNIX capabilities, which did not allow tapes and disks +on the same MASSBUS adapter. +.IP 4) +Finally the \fIconfig\fR program constructs a \fImakefile\fR +for the system which builds the drivers needed in the specified configuration, +and includes system loading sequences for the different root and swap +device configurations desired. +.PP +It is now easy to include ``subsystems'' optionally. This is done +through the same mechanisms which causes conditional inclusion of device +drivers. The file \fBconf/files\fR contains a palate of files which +builds the system. Each line is either of the form: +.DS +filename standard +.DE +or +.DS +filename optional \fIxx\fR +.DE +where \fIxx\fR is the name of a device which requires the file, or a +\fIpseudo-device\fR. To define a subsystem to be added to the kernel +it suffices to add specifications to the \fBconf/files\fR file for the +newly optional files and to then place a specification +.DS +pseudo-device \fIxx\fR +.DE +in the system configuration file. A line +.DS +options \fIXX\fR +.DE +may also be added to the configuration +to have the symbol XX defined during compilation, +for use in conditional compilations in the standard part of the system. +Such conditional compilation is typically used to provide hooks in the +standard part of the kernel to switch out to subsystem functions. +.PP +This completes the general description of organizational changes. +We now describe the changes in the system, file by file. +.SH +Header files: sys/h and /usr/include/sys +.PP +General changes: device drivers now have header files in these +directories, thus the ``up'' driver has a header file ``upreg.h''. +This so the standalone code and the mainline UNIX code can share +the common definitions. +.PP +The ``.m'' files of the previous distribution +have been eliminated (with the sole exception of \fBpcb.m\fR); the +magic numbers which were manually entered in these files are instead +generated by a program from the definitions in the corresponding +\fB\&.h\fR files; a number of header files thus no longer warn about +correspondences that must be maintained. +.PP +The system tables are now described by pointers to their beginning +and end and a count, rather than compiled in constants. This allows +table sizes to be chosen at boot time (although the system currently +does this only for the file system buffer cache), and makes programs +such as \fBps\fR and \fBw\fR not compile in these constants. Note, +especially, that the symbols such as \fIproc\fR and \fIinode\fR are +now memory locations containing the addresses of these structures +rather than the base of the structures themselves. Programs which +access these structures have been changed and use the variables \fInproc\fR +and \fIninode\fR in core rather than the (now defunct) constants NPROC +and NINODE. +.de BP +.IP \\fB\\$1\\fR 14n +.. +.BP buf.h +Now declares three headers on which the in-core buffers are placed. +Buffers which are locked in the buffer cache are placed on the first +queue. Currently, only file system super blocks are locked in core, +and to good effect: it is now possible to rebuild the super-block of +the root file system with the system quiescent (without rebooting) if +the block device is used. It is no longer necessary to take a buffer +for the super-block of a file system and also make a copy of it at +each sync; the same buffer can be reused and simply released: since it +is locked it will remain in the buffer cache. +.IP +The other two queues implement the lru cache and the list of blocks +which have been discarded. By having queues for both of these rather +than using the end of a single queue, we achieve true fifo behavior for +blocks which we consider ``discarded''; previously rather strange behavior +resulted from pushing these blocks backwards on the front of the single +queue. (In particular pipes would behave badly on idle systems under +some circumstances.) +.IP +The number of pages paged is counted at pageout completion, as well +as the pageout event count. A bug in the \fBphysio\fR routine which +caused physical transfers of more than 60000 bytes to sometimes +fail to return an error indication has been fixed. +.IP +A flag has been added that marks a buffer as consisting only of a header +and also one which marks a buffer being used for bad-sector processing. +.BP callo.h +Is now called \fBcallout.h\fR, and the name of the structure is similarly +changed to make it consistent with the other structures in the kernel. +The structures are now linked together in linked lists, to prevent arcane +situations previously possible where only half of the structures would +be used, but the table space would be exhausted. +.BP clock.h +A botch in handling of leap years has been fixed. A macro is defined +here to queue a software interrupt for handling most of the clock +processing at an IPL lower than the clock IPL. +.BP cmap.h +This file, like a number of others, no longer warns that the size +of the structure is known elsewhere; such dependencies are the concern +of a C program and automated through makefile dependencies. +.BP conf.h +A \fId_dump\fR entry has been added to the block device table, and is +used as the system now normally does automatic dumps of core memory to disk +after a crash. The field \fId_tab\fR is now called \fId_flags\fR and +set to B_TAPE for tapes. For reasons not worth explaining here, there +are no ``tab'' structures to sensibly use in initializing this field now, +and in any case the only use of it was to tell which block devices were tapes. +.BP dkbad.h +Is a new file which defines the format of the bad sector forwarding +information according to DEC standard 144. +.BP dmap.h +The constant DMMIN has been increased to 32 to allow upto 16k bytes to be +paged to the paging devices in a clustered pageout. +.BP filsys.h +The two fields \fIs_fname\fR and \fIs_fpack\fR which were not implemented +before were merged together (into a single 12 character field) which +is called \fIs_fsmnt\fR. The system puts the ASCII path name where a file +system is mounted (e.g. /usr) in this field and uses it in printing error +messages on the console; (e.g. ``/usr: file system full'' rather than +``no space on dev 0/6''). +.BP inline.h +In order to reduce the number of conditional flags defined when compiling +the system, the conditional flag FASTVAX, which was always defined, +has been deleted. A conditional flag UNFAST, which is never defined, has been +added to take its converse's place. +.BP inode.h +The constant NINDEX has been reduced from 15 to 6. This limits the number +of files which may be join()'ed into a multiplexor (\fImpx\fR\|(2)) tree. You +may have to increase this if you use the multiplexor extensively, but it +saves a large amount of space in the kernel if you can use the smaller value, +since NINDEX of 15 causes 40 bytes of extra unused space to be allocated +to every inode. +.BP map.h +The \fBmalloc.c\fR routines have been rewritten to check for table +overflow and renamed \frmap.c\fR. +.BP mba.h +Is now split into \fBmbareg.h\fR and \fBmbavar.h\fR, the former contains +the definitions of device register and is usable, e.g., in the standalone +version of the system. The latter contains system variable related to the +MASSBUS adapters. +.BP mem.h +Is a new file which contains information on the memory controller registers +in the form of macros which make the several VAX processors seem very +similar to the UNIX code. Note also that the system now uses interrupts +from the memory system to force error logging since the previous technique +(polling) works only on the 11/780. +.BP mscp.h +A new file which defines the DEC \fIMass Storage Control Protocol\fR +used by the UDA50 disk controller. +.BP mtpr.h +The register numbers are now given in hex, as in the DEC manuals; registers +for all VAX processors are included. +.BP msgbuf.h +Defines the structure of the error message buffer, which is now kept +in the last 1024 bytes of memory. This allows it to be preserved +across system crashes and lets messages such as machine check reports +be written conveniently into the error log. +.BP nexus.h +A new header file which defines the registers and constants related +to the interconnect architecture of VAXen. +.BP param.h +No longer defines the large number of constants related to system sizing; +a smaller number of rarely changed constants are given here. In particular, +constants which were typically changed to affect the maximum number +of supportable users are now controlled by the value given the \fBmaxusers\fR +keyword in the machine specification (as described in \fIconfig\fR\|(8)). +The \fIconfig\fR program turns this specification into parameters to the +\fBparam.c\fR file which uses formulae to compute the values for the +size of the process table, inode table, etc. +.IP +This file now includes the standard file to get system +types rather than replicating the definitions from that file. It also +defines a DELAY(n) macro which is used in device drivers to provide +rougly \fIn\fR microseconds of delay. Finally the definition of UPAGES, +the number of system control pages per-process has been increased from 6 to 8. +This is partially due to the fact that there is now a red-zone page between +the kernel stack and the kernel critical data in the \fIu.\fR area, +but also because the kernel stack +was precariously close to being too small before. +.BP pcb.h +Now includes definitions related to the use of AST's to implement user program +profiling and rescheduling. Because AST's are now used, it is no longer +necessary to take clock interrupts on the kernel stack; they now run on +the interrupt stack where they belong. Also rescheduling processing +is much cleaner, since the reschedule interrupts only go off when returning +to user mode, not in the kernel where they have to be ignored (because +UNIX cannot reschedule when running normally in the kernel.) +.BP proc.h +Now defines SOWEUPC, a new flag used to indicate that a profiling count +should be generated when the (already posted) AST for this process goes off. +Another new flag SSEQL indicates that the process has declared sequential +paging behavior for its data space. Finally the field \fBp_maxrss\fR +has been added, specifying the declared ``memoryuse'' limit in pages. +.BP psl.h +Has a bug fixed in the definitions of PSL_USERCLR. Now also declares +PSL_USERSET and PSL_MBZ (must-be-zero). +.BP system.h +Defines the variables \fIhz\fR, \fItimezone\fR and \fIdstflag\fR replacing +the old compile-time constants. No longer declares \fImsgbuf\fR as a variable +(see \fBmsgbuf.h\fR). Defines the \fIdumpdev\fR and \fIdumplo\fR variables +which specify where dumps are to take place. No longer defines the +debugging variables \fIprintsw\fR and \fIcoresw\fR which have been removed +in favor of more local debugging variables. No longer defines the field +\fIsy_nrarg\fR for the system call entry structures, since system calls +never take register arguments on the VAX. +.IP +A variable \fBwantin\fR has been added which is set each time a process +is woken up which wants to be swapped in. This is used so that +the code in \fBswapout\R in \fBvmsched.c\fR does not run with elevated +priority. +.BP trap.h +Rearranges some codes previously used only internally so they would +be contigous numerically. These are the finer machine traps which result +in SIGILL and are made available to a signal handling process and defined +in . Defines ASTFLT rather than RESCHED, since the VMS software +interrupt which is used for VMS rescheduling never was appropriate for UNIX +and is no longer used. +.BP uba.h +Has been split into \fBubareg.h\fR and \fBubavar.h\fR; see the description +of device driver changes below. +.BP user.h +Contains definitions related to the new \fB#!\fR exec facility. The field +\fIu.u_cfcode\fR has been renamed \fIu.u_code\fR since it is now used for +purposes other than compatibility mode (presenting the more precise +hardware reason for SIGILL and SIGFPE signals.) +.BP vlimit.h +Now defined LIM_MAXRSS for the ``limit memoryuse'' feature. +.BP vm.h +The \fBvm*.h\fR headers have been compressed into a more sensible set +of files; the macros are all in \fBvmmac.h\fR (absorbing \fBvmclust.h\fR and +\fBvmklust.h\fR), metering stuff is all in \fBvmmeter.h\fR (absorbing +\fBvmmon.h\fR and \fBvmtotal.h\fR) and the parameters are all in +\fBvmparam.h\fR (absorbing \fBvmtune.h\fR, most of the parameters +of which are now adjusted at boot time in \fIsetupclock\fR in \fBvmsched.c\fR.) +.BP vmmeter.h +The structure \fBvmmeter\fR now computes the number of pages paged in +\fIv_pgpgin\fR and pages paged out \fIv_pgpgout\fR, as well as the +number of pages freed because of the behavior of programs which have +told the system they are sequential \fIv_seqfree\fR. +.BP vmparam.h +The values of MAXDSIZ and MAXSSIZ have increased due to the increase to +DMMIN in \fBdmap.h\fR. +The klustering constants have been changed: in-clustering is now in 4 page +(4k byte) chunks, and out-clustering is up to 16k bytes. Sequential programs +kluster in 8k bytes, and text segments kluster in 2k bytes. The gap +for the window into sequential programs is currently (primitively) defined +as a constant kere in KLSDIST. +.BP vmsystm.h +Defines a new variable \fIavefree30\fR, which computes the average memory +like \fIavefree\fR, but averaged over a longer period of time. This +is used to put more hysteresis into swapping, and keep the system +from swapping immediately when memory drops low. +.SH +System files: sys/sys +.PP +A number of files in the system have had minor changes made to them +to reduce the length of time the system runs with the interrupt +priority level raised; in particular, the times when the IPL is high +enough to block the clock have been severely limited, in hopes +of providing better real-time response (eventually) and possibly +being able to drive the 11/750 console cassette (soon) which has +severe interrupt latency constraints due to poor hardware interface design. +.BP acct.c +The code was tightened by using a register variable. +The \fIsysphys\fR routine was moved to \fBsys4.c\fR since +it had no business being here. +.BP alloc.c +Prints error messages relating to file system problems +using the name of the file system rather than the major/minor +device number of the device. Some code which attempted to prevent +``dups in free'' after a reboot, but could not prevent this completely, +has just been removed; the condition is not harmful in any case, as it +is normal and fixed by \fIfsck\fR\|(8). The system now prints directly +on a user's terminal if that user causes a file system to run out of free +space. The routines here also know how to deal with the fact that the +super-blocks are now kept locked in the buffer cache. +.BP asm.sed +No longer defines \fIspl1\fR which is now defunct; \fBspl7\fR is now +VAX IPL 0x1f rather than 0x18, blocking most processor aborts +device interrupts from the console storage device, and a number +of other processor dependent interrupts. Deals with +a strange feature of the optimizer which converts ``$0'' into a register +which contains 0. Implements the \fIffs\fR routine of \fBsig.c\fR +in a much more efficient way (in just a couple of VAX instructions.) +Beware, however: UNIX's notion of \fIffs\fR returns 1 for the low +bit of a word, while the hardware \fIffs\fR would return 0. +.BP clock.c +Now runs only that code which is absolutely necessary when the processor +priority is very high, queueing a software interrupt at which priority +the rest of the clock processing is done. The conditional +(old and long unused) code which profiled the kernel in a static +buffer has been removed. The option of fishing characters out of the +\fIdz\fR and \fIdh\fR silo's less often than every clock tick (1/hz) +has been removed. Instead the silos are processed every clock tick if +the system includes the berknet (bk) line discipline, or not at all +(i.e. we take input interrupts) if ``bk'' is not included in the system. +.IP +The processing and watching of hung UNIBUS adapters has been moved from +here to the UNIBUS routines. Automatic niceing of long-running (more than +10 minutes of user-state time) processes is now the default here, rather +than being based on ``#if ERNIE''. A bug in the check for timeout table +overflow which would cause the table to overrun without overflow +being detected has been fixed. The timeout table is now implemented +as a linked list, so that the entries can be conveniently discarded +before calling the timeout routines. This prevents the anomalous +case where only half the entries are used but the table fills up. +.BP fio.c +Has been changed to do the correct thing when special files or mounted +file systems are closed: a flush is done at the last close and all blocks +are invalidated. The standard ``table full'' routines are called when +the file related tables fill up. These routines no longer pass +\fBstruct chan *\fR pointers down to called routines, passing, instead, +the more universal \fBstruct file *\fR pointers from which the \fBchan\fR +pointers are easily derived. +.BP iget.c +Now uses the standard \fItablefull\fR routine. +.BP ioctl.c +The last argument to \fId_ioctl\fR routines when called is now always 0. +.BP locore.s +Has been extensively changed to accomodate the new configurable system, +and to handle multiple UNIBUS and MASSBUS adapters. The code is now +written using macros and the C preprocessor, improving readability. +Complicated logic (such as the code to handle UNIBUS adapter errors) +has been migrated to C code. +.IP +MASSBUS and UNIBUS adapters are no longer initialized or mapped here; +this is the job of the configuration code in the system. +The locore code distinguishes, in handling UNIBUS interrupts, from +the machine being \fIcold\fR and not; when cold UNIBUS interrupts are +handled so as to be suitable for determined device vectoring via probing. +Device interrupts on the UNIBUS are now vectored through the code in +a file \fBubglue.s\fR produced by the configuration program. To mask +as much as possible the differences between the different VAX processors, +the 11/780 uses the same \fBubglue.s\fR as the other processors which +directly vector UNIBUS interrupts. +.IP +Many more of the exceptional conditions +in the machine are caught now; only ``SBI alert'' and ``SBI fault'' remain +uncaught by UNIX. The system control block is now defined in a file +\fBscb.s\fR so that some symbols derived from C language header files by +a program (and printed into a format suitable for inclusion in an assembly) +may be stuck in after the system control block and before the mainline +\fBlocore.s\fR. +.IP +The primitive routines \fIcopyseg\fR and \fIclearseg\fR are no longer +run with the IPL raised very high. +Further minor bugs have been fixed in the primitives, notably +\fIaddupc\fR (a bug which caused 1/8 of the profiling ticks to be lost), +and \fIkernacc\fR (a bug which allowed a strange command to a certain +program to crash the system). +.BP machdep.c +.br +Now sets up the error message buffer (in the last 1024 bytes of core) +and the system data structures (such as the file and process table) +at boot time. Currently only the file system buffer cache is sized +at boot time, but all data structures are easily sized here. The startup +routine also calls the routine \fIconfigure\fR to configure the system +for the current hardware, locating available devices. +.IP +The \fIsendsig\fR routine passes a code back when a SIGFPE or SIGILL arrives, +letting the signal handler determine which of the several conditions mapped +to these two signals actually occurred. It uses the header file +rather than redefining it. +.IP +The routines which monitor memory errors are now driven by interrupts +(since the previous polling technique works only on 11/780). Extensive +use of macros is made to make the various VAXen look similar. +Instead of printing the raw contents of the memory controller registers, +a array address and a syndrome is printed. Multiple memory controllers +are supported. +.IP +The routines related to UNIBUS monitoring have been put with the rest of the +UNIBUS routines in \fB../dev/uba.c\fR. The reboot interface has been +improved, adding an automatic crash dump to a dump device (normally +a disk aimed at the back end of a paging area). The system no longer +``halts'' when you ask it to (since this can cause a reboot to occur); +rather it raises the IPL as high as it can and goes into a tight loop. +Routines have been added to handle machine checks and print out the +stack frame in a format which is readable by one who grok's what +the fields mean. +.BP main.c +Now establishes a red zone between the stack and \fIu.\fR area in process 0; +further processes also have red zones, protecting the \fIu.\fR from too-large +stacks. The main routines also setup the super-blocks which are locked +into the file system buffer cache, and copy the name of the root file system +(/) into its super-block so that the name will be available if, e.g., the +root file system becomes full. +.BP malloc.c +Has been renamed \fBrmap.c\fR. +.BP nami.c +Now respects the notion of \fB..\fR in a directory which is a virtual root +directory after a \fIchroot\fR\|(2) call. +.BP prf.c +No longer implements the ascii in-core event tracing facility, +which proved to be too slow to +be useful; a binary facility replaces it, and is also conditionalized +on TRACE, but implemented in \fBvmmon.c\fR. +Implements the output of numbers non-recursively, since +the recursive method occasionally caused the kernel stacks to overflow. +Implements a new kernel routine \fIuprintf\fR which prints directly on a user's +terminal for informing him/her of situations such as file systems which +are full (because his/her program wrote to the file system when it was full.) +Implements a new format ``%b'' which takes two arguments, a number and +a second pattern. The pattern specifies a base to print the number in, +and then a set of short strings separated by bit numbers (origin 1, escaped +in octal into the string in the C compiler). The format prints the +symbolic names for the bits which are in the string and set in the number +within <>'s and separated by commas. This is extensively used to produce +readable system error diagnostic messages on the console, decoding +the bits of device registers symbolically. +.IP +The routines \fIprdev\fR and \fIdeverr\fR, which printed diagnostics +which were difficult to interpreter, are deleted. There are two new +routines: \fItablefull\fR which balks that a table is full, and +\fIharderr\fR which begins a message about a hard (unrecoverable) +error on a device. +.BP prim.c +Now maintains a count of free \fIclist\fR space. +The code here now runs at \fBspl5\fR rather than \fBspl6\fR since +there is no longer any need to block the clock. +.BP rdwri.c +Sees the change FASTVAX to not UNFAST. Also always clears the set-user-id +bit when a file with the bit set is written on; previously this +was done only ``#if UCB''. If you ``#define INSECURITY'' you get the +code the old way. +.BP scb.s +Is a new file defining the system control block (as described above). +.BP sig.c +Has a bug fixed which caused processes to occasionally stop when the +shell thought they were running. +Processes are now given signals immediately when they are sent if the +process is running. +.BP slp.c +A clumsiness which forced the swapout code to run with the IPL raised +has been fixed by adding a variable \fIwantin\fR with which \fIwakeup\fR +can communicate to the swapper that a swapped out process now wants +to return to memory. +The routine \fIsetpri\fR has been modified so that +processes which are over their declared (soft) memory size limitation +are assigned lower CPU priority when the system is very tight on memory. +.BP sys.c +No longer allows detached jobs to access /dev/tty; this was a security +glitch. +.BP sys1.c +Implements the ``#!'' executable shell script scheme. No longer lets +executable files be read by users using \fIptrace\fR unless the user +has read access. +Operates \fIexec\fR much more efficiently by avoiding copying argument +lists unless the \fIexec\fR is going to succeed. +.BP sys2.c +The \fIopeni\fR routine passes both the FREAD and FWRITE flags to its +callees; this is needed by the magnetic tape open routines. +The \fImaknode\fR routine sticks the whole argument value in the ``rdev'' +field of the inode. This is used by the \fIbadblock\fR\|(8) program +to store block numbers corresponding to bad sectors on the disk in otherwise +apparently empty files. +.BP sys3.c +The \fImount\fR and \fIumount\fR calls have been changed to deal correctly +with buffer flushing and with simulateous access by other programs to +the file system block devices. The \fImount\fR call also copies into the +super-block of the file system the name of the device on which the file +system is mounted (e.g. /usr). +.BP sys4.c +The \fIsyslock\fR routine has been moved here from \fBacct.c\fR. +The mechanisms for sending signals to all processes, which is used in +shutting down the system, has been changed so that the process which is +broadcasting the signal does not receive it itself. This allows the +\fIhalt\fR and \fIshutdown\fR programs to be written in a straightforward way. +.BP trap.c +Prints out the \fBpc\fR when an unexpected trap occurs. +Handles AST's to implement profiling ticks and for rescheduling rather +than the (older style) use of reschedule interrupts. +Allows process reschedules after page faults. +.BP vmmon.c +Contains the internal routine \fBtrace1\fR which implements kernel +event tracing in a circular buffer. +.BP vmpage.c +Tracing code, which is normally not compiled in, has been added. +A extra case was added to an \fIif\fR statement to allow implementation +of the vlimit(LIM_MAXRSS) feature of the system, for limiting processes +which consume more than a process specific amount of physical memory. +A botch was fixed in the virtual memory pre-paging which put pre-paged +pages in the clock loop rather than at the end of the free list. +Code has been added to implement a additonal replacement algorithm +for processes which are declared sequential: when a hard page fault +occurs, the pages sequentially preceding the faulted page are returned +to the free list. +.BP vmproc.c +Contains a number of small changes related to AST processing. +.BP vmpt.c +Also contains changes for handling AST's as well as the initialization +of the red-zone separating the stack and \fBu.\fR area of newly created +processes. +A bug in translation buffer flushing which caused rare and mysterious +kernel crashes with the kernel stack not valid has been fixed. +.BP vmsched.c +Code has been added here which initializes the parameters of the clock +page replacement algorithm based on the size of the machine. The \fIswapout\fR +routine has been changed so that it no longer runs entirely at a high +interrupt priority level (see \fBslp.c\fR above). The algorithm for +the choice of processes to swap in and out and the hysteresis in the +swap algorithm has been adjusted to work reasonably in extreme conditions +when there are very large and or very few processes active in the system. +.BP vmsubr.c +Contains the \fIsetredzone\fR routine definition. +.BP vmsys.c +Contains the user interface to the kernel tracing routines. +Code has been added to \fIvadvise\fR to setup VA_SEQL. +.SH +Device support: sys/dev +.PP +The major change to the device subsystem is the support of multiple +MASSBUS and UNIBUS adapters, the support for multiple instances of each +particular controller, and the support of system configuration at +bootstrap time, investigating the interconnects, devices, and +controllers available on the machine. +These changes will be discussed in detail in the next section, +which describes how to change existing drivers to work in the new system +and gives pointers on style for writing new drivers. +.PP +Other changes in the device drivers affecting more than one driver: +.IP * +The input silos for DH-11's and DZ-11's are no longer serviced at clock IPL. +Rather the clock interrupt queues a software interrupt during to +service the silos. This means that the device interrupt routines +are called from IPL 0x15, the IPL at which they normally interrupt. Thus +it is no longer necessary to define \fBspl5\fR to be \fBspl6\fR (blocking +the clock) in routines which handle asynchronous line input/output. +.IP * +The internal interface to the line discipline routines has been changed +slightly by reordering parameters to make the arguments to the various +\fIioctl\fR interfaces more similar; in particular \fIttioctl\fR routine +call has been changed. If you have locally written line disciplines +or asynchronous device drivers you should check the interfaces. +.IP * +The tty interface now provides full 8-bit output when the terminal is +in LLITOUT mode; this requires support from the \fIxx\fR\|param routines +in the device drivers (e.g. from \fIdhparam\fR and \fIdzparam\fR.) +.IP * +The UNIBUS adapter support routines have changed substantially, to allow +for queueing of requests when resources are short and for support of +multiple UNIBUS adapters. The interface now also allows devices which +cannot function when other DMA is active on the UNIBUS to obtain +exclusive transient use of UNIBUS resources; this is needed to successfully +run RK07 disk controllers in the presence of other buffered data path DMA. +In addition, it is used by 6250bpi tape drives supported on the UNIBUS. +See the section on configuration and UNIBUS device drivers below +for more information. +.IP * +DEC standard bad sector forwarding is provided for all standard DEC +devices using the DEC formatters; the code which implements this is +easily ported to the storage module drivers in the system, and this +is planned soon.* +.FS +* The hard thing in providing bad sector handling for non-DEC drives +is providing a formatter which produces the bad block information and +flags the bad sectors appropriately. +.FE +.BP bio.c +The hashing of buffers has been changed to use the existing device +chain two way links. This means that unhashing is much easier, saves +space, and uses the pointers which were otherwise little used. +The buffers are now kept on one of three lists when not busy: a list +of super-blocks which are locked in core, a list of good data blocks, +which is kept fifo and used to implement the LRU buffer cache, and a list of +data blocks for which further usage is not anticipated; this is also +kept fifo. +.IP +Calls to some new tracing routines are conditionally included in \fBbio.c\fR; +we are using them to do some performance measurement. The \fBd_tab\fR +field of the block device table has been changed to a \fBd_flags\fR field, +and that change is known here, where old field was checked before (to +see if it was non-zero). Better messages are printed now when swap +space is exhausted, and a user is told on his/her terminal that a process +was killed before it started because there was no space. +A subroutine has been added to purge the blocks from a specific device +from the cache; this is used to fix some long standing buffer cache +flushing problems which prevented removable media from being used +reliably. +.BP bk.c +The definition of \fBspl5\fR as \fBspl6\fR has been removed from here. +The line discipline is included only if the specification +.DS +pseudo-device bk +.DE +is included in the system configuration. +The input silos on \fBdh\fR and \fBdz\fR devices are used only when +this line discipline is included in the system. +The comment about future implementation of 8-bit paths with this +discipline has been deleted, since there is no longer any intention of +doing this. +.BP conf.c +Has been moved to this directory from the directory \fB../conf\fR. +\fBThis file should be changed only if you are adding support for +a device not included on the standard distribution tape.\fR +.BP ct.c +Is a new driver, for a C/A/T phototypesetter interface. +.BP dh.c +No longer has to define \fBspl5\fR to be \fBspl6\fR. +Incorporates the DM-11 driver standardly. A method is provided +for specifying that lines are to be operated even though the hardware +does not indicate that they are ready (using the flags word in the +configuration specification, see \fIdh\fR\|(4)). A reasonable messages +is printed when a \fBdh\fR silo overflows, replacing the old style of +just printing a sequence of letter \fBo\fR's on the console. +.BP dhfdm.c +Has been incorporated into \fBdh.c\fR. +.BP dn.c +A driver for the DEC DN-11 autodialer interface. +.BP dsort.c +Has been rewritten to correct a bug which caused the elevators +to be sorted incorrectly. +.BP dz.c +No longer has to define \fBspl5\fR to be \fBspl5\fR. +Has been changed to allow lines to be specified as not properly wired +and brought up without the ready signals showing in the interface; +see \fIdz\fR\|(4) for details. Prints reasonable diagnostics when +the input silo overflows. +.BP flp.c +Knows that there is no floppy on an 11/750. +.BP hp.c +Is now a sub-driver to \fBmba.c\fR, which probes nexus space for the MASSBUS +adaptors and device space on the MASSBUS's for disks, setting up the +driver for each device which is in the configuration. +A number of minor bugs and enhancements have been made to the driver: +The driver handles the new RM80 drive +and its SSE (skip-sector-error) facility for bad sector handling, +as well as the DEC standard bad block forwarding. +Due to the bad block forwarding, the last three tracks of each disk +are normally reserved to the system and available only through the +use of a special file system partition. +A further bug has been fixed in the initialization of the tables for RM05 +sectoring. +The driver no longer (baroquely) turns on and off interrupts +on the MASSBUS adapter. Basic dual-port drive handling code has +been added to the driver. +.IP +The remaining remarks apply to all three supported disk drivers: +the \fBhp\fR driver for MASSBUS disks, the \fBup\fR driver for +UNIBUS storage modules, and the \fBhk\fR driver for RK07's: +The drivers do +not SEARCH or SEEK if there is only one drive on the MASSBUS. On a UNIBUS +no SEARCHing or SEEKing is done if one drive is on the controller. +The offset positions and recalibration of error recovery +is now done with interrupts rather than by waiting for the operations +to complete. This prevents the system from being tied up during the +many recoveries of a disk operation, and is necessary in any case +in at least one of the disk drivers (RK07). +The iostat numbers for each MASSBUS and UNIBUS drive are calculated +by the auto-configurator at boot time, not compiled into the drivers. +Much cleaner handling of errors is done: the drivers realize which +errors are not even potentially recoverable, handle drives spinning +up and down with readable diagnostics, and print reasonable, legible +error messages when hard errors and soft ecc's occur. +Each driver includes a low-level non-interrupt driver used to take +crash dumps at the end of a paging area on the device. +The drivers include a raw i/o buffer per drive so that raw operations +on separate devices can be overlapped (both seeks and transfers); previously +only one raw device operation could be pending per device type. +.BP ht.c +The tape drive is now a sub-drive of the MASSBUS driver. The following +remarks apply to all supported tape drivers: \fBht\fR and \fBmt\fR +for MASSBUS +. \"tapes, \fBts\fR for the UNIBUS ts-11, \fBtm\fR for the UNIBUS +. \"TM-11 emulations, and \fBut\fR for UNIBUS TU45 emulations. +tapes, \fBts\fR for the UNIBUS ts-11, and \fBtm\fR for the UNIBUS +TM-11 emulations. +.IP +Each driver implements a set of tape ioctl operations on raw tapes providing +access to the functionality of the hardware such as skipping forward +and backward records and files and writing end-of-file marks on the tape. +Better error diagnostics are also given on tape errors. +Multiple tape controllers and transports are supported. +A dump routine is provided with each driver for taking a +post-mortem crash dump on tape, although dumps are normally made +to the paging area on the disk. +.IP +With the exception of the \fBts\fP driver, +the drivers detect and reject +attempts to switch tape density while writing a tape. +.BP lp.c +Is a fully supported driver for one or more line printer interfaces. +It has been improved from the previous drivers (which were not supported) +to take a small fraction of the number of interrupts that the previous +drivers took. The user-level code driving the printers has been arranged +to work on 1200 baud DECWRITER III terminals or true printers. +.BP mba.c +Has been rewritten. Now allows mixing of disks and tapes on the same +and across multiple mba's, with the devices being driven from the routines +here calling routines defined in the individual device drivers. +.BP mem.c +Has been fixed to not allow any access to nexus space, even by the +super-users, since such access inevitably results in a machine check +and a system crash. +.BP mt.c +A driver for the DEC TU78 tape drive. +.BP mx?.c +A bug has been fixed which, caused by a missing call to \fIchdrain\fR +caused multiplexor files to become clogged under certain circumstances. +.BP rk.c +Is a new driver for RK07 disks. It uses the same logic as the storage +module drive driver \fBup.c\fR whenever possible. It also makes use +of the interlocking facilities of the UNIBUS device support because the +\fBrk\fR controller cannot tolerate concurrent UNIBUS dma when it is operating +due to a design flaw. +.BP swap.c +Now places only half of the first piece of the \fIswapmap\fR in the +\fIargmap\fR. +.BP swap??*.c +Are the files for different swap configurations. Thus \fBswaphp.c\fR +defines the root and swap devices for a UNIX based on a \fBhp\fR disk. +The files such as \fBswaphphp.c\fR are for interleaved paging configurations, +placing the swapping and paging activity on two disk arms. You can +make additional such files and include them in your configuration +files. +.BP tdump.c +Has been deleted, replaced by the dump routines in individual drivers. +.BP tm.c +Is a driver for UNIBUS tape drives on controllers such as the EMULEX TC-11. +It has the same functionality as \fBht\fR (see \fBht.c\fR above.) +.BP ts.c +Is a driver for the UNIBUS TS-11 tape drive. It has full functionality +except the transport itself only supports 1600 bpi. +.BP tty.c +No longer raises its IPL to \fBspl6\fR internally to block the clock. +Has its internal interface to \fBioctl\fR entries changed slightly to +be globally consistent (see, e.g. \fIttioctl\fR). The DIOC* ioctl +entries have been deleted since they are not used in any standard +UNIX line disciplines. +.BP ttynew.c +A bug is fixed which prevented echoing from occurring in raw mode. +The dec-compatible method of ^S/^Q processing needed to support VT-100s +in smooth scroll mode is implemented when the local mode ``decctlq'' +is specified. +.BP ttyold.c +Implements ``decctlq'' mode. +.BP tu.c +A driver for the 11/750 TU58 console cassette interface. \fBNote: +this driver provides reliable service only on a quiescent system.\fP +.BP uba.c +Has a much more structured interface. All the basic routines for dealing +with the UNIBUS specify a UNIBUS adapter number to use, since there +are potentially several on a machine. When requesting allocation +of UNIBUS map entries, the caller specifies whether he is willing +to block in the allocation routines waiting for resources to come +available. If he is not, and there are no resources available, a value +of 0 is returned, and the caller must deal with this. +The routine which frees UNIBUS resources now takes the address of the +variable describing the resources to be freed rather than the value +of this variable to eliminate a race condition (where the routine is +called, a UNIBUS interrupt occurs causing a UNIBUS reset, and the +resources are freed twice, causing a \fIpanic\fR\|). +.IP +The normal interface for DMA operation is now to pass a pointer to +a UNIBUS related structure to a routine \fIubago\fR, which allocates +UNIBUS resources. If resources are not available, the structure +is queued on a request queue, and processed when resources are available. +When the requested resources are allocated, a driver specific \fIxxgo\fR +routine is called, and can stuff the device registers with the +address into which the operation is mapped and start the operation. +The use of this interface is described in the next section. +.IP +Finally, we note that the error handling code which was written +in assembly language is now written in C. +.BP uda.c +A driver for the UDA50 disk controller with RA80 Winchester +storage modules. +.BP up.c +The UNIBUS storage module disk driver has been fixed up in the same +way that the \fBhp\fR driver was, giving better error diagnostics +and using interrupts during error recovery, etc. See \fBhp.c\fR +above for details. The driver uses a feature of the EMULEX SC-21 +to determine the size of the disks in use, so that it can adapt +to both 300M storage modules and the Fujitsu 160M drives which are +popular. Other drive sizes can be added easily. +. \".BP ut.c +. \"A driver for the System Industries Model 9700 tape drive, emulating +. \"a DEC TU45 on the UNIBUS. +.BP va.c +The \fBvarian\fR printer-plotter driver has been modified so that +it can support more than one device, probes the devices so they +can be placed on differrent UNIBUS'es, and prints an error diagnostic +when device errors are detected. +.BP vaxcpu.c +Is a new file which contains initializations of various CPU-type +dependent structures. +.BP vp.c +Has been modified to handle multiple devices, and adapted to the +auto-configuration code. +.SH +Configuration and UNIBUS device drivers +.PP +Someday this section will be a separate document. +This section explains how to interface an existing UNIX +device driver to the VAX system, especially to the UNIBUS +routines and the autoconfiguration code. +.PP +A PDP-11, UNIX/32V or 3BSD or 4.0BSD +driver on the VAX UNIBUS will need to be modified +to run under 4.1BSD. There are three reasons why such a driver +will need to be changed: +.IP 1) +4.1bsd supports multiple UNIBUS adapters. +.IP 2) +4.1bsd supports system configuration at boot time. +.IP 3) +4.1bsd manages the UNIBUS resources and does not crash when +resources are not available; the resource allocation protocol must +be honored. In addition, devices such as the RK07 which require +everyone else to get off the UNIBUS when they are running +need cooperation from other DMA devices if they are to work. +.PP +Each UNIBUS on a VAX has a set of resources: +.IP * +496 map registers which are used to convert from the 18 bit UNIBUS +addresses into the much larger VAX address space. +.IP * +Some number of buffered data paths (3 on an 11/750, 15 on an 11/780) +which are used by high speed devices to transfer +data using fewer bus cycles. +.LP +There is a structure of type \fBstruct uba_hd\fR in the system per UNIBUS +adapter used to manage these resources. This structure also contains +a linked list where devices waiting for resources to complete DMA UNIBUS +activity have requests waiting. +.PP +There are three central structures in the writing of drivers for UNIBUS +controllers; devices which do not do DMA i/o can often use only two +of these structures. The structures are \fBstruct uba_ctlr\fR, the +UNIBUS controller structure, \fBstruct uba_device\fR the UNIBUS +device structure, and \fBstruct uba_driver\fR, the UNIBUS driver structure. +The \fBuba_ctlr\fR and \fBuba_device\fR structures are in +one-to-one correspondence with the definitions of controllers and +devices in the system configuration. +Each driver has a \fBstruct uba_driver\fR structure specifying an internal +interface to the rest of the system. +.PP +Thus a specification +.DS +controller sc0 at uba0 csr 0176700 vector upintr +.DE +would cause a \fBstruct uba_ctlr\fR to be declared and initialized in +the file \fBioconf.c\fR for the system configured from this description. +Similarly specifying +.DS +disk up0 at sc0 drive 0 +.DE +would declare a related \fBuba_device\fR in the same file. +The \fBup.c\fR driver which implements this driver specifies in +its declarations: +.DS +int upprobe(), upslave(), upattach(), updgo(), upintr(); +struct uba_ctlr *upminfo[NSC]; +struct uba_device *updinfo[NUP]; +u_short upstd[] = { 0776700, 0774400, 0776300, 0 }; +struct uba_driver scdriver = + { upprobe, upslave, upattach, updgo, upstd, "up", updinfo, "sc", upminfo }; +.DE +initializing the \fBuba_driver\fR structure. +The driver will support some number of controllers named \fBsc0\fR, \fBsc1\fR, +etc, and some number of drives named \fBup0\fR, \fBup1\fR, etc. where the +drives may be on any of the controllers (that is there is a single +linear name space for devices, separate from the controllers.) +.PP +We now explain the fields in the various structures. It may help +to look at a copy of \fBh/ubareg.h\fR, \fBh/ubavar.h\fR and drivers +such as \fBup.c\fR and \fBdz.c\fR while reading the descriptions of +the various structure fields. +.SH +uba_driver structure +.PP +One of these structures exists per driver. It is initialized in +the driver and contains functions used by the configuration program +and by the UNIBUS resource routines. The fields of the structure are: +.BP ud_probe +A routine which is given a \fBcaddr_t\fR address as argument and +should cause an interrupt on the device whose control-status register +is at that address in virtual memory. It may be the case that the +device does not exist, so the probe routine should use delays (via +the DELAY(n) macro which delays for \fIn\fR microseconds) rather than +waiting for specific events to occur. The routine must \fBnot\fR +declare its argument as a \fBregister\fR parameter, but \fBmust\fR declare +.DS +\fBregister int br, cvec;\fR +.DE +as local variables. At boot time the system takes special measures +that these variables are ``value-result'' parameters. The \fBbr\fR +is the IPL of the device when it interrupts, and the \fBcvec\fR +is the interrupt vector address on the UNIBUS. These registers +are actually filled in in the interrupt handler when an interrupt occurs. +.IP +As an example, here is the \fBup.c\fR +probe routine: +.DS +upprobe(reg) + caddr_t reg; +{ + register int br, cvec; + +#ifdef lint + br = 0; cvec = br; br = cvec; +#endif + ((struct updevice *)reg)->upcs1 = UP_IE|UP_RDY; + DELAY(10); + ((struct updevice *)reg)->upcs1 = 0; + return (1); +} +.DE +The definitions for \fIlint\fR serve to indicate to it that the +\fBbr\fR and \fBcvec\fR variables are value-result. The statements +here interrupt enable the device and write the ready bit UP_RDY. +The 10 microsecond delay insures that the interrupt enable will +not be cancelled before the interrupt can be posted. The return of +``1'' here indicates that the probe routine is satisfied that the device +is present. A probe routine may use the function ``badaddr'' to see +if certain other addresses are accessible on the UNIBUS (without generating +a machine check), or look at the contents of locations where certain +registers should be. If the registers contents are not acceptable or +the addresses don't respond, the probe routine can return 0 and the +device will not be considered to be there. +.IP +One other thing to note is that the action of different VAXen when illegal +addresses are accessed on the UNIBUS may differ. Some of the machines +may generate machine checks and some may cause UNIBUS errors. Such +considerations are handled by the configuration program and the driver +writer need not be concerned with them. +.IP +It is also possible to write a very simple probe routine for a one-of-a-kind +device if probing is difficult or impossible. Such a routine would include +statements of the form: +.DS +br = 0x15; +cvec = 0200; +.DE +for instance, to declare that the device ran at UNIBUS br5 and interrupted +through vector 0200 on the UNIBUS. The current TS-11 driver does +something similar to this because the device is so difficult to force +an interrupt on that it hardly seems worthwhile. (Besides, TS-11's are +usually present on small 11/750's which have only one UNIBUS, and TS-11's +can have only exactly one transport per-controller so little probing is +needed.) +.BP ud_slave +This routine is called with a \fBuba_device\fR structure (yet to +be described) and the address of the device controller. It should +determine whether a particular slave device of a controller is +present, returning 1 if it is and 0 if it is not. +As an example here is the slave routine for \fBup.c\fR. +.DS +upslave(ui, reg) + struct uba_device *ui; + caddr_t reg; +{ + register struct updevice *upaddr = (struct updevice *)reg; + + upaddr->upcs1 = 0; /* conservative */ + upaddr->upcs2 = ui->ui_slave; + if (upaddr->upcs2&UPCS2_NED) { + upaddr->upcs1 = UP_DCLR|UP_GO; + return (0); + } + return (1); +} +.DE +Here the code fetches the slave (disk unit) number from the \fBui_slave\fR +field of the \fBuba_device\fR structure, and sees if the controller +responds that that is a non-existant driver (NED). If the drive +a drive clear is issued to clean the state of the controller, and 0 is +returned indicating that the slave is not there. Otherwise a 1 is returned. +.BP ud_attach +The attach routine is called after the autoconfigure code and the driver concur +that a peripheral exists attached to a controller. This is the routine +where internal driver state about the peripheral can be initialized. +Here is the \fIattach\fR routine from the \fBup.c\fR driver: +.ID +.nf +upattach(ui) + register struct uba_device *ui; +{ + register struct updevice *upaddr; + + if (upwstart == 0) { + timeout(upwatch, (caddr_t)0, hz); + upwstart++; + } + if (ui->ui_dk >= 0) + dk_mspw[ui->ui_dk] = .0000020345; + upip[ui->ui_ctlr][ui->ui_slave] = ui; + up_softc[ui->ui_ctlr].sc_ndrive++; + upaddr = (struct updevice *)ui->ui_addr; + upaddr->upcs1 = 0; + upaddr->upcs2 = ui->ui_slave; + upaddr->uphr = UPHR_MAXTRAK; + if (upaddr->uphr == 9) + ui->ui_type = 1; /* fujitsu hack */ + upaddr->upcs2 = UPCS2_CLR; +} +.DE +The attach routine here performs a number of functions. The first +time any drive is attached to the controller it starts the timeout +routine which watches the disk drives to make sure that interrupts +aren't lost. It also initializes, for devices which have been assigned +\fIiostat\fR numbers (when ui->ui_dk >= 0), the transfer rate of the +device in the array \fBdk_mspw\fR, the fraction of a second it takes +to transfer 16 bit word. It then initializes an inverting pointer +in the array \fBupip\fR which will be used later to determine, for a +particular \fBup\fR controller and slave number, the corresponding +\fBuba_device\fR. It increments the count of the number of devices +on this controller, so that search commands can later be avoided +if the count is exactly 1. It then uses a hardware feature of the +EMULEX SC-21 to ask if the number of tracks on the device is 9. If +it is, then the driver assumes that the type is ``1'', which corresponds +to a FUJITSU 160M drive. The alternative is the only other currently +supported device, a 300 Megabyte CDC or AMPEX drive, which has \fBui_type\fR +0. Note that if the controller is not an SC-21 then attempting to find +out the maximum track in the device will yield an error, and a 300 +Megabyte device will be assumed. In any case, any errors resulting from +the attempt to type the drive are cleared by a controller clear before +the routine returns. +.BP ud_dgo +Is the routine which is called by the UNIBUS resource management +routines when an operation is ready to be started (because the required +resources have been allocated). The routine in \fBup.c\fR is: +.DS +updgo(um) + struct uba_ctlr *um; +{ + register struct updevice *upaddr = (struct updevice *)um->um_addr; + + upaddr->upba = um->um_ubinfo; + upaddr->upcs1 = um->um_cmd|((um->um_ubinfo>>8)&0x300); +} +.DE +This routine uses the field \fBum_ubinfo\fR of the \fBuba_ctlr\fR +structure which is where the UNIBUS routines store the UNIBUS +map allocation information. In particluar, the low 18 bits of this +word give the UNIBUS address assigned to the transfer. The assignment +to \fIupba\fR in the go routine places the low 16 bits of the UNIBUS +address in the disk UNIBUS address register. The next assignment +places the disk operation command and the extended (high 2) address +bits in the device control-status register, starting the i/o operation. +The field \fBum_cmd\fR was initialized with the command to be stuffed +here in the driver code itself before the call to the \fBubago\fR +routine which eventually resulted in the call to \fBupdgo\fR. +.BP ud_addr +Are the conventional addresses for the device control registers in +UNIBUS space. This information is not used by the system in this +release, but may be used in future releases to look for instances of +the device supported by the driver. In the current system, the configuration +file specifies the control-status register addresses of all configured devices. +.BP ud_dname +Is the name of a \fIdevice\fR supported by this controller; thus the +disks on a SC-21 controller are called \fBup0\fR, \fBup1\fR, etc. +That is because this field contains \fBup\fR. +.BP ud_dinfo +Is an array of back pointers to the \fBuba_device\fR structures for +each device attached to the controller. Each driver defines a set of +controllers and a set of devices. The device address space is always +one-dimensional, so that the presence of extra controllers may be +masked away (e.g. by pattern matching) to take advantage of hardware +redundancy. This field is filled in by the configuration program, +and used by the driver. +.BP ud_mname +The name of a controller, e.g. \fBsc\fR for the \fBup.c\fR driver. +The first SC-21 is called \fBsc0\fR, etc. +.BP ud_minfo +The backpointer array to the structures for the controllers. +.BP ud_xclu +If non-zero specifies that the controller requires exclusive +use of the UNIBUS when it is running. This is non-zero currently +only for the RK611 controller for the RK07 disks to map around a hardware +problem. It could also be used if 6250bpi tape drives are to be used +on the UNIBUS to insure that they get the bandwidth that they need +(basically the whole bus). +.SH +uba_ctlr structure +.PP +One of these structures exists per-controller. +The fields link the controller to its UNIBUS adaptor and contain the +state information about the devices on the controller. The fields are: +.BP um_driver +A pointer to the \fBstruct uba_device\fR for this driver, which has +fields as defined above. +.BP um_ctlr +The controller number for this controller, e.g. the 0 in \fBsc0\fR. +.BP um_alive +Set to 1 if the controller is considered alive; currently, always set +for any structure encountered during normal operation. That is, the +driver will have a handle on a \fBuba_ctlr\fR structure only if the +configuration routines set this field to a 1 and entered it into the +driver tables. +.BP um_intr +The interrupt vector routines for this device. These are generated +by the \fIconfig\fR\|(8) program and this field is initialized in the +\fBioconf.c\fR file. +.BP um_hd +A back-pointer to the UNIBUS adapter to which this controller is attached. +.BP um_cmd +A place for the driver to store the command which is to be given to +the device before calling the routine \fIubago\fR with the devices +\fBuba_device\fR structure. This information is then retrieved when the +device go routine is called and stuffed in the device control status register +to start the i/o operation. +.BP um_ubinfo +Information about the UNIBUS resources allocated to the device. This is +normally only used in device driver go routine (as \fBupdgo\fR above) +and occasionally in exceptional condition handling such as ECC correction. +.BP um_tab +This buffer structure is a place where the driver hangs the device structures +which are ready to transfer. Each driver allocates a buf structure for each +device (e.g. \fBupdtab\fR in the \fBup.c\fR driver) for this purpose. +You can think of this structure as a device-control-block, and the +buf structures linked to it as the unit-control-blocks. +The code for dealing with this structure is stylized; see the \fBrk.c\fR +or \fBup.c\fR driver for the details. If the \fBubago\fR routine +is to be used, the structure attached to this \fBbuf\fR structure +must be: +.RS +.IP * +A chain of \fBbuf\fR structures for each waiting device on this controller. +.IP * +On each waiting \fBbuf\fR structure another \fBbuf\fR structure which is +the one containing the parameters of the i/o operation. +.RE +.SH +uba_device structure +.PP +One of these structure exists for each device attached to a UNIBUS +controller. Devices which are not attached to controllers or which +perform no buffered data path +DMA i/o may have only a device structure. Thus \fBdz\fR +and \fBdh\fR devices have only \fBuba_device\fR structures. +The fields are: +.BP ui_driver +A pointer to the \fBstruct uba_driver\fR structure for this device type. +.BP ui_unit +The unit number of this device, e.g. 0 in \fBup0\fR, or 1 in \fBdh1\fR. +.BP ui_ctlr +The number of the controller on which this device is attached, or \-1 +if this device is not on a controller. +.BP ui_ubanum +The number of the UNIBUS on which this device is attached. +.BP ui_slave +The slave number of this device on the controller which it is attached to, +or \-1 if the device is not a slave. Thus a disk which was unit 2 on +a SC-21 would have \fBui_slave\fR 2; it might or might not be \fBup2\fR, +that depends on the system configuration specification. +.BP ui_intr +The interrupt vector entries for this device, copied into the UNIBUS +interrupt vector at boot time. The values of these fields are filled +in by the \fBconfig\fR\|(8) program to small code segments which it +generates in the file \fBubglue.s\fR. +.BP ui_addr +The control-status register address of this device. +.BP ui_dk +The iostat number assigned to this device. Numbers are assigned to +disks only, and are small positive integers which index the various +\fBdk_*\fR arrays in . +.BP ui_flags +The optional ``\fBflags \fR\fIxxx\fR'' parameter from the configuration +specification was copied to this field, to be interpreted by the driver. +If \fBflags\fR was not specified, then this field will contain a 0. +.BP ui_alive +The device is really there. Presently set to 1 when a device is +determined to be alive, and left 1. +.BP ui_type +The device type, to be used by the driver internally. Thus the \fBup.c\fR +driver uses a \fBui_type\fR of 0 to mean a 300 Megabyte drive and a type +of 1 to mean a 160 Megabyte FUJITSU drive. +.BP ui_physaddr +The physical memory address of the device control-status register. +This is used in the device dump routines typically. +.BP ui_mi +A \fBstruct uba_ctlr\fR pointer to the controller (if any) on which +this device resides. +.BP ui_hd +A \fBstruct uba_hd\fR pointer to the UNIBUS on which this device resides. +.SH +Changing drivers +.PP +If you driver does not do buffered data path DMA, conversion +to the new system should be straightforward; if it uses +buffered data paths more work will be required, but the +task is really mostly cosmetic. +.PP +In any case, first add a line to the file \fBconf/files\fR of the form +.DS +dev/zz.c optional zz device-driver +.DE +so that your driver will be included when you +specify it in a configuration. +Change the \fBdev/conf.c\fR file to include a block or character +device entry for your device. Note that the block device entries +now include a \fBd_dump\fR entry; if you are a block device but +don't have a dump entry point, just make one in your driver that +returns the value ENODEV. +.PP +Then build a system configuration including your driver so that +you have a compilation environment for your driver. You will +have to add a \fBstruct uba_driver\fR declaration for your driver, +and change its calls to UNIBUS routines to correspond to these +routines in the new system. Trouble spots will show up here. +In particular, notice that you must specify flags to \fBuballoc\fR +if you call it: +.BP NEEDBDP +if you need a buffered data path +.BP CANTWAIT +if you are calling (potentially) from interrupt level +.LP +You may discover that your driver ``cantwait'' but that you are calling +from interrupt level. This botch existed in most previous VAX UNIX +drivers, since there were no mechanisms for dealing with this. +We will describe some options shortly. +.PP +First, suppose your driver doesn't do buffered data path dma. +What else is there for you to do? Very little really. +You should change your driver to print messages on the console +in the format now used by all device drivers; see section 4 of the +revised programmers manual for details. +To make more certain that your driver is ready for the new system +environment, look at some of the simple existing drivers +and mimic the style to create the portions of the driver which +are needed to interface with the configuration part of the system. +Useful drivers to look at may be: +.BP ct.c +Very simple drive which does programmed i/o to C/A/T phototypesetter. +.BP dh.c +Communications line driver which uses non-buffered UNIBUS dma +for output. +.BP dz.c +Communications line driver which does programmed i/o. +.PP +Basically all you have to do is write a \fBud_probe\fR and a \fBud_attach\fR +routine for the controller. It suffices to have a \fBud_probe\fR routine +which just initializes \fBbr\fR and \fBcvec\fR, and a \fBud_attach\fR +routine which does nothing. +Making the device fully configurable requires, of course, more work, +but is worth it if you expect the device to be in common usage +and want to share it with others. +.PP +If you managed to create all the needed hooks, then make sure you include +the necessary header files; the ones included by \fBct.c\fR are nearly +minimal. Order is important here, don't be suprised at undefined structure +complaints if you order the includes wrongly. +Finally if you get the device configured in, you can try bootstrapping +and see if configuration messages print out about your device. +It is a good idea to have some messages in the probe routine so that +you can see that you are getting called and what is going on. +If you do not get called, then you probably have the control-status +register address wrong in your system configuration. The autoconfigure +code notices that the device doesn't exist in this case and you will never +get called. +.PP +Assuming that your probe routine works and you manage +to generate an interrupt, then you are basically back to where you +would have been under older versions of UNIX. +Just be sure to use the \fBui_ctlr\fR field of the \fBuba_device\fR +structures to address the device; compiling in funny constants +will make your driver only work on the CPU type you have (780 or 750). +.PP +Other bad things that might happen while you are setting up the configuration +stuff: +.IP * +You get ``nexus zero vector'' errors from the system. This will happen +if you cause a device to interrupt, but take away the interrupt enable +so fast that the UNIBUS adapter cancels the interrupt and confuses +the processor. The best thing to do it to put a modest delay in the +probe code between the instructions which should cause and interrupt and +the clearing of the interrupt enable. (You should clear interrupt +enable before you leave the probe routine so the device doesn't interrupt +more and confuse the system while it is configuring other devices.) +.IP * +The device refuses to interrupt or interrupts with a ``zero vector''. +This typically indicates a problem with the hardware or, for devices +which emulate other devices, that the emulation is incomplete. Devices +may fail to present interrupt vectors because they have configuration +switches set wrong, or because they are being accessed in inappropriate ways. +Incomplete emulation can cause ``maintenance mode'' features to not work +properly, and these features are often needed to force device interrupts. +.SH +Adapting devices which do buffered data path dma +.PP +These devices fall into two categories: those which are controllers +to which devices are attached, and those which are just single devices. +The interface for the former is very stylized and we recommend that +you simply mimic one of the existing tape or disk drivers in adapting +to the system. You will find that the existing tape and disk drivers +are all \fBvery\fR similar; this is deliberate so that it isn't +necessary to rewrite the whole driver for each device, since the available +devices are typically very similar. +.PP +Other devices which do buffered data path DMA can be adapted to the +new system in one of two ways: +.IP * +They can do their own data path allocation, calling the UNIBUS +allocation routines from the ``top-half'' (non-interrupt) code, +sleeping in the UNIBUS code when resources are not available. +See for an example the code in the \fBvp.c\fR driver. +.IP * +They can set up a two-level structure like the tape and disk drivers +do, and call the \fIubago\fR routine and use the \fBud_dgo\fR interface +to start DMA operations. +See for an example the code in the \fBup.c\fR driver. +.PP +Either way works acceptably well; the second (\fIubago\fR\|) interface +is preferable because it does not force a context switch per i/o operation +(to the routine driving the i/o from the ``top-half''). +.PP +If you have questions about converting drivers, feel free to call us +and ask or to send us mail. We hope (eventually) to write a more +complete paper for driver writers, but don't have the manpower to do this +just now. diff --git a/doc/misc/kchanges.4.2/0.t b/doc/misc/kchanges.4.2/0.t new file mode 100644 index 00000000..b131fb82 --- /dev/null +++ b/doc/misc/kchanges.4.2/0.t @@ -0,0 +1,63 @@ +.TL +Changes to the Kernel in 4.2BSD +.sp +July 25, 1983 +.AU +Samuel J. Leffler +.AI +Computer Systems Research Group +Department of Electrical Engineering and Computer Science +University of California, Berkeley +Berkeley, California 94720 +(415) 642-7780 +.PP +This document summarizes the changes to the kernel +between the September 1981 4.1BSD release and the +July 1983 4.2BSD distribution. The information is presented +in both overall terms (e.g. organizational changes), and as +specific comments about individual files. See +the source code itself for more details. +.PP +The system has undergone too many changes to detail everything. +Instead the major areas of change will pointed out, followed by +a brief description of the contents of files present in the +4.1BSD release. Where important changes and/or bug fixes were +applied they are described. The networking support is not discussed +in this document, refer to ``4.2BSD Networking Implementation +Notes'' for a discussion of the internal structure of the network +facilities. +.PP +Major changes include: +.IP \(bu 3 +organizational changes to isolate VAX specific portions +of the system +.IP \(bu 3 +changes to support the new file system organization +.IP \(bu 3 +changes to support the new interprocess communication +facilities +.IP \(bu 3 +changes for the new networking support; in particular, +the DARPA standard Internet protocols TCP, UDP, IP, and ICMP, +and the \fInetwork interface drivers\fP which provide +hardware support +.IP \(bu 3 +changes for the new signal facilities +.IP \(bu 3 +changes for the new time and interval timer facilities +.IP \(bu 3 +changes to eliminate references to global variables; +in particular, the global +variables \fIu.u_base\fP, \fIu.u_offset\fP, \fIu.u_segflg\fP, +and \fIu.u_count\fP have been almost completely replaced +by \fIuio\fP structures which are passed by reference; +the \fIu.u_error\fP variable +has not been completely purged from low level portions of the +system, but is in many places now returned as a function +value; the \fIuio\fP changes were necessitated by the +new scatter-gather i/o facilities +.IP \(bu 3 +changes for the new disk quota facilities +.IP \(bu 3 +changes for more flexible configuration of the disk +space used for paging and swapping diff --git a/doc/misc/kchanges.4.2/1.t b/doc/misc/kchanges.4.2/1.t new file mode 100644 index 00000000..2946c0f0 --- /dev/null +++ b/doc/misc/kchanges.4.2/1.t @@ -0,0 +1,58 @@ +.NH +Carrying over local software +.PP +With the massive changes made to the system, both in organization +and in content, it may take some time to understand how to +carry over local software. The majority of this document is +devoted to describing the contents of each important source file +in the system. If you have local software other than device +drivers to incorporate in the system you should first read this +document completely, then study the source code to more fully +understand the changes as they affect you. +.PP +Locally written device drivers will need to be converted to +work in the new system. The changes required of device drivers are: +.IP 1) +The calling convention +for the driver \fIioctl\fP routine has changed. Any data +copied in or out of the system is now +done at the highest level inside \fIioctl\fP\|(). The third +parameter to the driver \fIioctl\fP routine +is a data buffer passed by reference. Values to be +returned by a driver must be copied into the associated buffer +from which the system then copies them into the user address space. +.IP 2) +The \fIread\fP, \fIwrite\fP, and \fIioctl\fP entry points in +device drivers must return 0 or an error code from <\fIerrno.h\fP>. +.IP 3) +The \fIread\fP and \fIwrite\fP entry points should no longer +reference global variables out of the user area. A new \fIuio\fP +parameter is passed to these routines which should, in turn, +be passed to the \fIphysio\fP\|() routine if the driver supports +raw i/o. +.IP 4) +Disk drivers which are to support swapping/paging must have +a new routine which returns the size, in sectors, of a disk +partition. This value is used in calculating the size of +swapping/paging areas at boot time. +.IP 5) +Code which previously used the \fIiomove\fP, \fIpassc\fP, or +\fIcpass\fP routines will have to be modified to use the +new \fIuiomove\fP, \fIureadc\fP, and \fIuwritec\fP routines. +The new routines all use a \fIuio\fP structure to communicate +the i/o base, offset, count, and segflag values previously +passed globally in the user area. +.IP 6) +Include files have been rearranged and new ones have +been created. Common machine-dependent +files such as \fImtpr.h\fP, \fIpte.h\fP, \fIreg.h\fP, +and \fIpsl.h\fP are no longer in +the ``h'' directory; see below under organizational changes. +.IP 7) +The handling of UNIBUS resets has changed. The reset routine +should no longer deallocate UNIBUS resources allocated to +pending i/o requests (this is done in the \fIubareset\fP routine). +For most drivers this means the reset routine simply needs to +invalidate any \fIub_info\fP values stored in local data +structures to insure new UNIBUS resources will be allocated +the next time the ``device start'' routine is entered. diff --git a/doc/misc/kchanges.4.2/2.t b/doc/misc/kchanges.4.2/2.t new file mode 100644 index 00000000..a2b27bb4 --- /dev/null +++ b/doc/misc/kchanges.4.2/2.t @@ -0,0 +1,42 @@ +.NH +Organizational changes +.PP +The directory organization and file names are very different +from 4.1BSD. +The new directory layout +breaks machine-specific and network-specific portions +of the system out into separate directories. A new file, +\fImachine\fP is a symbolic link to a directory for the +target machine, e.g. \fIvax\fP. This allows a single set +of sources to be shared between multiple machine types +(by including header files as ``../machine/file''). +The directory naming conventions, as they relate to the +network support, are intended to allow expansion in supporting +multiple ``protocol families''. The following directories +comprise the system sources for the VAX: +.DS +.TS +lw(1.0i) l. +/sys/h machine independent include files +/sys/sys machine independent system source files +/sys/conf site configuration files and basic templates +/sys/net network independent, but network related code +/sys/netinet DARPA Internet code +/sys/netimp IMP support code +/sys/netpup PUP-1 support code +/sys/vax VAX specific mainline code +/sys/vaxif VAX network interface code +/sys/vaxmba VAX MASSBUS device drivers and related code +/sys/vaxuba VAX UNIBUS device drivers and related code +.TE +.DE +.PP +Files indicated as \fImachine independent\fP are shared among +4.2BSD systems running on the VAX and Motorola 68010. Files +indicated as \fImachine dependent\fP are located in directories +indicative of the machine on which they are used; the 4.2BSD +release from Berkeley contains support only for the VAX. +Files marked \fInetwork independent\fP form the ``core'' of the +networking subsystem, and are shared among all network software; +the 4.2BSD release from Berkeley contains complete support only +for the DARPA Internet protocols IP, TCP, UDP, and ICMP. diff --git a/doc/misc/kchanges.4.2/3.0.t b/doc/misc/kchanges.4.2/3.0.t new file mode 100644 index 00000000..543dfe7e --- /dev/null +++ b/doc/misc/kchanges.4.2/3.0.t @@ -0,0 +1,7 @@ +.NH +Bug fixes and changes +.PP +This section contains a brief description of each file which +is not part of the network subsystem, and also indicates important +changes and bug fixes applied to the source code contained in +the file. diff --git a/doc/misc/kchanges.4.2/3.1.t b/doc/misc/kchanges.4.2/3.1.t new file mode 100644 index 00000000..0b1f2732 --- /dev/null +++ b/doc/misc/kchanges.4.2/3.1.t @@ -0,0 +1,198 @@ +.NH 2 +/sys/h +.PP +Files residing here are intended to be machine independent. +Consequently, the header files for device drivers which +were present in this directory in 4.1BSD have been moved +to other directories; +e.g. /sys/vaxuba. Many files which had been duplicated in +/usr/include are now present only in /sys/h. Further, the +4.1BSD /usr/include/sys directory is now normally a symbolic link +to this directory. By having only a single copy of these files +the ``multiple update'' problem no longer occurs. (It is still +possible to have /usr/include/sys be a copy of the /sys/h for +sites where it is not feasible to allow the general user +community access to the system source code.) +.PP +The following files are new to /sys/h in 4.2BSD: +.IP \fBdomain.h\fP 15 +describes the internal structure of a communications domain; part of +the new ipc facilities +.IP \fBerrno.h\fP 15 +had previously been only in /usr/include; the file /usr/include/errno.h +is now a symbolic link to this file +.IP \fBfs.h\fP 15 +replaces the old filsys.h description of the file system organization +.IP \fBgprof.h\fP 15 +describes various data structures used in profiling the +kernel; see \fIgprof\fP\|(1) for details +.IP \fBkernel.h\fP 15 +is an offshoot of systm.h and param.h; contains constants and +definitions related to the logical UNIX ``kernel'' +.IP \fBmbuf.h\fP 15 +describes the memory managment support used mostly by the network; +see ``4.2BSD Networking Implementation Notes'' for more information +.IP \fBmman.h\fP 15 +contains definitions for planned changes to the memory management +facilities (not implemented in 4.2BSD) +.IP \fBnami.h\fP 15 +defines various structures and manifest constants used in +conjunctions with the \fInamei\fP routine (part of this file +reflects future plans for changes to \fInamei\fP rather +than current use) +.IP \fBprotosw.h\fP 15 +contains a description of the protocol switch table and related +manifest constants and data structures use in communicating with +routines located in the table +.IP \fBquota.h\fP 15 +contains definitions related to the new disk quota facilities +.IP \fBresource.h\fP 15 +contains definitions used in the \fIgetrusage\fP, +\fIgetrlimit\fP, and \fIgetpriority\fP system calls (among others) +.IP \fBsocket.h\fP 15 +contains user-visible definitions related to the new socket ipc +facilities +.IP \fBsocketvar.h\fP 15 +contains implementation definitions for the socket ipc facilities +.IP \fBttychars.h\fP 15 +contains definitions related to tty character handling; in particular, +manifest constants for the system standard erase, kill, interrupt, +quit, etc. characters are stored here (all the appropriate user +programs use these manifest definitions) +.IP \fBttydev.h\fP 15 +contains definitions related to hardware specific portions of tty +handling (such as baud rates); to be expanded in the future +.IP \fBuio.h\fP 15 +contains definitions for users wishing to use the new +scatter-gather i/o facilities; also contains the kernel \fIuio\fP +structure used in implementing scatter-gather i/o +.IP \fBun.h\fP 15 +contains user-visible definitions related to the ``unix'' ipc domain +.IP \fBunpcb.h\fP 15 +contains the definition of the protocol control block used +in the ``unix'' ipc domain +.IP \fBwait.h\fP 15 +contains definitions used in the \fIwait\fP and \fIwait3\fP\|(2) +system calls; previously in /usr/include/wait.h +.PP +The following files have undergone significant change: +.IP \fBbuf.h\fP 15 +reflects the changes made to the buffer cache for the +new file system organization \- buffers +are variable sized with pages allocated to buffers on +demand from a pool of pages dedicated to the buffer cache; +one new structure member has been added +to eliminate overloading of a commonly unreferenced structure +member; a new flag B_CALL, when set, causes the function +\fIb_iodone\fP to be called when i/o completes on a buffer +(this is used to wakeup the pageout daemon); macros have +been added for manipulating the buffer queues, these replace +the previous subroutines used to insert and delete buffers +from the queues +.IP \fBconf.h\fP 15 +reflects changes made in the handling of swap space and +changes made for the new \fIselect\fP\|(2) system call; +the block device table +has a new member, \fId_psize\fP, +which returns the size of a disk partition, in sectors, +given a major/minor value; the character device table has a +new member, \fId_select\fP, which is passed +a \fIdev_t\fP value and an FREAD (FWRITE) flag and returns +1 when data may be read (written), and 0 otherwise; the +\fIswdevt\fP structure now includes the size, in sectors, +of a swap partition +.IP \fBdir.h\fP 15 +is completely different since directory entries are now +variable length; definitions for the user level interface +routines described in \fIdirectory\fP\|(3) are also present +.IP \fBfile.h\fP 15 +has a very different \fIfile\fP structure definition and +definitions for the new \fIopen\fP and \fIflock\fP system +calls; symbolic definitions for many constants commonly +supplied to \fIaccess\fP and \fIlseek\fP, are also present +.IP \fBinode.h\fP 15 +reflects the new hashed cacheing scheme as well additions +made to the on-disk and in-core inodes; on-disk inodes +now contain a count of the actual number of disk +blocks allocated a file (used mostly by the disk quota +facilities), larger time stamps (for planned changes), +more direct block pointers, and room for future growth; +in-core inodes have new fields for the advisory locking +facilities, a back pointer to the file system super block +information (to eliminate lookups), and a pointer to +a structure used in implementing disk quotas. +.IP \fBioctl.h\fP 15 +has all request codes constructed from _IO, _IOR, +_IOW, and _IOWR macros which encode whether the request +requires data copied in, out, or in and out of the kernel +address space; the size of the data parameter (in bytes) is +also encoded in the request, allowing the \fIioctl\fP\|() +routine to perform all user-kernel address space copies +.IP \fBmount.h\fP 15 +the \fImount\fP structure has a new member used in +the disk quota facilities +.IP \fBparam.h\fP 15 +has had numerous items deleted from it; in +particular, many definitions logically part of the ``kernel'' +have been moved to kernel.h, and machine-dependent values and +definitions are now found in param.h files located in +machine/param.h; contains a manifest constant, NGROUPS, +which defines the maximum size of the group access list +.IP \fBproc.h\fP 15 +has changed extensively as a result of the new signals, the +different resource usage structure, the disk quotas, +and the new timers; in addition, new members are present +to simplify searching the process tree for siblings; the +SDLYU and SDETACH bits are gone, the former is replaced +by a second parameter to \fIpagein\fP, the latter is no +longer needed due to changes in the handling of open's +on /dev/tty by processes which have had their controlling +terminal revoked with \fIvhangup\fP +.IP \fBsignal.h\fP 15 +reflects the new signal facilities; several new signals +have been added: SIGIO for signal driven i/o; SIGURG for +notification when an urgent condition arises; and SIGPROF and +SIGVTALRM for the new timer facilities; structures used +in the \fIsigvec\fP\|(2) and \fIsigstack\fP\|(2) system +calls, as well as signal handler invocations are defined +here +.IP \fBstat.h\fP 15 +has been updated to reflect the changes to the inode +structure; in addition a new field \fIst_blksize\fP +contains an ``optimal blocking factor'' for performing +i/o (for files this is the block size of the underlying +file system) +.IP \fBsystm.h\fP 15 +has been trimmed back a bit as various items were moved +to kernel.h +.IP \fBtime.h\fP 15 +contains the definitions for the new time and interval +timer facilities; time zone definitions for the half dozen +time zones understood by the system are also included here +.IP \fBtty.h\fP 15 +reflects changes made to the internal structure of the +terminal handler; the ``local'' structures have been +merged into the standard flags and character definitions +though the user interface is virtually identical to that +of 4.1BSD; the TTYHOG value has been changed from 256 to +255 to account for a counting problem in the terminal +handler on input buffer overflow +.IP \fBuser.h\fP 15 +has been extensively modified; members have been grouped +and categorized to reflect the ``4.2BSD System Manual'' +presentation; new members have been added and existing members +changed to reflect: the new groups facilities, +changes to resource accounting and limiting, new timer facilities, +and new signal facilities +.IP \fBvmmac.h\fP 15 +has had many macro definitions changed to eliminate +assumptions about the hardware virtual memory support; +in particular, the stack and user area page table +maps are no longer assumed to be adjacent or +mapped by a single page table base register +.IP \fBvmparam.h\fP 15 +now includes machine-dependent definitions from a file +machine/vmparam.h. +.IP \fBvmsystm.h\fP 15 +has had several machine-dependent definitions moved +to machine/vmparam.h diff --git a/doc/misc/kchanges.4.2/3.2.t b/doc/misc/kchanges.4.2/3.2.t new file mode 100644 index 00000000..e96c3b65 --- /dev/null +++ b/doc/misc/kchanges.4.2/3.2.t @@ -0,0 +1,289 @@ +.NH 2 +/sys/sys +.PP +This directory contains the ``mainstream'' kernel code. +Files in this directory are intended to be shared between +4.2BSD implementations on all machines. As there is +little correspondence between the current files in this +directory and those which were present in 4.1BSD a +general overview of each files's contents will be presented +rather than a file-by-file comparison. +.PP +Files in the \fIsys\fP directory are named with prefixes +which indicate their placement in the internal system +layering. The following table summarizes these naming +conventions. +.DS +.TS +lw(1.0i) l. +init_ system initialization +kern_ kernel (authentication, process management, etc.) +quota_ disk quotas +sys_ system calls and similar +tty_ terminal handling +ufs_ file system +uipc_ interprocess communication +vm_ virtual memory +.TE +.DE +.NH 3 +Initialization code +.IP \fBinit_main.c\fP 17 +contains system startup code +.IP \fBinit_sysent.c\fP 17 +contains the definition of the \fIsysent\fP table \- the table +of system calls supported by 4.2BSD +.NH 3 +Kernel-level support +.IP \fBkern_acct.c\fP 17 +contains code used in per-process accounting +.IP \fBkern_clock.c\fP 17 +contains code for clock processing; work was done +here to minimize time spent in the \fIhardclock\fP routine; +support for kernel profiling and statistics collection +from an alternate clock source have been added; +a bug which caused the system to lose time has been +fixed; the code which drained terminal multiplexor silos +has been made the default mode of operation and moved to locore.s +.IP \fBkern_descrip.c\fP 17 +contains code for management of descriptors; descriptor +related system calls such as \fIdup\fP and \fIclose\fP (the +upper-most levels) are present here +.IP \fBkern_exec.c\fP 17 +contains code for the \fIexec\fP system call +.IP \fBkern_exit.c\fP 17 +contains code for the \fIexit\fP system call +.IP \fBkern_fork.c\fP 17 +contains code for the \fIfork\fP (and \fIvfork\fP) system +call +.IP \fBkern_mman.c\fP 17 +contains code for memory management related calls; the +contents of this file is expected to change when the +revamped memory management facilities are added to the +system +.IP \fBkern_proc.c\fP 17 +contains code related to process management; in particular, +support routines for process groups +.IP \fBkern_prot.c\fP 17 +contains code related to access control and protection; +the notions of user ID, group ID, and the group access list +are implemented here +.IP \fBkern_resource.c\fP 17 +code related to resource accounting and limits; the +\fIgetrusage\fP and ``get'' and ``set'' resource +limit system calls are found here +.IP \fBkern_sig.c\fP 17 +the signal facilities; in particular, kernel level routines +for posting and processing signals +.IP \fBkern_subr.c\fP 17 +support routines for manipulating the \fIuio\fP structure: +\fIuiomove\fP, \fIureadc\fP, and \fIuwritec\fP +.IP \fBkern_synch.c\fP 17 +code related to process synchonization and scheduling: +\fIsleep\fP and \fIwakeup\fP among others +.IP \fBkern_time.c\fP 17 +code related to processing time; the handling of interval +timers and time of day +.IP \fBkern_xxx.c\fP 17 +miscellaneous system facilities and code for supporting +4.1BSD compatibility mode (kernel level) +.NH 3 +Disk quotas +.IP \fBquota_kern.c\fP 17 +``kernel'' of disk quota suppport +.IP \fBquota_subr.c\fP 17 +miscellaneous support routines for disk quotas +.IP \fBquota_sys.c\fP 17 +disk quota system call routines +.IP \fBquota_ufs.c\fP 17 +portions of the disk quota facilities which interface +to the file system routines +.NH 3 +General subroutines +.IP \fBsubr_mcount.c\fP 17 +code used when profiling the kernel +.IP \fBsubr_prf.c\fP 17 +\fIprintf\fP and friends; also, code related to +handling of the diagnostic message buffer +.IP \fBsubr_rmap.c\fP 17 +subroutines which manage resource maps +.IP \fBsubr_xxx.c\fP 17 +miscellaneous routines and code for routines implemented +with special VAX instructions, e.g. bcopy +.NH 3 +System level support +.IP \fBsys_generic.c\fP 17 +code for the upper-most levels of the ``generic'' system +calls: \fIread\fP, \fIwrite\fP, \fIioctl\fP, and \fIselect\fP; +a ``must read'' file for the system guru trying to shake +out 4.1BSD bad habits +.IP \fBsys_inode.c\fP 17 +code supporting the ``generic'' system calls of sys_generic.c +as they apply to inodes; the guts of the byte stream file i/o +interface +.IP \fBsys_process.c\fP 17 +code related to process debugging: \fIptrace\fP and its +support routine \fIprocxmt\fP; this file is expected to +change as better process debugging facilities are developed +.IP \fBsys_socket.c\fP 17 +code supporting the ``generic'' system calls of sys_generic.c +as they apply to sockets +.NH 3 +Terminal handling +.IP \fBtty.c\fP 17 +the terminal handler proper; both 4.1BSD and version 7 terminal +interfaces have been merged into a single set of routines which +are selected as line disciplines; a bug which caused new line +delays past column 127 to be calculated incorrectly has been +fixed; the high water marks for terminals running in tandem mode +at 19.2 or 38.4 kilobaud have been upped +.IP \fBtty_bk.c\fP 17 +the old Berknet line discipline (defunct) +.IP \fBtty_conf.c\fP 17 +initialized data structures related to terminal handling; +.IP \fBtty_pty.c\fP 17 +support for pseudo-terminals; actually two device drivers in +one; additions over 4.1BSD pseudo-terminals include a simple +``packet protocol'' used to support flow-control and output +flushing on interrupt, as well as a ``transparent'' mode +used in programs such as emacs +.IP \fBtty_subr.c\fP 17 +c-list support routines +.IP \fBtty_tb.c\fP 17 +two line disciplines for supporting RS232 interfaces to +Genisco and Hitachi tablets +.IP \fBtty_tty.c\fP 17 +trivial support routines for ``/dev/tty'' +.NH 3 +File system support +.IP \fBufs_alloc.c\fP 17 +code which handles allocation and deallocation of file +system related resources: disk blocks, on-disk inodes, etc. +.IP \fBufs_bio.c\fP 17 +block i/o support; the buffer cache proper; see description +of buf.h and ``A Fast File System for UNIX'' for information +.IP \fBufs_bmap.c\fP 17 +code which handles logical file system to logical disk block +number mapping; understands structure of indirect blocks and files +with holes; handles automatic extension of files on write +.IP \fBufs_dsort.c\fP 17 +sort routine implementing prioritized seek sort algorithm +for disk i/o operations +.IP \fBufs_fio.c\fP 17 +code handling file system specific issues of access +control and protection +.IP \fBufs_inode.c\fP 17 +inode management routines; in-core inodes are now hashed +and cached; inode synchronization has been revamped since +4.1BSD to eliminate race conditions present in 4.1 +.IP \fBufs_mount.c\fP 17 +code related to demountable file systems +.IP \fBufs_nami.c\fP 17 +the \fInamei\fP routine (and related support routines) \- the +routine that maps pathnames to inode numbers +.IP \fBufs_subr.c\fP 17 +miscellaneous subroutines: this code is shared with certain +user programs such as \fIfsck\fP\|(8); for a good time +look at the \fIbufstats\fP routine in this file +.IP \fBufs_syscalls.c\fP 17 +file system related system calls, everything from \fIopen\fP +to \fIunlink\fP; many new system calls are found here: +\fIrename\fP, \fImkdir\fP, \fIrmdir\fP, \fItruncate\fP, etc. +.IP \fBufs_tables.c\fP 17 +static tables used in block and fragment accounting; +this file is shared with user programs such as \fIfsck\fP\|(8) +.IP \fBufs_xxx.c\fP 17 +miscellaneous routines and 4.1BSD compatibility code; all of +the code which still understands the old inode format is in here +.NH 3 +Interprocess communication +.IP \fBuipc_domain.c\fP 17 +code implementing the ``communication domain'' concept; +this file must be augmented to incorporate new domains +.IP \fBuipc_mbuf.c\fP 17 +memory management routines for the ipc and network facilities; +refer to the document ``4.2BSD Networking Implementation Notes'' +for a detailed description of the routines in this file +.IP \fBuipc_pipe.c\fP 17 +leftover code for connecting two sockets into a pipe; actually +a special case of the code for the \fIsocketpair\fP system call +.IP \fBuipc_proto.c\fP 17 +UNIX ipc communication domain configuration definitions; contains +UNIX domain data structure initialization +.IP \fBuipc_socket.c\fP 17 +top level socket support routines; these routines handle the +interface to the protocol request routines, move data between +user address space and socket data queues, understand the +majority of the logic in process synchronization as it relates +to the ipc facilities +.IP \fBuipc_socket2.c\fP 17 +lower level socket support routines; provide nitty gritty bit +twiddling of socket data structures; manage placement of data on +socket data queues +.IP \fBuipc_syscalls.c\fP 17 +user interface code to ipc system calls: \fIsocket\fP, \fIbind\fP, +\fIconnect\fP, \fIaccept\fP, etc.; concerned exclusively +with system call argument passing and validation +.IP \fBuipc_usrreq.c\fP 17 +UNIX ipc domain support; user request routine and supporting +utility routines +.NH 3 +Virtual memory support +.PP +The code in the virtual memory subsystem has changed very little +from 4.1BSD; changes made in these files were either to gain +portability, handle the new swap space configuration scheme, +or fix bugs. +.IP \fBvm_drum.c\fP 17 +code for the management of disk space used in paging and swapping +.IP \fBvm_mem.c\fP 17 +management of physical memory; the ``core map'' +is implemented here as well as the routines which lock down +pages for physical i/o (the latter will have to change when the +memory management facilities are modified to support sharing of +pages); a sign extension bug on block numbers extracted from +the core map has been fixed (this caused the system to crash +with certain disk partition layouts on RA81 disks) +.IP \fBvm_mon.c\fP 17 +support for virtual memory monitoring; code in this file +is included in the system only if the PGINPROF and/or TRACE +options are configured +.IP \fBvm_page.c\fP 17 +the code which handles and processes page faults: \fIpagein\fP; +race conditions in accessing pages in transit and requests +to lock pages for raw i/o have been fixed in this code; a +major path through \fIpagein\fP whose sole purpose was to implement +the software simulated reference bit has been ``parallel coded'' +in assembly language (this appears to decrease system time by +at least 5% when a system is paging heavily); \fIpagein\fP now +has a second parameter indicating if the page to be faulted in +should be left locked (this eliminated the need for the +SDLYU flag in the \fIproc\fP structure) +.IP \fBvm_proc.c\fP 17 +mainly code to manage virtual memory allocation during +process creation and destruction (the virtual memory +equivalent of ``passing the buck'' is done here). +.IP \fBvm_pt.c\fP 17 +code for manipulating process page tables; knowledge +of the user area is found here as it relates to the +user address space page tables +.IP \fBvm_sched.c\fP 17 +the code for process 0, the scheduler, lives here; other +routines which monitor and meter virtual memory activity (used +in implementing high level scheduling policies) also are present; +this code has been better parameterized to isolate machine-dependent +heuristics used in the scheduling policies +.IP \fBvm_subr.c\fP 17 +miscellaneous routines: some for manipulating accessability +of virtual memory, others for mapping virtual addresses to +logical segments (text, data, stack) +.IP \fBvm_sw.c\fP 17 +indirect driver for interleaved, multi-controller, paging +area; modified to support interleaved partitions of +different sizes +.IP \fBvm_swap.c\fP 17 +code to handle process related issues of swapping +.IP \fBvm_swp.c\fP 17 +code to handle swap i/o +.IP \fBvm_text.c\fP 17 +code to handle shared text segments \- the ``text'' table diff --git a/doc/misc/kchanges.4.2/3.3.t b/doc/misc/kchanges.4.2/3.3.t new file mode 100644 index 00000000..2395ac69 --- /dev/null +++ b/doc/misc/kchanges.4.2/3.3.t @@ -0,0 +1,27 @@ +.NH 2 +/sys/conf +.PP +This directory contains files used in configuring systems. +The format of configuration files has changed slightly; +it is described completely in a new document +``Building 4.2BSD UNIX Systems with Config''. +Several new files exist for use by the \fIconfig\fP\|(8) +program, and several old files have had their meaning changed +slightly. +.IP \fBLINT\fP 15 +a new configuration file for use in linting kernels +.IP \fBdevices.vax\fP 15 +maps block device names to major device numbers (on the VAX) +.IP \fBfiles\fP 15 +now has only files containing machine-independent code +.IP \fBfiles\fP.\fIxxx\fP 15 +(where \fIxxx\fP is a system name) +optional, \fIxxx\fP-specific \fIfiles\fP files +.IP \fBfiles.vax\fP 15 +new file describing files which contain machine-dependent code +.IP \fBmakefile.vax\fP 15 +makefile template specific to the VAX +.IP \fBparam.c\fP 15 +updated calculations of \fIntext\fP and \fInfile\fP +to reflect network requirements; new quantities +added for disk quotas diff --git a/doc/misc/kchanges.4.2/3.4.t b/doc/misc/kchanges.4.2/3.4.t new file mode 100644 index 00000000..0022b75c --- /dev/null +++ b/doc/misc/kchanges.4.2/3.4.t @@ -0,0 +1,123 @@ +.NH 3 +/sys/vaxuba +.PP +This directory contains UNIBUS device drivers and their +related include files. The latter have moved from /sys/h +in an effort to isolate machine-dependent portions of the +system. The following device drivers were not present in +the 4.1BSD release. +.IP \fBad.c\fP 10 +a driver for the Data Translation A/D converter +.IP \fBik.c\fP 10 +an Ikonas frame buffer graphics interphase; user access to +the device is implemented by mapping the device registers +directly into the virtual address space of a user (the +routines to map memory are included in uba.c only if an +Ikonas is configured in the system) +.IP \fBkgclock.c\fP 10 +a driver for a DL11-W or KL11-W used as an auxiliary +real-time clock source for kernel profiling and/or statistics +gathering; if this device is present, the system will automatically +collect its i/o statistics (and if profiling, pc samples) +off the secondary clock; very useful in kernel profiling as +the second clock source eliminates most of the statistical +anomalies and shows the true time spent in the clock routine +.IP \fBps.c\fP 10 +driver for an Evans and Sutherland Picture System 2 +.IP \fBrl.c\fP 10 +driver for RL11 controller with RL02 cartridge disks; does +not support RL01 disks though it should only require additions +to disk geometry and partition tables +.IP \fBrx.c\fP 10 +driver for RX211 floppy disk controller; provides both block +and character device interfaces; \fIioctl\fP calls support +floppy disk formatting and ``deleted data mark'' sensing and +writing; makes a great paging device +.IP \fBut.c\fP 10 +driver for tape controllers which emulate a TU45 on the +UNIBUS; in particular, the System Industries Model 9700 +triple density tape drive +.IP \fBuu.c\fP 10 +driver for dual UNIBUS TU58 cartridge tape cassettes +accessed through a DL11 serial line; uses assembly language +code in locore.s which provides pseudo-DMA on input +(necessary to avoid data overruns); using this driver +while the system runs multi-user degrades response severely +(developed at Berkeley exclusively to produce distribution TU58 +cassettes) +.PP +In addition to the above device drivers, many drivers present +in 4.1BSD now sport corresponding include files which contain +device register definitions. For example, the DH11 driver +is now broken into three files: dh.c, dhreg.h, and dmreg.h. +.PP +The following drivers have been significantly modified, or +had bugs fixed in them, since the 4.1BSD release: +.IP \fBdh.c\fP 10 +changes to reflect the revised tty data organization +.IP \fBdmf.c\fP 10 +a bug where device register accesses caused unwitting +modification of certain status bits has been fixed; +modem control has been fixed; a remnant of the DH11 +include file which caused incorrect definitions for even/odd +parity has been fixed; +changes to reflect the revised tty data organization +.IP \fBdz.c\fP 10 +now supports the DZ32; +changes to reflect the revised tty data organization +.IP \fBlp.c\fP 10 +now takes a non-zero flags value specified in the configuration +file as the printer width (default is 132 columns); thus, to configure +an 80 column printer, include ``flags 80'' in the device +specification +.IP \fBrk.c\fP 10 +a race condition has been fixed where a seek finishing +on one drive appeared as an i/o transfer completeing on another +(this bug actually was present in all UNIBUS disk drivers); changes +for \fIuio\fP and swap space configuration +.IP \fBtm.c\fP 10 +a typo which made the system crash with multiple slaves on +a single controller has been fixed; an incorrect priority +level change in the watchdog timer routine which caused +the system to crash when a device operation timed out has +been fixed; +changes for \fIuio\fP processing of raw i/o +.IP \fBts.c\fP 10 +changes for \fIuio\fP processing of raw i/o +.IP \fBuba.c\fP 10 +a new support routine for allocating UNIBUS memory for memory-mapped +devices such as the 3Com Ethernet interface; the handling of UNIBUS +resets has been changed, all UNIBUS resources are now reclaimed in +the \fIubareset\fP routine prior to calling individual device driver +reset routines \- this implies driver reset routines should no longer +free up allocated UNIBUS resources; new routines for mapping UNIBUS +memory into the virtual address space of a process have been added +to support the Ikonas device driver; changes to fix the race condition +described above in the RK07 device driver; processes awaiting +UNIBUS map registers now sleep on a different event than those +waiting for buffered data paths +.IP \fBuda.c\fP 10 +the problem with multiplexing buffered data paths on an 11/750 +has been fixed; a bug in the setup of the \fIui_dk\fP field +has been fixed; now properly defines the field indicating the +disk transfer rate; changes for \fIuio\fP processing and +swap space configuration +.IP \fBup.c\fP 10 +now supports ECC correction and bad sector forwarding; significant +changes have been made to make configuration of various disk drives +simple (by probing the holding register and using the resultant +value indicating the number of tracks on the disk); the race condition +described under rk.c has been fixed; references to UNIBUS +map registers are now done with longword instructions so the +device driver does not cause the system to crash when an ECC or +bad sector error occurs on a disk attached to a 730 UNIBUS; the +upSDIST/upRDIST parameters which control the use +of search and seek operations on controllers with multiple drives +have been made drive dependent; a bug whereby the probe routine +would belive certain non-existant drives were present has been fixed; +changes for \fIuio\fP processing and swap space configuration +.IP \fBva.c\fP 10 +has been rewritten to honor the software support for +exclusive access to the UNIBUS so that the device may +coexist on the same UNIBUS with RK07 disk drives; +the driver now works with controllers which have a GO bit diff --git a/doc/misc/kchanges.4.2/3.5.t b/doc/misc/kchanges.4.2/3.5.t new file mode 100644 index 00000000..e8425780 --- /dev/null +++ b/doc/misc/kchanges.4.2/3.5.t @@ -0,0 +1,87 @@ +.NH 3 +/sys/vax +.PP +The following files are new in 4.2BSD: +.IP \fBcrt0.ex\fP 15 +edit script for creating a profiled kernel +.IP \fBframe.h\fP 15 +copied from /usr/include +.IP \fBin_cksum.c\fP 15 +checksum routine for the DARPA Internet protocols +.IP \fBparam.h\fP 15 +machine-dependent portion of /sys/h/param.h +.IP \fBpup_cksum.c\fP 15 +checksum routine for PUP-I protocols +.IP \fBrsp.h\fP 15 +protocol definitions for communicating with a TU58 +.IP \fBsys_machdep.c\fP 15 +machine-dependent portion of the ``sys_*'' files of /sys/sys +.IP \fBufs_machdep.c\fP 15 +machine-dependent portion of the ``ufs_*'' files of /sys/sys +.IP \fBvm_machdep.c\fP 15 +machine-dependent portion of the ``vm_*'' files of /sys/sys +.IP \fBvmparam.h\fP 15 +machine-dependent portion of /sys/h/vmparam.h +.PP +The following files have been modified for 4.2BSD: +.IP \fBLocore.c\fP 15 +includes new definitions for linting the network and ipc code +.IP \fBasm.sed\fP 15 +now massages \fIinsque\fP, \fIremque\fP, and various routines +which do byte swapping into assembly language +.IP \fBautoconf.c\fP 15 +handles MASSBUS drives which come on-line after the initial +autoconfiguration process; sizes and configures swap space +at boot time in addition to calculating the swap area allocation +parameters \fIdmtext\fP, \fIdmmax\fP, and \fIdmmin\fP (which +were manifest constants in 4.1BSD); calculates the disk partition +offset for system dumps at boot time to take into account variable +sized swap areas; now uses the per-driver array +of standard control status register addresses when probing +for devices on the UNIBUS; now allows MASSBUS tapes and disks +to be wildcarded across controllers +.IP \fBconf.c\fP 15 +uses many ``local'' spaces for new and uncommon device drivers +.IP \fBgenassym.c\fP 15 +generates several new definitions for use in locore.s +.IP \fBlocore.s\fP 15 +includes code to vector software interrupts to protocol +processing modules; assembly language assist routines for +the console and UNIBUS TU58 cassette drives; a new routine, +\fIFastreclaim\fP is a fast coding of a major path through +the \fIpagein\fP routine; copyin and copyout +now handle greater than 64Kbyte data copies and return EFAULT +on failure; understands the new signal trampoline code; now contains +code for draining terminal multiplexor silos at clock time; +a bug where a the translation buffer was sometimes being improperly +flushed during a \fIresume\fP operation has been fixed +.IP \fBmachdep.c\fP 15 +a bug which caused memory errors to not be reported on 11/750's +has been fixed; has new code for handling the new signals; +recovers from translation buffer parity fault +machine checks apparently caused by substandard memory chips +used in many 11/750's; includes optional code to pinpoint +bad memory chips on Trendata memory boards; the machine check routine +now calls the \fImemerr\fP routine to print out +the memory controller status registers in case the fault +occurred because of a memory error +.IP \fBmem.c\fP 15 +now has correct definitions to enable correctable +memory error reporting on 11/750's: DEC documentation +incorrectly specifies use of the ICRD bit +.IP \fBpcb.h\fP 15 +has changes related to the new signal trampoline code +.IP \fBswapgeneric.c\fP 15 +supports more devices which can be used as a generic +root device; interacts with the new swap configuration +code to size the swap area properly when running a +generic system; understands the special ``swap on root'' +device syntax used when installing the system +.IP \fBtrap.c\fP 15 +can be compiled with a SYSCALLTRACE define to allow system +calls to be traced when the variable \fIsyscalltrace\fP is +non-zero; +.IP \fBtu.c\fP 15 +includes (limited) support for the TU58 console cassette on the 11/750, +sufficient for use in single-user mode; supports the use of the MRSP ROM +on the 11/750. diff --git a/doc/misc/kchanges.4.2/3.6.t b/doc/misc/kchanges.4.2/3.6.t new file mode 100644 index 00000000..b273d9f2 --- /dev/null +++ b/doc/misc/kchanges.4.2/3.6.t @@ -0,0 +1,24 @@ +.NH 3 +/sys/vaxmba +.PP +The following bug fixes and modifications have +been applied to the MASSBUS device drivers: +.IP \fBhp.c\fP 10 +a large number of disk drives attached to second vendor disk +controllers are now automatically +recognized at boot time by probing the holding register and +using disk geometry information to decide what kind of drive +is present; the hpSDIST/hpRDIST parameters that control seek +and search operations on controllers with multiple drives have +been made a per-drive parameter; a bug where the sector number +reported on a hard error was off by one has been fixed; the +error recovery code now searches the bad sector table when a +header CRC error occurs; the error recovery code now +handles bad sectors on tracks which also have skip sectors; +a bug in the handling of ECC errors has been fixed; many +separate driver data structures have been consolidated into +the software carrier structure; +the driver handles the ML-11 solid-state disk +.IP \fBmba.c\fP 10 +now autoconfigures MASSBUS tapes and disks which ``come on-line'' +after the initial boot diff --git a/doc/misc/kchanges.4.2/4.t b/doc/misc/kchanges.4.2/4.t new file mode 100644 index 00000000..bad07d39 --- /dev/null +++ b/doc/misc/kchanges.4.2/4.t @@ -0,0 +1,72 @@ +.NH +Standalone support +.PP +This section describes changes made to the standalone +i/o facilities and the new methods used in system bootstrapping. +.NH 2 +Disk formatting +.PP +A new disk formatting program has +been developed for use with non-DEC UNIBUS and MASSBUS disk controllers. +The \fIformat\fP\|(8V) program has been tested mainly with +disk drives attached to Emulex MASSBUS and UNIBUS disk +controllers, but should operate with any controller which +handles bad sector forwarding in an identical fashion to +DEC RM03/RM05 or RM80 (but not RP06) disk controllers. +The program runs standalone formatting +disk headers and creating a bad sector table in the DEC +standard 144 format. +.NH 2 +Standalone i/o library +.LP +Changes to support more +complex standalone i/o applications as well as changes +for the new file system +organization, have resulted in significant revisions to the +standalone i/o library. Device drivers now support a new +entry point for \fIioctl\fP requests and library routines +now return error codes a la the UNIX system calls. +In addition, standalone i/o library routines now make +many more internal consistency +checks to verify data structures have not been corrupted by +faulty device drivers and that i/o errors have not +occurred when reading critical file system information. +In conjunction with the new disk formatter, +the \fIup\fP and \fIhp\fP standalone +drivers have been rewritten to support ECC correction and +bad sector handling. These drivers are used in bootstrapping +from the console media on 11/780's and 11/730's thereby +eliminating the requirement for error free root +partitions on disks attached to \fIhp\fP and \fIup\fP controllers. +Many bugs in the standalone tape drivers have been fixed. +.NH 2 +System bootstrapping +.PP +On 11/780's and 11/730's, the +console device is still used to load the ``boot'' program. +This in turn loads the system image from the root file +system. +.PP +The method by which the system bootstraps on 11/750's +is different in 4.2BSD. The system is still bootstrapped +from disk using a boot block in sector 0 of the root file +system partition, but now this boot block simply reads +in the next 7.5 kilobytes. The 7.5 kilobyte program is +a version of the ``/boot'' program loaded only with the +device driver required to read the ``/boot'' program from +the root file system. The ``/boot'' program then reads +in the system image, as done on 11/780's and 11/730's. +.PP +The additional level of bootstrap code was done to simplify +the sector 0 boot programs and minimize the total amount +of assembly language code which had to be maintained. +It was also expected that 7.5 kilobytes would be sufficient +to allow the new \fIhp\fP and \fIup\fP standalone drivers +which support ECC correction and bad sector handling to be +used. Unfortunately, the standalone system has not yet +been trimmed down to allow the second level boot programs, +loaded with the new drivers, to fit in the space provided. +Sites which have Winchester disk drives with bad +sectors in the root file system partition and which require +this support should be able to trim the size of the second +level boot program to make it fit. diff --git a/doc/misc/kernmalloc/Makefile b/doc/misc/kernmalloc/Makefile new file mode 100644 index 00000000..5f5462a8 --- /dev/null +++ b/doc/misc/kernmalloc/Makefile @@ -0,0 +1,32 @@ +# +# Copyright (c) 1988 Regents of the University of California. +# All rights reserved. The Berkeley software License Agreement +# specifies the terms and conditions for redistribution. +# +# @(#)Makefile 1.2 (Berkeley) 4/22/88 +# +SRCS= kernmalloc.t appendix.t +FIGS= alloc.fig usage.tbl +MACROS= -ms +PRINTER=lz +SOELIM= soelim +TBL= dtbl -P${PRINTER} +EQN= deqn -P${PRINTER} +PIC= pic -P${PRINTER} +GRIND= vgrind -f +TROFF= rsh vangogh ditroff -P${PRINTER} ${MACROS} + +print: paper.${PRINTER} + lpr -P${PRINTER} -n paper.${PRINTER} + +paper.${PRINTER}: ${SRCS} ${FIGS} + ${SOELIM} ${SRCS} | ${TBL} | ${PIC} | ${EQN} | ${GRIND} | \ + ${TROFF} -t - >paper.${PRINTER} + +clean: + rm -f paper.${PRINTER} paper.[PT]* *.spell errs Errs make.out + +spell: ${SRCS} + @for i in ${SRCS}; do \ + echo $$i; spell $$i | sort | comm -23 - spell.ok > $$i.spell; \ + done diff --git a/doc/misc/kernmalloc/alloc.fig b/doc/misc/kernmalloc/alloc.fig new file mode 100644 index 00000000..cf040247 --- /dev/null +++ b/doc/misc/kernmalloc/alloc.fig @@ -0,0 +1,83 @@ +.\" @(#)alloc.fig 1.1 (Copyright 1988 M. K. McKusick) 88/04/22 +.PS +scale=100 +define m0 | +[ box invis ht 16 wid 32 with .sw at 0,0 +line from 4,12 to 4,4 +line from 8,12 to 8,4 +line from 12,12 to 12,4 +line from 16,12 to 16,4 +line from 20,12 to 20,4 +line from 24,12 to 24,4 +line from 28,12 to 28,4 +line from 0,16 to 0,0 +line from 0,8 to 32,8 +] | + +define m1 | +[ box invis ht 16 wid 32 with .sw at 0,0 +line from 8,12 to 8,4 +line from 16,12 to 16,4 +line from 24,12 to 24,4 +line from 0,8 to 32,8 +line from 0,16 to 0,0 +] | + +define m2 | +[ box invis ht 16 wid 32 with .sw at 0,0 +line from 0,8 to 32,8 +line from 0,16 to 0,0 +] | + +define m3 | +[ box invis ht 16 wid 31 with .sw at 0,0 +line from 15,12 to 15,4 +line from 0,8 to 31,8 +line from 0,16 to 0,0 +] | + +box invis ht 212 wid 580 with .sw at 0,0 +"\f1\s10\&kernel memory pages\f1\s0" at 168,204 +"\f1\s10\&Legend:\f1\s0" at 36,144 +"\f1\s10\&cont \- continuation of previous page\f1\s0" at 28,112 ljust +"\f1\s10\&free \- unused page\f1\s0" at 28,128 ljust +"\f1\s10\&Usage:\f1\s0" at 34,87 +"\f1\s10\&memsize(addr)\f1\s0" at 36,71 ljust +"\f1\s10\&char *addr;\f1\s0" at 66,56 ljust +"\f1\s10\&{\f1\s0" at 36,43 ljust +"\f1\s10\&return(kmemsizes[(addr \- kmembase) \- \s-1PAGESIZE\s+1]);\f1" at 66,29 ljust +"\f1\s10\&}\f1\s0" at 36,8 ljust +line from 548,192 to 548,176 +line from 548,184 to 580,184 dotted +"\f1\s10\&1024,\f1\s0" at 116,168 +"\f1\s10\&256,\f1\s0" at 148,168 +"\f1\s10\&512,\f1\s0" at 180,168 +"\f1\s10\&3072,\f1\s0" at 212,168 +"\f1\s10\&cont,\f1\s0" at 276,168 +"\f1\s10\&cont,\f1\s0" at 244,168 +"\f1\s10\&128,\f1\s0" at 308,168 +"\f1\s10\&128,\f1\s0" at 340,168 +"\f1\s10\&free,\f1\s0" at 372,168 +"\f1\s10\&cont,\f1\s0" at 404,168 +"\f1\s10\&128,\f1\s0" at 436,168 +"\f1\s10\&1024,\f1\s0" at 468,168 +"\f1\s10\&free,\f1\s0" at 500,168 +"\f1\s10\&cont,\f1\s0" at 532,168 +"\f1\s10\&cont,\f1\s0" at 564,168 +m2 with .nw at 100,192 +m1 with .nw at 132,192 +m3 with .nw at 164,192 +m2 with .nw at 196,192 +m2 with .nw at 228,192 +m2 with .nw at 260,192 +m0 with .nw at 292,192 +m0 with .nw at 324,192 +m2 with .nw at 356,192 +m2 with .nw at 388,192 +m0 with .nw at 420,192 +m2 with .nw at 452,192 +m2 with .nw at 484,192 +m2 with .nw at 516,192 +"\f1\s10\&kmemsizes[] = {\f1\s0" at 100,168 rjust +"\f1\s10\&char *kmembase\f1\s0" at 97,184 rjust +.PE diff --git a/doc/misc/kernmalloc/appendix.t b/doc/misc/kernmalloc/appendix.t new file mode 100644 index 00000000..04b32250 --- /dev/null +++ b/doc/misc/kernmalloc/appendix.t @@ -0,0 +1,105 @@ +.\" @(#)appendix.t 1.2 (Copyright 1988 M. K. McKusick) 88/04/22 +.bp +.H 1 "Appendix A - Implementation Details" +.LP +.nf +.vS +/* + * Constants for setting the parameters of the kernel memory allocator. + * + * 2 ** MINBUCKET is the smallest unit of memory that will be + * allocated. It must be at least large enough to hold a pointer. + * + * Units of memory less or equal to MAXALLOCSAVE will permanently + * allocate physical memory; requests for these size pieces of memory + * are quite fast. Allocations greater than MAXALLOCSAVE must + * always allocate and free physical memory; requests for these size + * allocations should be done infrequently as they will be slow. + * Constraints: CLBYTES <= MAXALLOCSAVE <= 2 ** (MINBUCKET + 14) + * and MAXALLOCSIZE must be a power of two. + */ +#define MINBUCKET 4 /* 4 => min allocation of 16 bytes */ +#define MAXALLOCSAVE (2 * CLBYTES) + +/* + * Maximum amount of kernel dynamic memory. + * Constraints: must be a multiple of the pagesize. + */ +#define MAXKMEM (1024 * PAGESIZE) + +/* + * Arena for all kernel dynamic memory allocation. + * This arena is known to start on a page boundary. + */ +extern char kmembase[MAXKMEM]; + +/* + * Array of descriptors that describe the contents of each page + */ +struct kmemsizes { + short ks_indx; /* bucket index, size of small allocations */ + u_short ks_pagecnt; /* for large allocations, pages allocated */ +} kmemsizes[MAXKMEM / PAGESIZE]; + +/* + * Set of buckets for each size of memory block that is retained + */ +struct kmembuckets { + caddr_t kb_next; /* list of free blocks */ +} bucket[MINBUCKET + 16]; +.bp +/* + * Macro to convert a size to a bucket index. If the size is constant, + * this macro reduces to a compile time constant. + */ +#define MINALLOCSIZE (1 << MINBUCKET) +#define BUCKETINDX(size) \ + (size) <= (MINALLOCSIZE * 128) \ + ? (size) <= (MINALLOCSIZE * 8) \ + ? (size) <= (MINALLOCSIZE * 2) \ + ? (size) <= (MINALLOCSIZE * 1) \ + ? (MINBUCKET + 0) \ + : (MINBUCKET + 1) \ + : (size) <= (MINALLOCSIZE * 4) \ + ? (MINBUCKET + 2) \ + : (MINBUCKET + 3) \ + : (size) <= (MINALLOCSIZE* 32) \ + ? (size) <= (MINALLOCSIZE * 16) \ + ? (MINBUCKET + 4) \ + : (MINBUCKET + 5) \ + : (size) <= (MINALLOCSIZE * 64) \ + ? (MINBUCKET + 6) \ + : (MINBUCKET + 7) \ + : (size) <= (MINALLOCSIZE * 2048) \ + /* etc ... */ + +/* + * Macro versions for the usual cases of malloc/free + */ +#define MALLOC(space, cast, size, flags) { \ + register struct kmembuckets *kbp = &bucket[BUCKETINDX(size)]; \ + long s = splimp(); \ + if (kbp->kb_next == NULL) { \ + (space) = (cast)malloc(size, flags); \ + } else { \ + (space) = (cast)kbp->kb_next; \ + kbp->kb_next = *(caddr_t *)(space); \ + } \ + splx(s); \ +} + +#define FREE(addr) { \ + register struct kmembuckets *kbp; \ + register struct kmemsizes *ksp = \ + &kmemsizes[((addr) - kmembase) / PAGESIZE]; \ + long s = splimp(); \ + if (1 << ksp->ks_indx > MAXALLOCSAVE) { \ + free(addr); \ + } else { \ + kbp = &bucket[ksp->ks_indx]; \ + *(caddr_t *)(addr) = kbp->kb_next; \ + kbp->kb_next = (caddr_t)(addr); \ + } \ + splx(s); \ +} +.vE diff --git a/doc/misc/kernmalloc/kernmalloc.t b/doc/misc/kernmalloc/kernmalloc.t new file mode 100644 index 00000000..0a2bc401 --- /dev/null +++ b/doc/misc/kernmalloc/kernmalloc.t @@ -0,0 +1,602 @@ +.\" @(#)kernmalloc.t 1.7 (Copyright 1988 M. K. McKusick) 88/04/22 +.\" reference a system routine name +.de RN +\fI\\$1\fP\^(\h'1m/24u')\\$2 +.. +.\" reference a header name +.de H +.NH \\$1 +\\$2 +.. +.\" begin figure +.\" .FI "title" +.nr Fn 0 1 +.de FI +.ds Lb Figure \\n+(Fn +.ds Lt \\$1 +.KF +.DS B +.nf +.. +.\" +.\" end figure +.de Fe +.sp .5 +.\" cheat: original indent is stored in \n(OI by .DS B; restore it +.\" then center legend after .DE rereads and centers the block. +\\\\.in \\n(OI +\\\\.ce +\\\\*(Lb. \\\\*(Lt +.sp .5 +.DE +.KE +.if \nd 'ls 2 +.. +.EQ +delim $$ +.EN +.rm CM +.ds CH " +.ds CF "- % - +.nr PO 1.25i +.TL +Design of a General Purpose Memory Allocator for the 4.3BSD UNIX\(dg Kernel +.FS +\(dgUNIX is a registered trademark of AT&T in the US and other countries. +.FE +.AU +Marshall Kirk McKusick +.AU +Michael J. Karels +.AI +Computer Systems Research Group +Computer Science Division +Department of Electrical Engineering and Computer Science +University of California, Berkeley +Berkeley, California 94720 +.AB +The 4.3BSD UNIX kernel uses many memory allocation mechanisms, +each designed for the particular needs of the utilizing subsystem. +This paper describes a general purpose dynamic memory allocator +that can be used by all of the kernel subsystems. +The design of this allocator takes advantage of known memory usage +patterns in the UNIX kernel and a hybrid strategy that is time-efficient +for small allocations and space-efficient for large allocations. +This allocator replaces the multiple memory allocation interfaces +with a single easy-to-program interface, +results in more efficient use of global memory by eliminating +partitioned and specialized memory pools, +and is quick enough that no performance loss is observed +relative to the current implementations. +The paper concludes with a discussion of our experience in using +the new memory allocator, +and directions for future work. +.AE +.LP +.H 1 "Kernel Memory Allocation in 4.3BSD +.PP +The 4.3BSD kernel has at least ten different memory allocators. +Some of them handle large blocks, +some of them handle small chained data structures, +and others include information to describe I/O operations. +Often the allocations are for small pieces of memory that are only +needed for the duration of a single system call. +In a user process such short-term +memory would be allocated on the run-time stack. +Because the kernel has a limited run-time stack, +it is not feasible to allocate even moderate blocks of memory on it. +Consequently, such memory must be allocated through a more dynamic mechanism. +For example, +when the system must translate a pathname, +it must allocate a one kilobye buffer to hold the name. +Other blocks of memory must be more persistent than a single system call +and really have to be allocated from dynamic memory. +Examples include protocol control blocks that remain throughout +the duration of the network connection. +.PP +Demands for dynamic memory allocation in the kernel have increased +as more services have been added. +Each time a new type of memory allocation has been required, +a specialized memory allocation scheme has been written to handle it. +Often the new memory allocation scheme has been built on top +of an older allocator. +For example, the block device subsystem provides a crude form of +memory allocation through the allocation of empty buffers [Thompson78]. +The allocation is slow because of the implied semantics of +finding the oldest buffer, pushing its contents to disk if they are dirty, +and moving physical memory into or out of the buffer to create +the requested size. +To reduce the overhead, a ``new'' memory allocator was built in 4.3BSD +for name translation that allocates a pool of empty buffers. +It keeps them on a free list so they can +be quickly allocated and freed [McKusick85]. +.PP +This memory allocation method has several drawbacks. +First, the new allocator can only handle a limited range of sizes. +Second, it depletes the buffer pool, as it steals memory intended +to buffer disk blocks to other purposes. +Finally, it creates yet another interface of +which the programmer must be aware. +.PP +A generalized memory allocator is needed to reduce the complexity +of writing code inside the kernel. +Rather than providing many semi-specialized ways of allocating memory, +the kernel should provide a single general purpose allocator. +With only a single interface, +programmers do not need to figure +out the most appropriate way to allocate memory. +If a good general purpose allocator is available, +it helps avoid the syndrome of creating yet another special +purpose allocator. +.PP +To ease the task of understanding how to use it, +the memory allocator should have an interface similar to the interface +of the well-known memory allocator provided for +applications programmers through the C library routines +.RN malloc +and +.RN free . +Like the C library interface, +the allocation routine should take a parameter specifying the +size of memory that is needed. +The range of sizes for memory requests should not be constrained. +The free routine should take a pointer to the storage being freed, +and should not require additional information such as the size +of the piece of memory being freed. +.H 1 "Criteria for a Kernel Memory Allocator +.PP +The design specification for a kernel memory allocator is similar to, +but not identical to, +the design criteria for a user level memory allocator. +The first criterion for a memory allocator is that it make good use +of the physical memory. +Good use of memory is measured by the amount of memory needed to hold +a set of allocations at any point in time. +Percentage utilization is expressed as: +.EQ +utilization~=~requested over required +.EN +Here, ``requested'' is the sum of the memory that has been requested +and not yet freed. +``Required'' is the amount of memory that has been +allocated for the pool from which the requests are filled. +An allocator requires more memory than requested because of fragmentation +and a need to have a ready supply of free memory for future requests. +A perfect memory allocator would have a utilization of 100%. +In practice, +having a 50% utilization is considered good [Korn85]. +.PP +Good memory utilization in the kernel is more important than +in user processes. +Because user processes run in virtual memory, +unused parts of their address space can be paged out. +Thus pages in the process address space +that are part of the ``required'' pool that are not +being ``requested'' need not tie up physical memory. +Because the kernel is not paged, +all pages in the ``required'' pool are held by the kernel and +cannot be used for other purposes. +To keep the kernel utilization percentage as high as possible, +it is desirable to release unused memory in the ``required'' pool +rather than to hold it as is typically done with user processes. +Because the kernel can directly manipulate its own page maps, +releasing unused memory is fast; +a user process must do a system call to release memory. +.PP +The most important criterion for a memory allocator is that it be fast. +Because memory allocation is done frequently, +a slow memory allocator will degrade the system performance. +Speed of allocation is more critical when executing in the +kernel than in user code, +because the kernel must allocate many data structure that user +processes can allocate cheaply on their run-time stack. +In addition, the kernel represents the platform on which all user +processes run, +and if it is slow, it will degrade the performance of every process +that is running. +.PP +Another problem with a slow memory allocator is that programmers +of frequently-used kernel interfaces will feel that they +cannot afford to use it as their primary memory allocator. +Instead they will build their own memory allocator on top of the +original by maintaining their own pool of memory blocks. +Multiple allocators reduce the efficiency with which memory is used. +The kernel ends up with many different free lists of memory +instead of a single free list from which all allocation can be drawn. +For example, +consider the case of two subsystems that need memory. +If they have their own free lists, +the amount of memory tied up in the two lists will be the +sum of the greatest amount of memory that each of +the two subsystems has ever used. +If they share a free list, +the amount of memory tied up in the free list may be as low as the +greatest amount of memory that either subsystem used. +As the number of subsystems grows, +the savings from having a single free list grow. +.H 1 "Existing User-level Implementations +.PP +There are many different algorithms and +implementations of user-level memory allocators. +A survey of those available on UNIX systems appeared in [Korn85]. +Nearly all of the memory allocators tested made good use of memory, +though most of them were too slow for use in the kernel. +The fastest memory allocator in the survey by nearly a factor of two +was the memory allocator provided on 4.2BSD originally +written by Chris Kingsley at California Institute of Technology. +Unfortunately, +the 4.2BSD memory allocator also wasted twice as much memory +as its nearest competitor in the survey. +.PP +The 4.2BSD user-level memory allocator works by maintaining a set of lists +that are ordered by increasing powers of two. +Each list contains a set of memory blocks of its corresponding size. +To fulfill a memory request, +the size of the request is rounded up to the next power of two. +A piece of memory is then removed from the list corresponding +to the specified power of two and returned to the requester. +Thus, a request for a block of memory of size 53 returns +a block from the 64-sized list. +A typical memory allocation requires a roundup calculation +followed by a linked list removal. +Only if the list is empty is a real memory allocation done. +The free operation is also fast; +the block of memory is put back onto the list from which it came. +The correct list is identified by a size indicator stored +immediately preceding the memory block. +.H 1 "Considerations Unique to a Kernel Allocator +.PP +There are several special conditions that arise when writing a +memory allocator for the kernel that do not apply to a user process +memory allocator. +First, the maximum memory allocation can be determined at +the time that the machine is booted. +This number is never more than the amount of physical memory on the machine, +and is typically much less since a machine with all its +memory dedicated to the operating system is uninteresting to use. +Thus, the kernel can statically allocate a set of data structures +to manage its dynamically allocated memory. +These data structures never need to be +expanded to accommodate memory requests; +yet, if properly designed, they need not be large. +For a user process, the maximum amount of memory that may be allocated +is a function of the maximum size of its virtual memory. +Although it could allocate static data structures to manage +its entire virtual memory, +even if they were efficiently encoded they would potentially be huge. +The other alternative is to allocate data structures as they are needed. +However, that adds extra complications such as new +failure modes if it cannot allocate space for additional +structures and additional mechanisms to link them all together. +.PP +Another special condition of the kernel memory allocator is that it +can control its own address space. +Unlike user processes that can only grow and shrink their heap at one end, +the kernel can keep an arena of kernel addresses and allocate +pieces from that arena which it then populates with physical memory. +The effect is much the same as a user process that has parts of +its address space paged out when they are not in use, +except that the kernel can explicitly control the set of pages +allocated to its address space. +The result is that the ``working set'' of pages in use by the +kernel exactly corresponds to the set of pages that it is really using. +.FI "One day memory usage on a Berkeley time-sharing machine" +.so usage.tbl +.Fe +.PP +A final special condition that applies to the kernel is that +all of the different uses of dynamic memory are known in advance. +Each one of these uses of dynamic memory can be assigned a type. +For each type of dynamic memory that is allocated, +the kernel can provide allocation limits. +One reason given for having separate allocators is that +no single allocator could starve the rest of the kernel of all +its available memory and thus a single runaway +client could not paralyze the system. +By putting limits on each type of memory, +the single general purpose memory allocator can provide the same +protection against memory starvation.\(dg +.FS +\(dgOne might seriously ask the question what good it is if ``only'' +one subsystem within the kernel hangs if it is something like the +network on a diskless workstation. +.FE +.PP +\*(Lb shows the memory usage of the kernel over a one day period +on a general timesharing machine at Berkeley. +The ``In Use'', ``Free'', and ``Mem Use'' fields are instantaneous values; +the ``Requests'' field is the number of allocations since system startup; +the ``High Use'' field is the maximum value of +the ``Mem Use'' field since system startup. +The figure demonstrates that most +allocations are for small objects. +Large allocations occur infrequently, +and are typically for long-lived objects +such as buffers to hold the superblock for +a mounted file system. +Thus, a memory allocator only needs to be +fast for small pieces of memory. +.H 1 "Implementation of the Kernel Memory Allocator +.PP +In reviewing the available memory allocators, +none of their strategies could be used without some modification. +The kernel memory allocator that we ended up with is a hybrid +of the fast memory allocator found in the 4.2BSD C library +and a slower but more-memory-efficient first-fit allocator. +.PP +Small allocations are done using the 4.2BSD power-of-two list strategy; +the typical allocation requires only a computation of +the list to use and the removal of an element if it is available, +so it is quite fast. +Macros are provided to avoid the cost of a subroutine call. +Only if the request cannot be fulfilled from a list is a call +made to the allocator itself. +To ensure that the allocator is always called for large requests, +the lists corresponding to large allocations are always empty. +Appendix A shows the data structures and implementation of the macros. +.PP +Similarly, freeing a block of memory can be done with a macro. +The macro computes the list on which to place the request +and puts it there. +The free routine is called only if the block of memory is +considered to be a large allocation. +Including the cost of blocking out interrupts, +the allocation and freeing macros generate respectively +only nine and sixteen (simple) VAX instructions. +.PP +Because of the inefficiency of power-of-two allocation strategies +for large allocations, +a different strategy is used for allocations larger than two kilobytes. +The selection of two kilobytes is derived from our statistics on +the utilization of memory within the kernel, +that showed that 95 to 98% of allocations are of size one kilobyte or less. +A frequent caller of the memory allocator +(the name translation function) +always requests a one kilobyte block. +Additionally the allocation method for large blocks is based on allocating +pieces of memory in multiples of pages. +Consequently the actual allocation size for requests of size +$2~times~pagesize$ or less are identical.\(dg +.FS +\(dgTo understand why this number is $size 8 {2~times~pagesize}$ one +observes that the power-of-two algorithm yields sizes of 1, 2, 4, 8, \&... +pages while the large block algorithm that allocates in multiples +of pages yields sizes of 1, 2, 3, 4, \&... pages. +Thus for allocations of sizes between one and two pages +both algorithms use two pages; +it is not until allocations of sizes between two and three pages +that a difference emerges where the power-of-two algorithm will use +four pages while the large block algorithm will use three pages. +.FE +In 4.3BSD on the VAX, the (software) page size is one kilobyte, +so two kilobytes is the smallest logical cutoff. +.PP +Large allocations are first rounded up to be a multiple of the page size. +The allocator then uses a first-fit algorithm to find space in the +kernel address arena set aside for dynamic allocations. +Thus a request for a five kilobyte piece of memory will use exactly +five pages of memory rather than eight kilobytes as with +the power-of-two allocation strategy. +When a large piece of memory is freed, +the memory pages are returned to the free memory pool, +and the address space is returned to the kernel address arena +where it is coalesced with adjacent free pieces. +.PP +Another technique to improve both the efficiency of memory utilization +and the speed of allocation +is to cluster same-sized small allocations on a page. +When a list for a power-of-two allocation is empty, +a new page is allocated and divided into pieces of the needed size. +This strategy speeds future allocations as several pieces of memory +become available as a result of the call into the allocator. +.PP +.FI "Calculation of allocation size" +.so alloc.fig +.Fe +Because the size is not specified when a block of memory is freed, +the allocator must keep track of the sizes of the pieces it has handed out. +The 4.2BSD user-level allocator stores the size of each block +in a header just before the allocation. +However, this strategy doubles the memory requirement for allocations that +require a power-of-two-sized block. +Therefore, +instead of storing the size of each piece of memory with the piece itself, +the size information is associated with the memory page. +\*(Lb shows how the kernel determines +the size of a piece of memory that is being freed, +by calculating the page in which it resides, +and looking up the size associated with that page. +Eliminating the cost of the overhead per piece improved utilization +far more than expected. +The reason is that many allocations in the kernel are for blocks of +memory whose size is exactly a power of two. +These requests would be nearly doubled if the user-level strategy were used. +Now they can be accommodated with no wasted memory. +.PP +The allocator can be called both from the top half of the kernel, +which is willing to wait for memory to become available, +and from the interrupt routines in the bottom half of the kernel +that cannot wait for memory to become available. +Clients indicate their willingness (and ability) to wait with a flag +to the allocation routine. +For clients that are willing to wait, +the allocator guarrentees that their request will succeed. +Thus, these clients can need not check the return value from the allocator. +If memory is unavailable and the client cannot wait, +the allocator returns a null pointer. +These clients must be prepared to cope with this +(hopefully infrequent) condition +(usually by giving up and hoping to do better later). +.H 1 "Results of the Implementation +.PP +The new memory allocator was written about a year ago. +Conversion from the old memory allocators to the new allocator +has been going on ever since. +Many of the special purpose allocators have been eliminated. +This list includes +.RN calloc , +.RN wmemall , +and +.RN zmemall . +Many of the special purpose memory allocators built on +top of other allocators have also been eliminated. +For example, the allocator that was built on top of the buffer pool allocator +.RN geteblk +to allocate pathname buffers in +.RN namei +has been eliminated. +Because the typical allocation is so fast, +we have found that none of the special purpose pools are needed. +Indeed, the allocation is about the same as the previous cost of +allocating buffers from the network pool (\fImbuf\fP\^s). +Consequently applications that used to allocate network +buffers for their own uses have been switched over to using +the general purpose allocator without increasing their running time. +.PP +Quantifying the performance of the allocator is difficult because +it is hard to measure the amount of time spent allocating +and freeing memory in the kernel. +The usual approach is to compile a kernel for profiling +and then compare the running time of the routines that +implemented the old abstraction versus those that implement the new one. +The old routines are difficult to quantify because +individual routines were used for more than one purpose. +For example, the +.RN geteblk +routine was used both to allocate one kilobyte memory blocks +and for its intended purpose of providing buffers to the filesystem. +Differentiating these uses is often difficult. +To get a measure of the cost of memory allocation before +putting in our new allocator, +we summed up the running time of all the routines whose +exclusive task was memory allocation. +To this total we added the fraction +of the running time of the multi-purpose routines that could +clearly be identified as memory allocation usage. +This number showed that approximately three percent of +the time spent in the kernel could be accounted to memory allocation. +.PP +The new allocator is difficult to measure +because the usual case of the memory allocator is implemented as a macro. +Thus, its running time is a small fraction of the running time of the +numerous routines in the kernel that use it. +To get a bound on the cost, +we changed the macro always to call the memory allocation routine. +Running in this mode, the memory allocator accounted for six percent +of the time spent in the kernel. +Factoring out the cost of the statistics collection and the +subroutine call overhead for the cases that could +normally be handled by the macro, +we estimate that the allocator would account for +at most four percent of time in the kernel. +These measurements show that the new allocator does not introduce +significant new run-time costs. +.PP +The other major success has been in keeping the size information +on a per-page basis. +This technique allows the most frequently requested sizes to be +allocated without waste. +It also reduces the amount of bookkeeping information associated +with the allocator to four kilobytes of information +per megabyte of memory under management (with a one kilobyte page size). +.H 1 "Future Work +.PP +Our next project is to convert many of the static +kernel tables to be dynamically allocated. +Static tables include the process table, the file table, +and the mount table. +Making these tables dynamic will have two benefits. +First, it will reduce the amount of memory +that must be statically allocated at boot time. +Second, it will eliminate the arbitrary upper limit imposed +by the current static sizing +(although a limit will be retained to constrain runaway clients). +Other researchers have already shown the memory savings +achieved by this conversion [Rodriguez88]. +.PP +Under the current implementation, +memory is never moved from one size list to another. +With the 4.2BSD memory allocator this causes problems, +particularly for large allocations where a process may use +a quarter megabyte piece of memory once, +which is then never available for any other size request. +In our hybrid scheme, +memory can be shuffled between large requests so that large blocks +of memory are never stranded as they are with the 4.2BSD allocator. +However, pages allocated to small requests are allocated once +to a particular size and never changed thereafter. +If a burst of requests came in for a particular size, +that size would acquire a large amount of memory +that would then not be available for other future requests. +.PP +In practice, we do not find that the free lists become too large. +However, we have been investigating ways to handle such problems +if they occur in the future. +Our current investigations involve a routine +that can run as part of the idle loop that would sort the elements +on each of the free lists into order of increasing address. +Since any given page has only one size of elements allocated from it, +the effect of the sorting would be to sort the list into distinct pages. +When all the pieces of a page became free, +the page itself could be released back to the free pool so that +it could be allocated to another purpose. +Although there is no guarantee that all the pieces of a page would ever +be freed, +most allocations are short-lived, lasting only for the duration of +an open file descriptor, an open network connection, or a system call. +As new allocations would be made from the page sorted to +the front of the list, +return of elements from pages at the back would eventually +allow pages later in the list to be freed. +.PP +Two of the traditional UNIX +memory allocators remain in the current system. +The terminal subsystem uses \fIclist\fP\^s (character lists). +That part of the system is expected to undergo major revision within +the the next year or so, and it will probably be changed to use +\fImbuf\fP\^s as it is merged into the network system. +The other major allocator that remains is +.RN getblk , +the routine that manages the filesystem buffer pool memory +and associated control information. +Only the filesystem uses +.RN getblk +in the current system; +it manages the constant-sized buffer pool. +We plan to merge the filesystem buffer cache into the virtual memory system's +page cache in the future. +This change will allow the size of the buffer pool to be changed +according to memory load, +but will require a policy for balancing memory needs +with filesystem cache performance. +.H 1 "Acknowledgments +.PP +In the spirit of community support, +we have made various versions of our allocator available to our test sites. +They have been busily burning it in and giving +us feedback on their experiences. +We acknowledge their invaluable input. +The feedback from the Usenix program committee on the initial draft of +our paper suggested numerous important improvements. +.H 1 "References +.LP +.IP Korn85 \w'Rodriguez88\0\0'u +David Korn, Kiem-Phong Vo, +``In Search of a Better Malloc'' +\fIProceedings of the Portland Usenix Conference\fP, +pp 489-506, June 1985. +.IP McKusick85 +M. McKusick, M. Karels, S. Leffler, +``Performance Improvements and Functional Enhancements in 4.3BSD'' +\fIProceedings of the Portland Usenix Conference\fP, +pp 519-531, June 1985. +.IP Rodriguez88 +Robert Rodriguez, Matt Koehler, Larry Palmer, Ricky Palmer, +``A Dynamic UNIX Operating System'' +\fIProceedings of the San Francisco Usenix Conference\fP, +June 1988. +.IP Thompson78 +Ken Thompson, +``UNIX Implementation'' +\fIBell System Technical Journal\fP, volume 57, number 6, +pp 1931-1946, 1978. diff --git a/doc/misc/kernmalloc/usage.tbl b/doc/misc/kernmalloc/usage.tbl new file mode 100644 index 00000000..b690e216 --- /dev/null +++ b/doc/misc/kernmalloc/usage.tbl @@ -0,0 +1,43 @@ +.\" @(#)usage.tbl 1.3 (Copyright 1988 M. K. McKusick) 88/04/22 +.TS +box; +c s s s +c c c c +n n n n. +Memory statistics by bucket size += +Size In Use Free Requests +_ +128 329 39 3129219 +256 0 0 0 +512 4 0 16 +1024 17 5 648771 +2048 13 0 13 +2049\-4096 0 0 157 +4097\-8192 2 0 103 +8193\-16384 0 0 0 +16385\-32768 1 0 1 +.TE +.DE +.DS B +.TS +box; +c s s s s +c c c c c +c n n n n. +Memory statistics by type += +Type In Use Mem Use High Use Requests +_ +mbuf 6 1K 17K 3099066 +devbuf 13 53K 53K 13 +socket 37 5K 6K 1275 +pcb 55 7K 8K 1512 +routetbl 229 29K 29K 2424 +fragtbl 0 0K 1K 404 +zombie 3 1K 1K 24538 +namei 0 0K 5K 648754 +ioctlops 0 0K 1K 12 +superblk 24 34K 34K 24 +temp 0 0K 8K 258 +.TE diff --git a/doc/misc/kerntune/0.t b/doc/misc/kerntune/0.t new file mode 100644 index 00000000..eca581b9 --- /dev/null +++ b/doc/misc/kerntune/0.t @@ -0,0 +1,96 @@ +.\" @(#)0.t 1.1 (Copyright 1984 M. K. McKusick) 84/05/21 +.EQ +delim $$ +.EN +.if n .ND +.TL +Using gprof to Tune the 4.2BSD Kernel +.AU +Marshall Kirk McKusick +.AI +Computer Systems Research Group +Computer Science Division +Department of Electrical Engineering and Computer Science +University of California, Berkeley +Berkeley, California 94720 +.AB +This paper describes how the \fIgprof\fP profiler +accounts for the running time of called routines +in the running time of the routines that call them. +It then explains how to configure a profiling kernel on +the 4.2 Berkeley Software Distribution of +.UX +for the VAX\(dd +.FS +\(dd VAX is a trademark of Digital Equipment Corporation. +.FE +and discusses tradeoffs in techniques for collecting +profile data. +\fIGprof\fP identifies problems +that severely affects the overall performance of the kernel. +Once a potential problem areas is identified +benchmark programs are devised to highlight the bottleneck. +These benchmarks verify that the problem exist and provide +a metric against which to validate proposed solutions. +Two caches are added to the kernel to alleviate the bottleneck +and \fIgprof\fP is used to validates their effectiveness. +.AE +.LP +.de PT +.lt \\n(LLu +.pc % +.nr PN \\n% +.tl '\\*(LH'\\*(CH'\\*(RH' +.lt \\n(.lu +.. +.af PN i +.ds LH 4.2BSD Performance +.ds RH Contents +.bp 1 +.if t .ds CF May 21, 1984 +.if t .ds LF +.if t .ds RF McKusick +.ce +.B "TABLE OF CONTENTS" +.LP +.sp 1 +.nf +.B "1. Introduction" +.LP +.sp .5v +.nf +.B "2. The \fIgprof\fP Profiler" +\0.1. Data Presentation" +\0.1.1. The Flat Profile +\0.1.2. The Call Graph Profile +\0.2 Profiling the Kernel +.LP +.sp .5v +.nf +.B "3. Using \fIgprof\fP to Improve Performance +\0.1. Using the Profiler +\0.2. An Example of Tuning +.LP +.sp .5v +.nf +.B "4. Conclusions" +.LP +.sp .5v +.nf +.B Acknowledgements +.LP +.sp .5v +.nf +.B References +.af PN 1 +.bp 1 +.de _d +.if t .ta .6i 2.1i 2.6i +.\" 2.94 went to 2.6, 3.64 to 3.30 +.if n .ta .84i 2.6i 3.30i +.. +.de _f +.if t .ta .5i 1.25i 2.5i +.\" 3.5i went to 3.8i +.if n .ta .7i 1.75i 3.8i +.. diff --git a/doc/misc/kerntune/1.t b/doc/misc/kerntune/1.t new file mode 100644 index 00000000..157d73f7 --- /dev/null +++ b/doc/misc/kerntune/1.t @@ -0,0 +1,15 @@ +.\" @(#)1.t 1.1 (Copyright 1984 M. K. McKusick) 84/05/21 +.ds RH Introduction +.NH 1 +Introduction +.PP +The purpose of this paper is to describe the tools and techniques +that are available for improving the performance of the the kernel. +The primary tool used to measure the kernel is the hierarchical +profiler \fIgprof\fP. +The profiler enables the user to measure the cost of +the abstractions that the kernel provides to the user. +Once the expensive abstractions are identified, +optimizations are postulated to help improve their performance. +These optimizations are each individually +verified to insure that they are producing a measurable improvement. diff --git a/doc/misc/kerntune/2.t b/doc/misc/kerntune/2.t new file mode 100644 index 00000000..e1d86b4e --- /dev/null +++ b/doc/misc/kerntune/2.t @@ -0,0 +1,201 @@ +.\" @(#)2.t 1.2 (Copyright 1984 M. K. McKusick) 87/08/05 +.ds RH The \fIgprof\fP Profiler +.NH 1 +The \fIgprof\fP Profiler +.PP +The purpose of the \fIgprof\fP profiling tool is to +help the user evaluate alternative implementations +of abstractions. +The \fIgprof\fP design takes advantage of the fact that the kernel +though large, is structured and hierarchical. +We provide a profile in which the execution time +for a set of routines that implement an +abstraction is collected and charged +to that abstraction. +The profile can be used to compare and assess the costs of +various implementations [Graham82] [Graham83]. +.NH 2 +Data presentation +.PP +The data is presented to the user in two different formats. +The first presentation simply lists the routines +without regard to the amount of time their descendants use. +The second presentation incorporates the call graph of the +kernel. +.NH 3 +The Flat Profile +.PP +The flat profile consists of a list of all the routines +that are called during execution of the kernel, +with the count of the number of times they are called +and the number of seconds of execution time for which they +are themselves accountable. +The routines are listed in decreasing order of execution time. +A list of the routines that are never called during execution of +the kernel is also available +to verify that nothing important is omitted by +this profiling run. +The flat profile gives a quick overview of the routines that are used, +and shows the routines that are themselves responsible +for large fractions of the execution time. +In practice, +this profile usually shows that no single function +is overwhelmingly responsible for +the total time of the kernel. +Notice that for this profile, +the individual times sum to the total execution time. +.NH 3 +The Call Graph Profile +.PP +Ideally, we would like to print the call graph of the kernel, +but we are limited by the two-dimensional nature of our output +devices. +We cannot assume that a call graph is planar, +and even if it is, that we can print a planar version of it. +Instead, we choose to list each routine, +together with information about +the routines that are its direct parents and children. +This listing presents a window into the call graph. +Based on our experience, +both parent information and child information +is important, +and should be available without searching +through the output. +Figure 1 shows a sample \fIgprof\fP entry. +.KF +.DS L +.TS +box center; +c c c c c l l +c c c c c l l +c c c c c l l +l n n n c l l. + called/total \ \ parents +index %time self descendants called+self name index + called/total \ \ children +_ + 0.20 1.20 4/10 \ \ \s-1CALLER1\s+1 [7] + 0.30 1.80 6/10 \ \ \s-1CALLER2\s+1 [1] +[2] 41.5 0.50 3.00 10+4 \s-1EXAMPLE\s+1 [2] + 1.50 1.00 20/40 \ \ \s-1SUB1\s+1 [4] + 0.00 0.50 1/5 \ \ \s-1SUB2\s+1 [9] + 0.00 0.00 0/5 \ \ \s-1SUB3\s+1 [11] +.TE +.ce +Figure 1. Profile entry for \s-1EXAMPLE\s+1. +.DE +.KE +.PP +The major entries of the call graph profile are the entries from the +flat profile, augmented by the time propagated to each +routine from its descendants. +This profile is sorted by the sum of the time for the routine +itself plus the time inherited from its descendants. +The profile shows which of the higher level routines +spend large portions of the total execution time +in the routines that they call. +For each routine, we show the amount of time passed by each child +to the routine, which includes time for the child itself +and for the descendants of the child +(and thus the descendants of the routine). +We also show the percentage these times represent of the total time +accounted to the child. +Similarly, the parents of each routine are listed, +along with time, +and percentage of total routine time, +propagated to each one. +.PP +Cycles are handled as single entities. +The cycle as a whole is shown as though it were a single routine, +except that members of the cycle are listed in place of the children. +Although the number of calls of each member +from within the cycle are shown, +they do not affect time propagation. +When a child is a member of a cycle, +the time shown is the appropriate fraction of the time +for the whole cycle. +Self-recursive routines have their calls broken +down into calls from the outside and self-recursive calls. +Only the outside calls affect the propagation of time. +.PP +The example shown in Figure 2 is the fragment of a call graph +corresponding to the entry in the call graph profile listing +shown in Figure 1. +.KF +.DS L +.so fig2.pic +.ce +Figure 2. Example call graph fragment. +.DE +.KE +.PP +The entry is for routine \s-1EXAMPLE\s+1, which has +the Caller routines as its parents, +and the Sub routines as its children. +The reader should keep in mind that all information +is given \fIwith respect to \s-1EXAMPLE\s+1\fP. +The index in the first column shows that \s-1EXAMPLE\s+1 +is the second entry in the profile listing. +The \s-1EXAMPLE\s+1 routine is called ten times, four times by \s-1CALLER1\s+1, +and six times by \s-1CALLER2\s+1. +Consequently 40% of \s-1EXAMPLE\s+1's time is propagated to \s-1CALLER1\s+1, +and 60% of \s-1EXAMPLE\s+1's time is propagated to \s-1CALLER2\s+1. +The self and descendant fields of the parents +show the amount of self and descendant time \s-1EXAMPLE\s+1 +propagates to them (but not the time used by +the parents directly). +Note that \s-1EXAMPLE\s+1 calls itself recursively four times. +The routine \s-1EXAMPLE\s+1 calls routine \s-1SUB1\s+1 twenty times, \s-1SUB2\s+1 once, +and never calls \s-1SUB3\s+1. +Since \s-1SUB2\s+1 is called a total of five times, +20% of its self and descendant time is propagated to \s-1EXAMPLE\s+1's +descendant time field. +Because \s-1SUB1\s+1 is a member of \fIcycle 1\fR, +the self and descendant times +and call count fraction +are those for the cycle as a whole. +Since cycle 1 is called a total of forty times +(not counting calls among members of the cycle), +it propagates 50% of the cycle's self and descendant +time to \s-1EXAMPLE\s+1's descendant time field. +Finally each name is followed by an index that shows +where on the listing to find the entry for that routine. +.NH 2 +Profiling the Kernel +.PP +It is simple to build a 4.2BSD kernel that will automatically +collect profiling information as it operates simply by specifying the +.B \-p +option to \fIconfig\fP\|(8) when configuring a kernel. +The program counter sampling can be driven by the system clock, +or by an alternate real time clock. +The latter is highly recommended as use of the system clock results +in statistical anomalies in accounting for +the time spent in the kernel clock routine. +.PP +Once a profiling system has been booted statistic gathering is +handled by \fIkgmon\fP\|(8). +\fIKgmon\fP allows profiling to be started and stopped +and the internal state of the profiling buffers to be dumped. +\fIKgmon\fP can also be used to reset the state of the internal +buffers to allow multiple experiments to be run without +rebooting the machine. +The profiling data can then be processed with \fIgprof\fP\|(1) +to obtain information regarding the system's operation. +.PP +A profiled system is about 5-10% larger in its text space because of +the calls to count the subroutine invocations. +When the system executes, +the profiling data is stored in a buffer that is 1.2 +times the size of the text space. +All the information is summarized in memory, +it is not necessary to have a trace file +being continuously dumped to disk. +The overhead for running a profiled system varies; +under normal load we see anywhere from 5-25% +of the system time spent in the profiling code. +Thus the system is noticeably slower than an unprofiled system, +yet is not so bad that it cannot be used in a production environment. +This is important since it allows us to gather data +in a real environment rather than trying to +devise synthetic work loads. diff --git a/doc/misc/kerntune/3.t b/doc/misc/kerntune/3.t new file mode 100644 index 00000000..6b2a9e66 --- /dev/null +++ b/doc/misc/kerntune/3.t @@ -0,0 +1,257 @@ +.\" @(#)3.t 1.1 (Copyright 1984 M. K. McKusick) 84/05/21 +.ds RH Techniques for Improving Performance +.NH 1 +Techniques for Improving Performance +.PP +This section gives several hints on general optimization techniques. +It then proceeds with an example of how they can be +applied to the 4.2BSD kernel to improve its performance. +.NH 2 +Using the Profiler +.PP +The profiler is a useful tool for improving +a set of routines that implement an abstraction. +It can be helpful in identifying poorly coded routines, +and in evaluating the new algorithms and code that replace them. +Taking full advantage of the profiler +requires a careful examination of the call graph profile, +and a thorough knowledge of the abstractions underlying +the kernel. +.PP +The easiest optimization that can be performed +is a small change +to a control construct or data structure. +An obvious starting point +is to expand a small frequently called routine inline. +The drawback to inline expansion is that the data abstractions +in the kernel may become less parameterized, +hence less clearly defined. +The profiling will also become less useful since the loss of +routines will make its output more granular. +.PP +Further potential for optimization lies in routines that +implement data abstractions whose total execution +time is long. +If the data abstraction function cannot easily be speeded up, +it may be advantageous to cache its results, +and eliminate the need to rerun +it for identical inputs. +These and other ideas for program improvement are discussed in +[Bentley81]. +.PP +This tool is best used in an iterative approach: +profiling the kernel, +eliminating one bottleneck, +then finding some other part of the kernel +that begins to dominate execution time. +.PP +A completely different use of the profiler is to analyze the control +flow of an unfamiliar section of the kernel. +By running an example that exercises the unfamiliar section of the kernel, +and then using \fIgprof\fR, you can get a view of the +control structure of the unfamiliar section. +.NH 2 +An Example of Tuning +.PP +The first step is to come up with a method for generating +profile data. +We prefer to run a profiling system for about a one day +period on one of our general timesharing machines. +While this is not as reproducible as a synthetic workload, +it certainly represents a realistic test. +We have run one day profiles on several +occasions over a three month period. +Despite the long period of time that elapsed +between the test runs the shape of the profiles, +as measured by the number of times each system call +entry point was called, were remarkably similar. +.PP +A second alternative is to write a small benchmark +program to repeated exercise a suspected bottleneck. +While these benchmarks are not useful as a long term profile +they can give quick feedback on whether a hypothesized +improvement is really having an effect. +It is important to realize that the only real assurance +that a change has a beneficial effect is through +long term measurements of general timesharing. +We have numerous examples where a benchmark program +suggests vast improvements while the change +in the long term system performance is negligible, +and conversely examples in which the benchmark program run more slowly, +but the long term system performance improves significantly. +.PP +An investigation of our long term profiling showed that +the single most expensive function performed by the kernel +is path name translation. +We find that our general time sharing systems do about +500,000 name translations per day. +The cost of doing name translation in the original 4.2BSD +is 24.2 milliseconds, +representing 40% of the time processing system calls, +which is 19% of the total cycles in the kernel, +or 11% of all cycles executed on the machine. +The times are shown in Figure 3. +.KF +.DS L +.TS +center box; +l r r. +part time % of kernel +_ +self 14.3 ms/call 11.3% +child 9.9 ms/call 7.9% +_ +total 24.2 ms/call 19.2% +.TE +.ce +Figure 3. Call times for \fInamei\fP. +.DE +.KE +.PP +The system measurements collected showed the +pathname translation routine, \fInamei\fP, +was clearly worth optimizing. +An inspection of \fInamei\fP shows that +it consists of two nested loops. +The outer loop is traversed once per pathname component. +The inner loop performs a linear search through a directory looking +for a particular pathname component. +.PP +Our first idea was to observe that many programs +step through a directory performing an operation on +each entry in turn. +This caused us to modify \fInamei\fP to cache +the directory offset of the last pathname +component looked up by a process. +The cached offset is then used +as the point at which a search in the same directory +begins. Changing directories invalidates the cache, as +does modifying the directory. +For programs that step sequentially through a directory with +$N$ files, search time decreases from $O ( N sup 2 )$ +to $O(N)$. +.PP +The cost of the cache is about 20 lines of code +(about 0.2 kilobytes) +and 16 bytes per process, with the cached data +stored in a process's \fIuser\fP vector. +.PP +As a quick benchmark to verify the effectiveness of the +cache we ran ``ls \-l'' +on a directory containing 600 files. +Before the per-process cache this command +used 22.3 seconds of system time. +After adding the cache the program used the same amount +of user time, but the system time dropped to 3.3 seconds. +.PP +This change prompted our rerunning a profiled system +on a machine containing the new \fInamei\fP. +The results showed that the time in \fInamei\fP +dropped by only 2.6 ms/call and +still accounted for 36% of the system call time, +18% of the kernel, or about 10% of all the machine cycles. +This amounted to a drop in system time from 57% to about 55%. +The results are shown in Figure 4. +.KF +.DS L +.TS +center box; +l r r. +part time % of kernel +_ +self 11.0 ms/call 9.2% +child 10.6 ms/call 8.9% +_ +total 21.6 ms/call 18.1% +.TE +.ce +Figure 4. Call times for \fInamei\fP with per-process cache. +.DE +.KE +.PP +The small performance improvement +was caused by a low cache hit ratio. +Although the cache was 90% effective when hit, +it was only usable on about 25% of the names being translated. +An additional reason for the small improvement was that +although the amount of time spent in \fInamei\fP itself +decreased substantially, +more time was spent in the routines that it called +since each directory had to be accessed twice; +once to search from the middle to the end, +and once to search from the beginning to the middle. +.PP +Most missed names were caused by path name components +other than the last. +Thus Robert Elz introduced a system wide cache of most recent +name translations. +The cache is keyed on a name and the +inode and device number of the directory that contains it. +Associated with each entry is a pointer to the corresponding +entry in the inode table. +This has the effect of short circuiting the outer loop of \fInamei\fP. +For each path name component, +\fInamei\fP first looks in its cache of recent translations +for the needed name. +If it exists, the directory search can be completely eliminated. +If the name is not recognized, +then the per-process cache may still be useful in +reducing the directory search time. +The two cacheing schemes complement each other well. +.PP +The cost of the name cache is about 200 lines of code +(about 1.2 kilobytes) +and 44 bytes per cache entry. +Depending on the size of the system, +about 200 to 1000 entries will normally be configured, +using 10-44 kilobytes of physical memory. +The name cache is resident in memory at all times. +.PP +After adding the system wide name cache we reran ``ls \-l'' +on the same directory. +The user time remained the same, +however the system time rose slightly to 3.7 seconds. +This was not surprising as \fInamei\fP +now had to maintain the cache, +but was never able to make any use of it. +.PP +Another profiled system was created and measurements +were collected over a one day period. These measurements +showed a 6 ms/call decrease in \fInamei\fP, with +\fInamei\fP accounting for only 31% of the system call time, +16% of the time in the kernel, +or about 7% of all the machine cycles. +System time dropped from 55% to about 49%. +The results are shown in Figure 5. +.KF +.DS L +.TS +center box; +l r r. +part time % of kernel +_ +self 9.5 ms/call 9.6% +child 6.1 ms/call 6.1% +_ +total 15.6 ms/call 15.7% +.TE +.ce +Figure 5. Call times for \fInamei\fP with both caches. +.DE +.KE +.PP +Statistics on the performance of both caches show +the large performance improvement is +caused by the high hit ratio. +On the profiled system a 60% hit rate was observed in +the system wide cache. This, coupled with the 25% +hit rate in the per-process offset cache yielded an +effective cache hit rate of 85%. +While the system wide cache reduces both the amount of time in +the routines that \fInamei\fP calls as well as \fInamei\fP itself +(since fewer directories need to be accessed or searched), +it is interesting to note that the actual percentage of system +time spent in \fInamei\fP itself increases even though the +actual time per call decreases. +This is because less total time is being spent in the kernel, +hence a smaller absolute time becomes a larger total percentage. diff --git a/doc/misc/kerntune/4.t b/doc/misc/kerntune/4.t new file mode 100644 index 00000000..d45c02fa --- /dev/null +++ b/doc/misc/kerntune/4.t @@ -0,0 +1,66 @@ +.\" @(#)4.t 1.1 (Copyright 1984 M. K. McKusick) 84/05/21 +.ds RH Conclusions +.NH 1 +Conclusions +.PP +We have created a profiler that aids in the evaluation +of the kernel. +For each routine in the kernel, +the profile shows the extent to which that routine +helps support various abstractions, +and how that routine uses other abstractions. +The profile assesses the cost of routines +at all levels of the kernel decomposition. +The profiler is easily used, +and can be compiled into the kernel. +It adds only five to thirty percent execution overhead to the kernel +being profiled, +produces no additional output while the kernel is running +and allows the kernel to be measured in its real environment. +Kernel profiles can be used to identify bottlenecks in performance. +We have shown how to improve performance +by caching recently calculated name translations. +The combined caches added to the name translation process +reduce the average cost of translating a pathname to an inode by 35%. +These changes reduce the percentage of time spent running +in the system by nearly 9%. +.nr H2 1 +.ds RH Acknowledgements +.SH +\s+2Acknowledgements\s0 +.PP +I would like to thank Robert Elz for sharing his ideas and +his code for cacheing system wide names. +Thanks also to all the users at Berkeley who provided all the +input to generate the kernel profiles. +This work was supported by +the Defense Advance Research Projects Agency (DoD) under +Arpa Order No. 4031 monitored by Naval Electronic System Command under +Contract No. N00039-82-C-0235. +.ds RH References +.nr H2 1 +.sp 2 +.SH +\s+2References\s-2 +.LP +.IP [Bentley81] 20 +Bentley, J. L., +``Writing Efficient Code'', +Department of Computer Science, +Carnegie-Mellon University, +Pittsburgh, Pennsylvania, +CMU-CS-81-116, 1981. +.IP [Graham82] 20 +Graham, S., Kessler, P., McKusick, M., +``gprof: A Call Graph Execution Profiler'', +Proceedings of the SIGPLAN '82 Symposium on Compiler Construction, +Volume 17, Number 6, June 1982. pp 120-126 +.IP [Graham83] 20 +Graham, S., Kessler, P., McKusick, M., +``An Execution Profiler for Modular Programs'' +Software - Practice and Experience, +Volume 13, 1983. pp 671-685 +.IP [Ritchie74] 20 +Ritchie, D. M. and Thompson, K., +``The UNIX Time-Sharing System'', +CACM 17, 7. July 1974. pp 365-375 diff --git a/doc/misc/kerntune/Makefile b/doc/misc/kerntune/Makefile new file mode 100644 index 00000000..c503f327 --- /dev/null +++ b/doc/misc/kerntune/Makefile @@ -0,0 +1,20 @@ +# +# Copyright (c) 1984 Regents of the University of California. +# All rights reserved. The Berkeley software License Agreement +# specifies the terms and conditions for redistribution. +# +# @(#)Makefile 1.2 (Berkeley) 8/5/87 +# +SRCS= 0.t 1.t 2.t 3.t 4.t +PIC= pic ${PRINTER} +TBL= dtbl ${PRINTER} +EQN= deqn ${PRINTER} +TROFF= ditroff ${PRINTER} +PRINTER=-Plz +TYPE= -n + +paper: perf + lpr ${PRINTER} ${TYPE} perf + +perf: ${SRCS} Makefile + soelim ${SRCS} | ${PIC} | ${TBL} | ${EQN} | ${TROFF} -ms -t > perf diff --git a/doc/misc/kerntune/fig2.pic b/doc/misc/kerntune/fig2.pic new file mode 100644 index 00000000..144719a2 --- /dev/null +++ b/doc/misc/kerntune/fig2.pic @@ -0,0 +1,24 @@ +.\" @(#)fig2.pic 1.1 (Copyright 1987 M. K. McKusick) 87/08/05 +.PS +ellipse ht .3i wid .75i "\s-1CALLER1\s+1" +ellipse ht .3i wid .75i "\s-1CALLER2\s+1" at 1st ellipse + (2i,0i) +ellipse ht .3i wid .8i "\s-1EXAMPLE\s+1" at 1st ellipse + (1i,-.5i) +ellipse ht .3i wid .5i "\s-1SUB1\s+1" at 1st ellipse - (0i,1i) +ellipse ht .3i wid .5i "\s-1SUB2\s+1" at 3rd ellipse - (0i,.5i) +ellipse ht .3i wid .5i "\s-1SUB3\s+1" at 2nd ellipse - (0i,1i) +line <- from 1st ellipse up .5i left .5i chop .1875i +line <- from 1st ellipse up .5i right .5i chop .1875i +line <- from 2nd ellipse up .5i left .5i chop .1875i +line <- from 2nd ellipse up .5i right .5i chop .1875i +arrow from 1st ellipse to 3rd ellipse chop +arrow from 2nd ellipse to 3rd ellipse chop +arrow from 3rd ellipse to 4th ellipse chop +arrow from 3rd ellipse to 5th ellipse chop .15i chop .15i +arrow from 3rd ellipse to 6th ellipse chop +arrow from 4th ellipse down .5i left .5i chop .1875i +arrow from 4th ellipse down .5i right .5i chop .1875i +arrow from 5th ellipse down .5i left .5i chop .1875i +arrow from 5th ellipse down .5i right .5i chop .1875i +arrow from 6th ellipse down .5i left .5i chop .1875i +arrow from 6th ellipse down .5i right .5i chop .1875i +.PE diff --git a/doc/misc/px/fig1.1.n b/doc/misc/px/fig1.1.n new file mode 100644 index 00000000..fe92777b --- /dev/null +++ b/doc/misc/px/fig1.1.n @@ -0,0 +1,38 @@ +.KF +.TS +center; +c l +l l +_ l +| l | +| cw(18) | aw(28) +| _ | l +| c | a. +Base of stack frame + + + +Block mark Positive offsets +.sp + \(<- Display entry points here +.sp +Local +variables +.sp +_ Negative offsets +Temporary +expression +space +.sp +.T& +| _ | l +c l. + +.sp +Top of stack frame +.TE +.sp +.ce +Figure 1.1 \- Structure of stack frame +.sp +.KE diff --git a/doc/misc/px/fig1.2.n b/doc/misc/px/fig1.2.n new file mode 100644 index 00000000..bc27092c --- /dev/null +++ b/doc/misc/px/fig1.2.n @@ -0,0 +1,35 @@ +.KF +.TS +center; +l l +| cw(22n) | aw(20n). +_ \& + Created by \s-2CALL\s0 +Saved lino +.sp +Saved lc +.sp +Saved dp +.sp +_ \& + Created by \s-2BEG\s0 +Saved dp contents +.sp +Pointer to current +entry line and +section name +.sp +Current file name +and buffer +.sp +Top of stack reference +.sp +.T& +| _ | l. + +.TE +.sp +.ce +Figure 1.2 \- Block mark structure +.sp +.KE diff --git a/doc/misc/px/fig1.3.n b/doc/misc/px/fig1.3.n new file mode 100644 index 00000000..958d745f --- /dev/null +++ b/doc/misc/px/fig1.3.n @@ -0,0 +1,27 @@ +.TS +center, allbox; +lw(20). +T{ +.nf +.ce 1000 +Space for +value returned +from f +.ce 0 +.fi +T} +T{ +.ce +Value of a +T} +T{ +.sp +.ce +Block Mark +.sp +T} +.TE +.sp .1i +.ce +Figure 1.3 \- Stack structure on function call `f(a)' +.sp .1i diff --git a/doc/misc/px/fig2.3.n b/doc/misc/px/fig2.3.n new file mode 100644 index 00000000..439a3543 --- /dev/null +++ b/doc/misc/px/fig2.3.n @@ -0,0 +1,103 @@ +ABS* 2.7 Absolute value +ADD* 2.7 Addition +AND 2.4 Boolean and +ARGC 2.14 Returns number of arguments to current process +ARGV 2.14 Copy specified process argument into char array +AS* 2.5 Assignment operators +ASRT 2.12 Assert \fItrue\fR to continue +ATAN 2.13 Returns arctangent of argument +BEG s,W,w," 2.2,1.8 Write second part of block mark, enter block +BUFF 3.11 Specify buffering for file "output" +CALL l,A 2.2,1.8 Procedure or function call +CARD s 2.11 Cardinality of set +CASEOP* 2.9 Case statements +CHR* 2.15 Returns integer to ascii mapping of argument +CLCK 2.14 Returns user time of program +CON* v 2.5 Load constant operators +COS 2.13 Returns cos of argument +COUNT w 2.10 Count a statement count point +CTTOT s,w,w 2.11 Construct set +DATE 2.14 Copy date into char array +DEFNAME 3.11 Attach file name for \fBprogram\fR statement files +DISPOSE 2.15 Dispose of a heap allocation +DIV* 2.7 Fixed division +DVD* 2.7 Floating division +END 2.2,1.8 End block execution +EOF 3.10 Returns \fItrue\fR if end of file +EOLN 3.10 Returns \fItrue\fR if end of line on input text file +EXP 2.13 Returns exponential of argument +EXPO 2.13 Returns machine representation of real exponent +FILE 3.9 Push descriptor for active file +FLUSH 3.11 Flush a file +FNIL 3.7 Check file initialized, not eof, synced +FOR* a 2.12 For statements +GET 3.7 Get next record from a file +GOTO l,A 2.2,1.8 Non-local goto statement +HALT 2.2 Produce control flow backtrace +IF a 2.3 Conditional transfer +IN s,w,w 2.11 Set membership +INCT 2.11 Membership in a constructed set +IND* 2.6 Indirection operators +INX* s,w,w 2.6 Subscripting (indexing) operator +ITOD 2.12 Convert integer to real +ITOS 2.12 Convert integer to short integer +LINO s 2.2 Set line number, count statements +LLIMIT 2.14 Set linelimit for output text file +LLV l,W 2.6 Address of operator +LN 2.13 Returns natural log of argument +LRV* l,A 2.5 Right value (load) operators +LV l,w 2.6 Address of operator +MAX s,w 3.8 Maximum of top of stack and \fIw\fR +MESSAGE 3.6 Write to terminal +MIN s 3.8 Minimum of top of stack and \fIs\fR +MOD* 2.7 Modulus +MUL* 2.7 Multiplication +NAM A 3.8 Convert enumerated type value to print format +NEG* 2.7 Negation +NEW s 2.15 Allocate a record on heap, set pointer to it +NIL 2.6 Assert non-nil pointer +NODUMP s,W,w," 2.2 \s-2BEG\s0 main program, suppress dump +NOT 2.4 Boolean not +ODD* 2.15 Returns \fItrue\fR if argument is odd, \fIfalse\fR if even +OFF s 2.5 Offset address, typically used for field reference +OR 2.4 Boolean or +PACK s,w,w,w 2.15 Convert and copy from unpacked to packed +PAGE 3.8 Output a formfeed to a text file +POP s 2.2,1.9 Pop (arguments) off stack +PRED* 2.7 Returns predecessor of argument +PUSH s 2.2,1.9 Clear space (for function result) +PUT 3.8 Output a record to a file +PXPBUF w 2.10 Initialize \fIpxp\fP count buffer +RANDOM 2.13 Returns random number +RANG* v 2.8 Subrange checking +READ* 3.7 Read a record from a file +REL* r 2.3 Relational test yielding Boolean result +REMOVE 3.11 Remove a file +RESET 3.11 Open file for input +REWRITE 3.11 Open file for output +ROUND 2.13 Returns \s-2TRUNC\s0(argument + 0.5) +RV* l,a 2.5 Right value (load) operators +SCLCK 2.14 Returns system time of program +SDUP 2.2 Duplicate top stack word +SEED 2.13 Set random seed, return old seed +SIN 2.13 Returns sin of argument +SQR* 2.7 Squaring +SQRT 2.13 Returns square root of argument +STLIM 2.14 Set program statement limit +STOD 2.12 Convert short integer to real +STOI 2.12 Convert short to long integer +SUB* 2.7 Subtraction +SUCC* 2.7 Returns successor of argument +TIME 2.14 Copy time into char array +TRA a 2.2 Short control transfer (local branching) +TRA4 A 2.2 Long control transfer +TRACNT w,A 2.10 Count a procedure entry +TRUNC 2.13 Returns integer part of argument +UNDEF 2.15 Returns \fIfalse\fR +UNIT* 3.10 Set active file +UNPACK s,w,w,w 2.15 Convert and copy from packed to unpacked +WCLCK 2.14 Returns current time stamp +WRITEC 3.8 Character unformatted write +WRITEF l 3.8 General formatted write +WRITES l 3.8 String unformatted write +WRITLN 3.8 Output a newline to a text file diff --git a/doc/misc/px/fig2.3.raw b/doc/misc/px/fig2.3.raw new file mode 100644 index 00000000..07feddf8 --- /dev/null +++ b/doc/misc/px/fig2.3.raw @@ -0,0 +1,103 @@ +HALT 2.2 Produce control flow backtrace +BEG s,W,w," 2.2,1.8 Write second part of block mark, enter block +END 2.2,1.8 End block execution +CALL l,A 2.2,1.8 Procedure or function call +NODUMP s,W,w," 2.2 \s-2BEG\s0 main program, suppress dump +PUSH s 2.2,1.9 Clear space (for function result) +POP s 2.2,1.9 Pop (arguments) off stack +LINO s 2.2 Set line number, count statements +TRA a 2.2 Short control transfer (local branching) +TRA4 A 2.2 Long control transfer +GOTO l,A 2.2,1.8 Non-local goto statement +IF a 2.3 Conditional transfer +REL* r 2.3 Relational test yielding Boolean result +AND 2.4 Boolean and +OR 2.4 Boolean or +NOT 2.4 Boolean not +LRV* l,A 2.5 Right value (load) operators +RV* l,a 2.5 Right value (load) operators +CON* v 2.5 Load constant operators +AS* 2.5 Assignment operators +OFF s 2.5 Offset address, typically used for field reference +INX* s,w,w 2.6 Subscripting (indexing) operator +NIL 2.6 Assert non-nil pointer +LLV l,W 2.6 Address of operator +LV l,w 2.6 Address of operator +IND* 2.6 Indirection operators +ADD* 2.7 Addition +SUB* 2.7 Subtraction +MUL* 2.7 Multiplication +SQR* 2.7 Squaring +DIV* 2.7 Fixed division +MOD* 2.7 Modulus +ABS* 2.7 Absolute value +NEG* 2.7 Negation +DVD* 2.7 Floating division +RANG* v 2.8 Subrange checking +CASEOP* 2.9 Case statements +FOR* a 2.12 For statements +PXPBUF w 2.10 Initialize \fIpxp\fP count buffer +TRACNT w,A 2.10 Count a procedure entry +COUNT w 2.10 Count a statement count point +CTTOT s,w,w 2.11 Construct set +CARD s 2.11 Cardinality of set +STOI 2.12 Convert short to long integer +STOD 2.12 Convert short integer to real +ITOD 2.12 Convert integer to real +ITOS 2.12 Convert integer to short integer +GET 3.7 Get next record from a file +PUT 3.8 Output a record to a file +MESSAGE 3.6 Write to terminal +FNIL 3.7 Check file initialized, not eof, synced +FLUSH 3.11 Flush a file +BUFF 3.11 Specify buffering for file "output" +EOF 3.10 Returns \fItrue\fR if end of file +EOLN 3.10 Returns \fItrue\fR if end of line on input text file +RESET 3.11 Open file for input +REWRITE 3.11 Open file for output +REMOVE 3.11 Remove a file +UNIT* 3.10 Set active file +READ* 3.7 Read a record from a file +WRITEC 3.8 Character unformatted write +WRITEF l 3.8 General formatted write +WRITES l 3.8 String unformatted write +WRITLN 3.8 Output a newline to a text file +PAGE 3.8 Output a formfeed to a text file +MIN s 3.8 Minimum of top of stack and \fIs\fR +MAX s,w 3.8 Maximum of top of stack and \fIw\fR +NAM A 3.8 Convert enumerated type value to print format +FILE 3.9 Push descriptor for active file +DEFNAME 3.11 Attach file name for \fBprogram\fR statement files +PACK s,w,w,w 2.15 Convert and copy from unpacked to packed +UNPACK s,w,w,w 2.15 Convert and copy from packed to unpacked +LLIMIT 2.14 Set linelimit for output text file +ARGC 2.14 Returns number of arguments to current process +ARGV 2.14 Copy specified process argument into char array +CLCK 2.14 Returns user time of program +SCLCK 2.14 Returns system time of program +WCLCK 2.14 Returns current time stamp +DATE 2.14 Copy date into char array +TIME 2.14 Copy time into char array +SEED 2.13 Set random seed, return old seed +RANDOM 2.13 Returns random number +DISPOSE 2.15 Dispose of a heap allocation +NEW s 2.15 Allocate a record on heap, set pointer to it +EXPO 2.13 Returns machine representation of real exponent +ATAN 2.13 Returns arctangent of argument +EXP 2.13 Returns exponential of argument +LN 2.13 Returns natural log of argument +COS 2.13 Returns cos of argument +SIN 2.13 Returns sin of argument +SQRT 2.13 Returns square root of argument +CHR* 2.15 Returns integer to ascii mapping of argument +ODD* 2.15 Returns \fItrue\fR if argument is odd, \fIfalse\fR if even +PRED* 2.7 Returns predecessor of argument +STLIM 2.14 Set program statement limit +SUCC* 2.7 Returns successor of argument +ROUND 2.13 Returns \s-2TRUNC\s0(argument + 0.5) +TRUNC 2.13 Returns integer part of argument +UNDEF 2.15 Returns \fIfalse\fR +SDUP 2.2 Duplicate top stack word +ASRT 2.12 Assert \fItrue\fR to continue +IN s,w,w 2.11 Set membership +INCT 2.11 Membership in a constructed set diff --git a/doc/misc/px/fig2.4.n b/doc/misc/px/fig2.4.n new file mode 100644 index 00000000..85de6a7d --- /dev/null +++ b/doc/misc/px/fig2.4.n @@ -0,0 +1,24 @@ +.KF +.TS +center, box; +cw(15). +\s-2CASEOP\s0 +_ +No. of cases +_ +.sp +Case +transfer +table +.sp +_ +.sp +Array of case +label values +.sp +.TE +.sp +.ce +Figure 2.4 \- Case data structure +.sp +.KE diff --git a/doc/misc/px/fig3.2.n b/doc/misc/px/fig3.2.n new file mode 100644 index 00000000..78201618 --- /dev/null +++ b/doc/misc/px/fig3.2.n @@ -0,0 +1,23 @@ +.FK +.TS +center, box; +cw(15). +No. of cases +_ +.sp +offsets +of element +names +.sp +_ +.sp +Array of +null terminated +element names +.sp +.TE +.sp +.ce +Figure 3.2 \- Enumerated type conversion structure +.sp +.KE diff --git a/doc/misc/px/fig3.3.n b/doc/misc/px/fig3.3.n new file mode 100644 index 00000000..67af1c87 --- /dev/null +++ b/doc/misc/px/fig3.3.n @@ -0,0 +1,24 @@ +.KF +.TS +center; +l l +l | cw(15) |. + _ +\fIbool\fP: 2 + _ + 6 + _ + 12 + _ + 17 + _ + "false" + _ + "true" + _ +.TE +.sp +.ce +Figure 3.3 \- Boolean type conversion structure +.sp +.KE diff --git a/doc/misc/px/makefile b/doc/misc/px/makefile new file mode 100644 index 00000000..22f6ab4d --- /dev/null +++ b/doc/misc/px/makefile @@ -0,0 +1,13 @@ +TROFF= vtroff -t + +print: trofftxt + vpr -t trofftxt + +troff: + /usr/ucb/soelim pxin?.n | tbl | ${TROFF} + +trofftxt: fig2.3.n + /usr/ucb/soelim pxin?.n | tbl | /usr/ucb/vtroff -t >trofftxt + +fig2.3.n: fig2.3.raw + sort fig2.3.raw >fig2.3.n diff --git a/doc/misc/px/pxin0.n b/doc/misc/px/pxin0.n new file mode 100644 index 00000000..f3c04dec --- /dev/null +++ b/doc/misc/px/pxin0.n @@ -0,0 +1,107 @@ +.if !\n(xx .so tmac.p +.RP +.TL +Berkeley Pascal +PX Implementation Notes +.br +Version 2.0 \- January, 1979 +.AU +William N. Joy\*(Dg +.AU +M. Kirk McKusick\*(Dd +.AI +Computer Science Division +Department of Electrical Engineering and Computer Science +University of California, Berkeley +Berkeley, California 94720 +.AB +.PP +Berkeley Pascal +is designed for interactive instructional use and runs on the +.SM "VAX 11/780" . +The interpreter +.I px +executes the Pascal binaries generated by the Pascal translator +.I pi . +.PP +The +.I +PX Implementation Notes +.R +describe the general organization of +.I px , +detail the various operations of the interpreter, +and describe the file input/output structure. +Conclusions are given on the viability of an interpreter +based approach to language implementation for an instructional environment. +.AE +.if n 'ND +.SH +Introduction +.PP +These +.I +PX Implementation Notes +.R +have been updated from the original +.SM "PDP 11/70" +implementation notes to reflect the interpreter that runs on the +.SM "VAX 11/780" . +These notes consist of four major parts. +The first part outlines the general organization of +.I px . +Section 2 describes the operations (instructions) of the interpreter +while section 3 focuses on input/output related activity. +A final section gives conclusions about the viability of an interpreter +based approach to language implementation for instruction. +.SH +Related Berkeley Pascal documents +.PP +The +.I "PXP Implementation Notes" +give details of the internals of the execution profiler +.I pxp; +parts of the interpreter related to +.I pxp +are discussed in section 2.10. +A paper describing the syntactic error recovery mechanism used in +.I pi +was presented at the ACM Conference on Compiler Construction +in Boulder Colorado in August, 1979. +.SH +Acknowledgements +.PP +This version of +.I px +is a +.SM "PDP 11/70" +to +.SM "VAX 11/780" +opcode mapping of the original +.I px +that was designed and implemented by Ken Thompson, +with extensive modifications and additions +by William Joy +and Charles Haley. +Without their work, this +.UP +system would never have existed. +These notes were first written by William Joy for the +.SM "PDP 11/70" +implementation. +We would also like to thank our faculty advisor Susan L. Graham +for her encouragement, +her helpful comments and suggestions +relating to +.UP +and her excellent editorial assistance. +.FS +\*(dg\ The financial support of the National Science Foundation under grants +MCS74-07644-A03 and MCS78-07291 +and of an \s-2IBM\s0 Graduate Fellowship are gratefully acknowledged. +.FE +.FS +\*(dd\ The financial support of a Howard Hughes Graduate +Fellowship is gratefully acknowledged. +.FE +.bp diff --git a/doc/misc/px/pxin1.n b/doc/misc/px/pxin1.n new file mode 100644 index 00000000..bed352f2 --- /dev/null +++ b/doc/misc/px/pxin1.n @@ -0,0 +1,505 @@ +.if !\n(xx .so tmac.p +.tr _\(ru +.nr H1 0 +.NH +Organization +.PP +Most of +.I px +is written in the +.SM "VAX 11/780" +assembly language, using the +.UX +assembler +.I as. +Portions of +.I px +are also written in the +.UX +systems programming language C. +.I Px +consists of a main procedure that reads in the interpreter code, +a main interpreter loop that transfers successively to various +code segments implementing the abstract machine operations, +built-in procedures and functions, +and several routines that support the implementation of the +Pascal input-output environment. +.PP +The interpreter runs at a fraction of the speed of equivalent +compiled C code, with this fraction varying from 1/5 to 1/15. +The interpreter occupies 18.5K bytes of instruction space, shared among +all processes executing Pascal, and has 4.6K bytes of data space (constants, +error messages, etc.) a copy of which is allocated to each executing process. +.NH 2 +Format of the object file +.PP +.I Px +normally interprets the code left in an object file by a run of the +Pascal translator +.I pi. +The file where the translator puts the object originally, and the most +commonly interpreted file, is called +.I obj. +In order that all persons using +.I px +share a common text image, this executable file is +a small process that coordinates with the interpreter to start +execution. +The interpreter code is placed +at the end of a special ``header'' file and the size of the initialized +data area of this header file is expanded to include this code, +so that during execution it is located at an +easily determined address in its data space. +When executed, the object process creates a +.I pipe , +creates another process by doing a +.I fork , +and arranges that the resulting parent process becomes an instance of +.I px . +The child process then writes the interpreter code through +the pipe that it has to the +interpreter process parent. +When this process is complete, the child exits. +.PP +The real advantage of this approach is that it does not require modifications +to the shell, and that the resultant objects are ``true objects'' not +requiring special treatment. +A simpler mechanism would be to determine the name of the file that was +executed and pass this to the interpreter. +However it is not possible to determine this name +in all cases.\*(Dd +.FS +\*(dd\ For instance, if the +.I pxref +program is placed in the directory +`/usr/bin' +then when the user types +``pxref program.p'' +the first argument to the program, nominally the programs name, is +``pxref.'' +While it would be possible to search in the standard place, +i.e. the current directory, and the system directories +`/bin' +and +`/usr/bin' +for a corresponding object file, +this would be expensive and not guaranteed to succeed. +Several shells exist that allow other directories to be searched +for commands, and there is, +in general, +no way to determine what these directories are. +.FE +.NH 2 +General features of object code +.PP +Pascal object code is relocatable as all addressing references for +control transfers within the code are relative. +The code consists of instructions interspersed with inline data. +All instructions have a length that is an even number of bytes. +No variables are kept in the object code area. +.PP +The first byte of a Pascal interpreter instruction contains an operation +code. +This allows a total of 256 major operation codes, and 232 of these are +in use in the current +.I px. +The second byte of each interpreter instruction is called the +``sub-operation code'', +or more commonly the +.I sub-opcode. +It contains a small integer that may, for example, be used as a +block-structure level for the associated operation. +If the instruction can take a longword constant, +this constant is often packed into the sub-opcode +if it fits into 8 bits and is not zero. +A sub-opcode value of zero specifies that the constant would not +fit and therefore follows in the next word. +This is a space optimization, the value of zero for flagging +the longer case being convenient because it is easy to test. +.PP +Other instruction formats are used. +The branching +instructions take an offset in the following word, +operators that load constants onto the stack +take arbitrarily long inline constant values, +and many operations deal exclusively with data on the +interpreter stack, requiring no inline data. +.NH 2 +Stack structure of the interpreter +.PP +The interpreter emulates a stack-structured Pascal machine. +The ``load'' instructions put values onto the stack, where all +arithmetic operations take place. +The ``store'' instructions take values off the stack +and place them in an address that is also contained on the stack. +The only way to move data or to compute in the machine is with the stack. +.PP +To make the interpreter operations more powerful +and to thereby increase the interpreter speed, +the arithmetic operations in the interpreter are ``typed''. +That is, length conversion of arithmetic values occurs when they are +used in an operation. +This eliminates interpreter cycles for length conversion +and the associated overhead. +For example, when adding an integer that fits in one byte to one that +requires four bytes to store, no ``conversion'' operators are required. +The one byte integer is loaded onto the stack, followed by the four +byte integer, and then an adding operator is used that has, implicit +in its definition, the sizes of the arguments. +.NH 2 +Data types in the interpreter +.PP +The interpreter deals with several different fundamental data types. +In the memory of the machine, 1, 2, and 4 byte integers are supported, +with only 2 and 4 byte integers being present on the stack. +The interpreter always converts to 4 byte integers when there is a possibility +of overflowing the shorter formats. +This corresponds to the Pascal language definition of overflow in +arithmetic operations that requires that the result be correct +if all partial values lie within the bounds of the base integer type: +4 byte integer values. +.PP +Character constants are treated similarly to 1 byte integers for +most purposes, as are Boolean values. +All enumerated types are treated as integer values of +an appropriate length, usually 1 byte. +The interpreter also has real numbers, occupying 8 bytes of storage, +and sets and strings of varying length. +The appropriate operations are included for each data type, such as +set union and intersection and an operation to write a string. +.PP +No special +.B packed +data formats are supported by the interpreter. +The smallest unit of storage occupied by any variable is one byte. +The built-ins +.I pack +and +.I unpack +thus degenerate to simple memory to memory transfers with +no special processing. +.NH 2 +Runtime environment +.PP +The interpreter runtime environment uses a stack data area and a heap +data area, that are kept at opposite ends of memory +and grow towards each other. +All global variables and variables local to procedures and functions +are kept in the stack area. +Dynamically allocated variables and buffers for input/output are +allocated in the heap. +.PP +The addressing of block structured variables is done by using +a fixed display +that contains the address of its stack frame +for each statically active block.\*(Dg +.FS +\*(dg\ Here ``block'' is being used to mean any +.I procedure , +.I function +or the main program. +.FE +This display is referenced by instructions that load and store +variables and maintained by the operations for +block entry and exit, and for non-local +.B goto +statements. +.NH 2 +Dp, lc, loop +.PP +Three ``global'' variables in the interpreter, in addition to the +``display'', are the +.I dp, +.I lc, +and the +.I loop. +The +.I dp +is a pointer to the display entry for the current block; +the +.I lc +is the abstract machine location counter; +and the +.I loop +is a register that holds the address of the main interpreter +loop so that returning to the loop to fetch the next instruction is +a fast operation. +.NH 2 +The stack frame structure +.PP +Each active block +has a stack frame consisting of three parts: +a block mark, local variables, and temporary storage for partially +evaluated expressions. +The stack in the interpreter grows from the high addresses in memory +to the low addresses, +so that those parts of the stack frame that are ``on the top'' +of the stack have the most negative offsets from the display +entry for the block. +The major parts of the stack frame are represented in Figure 1.1. +.so fig1.1.n +Note that the local variables of each block +have negative offsets from the corresponding display entry, +the ``first'' local variable having offset `\-2'. +.NH 2 +The block mark +.PP +The block mark contains the saved information necessary +to restore the environment when the current block exits. +It consists of two parts. +The first and top-most part is saved by the +.SM CALL +instruction in the interpreter. +This information is not present for the main program +as it is never ``called''. +The second part of the block mark is created by the +.SM BEG +begin block operator that also allocates and clears the +local variable storage. +The format of these blocks is represented in Figure 1.2. +.sp +.so fig1.2.n +.PP +The data saved by the +.SM CALL +operator includes the line number +.I lino +of the point of call, +that is printed if the program execution ends abnormally; +the location counter +.I lc +giving the return address; +and the current display entry address +.I dp +at the time of call. +.PP +The +.SM BEG +begin operator saves the previous display contents at the level +of this block, so that the display can be restored on block exit. +A pointer to the beginning line number and the +name of this block is also saved. +This information is stored in the interpreter object code in-line after the +.SM BEG +operator. +It is used in printing a post-mortem backtrace. +The saved file name and buffer reference are necessary because of +the input/output structure +(this is discussed in detail in +sections 3.3 and 3.4). +The top of stack reference gives the value the stack pointer should +have when there are no expression temporaries on the stack. +It is used for a consistency check in the +.SM LINO +line number operators in the interpreter, that occurs before +each statement executed. +This helps to catch bugs in the interpreter, that often manifest +themselves by leaving the stack non-empty between statements. +.PP +Note that there is no explicit static link here. +Thus to set up the display correctly after a non-local +.B goto +statement one must ``unwind'' +through all the block marks on the stack to rebuild the display. +.NH 2 +Arguments and return values +.PP +A function returns its value into a space reserved by the calling +block. +Arguments to a +.B function +are placed on top of this return area. +For both +.B procedure +and +.B function +calls, arguments are placed at the end of the expression evaluation area +of the caller. +When a +.B function +completes, expression evaluation can continue +after popping the arguments to the +.B function +off the stack, +exactly as if the function value had been ``loaded''. +The arguments to a +.B procedure +are also popped off the stack by the caller +after its execution ends. +.KS +.PP +As a simple example consider the following stack structure +for a call to a function +.I f, +of the form ``f(a)''. +.so fig1.3.n +.KE +.PP +If we suppose that +.I f +returns a +.I real +and that +.I a +is an integer, +the calling sequence for this function would be: +.DS +.TS +lp-2w(8) l. +PUSH \-8 +RV4:\fIl a\fR +CALL:\fIl f\fR +POP 4 +.TE +.DE +.ZP +Here we use the operator +.SM PUSH +to clear space for the return value, +load +.I a +on the stack with a ``right value'' operator, +call the function, +pop off the argument +.I a , +and can then complete evaluation of the containing expression. +The operations used here will be explained in section 2. +.PP +If the function +.I f +were given by +.LS + 10 \*bfunction\fR f(i: integer): real; + 11 \*bbegin\fR + 12 f := i + 13 \*bend\fR; +.LE +then +.I f +would have code sequence: +.DS +.TS +lp-2w(8) l. +BEG:2 0 + 11 + "f" +LV:\fIl\fR 40 +RV4:\fIl\fR 32 +AS48 +END +.TE +.DE +.ZP +Here the +.SM BEG +operator takes 9 bytes of inline data. +The first byte specifies the +length of the function name. +The second longword specifies the +amount of local variable storage, here none. +The succeeding two lines give the line number of the +.B begin +and the name of the block +for error traceback. +The +.SM BEG +operator places a name pointer in the block mark. +The body of the +.B function +first takes an address of the +.B function +result variable +.I f +using the address of operator +.SM LV +.I a . +The next operation in the interpretation of this function is the loading +of the value of +.I i . +.I I +is at the level of the +.B function +.I f , +here symbolically +.I l, +and the first variable in the local variable area. +The +.B function +completes by assigning the 4 byte integer on the stack to the 8 byte +return location, hence the +.SM AS48 +assignment operator, and then uses the +.SM END +operator to exit the current block. +.NH 2 +The main interpreter loop +.PP +The main interpreter loop is simply: +.DS +.mD +iloop: + \fBcaseb\fR (lc)+,$0,$255 + +.DE +.ZP +The main opcode is extracted from the first byte of the instruction +and used to index into the table of opcode interpreter addresses. +Control is then transferred to the specified location. +The sub-opcode may be used to index the display, +as a small constant, +or to specify one of several relational operators. +In the cases where a constant is needed, but it +is not small enough to fit in the byte sub-operator, +a zero is placed there and the constant follows in the next word. +Zero is easily tested for, +as the instruction that fetches the +sub-opcode sets the condition code flags. +A construction like: +.DS +.mD +_OPER: + \fBcvtbl\fR (lc)+,r0 + \fBbneq\fR L1 + \fBcvtwl\fR (lc)+,r0 +L1: ... +.DE +is all that is needed to effect this packing of data. +This technique saves space in the Pascal +.I obj +object code. +.PP +The address of the instruction at +.I iloop +is always contained in the register variable +.I loop . +Thus a return to the main interpreter is simply: +.DS + \fBjmp\fR (loop) +.DE +that is both quick and occupies little space. +.NH 2 +Errors +.PP +Errors during interpretation fall into three classes: +.DS +1) Interpreter detected errors. +2) Hardware detected errors. +3) External events. +.DE +.PP +Interpreter detected errors include I/O errors and +built-in function errors. +These errors cause a subroutine call to an error routine +with a single parameter indicating the cause of the error. +Hardware errors such as range errors and overflows are +fielded by a special routine that determines the opcode +that caused the error. +It then calls the error routine with an appropriate error +parameter. +External events include interrupts and system limits such +as available memory. +They generate a call to the error routine with an +appropriate error code. +The error routine processes the error condition, +printing an appropriate error message and usually +a backtrace from the point of the error. diff --git a/doc/misc/px/pxin2.n b/doc/misc/px/pxin2.n new file mode 100644 index 00000000..dcde25ec --- /dev/null +++ b/doc/misc/px/pxin2.n @@ -0,0 +1,890 @@ +.if !\n(xx .so tmac.p +.nr H1 1 +.if n .ND +.NH +Operations +.NH 2 +Naming conventions and operation summary +.PP +Table 2.1 outlines the opcode typing convention. +The expression ``a above b'' means that `a' is on top +of the stack with `b' below it. +Table 2.3 describes each of the opcodes. +The character `*' at the end of a name specifies that +all operations with the root prefix +before the `*' +are summarized by one entry. +Table 2.2 gives the codes used +to describe the type inline data expected by each instruction. +.sp 2 +.so table2.1.n +.sp 2 +.so table2.2.n +.bp +.so table2.3.n +.bp +.NH 2 +Basic control operations +.LP +.SH +HALT +.IP +Corresponds to the Pascal procedure +.I halt ; +causes execution to end with a post-mortem backtrace as if a run-time +error had occurred. +.SH +BEG s,W,w," +.IP +Causes the second part of the block mark to be created, and +.I W +bytes of local variable space to be allocated and cleared to zero. +Stack overflow is detected here. +.I w +is the first line of the body of this section for error traceback, +and the inline string (length s) the character representation of its name. +.SH +NODUMP s,W,w," +.IP +Equivalent to +.SM BEG , +and used to begin the main program when the ``p'' +option is disabled so that the post-mortem backtrace will be inhibited. +.SH +END +.IP +Complementary to the operators +.SM CALL +and +.SM BEG , +exits the current block, calling the procedure +.I pclose +to flush buffers for and release any local files. +Restores the environment of the caller from the block mark. +If this is the end for the main program, all files are +.I flushed, +and the interpreter is exited. +.SH +CALL l,A +.IP +Saves the current line number, return address, and active display entry pointer +.I dp +in the first part of the block mark, then transfers to the entry point +given by the relative address +.I A , +that is the beginning of a +.B procedure +or +.B function +at level +.I l. +.SH +PUSH s +.IP +Clears +.I s +bytes on the stack. +Used to make space for the return value of a +.B function +just before calling it. +.SH +POP s +.IP +Pop +.I s +bytes off the stack. +Used after a +.B function +or +.B procedure +returns to remove the arguments from the stack. +.SH +TRA a +.IP +Transfer control to relative address +.I a +as a local +.B goto +or part of a structured statement. +.SH +TRA4 A +.IP +Transfer control to an absolute address as part of a non-local +.B goto +or to branch over procedure bodies. +.SH +LINO s +.IP +Set current line number to +.I s. +For consistency, check that the expression stack is empty +as it should be (as this is the start of a statement.) +This consistency check will fail only if there is a bug in the +interpreter or the interpreter code has somehow been damaged. +Increment the statement count and if it exceeds the statement limit, +generate a fault. +.SH +GOTO l,A +.IP +Transfer control to address +.I A +that is in the block at level +.I l +of the display. +This is a non-local +.B goto. +Causes each block to be exited as if with +.SM END , +flushing and freeing files with +.I pclose, +until the current display entry is at level +.I l. +.SH +SDUP* +.IP +Duplicate the word or long on the top of +the stack. +This is used mostly for constructing sets. +See section 2.11. +.NH 2 +If and relational operators +.SH +IF a +.IP +The interpreter conditional transfers all take place using this operator +that examines the Boolean value on the top of the stack. +If the value is +.I true , +the next code is executed, +otherwise control transfers to the specified address. +.SH +REL* r +.IP +These take two arguments on the stack, +and the sub-operation code specifies the relational operation to +be done, coded as follows with `a' above `b' on the stack: +.DS +.mD +.TS +lb lb +c a. +Code Operation +_ +0 a = b +2 a <> b +4 a < b +6 a > b +8 a <= b +10 a >= b +.TE +.DE +.IP +Each operation does a test to set the condition code +appropriately and then does an indexed branch based on the +sub-operation code to a test of the condition here specified, +pushing a Boolean value on the stack. +.IP +Consider the statement fragment: +.DS +.mD +\*bif\fR a = b \*bthen\fR +.DE +.IP +If +.I a +and +.I b +are integers this generates the following code: +.DS +.TS +lp-2w(8) l. +RV4:\fIl a\fR +RV4:\fIl b\fR +REL4 \&= +IF \fIElse part offset\fR +.sp +.T& +c s. +\fI\&... Then part code ...\fR +.TE +.DE +.NH 2 +Boolean operators +.PP +The Boolean operators +.SM AND , +.SM OR , +and +.SM NOT +manipulate values on the top of the stack. +All Boolean values are kept in single bytes in memory, +or in single words on the stack. +Zero represents a Boolean \fIfalse\fP, and one a Boolean \fItrue\fP. +.NH 2 +Right value, constant, and assignment operators +.SH +LRV* l,A +.br +RV* l,a +.IP +The right value operators load values on the stack. +They take a block number as a sub-opcode and load the appropriate +number of bytes from that block at the offset specified +in the following word onto the stack. As an example, consider +.SM LRV4 : +.DS +.mD +_LRV4: + \fBcvtbl\fR (lc)+,r0 #r0 has display index + \fBaddl3\fR _display(r0),(lc)+,r1 #r1 has variable address + \fBpushl\fR (r1) #put value on the stack + \fBjmp\fR (loop) +.DE +.IP +Here the interpreter places the display level in r0. +It then adds the appropriate display value to the inline offset and +pushes the value at this location onto the stack. +Control then returns to the main +interpreter loop. +The +.SM RV* +operators have short inline data that +reduces the space required to address the first 32K of +stack space in each stack frame. +The operators +.SM RV14 +and +.SM RV24 +provide explicit conversion to long as the data +is pushed. +This saves the generation of +.SM STOI +to align arguments to +.SM C +subroutines. +.SH +CON* r +.IP +The constant operators load a value onto the stack from inline code. +Small integer values are condensed and loaded by the +.SM CON1 +operator, that is given by +.DS +.mD +_CON1: + \fBcvtbw\fR (lc)+,\-(sp) + \fBjmp\fR (loop) +.DE +.IP +Here note that little work was required as the required constant +was available at (lc)+. +For longer constants, +.I lc +must be incremented before moving the constant. +The operator +.SM CON +takes a length specification in the sub-opcode and can be used to load +strings and other variable length data onto the stack. +The operators +.SM CON14 +and +.SM CON24 +provide explicit conversion to long as the constant is pushed. +.SH +AS* +.IP +The assignment operators are similar to arithmetic and relational operators +in that they take two operands, both in the stack, +but the lengths given for them specify +first the length of the value on the stack and then the length +of the target in memory. +The target address in memory is under the value to be stored. +Thus the statement +.DS +i := 1 +.DE +.IP +where +.I i +is a full-length, 4 byte, integer, +will generate the code sequence +.DS +.TS +lp-2w(8) l. +LV:\fIl i\fP +CON1:1 +AS24 +.TE +.DE +.IP +Here +.SM LV +will load the address of +.I i, +that is really given as a block number in the sub-opcode and an +offset in the following word, +onto the stack, occupying a single word. +.SM CON1 , +that is a single word instruction, +then loads the constant 1, +that is in its sub-opcode, +onto the stack. +Since there are not one byte constants on the stack, +this becomes a 2 byte, single word integer. +The interpreter then assigns a length 2 integer to a length 4 integer using +.SM AS24 \&. +The code sequence for +.SM AS24 +is given by: +.DS +.mD +_AS24: + \fBincl\fR lc + \fBcvtwl\fR (sp)+,*(sp)+ + \fBjmp\fR (loop) +.DE +.IP +Thus the interpreter gets the single word off the stack, +extends it to be a 4 byte integer +gets the target address off the stack, +and finally stores the value in the target. +This is a typical use of the constant and assignment operators. +.NH 2 +Addressing operations +.SH +LLV l,W +.br +LV l,w +.IP +The most common operation done by the interpreter +is the ``left value'' or ``address of'' operation. +It is given by: +.DS +.mD +_LLV: + \fBcvtbl\fR (lc)+,r0 #r0 has display index + \fBaddl3\fR _display(r0),(lc)+,\-(sp) #push address onto the stack + \fBjmp\fR (loop) +.DE +.IP +It calculates an address in the block specified in the sub-opcode +by adding the associated display entry to the +offset that appears in the following word. +The +.SM LV +operator has a short inline data that reduces the space +required to address the first 32K of stack space in each call frame. +.SH +OFF s +.IP +The offset operator is used in field names. +Thus to get the address of +.LS +p^.f1 +.LE +.IP +.I pi +would generate the sequence +.DS +.mD +.TS +lp-2w(8) l. +RV:\fIl p\fP +OFF \fIf1\fP +.TE +.DE +.IP +where the +.SM RV +loads the value of +.I p, +given its block in the sub-opcode and offset in the following word, +and the interpreter then adds the offset of the field +.I f1 +in its record to get the correct address. +.SM OFF +takes its argument in the sub-opcode if it is small enough. +.SH +NIL +.IP +The example above is incomplete, lacking a check for a +.B nil +pointer. +The code generated would be +.DS +.TS +lp-2w(8) l. +RV:\fIl p\fP +NIL +OFF \fIf1\fP +.TE +.DE +.IP +where the +.SM NIL +operation checks for a +.I nil +pointer and generates the appropriate runtime error if it is. +.SH +LVCON s," +.IP +A pointer to the specified length inline data is pushed +onto the stack. +This is primarily used for +.I printf +type strings used by +.SM WRITEF . +(see sections 3.6 and 3.8) +.SH +INX* s,w,w +.IP +The operators +.SM INX2 +and +.SM INX4 +are used for subscripting. +For example, the statement +.DS +a[i] := 2.0 +.DE +.IP +with +.I i +an integer and +.I a +an +``array [1..1000] of real'' +would generate +.DS +.TS +lp-2w(8) l. +LV:\fIl a\fP +RV4:\fIl i\fP +INX4:8 1,999 +CON8 2.0 +AS8 +.TE +.DE +.IP +Here the +.SM LV +operation takes the address of +.I a +and places it on the stack. +The value of +.I i +is then placed on top of this on the stack. +The array address is indexed by the +length 4 index (a length 2 index would use +.SM INX2 ) +where the individual elements have a size of 8 bytes. +The code for +.SM INX4 +is: +.DS +.mD +_INX4: + \fBcvtbl\fR (lc)+,r0 + \fBbneq\fR L1 + \fBcvtwl\fR (lc)+,r0 #r0 has size of records +L1: + \fBcvtwl\fR (lc)+,r1 #r1 has lower bound + \fBmovzwl\fR (lc)+,r2 #r2 has upper-lower bound + \fBsubl3\fR r1,(sp)+,r3 #r3 has base subscript + \fBcmpl\fR r3,r2 #check for out of bounds + \fBbgtru\fR esubscr + \fBmull2\fR r0,r3 #calculate byte offset + \fBaddl2\fR r3,(sp) #calculate actual address + \fBjmp\fR (loop) +esubscr: + \fBmovw\fR $ESUBSCR,_perrno + \fBjbr\fR error +.DE +.IP +Here the lower bound is subtracted, and range checked against the +upper minus lower bound. +The offset is then scaled to a byte offset into the array +and added to the base address on the stack. +Multi-dimension subscripts are translated as a sequence of single subscriptings. +.SH +IND* +.IP +For indirect references through +.B var +parameters and pointers, +the interpreter has a set of indirection operators that convert a pointer +on the stack into a value on the stack from that address. +different +.SM IND +operators are necessary because of the possibility of different +length operands. +The +.SM IND14 +and +.SM IND24 +operators do conversions to long +as they push their data. +.NH 2 +Arithmetic operators +.PP +The interpreter has many arithmetic operators. +All operators produce results long enough to prevent overflow +unless the bounds of the base type are exceeded. +The basic operators available are +.DS +Addition: ADD*, SUCC* +Subtraction: SUB*, PRED* +Multiplication: MUL*, SQR* +Division: DIV*, DVD*, MOD* +Unary: NEG*, ABS* +.DE +.NH 2 +Range checking +.PP +The interpreter has several range checking operators. +The important distinction among these operators is between values whose +legal range begins at zero and those that do not begin at zero, +for example +a subrange variable whose values range from 45 to 70. +For those that begin at zero, a simpler ``logical'' comparison against +the upper bound suffices. +For others, both the low and upper bounds must be checked independently, +requiring two comparisons. +On the +.SM "VAX 11/780" +both checks are done using a single index instruction +so the only gain is in reducing the inline data. +.NH 2 +Case operators +.PP +The interpreter includes three operators for +.B case +statements that are used depending on the width of the +.B case +label type. +For each width, the structure of the case data is the same, and +is represented in figure 2.4. +.sp 1 +.so fig2.4.n +.PP +The +.SM CASEOP +case statement operators do a sequential search through the +case label values. +If they find the label value, they take the corresponding entry +from the transfer table and cause the interpreter to branch to the +specified statement. +If the specified label is not found, an error results. +.PP +The +.SM CASE +operators take the number of cases as a sub-opcode +if possible. +Three different operators are needed to handle single byte, +word, and long case transfer table values. +For example, the +.SM CASEOP1 +operator has the following code sequence: +.DS +.mD +_CASEOP1: + \fBcvtbl\fR (lc)+,r0 + \fBbneq\fR L1 + \fBcvtwl\fR (lc)+,r0 #r0 has length of case table +L1: + \fBmovaw\fR (lc)[r0],r2 #r2 has pointer to case labels + \fBmovzwl\fR (sp)+,r3 #r3 has the element to find + \fBlocc\fR r3,r0,(r2) #r0 has index of located element + \fBbeql\fR caserr #element not found + \fBmnegl\fR r0,r0 #calculate new lc + \fBcvtwl\fR (r2)[r0],r1 #r1 has lc offset + \fBaddl2\fR r1,lc + \fBjmp\fR (loop) +caserr: + \fBmovw\fR $ECASE,_perrno + \fBjbr\fR error +.DE +.PP +Here the interpreter first computes the address of the beginning +of the case label value area by adding twice the number of case label +values to the address of the transfer table, since the transfer +table entries are 2 byte address offsets. +It then searches through the label values, and generates an ECASE +error if the label is not found. +If the label is found, the index of the corresponding entry +in the transfer table is extracted and that offset is added +to the interpreter location counter. +.NH 2 +Operations supporting pxp +.PP +The following operations are defined to do execution profiling. +.SH +PXPBUF w +.IP +Causes the interpreter to allocate a count buffer +with +.I w +four byte counters +and to clear them to zero. +The count buffer is placed within an image of the +.I pmon.out +file as described in the +.I "PXP Implementation Notes." +The contents of this buffer are written to the file +.I pmon.out +when the program ends. +.SH +COUNT w +.IP +Increments the counter specified by +.I w . +.SH +TRACNT w,A +.IP +Used at the entry point to procedures and functions, +combining a transfer to the entry point of the block with +an incrementing of its entry count. +.NH 2 +Set operations +.PP +The set operations: +union +.SM ADDT, +intersection +.SM MULT, +element removal +.SM SUBT, +and the set relationals +.SM RELT +are straightforward. +The following operations are more interesting. +.SH +CARD s +.IP +Takes the cardinality of a set of size +.I s +bytes on top of the stack, leaving a 2 byte integer count. +.SM CARD +uses the +.B ffs +opcode to successively count the number of set bits in the set. +.SH +CTTOT s,w,w +.IP +Constructs a set. +This operation requires a non-trivial amount of work, +checking bounds and setting individual bits or ranges of bits. +This operation sequence is slow, +and motivates the presence of the operator +.SM INCT +below. +The arguments to +.SM CTTOT +include the number of elements +.I s +in the constructed set, +the lower and upper bounds of the set, +the two +.I w +values, +and a pair of values on the stack for each range in the set, single +elements in constructed sets being duplicated with +.SM SDUP +to form degenerate ranges. +.SH +IN s,w,w +.IP +The operator +.B in +for sets. +The value +.I s +specifies the size of the set, +the two +.I w +values the lower and upper bounds of the set. +The value on the stack is checked to be in the set on the stack, +and a Boolean value of +.I true +or +.I false +replaces the operands. +.SH +INCT +.IP +The operator +.B in +on a constructed set without constructing it. +The left operand of +.B in +is on top of the stack followed by the number of pairs in the +constructed set, +and then the pairs themselves, all as single word integers. +Pairs designate runs of values and single values are represented by +a degenerate pair with both value equal. +This operator is generated in grammatical constructs such as +.LS +\fBif\fR character \fBin\fR [`+', '\-', `*', `/'] +.LE +.IP +or +.LS +\fBif\fR character \fBin\fR [`a'..`z', `$', `_'] +.LE +.IP +These constructs are common in Pascal, and +.SM INCT +makes them run much faster in the interpreter, +as if they were written as an efficient series of +.B if +statements. +.NH 2 +Miscellaneous +.PP +Other miscellaneous operators that are present in the interpreter +are +.SM ASRT +that causes the program to end if the Boolean value on the stack is not +.I true, +and +.SM STOI , +.SM STOD , +.SM ITOD , +and +.SM ITOS +that convert between different length arithmetic operands for +use in aligning the arguments in +.B procedure +and +.B function +calls, and with some untyped built-ins, such as +.SM SIN +and +.SM COS \&. +.PP +Finally, if the program is run with the run-time testing disabled, there +are special operators for +.B for +statements +and special indexing operators for arrays +that have individual element size that is a power of 2. +The code can run significantly faster using these operators. +.NH 2 +Mathematical Functions +.PP +The transcendental functions +.SM SIN , +.SM COS , +.SM ATAN , +.SM EXP , +.SM LN , +.SM SQRT , +.SM SEED , +and +.SM RANDOM +are taken from the standard UNIX +mathematical package. +These functions take double precision floating point +values and return the same. +.PP +The functions +.SM EXPO , +.SM TRUNC , +and +.SM ROUND +take a double precision floating point number. +.SM EXPO +returns an integer representing the machine +representation of its argument's exponent, +.SM TRUNC +returns the integer part of its argument, and +.SM ROUND +returns the rounded integer part of its argument. +.NH 2 +System functions and procedures +.SH +LLIMIT +.IP +A line limit and a file pointer are passed on the stack. +If the limit is non-negative the line limit is set to the +specified value, otherwise it is set to unlimited. +The default is unlimited. +.SH +STLIM +.IP +A statement limit is passed on the stack. The statement limit +is set as specified. +The default is 500,000. +No limit is enforced when the ``p'' option is disabled. +.SH +CLCK +.br +SCLCK +.IP +.SM CLCK +returns the number of milliseconds of user time used by the program; +.SM SCLCK +returns the number of milliseconds of system time used by the program. +.SH +WCLCK +.IP +The number of seconds since some predefined time is +returned. Its primary usefulness is in determining +elapsed time and in providing a unique time stamp. +.sp +.LP +The other system time procedures are +.SM DATE +and +.SM TIME +that copy an appropriate text string into a pascal string array. +The function +.SM ARGC +returns the number of command line arguments passed to the program. +The procedure +.SM ARGV +takes an index on the stack and copies the specified +command line argument into a pascal string array. +.NH 2 +Pascal procedures and functions +.SH +PACK s,w,w,w +.br +UNPACK s,w,w,w +.IP +They function as a memory to memory move with several +semantic checks. +They do no ``unpacking'' or ``packing'' in the true sense as the +interpreter supports no packed data types. +.SH +NEW s +.br +DISPOSE s +.IP +An +.SM LV +of a pointer is passed. +.SM NEW +allocates a record of a specified size and puts a pointer +to it into the pointer variable. +.SM DISPOSE +deallocates the record pointed to by the pointer +and sets the pointer to +.SM NIL . +.sp +.LP +The function +.SM CHR* +converts a suitably small integer into an ascii character. +Its primary purpose is to do a range check. +The function +.SM ODD* +returns +.I true +if its argument is odd and returns +.I false +if its argument is even. +The function +.SM UNDEF +always returns the value +.I false . diff --git a/doc/misc/px/pxin3.n b/doc/misc/px/pxin3.n new file mode 100644 index 00000000..f8c8ef0f --- /dev/null +++ b/doc/misc/px/pxin3.n @@ -0,0 +1,564 @@ +.if !\n(xx .so tmac.p +.ta 8n 16n 24n +.nr H1 2 +.if n .ND +.NH +Input/output +.NH 2 +The files structure +.PP +Each file in the Pascal environment is represented by a pointer +to a +.I files +structure in the heap. +At the location addressed by the pointer is the element +in the file's window variable. +Behind this window variable is information about the file, +at the following offsets: +.so table3.1.n +.PP +Here +.SM FBUF +is a pointer to the system FILE block for the file. +The standard system I/O library is +used that provides block buffered input/output, +with 1024 characters normally transferred at each read or write. +.PP +The files in the +Pascal environment, +are all linked together on a single file chain through the +.SM FCHAIN +links. +For each file the +.SM FLEV +pointer gives its associated file variable. +These are used to free files at block exit as described in section 3.3 +below. +.PP +The +FNAME +and +PFNAME +give the associated +file name for the file and the name to be used when printing +error diagnostics respectively. +Although these names are usually the same, +.I input +and +.I output +usually have no associated +file name so the distinction is necessary. +.PP +The +FUNIT +word contains +a set of flags. +whose representations are: +.TS +center; +l l l. +EOF 0x0100 At end-of-file +EOLN 0x0200 At end-of-line (text files only) +SYNC 0x0400 File window is out of sync +TEMP 0x0800 File is temporary +FREAD 0x1000 File is open for reading +FWRITE 0x2000 File is open for writing +FTEXT 0x4000 File is a text file; process EOLN +FDEF 0x8000 File structure created, but file not opened +.TE +.PP +The +EOF +and +EOLN +bits here reflect the associated built-in function values. +TEMP +specifies that the file has a generated temporary name and that +it should therefore be removed when its block exits. +FREAD +and +FWRITE +specify that +.I reset +and +.I rewrite +respectively have been done on the file so that +input or output operations can be done. +FTEXT +specifies the file is a text file so that +EOLN +processing should be done, +with newline characters turned into blanks, etc. +.PP +The +SYNC +bit, +when true, +specifies that there is no usable image in the file buffer window. +As discussed in the +.I "Berkeley Pascal User's Manual," +the interactive environment necessitates having +``input^'' undefined at the beginning +of execution so that a program may print a prompt +before the user is required to type input. +The +SYNC +bit implements this. +When it is set, +it specifies that the element in the window +must be updated before it can be used. +This is never done until necessary. +.NH 2 +Initialization of files +.PP +All the variables in the Pascal runtime environment are cleared to zero on +block entry. +This is necessary for simple processing of files. +If a file is unused, its pointer will be +.B nil. +All references to an inactive file are thus references through a +.B nil +pointer. +If the Pascal system did not clear storage to zero before execution +it would not be possible to detect inactive files in this simple way; +it would probably be necessary to generate (possibly complicated) +code to initialize +each file on block entry. +.PP +When a file is first mentioned in a +.I reset +or +.I rewrite +call, +a buffer of the form described above is associated with it, +and the necessary information about the file is placed in this +buffer. +The file is also linked into the active file chain. +This chain is kept sorted by block mark address, the +FLEV +entries. +.NH 2 +Block exit +.PP +When block exit occurs the interpreter must free the files that are in +use in the block +and their associated buffers. +This is simple and efficient because the files in the active file chain are +sorted by increasing block mark address. +This means that the files for the current block will be at the front +of the chain. +For each file that is no longer accessible +the interpreter first flushes the files buffer +if it is an output file. +The interpreter then returns the file buffer and the files structure and window +to the free space in the heap and removes the file from the active file chain. +.NH 2 +Flushing +.PP +Flushing all the file buffers at abnormal termination, +or on a call to the procedure +.I flush +or +.I message +is done by flushing +each file on the file chain that has the +FWRITE +bit set in its flags word. +.NH 2 +The active file +.PP +For input-output, +.I px +maintains a notion of an active file. +Each operation that references a file makes the file +it will be using the active file and then does its operation. +A subtle point here is that one may do a procedure call to +.I write +that involves a call to a function that references another file, +thereby destroying the active file set up before the +.I write. +Thus the active file is saved at block entry +in the block mark and restored at block exit.\*(Dg +.FS +\*(dg\ It would probably be better to dispense with the notion of +active file and use another mechanism that did not involve extra +overhead on each procedure and function call. +.FE +.NH 2 +File operations +.PP +Files in Pascal can be used in two distinct ways: +as the object of +.I read, +.I write, +.I get, +and +.I put +calls, or indirectly as though they were pointers. +The second use as pointers must be careful +not to destroy the active file in a reference such as +.LS +write(output, input\(ua) +.LE +or the system would incorrectly write on the input device. +.PP +The fundamental operator related to the use of a file is +.SM FNIL. +This takes the file variable, as a pointer, +insures that the pointer is not +.B nil, +and also that a usable image is in the file window, +by forcing the +.SM SYNC +bit to be cleared. +.PP +A simple example that demonstrates the use of the file operators +is given by +.LS +writeln(f) +.LE +that produces +.DS +.mD +.TS +lp-2w(8) l. +RV:\fIl f\fP +UNIT +WRITLN +.TE +.DE +.NH 2 +Read operations +.SH +GET +.IP +Advance the active file to the next input element. +.SH +FNIL +.IP +A file pointer is on the stack. Insure that the associated file is active +and that the file is synced so that there is input available in the window. +.SH +READ* +.IP +If the file is a text file, read a block of text +and convert it to the internal type of the specified +operand. If the file is not a text file then +do an unformatted read of the next record. +The procedure +.SM READLN +reads upto and including the next end of line character. +.SH +READE A +.IP +The operator +.SM READE +reads a string name of an enumerated type and converts it +to its internal value. +.SM READE +takes a pointer to a data structure as shown in figure 3.2. +.so fig3.2.n +See the description of +.SM NAM +in the next section for an example. +.NH 2 +Write operations +.SH +PUT +.IP +Output the element in the active file window. +.SH +WRITEF s +.IP +The argument(s) on the stack are output +by the +.I fprintf +standard +.SM I/O +library routine. +The sub-opcode +.I s +specifies the number +of longword arguments on the stack. +.SH +WRITEC +.IP +The character on the top of the stack is output +without formatting. Formatted characters must be output with +.SM WRITEF . +.SH +WRITES +.IP +The string specified by the pointer on the top of the stack is output +by the +.I fwrite +standard +.SM I/O +library routine. +All characters including nulls are printed. +.SH +WRITLN +.IP +A linefeed is output to the active file. +The line-count for the file is +incremented and checked against the line limit. +.SH +PAGE +.IP +A formfeed is output to the active file. +.SH +NAM A +.IP +The value on the top of the stack is converted to a pointer +to an enumerated type string name. +The address +.SM A +points to an enumerated type structure identical +to that used by +.SM READE . +An error is raised if the value is out of range. +The form of this structure for the predefined type +.B boolean +is shown in figure 3.3. +.so fig3.3.n +The code for +.SM NAM +is +.DS +.mD +_NAM: + \fBincl\fR lc + \fBaddl3\fR (lc)+,ap,r6 #r6 points to scalar name list + \fBmovl\fR (sp)+,r3 #r3 has data value + \fBcmpw\fR r3,(r6)+ #check value out of bounds + \fBbgequ\fR enamrng + \fBmovzwl\fR (r6)[r3],r4 #r4 has string index + \fBpushab\fR (r6)[r4] #push string pointer + \fBjmp\fR (loop) +enamrng: + \fBmovw\fR $ENAMRNG,_perrno + \fBjbr\fR error +.DE +The address of the table is calculated by adding the base address +of the interpreter code, +.I ap +to the offset pointed to by +.I lc . +The first word of the table gives the number of records and +provides a range check of the data to be output. +The pointer is then calculated as +.DS +.mD +tblbase = ap + A; +size = *tblbase++; +return(tblbase + tblbase[value]); +.DE +.SH +MAX s,w +.IP +The sub-opcode +.I s +is subtracted from the integer on the top of the stack. +The maximum of the result and the second argument, +.I w , +replaces the value on the top of the stack. +This function verifies that variable specified +width arguments are non-negative, and meet certain minimum width +requirements. +.SH +MIN s +.IP +The minimum of the value on the top of the stack +and the sub-opcode replaces the value on the top +of the stack. +.sp 1 +.LP +The uses of files and the file operations are summarized +in an example which outputs a real variable (r) with a variable +width field (i). +.LS +writeln('r =',r:i,' ',true); +.LE +that generates the code +.DS +.mD +.TS +lp-2w(8) l. +UNITOUT +FILE +CON14:1 +CON14:3 +LVCON:4 "r =" +WRITES +RV8\fI:l r\fP +RV4\fI:l i\fP +MAX:8 1 +RV4\fI:l i\fP +MAX:1 1 +LVCON:8 " %*.*E" +FILE +WRITEF:6 +CONC4 \' \' +WRITEC +CON14:1 +NAM \fIbool\fP +LVCON:4 "%s" +FILE +WRITEF:3 +WRITLN +.TE +.DE +.PP +Here the operator +.SM UNITOUT +is an abbreviated form of the operator +.SM UNIT +that is used when the file to be made active is +.I output . +A file descriptor, record count, string size, and a pointer +to the constant string ``r ='' are pushed +and then output by +.SM WRITES . +Next the value of +.I r +is pushed on the stack +and the precision size is calculated by taking +seven less than the width, but not less than one. +This is followed by the width that is reduced by +one to leave space for the required leading blank. +If the width is too narrow, it +is expanded by +.I fprintf . +A pointer to the format string is pushed followed +by a file descriptor and the operator +.SM WRITEF +that prints out +.I r . +The value of six on +.SM WRITEF +comes from two longs for +.I r +and a long each for the precision, width, format string pointer, +and file descriptor. +The operator +.SM CONC4 +pushes the +.I blank +character onto a long on the stack that is then printed out by +.SM WRITEC . +The internal representation for +.I true +is pushed as a long onto the stack and is +then replaced by a pointer to the string ``true'' +by the operator +.SM NAM +using the table +.I bool +for conversion. +This string is output by the operator +.SM WRITEF +using the format string ``%s''. +Finally the operator +.SM WRITLN +appends a newline to the file. +.NH 2 +File activation and status operations +.SH +UNIT* +.IP +The file pointed to by the file pointer on the top +of the stack is converted to be the active file. +The opcodes +.SM UNITINP +and +.SM UNITOUT +imply standard input and output respectively +instead of explicitly pushing their file pointers. +.SH +FILE +.IP +The standard +.SM I/O +library file descriptor associated with the active file +is pushed onto the stack. +.SH +EOF +.IP +The file pointed to by the file pointer on the top +of the stack is checked for end of file. A boolean +is returned with +.I true +indicating the end of file condition. +.SH +EOLN +.IP +The file pointed to by the file pointer on the top +of the stack is checked for end of line. A boolean +is returned with +.I true +indicating the end of line condition. +Note that only text files can check for end of line. +.NH 2 +File housekeeping operations +.SH +DEFNAME +.IP +Four data items are passed on the stack; +the size of the data type associated with the file, +the maximum size of the file name, +a pointer to the file name, +and a pointer to the file variable. +A file record is created with the specified window size +and the file variable set to point to it. +The file is marked as defined but not opened. +This allows +.B program +statement association of file names with file variables +before their use by a +.SM RESET +or a +.SM REWRITE . +.SH +BUFF s +.IP +The sub-opcode is placed in the external variable +.I _bufopt +to specify the amount of I/O buffering that is desired. +The current options are: +.DS +0 \- character at a time buffering +1 \- line at a time buffering +2 \- block buffering +.DE +The default value is 1. +.SH +RESET +.br +REWRITE +.IP +Four data items are passed on the stack; +the size of the data type associated with the file, +the maximum size of the name (possibly zero), +a pointer to the file name (possibly null), +and a pointer to the file variable. +If the file has never existed it is created as in +.SM DEFNAME . +If no file name is specified and no previous name exists +(for example one created by +.SM DEFNAME +) then a system temporary name is created. +.SM RESET +then opens the file for input, while +.SM REWRITE +opens the file for output. +.sp 1 +.PP +The three remaining file operations are +.SM FLUSH +that flushes the active file, +.SM REMOVE +that takes the pointer to a file name and removes the +specified file, and +.SM MESSAGE +that flushes all the output files and sets the +standard error file to be the active file. diff --git a/doc/misc/px/pxin4.n b/doc/misc/px/pxin4.n new file mode 100644 index 00000000..8384a429 --- /dev/null +++ b/doc/misc/px/pxin4.n @@ -0,0 +1,34 @@ +.if !\n(xx .so tmac.p +.nr H1 3 +.if n .ND +.NH +Conclusions +.PP +It is appropriate to consider, +given the amount of time invested in rewriting the interpreter, +whether the time was well spent, or whether a code-generator +could have been written with an equivalent amount of effort. +The Berkeley Pascal system is being modified to interface +to the code generator of the portable C compiler with +not much more work than was involved in rewritting +.I px . +However this compiler will probably not supercede the interpreter +in an instructional environment as the +necessary loading and assembly processes will slow the +compilation process to a noticeable degree. +This effect will be further exaggerated because +student users spend more time in compilation than in execution. +Measurements over the course of a quarter at Berkeley with a mixture +of students from beginning programming to upper division compiler +construction show that the amount of time in compilation exceeds the amount +of time spent in the interpreter, the ratio being approximately 60/40. +.PP +A more promising approach might have been a throw-away code generator +such as was done for the +.SM +WATFIV +.NL +system. +However the addition of high-quality post-mortem and interactive +debugging facilities become much more difficult to provide than +in the interpreter environment. diff --git a/doc/misc/px/table2.1.n b/doc/misc/px/table2.1.n new file mode 100644 index 00000000..1f58f6e3 --- /dev/null +++ b/doc/misc/px/table2.1.n @@ -0,0 +1,50 @@ +.DS L +.TS +box center; +c s s +c s s +c c c +n ap-2 a. +Table 2.1 \- Operator Suffixes += +.sp +Unary operator suffixes +.sp .1i +Suffix Example Argument type +2 NEG2 Short integer (2 bytes) +4 SQR4 Long integer (4 bytes) +8 ABS8 Real (8 bytes) +.sp +_ +.sp +.T& +c s s +c c c +n ap-2 a. +Binary operator suffixes +.sp .1i +Suffix Example Argument type +2 ADD2 Two short integers +24 MUL24 Short above long integer +42 REL42 Long above short integer +4 DIV4 Two long integers +28 DVD28 Short integer above real +48 REL48 Long integer above real +82 SUB82 Real above short integer +84 MUL84 Real above long integer +8 ADD8 Two reals +.sp +_ +.sp +.T& +c s s +c c c +n ap-2 a. +Other Suffixes +.sp .1i +Suffix Example Argument types +T ADDT Sets +G RELG Strings +.sp +.TE +.DE diff --git a/doc/misc/px/table2.2.n b/doc/misc/px/table2.2.n new file mode 100644 index 00000000..724b7947 --- /dev/null +++ b/doc/misc/px/table2.2.n @@ -0,0 +1,52 @@ +.DS L +.TS +box center; +c s +c | c +ci | aw(3.25i). +Table 2.2 \- Inline data type codes +_ +Code Description += +a T{ +.fi +An address offset is given in the word +following the instruction. +T} +_ +A T{ +An address offset is given in the four bytes following the instruction. +T} +_ +l T{ +An index into the display +is given in the sub-opcode. +T} +_ +r T{ +A relational operator is encoded in the sub-opcode. (see section 2.3) +T} +_ +s T{ +A small integer is +placed in the sub-opcode, or in the next word +if it is zero or too large. +T} +_ +v T{ +Variable length inline data. +T} +_ +w T{ +A word value in the following word. +T} +_ +W T{ +A long value in the following four bytes. +T} +_ +" T{ +An inline constant string. +T} +.TE +.DE diff --git a/doc/misc/px/table2.3.n b/doc/misc/px/table2.3.n new file mode 100644 index 00000000..6e849e00 --- /dev/null +++ b/doc/misc/px/table2.3.n @@ -0,0 +1,12 @@ +.TS H +box center; +c s s +lw(14) | lw(12) | lw(40) +lp-2 | a | l. +Table 2.3 \- Machine operations +_ +Mnemonic Reference Description += +.TH +.so fig2.3.n +.TE diff --git a/doc/misc/px/table3.1.n b/doc/misc/px/table3.1.n new file mode 100644 index 00000000..afe41606 --- /dev/null +++ b/doc/misc/px/table3.1.n @@ -0,0 +1,14 @@ +.TS +center; +n l l. +\-108 FNAME Text name of associated UNIX file +\-30 LCOUNT Current count of lines output +\-26 LLIMIT Maximum number of lines permitted +\-22 FBUF UNIX FILE pointer +\-18 FCHAIN Chain to next file +\-14 FLEV Pointer to associated file variable +\-10 PFNAME Pointer to name of file for error messages +\-6 FUNIT File status flags +\-4 FSIZE Size of elements in the file +0 File window element +.TE diff --git a/doc/misc/px/tmac.p b/doc/misc/px/tmac.p new file mode 100644 index 00000000..c937bbf5 --- /dev/null +++ b/doc/misc/px/tmac.p @@ -0,0 +1,80 @@ +'if \n(FM=0 'so /usr/lib/tmac/tmac.s +.if n .nr FM 1.2i +.if t .tr *\(**=\(eq/\(sl+\(pl +.bd S B 3 +.de mD +.ta 8n 17n 42n +.. +.de SM +.if "\\$1"" .ps -2 +.if !"\\$1"" \s-2\\$1\s0\\$2 +.. +.de LG +.if "\\$1"" .ps +2 +.if !"\\$1"" \s+2\\$a\s0\\$2 +.. +.de HP +.nr pd \\n(PD +.nr PD 0 +.if \\n(.$=0 .IP +.if \\n(.$=1 .IP "\\$1" +.if \\n(.$>=2 .IP "\\$1" "\\$2" +.nr PD \\n(pd +.. +.de ZP +.nr pd \\n(PD +.nr PD 0 +.PP +.nr PD \\n(pd +.. +.de LS \"LS - Literal display; ASCII DS +.if \\n(.$=0 .DS +.if \\n(.$=1 \\$1 +.if \\n(.$>1 \\$1 "\\$2" +.if t .tr '\'`\`^\(ua-\(mi +.if t .tr _\(ul +.. +.de LE \"LE - End literal display +.DE +.tr ''``__--^^ +.. +.de UP +Berkeley Pascal\\$1 +.. +.de PD +\s-2PDP\s0 +.if \\n(.$=0 11/70 +.if \\n(.$>0 11/\\$1 +.. +.de DK +Digital Equipment Corporation\\$1 +.. +.de PI +.I pi \\$1 +.. +.de Xp +.I Pxp \\$1 +.. +.de XP +.I pxp \\$1 +.. +.de IX +.I pix \\$1 +.. +.de X +.I px \\$1 +.. +.de PX +.I px \\$1 +.. +.if n .ds dg + +.if t .ds dg \(dg +.if n .ds Dg \*(dg +.if t .ds Dg \v'-0.3m'\s-2\*(dg\s0\v'0.3m' +.if n .ds dd * +.if t .ds dd \(dd +.if n .ds Dd \*(dd +.if t .ds Dd \v'-0.3m'\s-2\*(dd\s0\v'0.3m' +.if n .ds b \\fI +.if t .ds b \\fB +.nr xx 1 diff --git a/doc/misc/regen b/doc/misc/regen new file mode 100644 index 00000000..101d88f0 --- /dev/null +++ b/doc/misc/regen @@ -0,0 +1,491 @@ +.TL +REGENERATING SYSTEM SOFTWARE +.AU +For UNIX/32V + +Thomas B. London +.AU +John F. Reiser +.HO +.SH +Introduction +.PP +This document discusses how to +assemble or compile various parts of the +.UX \s-2/32V\s0 +system software. +This may be necessary because +a command or library is accidentally +deleted or otherwise +destroyed; +also, it may be desirable to install a modified +version of some command or library routine. +A few commands depend +to some degree on the current configuration +of the system; +thus in any new system modifications to some commands +are advisable. +Most of the likely modifications +relate to the standard disk devices contained +in the system. +For example, the df(1) (`disk free') +command has built into it the names of +the standardly present disk storage drives +(e.g. `/dev/rf0', `/dev/rp0'). +Df(1) takes an argument to indicate which +disk to examine, but it is convenient +if its default argument is adjusted to +reflect the ordinarily present devices. +The companion document `Setting up UNIX' +discusses which commands are likely to require +changes. +.SH +Where Commands and Subroutines Live +.PP +The +source files for commands and subroutines reside +in several subdirectories +of the directory /usr/src. +These subdirectories, and a general +description of their contents, are +.IP cmd 12 +Source files for commands. +.IP libc/stdio 12 +Source files making up the `standard i/o package'. +.IP libc/sys 12 +Source files for the C system call interfaces. +.IP libc/gen 12 +Source files for most of the remaining routines described +in section 3 of the manual. +.IP libc/crt 12 +Source files making up the C runtime support package, as +in call save-return and long arithmetic. +.IP libc/csu 12 +Source for the C startup routines. +.IP games 12 +Source for (some of) the games. +No great care has been taken to try to make it obvious how +to compile these; treat it as a game. +.IP libF77 12 +Source for the Fortran 77 runtime library, exclusive of IO. +.IP libI77 12 +Source for the Fortran 77 IO runtime routines. +.IP libdbm 12 +Source for the `data-base manager' package +.I dbm +(3). +.IP libm 12 +Source for the mathematical library. +.IP libnm 12 +Source for the assembler language mathematical library. +.IP libplot 12 +Source for plotting routines. +.SH +Commands +.PP +The regeneration of most commands +is straightforward. +The `cmd' directory will contain either a source file +for the command or a subdirectory containing the set +of files that make up the command. +If it is a single file the command +.DS +cd /usr/src/cmd/Admin +Mk cmd_name.c +.DE +suffices. (Cmd_name is the name of the command you +are playing with.) +The result of the Mk command will be an executable version, +copied to /bin +(or perhaps /etc or other places if appropriate). +If you want the result placed somewhere else, the command +.DS +cd /usr/src/cmd/Admin +DESTDIR=mydir Mk cmd_name.c +.DE +where mydir is a full pathname of some destination directory +(e.g. /usr/tbl/newcmds), +will compile the command and place the result in mydir/bin +(or perhaps mydir/etc or mydir/usr/bin, etc.). +.PP +If the source files are in a subdirectory there will be a `makefile' +(see make(1)) to control the regeneration. +After changing to the proper directory (cd(1)) you type one of the following: +.IP "make" 15 +The program is compiled and loaded; the executable is +left in the current directory. +.IP "make install" 15 +The program is compiled and loaded, and the executable is +installed. +.IP "make clean" 15 +Everything is cleanup; for example .o files are deleted. +.PP +Some of the makefiles have other options. Print (cat(1)) the ones you +are interested in to find out. +.PP +Alternately, to compiler and install a subdirectory command, one may +perform the following +.DS +cd /usr/src/cmd/Admin +Mk cmd_name +.DE +which combines all three of the above make options. +.SH +The Assembler +.PP +The assembler consists of one executable file: +/bin/as. +The source files for /bin/as +are named `/usr/src/cmd/as/as?.c'. +Considerable care should be exercised +in replacing the +assembler. +Remember that if the assembler is lost, +the only recourse is to replace it from some backup storage; +a broken assembler cannot assemble itself. +.SH +The C Compiler +.PP +The C compiler consists of +six routines: +`/bin/cc', +which calls the phases of the compiler proper, +the compiler control line expander `/lib/cpp', +the assembler (`as'), and the loader (`ld'). +The C compiler proper is `/lib/ccom'; +`/lib/c2' is the optional +assembler-language optimizer. +The loss of the C compiler is as serious +as that of the assembler. +.PP +The source for /bin/cc +resides in `/usr/src/cmd/cc.c'. +Its loss alone (or that of c2) is not fatal. +If needed, +prog.c can be compiled by +.DS +/lib/cpp prog.c >temp0 +/lib/ccom temp0 temp1 +as temp3 +ld /lib/crt0.o a.out \-lc +.DE +.PP +The source for the compiler proper is in the +directories /usr/src/cmd/mip and /usr/src/cmd/pcc. +The /usr/src/cmd/mip directory contains files which are +(relatively) machine independent; +the machine dependent files reside in the +directory /usr/src/cmd/pcc. +The compiler is `made' by the makefile (see make(1)) +in the directory /usr/src/cmd/pcc. +To make a new /lib/ccom use +.DS +cd /usr/src/cmd/pcc +make +.DE +which produces the compiler +(named /usr/src/cmd/pcc/comp). +Before installing the new compiler, +it is prudent to save the old one someplace. +.PP +In a similar manner, +the optimizer phase of the C compiler +(/lib/c2) +is made up from the files +c20.c, c21.c, and c22.c together with c2.h. +Its loss is not critical since it is completely optional. +.SH +UNIX +.PP +The source and object programs for UNIX are kept in +two subdirectories of +.I /usr/src/sys. +In the subdirectory +.I h +there are several files ending in `.h'; +these are header files which are +picked up (via `#include ...') +as required by each system module. +The subdirectory +.I sys +is the rest of the system. +.PP +The file +.I conf.c +contains the tables which control +device configuration of the system. +.I Locore.s +specifies the +contents of the interrupt vectors, +and all the +machine-language code in the system. +.PP +To recreate the system, use +.DS +cd /usr/src/sys/sys +make unix +.DE +See `Setting Up UNIX' for other information about configuration +and such. +.PP +When the make is +done, the new system is present in the +current directory as `unix'. +It should be tested before destroying the currently +running `/unix', this is best done by doing something like +.DS +mv /unix /ounix +mv unix /unix +.DE +If the new system doesn't work, you can still boot `ounix' +and come up (see boot(8)). +When you have satisfied yourself that the new system works, +remove /ounix. +.PP +To install a new device driver, +copy its source to /usr/src/sys/sys, +and edit the `makefile' and the file `loadall' if +necessary (see make(1)). +.PP +Next, the I/O interrupt fielding mechanism must be modified +to properly handle the new device. +If the device is connected via the UNIBUS, then one only +need add the device's interrupt handling routine address(s) +in the proper position in the table `UNIvec' in the +file /usr/src/sys/sys/univec.c. +`UNIvec' +should be modified +by placing a pointer to a callout routine +in the proper vector. +Use some other device (like the DZ11) as a guide. +Notice that the entries in `UNIvec' must be in order. +Bits 27-31 of the vector address +will be available as the first argument of the interrupt routine. +This stratagem is used when +several similar devices share the same interrupt routine +(as in dz11's). +.PP +If the device is connected via the MASSBUS, +then /usr/src/sys/sys/univec.c is not to be modifed. +Instead, code must be added to /usr/src/sys/sys/locore.s +to actually transfer to the interrupt routine. +Use the RP06 interrupt routine `Xmba0int' in locore.s as a guide. +As an aside, note that +external names in C programs have an +underscore (`_') prepended to them. +.PP +The second step which must be performed to add a new +device is +to add it to the configuration table +/usr/src/sys/sys/conf.c. +This file contains two subtables, `bdevsw' and `cdevsw', +one for block-type devices, and one for character-type devices. +Block devices include disks, and magtape. +All other devices are character devices. +A line in each of these tables gives all the information +the system needs to know about the device handler; +the ordinal position of the line in the table implies +its major device number, starting at 0. +.PP +There are four subentries per line in the block device table, +which give its open routine, close routine, strategy routine, and +device table. +The open and close routines may be nonexistent, +in which case the name `nulldev' is given; +this routine merely returns. +The strategy routine is called to do any I/O, +and the device table contains status information for the device. +.PP +For character devices, each line in the table +specifies a routine for open, +close, read, and write, and one which sets and returns +device-specific status (used, for example, for stty and gtty +on typewriters). +If there is no open or close routine, `nulldev' may +be given; if there is no read, write, or status +routine, `nodev' may be given. +Nodev sets an error flag and returns. +.PP +The final step which must +be taken to install a device is to make a special file for it. +This is done by mknod(1), to which you must specify the +device class (block or character), +major device number (relative line in the configuration table) +and minor device number +(which is made available to the driver at appropriate times). +.PP +The documents +`Setting up Unix' and +`The Unix IO system' +may aid in comprehending these steps. +.SH +The Library libc.a +.PP +The library /lib/libc.a is where most of the subroutines +described in sections 2 and 3 of the manual are kept. +This library +can be remade using the following commands: +.DS +cd /usr/src/libc +make libc.a +make install +make clean +.DE +If single routines need to be recompiled and replaced, use +.DS +cc \-c \-O x.c +ar vr /lib/libc.a x.o +rm x.o +.DE +The above can also be used to put new items into the library. +See ar(1), lorder(1), and tsort(1). +.PP +The routines in /usr/src/cmd/libc/csu (C start up) are not in +libc.a. These are separately assembled and put into +/lib. The commands to do this are +.DS +cd /usr/src/libc +for i in csu/*.s +do + j=`basename $i .s` + as -o $j.o $i + mv $j.o /lib +done +.DE +or, if you need only redo one routine, +.DS +cd /usr/src/libc/csu +as -o x.o x.s +mv x.o /lib +.DE +where x is the routine you want. +.SH +Other Libraries +.PP +Likewise, +the directories containing the source for the other libraries +have makefiles. +.SH +System Tuning +.PP +There are several tunable parameters in the system. These set +the size of various tables and limits. They are found in the +file /usr/sys/h/param.h as manifests (`#define's). +Their values are rather generous in the system as distributed. +Our typical maximum number of users is about 20, but there are +many daemon processes. +.PP +When any parameter is changed, it is prudent to recompile +the entire system, as discussed above. +A brief discussion of each follows: +.IP NBUF 12 +This sets the size of the disk buffer cache. Each buffer is 512 bytes. +This number should be around 25 plus NMOUNT, +or as big as can be if the above number of +buffers cause the system to not fit in memory. +.IP NFILE 12 +This sets the maximum number of open files. An entry is made in +this table every time a file is `opened' (see open(2), creat(2)). +Processes share these table entries across forks (fork(2)). This number +should be about the same size as NINODE below. (It can be a bit smaller.) +.IP NMOUNT 12 +This indicates the maximum number of mounted file systems. Make it +big enough that you don't run out at inconvenient times. +.IP MAXMEM 12 +This specifies the number of page-frames of real memory at this +installation. +It is currently set at 1024 (512K bytes), and should be increased +if you have more (otherwise the additional memory will not be utilized). +.IP MAXUMEM 12 +This sets an administrative limit on the amount of memory +a process may have. +It is currently set at MAXMEM-128 (i.e. 896). +It will be increased automatically by increasing MAXMEM. +Note, however, that the current upper bound on MAXUMEM is 128*12 +(i.e. 1536) which limits user process space to 768K bytes. +.IP PHYSPAGES 12 +This indicates the number of pages which can be represented +on the memory freelist. +Its current value is 2048, and is sufficient for systems of +up to one megabyte. +If this value is too small (i.e. more memory than freelist) +then system will only use PHYSPAGES page frames. +.IP MAXUPRC 12 +This sets the maximum number of processes that any one user can +be running at any one time. This should be set just large enough +that people can get work done but not so large that a user can +hog all the processes available (usually by accident!). +.IP NPROC 12 +This sets the maximum number of processes that can be +active. +It depends on the demand pattern of the typical user; +we seem to need about 8 times the number +of terminals. +.DE +.IP NINODE 12 +This sets the size of the inode table. There is one entry in the inode +table for every open device, current working directory, +sticky text segment, +open file, and mounted device. +Note that if two users have a file open there is still only one entry +in the inode table. A reasonable rule of thumb for the size of +this table is +.DS +NPROC + NMOUNT + (number of terminals) +.DE +.IP SSIZE 12 +The initial size of a process stack. This may be made bigger +if commonly run processes have large data areas on the stack. +.IP SINCR 12 +The size of the stack growth increment. +.IP NOFILE 12 +This sets the maximum number of files that any one process can have +open. +20 is plenty. +.IP CANBSIZ 12 +This is the size of the typewriter canonicalization buffer. It is +in this buffer that erase and kill processing is done. Thus this +is the maximum size of an input typewriter line. 256 is usually +plenty. +.IP SMAPSIZ 12 +The number of fragments that secondary (swap) memory can be +broken into. +This should be big enough that it never runs out. +The theoretical maximum is twice the number of processes, +but this is a vast overestimate in practice. +70 seems enough. +.IP NCALL 12 +This is the size of the callout table. Callouts are entered in this +table when some sort of internal system timing must be done, as in +carriage return delays for terminals. The number must be big enough +to handle all such requests. +.IP NTEXT 12 +The maximum number of simultaneously executing pure programs. This +should be big enough so as to not run out of space under heavy load. +A reasonable rule of thumb is about +.DS +(number of terminals) + (number of sticky programs) +.DE +.IP NCLIST 12 +The number of clist segments. A clist segment is 12 characters. +NCLIST should be big enough so that the list doesn't become exhausted +when the machine is busy. The characters that have arrived from a terminal +and are waiting to be given to a process live here. Thus enough space +should be left so that every terminal can have at least one average +line pending (about 30 or 40 characters). +.IP TIMEZONE 12 +The number of minutes westward from Greenwich. See `Setting Up UNIX'. +.IP DSTFLAG 12 +See `Setting Up UNIX' section on time conversion. +.IP MSGBUFS 12 +The maximum number of characters of system error messages saved. This +is used as a circular buffer. +.IP NCARGS 12 +The maximum number of characters in an exec(2) arglist. This +number controls how many arguments can be passed +into a process. +5120 is practically infinite. +.IP HZ 12 +Set to the desired frequency of the system clock (e.g., 50 for +a 50 Hz. clock). +The current value is 60 (i.e. 60 Hz. clock). diff --git a/doc/misc/sdb/app1 b/doc/misc/sdb/app1 new file mode 100644 index 00000000..0d6638ef --- /dev/null +++ b/doc/misc/sdb/app1 @@ -0,0 +1,49 @@ +% cat testdiv2.c +main() { + int i; + i = div2(-1); + printf("-1/2 = %d\n", i); +} +div2(i) { + int j; + j = i>>1; + return(j); +} + +% cc -g testdiv2.c + +% a.out +-1/2 = -1 + +% sdb +No core image # Warning message from sdb +*/^div2 # Search for procedure "div2" +6: div2(i) { # It starts at line 6 +*z # Print the next few lines +6: div2(i) { +7: int j; +8: j = i>>1; +9: return(j); +10: } +*div2:b # Place a breakpoint at beginning of div2 +div2:8 b # Sdb echoes proc name and line number +*r # Run the procedure +Breakpoint at # Execution stops just before line 8 +div2:8: j = i>>1; +*t # Print trace of subroutine calls +div2(-1) [testdiv2.c:8] +main(1,2147483380,2147483388) [testdiv2.c:3] +*i/ # Print i +-1 +*s # Single step +div2:9: return(j); # Execution stops just before line 9 +*j/ # Print j +-1 +*8d # Delete the breakpoint +*div2(1)/ # Try running div2 with different args +0 +*div2(-2)/ +-1 +*div2(-3)/ +-2 +*q # Exit sdb diff --git a/doc/misc/sdb/sdbrp.n b/doc/misc/sdb/sdbrp.n new file mode 100644 index 00000000..a8c19e55 --- /dev/null +++ b/doc/misc/sdb/sdbrp.n @@ -0,0 +1,543 @@ +.RP +.TL +Sdb: A Symbolic Debugger +.AU "HO 4F-605" 5337 +Howard P. Katseff +.AI +.HO +.OK +UNIX +C programming +Program testing +.AB +Sdb is a symbolic debugging program currently implemented for the +language C on the UNIX/32V\s-2\u\(dg\d\s+2 Operating System. +.FS +\(dg\dUNIX is a trademark of Bell Laboratories +.FE +Sdb allows one to interact with a debugged program at the +C language level. +When debugging a core image from an aborted program, +sdb reports which line in the C program caused the error +and allows all variables, +including array and structure elements, +to be accessed symbolically +and displayed in the correct format. +.PP +One may place breakpoints at selected statements +or single step on a line by line basis. +To facilitate specification of lines in the program without +a source listing, +a mechanism for examining the source text is also included in sdb. +.PP +Procedures may be called directly from the debugger. +This feature is useful both for testing individual procedures +and for calling user-provided routines which provide formatted +printout of structured data. +.AE +.CS 6 4 10 0 0 2 +.NH +Introduction +.PP +This document describes a symbolic debugger, sdb, as implemented +for C programs on the UNIX/V32\s-2\u\(dg\d\s+2 Operating System. +.FS +\(dg\dUNIX is a trademark of Bell Laboratories +.FE +Sdb is useful both for examining core images of aborted programs +and for providing an environment in which execution of a program +can be monitored and controlled. +.NH +Examining core images +.PP +In order to use sdb, +it is necessary to compile the C program with the `\(mig' flag. +This causes the compiler to generate additional information +about the variables and statements of the compiled program. +When the debug flag is specified, +sdb can be used to obtain a trace of the called procedures +at the time of the abort and interactively display the +values of variables. +.NH 2 +Invoking sdb +.PP +A typical sequence of shell commands for debugging a core image is: +.DS +% cc \(mig foo.c \(mio foo +% foo +Bus error \(mi core dumped +% sdb foo +main:25: x[i] = 0; +\v'.25m'*\v'-.25m' +.DE +.PP +The program foo was compiled with the `\(mig' flag and then executed. +An error occurred which caused a core dump. +Sdb is then invoked to examine the core dump to determine the +cause of the error. +It reports that the Bus error occurred in procedure main at line 25 +(line numbers are always relative to the beginning of the file) +and outputs the source text of the offending line. +Sdb then prompts the user with a `\v'.25m'*\v'-.25m'' indicating that it awaits +a command. +.PP +It is useful to know that sdb has a notion of current +procedure and current line. +In this example, they are initially set to `main' and `25' +respectively. +.PP +In the above example sdb was called with one argument, `foo'. +In general it takes three arguments on the command line. +The first is the name of the executable file which is to be +debugged; +It defaults to a.out when not specified. +The second is the name of the core file, defaulting to core +and the third is the name of the directory containing the source +of the program being debugged. +Sdb currently requires all source to reside in a single directory. +The default is the working directory. +In the example +the second and third arguments defaulted to the correct values, +so only the first was specified. +.PP +It is possible that the error occurred in a procedure which was +not compiled with the debug flag. +In this case, sdb prints the procedure name and the address at +which the error occurred. +The current line and procedure are set to the first line in main. +Sdb will complain if main was not compiled with `\(mig' +but debugging can continue for those routines compiled with the +debug flag. +.NH 2 +Printing a stack trace +.PP +It is often useful to obtain a listing of the procedure calls +which led to the error. +This is obtained with the +.B t +command. +For example: +.DS +\v'.25m'*\v'-.25m't +sub(2,3) [foo.c:25] +inter(16012) [foo.c:96] +main(1,2147483584, 2147483592) [foo.c:15] +.DE +This indicates that the error occurred within the procedure sub +at line 25 in file foo.c. +Sub was called with the arguments 2 and 3 for inter at line 96. +Inter was called from main at line 16. +Main is always called by the shell with three arguments, +often referred to as +.I argc, +.I argp +and +.I envp. +Arguments in the call trace are always printed in decimal. +.NH 2 +Examining variables +.PP +Sdb can be used to display variables in the stopped program. +Variables are displayed by typing their name followed by a slash, +so +.DS +\v'.25m'*\v'-.25m'errflg/ +.DE +causes sdb to display the value of variable errflg. +Unless otherwise specified, +variables are assumed to be either local to or accessible from +the current procedure. +To specify a different procedure, use the form +.DS +\v'.25m'*\v'-.25m'sub:i/ +.DE +to display variable i in procedure sub. +Section 3.2 will explain how to change the current procedure. +.PP +Sdb normally displays the variable in a format determined by +its type as declared in the C program. +To request a different format, a specifier is placed after +the slash. +The specifier consists of an optional length specification +followed by the format. +The length specifiers are +.nr PD 0 +.DS +.IP \fBb\fP +one byte +.IP \fBh\fP +two bytes (half word) +.IP \fBl\fP +four bytes (long word) +.DE +.nr PD 0.3v +The lengths are only effective with the formats +\fBd\fP, \fBo\fP, \fBx\fP and \fBu\fP. +If no length is specified, the word length of the host machine, +four for the DEC VAX-11/780\s-2\u\(dg\d\s+2, is used. +.FS +\(dg\dDEC and VAX are trademarks of Digital Equipment Corporation +.FE +There are a number of format specifiers available: +.nr PD 0 +.DS +.DS +.IP \fBc\fR +character +.IP \fBd\fP +decimal +.IP \fBu\fP +decimal unsigned +.IP \fBo\fP +octal +.IP \fBx\fP +hexadecimal +.IP \fBf\fP +32 bit single precision floating point +.IP \fBg\fP +64 bit double precision floating point +.IP \fBs\fP +Assume variable is a string pointer and print characters until a null is +reached. +.IP \fBa\fP +Print characters starting at the variable's address until a null +is reached. +.DE +.DE +.nr PD 0.3v +As an example, +variable i can be displayed in hexadecimal with the following command +.DS +\v'.25m'*\v'-.25m'i/x +.DE +.PP +Sdb also knows about structures, one dimensional arrays and +pointers +so that all of the following commands work. +.DS +\v'.25m'*\v'-.25m'array[2]/ +\v'.25m'*\v'-.25m'sym.id/ +\v'.25m'*\v'-.25m'psym\(mi>usage/ +\v'.25m'*\v'-.25m'xsym[20].p\(mi>usage/ +.DE +The only restriction is that array subscripts must be numbers. +Note that, as a special case +.DS +\v'.25m'*\v'-.25m'psym\(mi>/d +.DE +displays the location pointed to by psym in decimal. +.PP +Core locations can also be displayed by specifying their absolute +addresses. The command +.DS +\v'.25m'*\v'-.25m'1024/ +.DE +displays location 1024 in decimal. +As in C, +numbers may also be specified in octal or hexadecimal so the above +command is equivalent to both of +.DS +\v'.25m'*\v'-.25m'02000/ +\v'.25m'*\v'-.25m'0x400/ +.DE +It is possible to intermix numbers and variables, so that +.DS +\v'.25m'*\v'-.25m'1000.x/ +.DE +refers to an element of a structure starting at address 1000 and +.DS +\v'.25m'*\v'-.25m'1000\(mi>x/ +.DE +refers to an element of a structure whose address is at 1000. +.PP +The address of a variable is printed with the `=' command, so +.DS +\v'.25m'*\v'-.25m'i= +.DE +displays the address of i. +Another feature whose usefulness will become apparent later is +the command +.DS +\v'.25m'*\v'-.25m'./ +.DE +which redisplays the last variable typed. +.NH +Source file display and manipulation +.PP +Sdb has been designed to make it easy to debug a program without +constant reference to a current source listing. +Facilities are provided which perform context searches +within the source files of the program being debugged +and to display selected portions of the source files. +The commands are similar to those of the UNIX editor ed and ex [1]. +Like these editors, +sdb has a notion of current file and line within the file. +Sdb also knows how the lines of a file are partitioned into +procedures, so that it also has a notion of current procedure. +As noted in other parts of this document, +the current procedure is used by a number of sdb commands. +.NH 2 +Displaying the source file +.PP +Four command exist for displaying lines in the source file. +They are useful for perusing through the source program +and for determining the context of the current line. +The commands are +.DS +.IP \fBw\fP +Window. Print a window of 10 lines around the current line. +.IP \fBz\fP +Print 10 lines starting at the current line. +Advance the current line by 10. +.IP +.ti 0 +\fBcontrol-D\fP +.br +.sp -1 +Scroll. +Print the next 10 lines and advance the current line by 10. +This command is used to cleanly display longs segments of the program. +.DE +.PP +There is also a +.B p +command which prints the current line. +When a line from a file is printed, it is preceded by its line number. +This not only gives an indication of its relative position in the file, +but is also used as input by some sdb commands. +.NH 2 +Changing the current source file or procedure +.PP +The +.B e +command is used to change the current source file. +Either of the forms +.DS +\v'.25m'*\v'-.25m'e procedure +\v'.25m'*\v'-.25m'e file.c +.DE +may be used. +The first causes the file containing the named procedure +to become the current file +and the current line becomes the first line of the procedure. +The other form causes the named file to become current. +In this case the current line is set to the first line of the named file. +Finally, +an +.B e +command with no argument causes the current procedure and file named +to be printed. +.NH 2 +Changing the current line in the source file +.PP +As mentioned in section 3.1, +the +.B z +and +.B control-D +commands have a side effect of changing the current line in the +source file. +This section describes other commands which change the current line. +.PP +There are two commands for searching for regular expressions in +source files. +They are +.DS +\v'.25m'*\v'-.25m'/regular expression/ +\v'.25m'*\v'-.25m'?regular expression? +.DE +The first command searches forward through the file for a line containing +a string which matches the regular expression and the second searches +backwards. +The trailing `/' and `?' may be omitted from these commands. +Regular expression matching is identical to that of ed. +.PP +The +.B + +and +.B \(mi +commands +may be used to move the current line forwards or backwards by a +specified number of lines. +Typing a newline advances the current line by one +and +typing a number causes that line to become the current line +in the file. +These commands may be catenated with the display commands so that +.DS +\v'.25m'*\v'-.25m'+15z +.DE +advances the current line by 15 and then prints 10 lines. +.NH +A controlled environment for program testing +.PP +One very useful feature of sdb +is breakpoint debugging. +After entering the debugger, +certain lines in the source program may be specified to be +.I breakpoints. +The program is then started with a sdb command. +Execution of the program proceeds as normal until +it is about to execute one of the lines at which a breakpoint has +been set. +The program stops and sdb reports which breakpoint the +program is stopped at. +Now, sdb commands may be used to display +the trace of procedure calls and the values of variables. +If the user is satisfied that the program is working correctly +to this point, some breakpoints can be deleted and others set, +and then program execution may be continued from the point where it stopped. +.PP +A useful alternative to setting breakpoints is single stepping. +Sdb can be requested to execute the next line of the program +and them stop. +This feature is especially useful for testing new programs, +so they can be verified on a statement by statement basis. +Note that if an attempt is made to single step through a +procedure which has not been compiled with the `\(mig' flag, +execution proceeds until a statement in a procedure compiled +with the debug flag is reached. +.PP +The current implementation of single +stepping is rather slow. +While this is not a problem when stepping through a single statement, +it may result in long delays while stepping through procedures not +compiled with the debug flag. +This problem is partially alleviated with the +.B n +command which quickly single steps until the +positionally next statement is reached. +.NH 2 +Setting and deleting breakpoints +.PP +Breakpoints can be set at any line in a procedure which contains +executable code. +The command format is: +.DS +\v'.25m'*\v'-.25m'12b +\v'.25m'*\v'-.25m'proc:12b +\v'.25m'*\v'-.25m'proc:b +.DE +The first form sets a breakpoint at line 12 in the current procedure. +The line numbers are relative to the beginning of the file, +as printed by the source file display commands. +The second form sets a breakpoint at line 12 of procedure proc and the third +sets a breakpoint at the first line of proc. +.PP +Breakpoints are deleted similarly with the commands: +.DS +\v'.25m'*\v'-.25m'12d +\v'.25m'*\v'-.25m'proc:12d +\v'.25m'*\v'-.25m'proc:d +.DE +In addition, +if the command +.B d +is given alone, +the breakpoints are deleted interactively. +Each breakpoint location is printed and a line is read from the +user. +If the line begins with a `y' or `d', the breakpoint is deleted. +.PP +A list of the current breakpoints is printed in response to +a +.B b +command. +Beware that breakpoints do strange things if the debugged program +is being run elsewhere at the same time. +.NH 2 +Running the program +.PP +The +.B r +command is used to begin program execution. +It restarts the program as if it were invoked from the shell. +The command +.DS +\v'.25m'*\v'-.25m'r args +.DE +runs the program with the given arguments, +as if they had been typed on the shell command line. +.PP +Execution is continued after a breakpoint with the +.B c +command +and single stepping is accomplished with \fBs\fP. +The +.B n +command is used to run the program until it reaches the positionally +next statement. +.PP +Program execution can also be stopped with the RUBOUT key. +The debugger is entered as if a breakpoint was encountered +so that execution may be continued with +\fBc\fP, \fBs\fP or \fBn\fP. +.NH 2 +Calling procedures +.PP +It is possible to call any of the procedures of the program from +the debugger. +This feature is useful both for testing individual procedures +with different arguments and for calling a procedure which +prints structured data in a nice way. +There are two ways to call a procedure: +.DS +\v'.25m'*\v'-.25m'proc(arg1, arg2, ...) +\v'.25m'*\v'-.25m'proc(arg1, arg2, ...)/ +.DE +The first simply executes the procedure. +The second is intended for calling functions: +It executes the procedure and prints the value that it returns. +The value is printed in decimal unless some other +format is specified. +Arguments to procedures may be integer, character or string constants, +or values of variables which are accessible from the current +procedure. +.PP +An unfortunate bug in the current implementation is that +if a procedure is called when the program is +.I not +stopped at a breakpoint +(such as when a core image is being debugged), +static variables are reinitialized before the procedure is +restarted. +This makes it impossible to use a procedure which +formats data from a dump. +.NH +Other commands +.PP +To exit the debugger, use the +.B q +command. +.PP +The +.B ! +command is identical to that in ed and is used to have the shell +execute a command. +.PP +It is possible to change the values of variables when the program +is stopped at a breakpoint. This is done with the command +.DS +\v'.25m'*\v'-.25m'variable!value +.DE +which sets the variable to the given value. +The value may be a number, character constant or the name of +another variable. +.SH +Acknowledgments +.PP +I would like to thank Bill Joy and Chuck Haley +for their comments and constructive criticisms. +.SH +Reference +.IP [1] +William N. Joy, Ex Reference Manual, Computer Science Division, +University of California, Berkeley, November 1977. +.LP +.SG HO-1353-hpk-sdb +.bp +.SH +Appendix 1. Example of usage. +.bp +.SH +Appendix 2. Manual pages. diff --git a/doc/misc/sdb/sdbsymtab.n b/doc/misc/sdb/sdbsymtab.n new file mode 100644 index 00000000..3981b0f9 --- /dev/null +++ b/doc/misc/sdb/sdbsymtab.n @@ -0,0 +1,371 @@ +.so /usr/lib/tmac/tmac.s +.MF +.TL +Symbol Table Format for Sdb +.ft R +.br +.ps -2 +Case: 39394 File 39394 +.ps +2 +.ft R +.AU +H.P. Katseff +.AI +.HO +.NH +Introduction. +.PP +A symbolic debugger, sdb, +has been implemented for the UNIX/32V operating system. +This document describes modifications made to +the C compiler to generate additional +information about the compiled program and to the +assembler and loader to process the information. +It also describes information recognized by the assembler, the loader +and sdb which are intended for use by compilers for other languages +such as F77. +.NH +The C Compiler +.PP +The C compiler was modified to generate additional symbol table +information describing a compiled program. +Two new types of symbol table entries are made. +One describes the variables, giving +their class (local, register, parameter, global, etc.), +their declared type in the program +and their address or offset. +An additional entry is made for structures giving their size. +The other type of entry provides a mapping between the source program +and the object program. +There is an entry for each source line, procedure and source file +giving their addresses in the object file. +All line numbers are relative to the beginning of +the source file. +.PP +All entries are generated with the new assembler pseudo-operation +`.stab'. +It always takes 12 arguments of which the first eight usually +represent the name of the symbol as declared in the C program. +An underscore is +.ul +not +prepended to the name as in some other symbol table entries. +A typical entry would be +.DS C +\&.stab 'e,'r,'r,'f,'l,'g,0,0,046,0,05,_errflg +.DE +For expository convenience, +names in .stab entries will be listed as one word instead of +eight separate characters. +.NH 2 +External symbols defined with .comm +.PP +The following entry is made for each external symbol which is +defined with a .comm pseudo-op. +.DS C +\&.stab name,040,0,type,0 +.DE +The type is a 16-bit value describing the variable's declared type. +This field is described in section 2.13. +The debugger determines the variable's address +from the entry made with the .comm. +It assumes that the name for this entry is _name. +.NH 2 +Symbols defined within .data areas +.PP +The following entry is made for each symbol which is defined +as a label in a data area. +.DS C +\&.stab name,046,0,type,address +.DE +The type is the variable's declared type. +The address is given symbolically as the label. +.NH 2 +Symbols defined with .lcomm +.PP +The following entry is made for each symbol which is defined with +a .lcomm pseudo-op. +.DS C +\&.stab name,048,0,type,address +.DE +The type is the variable's declared type. +The address is given symbolically as the label. +The specification of an octal constant with an 8 occurs for historical +reasons. +.NH 2 +Register symbols +.PP +The following entry is made for each variable whose value +is in a register. +.DS C +\&.stab name,0100,0,type,register +.DE +The type is the variable's declared type. +The register is the register number assigned to the variable. +.NH 2 +Local non-register symbols +.PP +The following entry is made for each local, non-register variable. +.DS C +\&.stab name,0200,0,type,offset +.DE +The type is the variable's declared type. +The offset is a positive number indicating its offset in bytes for the +frame pointer. +.NH 2 +Parameter symbols +.PP +The following entry is made for each procedure parameter. +.DS C +\&.stab name,0240,0,type,offset +.DE +The type is the variable's declared type. +The offset is a positive number indicating its offset in bytes from +the stack pointer. +.NH 2 +Structure elements +.PP +The following entry is made for each structure element. +.DS C +\&.stab name,0140,0,type,offset +.DE +The type is the element's declared type. +The offset is its offset within the structure in bytes. +.NH 2 +Structure symbols +.PP +An additional entry is made for structures giving their size in bytes. +It immediately follows their defining .stab entry. +It is of the form +.DS C +\&.stab name,0376,0,0,length +.DE +.NH 2 +Common blocks +.PP +The following sequence of entries is used to describe elements of +Fortran equivalence and common blocks. +The first is of the form +.DS C +\&.stab 0,0342,0,0,0 +.DE +The entries for each element of the block should then appear +as if they were structure elements. +Finally, one of the following +two entries is used depending on the type of common +or equivalence block. +If the block is defined as a .globl symbol, use the entry +.DS C +\&.stab name,0344,0,0,0 +.DE +where name is the name of the block defined in the .globl statement. +It the block is defined in some other way, use +.DS C +\&.stab 0,0348,0,0,address +.DE +.NH 2 +Brackets +.PP +Since C is a block-structured language, +it is necessary to know the extent of each block containing symbol definitions. +An entry is made for each right and left bracket which encloses +a block with definitions. +The following entries are for left and right brackets respectively. +.DS C +\&.stab 0,0300,0,nesting level,address +\&.stab 0,0340,0,nesting level,address +.DE +The nesting level is the static nesting level of the block. +It is currently ignored by the debugger. +The address is the address of the first byte of code for the block +for the left brackets and the first byte following the block +for right brackets. +.NH 2 +Procedures +.PP +The following entry is made for each procedure. +.DS C +\&.stab name,044,0,linenumber,address +.DE +The linenumber is the number of the first line of the procedure in the +source file. +The address is the address of the first byte of the procedure. +.NH 2 +Lines +.PP +The following entry is made for each line in the source program. +.DS C +\&.stab 0,0104,0,linenumber,address +.DE +The linenumber is its number. +The address is the address of the first byte of code for the line. +For each block of the program, +the linenumber entries for that block should follow the entries +for the variables of that block. +.NH 2 +Source files +.PP +The following entries are made for each source file. +.DS C +\&.stab name1,0144,0,0,address +\&.stab name2,0144,0,0,address +\&... +\&.stab namen,0144,0,0,address +.DE +Each entry contains 8 successive bytes of the name of the source file. +The name is terminated by a null byte. +All bytes following this one should also be null. +The address is the address of the first byte of code for the first +procedure of the file. +.NH 2 +Included source files +.PP +The following entry is made for each included source file which +generates code. +.DS C +\&.stab name1,0204,0,0,address +\&.stab name2,0204,0,0,address +\&... +\&.stab namen,0204,0,0,address +.DE +This entry should appear each time the file is included. +A similar entry giving the name of the original file should be +made at the end of the include. +The format of the name is identical to that for files. +This feature is heavily used by programs generated by yacc and lex. +.NH 2 +Format of types. +.PP +This 16 bit quantity type describes the declared type of a variable. +We use the same scheme as in S.C. Johnson's Portable C Compiler +[Johnson, 1978]. +The type is divided into the following fields: +.DS + struct { + short basic:4; + d1:2, + d2:2, + d3:2, + d4:2, + d5:2, + d6:2, + } +.DE +There are four derived types: +.DS + 0 none + 1 pointer + 2 function + 3 array +.DE +They are indicated in the two bit fields d1, d2, d3, d4, d5 and d6. +The four bit field basic indicates the basic type as follows: +.DS + 0 undefined + 1 function argument + 2 character + 3 short + 4 int + 5 long + 6 float + 7 double + 8 structure + 9 union + 10 enumerated type + 11 member of enumerated type + 12 unsigned character + 13 unsigned short + 14 unsigned + 15 unsigned long +.DE +.NH 1 +The assembler and loader +.PP +Each .stab pseudo-operation generates one entry in the symbol table. +The entry is of the form: +.DS + struct { + char name[8]; + char type; + char other; + short desc; + unsigned value; + } +.DE +.PP +The loader uses the four least significant bits of the type field +to determine how to relocate the .stab entry. +The following are currently used. +.DS + 0 none + 4 text + 6 data +.DE +.PP +It is necessary for the assembler and loader to preserve the order +of symbol table entries produced by .stab pseudo-ops. +.SH +Reference +.LP +Johnson, S.C., "A Portable Compiler: Theory and Practice", +.I +Proc. 5th ACM Symp. on Principles of Programming Languages, +.R +January 1978. +.bp +.SH +Appendix +.PP +The following definitions are extracted from the file /usr/include/a.out.h. +.sp 1 +.nf +.na +struct nlist { /* symbol table entry */ + char n_name[8]; /* symbol name */ + char n_type; /* type flag */ + char n_other; + short n_desc; + unsigned n_value; /* value */ +}; + + /* values for type flag */ +#define N_UNDF 0 /* undefined */ +#define N_ABS 02 /* absolute */ +#define N_TEXT 04 /* text */ +#define N_DATA 06 /* data */ +#define N_BSS 08 +#define N_TYPE 037 +#define N_FN 037 /* file name symbol */ + +#define N_GSYM 0040 /* global sym: name,,type,0 */ +#define N_FUN 0044 /* function: name,,linenumber,address */ +#define N_STSYM 0046 /* static symbol: name,,type,address */ +#define N_LCSYM 0048 /* .lcomm symbol: name,,type,address */ +#define N_RSYM 0100 /* register sym: name,,register,offset */ +#define N_SLINE 0104 /* src line: ,,linenumber,address */ +#define N_SSYM 0140 /* structure elt: name,,type,struct_offset */ +#define N_SO 0144 /* source file name: name,,,address */ +#define N_LSYM 0200 /* local sym: name,,type,offset */ +#define N_SOL 0204 /* #line source filename: name,,,address */ +#define N_PSYM 0240 /* parameter: name,,type,offset */ +#define N_LBRAC 0300 /* left bracket: ,,nesting level,address */ +#define N_RBRAC 0340 /* right bracket: ,,nesting level,address */ +#define N_BCOMM 0342 /* begin common: name,,, */ +#define N_ECOMM 0344 /* end common: name,,, */ +#define N_ECOML 0348 /* end common (local name): ,,,address */ +#define N_LENG 0376 /* second stab entry with length information */ + +#define N_EXT 01 /* external bit, or'ed in */ + +#define FORMAT "%08x" + +#define STABTYPES 0340 +.fi +.ad +.SG HO-1353-HPK-sdb +.sp 2 +Copy to +.br +R.W. Lucky +.br +C.S. Roberts diff --git a/doc/misc/sysperf/0.t b/doc/misc/sysperf/0.t new file mode 100644 index 00000000..fcd5207a --- /dev/null +++ b/doc/misc/sysperf/0.t @@ -0,0 +1,236 @@ +.\" Copyright (c) 1985 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)0.t 1.3 (Berkeley) 11/30/85 +.\" +.if n .ND +.TL +Measuring and Improving the Performance of Berkeley UNIX* +.sp +November 30, 1985 +.AU +Marshall Kirk McKusick, +Samuel J. Leffler\(dg, +Michael J. Karels, +Luis Felipe Cabrera\(dd +.AI +Computer Systems Research Group +Computer Science Division +Department of Electrical Engineering and Computer Science +University of California, Berkeley +Berkeley, CA 94720 +.AB +.FS +* UNIX is a trademark of AT&T Bell Laboratories. +.FE +.FS +\(dg Samuel J. Leffler is currently employed by: +Lucasfilm Ltd., PO Box 2009, San Rafael, CA 94912 +.FE +.FS +\(dd Luis Felipe Cabrera is currently employed by: +Computer Science Department, IBM Research Laboratory, 5600 Cottle Road, +San Jose, California 95193. +.FE +.FS +This work was done under grants from +the National Science Foundation under grant MCS80-05144, +and the Defense Advance Research Projects Agency (DoD) under +ARPA Order No. 4031 monitored by Naval Electronic System Command under +Contract No. N00039-82-C-0235. +.FE +The 4.2 Berkeley Software Distribution of +.UX +for the VAX\(dd +.FS +\(dd VAX, MASSBUS, UNIBUS, and DEC are trademarks of +Digital Equipment Corporation. +.FE +had several problems that could severely affect the overall +performance of the system. +These problems were identified with +kernel profiling and system tracing during day to day use. +Once potential problem areas had been identified +benchmark programs were devised to highlight the bottlenecks. +These benchmarks verified that the problems existed and provided +a metric against which to validate proposed solutions. +This paper examines +the performance problems encountered and describes +modifications that have been made +to the system since the initial distribution. +.PP +The changes to the system have consisted of improvements to the +performance of the existing facilities, +as well as enhancements to the current facilities. +Performance improvements in the kernel include cacheing of path name +translations, reductions in clock handling and scheduling overhead, +and improved throughput of the network subsystem. +Performance improvements in the libraries and utilities include replacement of +linear searches of system databases with indexed lookup, +merging of most network services into a single daemon, +and conversion of system utilities to use the more efficient +facilities available in 4.2BSD. +Enhancements in the kernel include the addition of subnets and gateways, +increases in many kernel limits, +cleanup of the signal and autoconfiguration implementations, +and support for windows and system logging. +Functional extensions in the libraries and utilities include +the addition of an Internet name server, +new system management tools, +and extensions to \fIdbx\fP to work with Pascal. +The paper concludes with a brief discussion of changes made to +the system to enhance security. +All of these enhancements are present in Berkeley UNIX 4.3BSD. +.AE +.LP +.sp 2 +CR Categories and Subject Descriptors: +D.4.3 +.B "[Operating Systems]": +File Systems Management \- +.I "file organization, directory structures, access methods"; +D.4.2 +.B "[Operating Systems]": +Storage Management \- +.I "allocation/deallocation strategies, secondary storage devices"; +D.4.8 +.B "[Operating Systems]": +Performance \- +.I "measurements, operational analysis"; +H.3.2 +.B "[Information Systems]": +Information Storage \- +.I "file organization" +.sp +Additional Keywords and Phrases: +Berkeley UNIX, +file system organization, +file system performance, +file system design, +application program interface. +.sp +General Terms: +file system, +measurement, +performance. +.de PT +.lt \\n(LLu +.pc % +.nr PN \\n% +.tl '\\*(LH'\\*(CH'\\*(RH' +.lt \\n(.lu +.. +.af PN i +.ds LH Performance +.ds RH Contents +.bp 1 +.if t .ds CF November 30, 1985 +.if t .ds LF DRAFT +.if t .ds RF McKusick, et. al. +.ce +.B "TABLE OF CONTENTS" +.LP +.sp 1 +.nf +.B "1. Introduction" +.LP +.sp .5v +.nf +.B "2. Observation techniques +\0.1. System maintenance tools +\0.2. Kernel profiling +\0.3. Kernel tracing +\0.4. Benchmark programs +.LP +.sp .5v +.nf +.B "3. Results of our observations +\0.1. User programs +\0.1.1. Mail system +\0.1.2. Network servers +\0.2. System overhead +\0.2.1. Micro-operation benchmarks +\0.2.2. Path name translation +\0.2.3. Clock processing +\0.2.4. Terminal multiplexors +\0.2.5. Process table management +\0.2.6. File system buffer cache +\0.2.7. Network subsystem +\0.2.8. Virtual memory subsystem +.LP +.sp .5v +.nf +.B "4. Performance Improvements +\0.1. Performance Improvements in the Kernel +\0.1.1. Name Cacheing +\0.1.2. Intelligent Auto Siloing +\0.1.3. Process Table Management +\0.1.4. Scheduling +\0.1.5. Clock Handling +\0.1.6. File System +\0.1.7. Network +\0.1.8. Exec +\0.1.9. Context Switching +\0.1.10. Setjmp and Longjmp +\0.1.11. Compensating for Lack of Compiler Technology +\0.2. Improvements to Libraries and Utilities +\0.2.1. Hashed Databases +\0.2.2. Buffered I/O +\0.2.3. Mail System +\0.2.4. Network Servers +\0.2.5. The C Run-time Library +\0.2.6. Csh +.LP +.sp .5v +.nf +.B "5. Functional Extensions +\0.1. Kernel Extensions +\0.1.1. Subnets, Broadcasts, and Gateways +\0.1.2. Interface Addressing +\0.1.3. User Control of Network Buffering +\0.1.4. Number of File Descriptors +\0.1.5. Kernel Limits +\0.1.6. Memory Management +\0.1.7. Signals +\0.1.8. System Logging +\0.1.9. Windows +\0.1.10. Configuration of UNIBUS Devices +\0.1.11. Disk Recovery from Errors +\0.2. Functional Extensions to Libraries and Utilities +\0.2.1. Name Server +\0.2.2. System Management +\0.2.3. Routing +\0.2.4. Compilers +.LP +.sp .5v +.nf +.B "6. Security Tightening +\0.1. Generic Kernel +\0.2. Security Problems in Utilities +.LP +.sp .5v +.nf +.B "7. Conclusions +.LP +.sp .5v +.nf +.B Acknowledgements +.LP +.sp .5v +.nf +.B References +.LP +.sp .5v +.nf +.B "Appendix \- Benchmark Programs" +.de _d +.if t .ta .6i 2.1i 2.6i +.\" 2.94 went to 2.6, 3.64 to 3.30 +.if n .ta .84i 2.6i 3.30i +.. +.de _f +.if t .ta .5i 1.25i 2.5i +.\" 3.5i went to 3.8i +.if n .ta .7i 1.75i 3.8i +.. diff --git a/doc/misc/sysperf/1.t b/doc/misc/sysperf/1.t new file mode 100644 index 00000000..8b9043e7 --- /dev/null +++ b/doc/misc/sysperf/1.t @@ -0,0 +1,54 @@ +.\" Copyright (c) 1985 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)1.t 1.2 (Berkeley) 8/11/85 +.\" +.ds RH Introduction +.af PN 1 +.bp 1 +.NH +Introduction +.PP +The Berkeley Software Distributions of +.UX +for the VAX have added many new capabilities that were +previously unavailable under +.UX . +The development effort for 4.2BSD concentrated on providing new +facilities, and in getting them to work correctly. +Many new data structures were added to the system to support +these new capabilities. +In addition, +many of the existing data structures and algorithms +were put to new uses or their old functions placed under increased demand. +The effect of these changes was that +mechanisms that were well tuned under 4.1BSD +no longer provided adequate performance for 4.2BSD. +The increased user feedback that came with the release of +4.2BSD and a growing body of experience with the system +highlighted the performance shortcomings of 4.2BSD. +.PP +This paper details the work that we have done since +the release of 4.2BSD to measure the performance of the system, +detect the bottlenecks, +and find solutions to remedy them. +Most of our tuning has been in the context of the real +timesharing systems in our environment. +Rather than using simulated workloads, +we have sought to analyze our tuning efforts under +realistic conditions. +Much of the work has been done in the machine independent parts +of the system, hence these improvements could be applied to +other variants of UNIX with equal success. +All of the changes made have been included in 4.3BSD. +.PP +Section 2 of the paper describes the tools and techniques +available to us for measuring system performance. +In Section 3 we present the results of using these tools, while Section 4 +has the performance improvements +that have been made to the system based on our measurements. +Section 5 highlights the functional enhancements that have +been made to Berkeley UNIX 4.2BSD. +Section 6 discusses some of the security problems that +have been addressed. diff --git a/doc/misc/sysperf/2.t b/doc/misc/sysperf/2.t new file mode 100644 index 00000000..ad6c1463 --- /dev/null +++ b/doc/misc/sysperf/2.t @@ -0,0 +1,231 @@ +.\" Copyright (c) 1985 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)2.t 1.2 (Berkeley) 8/11/85 +.\" +.ds RH Observation techniques +.NH +Observation techniques +.PP +There are many tools available for monitoring the performance +of the system. +Those that we found most useful are described below. +.NH 2 +System maintenance tools +.PP +Several standard maintenance programs are invaluable in +observing the basic actions of the system. +The \fIvmstat\fP(1) +program is designed to be an aid to monitoring +systemwide activity. Together with the +\fIps\fP\|(1) +command (as in ``ps av''), it can be used to investigate systemwide +virtual memory activity. +By running \fIvmstat\fP +when the system is active you can judge the system activity in several +dimensions: job distribution, virtual memory load, paging and swapping +activity, disk and cpu utilization. +Ideally, to have a balanced system in activity, +there should be few blocked (b) jobs, +there should be little paging or swapping activity, there should +be available bandwidth on the disk devices (most single arms peak +out at 25-35 tps in practice), and the user cpu utilization (us) should +be high (above 50%). +.PP +If the system is busy, then the count of active jobs may be large, +and several of these jobs may often be blocked (b). If the virtual +memory is active, then the paging demon will be running (sr will +be non-zero). It is healthy for the paging demon to free pages when +the virtual memory gets active; it is triggered by the amount of free +memory dropping below a threshold and increases its pace as free memory +goes to zero. +.PP +If you run \fIvmstat\fP +when the system is busy (a ``vmstat 5'' gives all the +numbers computed by the system), you can find +imbalances by noting abnormal job distributions. If many +processes are blocked (b), then the disk subsystem +is overloaded or imbalanced. If you have several non-dma +devices or open teletype lines that are ``ringing'', or user programs +that are doing high-speed non-buffered input/output, then the system +time may go high (60-80% or higher). +It is often possible to pin down the cause of high system time by +looking to see if there is excessive context switching (cs), interrupt +activity (in) or system call activity (sy). Long term measurements +on one of +our large machines show +an average of 60 context switches and interrupts +per second and an average of 90 system calls per second. +.PP +If the system is heavily loaded, or if you have little memory +for your load (1 megabyte is little in our environment), then the system +may be forced to swap. This is likely to be accompanied by a noticeable +reduction in the system responsiveness and long pauses when interactive +jobs such as editors swap out. +.PP +A second important program is \fIiostat\fP\|(1). +\fIIostat\fP +iteratively reports the number of characters read and written to terminals, +and, for each disk, the number of transfers per second, kilobytes +transferred per second, +and the milliseconds per average seek. +It also gives the percentage of time the system has +spent in user mode, in user mode running low priority (niced) processes, +in system mode, and idling. +.PP +To compute this information, for each disk, seeks and data transfer completions +and the number of words transferred are counted; +for terminals collectively, the number +of input and output characters are counted. +Also, every 100 ms, +the state of each disk is examined +and a tally is made if the disk is active. +From these numbers and the transfer rates +of the devices it is possible to determine +average seek times for each device. +.PP +When filesystems are poorly placed on the available +disks, figures reported by \fIiostat\fP can be used +to pinpoint bottlenecks. Under heavy system load, disk +traffic should be spread out among the drives with +higher traffic expected to the devices where the root, swap, and +/tmp filesystems are located. When multiple disk drives are +attached to the same controller, the system will +attempt to overlap seek operations with I/O transfers. When +seeks are performed, \fIiostat\fP will show +non-zero average seek times. Most modern disk drives should +exhibit an average seek time of 25-35 ms. +.PP +Terminal traffic reported by \fIiostat\fP should be heavily +output oriented unless terminal lines are being used for +data transfer by programs such as \fIuucp\fP. Input and +output rates are system specific. Screen editors +such as \fIvi\fP and \fIemacs\fP tend to exhibit output/input +ratios of anywhere from 5/1 to 8/1. On one of our largest +systems, 88 terminal lines plus 32 pseudo terminals, we observed +an average of 180 characters/second input and 450 characters/second +output over 4 days of operation. +.NH 2 +Kernel profiling +.PP +It is simple to build a 4.2BSD kernel that will automatically +collect profiling information as it operates simply by specifying the +.B \-p +option to \fIconfig\fP\|(8) when configuring a kernel. +The program counter sampling can be driven by the system clock, +or by an alternate real time clock. +The latter is highly recommended as use of the system clock results +in statistical anomalies in accounting for +the time spent in the kernel clock routine. +.PP +Once a profiling system has been booted statistic gathering is +handled by \fIkgmon\fP\|(8). +\fIKgmon\fP allows profiling to be started and stopped +and the internal state of the profiling buffers to be dumped. +\fIKgmon\fP can also be used to reset the state of the internal +buffers to allow multiple experiments to be run without +rebooting the machine. +.PP +The profiling data is processed with \fIgprof\fP\|(1) +to obtain information regarding the system's operation. +Profiled systems maintain histograms of the kernel program counter, +the number of invocations of each routine, +and a dynamic call graph of the executing system. +The postprocessing propagates the time spent in each +routine along the arcs of the call graph. +\fIGprof\fP then generates a listing for each routine in the kernel, +sorted according to the time it uses +including the time of its call graph descendents. +Below each routine entry is shown its (direct) call graph children, +and how their times are propagated to this routine. +A similar display above the routine shows how this routine's time and the +time of its descendents is propagated to its (direct) call graph parents. +.PP +A profiled system is about 5-10% larger in its text space because of +the calls to count the subroutine invocations. +When the system executes, +the profiling data is stored in a buffer that is 1.2 +times the size of the text space. +All the information is summarized in memory, +it is not necessary to have a trace file +being continuously dumped to disk. +The overhead for running a profiled system varies; +under normal load we see anywhere from 5-25% +of the system time spent in the profiling code. +Thus the system is noticeably slower than an unprofiled system, +yet is not so bad that it cannot be used in a production environment. +This is important since it allows us to gather data +in a real environment rather than trying to +devise synthetic work loads. +.NH 2 +Kernel tracing +.PP +The kernel can be configured to trace certain operations by +specifying ``options TRACE'' in the configuration file. This +forces the inclusion of code that records the occurrence of +events in \fItrace records\fP in a circular buffer in kernel +memory. Events may be enabled/disabled selectively while the +system is operating. Each trace record contains a time stamp +(taken from the VAX hardware time of day clock register), an +event identifier, and additional information that is interpreted +according to the event type. Buffer cache operations, such as +initiating a read, include +the disk drive, block number, and transfer size in the trace record. +Virtual memory operations, such as a pagein completing, include +the virtual address and process id in the trace record. The circular +buffer is normally configured to hold 256 16-byte trace records.\** +.FS +\** The standard trace facilities distributed with 4.2 +differ slightly from those described here. The time stamp in the +distributed system is calculated from the kernel's time of day +variable instead of the VAX hardware register, and the buffer cache +trace points do not record the transfer size. +.FE +.PP +Several user programs were written to sample and interpret the +tracing information. One program runs in the background and +periodically reads the circular buffer of trace records. The +trace information is compressed, in some instances interpreted +to generate additional information, and a summary is written to a +file. In addition, the sampling program can also record +information from other kernel data structures, such as those +interpreted by the \fIvmstat\fP program. Data written out to +a file is further buffered to minimize I/O load. +.PP +Once a trace log has been created, programs that compress +and interpret the data may be run to generate graphs showing the +data and relationships between traced events and +system load. +.PP +The trace package was used mainly to investigate the operation of +the file system buffer cache. The sampling program maintained a +history of read-ahead blocks and used the trace information to +calculate, for example, percentage of read-ahead blocks used. +.NH 2 +Benchmark programs +.PP +Benchmark programs were used in two ways. First, a suite of +programs was constructed to calculate the cost of certain basic +system operations. Operations such as system call overhead and +context switching time are critically important in evaluating the +overall performance of a system. Because of the drastic changes in +the system between 4.1BSD and 4.2BSD, it was important to verify +the overhead of these low level operations had not changed appreciably. +.PP +The second use of benchmarks was in exercising +suspected bottlenecks. +When we suspected a specific problem with the system, +a small benchmark program was written to repeatedly use +the facility. +While these benchmarks are not useful as a general tool +they can give quick feedback on whether a hypothesized +improvement is really having an effect. +It is important to realize that the only real assurance +that a change has a beneficial effect is through +long term measurements of general timesharing. +We have numerous examples where a benchmark program +suggests vast improvements while the change +in the long term system performance is negligible, +and conversely examples in which the benchmark program run more slowly, +but the long term system performance improves significantly. diff --git a/doc/misc/sysperf/3.t b/doc/misc/sysperf/3.t new file mode 100644 index 00000000..da850dbc --- /dev/null +++ b/doc/misc/sysperf/3.t @@ -0,0 +1,667 @@ +.\" Copyright (c) 1985 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)3.t 1.2 (Berkeley) 8/11/85 +.\" +.ds RH Results of our observations +.NH +Results of our observations +.PP +When 4.2BSD was first installed on several large timesharing systems +the degradation in performance was significant. +Informal measurements showed 4.2BSD providing 80% of the throughput +of 4.1BSD (based on load averages observed under a normal timesharing load). +Many of the initial problems found were because of programs that were +not part of 4.1BSD. Using the techniques described in the previous +section and standard process profiling several problems were identified. +Later work concentrated on the operation of the kernel itself. +In this section we discuss the problems uncovered; in the next +section we describe the changes made to the system. +.NH 2 +User programs +.PP +.NH 3 +Mail system +.PP +The mail system was the first culprit identified as a major +contributor to the degradation in system performance. +At Lucasfilm the mail system is heavily used +on one machine, a VAX-11/780 with eight megabytes of memory.\** +.FS +\** During part of these observations the machine had only four +megabytes of memory. +.FE +Message +traffic is usually between users on the same machine and ranges from +person-to-person telephone messages to per-organization distribution +lists. After conversion to 4.2BSD, it was +immediately noticed that mail to distribution lists of 20 or more people +caused the system load to jump by anywhere from 3 to 6 points. +The number of processes spawned by the \fIsendmail\fP program and +the messages sent from \fIsendmail\fP to the system logging +process, \fIsyslog\fP, generated significant load both from their +execution and their interference with basic system operation. The +number of context switches and disk transfers often doubled while +\fIsendmail\fP operated; the system call rate jumped dramatically. +System accounting information consistently +showed \fIsendmail\fP as the top cpu user on the system. +.NH 3 +Network servers +.PP +The network services provided in 4.2BSD add new capabilities to the system, +but are not without cost. The system uses one daemon process to accept +requests for each network service provided. The presence of many +such daemons increases the numbers of active processes and files, +and requires a larger configuration to support the same number of users. +The overhead of the routing and status updates can consume +several percent of the cpu. +Remote logins and shells incur more overhead +than their local equivalents. +For example, a remote login uses three processes and a +pseudo-terminal handler in addition to the local hardware terminal +handler. When using a screen editor, sending and echoing a single +character involves four processes on two machines. +The additional processes, context switching, network traffic, and +terminal handler overhead can roughly triple the load presented by one +local terminal user. +.NH 2 +System overhead +.PP +To measure the costs of various functions in the kernel, +a profiling system was run for a 17 hour +period on one of our general timesharing machines. +While this is not as reproducible as a synthetic workload, +it certainly represents a realistic test. +This test was run on several occasions over a three month period. +Despite the long period of time that elapsed +between the test runs the shape of the profiles, +as measured by the number of times each system call +entry point was called, were remarkably similar. +.PP +These profiles turned up several bottlenecks that are +discussed in the next section. +Several of these were new to 4.2BSD, +but most were caused by overloading of mechanisms +which worked acceptably well in previous BSD systems. +The general conclusion from our measurements was that +the ratio of user to system time had increased from +45% system / 55% user in 4.1BSD to 57% system / 43% user +in 4.2BSD. +.NH 3 +Micro-operation benchmarks +.PP +To compare certain basic system operations +between 4.1BSD and 4.2BSD a suite of benchmark +programs was constructed and run on a VAX-11/750 with 4.5 megabytes +of physical memory and two disks on a MASSBUS controller. +Tests were run with the machine operating in single user mode +under both 4.1BSD and 4.2BSD. Paging was localized to the drive +where the root file system was located. +.PP +The benchmark programs were modeled after the Kashtan benchmarks, +[Kashtan80], with identical sources compiled under each system. +The programs and their intended purpose are described briefly +before the presentation of the results. The benchmark scripts +were run twice with the results shown as the average of +the two runs. +The source code for each program and the shell scripts used during +the benchmarks are included in the Appendix. +.PP +The set of tests shown in Table 1 was concerned with +system operations other than paging. The intent of most +benchmarks is clear. The result of running \fIsignocsw\fP is +deducted from the \fIcsw\fP benchmark to calculate the context +switch overhead. The \fIexec\fP tests use two different jobs to gauge +the cost of overlaying a larger program with a smaller one +and vice versa. The +``null job'' and ``big job'' differ solely in the size of their data +segments, 1 kilobyte versus 256 kilobytes. In both cases the +text segment of the parent is larger than that of the child.\** +.FS +\** These tests should also have measured the cost of expanding the +text segment; unfortunately time did not permit running additional tests. +.FE +All programs were compiled into the default load format that causes +the text segment to be demand paged out of the file system and shared +between processes. +.KF +.DS L +.TS +center box; +l | l. +Test Description +_ +syscall perform 100,000 \fIgetpid\fP system calls +csw perform 10,000 context switches using signals +signocsw send 10,000 signals to yourself +pipeself4 send 10,000 4-byte messages to yourself +pipeself512 send 10,000 512-byte messages to yourself +pipediscard4 send 10,000 4-byte messages to child who discards +pipediscard512 send 10,000 512-byte messages to child who discards +pipeback4 exchange 10,000 4-byte messages with child +pipeback512 exchange 10,000 512-byte messages with child +forks0 fork-exit-wait 1,000 times +forks1k sbrk(1024), fault page, fork-exit-wait 1,000 times +forks100k sbrk(102400), fault pages, fork-exit-wait 1,000 times +vforks0 vfork-exit-wait 1,000 times +vforks1k sbrk(1024), fault page, vfork-exit-wait 1,000 times +vforks100k sbrk(102400), fault pages, vfork-exit-wait 1,000 times +execs0null fork-exec ``null job''-exit-wait 1,000 times +execs0null (1K env) execs0null above, with 1K environment added +execs1knull sbrk(1024), fault page, fork-exec ``null job''-exit-wait 1,000 times +execs1knull (1K env) execs1knull above, with 1K environment added +execs100knull sbrk(102400), fault pages, fork-exec ``null job''-exit-wait 1,000 times +vexecs0null vfork-exec ``null job''-exit-wait 1,000 times +vexecs1knull sbrk(1024), fault page, vfork-exec ``null job''-exit-wait 1,000 times +vexecs100knull sbrk(102400), fault pages, vfork-exec ``null job''-exit-wait 1,000 times +execs0big fork-exec ``big job''-exit-wait 1,000 times +execs1kbig sbrk(1024), fault page, fork-exec ``big job''-exit-wait 1,000 times +execs100kbig sbrk(102400), fault pages, fork-exec ``big job''-exit-wait 1,000 times +vexecs0big vfork-exec ``big job''-exit-wait 1,000 times +vexecs1kbig sbrk(1024), fault pages, vfork-exec ``big job''-exit-wait 1,000 times +vexecs100kbig sbrk(102400), fault pages, vfork-exec ``big job''-exit-wait 1,000 times +.TE +.ce +Table 1. Kernel Benchmark programs. +.DE +.KE +.PP +The results of these tests are shown in Table 2. If the 4.1BSD results +are scaled to reflect their being run on a VAX-11/750, they +correspond closely to those found in [Joy80].\** +.FS +\** We assume that a VAX-11/750 runs at 60% of the speed of a VAX-11/780 +(not considering floating point operations). +.FE +.KF +.DS L +.TS +center box; +c s s s s s s s s s +c || c s s || c s s || c s s +c || c s s || c s s || c s s +c || c | c | c || c | c | c || c | c | c +l || n | n | n || n | n | n || n | n | n. +Berkeley Software Distribution UNIX Systems +_ +Test Elapsed Time User Time System Time +\^ _ _ _ +\^ 4.1 4.2 4.3 4.1 4.2 4.3 4.1 4.2 4.3 += +syscall 28.0 29.0 23.0 4.5 5.3 3.5 23.9 23.7 20.4 +csw 45.0 60.0 45.0 3.5 4.3 3.3 19.5 25.4 19.0 +signocsw 16.5 23.0 16.0 1.9 3.0 1.1 14.6 20.1 15.2 +pipeself4 21.5 29.0 26.0 1.1 1.1 0.8 20.1 28.0 25.6 +pipeself512 47.5 59.0 55.0 1.2 1.2 1.0 46.1 58.3 54.2 +pipediscard4 32.0 42.0 36.0 3.2 3.7 3.0 15.5 18.8 15.6 +pipediscard512 61.0 76.0 69.0 3.1 2.1 2.0 29.7 36.4 33.2 +pipeback4 57.0 75.0 66.0 2.9 3.2 3.3 25.1 34.2 29.7 +pipeback512 110.0 138.0 125.0 3.1 3.4 2.2 52.2 65.7 57.7 +forks0 37.5 41.0 22.0 0.5 0.3 0.3 34.5 37.6 21.5 +forks1k 40.0 43.0 22.0 0.4 0.3 0.3 36.0 38.8 21.6 +forks100k 217.5 223.0 176.0 0.7 0.6 0.4 214.3 218.4 175.2 +vforks0 34.5 37.0 22.0 0.5 0.6 0.5 27.3 28.5 17.9 +vforks1k 35.0 37.0 22.0 0.6 0.8 0.5 27.2 28.6 17.9 +vforks100k 35.0 37.0 22.0 0.6 0.8 0.6 27.6 28.9 17.9 +execs0null 97.5 92.0 66.0 3.8 2.4 0.6 68.7 82.5 48.6 +execs0null (1K env) 197.0 229.0 75.0 4.1 2.6 0.9 167.8 212.3 62.6 +execs1knull 99.0 100.0 66.0 4.1 1.9 0.6 70.5 86.8 48.7 +execs1knull (1K env) 199.0 230.0 75.0 4.2 2.6 0.7 170.4 214.9 62.7 +execs100knull 283.5 278.0 216.0 4.8 2.8 1.1 251.9 269.3 202.0 +vexecs0null 100.0 92.0 66.0 5.1 2.7 1.1 63.7 76.8 45.1 +vexecs1knull 100.0 91.0 66.0 5.2 2.8 1.1 63.2 77.1 45.1 +vexecs100knull 100.0 92.0 66.0 5.1 3.0 1.1 64.0 77.7 45.6 +execs0big 129.0 201.0 101.0 4.0 3.0 1.0 102.6 153.5 92.7 +execs1kbig 130.0 202.0 101.0 3.7 3.0 1.0 104.7 155.5 93.0 +execs100kbig 318.0 385.0 263.0 4.8 3.1 1.1 286.6 339.1 247.9 +vexecs0big 128.0 200.0 101.0 4.6 3.5 1.6 98.5 149.6 90.4 +vexecs1kbig 125.0 200.0 101.0 4.7 3.5 1.3 98.9 149.3 88.6 +vexecs100kbig 126.0 200.0 101.0 4.2 3.4 1.3 99.5 151.0 89.0 +.TE +.ce +Table 2. Kernel Benchmark results (all times in seconds). +.DE +.KE +.PP +In studying the measurements we found that the basic system call +and context switch overhead did not change significantly +between 4.1BSD and 4.2BSD. The \fIsignocsw\fP results were caused by +the changes to the \fIsignal\fP interface, resulting +in an additional subroutine invocation for each call, not +to mention additional complexity in the system's implementation. +.PP +The times for the use of pipes are significantly higher under +4.2BSD because of their implementation on top of the interprocess +communication facilities. Under 4.1BSD pipes were implemented +without the complexity of the socket data structures and with +simpler code. Further, while not obviously a factor here, +4.2BSD pipes have less system buffer space provided them than +4.1BSD pipes. +.PP +The \fIexec\fP tests shown in Table 2 were performed with 34 bytes of +environment information under 4.1BSD and 40 bytes under 4.2BSD. +To figure the cost of passing data through the environment, +the execs0null and execs1knull tests were rerun with +1065 additional bytes of data. The results are show in Table 3. +.KF +.DS L +.TS +center box; +c || c s || c s || c s +c || c s || c s || c s +c || c | c || c | c || c | c +l || n | n || n | n || n | n. +Test Real User System +\^ _ _ _ +\^ 4.1 4.2 4.1 4.2 4.1 4.2 += +execs0null 197.0 229.0 4.1 2.6 167.8 212.3 +execs1knull 199.0 230.0 4.2 2.6 170.4 214.9 +.TE +.ce +Table 3. Benchmark results with ``large'' environment (all times in seconds). +.DE +.KE +These results show that passing argument data is significantly +slower than under 4.1BSD: 121 ms/byte versus 93 ms/byte. Even using +this factor to adjust the basic overhead of an \fIexec\fP system +call, this facility is more costly under 4.2BSD than under 4.1BSD. +.NH 3 +Path name translation +.PP +The single most expensive function performed by the kernel +is path name translation. +This has been true in almost every UNIX kernel [Mosher80]; +we find that our general time sharing systems do about +500,000 name translations per day. +.PP +Name translations became more expensive in 4.2BSD for several reasons. +The single most expensive addition was the symbolic link. +Symbolic links +have the effect of increasing the average number of components +in path names to be translated. +As an insidious example, +consider the system manager that decides to change /tmp +to be a symbolic link to /usr/tmp. +A name such as /tmp/tmp1234 that previously required two component +translations, +now requires four component translations plus the cost of reading +the contents of the symbolic link. +.PP +The new directory format also changes the characteristics of +name translation. +The more complex format requires more computation to determine +where to place new entries in a directory. +Conversely the additional information allows the system to only +look at active entries when searching, +hence searches of directories that had once grown large +but currently have few active entries are checked quickly. +The new format also stores the length of each name so that +costly string comparisons are only done on names that are the +same length as the name being sought. +.PP +The net effect of the changes is that the average time to +translate a path name in 4.2BSD is 24.2 milliseconds, +representing 40% of the time processing system calls, +that is 19% of the total cycles in the kernel, +or 11% of all cycles executed on the machine. +The times are shown in Table 4. We have no comparable times +for \fInamei\fP under 4.1 though they are certain to +be significantly less. +.KF +.DS L +.TS +center box; +l r r. +part time % of kernel +_ +self 14.3 ms/call 11.3% +child 9.9 ms/call 7.9% +_ +total 24.2 ms/call 19.2% +.TE +.ce +Table 4. Call times for \fInamei\fP in 4.2BSD. +.DE +.KE +.NH 3 +Clock processing +.PP +Nearly 25% of the time spent in the kernel is spent in the clock +processing routines. +(This is a clear indication that to avoid sampling bias when profiling the +kernel with our tools +we need to drive them from an independent clock.) +These routines are responsible for implementing timeouts, +scheduling the processor, +maintaining kernel statistics, +and tending various hardware operations such as +draining the terminal input silos. +Only minimal work is done in the hardware clock interrupt +routine (at high priority), the rest is performed (at a lower priority) +in a software interrupt handler scheduled by the hardware interrupt +handler. +In the worst case, with a clock rate of 100 Hz +and with every hardware interrupt scheduling a software +interrupt, the processor must field 200 interrupts per second. +The overhead of simply trapping and returning +is 3% of the machine cycles, +figuring out that there is nothing to do +requires an additional 2%. +.NH 3 +Terminal multiplexors +.PP +The terminal multiplexors supported by 4.2BSD have programmable receiver +silos that may be used in two ways. +With the silo disabled, each character received causes an interrupt +to the processor. +Enabling the receiver silo allows the silo to fill before +generating an interrupt, allowing multiple characters to be read +for each interrupt. +At low rates of input, received characters will not be processed +for some time unless the silo is emptied periodically. +The 4.2BSD kernel uses the input silos of each terminal multiplexor, +and empties each silo on each clock interrupt. +This allows high input rates without the cost of per-character interrupts +while assuring low latency. +However, as character input rates on most machines are usually +low (about 25 characters per second), +this can result in excessive overhead. +At the current clock rate of 100 Hz, a machine with 5 terminal multiplexors +configured makes 500 calls to the receiver interrupt routines per second. +In addition, to achieve acceptable input latency +for flow control, each clock interrupt must schedule +a software interrupt to run the silo draining routines.\** +.FS +\** It is not possible to check the input silos at +the time of the actual clock interrupt without modifying the terminal +line disciplines, as the input queues may not be in a consistent state \**. +.FE +\** This implies that the worst case estimate for clock processing +is the basic overhead for clock processing. +.NH 3 +Process table management +.PP +In 4.2BSD there are numerous places in the kernel where a linear search +of the process table is performed: +.IP \(bu 3 +in \fIexit\fP to locate and wakeup a process's parent; +.IP \(bu 3 +in \fIwait\fP when searching for \fB\s-2ZOMBIE\s+2\fP and +\fB\s-2STOPPED\s+2\fP processes; +.IP \(bu 3 +in \fIfork\fP when allocating a new process table slot and +counting the number of processes already created by a user; +.IP \(bu 3 +in \fInewproc\fP, to verify +that a process id assigned to a new process is not currently +in use; +.IP \(bu 3 +in \fIkill\fP and \fIgsignal\fP to locate all processes to +which a signal should be delivered; +.IP \(bu 3 +in \fIschedcpu\fP when adjusting the process priorities every +second; and +.IP \(bu 3 +in \fIsched\fP when locating a process to swap out and/or swap +in. +.LP +These linear searches can incur significant overhead. The rule +for calculating the size of the process table is: +.ce +nproc = 20 + 8 * maxusers +.sp +that means a 48 user system will have a 404 slot process table. +With the addition of network services in 4.2BSD, as many as a dozen +server processes may be maintained simply to await incoming requests. +These servers are normally created at boot time which causes them +to be allocated slots near the beginning of the process table. This +means that process table searches under 4.2BSD are likely to take +significantly longer than under 4.1BSD. System profiling shows +that as much as 20% of the time spent in the kernel on a loaded +system (a VAX-11/780) can be spent in \fIschedcpu\fP and, on average, +5-10% of the kernel time is spent in \fIschedcpu\fP. +The other searches of the proc table are similarly affected. +This shows the system can no longer tolerate using linear searches of +the process table. +.NH 3 +File system buffer cache +.PP +The trace facilities described in section 2.3 were used +to gather statistics on the performance of the buffer cache. +We were interested in measuring the effectiveness of the +cache and the read-ahead policies. +With the file system block size in 4.2BSD four to +eight times that of a 4.1BSD file system, we were concerned +that large amounts of read-ahead might be performed without +being used. Also, we were interested in seeing if the +rules used to size the buffer cache at boot time were severely +affecting the overall cache operation. +.PP +The tracing package was run over a three hour period during +a peak mid-afternoon period on a VAX 11/780 with four megabytes +of physical memory. +This resulted in a buffer cache containing 400 kilobytes of memory +spread among 50 to 200 buffers +(the actual number of buffers depends on the size mix of +disk blocks being read at any given time). +The pertinent configuration information is shown in Table 5. +.KF +.DS L +.TS +center box; +l l l l. +Controller Drive Device File System +_ +DEC MASSBUS DEC RP06 hp0d /usr + hp0b swap +Emulex SC780 Fujitsu Eagle hp1a /usr/spool/news + hp1b swap + hp1e /usr/src + hp1d /u0 (users) + Fujitsu Eagle hp2a /tmp + hp2b swap + hp2d /u1 (users) + Fujitsu Eagle hp3a / +.TE +.ce +Table 5. Active file systems during buffer cache tests. +.DE +.KE +.PP +During the test period the load average ranged from 2 to 13 +with an average of 5. +The system had no idle time, 43% user time, and 57% system time. +The system averaged 90 interrupts per second +(excluding the system clock interrupts), +220 system calls per second, +and 50 context switches per second (40 voluntary, 10 involuntary). +.PP +The active virtual memory (the sum of the address space sizes of +all jobs that have run in the previous twenty seconds) +over the period ranged from 2 to 6 megabytes with an average +of 3.5 megabytes. +There was no swapping, though the page daemon was inspecting +about 25 pages per second. +.PP +On average 250 requests to read disk blocks were initiated +per second. +These include read requests for file blocks made by user +programs as well as requests initiated by the system. +System reads include requests for indexing information to determine +where a file's next data block resides, +file system layout maps to allocate new data blocks, +and requests for directory contents needed to do path name translations. +.PP +On average, an 85% cache hit rate was observed for read requests. +Thus only 37 disk reads were initiated per second. +In addition, 5 read-ahead requests were made each second +filling about 20% of the buffer pool. +Despite the policies to rapidly reuse read-ahead buffers +that remain unclaimed, more than 90% of the read-ahead +buffers were used. +.PP +These measurements showed that the buffer cache was working +effectively. Independent tests have also showed that the size +of the buffer cache may be reduced significantly on memory-poor +system without severe effects; +we have not yet tested this hypothesis [Shannon83]. +.NH 3 +Network subsystem +.PP +The overhead associated with the +network facilities found in 4.2BSD is often +difficult to gauge without profiling the system. +This is because most input processing is performed +in modules scheduled with software interrupts. +As a result, the system time spent performing protocol +processing is rarely attributed to the processes that +really receive the data. Since the protocols supported +by 4.2BSD can involve significant overhead this was a serious +concern. Results from a profiled kernel show an average +of 5% of the system time is spent +performing network input and timer processing in our environment +(a 3Mb/s Ethernet with most traffic using TCP). +This figure can vary significantly depending on +the network hardware used, the average message +size, and whether packet reassembly is required at the network +layer. On one machine we profiled over a 17 hour +period (our gateway to the ARPANET) +206,000 input messages accounted for 2.4% of the system time, +while another 0.6% of the system time was spent performing +protocol timer processing. +This machine was configured with an ACC LH/DH IMP interface +and a DMA 3Mb/s Ethernet controller. +.PP +The performance of TCP over slower long-haul networks +was degraded substantially by two problems. +The first problem was a bug that prevented round-trip timing measurements +from being made, thus increasing retransmissions unnecessarily. +The second was a problem with the maximum segment size chosen by TCP, +that was well-tuned for Ethernet, but was poorly chosen for +the ARPANET, where it causes packet fragmentation. (The maximum +segment size was actually negotiated upwards to a value that +resulted in excessive fragmentation.) +.PP +When benchmarked in Ethernet environments the main memory buffer management +of the network subsystem presented some performance anomalies. +The overhead of processing small ``mbufs'' severely affected throughput for a +substantial range of message sizes. +In spite of the fact that most system ustilities made use of the throughput +optimal 1024 byte size, user processes faced large degradations for some +arbitrary sizes. This was specially true for TCP/IP transmissions [Cabrera84, +Cabrera85]. +.NH 3 +Virtual memory subsystem +.PP +We ran a set of tests intended to exercise the virtual +memory system under both 4.1BSD and 4.2BSD. +The tests are described in Table 6. +The test programs dynamically allocated +a 7.3 Megabyte array (using \fIsbrk\fP\|(2)) then referenced +pages in the array either: sequentially, in a purely random +fashion, or such that the distance between +successive pages accessed was randomly selected from a Gaussian +distribution. In the last case, successive runs were made with +increasing standard deviations. +.KF +.DS L +.TS +center box; +l | l. +Test Description +_ +seqpage sequentially touch pages, 10 iterations +seqpage-v as above, but first make \fIvadvise\fP\|(2) call +randpage touch random page 30,000 times +randpage-v as above, but first make \fIvadvise\fP call +gausspage.1 30,000 Gaussian accesses, standard deviation of 1 +gausspage.10 as above, standard deviation of 10 +gausspage.30 as above, standard deviation of 30 +gausspage.40 as above, standard deviation of 40 +gausspage.50 as above, standard deviation of 50 +gausspage.60 as above, standard deviation of 60 +gausspage.80 as above, standard deviation of 80 +gausspage.inf as above, standard deviation of 10,000 +.TE +.ce +Table 6. Paging benchmark programs. +.DE +.KE +.PP +The results in Table 7 show how the additional +memory requirements +of 4.2BSD can generate more work for the paging system. +Under 4.1BSD, +the system used 0.5 of the 4.5 megabytes of physical memory +on the test machine; +under 4.2BSD it used nearly 1 megabyte of physical memory.\** +.FS +\** The 4.1BSD system used for testing was really a 4.1a +system configured +with networking facilities and code to support +remote file access. The +4.2BSD system also included the remote file access code. +Since both +systems would be larger than similarly configured ``vanilla'' +4.1BSD or 4.2BSD system, we consider out conclusions to still be valid. +.FE +This resulted in more page faults and, hence, more system time. +To establish a common ground on which to compare the paging +routines of each system, we check instead the average page fault +service times for those test runs that had a statistically significant +number of random page faults. These figures, shown in Table 8, show +no significant difference between the two systems in +the area of page fault servicing. We currently have +no explanation for the results of the sequential +paging tests. +.KF +.DS L +.TS +center box; +l || c s || c s || c s || c s +l || c s || c s || c s || c s +l || c | c || c | c || c | c || c | c +l || n | n || n | n || n | n || n | n. +Test Real User System Page Faults +\^ _ _ _ _ +\^ 4.1 4.2 4.1 4.2 4.1 4.2 4.1 4.2 += +seqpage 959 1126 16.7 12.8 197.0 213.0 17132 17113 +seqpage-v 579 812 3.8 5.3 216.0 237.7 8394 8351 +randpage 571 569 6.7 7.6 64.0 77.2 8085 9776 +randpage-v 572 562 6.1 7.3 62.2 77.5 8126 9852 +gausspage.1 25 24 23.6 23.8 0.8 0.8 8 8 +gausspage.10 26 26 22.7 23.0 3.2 3.6 2 2 +gausspage.30 34 33 25.0 24.8 8.6 8.9 2 2 +gausspage.40 42 81 23.9 25.0 11.5 13.6 3 260 +gausspage.50 113 175 24.2 26.2 19.6 26.3 784 1851 +gausspage.60 191 234 27.6 26.7 27.4 36.0 2067 3177 +gausspage.80 312 329 28.0 27.9 41.5 52.0 3933 5105 +gausspage.inf 619 621 82.9 85.6 68.3 81.5 8046 9650 +.TE +.ce +Table 7. Paging benchmark results (all times in seconds). +.DE +.KE +.KF +.DS L +.TS +center box; +c || c s || c s +c || c s || c s +c || c | c || c | c +l || n | n || n | n. +Test Page Faults PFST +\^ _ _ +\^ 4.1 4.2 4.1 4.2 += +randpage 8085 9776 791 789 +randpage-v 8126 9852 765 786 +gausspage.inf 8046 9650 848 844 +.TE +.ce +Table 8. Page fault service times (all times in microseconds). +.DE +.KE diff --git a/doc/misc/sysperf/4.t b/doc/misc/sysperf/4.t new file mode 100644 index 00000000..d165d06c --- /dev/null +++ b/doc/misc/sysperf/4.t @@ -0,0 +1,753 @@ +.\" Copyright (c) 1985 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)4.t 1.2 (Berkeley) 8/11/85 +.\" +.ds RH Performance Improvements +.NH +Performance Improvements +.PP +This section outlines the changes made to the system +since the 4.2BSD distribution. +The changes reported here were made in response +to the problems described in Section 3. +The improvements fall into two major classes; +changes to the kernel that are described in this section, +and changes to the system libraries and utilities that are +described in the following section. +.NH 2 +Performance Improvements in the Kernel +.PP +Our goal has been to optimize system performance +for our general timesharing environment. +Since most sites running 4.2BSD have been forced to take +advantage of declining +memory costs rather than replace their existing machines with +ones that are more powerful, we have +chosen to optimize running time at the expense of memory. +This tradeoff may need to be reconsidered for personal workstations +that have smaller memories and higher latency disks. +Decreases in the running time of the system may be unnoticeable +because of higher paging rates incurred by a larger kernel. +Where possible, we have allowed the size of caches to be controlled +so that systems with limited memory may reduce them as appropriate. +.NH 3 +Name Cacheing +.PP +Our initial profiling studies showed that more than one quarter +of the time in the system was spent in the +pathname translation routine, \fInamei\fP, +translating path names to inodes\u\s-21\s0\d\**. +.FS +\** \u\s-21\s0\d Inode is an abbreviation for ``Index node''. +Each file on the system is described by an inode; +the inode maintains access permissions, and an array of pointers to +the disk blocks that hold the data associated with the file. +.FE +An inspection of \fInamei\fP shows that +it consists of two nested loops. +The outer loop is traversed once per pathname component. +The inner loop performs a linear search through a directory looking +for a particular pathname component. +.PP +Our first idea was to reduce the number of iterations +around the inner loop of \fInamei\fP by observing that many programs +step through a directory performing an operation on each entry in turn. +To improve performance for processes doing directory scans, +the system keeps track of the directory offset of the last component of the +most recently translated path name for each process. +If the next name the process requests is in the same directory, +the search is started from the offset that the previous name was found +(instead of from the beginning of the directory). +Changing directories invalidates the cache, as +does modifying the directory. +For programs that step sequentially through a directory with +.EQ +delim $$ +.EN +$N$ files, search time decreases from $O ( N sup 2 )$ to $O(N)$. +.EQ +delim off +.EN +.PP +The cost of the cache is about 20 lines of code +(about 0.2 kilobytes) +and 16 bytes per process, with the cached data +stored in a process's \fIuser\fP vector. +.PP +As a quick benchmark to verify the maximum effectiveness of the +cache we ran ``ls \-l'' +on a directory containing 600 files. +Before the per-process cache this command +used 22.3 seconds of system time. +After adding the cache the program used the same amount +of user time, but the system time dropped to 3.3 seconds. +.PP +This change prompted our rerunning a profiled system +on a machine containing the new \fInamei\fP. +The results showed that the time in \fInamei\fP +dropped by only 2.6 ms/call and +still accounted for 36% of the system call time, +18% of the kernel, or about 10% of all the machine cycles. +This amounted to a drop in system time from 57% to about 55%. +The results are shown in Table 9. +.KF +.DS L +.TS +center box; +l r r. +part time % of kernel +_ +self 11.0 ms/call 9.2% +child 10.6 ms/call 8.9% +_ +total 21.6 ms/call 18.1% +.TE +.ce +Table 9. Call times for \fInamei\fP with per-process cache. +.DE +.KE +.PP +The small performance improvement +was caused by a low cache hit ratio. +Although the cache was 90% effective when hit, +it was only usable on about 25% of the names being translated. +An additional reason for the small improvement was that +although the amount of time spent in \fInamei\fP itself +decreased substantially, +more time was spent in the routines that it called +since each directory had to be accessed twice; +once to search from the middle to the end, +and once to search from the beginning to the middle. +.PP +Frequent requests for a small set of names are best handled +with a cache of recent name translations\**. +.FS +\** The cache is keyed on a name and the +inode and device number of the directory that contains it. +Associated with each entry is a pointer to the corresponding +entry in the inode table. +.FE +This has the effect of eliminating the inner loop of \fInamei\fP. +For each path name component, +\fInamei\fP first looks in its cache of recent translations +for the needed name. +If it exists, the directory search can be completely eliminated. +.PP +The system already maintained a cache of recently accessed inodes, +so the initial name cache +maintained a simple name-inode association that was used to +check each component of a path name during name translations. +We considered implementing the cache by tagging each inode +with its most recently translated name, +but eventually decided to have a separate data structure that +kept names with pointers to the inode table. +Tagging inodes has two drawbacks; +many inodes such as those associated with login ports remain in +the inode table for a long period of time, but are never looked +up by name. +Other inodes, such as those describing directories are looked up +frequently by many different names (\fIe.g.\fP ``..''). +By keeping a separate table of names, the cache can +truly reflect the most recently used names. +An added benefit is that the table can be sized independently +of the inode table, so that machines with small amounts of memory +can reduce the size of the cache (or even eliminate it) +without modifying the inode table structure. +.PP +Another issue to be considered is how the name cache should +hold references to the inode table. +Normally processes hold ``hard references'' by incrementing the +reference count in the inode they reference. +Since the system reuses only inodes with zero reference counts, +a hard reference insures that the inode pointer will remain valid. +However, if the name cache holds hard references, +it is limited to some fraction of the size of the inode table, +since some inodes must be left free for new files. +It also makes it impossible for other parts of the kernel +to verify sole use of a device or file. +These reasons made it impractical to use hard references +without affecting the behavior of the inode cacheing scheme. +Thus, we chose instead to keep ``soft references'' protected +by a \fIcapability\fP \- a 32-bit number +guaranteed to be unique\u\s-22\s0\d \**. +.FS +\** \u\s-22\s0\d When all the numbers have been exhausted, all outstanding +capabilities are purged and numbering starts over from scratch. +Purging is possible as all capabilities are easily found in kernel memory. +.FE +When an entry is made in the name cache, +the capability of its inode is copied to the name cache entry. +When an inode is reused it is issued a new capability. +When a name cache hit occurs, +the capability of the name cache entry is compared +with the capability of the inode that it references. +If the capabilities do not match, the name cache entry is invalid. +Since the name cache holds only soft references, +it may be sized independent of the size of the inode table. +A final benefit of using capabilities is that all +cached names for an inode may be invalidated without +searching through the entire cache; +instead all you need to do is assign a new capability to the inode. +.PP +The cost of the name cache is about 200 lines of code +(about 1.2 kilobytes) +and 48 bytes per cache entry. +Depending on the size of the system, +about 200 to 1000 entries will normally be configured, +using 10-50 kilobytes of physical memory. +The name cache is resident in memory at all times. +.PP +After adding the system wide name cache we reran ``ls \-l'' +on the same directory. +The user time remained the same, +however the system time rose slightly to 3.7 seconds. +This was not surprising as \fInamei\fP +now had to maintain the cache, +but was never able to make any use of it. +.PP +Another profiled system was created and measurements +were collected over a 17 hour period. These measurements +showed a 13 ms/call decrease in \fInamei\fP, with +\fInamei\fP accounting for only 26% of the system call time, +13% of the time in the kernel, +or about 7% of all the machine cycles. +System time dropped from 55% to about 49%. +The results are shown in Table 10. +.KF +.DS L +.TS +center box; +l r r. +part time % of kernel +_ +self 4.2 ms/call 6.2% +child 4.4 ms/call 6.6% +_ +total 8.6 ms/call 12.8% +.TE +.ce +Table 10. Call times for \fInamei\fP with both caches. +.DE +.KE +.PP +On our general time sharing systems we find that during the twelve +hour period from 8AM to 8PM the system does 500,000 to 1,000,000 +name translations. +Statistics on the performance of both caches show that +the large performance improvement is +caused by the high hit ratio. +The name cache has a hit rate of 70%-80%; +the directory offset cache gets a hit rate of 5%-15%. +The combined hit rate of the two caches almost always adds up to 85%. +With the addition of the two caches, +the percentage of system time devoted to name translation has +dropped from 25% to less than 13%. +While the system wide cache reduces both the amount of time in +the routines that \fInamei\fP calls as well as \fInamei\fP itself +(since fewer directories need to be accessed or searched), +it is interesting to note that the actual percentage of system +time spent in \fInamei\fP itself increases even though the +actual time per call decreases. +This is because less total time is being spent in the kernel, +hence a smaller absolute time becomes a larger total percentage. +.NH 3 +Intelligent Auto Siloing +.PP +Most terminal input hardware can run in two modes: +it can either generate an interrupt each time a character is received, +or collect characters in a silo that the system then periodically drains. +To provide quick response for interactive input and flow control, +a silo must be checked 30 to 50 times per second. +Ascii terminals normally exhibit +an input rate of less than 30 characters per second. +At this input rate +they are most efficiently handled with interrupt per character mode, +since this generates fewer interrupts than draining the input silos +of the terminal multiplexors at each clock interrupt. +When input is being generated by another machine +or a malfunctioning terminal connection, however, +the input rate is usually more than 50 characters per second. +It is more efficient to use a device's silo input mode, +since this generates fewer interrupts than handling each character +as a separate interrupt. +Since a given dialup port may switch between uucp logins and user logins, +it is impossible to statically select the most efficient input mode to use. +.PP +We therefore changed the terminal multiplexor handlers +to dynamically choose between the use of the silo and the use of +per-character interrupts. +At low input rates the handler processes characters on an +interrupt basis, avoiding the overhead +of checking each interface on each clock interrupt. +During periods of sustained input, the handler enables the silo +and starts a timer to drain input. +This timer runs less frequently than the clock interrupts, +and is used only when there is a substantial amount of input. +The transition from using silos to an interrupt per character is +damped to minimize the number of transitions with bursty traffic +(such as in network communication). +Input characters serve to flush the silo, preventing long latency. +By switching between these two modes of operation dynamically, +the overhead of checking the silos is incurred only +when necessary. +.PP +In addition to the savings in the terminal handlers, +the clock interrupt routine is no longer required to schedule +a software interrupt after each hardware interrupt to drain the silos. +The software-interrupt level portion of the clock routine is only +needed when timers expire or the current user process is collecting +an execution profile. +Thus, the number of interrupts attributable to clock processing +is substantially reduced. +.NH 3 +Process Table Management +.PP +As systems have grown larger, the size of the process table +has grown far past 200 entries. +With large tables, linear searches must be eliminated +from any frequently used facility. +The kernel process table is now multi-threaded to allow selective searching +of active and zombie processes. +A third list threads unused process table slots. +Free slots can be obtained in constant time by taking one +from the front of the free list. +The number of processes used by a given user may be computed by scanning +only the active list. +Since the 4.2BSD release, +the kernel maintained linked lists of the descendents of each process. +This linkage is now exploited when dealing with process exit; +parents seeking the exit status of children now avoid linear search +of the process table, but examine only their direct descendents. +In addition, the previous algorithm for finding all descendents of an exiting +process used multiple linear scans of the process table. +This has been changed to follow the links between child process and siblings. +.PP +When forking a new process, +the system must assign it a unique process identifier. +The system previously scanned the entire process table each time it created +a new process to locate an identifier that was not already in use. +Now, to avoid scanning the process table for each new process, +the system computes a range of unused identifiers +that can be directly assigned. +Only when the set of identifiers is exhausted is another process table +scan required. +.NH 3 +Scheduling +.PP +Previously the scheduler scanned the entire process table +once per second to recompute process priorities. +Processes that had run for their entire time slice had their +priority lowered. +Processes that had not used their time slice, or that had +been sleeping for the past second had their priority raised. +On systems running many processes, +the scheduler represented nearly 20% of the system time. +To reduce this overhead, +the scheduler has been changed to consider only +runnable processes when recomputing priorities. +To insure that processes sleeping for more than a second +still get their appropriate priority boost, +their priority is recomputed when they are placed back on the run queue. +Since the set of runnable process is typically only a small fraction +of the total number of processes on the system, +the cost of invoking the scheduler drops proportionally. +.NH 3 +Clock Handling +.PP +The hardware clock interrupts the processor 100 times per second +at high priority. +As most of the clock-based events need not be done at high priority, +the system schedules a lower priority software interrupt to do the less +time-critical events such as cpu scheduling and timeout processing. +Often there are no such events, and the software interrupt handler +finds nothing to do and returns. +The high priority event now checks to see if there are low priority +events to process; +if there is nothing to do, the software interrupt is not requested. +Often, the high priority interrupt occurs during a period when the +machine had been running at low priority. +Rather than posting a software interrupt that would occur as +soon as it returns, +the hardware clock interrupt handler simply lowers the processor priority +and calls the software clock routines directly. +Between these two optimizations, nearly 80 of the 100 software +interrupts per second can be eliminated. +.NH 3 +File System +.PP +The file system uses a large block size, typically 4096 or 8192 bytes. +To allow small files to be stored efficiently, the large blocks can +be broken into smaller fragments, typically multiples of 1024 bytes. +To minimize the number of full-sized blocks that must be broken +into fragments, the file system uses a best fit strategy. +Programs that slowly grow files using write of 1024 bytes or less +can force the file system to copy the data to +successively larger and larger fragments until it finally +grows to a full sized block. +The file system still uses a best fit strategy the first time +a fragment is written. +However, the first time that the file system is forced to copy a growing +fragment it places it at the beginning of a full sized block. +Continued growth can be accommodated without further copying +by using up the rest of the block. +If the file ceases to grow, the rest of the block is still +available for holding other fragments. +.PP +When creating a new file name, +the entire directory in which it will reside must be scanned +to insure that the name does not already exist. +For large directories, this scan is time consuming. +Because there was no provision for shortening directories, +a directory that is once over-filled will increase the cost +of file creation even after the over-filling is corrected. +Thus, for example, a congested uucp connection can leave a legacy long +after it is cleared up. +To alleviate the problem, the system now deletes empty blocks +that it finds at the end of a directory while doing a complete +scan to create a new name. +.NH 3 +Network +.PP +The default amount of buffer space allocated for stream sockets (including +pipes) has been increased to 4096 bytes. +Stream sockets and pipes now return their buffer sizes in the block size field +of the stat structure. +This information allows the standard I/O library to use more optimal buffering. +Unix domain stream sockets also return a dummy device and inode number +in the stat structure to increase compatibility +with other pipe implementations. +The TCP maximum segment size is calculated according to the destination +and interface in use; non-local connections use a more conservative size +for long-haul networks. +.PP +On multiply-homed hosts, the local address bound by TCP now always corresponds +to the interface that will be used in transmitting data packets for the +connection. +Several bugs in the calculation of round trip timing have been corrected. +TCP now switches to an alternate gateway when an existing route fails, +or when an ICMP redirect message is received. +ICMP source quench messages are used to throttle the transmission +rate of TCP streams by temporarily creating an artificially small +send window, and retransmissions send only a single packet +rather than resending all queued data. +A send policy has been implemented +that decreases the number of small packets outstanding +for network terminal traffic [Nagle84], +providing additional reduction of network congestion. +The overhead of packet routing has been decreased by changes in the routing +code and by cacheing the most recently used route for each datagram socket. +.PP +The buffer management strategy implemented by \fIsosend\fP has been +changed to make better use of the increased size of the socket buffers +and a better tuned delayed acknowledgement algorithm. +Routing has been modified to include a one element cache of the last +route computed. +Multiple messages send with the same destination now require less processing. +Figures 1 and 2 present typical throughput rates that user processes in +4.3BSD systems may expect when run under light load. +In [Cabrera85] we documented the performance degradation due to load in +either the sender host, receiver host, or ether. +Any CPU contention degrades substantially +the throughput achievable by user processes. +We have observed empty VAX 11/750s using up to 90% of their cycles +transmitting network messages. +.PP +Figure 1. (I owe it. lfc) +.PP +Figure 2. (I owe it. lfc) +.NH 3 +Exec +.PP +When \fIexec\fP-ing a new process, the kernel creates the new +program's argument list by copying the arguments and environment +from the parent process's address space into the system, then back out +again onto the stack of the newly created process. +These two copy operations were done one byte at a time, but +are now done a string at a time. +This optimization reduced the time to process +an argument list by a factor of ten; +the average time to do an \fIexec\fP call decreased by 25%. +.NH 3 +Context Switching +.PP +The kernel used to post a software event when it wanted to force +a process to be rescheduled. +Often the process would be rescheduled for other reasons before +exiting the kernel, delaying the event trap. +At some later time the process would again +be selected to run and would complete its pending system call, +finally causing the event to take place. +The event would cause the scheduler to be invoked a second time +selecting the same process to run. +The fix to this problem is to cancel any software reschedule +events when saving a process context. +This change doubles the speed with which processes +can synchronize using pipes or signals. +.NH 3 +Setjmp/Longjmp +.PP +The kernel routine \fIsetjmp\fP, that saves the current system +context in preparation for a non-local goto used to save many more +registers than necessary under most circumstances. +By trimming its operation to save only the minimum state required, +the overhead for system calls decreased by an average of 13%. +.NH 3 +Compensating for Lack of Compiler Technology +.PP +The current compilers available for C do not +do any significant optimization. +Good optimizing compilers are unlikely to be built; +the C language is not well suited to optimization +because of its rampant use of unbound pointers. +Thus, many classical optimizations such as common subexpression +analysis and selection of register variables must be done +by hand using ``exterior'' knowledge of when such optimizations are safe. +.PP +Another optimization usually done by optimizing compilers +is inline expansion of small or frequently used routines. +In past Berkeley systems this has been done by using \fIsed\fP to +run over the assembly language and replace calls to small +routines with the code for the body of the routine, often +a single VAX instruction. +While this optimization eliminated the cost of the subroutine +call and return, +it did not eliminate the pushing and popping of several arguments +to the routine. +The \fIsed\fP script has been replaced by a more intelligent expander, +\fIinline\fP, that merges the pushes and pops into moves to registers. +For example, if the C code +.DS +if (scanc(map[i], 1, 47, i - 63)) +.DE +is compiled into assembly language it generates the code shown +in the left hand column of Table 11. +The \fIsed\fP inline expander changes this code to that +shown in the middle column. +The newer optimizer eliminates most of the stack +operations to generate the code shown in the right hand column. +.KF +.TS +center, box; +c s s s s s +c s | c s | c s +l l | l l | l l. +Alternative C Language Code Optimizations +_ +cc sed inline +_ +subl3 $64,_i,\-(sp) subl3 $64,_i,\-(sp) subl3 $64,_i,r5 +pushl $47 pushl $47 movl $47,r4 +pushl $1 pushl $1 pushl $1 +mull2 $16,_i,r3 mull2 $16,_i,r3 mull2 $16,_i,r3 +pushl \-56(fp)[r3] pushl \-56(fp)[r3] movl \-56(fp)[r3],r2 +calls $4,_scanc movl (sp)+,r5 movl (sp)+,r3 +tstl r0 movl (sp)+,r4 scanc r2,(r3),(r4),r5 +jeql L7 movl (sp)+,r3 tstl r0 + movl (sp)+,r2 jeql L7 + scanc r2,(r3),(r4),r5 + tstl r0 + jeql L7 +.TE +.ce +Table 11. Alternative inline code expansions. +.KE +.PP +Another optimization involved reevaluating +existing data structures in the context of the current system. +For example, disk buffer hashing was implemented when the system +typically had thirty to fifty buffers. +Most systems today have 200 to 1000 buffers. +Consequently, most of the hash chains contained +ten to a hundred buffers each! +The running time of the low level buffer management primitives was +dramatically improved simply by enlarging the size of the hash table. +.NH 2 +Improvements to Libraries and Utilities +.PP +Intuitively, changes to the kernel would seem to have the greatest +payoff since they affect all programs that run on the system. +However, the kernel has been tuned many times before, so the +opportunity for significant improvement was small. +By contrast, many of the libraries and utilities had never been tuned. +For example, we found utilities that spent 90% of their +running time doing single character read system calls. +Changing the utility to use the standard I/O library cut the +running time by a factor of five! +Thus, while most of our time has been spent tuning the kernel, +more than half of the speedups are because of improvements in +other parts of the system. +Some of the more dramatic changes are described in the following +subsections. +.NH 3 +Hashed Databases +.PP +UNIX provides a set of database management routines, \fIdbm\fP, +that can be used to speed lookups in large data files +with an external hashed index file. +The original version of dbm was designed to work with only one +database at a time. These routines were generalized to handle +multiple database files, enabling them to be used in rewrites +of the password and host file lookup routines. The new routines +used to access the password file significantly improve the running +time of many important programs such as the mail subsystem, +the C-shell (in doing tilde expansion), \fIls \-l\fP, etc. +.NH 3 +Buffered I/O +.PP +The new filesystem with its larger block sizes allows better +performance, but it is possible to degrade system performance +by performing numerous small transfers rather than using +appropriately-sized buffers. +The standard I/O library +automatically determines the optimal buffer size for each file. +Some C library routines and commonly-used programs use low-level +I/O or their own buffering, however. +Several important utilities that did not use the standard I/O library +and were buffering I/O using the old optimal buffer size, +1Kbytes; the programs were changed to buffer I/O according to the +optimal file system blocksize. +These include the editor, the assembler, loader, remote file copy, +the text formatting programs, and the C compiler. +.PP +The standard error output has traditionally been unbuffered +to prevent delay in presenting the output to the user, +and to prevent it from being lost if buffers are not flushed. +The inordinate expense of sending single-byte packets through +the network led us to impose a buffering scheme on the standard +error stream. +Within a single call to \fIfprintf\fP, all output is buffered temporarily. +Before the call returns, all output is flushed and the stream is again +marked unbuffered. +As before, the normal block or line buffering mechanisms can be used +instead of the default behavior. +.PP +It is possible for programs with good intentions to unintentionally +defeat the standard I/O library's choice of I/O buffer size by using +the \fIsetbuf\fP call to assign an output buffer. +Because of portability requirements, the default buffer size provided +by \fIsetbuf\fP is 1024 bytes; this can lead, once again, to added +overhead. +One such program with this problem was \fIcat\fP; +there are undoubtedly other standard system utilities with similar problems +as the system has changed much since they were originally written. +.NH 3 +Mail System +.PP +The problems discussed in section 3.1.1 prompted significant work +on the entire mail system. The first problem identified was a bug +in the \fIsyslog\fP program. The mail delivery program, \fIsendmail\fP +logs all mail transactions through this process with the 4.2BSD interprocess +communication facilities. \fISyslog\fP then records the information in +a log file. Unfortunately, \fIsyslog\fP was performing a \fIsync\fP +operation after each message it received, whether it was logged to a file +or not. This wreaked havoc on the effectiveness of the +buffer cache and explained, to a large +extent, why sending mail to large distribution lists generated such a +heavy load on the system (one syslog message was generated for each +message recipient causing almost a continuous sequence of sync operations). +.PP +The hashed data base files were +installed in all mail programs, resulting in a order of magnitude +speedup on large distribution lists. The code in \fI/bin/mail\fP +that notifies the \fIcomsat\fP program when mail has been delivered to +a user was changed to cache host table lookups, resulting in a similar +speedup on large distribution lists. +.PP +Next, the file locking facilities +provided in 4.2BSD, \fIflock\fP\|(2), were used in place of the old +locking mechanism. +The mail system previously used \fIlink\fP and \fIunlink\fP in +implementing file locking primitives. +Because these operations usually modify the contents of directories +they require synchronous disk operations and cannot take +advantage of the name cache maintained by the system. +Unlink requires that the entry be found in the directory so that +it can be removed; +link requires that the directory be scanned to insure that the name +does not already exist. +By contrast the advisory locking facility in 4.2BSD is +efficient because it is all done with in-memory tables. +Thus, the mail system was modified to use the file locking primitives. +This yielded another 10% cut in the basic overhead of delivering mail. +Extensive profiling and tuning of \fIsendmail\fP and +compiling it without debugging code reduced the overhead by another 20%. +.NH 3 +Network Servers +.PP +With the introduction of the network facilities in 4.2BSD, +a myriad of services became available, each of which +required its own daemon process. +Many of these daemons were rarely if ever used, +yet they lay asleep in the process table consuming +system resources and generally slowing down response. +Rather than having many servers started at boot time, a single server, +\fIinetd\fP was substituted. +This process reads a simple configuration file +that specifies the services the system is willing to support +and listens for service requests on each service's Internet port. +When a client requests service the appropriate server is created +and passed a service connection as its standard input. Servers +that require the identity of their client may use the \fIgetpeername\fP +system call; likewise \fIgetsockname\fP may be used to find out +a server's local address without consulting data base files. +This scheme is attractive for several reasons: +.IP \(bu 3 +it eliminates +as many as a dozen processes, easing system overhead and +allowing the file and text tables to be made smaller, +.IP \(bu 3 +servers need not contain the code required to handle connection +queueing, simplifying the programs, and +.IP \(bu 3 +installing and replacing servers becomes simpler. +.PP +With an increased numbers of networks, both local and external to Berkeley, +we found that the overhead of the routing process was becoming +inordinately high. +Several changes were made in the routing daemon to reduce this load. +Routes to external networks are no longer exchanged by routers +on the internal machines, only a route to a default gateway. +This reduces the amount of network traffic and the time required +to process routing messages. +In addition, the routing daemon was profiled +and functions responsible for large amounts +of time were optimized. +The major changes were a faster hashing scheme, +and inline expansions of the ubiquitous byte-swapping functions. +.PP +Under certain circumstances, when output was blocked, +attempts by the remote login process +to send output to the user were rejected by the system, +although a prior \fIselect\fP call had indicated that data could be sent. +This resulted in continuous attempts to write the data until the remote +user restarted output. +This problem was initially avoided in the remote login handler, +and the original problem in the kernel has since been corrected. +.NH 3 +The C Run-time Library +.PP +Several people have found poorly tuned code +in frequently used routines in the C library [Lankford84]. +In particular the running time of the string routines can be +cut in half by rewriting them using the VAX string instructions. +The memory allocation routines have been tuned to waste less +memory for memory allocations with sizes that are a power of two. +Certain library routines that did file input in one-character reads +have been corrected. +Other library routines including \fIfread\fP and \fIfwrite\fP +have been rewritten for efficiency. +.NH 3 +Csh +.PP +The C-shell was converted to run on 4.2BSD by +writing a set of routines to simulate the old jobs library. +While this provided a functioning C-shell, +it was grossly inefficient, generating up +to twenty system calls per prompt. +The C-shell has been modified to use the new signal +facilities directly, +cutting the number of system calls per prompt in half. +Additional tuning was done with the help of profiling +to cut the cost of frequently used facilities. diff --git a/doc/misc/sysperf/5.t b/doc/misc/sysperf/5.t new file mode 100644 index 00000000..ba4b3367 --- /dev/null +++ b/doc/misc/sysperf/5.t @@ -0,0 +1,258 @@ +.{" Copyright (c) 1985 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)5.t 1.2 (Berkeley) 8/11/85 +.\" +.ds RH Functional Extensions +.NH +Functional Extensions +.PP +Some of the facilities introduced in 4.2BSD were not completely +implemented. An important part of the effort that went into +4.3BSD was to clean up and unify both new and old facilities. +.NH 2 +Kernel Extensions +.PP +A significant effort went into improving +the networking part of the kernel. +The work consisted of fixing bugs, +tuning the algorithms, +and revamping the lowest levels of the system +to better handle heterogeneous network topologies. +.NH 3 +Subnets, Broadcasts and Gateways +.PP +To allow sites to expand their network in an autonomous +and orderly fashion, subnetworks have been introduced in 4.3BSD [GADS85]. +This facility allows sites to subdivide their local Internet address +space into multiple subnetwork address spaces that are visible +only by hosts at that site. To off-site hosts machines on a site's +subnetworks appear to reside on a single network. The routing daemon +has been reworked to provide routing support in this type of +environment. +.PP +The default Internet broadcast address is now specified with a host part +of all one's, rather than all zero's. +The broadcast address may be set at boot time on a per-interface basis. +.NH 3 +Interface Addressing +.PP +The organization of network interfaces has been +reworked to more cleanly support multiple +network protocols. Network interfaces no longer +contain a host's address on that network; instead +each interface contains a pointer to a list of addresses +assigned to that interface. This permits a single +interface to support, for example, Internet protocols +at the same time as XNS protocols. +.PP +The Address Resolution Protocol (ARP) support +for 10 megabyte/second Ethernet\(dg +.FS +\(dg Ethernet is a trademark of Xerox. +.FE +has been made more flexible by allowing hosts to +act as an ``clearing house'' for hosts that do +not support ARP. In addition, system managers have +more control over the contents of the ARP translation +cache and may interactively interrogate and modify +the cache's contents. +.NH 3 +User Control of Network Buffering +.PP +Although the system allocates reasonable default amounts of buffering +for most connections, certain operations such as file system dumps +to remote machines benefit from significant increases in buffering [Walsh84]. +The \fIsetsockopt\fP system call has been extended to allow such requests. +In addition, \fIgetsockopt\fP and \fIsetsockopt\fP, +are now interfaced to the protocol level allowing protocol-specific +options to be manipulated by the user. +.NH 3 +Number of File Descriptors +.PP +To allow full use of the many descriptor based services available, +the previous hard limit of 30 open files per process has been relaxed. +The changes entailed generalizing \fIselect\fP to handle arrays of +32-bit words, removing the dependency on file descriptors from +the page table entries, +and limiting most of the linear scans of a process's file table. +The default per-process descriptor limit was raised from 20 to 64, +though there are no longer any hard upper limits on the number +of file descriptors. +.NH 3 +Kernel Limits +.PP +Many internal kernel configuration limits have been increased by suitable +modifications to data structures. +The limit on physical memory has been changed from 8 megabyte to 64 megabyte, +and the limit of 15 mounted file systems has been changed to 255. +The maximum file system size has been increased to 8 gigabyte, +number of processes to 65536, +and per process size to 64 megabyte of data and 64 megabyte of stack. +Note that these are upper bounds, +the default limits for these quantities are tuned for systems +with 4-8 megabyte of physical memory. +.NH 3 +Memory Management +.PP +The global clock page replacement algorithm used to have a single +hand that was used both to mark and to reclaim memory. +The first time that it encountered a page it would clear its reference bit. +If the reference bit was still clear on its next pass across the page, +it would reclaim the page. +The use of a single hand does not work well with large physical +memories as the time to complete a single revolution of the hand +can take up to a minute or more. +By the time the hand gets around to the marked pages, +the information is usually no longer pertinent. +During periods of sudden shortages, +the page daemon will not be able to find any reclaimable pages until +it has completed a full revolution. +To alleviate this problem, +the clock hand has been split into two separate hands. +The front hand clears the reference bits, +the back hand follows a constant number of pages behind +reclaiming pages that still have cleared reference bits. +While the code has been written to allow the distance between +the hands to be varied, we have not found any algorithms +suitable for determining how to dynamically adjust this distance. +.PP +The configuration of the virtual memory system used to require +a significant understanding of its operation to do such +simple tasks as increasing the maximum process size. +This process has been significantly improved so that the most +common configuration parameters, such as the virtual memory sizes, +can be specified using a single option in the configuration file. +Standard configurations support data and stack segments +of 17, 33 and 64 megabytes. +.NH 3 +Signals +.PP +The 4.2BSD signal implementation would push several words +onto the normal run-time stack before switching to an +alternate signal stack. +The 4.3BSD implementation has been corrected so that +the entire signal handler's state is now pushed onto the signal stack. +Another limitation in the original signal implementation was +that it used an undocumented system call to return from signals. +Users could not write their own return from exceptions; +4.3BSD formally specifies the \fIsigreturn\fP system call. +.PP +Many existing programs depend on interrupted system calls. +The restartable system call semantics of 4.2BSD signals caused +many of these programs to break. +To simplify porting of programs from inferior versions of +.UX +the \fIsigvec\fP system call has been extended so that +programmers may specify that system calls are not to be +restarted after particular signals. +.NH 3 +System Logging +.PP +A system logging facility has been added +that sends kernel messages to the +syslog daemon for logging in /usr/adm/messages and possibly for +printing on the system console. +The revised scheme for logging messages +eliminates the time lag in updating the messages file, +unifies the format of kernel messages, +provides a finer granularity of control over the messages +that get printed on the console, +and eliminates the degradation in response during the printing of +low-priority kernel messages. +Recoverable system errors and common resource limitations are logged +using this facility. +Most system utilities such as init and login, +have been modified to log errors to syslog +rather than writing directly on the console. +.NH 3 +Windows +.PP +The tty structure has been augmented to hold +information about the size +of an associated window or terminal. +These sizes can be obtained by programs such as editors that want +to know the size of the screen they are manipulating. +When these sizes are changed, +a new signal, SIGWINCH, is sent the current process group. +The editors have been modified to catch this signal and reshape +their view of the world, and the remote login program and server +now cooperate to propagate window sizes and window size changes +across a network. +Other programs and libraries such as curses that need the width +or height of the screen have been modified to use this facility as well. +.NH 3 +Configuration of UNIBUS Devices +.PP +The UNIBUS configuration routines have been extended to allow auto-configuration +of dedicated UNIBUS memory held by devices. +The new routines simplify the configuration of memory-mapped devices +and correct problems occurring on reset of the UNIBUS. +.NH 3 +Disk Recovery from Errors +.PP +The MASSBUS disk driver's error recovery routines have been fixed to +retry before correcting ECC errors, support ECC on bad-sector replacements, +and correctly attempt retries after earlier +corrective actions in the same transfer. +The error messages are more accurate. +.NH 2 +Functional Extensions to Libraries and Utilities +.PP +Most of the changes to the utilities and libraries have been to +allow them to handle a more general set of problems, +or to handle the same set of problems more quickly. +.NH 3 +Name Server +.PP +In 4.2BSD the name resolution routines (\fIgethostbyname\fP, +\fIgetservbyname\fP, +etc.) were implemented by a set of database files maintained on the +local machine. +Inconsistencies or obsolescence in these files resulted in inaccessibility of +hosts or services. +In 4.3BSD these files may be replaced by a network name server that can +insure a consistent view of the name space in a multimachine environment. +This name server operates in accordance with Internet standards +for service on the ARPANET [Mockapetris83]. +.NH 3 +System Management +.PP +A new utility, \fIrdist\fP, +has been provided to assist system managers in keeping +all their machines up to date with a consistent set of sources and binaries. +A master set of sources may reside on a single central machine, +or be distributed at (known) locations throughout the environment. +New versions of \fIgetty\fP, \fIinit\fP, and \fIlogin\fP +merge the functions of several +files into a single place, and allow more flexibility in the +startup of processes such as window managers. +.PP +The new utility \fItimed\fP keeps the time on a group of cooperating machines +(within a single LAN) synchronized to within 30 milliseconds. +It does its corrections using a new system call that changes +the rate of time advance without stopping or reversing the system clock. +It normally selects one machine to act as a master. +If the master dies or is partitioned, a new master is elected. +Other machines may participate in a purely slave role. +.NH 3 +Routing +.PP +Many bugs in the routing daemon have been fixed; +it is considerably more robust, +and now understands how to properly deal with +subnets and point-to-point networks. +Its operation has been made more efficient by tuning with the use +of execution profiles, along with inline expansion of common operations +using the kernel's \fIinline\fP optimizer. +.NH 3 +Compilers +.PP +The symbolic debugger \fIdbx\fP has had many new features added, +and all the known bugs fixed. In addition \fIdbx\fP +has been extended to work with the Pascal compiler. +The fortran compiler \fIf77\fP has had numerous bugs fixed. +The C compiler has been modified so that it can, optionally, +generate single precision floating point instructions when operating +on single precision variables. diff --git a/doc/misc/sysperf/6.t b/doc/misc/sysperf/6.t new file mode 100644 index 00000000..b06c869a --- /dev/null +++ b/doc/misc/sysperf/6.t @@ -0,0 +1,43 @@ +.\" Copyright (c) 1985 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)6.t 1.2 (Berkeley) 8/11/85 +.\" +.ds RH Security Tightening +.NH +Security Tightening +.PP +Since we do not wish to encourage rampant system cracking, +we describe only briefly the changes made to enhance security. +.NH 2 +Generic Kernel +.PP +Several loopholes in the process tracing facility have been corrected. +Programs being traced may not be executed; +executing programs may not be traced. +Programs may not provide input to terminals to which they do not +have read permission. +The handling of process groups has been tightened to eliminate +some problems. +When a program attempts to change its process group, +the system checks to see if the process with the pid of the process +group was started by the same user. +If it exists and was started by a different user the process group +number change is denied. +.NH 2 +Security Problems in Utilities +.PP +Setuid utilities no longer use the \fIpopen\fP or \fIsystem\fP library routines. +Access to the kernel's data structures through the kmem device +is now restricted to programs that are set group id ``kmem''. +Thus many programs that used to run with root privileges +no longer need to do so. +Access to disk devices is now controlled by an ``operator'' group id; +this permission allows operators to function without being the super-user. +Only users in group wheel can do ``su root''; this restriction +allows administrators to define a super-user access list. +Numerous holes have been closed in the shell to prevent +users from gaining privileges from set user id shell scripts, +although use of such scripts is still highly discouraged on systems +that are concerned about security. diff --git a/doc/misc/sysperf/7.t b/doc/misc/sysperf/7.t new file mode 100644 index 00000000..0161c2bc --- /dev/null +++ b/doc/misc/sysperf/7.t @@ -0,0 +1,137 @@ +.\" Copyright (c) 1985 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)7.t 1.2 (Berkeley) 8/11/85 +.\" +.ds RH Conclusions +.NH +Conclusions +.PP +4.2BSD, while functionally superior to 4.1BSD, lacked much of the +performance tuning required of a good system. We found that +the distributed system spent 10-20% more time in the kernel than +4.1BSD. This added overhead combined with problems with several +user programs severely limited the overall performance of the +system in a general timesharing environment. +.PP +Changes made to the system since the 4.2BSD distribution have +eliminated most of the +added system overhead by replacing old algorithms +or introducing additional cacheing schemes. +The combined caches added to the name translation process +reduce the average cost of translating a pathname to an inode by more than 50%. +These changes reduce the percentage of time spent running +in the system by nearly 9%. +.PP +The use of silo input on terminal ports only when necessary +has allowed the system to avoid a large amount of software interrupt +processing. Observations show that the system is forced to +field about 25% fewer interrupts than before. +.PP +The kernel +changes, combined with many bug fixes, make the system much more +responsive in a general timesharing environment. +The 4.3BSD Berkeley UNIX system now appears +capable of supporting loads at least as large as those supported under +4.1BSD while providing all the new interprocess communication, networking, +and file system facilities. +.nr H2 1 +.ds RH Acknowledgements +.SH +\s+2Acknowledgements\s0 +.PP +We would like to thank Robert Elz for sharing his ideas and +his code for cacheing system wide names and searching the process table. +We thank Alan Smith for initially suggesting the use of a +capability based cache. +We also acknowledge +George Goble who dropped many of our changes +into his production system and reported back fixes to the +disasters that they caused. +The buffer cache read-ahead trace package was based +on a program written by Jim Lawson. Ralph Campbell +implemented several of the C library changes. The original +version of the Internet daemon was written by Bill Joy. +In addition, +we would like to thank the many other people that contributed +ideas, information, and work while the system was undergoing change. +.ds RH References +.nr H2 1 +.sp 2 +.SH +\s+2References\s-2 +.LP +.IP [GADS85] 20 +GADS (Gateway Algorithms and Data Structures Task Force), +``Toward an Internet Standard for Subnetting,'' RFC-940, +Network Information Center, SRI International, +April 1985. +.IP [Joy80] 20 +Joy, William, +``Comments on the performance of UNIX on the VAX'', +Computer System Research Group, U.C. Berkeley. +April 1980. +.IP [Kashtan80] 20 +Kashtan, David L., +``UNIX and VMS, Some Performance Comparisons'', +SRI International. February 1980. +.IP [Lankford84] 20 +Jeffrey Lankford, +``UNIX System V and 4BSD Performance,'' +\fIProceedings of the Salt Lake City Usenix Conference\fP, +pp 228-236, June 1984. +.IP [Leffler84] 20 +Sam Leffler, Mike Karels, and M. Kirk McKusick, +``Measuring and Improving the Performance of 4.2BSD,'' +\fIProceedings of the Salt Lake City Usenix Conference\fP, +pp 237-252, June 1984. +.IP [McKusick85] +M. Kirk McKusick, Mike Karels, and Samual Leffler, +``Performance Improvements and Functional Enhancements in 4.3BSD'' +\fIProceedings of the Portland Usenix Conference\fP, +pp 519-531, June 1985. +.IP [Mockapetris83] 20 +Paul Mockapetris, ``Domain Names \- Implementation and Schedule,'' +Network Information Center, SRI International, +RFC-883, +November 1983. +.IP [Mogul84] 20 +Jeffrey Mogul, ``Broadcasting Internet Datagrams,'' RFC-919, +Network Information Center, SRI International, +October 1984. +.IP [Mosher80] 20 +Mosher, David, +``UNIX Performance, an Introspection'', +Presented at the Boulder, Colorado Usenix Conference, January 1980. +Copies of the paper are available from +Computer System Research Group, U.C. Berkeley. +.IP [Nagle84] 20 +John Nagle, ``Congestion Control in IP/TCP Internetworks,'' RFC-896, +Network Information Center, SRI International, +January 1984. +.IP [Ritchie74] 20 +Ritchie, D. M. and Thompson, K., +``The UNIX Time-Sharing System'', +CACM 17, 7. July 1974. pp 365-375 +.IP [Shannon83] 20 +Shannon, W., +private communication, +July 1983 +.IP [Walsh84] 20 +Robert Walsh and Robert Gurwitz, +``Converting BBN TCP/IP to 4.2BSD,'' +\fIProceedings of the Salt Lake City Usenix Conference\fP, +pp 52-61, June 1984. +.IP [Cabrera84] 20 +Luis Felipe Cabrera, Eduard Hunter, Michael J. Karels, and David Mosher, +``A User-Process Oriented Performance Study of Ethernet Networking Under +Berkeley UNIX 4.2BSD,'' +Research Report No. UCB/CSD 84/217, University of California, +Berkeley, December 1984. +.IP [Cabrera85] 20 +Luis Felipe Cabrera, Michael J. Karels, and David Mosher, +``The Impact of Buffer Management on Networking Software Performance +in Berkeley UNIX 4.2BSD: A Case Study,'' +Proceedings of the Summer Usenix Conference, Portland, Oregon, +June 1985, pp. 507-517. diff --git a/doc/misc/sysperf/Makefile b/doc/misc/sysperf/Makefile new file mode 100644 index 00000000..b1440614 --- /dev/null +++ b/doc/misc/sysperf/Makefile @@ -0,0 +1,33 @@ +# +# Copyright (c) 1985 Regents of the University of California. +# All rights reserved. The Berkeley software License Agreement +# specifies the terms and conditions for redistribution. +# +# @(#)Makefile 1.2 (Berkeley) 11/30/85 +# +PRINTER=-Pdp +TYPE= -n +SRCS= 0.t 1.t 2.t 3.t 4.t 5.t 6.t 7.t +OBJS= perf.t appendix.t +TBL= dtbl +EQN= deqn +TROFF= ditroff +GRIND= igrind + +paper: perf + lpr ${PRINTER} ${TYPE} perf + +perf: ${OBJS} + ${TROFF} -ms -t ${PRINTER} ${OBJS} > perf + +perf.t: ${SRCS} + ${TBL} ${PRINTER} ${SRCS} | ${EQN} ${PRINTER} > perf.t + +appendix.t: a1.t a2.t + ${GRIND} -f a1.t | awk '/\.\(\)/{ cnt = 2 } \ + { if (cnt) cnt -= 1; else print $$0; } ' > appendix.t + ${GRIND} -f -lcsh a2.t | awk '/\.\(\)/{ cnt = 2 } \ + { if (cnt) cnt -= 1; else print $$0; } ' >> appendix.t + +clean: + rm -f perf ${OBJS} diff --git a/doc/misc/sysperf/a1.t b/doc/misc/sysperf/a1.t new file mode 100644 index 00000000..76c6a2ca --- /dev/null +++ b/doc/misc/sysperf/a1.t @@ -0,0 +1,641 @@ +.\" Copyright (c) 1985 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)a1.t 1.1 (Berkeley) 7/27/85 +.\" +.ds RH Appendix A \- Benchmark sources +.nr H2 1 +.sp 2 +.de vS +.nf +.. +.de vE +.fi +.. +.bp +.SH +\s+2Appendix A \- Benchmark sources\s-2 +.LP +The programs shown here run under 4.2 with only routines +from the standard libraries. When run under 4.1 they were augmented +with a \fIgetpagesize\fP routine and a copy of the \fIrandom\fP +function from the C library. The \fIvforks\fP and \fIvexecs\fP +programs are constructed from the \fIforks\fP and \fIexecs\fP programs, +respectively, by substituting calls to \fIfork\fP with calls to +\fIvfork\fP. +.SH +syscall +.LP +.vS +/* + * System call overhead benchmark. + */ +main(argc, argv) + char *argv[]; +{ + register int ncalls; + + if (argc < 2) { + printf("usage: %s #syscalls\n", argv[0]); + exit(1); + } + ncalls = atoi(argv[1]); + while (ncalls-- > 0) + (void) getpid(); +} +.vE +.SH +csw +.LP +.vS +/* + * Context switching benchmark. + * + * Force system to context switch 2*nsigs + * times by forking and exchanging signals. + * To calculate system overhead for a context + * switch, the signocsw program must be run + * with nsigs. Overhead is then estimated by + * t1 = time csw + * t2 = time signocsw + * overhead = t1 - 2 * t2; + */ +#include + +int sigsub(); +int otherpid; +int nsigs; + +main(argc, argv) + char *argv[]; +{ + int pid; + + if (argc < 2) { + printf("usage: %s nsignals\n", argv[0]); + exit(1); + } + nsigs = atoi(argv[1]); + signal(SIGALRM, sigsub); + otherpid = getpid(); + pid = fork(); + if (pid != 0) { + otherpid = pid; + kill(otherpid, SIGALRM); + } + for (;;) + sigpause(0); +} + +sigsub() +{ + + signal(SIGALRM, sigsub); + kill(otherpid, SIGALRM); + if (--nsigs <= 0) + exit(0); +} +.vE +.SH +signocsw +.LP +.vS +/* + * Signal without context switch benchmark. + */ +#include + +int pid; +int nsigs; +int sigsub(); + +main(argc, argv) + char *argv[]; +{ + register int i; + + if (argc < 2) { + printf("usage: %s nsignals\n", argv[0]); + exit(1); + } + nsigs = atoi(argv[1]); + signal(SIGALRM, sigsub); + pid = getpid(); + for (i = 0; i < nsigs; i++) + kill(pid, SIGALRM); +} + +sigsub() +{ + + signal(SIGALRM, sigsub); +} +.vE +.SH +pipeself +.LP +.vS +/* + * IPC benchmark, + * write to self using pipes. + */ + +main(argc, argv) + char *argv[]; +{ + char buf[512]; + int fd[2], msgsize; + register int i, iter; + + if (argc < 3) { + printf("usage: %s iterations message-size\n", argv[0]); + exit(1); + } + argc--, argv++; + iter = atoi(*argv); + argc--, argv++; + msgsize = atoi(*argv); + if (msgsize > sizeof (buf) || msgsize <= 0) { + printf("%s: Bad message size.\n", *argv); + exit(2); + } + if (pipe(fd) < 0) { + perror("pipe"); + exit(3); + } + for (i = 0; i < iter; i++) { + write(fd[1], buf, msgsize); + read(fd[0], buf, msgsize); + } +} +.vE +.SH +pipediscard +.LP +.vS +/* + * IPC benchmarkl, + * write and discard using pipes. + */ + +main(argc, argv) + char *argv[]; +{ + char buf[512]; + int fd[2], msgsize; + register int i, iter; + + if (argc < 3) { + printf("usage: %s iterations message-size\n", argv[0]); + exit(1); + } + argc--, argv++; + iter = atoi(*argv); + argc--, argv++; + msgsize = atoi(*argv); + if (msgsize > sizeof (buf) || msgsize <= 0) { + printf("%s: Bad message size.\n", *argv); + exit(2); + } + if (pipe(fd) < 0) { + perror("pipe"); + exit(3); + } + if (fork() == 0) + for (i = 0; i < iter; i++) + read(fd[0], buf, msgsize); + else + for (i = 0; i < iter; i++) + write(fd[1], buf, msgsize); +} +.vE +.SH +pipeback +.LP +.vS +/* + * IPC benchmark, + * read and reply using pipes. + * + * Process forks and exchanges messages + * over a pipe in a request-response fashion. + */ + +main(argc, argv) + char *argv[]; +{ + char buf[512]; + int fd[2], fd2[2], msgsize; + register int i, iter; + + if (argc < 3) { + printf("usage: %s iterations message-size\n", argv[0]); + exit(1); + } + argc--, argv++; + iter = atoi(*argv); + argc--, argv++; + msgsize = atoi(*argv); + if (msgsize > sizeof (buf) || msgsize <= 0) { + printf("%s: Bad message size.\n", *argv); + exit(2); + } + if (pipe(fd) < 0) { + perror("pipe"); + exit(3); + } + if (pipe(fd2) < 0) { + perror("pipe"); + exit(3); + } + if (fork() == 0) + for (i = 0; i < iter; i++) { + read(fd[0], buf, msgsize); + write(fd2[1], buf, msgsize); + } + else + for (i = 0; i < iter; i++) { + write(fd[1], buf, msgsize); + read(fd2[0], buf, msgsize); + } +} +.vE +.SH +forks +.LP +.vS +/* + * Benchmark program to calculate fork+wait + * overhead (approximately). Process + * forks and exits while parent waits. + * The time to run this program is used + * in calculating exec overhead. + */ + +main(argc, argv) + char *argv[]; +{ + register int nforks, i; + char *cp; + int pid, child, status, brksize; + + if (argc < 2) { + printf("usage: %s number-of-forks sbrk-size\n", argv[0]); + exit(1); + } + nforks = atoi(argv[1]); + if (nforks < 0) { + printf("%s: bad number of forks\n", argv[1]); + exit(2); + } + brksize = atoi(argv[2]); + if (brksize < 0) { + printf("%s: bad size to sbrk\n", argv[2]); + exit(3); + } + cp = (char *)sbrk(brksize); + if ((int)cp == -1) { + perror("sbrk"); + exit(4); + } + for (i = 0; i < brksize; i += 1024) + cp[i] = i; + while (nforks-- > 0) { + child = fork(); + if (child == -1) { + perror("fork"); + exit(-1); + } + if (child == 0) + _exit(-1); + while ((pid = wait(&status)) != -1 && pid != child) + ; + } + exit(0); +} +.vE +.SH +execs +.LP +.vS +/* + * Benchmark program to calculate exec + * overhead (approximately). Process + * forks and execs "null" test program. + * The time to run the fork program should + * then be deducted from this one to + * estimate the overhead for the exec. + */ + +main(argc, argv) + char *argv[]; +{ + register int nexecs, i; + char *cp, *sbrk(); + int pid, child, status, brksize; + + if (argc < 3) { + printf("usage: %s number-of-execs sbrk-size job-name\n", + argv[0]); + exit(1); + } + nexecs = atoi(argv[1]); + if (nexecs < 0) { + printf("%s: bad number of execs\n", argv[1]); + exit(2); + } + brksize = atoi(argv[2]); + if (brksize < 0) { + printf("%s: bad size to sbrk\n", argv[2]); + exit(3); + } + cp = sbrk(brksize); + if ((int)cp == -1) { + perror("sbrk"); + exit(4); + } + for (i = 0; i < brksize; i += 1024) + cp[i] = i; + while (nexecs-- > 0) { + child = fork(); + if (child == -1) { + perror("fork"); + exit(-1); + } + if (child == 0) { + execv(argv[3], argv); + perror("execv"); + _exit(-1); + } + while ((pid = wait(&status)) != -1 && pid != child) + ; + } + exit(0); +} +.vE +.SH +nulljob +.LP +.vS +/* + * Benchmark "null job" program. + */ + +main(argc, argv) + char *argv[]; +{ + + exit(0); +} +.vE +.SH +bigjob +.LP +.vS +/* + * Benchmark "null big job" program. + */ +/* 250 here is intended to approximate vi's text+data size */ +char space[1024 * 250] = "force into data segment"; + +main(argc, argv) + char *argv[]; +{ + + exit(0); +} +.vE +.bp +.SH +seqpage +.LP +.vS +/* + * Sequential page access benchmark. + */ +#include + +char *valloc(); + +main(argc, argv) + char *argv[]; +{ + register i, niter; + register char *pf, *lastpage; + int npages = 4096, pagesize, vflag = 0; + char *pages, *name; + + name = argv[0]; + argc--, argv++; +again: + if (argc < 1) { +usage: + printf("usage: %s [ -v ] [ -p #pages ] niter\n", name); + exit(1); + } + if (strcmp(*argv, "-p") == 0) { + argc--, argv++; + if (argc < 1) + goto usage; + npages = atoi(*argv); + if (npages <= 0) { + printf("%s: Bad page count.\n", *argv); + exit(2); + } + argc--, argv++; + goto again; + } + if (strcmp(*argv, "-v") == 0) { + argc--, argv++; + vflag++; + goto again; + } + niter = atoi(*argv); + pagesize = getpagesize(); + pages = valloc(npages * pagesize); + if (pages == (char *)0) { + printf("Can't allocate %d pages (%2.1f megabytes).\n", + npages, (npages * pagesize) / (1024. * 1024.)); + exit(3); + } + lastpage = pages + (npages * pagesize); + if (vflag) + vadvise(VA_SEQL); + for (i = 0; i < niter; i++) + for (pf = pages; pf < lastpage; pf += pagesize) + *pf = 1; +} +.vE +.SH +randpage +.LP +.vS +/* + * Random page access benchmark. + */ +#include + +char *valloc(); +int rand(); + +main(argc, argv) + char *argv[]; +{ + register int npages = 4096, pagesize, pn, i, niter; + int vflag = 0, debug = 0; + char *pages, *name; + + name = argv[0]; + argc--, argv++; +again: + if (argc < 1) { +usage: + printf("usage: %s [ -d ] [ -v ] [ -p #pages ] niter\n", name); + exit(1); + } + if (strcmp(*argv, "-p") == 0) { + argc--, argv++; + if (argc < 1) + goto usage; + npages = atoi(*argv); + if (npages <= 0) { + printf("%s: Bad page count.\n", *argv); + exit(2); + } + argc--, argv++; + goto again; + } + if (strcmp(*argv, "-v") == 0) { + argc--, argv++; + vflag++; + goto again; + } + if (strcmp(*argv, "-d") == 0) { + argc--, argv++; + debug++; + goto again; + } + niter = atoi(*argv); + pagesize = getpagesize(); + pages = valloc(npages * pagesize); + if (pages == (char *)0) { + printf("Can't allocate %d pages (%2.1f megabytes).\n", + npages, (npages * pagesize) / (1024. * 1024.)); + exit(3); + } + if (vflag) + vadvise(VA_ANOM); + for (i = 0; i < niter; i++) { + pn = random() % npages; + if (debug) + printf("touch page %d\n", pn); + pages[pagesize * pn] = 1; + } +} +.vE +.SH +gausspage +.LP +.vS +/* + * Random page access with + * a gaussian distribution. + * + * Allocate a large (zero fill on demand) address + * space and fault the pages in a random gaussian + * order. + */ + +float sqrt(), log(), rnd(), cos(), gauss(); +char *valloc(); +int rand(); + +main(argc, argv) + char *argv[]; +{ + register int pn, i, niter, delta; + register char *pages; + float sd = 10.0; + int npages = 4096, pagesize, debug = 0; + char *name; + + name = argv[0]; + argc--, argv++; +again: + if (argc < 1) { +usage: + printf( +"usage: %s [ -d ] [ -p #pages ] [ -s standard-deviation ] iterations\n", name); + exit(1); + } + if (strcmp(*argv, "-s") == 0) { + argc--, argv++; + if (argc < 1) + goto usage; + sscanf(*argv, "%f", &sd); + if (sd <= 0) { + printf("%s: Bad standard deviation.\n", *argv); + exit(2); + } + argc--, argv++; + goto again; + } + if (strcmp(*argv, "-p") == 0) { + argc--, argv++; + if (argc < 1) + goto usage; + npages = atoi(*argv); + if (npages <= 0) { + printf("%s: Bad page count.\n", *argv); + exit(2); + } + argc--, argv++; + goto again; + } + if (strcmp(*argv, "-d") == 0) { + argc--, argv++; + debug++; + goto again; + } + niter = atoi(*argv); + pagesize = getpagesize(); + pages = valloc(npages*pagesize); + if (pages == (char *)0) { + printf("Can't allocate %d pages (%2.1f megabytes).\n", + npages, (npages*pagesize) / (1024. * 1024.)); + exit(3); + } + pn = 0; + for (i = 0; i < niter; i++) { + delta = gauss(sd, 0.0); + while (pn + delta < 0 || pn + delta > npages) + delta = gauss(sd, 0.0); + pn += delta; + if (debug) + printf("touch page %d\n", pn); + else + pages[pn * pagesize] = 1; + } +} + +float +gauss(sd, mean) + float sd, mean; +{ + register float qa, qb; + + qa = sqrt(log(rnd()) * -2.0); + qb = 3.14159 * rnd(); + return (qa * cos(qb) * sd + mean); +} + +float +rnd() +{ + static int seed = 1; + static int biggest = 0x7fffffff; + + return ((float)rand(seed) / (float)biggest); +} +.vE diff --git a/doc/misc/sysperf/a2.t b/doc/misc/sysperf/a2.t new file mode 100644 index 00000000..a5bc2f2b --- /dev/null +++ b/doc/misc/sysperf/a2.t @@ -0,0 +1,90 @@ +.\" Copyright (c) 1985 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)a2.t 1.1 (Berkeley) 7/27/85 +.\" +.SH +run (shell script) +.LP +.vS +#! /bin/csh -fx +# Script to run benchmark programs. +# +date +make clean; time make +time syscall 100000 +time seqpage -p 7500 10 +time seqpage -v -p 7500 10 +time randpage -p 7500 30000 +time randpage -v -p 7500 30000 +time gausspage -p 7500 -s 1 30000 +time gausspage -p 7500 -s 10 30000 +time gausspage -p 7500 -s 30 30000 +time gausspage -p 7500 -s 40 30000 +time gausspage -p 7500 -s 50 30000 +time gausspage -p 7500 -s 60 30000 +time gausspage -p 7500 -s 80 30000 +time gausspage -p 7500 -s 10000 30000 +time csw 10000 +time signocsw 10000 +time pipeself 10000 512 +time pipeself 10000 4 +time udgself 10000 512 +time udgself 10000 4 +time pipediscard 10000 512 +time pipediscard 10000 4 +time udgdiscard 10000 512 +time udgdiscard 10000 4 +time pipeback 10000 512 +time pipeback 10000 4 +time udgback 10000 512 +time udgback 10000 4 +size forks +time forks 1000 0 +time forks 1000 1024 +time forks 1000 102400 +size vforks +time vforks 1000 0 +time vforks 1000 1024 +time vforks 1000 102400 +countenv +size nulljob +time execs 1000 0 nulljob +time execs 1000 1024 nulljob +time execs 1000 102400 nulljob +time vexecs 1000 0 nulljob +time vexecs 1000 1024 nulljob +time vexecs 1000 102400 nulljob +size bigjob +time execs 1000 0 bigjob +time execs 1000 1024 bigjob +time execs 1000 102400 bigjob +time vexecs 1000 0 bigjob +time vexecs 1000 1024 bigjob +time vexecs 1000 102400 bigjob +# fill environment with ~1024 bytes +setenv a 012345678901234567890123456789012345678901234567890123456780123456789 +setenv b 012345678901234567890123456789012345678901234567890123456780123456789 +setenv c 012345678901234567890123456789012345678901234567890123456780123456789 +setenv d 012345678901234567890123456789012345678901234567890123456780123456789 +setenv e 012345678901234567890123456789012345678901234567890123456780123456789 +setenv f 012345678901234567890123456789012345678901234567890123456780123456789 +setenv g 012345678901234567890123456789012345678901234567890123456780123456789 +setenv h 012345678901234567890123456789012345678901234567890123456780123456789 +setenv i 012345678901234567890123456789012345678901234567890123456780123456789 +setenv j 012345678901234567890123456789012345678901234567890123456780123456789 +setenv k 012345678901234567890123456789012345678901234567890123456780123456789 +setenv l 012345678901234567890123456789012345678901234567890123456780123456789 +setenv m 012345678901234567890123456789012345678901234567890123456780123456789 +setenv n 012345678901234567890123456789012345678901234567890123456780123456789 +setenv o 012345678901234567890123456789012345678901234567890123456780123456789 +countenv +time execs 1000 0 nulljob +time execs 1000 1024 nulljob +time execs 1000 102400 nulljob +time execs 1000 0 bigjob +time execs 1000 1024 bigjob +time execs 1000 102400 bigjob +.vE +.bp diff --git a/doc/misc/uchanges.4.1 b/doc/misc/uchanges.4.1 new file mode 100644 index 00000000..56e6b340 --- /dev/null +++ b/doc/misc/uchanges.4.1 @@ -0,0 +1,808 @@ +.de IR +\fI\\$1\fR\\$2\\fR\\fR +.. +.TL +Bug fixes and changes in 4.1bsd +.sp +May 10, 1981 +.AU +Bill Joy +.AI +Computer Systems Research Group +.AB +This document describes briefly the changes in the Berkeley system +for the VAX between the fourth distribution of November 1980 (known originally +as 4BSD, and hereinafter referred to as 4.0bsd) +and this, its revision of April 1981. +It attempts to be summarize, without going into great detail, the +changes which have been made. +.AE +.SH +.ce +.LG +Notable improvements +.SM +.sp +.IP \s+1\(bu\s0 +Performance of the system under heavy paging load has been substantially +improved by correcting a problem with placement of pre-paged pages. +The system now pre-pages more data, greatly benefitting processes which +have locality in their behavior. System degradation due to pre-paging has +been reduced (even though more pre-paging is done), by placing the pre-paged +pages as the bottom of the free-list, rather than in the systems global +clock replacement loop. +.IP \s+1\(bu\s0 +Processes which serially reference large amounts of virtual memory +may now declare themselves to be sequential (see +.IR vadvise (2)), +causing the paging algorithm to be adjusted to be more appropriate for +such behavior.* +.FS +* Future versions of the system will detect strongly sequential behavior +and adapt themselves accordingly, so this call will no longer be necessary. +.FE +Processes which are known to need only a small amount of memory, but +which tend to accumulate large amounts of memory due to strange page +referencing patterns may declare a soft limit on the amount of memory +to be used, see +.IR vlimit (2) +or do ``limit memoryuse \fIn\fR\|k'' in +.IR csh (1). +If the system needs memory, and there are processes which are over their +declared limits, the system tends to take pages from these processes first. +By saying that these limits are soft, we mean that on a system where +physical memory is not scarce, processes with limits can still acquire as much +physical memory as they require. +.IP \s+1\(bu\s0 +The system is now compiled from a description of the local machine +which includes information about available devices and the maximum +number of users to be supported on the system. It is no longer +necessary to adjust an armful of constants to re-size the system; normal +time-sharing systems are parameterized from a single ``maxusers'' constant. +The system also adjusts the parameters of the paging subsystem based +on available memory; it is no longer necessary to adjust these for machines +with very small or very large amounts of available memory. +.IP \s+1\(bu\s0 +The system now handles multiple uba's and mba's and mixing of devices +on mba's. A number of new devices are supported: RK07's and TS-11's +which come in the standard 11/750 packages, UNIBUS TM-11 tape emulators +(e.g. the EMULEX TC-11 with a KENNEDY 9300 transport). Line printer +and C/A/T phototypesetter drivers are included in the system, and +modem control for the DH-11 using the DM-11 has been integrated and +tested. The new RM-80 Winchester drive from DEC is supported. +Notably unsupported are the 11/750 console casettes. +A single distribution system boots on all supported hardware configurations +by determining the available devices and selecting a root device at boot +time. +.IP \s+1\(bu\s0 +The \fItar\fR program has been changed to allow update of +magnetic tape archives, adding to the end of the existing tape +archive. This uses tape control facilities newly added in this +version of the system, but the created tapes are readable on +all versions of UNIX. Since blocked tapes are inherently more +efficient and fully functional, \fItar\fR now creates blocked tapes by default. +.IP \s+1\(bu\s0 +Shell scripts are now potentially executable. A file which begins +with the characters ``#!'' followed by some amount of white space +and the name of an interpreter is executed directly by the system. +The standard version 7 shell, /bin/sh, has been changed to recognize +a # as a comment character. It is desirable that users change +existing shell script so that the first line of each shell script +begins with ``#!'' and the name of the proper shell to execute. +.IP \s+1\(bu\s0 +Two new documents have been added to Volume 2c: a manual for the +crt screen package \fB\-lcurses\fR, and a document describing the +\fBrogue\fR game. +.br +.ne 10 +.LP +.LP +.ce +.LG +.B "Major bug fixes" +.SM +.sp +.IP \s+1\(bu\s0 +A number of bugs have been fixed in the FORTRAN compiler F77; +these caused some block data routiens and main programs to fail to compile. +Other bugs related to use of the symbolic debugger with FORTRAN +have been fixed (see \fBf77\fR in ``Section 1'' below.) +.IP \s+1\(bu\s0 +A bug which caused the C compiler to complain ``expression too complicated'' +when an expression contained an embedded structure assignment has been fixed. +.IP \s+1\(bu\s0 +A kernel bug which caused approximately 1/8'th of data collected during +program profiling to be lost has been corrected. +.IP \s+1\(bu\s0 +A very confusing bug in the \fItset\fR manual page has been corrected: +in the example where it uses the \fIsetenv\fR command it should rather +use the \fIset\fR command: ``set noglob; eval ...''. The alternate +form does not work on a number of terminals. +.IP \s+1\(bu\s0 4 +Due to a inconsistency between the 11/780 and the 11/750 in the +interpretation of the \fBmovtuc\fR instruction, all binaries from +the third distribution tape (of January 1980) and the fourth +distribution tape (of November 1980) will NOT run correctly on +the 11/750. The 4.1bsd distribution tape includes a new +version of the standard i/o +library which avoids use of this troublesome instruction, and it +is recommended that all programs be recompiled from scratch to use +this new library to eliminate non-portable UNIX binaries as soon +as possible. +.IP +The problem is that when there appears to be a chance that the operands +to \fBmovtuc\fR will overlap, but they in fact do not (because the +pattern string to printf is terminated by a null), the 11/750 does +not execute the \fBmovtuc\fR as though a shorter string length +were specified which did not imply potential overlap. Thus this +instruction which is in the inner loop of \fIprintf\fR on the 4bsd +tape, and which works fine on an 11/780, malfunctions on an 11/750 +causing strange and awful behavior. +.IP \s+1\(bu\s0 4 +(The following change is applicable only to systems bootstrapped +from the 4.1bsd release tape; systems upgraded from 4.0bsd may +or may not include this change.) +The standard i/o library has been made more compatible with the PDP-11 +version 7 system and now supports concurrent read and write access +to files (see +.IR fopen (3s) +for details). +This caused a change in an internal data structure which is visible +to compiled programs through the macros in , and thus +necessitates discarding of old \fB.o\fR files and recompilation. +Note that this standard i/o library now replaces the old \fB\-lNS\fR +library which was in 3bsd but was deleted from 4bsd pending the +inclusion of read-write capability in stdio. +.SH +.LG +.ce +Section 1 +.SM +.sp +.PP +.de BP +.IP \fB\\$1\\fR 11n +.. +.BP adb +A bug which prevented programs loaded with the \fB\-N\fR loader +option from having breakpoints set on them has been fixed. +A bug which prevented backtraces of programs which are stopped +at interrupt level (after a signal) has been fixed by teaching +adb how to step across the interrupt stack frame. +The system now makes available and the $? command in adb interprets +more precise codes when SIGILL and SIGFPE exceptions occur. +Thus if you divide by zero, you can find out that this was what +caused a floating point exception. +A bug which prevented format +repetition counts (e.g. the 10 in ``0/10X'') from working +has been fixed. +A bug related to adb has been fixed that prevented any sensible +traceback after a FORTRAN-77 runtime error which trapped +an exception or fault (e.g. a floating point divide by 0). +A bug which caused the maps to be set improperly when debugging +the kernel on a crash dump has been fixed. +.IP +New commands have been added to adb to facilitate writing adb procedures +stored in files: see the descriptions of $<<, the register <9, +and the # operator in the revised adb manual page. +.BP awk +Has moved from /usr/bin to /bin because it is needed during +bootstrap procedures. +.BP bc +Now takes the new C syntax operators: ``=op'' as well as +(for history's sake) the old syntax ``op=''. +.BP calendar +Several bugs have been fixed in the internals of the calendar program. +In addition it is now possible to have a calendar entry consisting +of merely a date (with no month specified) and have this entry occur +each month. +.BP cc +A bug has been fixed in the C optimizer which caused strange +things to happen when long variable names were used. +The size of the internal ``dimension'' table has been increased +to allow more structure fields to be declared. +A problem which caused the compiler to print ``expression causes +compiler loop'' when structure assignment was embedded in an +expression context has been fixed. A bug in the code generator +tables which affected certain FORTRAN constructs has also been fixed. +.BP checknr +Es versteht \fB\-mm\fR. +.BP csh +A cosmetic bug which prevented the distributed source from compiling +has been fixed. A bug which caused argument lists including the strings +``{'' or ``{}'' to sometimes fail saying ``No match'' has been fixed. +A bug which caused a strange state to result when a command of the +form ``(a; b; c)'' was stopped from the keyboard has been fixed. +The shell has been fixed so that it prefers to make stopped jobs +the new current jobs after the current job has terminated. +The construct ``${TERM}'' no longer yields an extra ``}'' +when the variable expanded is from the environment. +.IP +Previously undocumented was the shell variable \fIhistchars\fR; +it can be set to two characters, and the first is then a replacement +for the normal \fB!\fR history character and the second for the \fB^\fR +quick history substitution character. Thus after ``set histchars=,;'' +the command ``,,'' repeats the previous command, as ``!!'' would normally +have done. +.BP ctags +Now takes an option +.B \-v +to produce output suitable for input to +.IR vgrind (1). +.BP cu +Now honors uucp's locking protocol for the dialout lines. +Several bugs relating to internal buffer overruns have been fixed. +An option \fB\-b\fR has been added which causes the BREAK key +to generate breaks (by turning input null characters into breaks +sent over the line). +.BP delivermail +.br +Some bugs which caused strange loops when aliases were self-referential +have been fixed. +.BP diff +Some bugs related to directory diffs when the +.B \-h +option was used have been fixed; previously the +.B \-h +option was non-functional. +.BP dump +An obnoxious bug in the dump program where it would wrongly +suggest that further dump tapes were needed after a multi-tape +dump had already completed has been fixed. The dump program +no longer attempts to time tape rewinds itself, but uses +a mechanism which does not depend on the speed of the tape +drive to determine when a rewind is complete. +.BP error +Has been taught about the error message formats of the +PDP-11 C compiler. +.BP expand +A internal error check which was incorrect has been fixed. +.BP f77 +Has had a bug fixed which caused some block data subroutines +and main programs to not compile (the sympton was a diagnostic of +the form ``Undefined: LWM%d''. A number of minor bugs which +combined to make sdb function poorly with f77 have been fixed. +The result of these bugs were that if file names were longer +than 6 characters sdb could not read the symbol table of the +resulting FORTRAN binary. +.IP +An i/o library bug which caused numbers of the form ``-1.2'' +to convert improperly in list-directed input (reading as ``-0.8'', +taking the mantissa as positive) has been fixed. +.BP ld +If you are using the \fB\-r\fR flag and there remain undefined symbols +you no longer get a spurious error return. Now respects modes of existing +files and your file-creation mask more. +.BP lisp +The functions +, /, -, *, 1+, 1- now expect fixnum arguments, +for interpreted functons as well as compiled ones. The source +for the VMS and UNIX versions of lisp have been combined and +synchronized. The construction of very large integers has +been altered to use regular dotted pairs in a non-standard +way, so that fewer garbage collections will occur. (It is no +longer safe to use ``car'' and ``cdr'' to disect large +integers). Mixed-mode arithmetic has been made faster. +There is a new compiler option (liszt -r) which allows +you to create +.B small +lisp application programs (with a mechanism other than +``dumplisp'', which tends to create very large binaries). +When the result of +such a compilation is executed directly, it execs /usr/ucb/lisp +and then fast loads the file you asked to be executed. +A new flag $ldprint has been added to control the printing +of fasl/load messages. +New functions (purecopy), (getdata), (putdata), +and (removeaddress) have been added. +A number of minor bugs have been fixed. +.BP lpr +Has been modified to work on both DECWRITER type devices +at 1200 baud masquerading as printers and also on real line +printers. The queueing algorithm has been made first-come-first-serve +(replacing the old random job first algorithm), and a line +printer driver is now available in the standard distributed system. +.BP ls +A bug has been fixed which caused essentially random numbers to +be printed for the size of special files. The size now prints as 0. +.BP make +A spelling error has been fixed which had the variable EC initialized +to f77 rather than FC=f77. +.BP man +A bug which caused it to core dump when reformatting a manual page +whose source macros were inaccessible has been fixed. +.BP mt +Is a new command +which provides easy access to operations such as forward and backward spacing +of files and records on magnetic tape. +.BP mv +Has been changed to have a option ``\fB\-\fR'' which means that +all the following arguments are file names. A bug has been fixed +which caused strange behaviour when the \fB\-i\fR option was used +on directories. +A bug which prevented renaming of subdirectories to which you had no +write access has been fixed. +.BP oldcsh +Which was non-functional due to a change in a internal library +interface which it had taken advantage of has been fixed to work. +.BP od +New options \fBO\fR, \fBX\fR, and \fBD\fR print 32 bit integers +in octal hex and decimal format; an option \fBw\fR has been +added to cause 132 column output rather than the default 80 column +oriented output. +.BP pc/pi +A number of bugs in the sdb symbol table produced have been fixed. +Structured types may now exceed 65k bytes in size, but in that case +may not be passed by value nor assigned by simple assignment. +Structured types are properly returned from recursive functions. +Minor bugs in passing function parameters have been fixed, and +there still exist some more minor bugs here. +Runtime tests can be now be enabled or disabled on a per routine basis. +Runtime checks are now done properly on builtin functions. +Warnings (or standards violations) are now produced for extensions +to the language. Some inconsistencies in dealing with running out of +memory have been fixed. +.IP +Some bugs are known: invoking a formal routine from inside a formal +invocation of the same routine will mess up. +In pc only: linking seperately compiled modules from other than the +current directory only works if you give full path names (or the same +relative paths) for the compilation and the linking. +.IP +Some changes are planned soon: +for-loop variables and with pointers will be allocated to registers. +The formal routine syntax is currently as in Jensen and Wirth, but +will soon be changed to the the syntax of the proposed standards, +in which parameters to formals must be given. +It is planned that \fBpc\fR will soon do compile time constant folding. +.BP pmerge +Is a new program which can convert large Pascal programs back into a +single file, eliminating the header files and separate source files +normally used for separate compilation. +.BP prof +A bug which caused prof to loop when a file-static function was +profiled has been fixed. A bug in the kernel which caused the +results of prof to be inaccurate has also been fixed. +.BP ps +Has been changed to work with the new kernel and is no longer +dependent on system sizing; thus it is no longer necessary to +recompile ps when the system tables are made larger. A bug +in the \fBs\fR option which caused the computed stack size +to be a constant 512 bytes too large has been fixed. +The ``STAT'' field now shows ``>'' in the second position for programs +which are using more memory than their \fImemoryuse\fR limit (see +.IR vlimit (2)). +It also shows ``S'' in the fourth position for processes which have +declared themselves to be strongly sequential (see +.IR vadvise (2)). +Under the \fBv\fR option, the SWRSS field has been replaced by a new +field ``LIM'' which shows the limit on \fImemoryuse\fR if there is a limit, +or \fIxx\fR if there is not. +.BP px +Is now written in C, is much more portable, and shares the runtime library +used by the compiler. It is, unfortunately, somewhat slower now. +.BP ranlib +No longer considers it a fatal error that an archive member defines +no symbols. +.BP reset +Has been changed to invoke the command +.RS +.IP +.B "tset \-Q \-I" +.RE +.IP +so that all terminal modes will be reset. +.BP rm +Now has a +.B \- +option to indicate that all the following +parameters are to be treated as file names. +It can be used when file names begin with ``\fB\-''. +.BP rmdir +Now works correctly when arguments end in one or more ``/'' characters. +.BP sdb +Has been fixed to be able to deal with ``interrupt-stack-frames'', +so that it is possible to set breakpoints on and get backtraces +from routines called while a signal is being processed. +Now handles binaries which are mode 0407 (resulting from ``ld \-N'') +properly. +.BP sh +Has been changed so that ``#'' begins a comment. +Shell scripts to be executed by /bin/sh should begin +``#! /bin/sh'' on the first line. +.BP tar +Now defaults to blocked tape and can update blocked tapes (finally!). +When reading tape tar defaults to the raw tape and figures out +what is going on with blocksize so it need not be specified. +Thus the only commands which should be needed are the simple ``tar t'', +``tar c'', ``tar u'' and ``tar x''. +.BP uusend +Now uses the \fB\-r\fR option of \fIuux\fR to prevent presenting +extreme load to the connected system. +.BP vmstat +Has been changed so that the system's device names are printed +for the disks rather than D0, D1, D2, D3. The old format output +of the +.B \-i +option is no longer available. +.IP +The fields related to paging activity are now all +given in pages (of 1024 bytes). In particular, the fields ``pi'' +and ``po'' which previously showed the number of pagein and pageout +events now show pages, and ``sr'' which previously gave the clock +scan rate in revolutions-per-minute now gives the scan rate in pages +scanned per second. To provide the extra space needed to present this +information, the swap in/out information, which was only marginally +interesting, is no longer printed. +.BP w +Has been modified so that it no longer needs to be recompiled +when the kernel tables change in size. +.BP wall +Now checks that the message is not too long for its internal buffer, +rather than just overrunning the buffer. It handles running out +of processes by pausing, so it is possible to use it when there +are more than 25 users logged in and you are not the super-user. +It also gives the machine name you are on in the broadcast messages. +.BP who +``Who am I'' now prints your machine and login name (the first +word of its output) in a format suitable for use with uucp. +.BP write +Now checks that you do not have write permission disabled +and doesn't let you write to someone if they can't write back. +.SH +.LG +.ce +Section 2. +.SM +.sp +.BP intro +Now correctly reflects that argument lists may be upto 10240 characters +long. +.BP exec +Has been changed so that if a file being executed +begins with the magic characters #!, the rest of the line is understood +to be the name of an interpreter for the executed file. +Previously (and in fact still) the shell did much of this job; +it automatically executed itself on a text file with executable mode +when the text file's name was typed as a command. +Putting the facility into the system gives the following +benefits. +.RS +.IP 1) +It makes shell scripts more like real executable files, +because they can be the subject of 'exec.' +.IP 2) +If you do a 'ps' while such a command is running, its real +name appears instead of 'sh'. +Likewise, accounting is done on the basis of the real name. +.IP 3) +Shell scripts can be set-user-ID. +.IP 4) +It is simpler to have alternate shells available; +e.g. if you like the Berkeley \fIcsh\fR there is no question about +which shell is to interpret a file. +.IP 5) +It will allow other interpreters to fit in more smoothly. +.RE +.IP +To take advantage of this wonderful opportunity, +put +.DS +#! /bin/sh +.DE +.IP +at the left margin of the first line of your shell scripts. +Blanks after ! are OK. Use a complete pathname (no search is done). +At the moment the whole line is restricted to 32 characters. +A single argument may be specified for the interpreter, thus: +.DS +#! /bin/csh \-f +.DE +.IP +is very useful, avoiding reading \fI.cshrc\fR which is often +not wanted. +.BP kill +Has been changed so that when broadcasting signals universally +the signal being broadcast is not sent to the broadcaster. +This is used by the +.IR halt (8), +.IR shutdown (8), +and +.IR reboot (8) +commands. +.BP reboot +Has been changed to reflect the now more limited number +of option flags available to the system call due to the +nature of the console interface on the VAX 11/750. +.BP sigsys +Reflects the fact that the system now passes in to a signal +handler an indication of what exception really happened when +a SIGFPE or SIGILL is generated. The call interface at the +point of a signal handler call is now specified. +.PP +.SH +.LG +.ce +Section 3 +.SM +.sp +.PP +.BP curses +A large number of bug fixes have been incorporated, +and the documentation has been greatly improved. +The library is now much more solid than that originally distributed. +.BP fopen +Reflects the new open options which allow simultaneous read-write +to files; these extensions are being incorporated to bring +compatibility with the standard version 7 PDP-11 UNIX and to +replace the (now defunct) \fB\-lNS\fR. +.BP printf +A bug in the documentation which incorrectly stated that a %c format +would not put out a null character has been fixed. +.SH +.LG +.ce +Section 4 +.SM +.sp +.PP +The system now supports a number of new devices and has capability +for detecting the device's presence and interrupt vectors at boot time. +The system also has capability to do device location at boot time +so that a system description as supplied to +.IR config (8) +can take advantage of available hardware redundancy. +.PP +Each configurable device driver in this section now includes +a SYNOPSIS giving sample lines to be included in a system +configuration. Drivers also indicate the error messages +which they produce and describe each error. +.PP +.BP ct +A driver for a C/A/T phototypesetter interface. +.BP dh +Now includes handling of dm-11 modem control hardware. +Optional flags to the configuration program can also be +given to supply hardware carrier easily for lines where +wiring is inadequate. +.BP hp +Includes rm80 support. +.BP lp +Drives standard line printers, and has been improved to +cut the interrupt load by a factor of 20. +.BP mt +Describes the standard tape drive interface, which now includes +.B ioctl +operations for raw magtape allowing such standard operations +as forward and backward spacing over files and records, writing +of end-of-file marks, rewinds, rewinding and offlining, +and sensing of tape status. +These operations are used by the +.IR mt (1) +program which can be used to easily manipulate tape files, +and by the +.IR tar (1) +program to allow updates to blocked tapes. +.BP tm +Supports the UNIBUS TM/11 emulating tape controllers (e.g. EMULEX TC-11 +with a KENNEDY 9300 drive). +.BP ts +Supports the UNIBUS TS/11 tape drive and transport. +.BP tty +Now provides a LDECCTLQ option which causes ^S and ^Q to function +as necessary for the VT100 to work properly. +.BP up +A driver for a EMULEX SC-11 or SC-21 UNIBUS disk controller +with storage module (e.g. Ampex 9300) disk drives. +.BP va +A varian raster plotter. +.SH +.LG +.ce +Section 5 +.SM +.sp +.ce +No changes. +.SH +.LG +.ce +Section 6 +.SM +.sp +.PP +.BP chase +Is a game where robots try to eat you. +.BP hangman +Is now screen oriented. +.BP rain +Drops keep falling on my head. +.BP rogue +Is a new and very popular screen-oriented game, +see +.IR rogue (6) +or +``A Guide to the Dungeons of Doom.'' +.BP worm +Is a game where you see how long you can get the worm to grow. +.BP worms +Is an amusement where the worms chase each other around the screen. +.SH +.LG +.ce +Section 7 +.SM +.sp +.ce +No changes. +.SH +.LG +.ce +Section 8 +.SM +.NL +.PP +Major changes affecting system operations include: +.IP * +The system is configured from a single per-cpu specification +file which includes all locally relevant information: desired +devices, size of the maximum user load, timezone information, etc. +The system determines at boot time the size of the file system +buffer cache based on the amount of physical memory available +and sizes the system data structures based on the specification +of the maximum number of active users; it is no longer necessary +to juggle an armful of constants to enlarge the system. +The sizes of system tables are no longer compiled into programs +such as +.B ps +and +.B w. +.IP * +System error log information is saved across system crashes provided +no power failure occurs, as the error log is kept in-core in the +last 1024 bytes of memory. +.\"Error messages to the console are in a new standard format, reminiscent +.\"of Dave Presotto's speech pattern... they begin with a word, a laugh +.\"encoded as `:' and go on wittily from there to speak the truth. +Error messages to the console are in a standard format, of the form: +.RS +device: message +.RE +.IP +Messages have error registers decoded as bits, so that they are +readable, and no-longer refer to devices by their major/minor device +numbers, rather using device names. Error messages about file +system problems (device full, out of inodes, etc) are referred to +with the mounted file system name, and a message is sent directly +to a user if his/her process writes to a file system when it is full. +All error diagnostics printed by drivers are documented in section 4 +of the manual. +.IP * +DEC standard bad block forwarding is supported on all DEC disks +except the RP06; the code which implements this can be easily +moved into the drivers for the UNIBUS storage module disks; this is planned. +.IP * +Core dumps are saved after system crashes automatically as the system +writes a core image to a portion of the swap area from which it +is recovered after reboot. The system then transfers these core +images to a specified UNIX directory, saving also the version of +the system associated with the crash. The system also maintains +an error log +.B /usr/adm/shutdownlog +which records all system crashes and reboots with the information +about the causes. +.sp +.PP +.BP analyze +Now has an option +.B \-u +to print page numbers of the u. areas. +A bug which prevented the distributed +.B analyze +from working has been fixed. +.BP bad144 +Is a new program which prints out the DEC-standard bad block +information for a disk, or puts it back if it gets clobbered. +The name of the program comes from the fact that the program +deals with ``DEC standard 144'' format. +.BP badsect +Creates a file in a file system which contains a specified disk +sector of that file system. This is a primitive way of dealing +with bad sectors, but works on drivers which don't (yet) have bad +block forwarding according to the standard. +.BP getty +No longer prints ``Virtual'' in front of the system +identification, since there are no swap systems in sight anymore. +.BP halt +Now properly shuts down the system; see \fBreboot\fR below for details. +.BP icheck +Now properly sets the \fItfree\fR field in the super-block. +.BP init +Now interacts with \fBhalt\fR, \fBreboot\fR and \fBshutdown\fR +to bring about orderly system shutdowns. +No longer writes entries in the /usr/adm/wtmp accounting file when +a \fIgetty\fR process dies without a user logging in on a terminal. +Prints a warning message (on the console) if a terminal exists, +is enabled, but the open returns an error, and waits for terminal +to be openable, checking each minute, to prevent thrashing in this case. +.BP last +Now distinguishes between system shutdowns and system crashes. +.BP lastcomm +A bug causing a core dump if user id's not present in the +password file were encountered has been fixed. +.BP login +Now interacts with the shutdown command to forbid logins (except +by the super-user) in the last 5 minutes before a shutdown (detected +by the presence of the file /etc/nologin, which also contains a +message about why the system is shutting down which is presented +to the rejected users.) +Implements a notion of ``secure terminals''; if the file /etc/securetty +exists, then it should contain a list of the secure terminals +where root is allowed to login. If this file does not exist, +then root can log in anywhere, as before. +If a user tries to login but can't get to their home directory +they are left in the root directory and warned, so that they +have some chance to send mail about or fix the problem themselves. +If a file \fI.hushlogin\fR exists in a users home directory +the the message of the day and other such information designed for +human users will not be printed at login time. This is specifically +designed for the user \fIuucp\fR which is another computer +and just ignores such stuff anyways. +Finally a bug has been fixed which cause \fBlogin\fR to core +dump if there were tabs in the file /etc/ttytype. +.BP mkfs +Now works properly when given a \fIproto\fR argument; +previously it complained because it didn't know that the format +of the file /usr/mdec/uboot had been changed. +.BP pstat +Has new flags \fB\-m\fR and \fB\-g\fR which interpret the multiplexor +data structures. +.BP reboot +Now shuts the system down cleanly, stopping all system activity before +initiating the reboot procedure. Normally, however, the new +.B shutdown +command is used to take the system down, notifying the users of the +impending downtime. +The options +.B \-s +and +.B \-a +options to reboot are no longer available, as it will not be +possible to provide them on all VAX cpu's due to the way the +console interface works. Instead, you can halt the processor +using +.B halt +which puts the system into a tight loop, and then perform the +desired reboot sequence manually at the console. This works +on both 11/750 and 11/780 processors. +.BP renice +Has been modified for the new kernel and is no longer dependent +on system configuration parameters; it no longer +needs to be recompiled when system table sizes change. +.BP restor +Now properly handles the case where dump files are contained +in dump tapes; previously the end of the embedded dump would +confuse \fBrestor\fR and cause the rest of the dump tape to be +inaccessible. +.BP sa +Now correctly handles an arbitrary number of commands and users. +Two new options have been added \fB\-v\fR and \fB\-f\fR giving +it a googol+2 options. See +.IR sa (8) +for details. +.BP savecore +Is a new program which runs after a reboot to save +check to see if the system had crashed and, if it had, +to save any core image which was successfully written to +the paging area. +See +.IR savecore (8) +for a full description. +.BP shutdown +Is a new command which shuts the system down at a specified time. +It broadcasts messages to users warning them as the downtime approaches, +records the reason for the reboot in a log file, +and cooperates with init in a cleanly shutdown (e.g. during +the last 2 minutes of system operation, users attempting +to log in are told that the system is going down and the reason +for the shutdown but not allowed to log in.) + diff --git a/doc/misc/uchanges.4.2/0.t b/doc/misc/uchanges.4.2/0.t new file mode 100644 index 00000000..602f60d0 --- /dev/null +++ b/doc/misc/uchanges.4.2/0.t @@ -0,0 +1,22 @@ +.de IR +\fI\\$1\fR\\$2\\fR\\fR +.. +.TL +Bug fixes and changes in 4.2BSD +.sp +July 28, 1983 +.AU +Samuel J. Leffler +.AI +Computer Systems Research Group +Department of Electrical Engineering and Computer Science +University of California, Berkeley +Berkeley, California 94720 +(415) 642-7780 +.AB +This document describes briefly the changes in the Berkeley system +for the VAX between the 4.1BSD distribution of April 1981 +and this, its revision of July 1983. +It attempts to summarize, without going into great detail, the +changes which have been made. +.AE diff --git a/doc/misc/uchanges.4.2/1.t b/doc/misc/uchanges.4.2/1.t new file mode 100644 index 00000000..1d5b4c45 --- /dev/null +++ b/doc/misc/uchanges.4.2/1.t @@ -0,0 +1,129 @@ +.SH +.ce +.LG +Notable improvements +.SM +.sp +.IP \s+1\(bu\s0 +The file system organization has been redesigned to provide at least +an order of magnitude improvement in disk bandwidth. +.IP \s+1\(bu\s0 +The system now provides full support for the DOD Standard TCP/IP +network communication protocols. This support has been integrated +into the system in a manner which allows the development and +concurrent use of other communication protocols. Hardware support +and routing have been isolated from the protocols to allow sharing +between varying network architectures. Software support is +provided for 10 +different hardware devices including 3 different 10 Mb/s Ethernet +modules. +.IP \s+1\(bu\s0 +A new set of interprocess communication facilities has +replaced the old multiplexed file mechanism. +These new facilities allow unrelated processes +to exchange messages in either a connection-oriented +or connection-less +manner. The interprocess communication facilities have been integrated +with the networking facilities (described above) to provide a single user +interface which may be used in constructing applications which operate +on one or more machines. +.IP \s+1\(bu\s0 +A new signal package which closely models the hardware interrupt facilities +found on the VAX replaces the old signals and jobs library of 4.1BSD. +The new signal package provides for automatic masking of signals, +sophisticated signal stack management, and reliable protection of critical +regions. +.IP \s+1\(bu\s0 +File names are now almost arbitrary length (up to 255 characters) and +a new file type, symbolic link, has been added. Symbolic +links provide a ``symbolic referencing'' mechanism similar to that found +in Multics. They are interpolated during pathname expansion and allow users +to create links to files and directories which span file systems. +.IP \s+1\(bu\s0 +The system supports advisory locking on files. Files can have +``shared'' or ``exclusive'' locks applied by processes. Multiple +processes may apply shared locks, but only one process at any +time may have an exclusive lock on a file. Further, when an exclusive +lock is present on a file, shared locks are disallowed. Locking +requests normally block a process until they can be completed, or they +may be indicated as ``non-blocking'' in which case an error is returned +if the lock can not be immediately obtained. +.IP \s+1\(bu\s0 +The group identifier notion has been extended to a ``group set''. When +users log in to the system they are placed in all their groups. Access +control is now done based on the group set rather than just a single group +id. This has obviated the need for the newgrp command. +.IP \s+1\(bu\s0 +Per-user, per-filesystem disk quotas are now part of the system. Soft and +hard limits may be specified on a per user and per filesystem basis to control +the number of files and amount of disk space allocated to a user. Users +who exceed a soft limit are warned and if, after three login sessions, their +disk usage has not dropped below the soft limit, their soft limit is treated +as a hard limit. Utilities exist for the creation, maintenance, and reporting +of disk quotas. +.IP \s+1\(bu\s0 +System time is now available in microsecond precision and millisecond +accuracy. Users are +provided with 3 high-resolution timers which may be set up to automatically +reload on expiration. The timers operate in real time, user time, and +process virtual time (for profiling). All statistics and times returned +to users are now given in a standard format with seconds and microseconds +separated. This eliminates program dependence on the line clock frequency. +.IP \s+1\(bu\s0 +A new system call to rename files in the same file system has been +added. This call eliminates many of the anomalies which could occur +in older versions of the system due to lack of atomicity in removing +and renaming files. +.IP \s+1\(bu\s0 +A new system call to truncate files to a specific length has been added. +This call improves the performance of the Fortran I/O library. +.IP \s+1\(bu\s0 +Swap space configuration has been improved by allowing multiple swap +partition of varying sizes to be interleaved. These partitions are +sized at boot time to minimize configuration dependencies. +.IP \s+1\(bu\s0 +The Fortran 77 compiler and associated I/O library have undergone +extensive changes to improve reliability and performance. Compilation may, +optionally, include optimization phases to improve code density and +decrease execution time. +.IP \s+1\(bu\s0 +A new symbolic debugger, dbx, replaces the old symbolic debugger +sdb. Dbx works on both C and Fortran 77 programs and allows users +to set break points and trace execution by source code line numbers, +references to memory locations, procedure entry, etc. Dbx allows +users to reference structured and local variables using +the program's programming language syntax. +.IP \s+1\(bu\s0 +The delivermail program has been replaced by sendmail. Sendmail +provides full internetwork routing, domain style naming +as defined in the DARPA Request For Comments document #833, +and eliminates the compiled in +configuration database previously used by delivermail. +Further, sendmail +uses the DARPA standard Simple Mail Transfer Protocol (SMTP) +for mail delivery. +.IP \s+1\(bu\s0 +The system contains a new line printer system. Multiple +line printers and spooling queues are supported through a printer +database file. Printers on serial lines, raster printing devices, +and laser printers are supported through a series of filter programs +which interface to the standard line printer ``core programs''. +A line printer control program, lpc, allows printers and printer queues +to be manipulated. Spooling to remote printers is supported in a +transparent fashion. +.IP \s+1\(bu\s0 +Cu has been replaced by a new program tip. Tip +supports a number of auto-call units and allows destination +sites to be specified by name rather than phone number. Tip also +supports file transfer to non-UNIX machines and can be used with +sites which require half-duplex and/or odd-even parity. +.IP \s+1\(bu\s0 +Uucp now supports many auto-call units other than the +DN11. Spooling has been reorganized into multiple directories +to cut down on system overhead. Several new utilities and +shell scripts exist for use in adminstrating uucp traffic. +Operation has been greatly improved by numerous bug fixes. +.br +.ne 10 +.LP +.LP diff --git a/doc/misc/uchanges.4.2/2.t b/doc/misc/uchanges.4.2/2.t new file mode 100644 index 00000000..babd6132 --- /dev/null +++ b/doc/misc/uchanges.4.2/2.t @@ -0,0 +1,453 @@ +.ce +.LG +.B "Bug fixes and changes" +.SM +.sp +.LP +.LP +.LG +.ce +Section 1 +.SM +.sp +.PP +.de BP +.IP \fB\\$1\\fR 11n +.. +.BP adb +Support has been added for interpreting kernel data structures +on a running system and in post mortem crash dumps created +by savecore. A +.B \-k +option causes adb to map addresses +according to the system and current process page tables. +A new command, $p, can be used to switch between process contexts. +Many scripts are available for symbolically displaying +kernel data structures, searching for a process' context +by process ID, etc. A new document, ``Using ADB to +Debug the UNIX Kernel'', supplies hints in the use of adb +with system crash dumps. +.BP addbib +Is a new utility for creating and extending bibliographic +data bases for use with refer. +.BP apply +Is a new program which may be used to apply a command +to a set of arguments. +.BP ar +Has a new key, `o', for preserving a file's modification +time when it is extracted from an archive. +.BP cc +Supports the additional symbol information used by dbx. +The old symbol information, used by the defunct sdb debugger, +is available by specifying the +.B \-go +flag. A new flag, \fB\-pg\fP, +creates executable programs which collect profiling information +to be interpreted by the new gprof program. A bug in the C +preprocessor, which caused line numbers to be incorrect +for macros with formal parameters with embedded newlines has +been fixed. The C preprocessor now properly handles hexadecimal +constants in ``#if'' constructs and checks for missing ``#endif'' +statements. +.BP chfn +Now works interactively in changing a user's information +field in the password file. +.BP chgrp +Is now in section 1 and may be executed by anyone. Users +other than the super-user may change +group ownership of a file they own to any group in +their group access list. +.BP cp +Now has a +.B \-r +flag to copy recursively down a file system tree. +.BP csh +A bug which caused backquoted commands to wedge +the terminal when interrupted has been fixed. Job identifiers +are now globbed. A bug which caused the ``wait'' command +to uninteruptible in certain cases has been fixed. History +may now be saved and restored across terminal sessions with +the \fIsavehist\fP variable. The newgrp command has been +deleted due to the new group facilities. +.BP ctags +Now handles C \fBtypedefs\fP. +.BP cu +Exists only in the form of a ``compatible front-end'' to +the new tip program. +.BP dbx +Is a new symbolic debugger replacing sdb. Dbx handles C +and Fortran programs. +.BP delivermail +.br +Has been replaced by the new sendmail program. +.BP df +Understands the new file system organization and +reports all disk space totals in kilobytes. +.BP du +Now reports disk usage in kilobytes and uses the new +field in the inode structure which contains the actual +number of blocks allocated to a file to increase +accuracy of calculations. +.BP dump +Has been moved to section 8. +.BP error +Has been taught about the error message formats of troff. +.BP eyacc +A bug which caused the generated parser to not recognize valid +null statements has been fixed. +.BP f77 +Has undergone major changes. +.IP +The i/o library has been extensively tested and debugged. +Sequential files are now opened at the \s-2\fBBEGINNING\fP\s0 +by default; previously they were opened at the end. +.IP +Compilation of data statements has been substantially sped up. +Significant new optimization is optionally available (this +is still a bit buggy and should be used with caution). +Even without optimization, however, single precision computations +execute much faster. +.IP +The new debugger, dbx, has replaced sdb for debugging Fortran +programs; sdb is no longer supported. +.IP +Files with ``.F'' suffixes are preprocessed by the C preprocessor. +This allows C-style ``#include'' and ``#define'' constructs to be used. +The compiler has been modified to print error messages with sensible +line numbers. Make also understands the ``.F'' suffix. Note that +when using the C preprocessor, the 72 column convention is not followed. +.IP +The +.B \-I +option for specifying short integers has been changed +to \fB\-i\fP. The +.B \-I +option is now used to specify directory search paths +for ``#include'' statements. A +.B \-pg +option for creating executable +images which collect profiling information for gprof has been added. +.BP fed +Is a font editor of dubious value. +.BP file +Now understands symbolic links. +.BP find +Has a new +.B \-type +value, `l', for finding symbolic links. +.BP fp +Is a new compiler/interpreter for the +Functional Programming language. A supporting document is +present in Volume 2C of the UNIX Programmer's Manual. +.BP fpr +Is a new program for printing Fortran files with embedded +Fortran carriage controls. +.BP fsplit +Is a new program for splitting a multi-function Fortran file +into individual files. +.BP ftp +Is a new program which supports the ARPA standard File Transfer +Protocol. +.BP gcore +Is a new program which creates a core dump of a running process. +.BP gprof +Is a new profiling tool which displays execution time for +the dynamic call graph of a program. Gprof works on C, Fortran, +and Pascal programs compiled with the +.B \-pg +option. Gprof may +also be used in creating a call graph profile for the operating +system. A supporting document, ``gprof: A Call Graph Execution +Profiler" is included in Volume 2C of the UNIX Programmer's +Manual. +.BP groups +Is a new program which displays a user's group access list. +.BP hostid +Is a new program which displays the system's unique identifier +as returned by the new gethostid system call. The super-user +uses this program to set the host identifier at boot time. +.BP hostname +Is a new program which displays the system's name as returned +by the new gethostname system call. The super-user uses this +program to set the host name at boot time. +.BP indent +Is a new program for formatting C program source. +.BP install +Is a shell script used in installing software. +.BP iostat +Now reports kilobytes per second transferred for each +disk. This is useful as the unit of information transferred +is no longer a constant one kilobytes. +.BP last +Now displays the remote host from which a user logged in +(when accessing a machine across a network). The pseudo +user ``ftp'' may be specified to find out information about +FTP file transfer sessions. +.BP lastcomm +Now displays flags for each command indicating if the program +dumped core, used PDP-11 mode, executed with a set-user-ID, +or was created as the result of a fork (with no following exec). +.BP learn +Now has lessons for vi (this is user contributed software +which is not part of the standard system). +.BP lint +Has a new +.B \-C +flag +for creating lint libraries from C source code. Has improved +type checking on static variables. +.BP lisp +Has been ported to several 68000 UNIX systems, the relevant +code is included in the distribution. A new vector data +type and a form of ``closure'' have been added. +.BP ln +Has a new flag, \fB\-s\fP, for creating symbolic links. +.BP login +Has been extensively modified for use with the rlogind +and telnetd network servers. +.BP lpq +Is totally new, see lpr. +.BP lpr +And its related programs are totally new. The line printer +system supports multiple printers of many different characteristics. +A master data base, /etc/printcap, describes both local printers +and printers accessable across a network. A document +describing the line printer system is now part of Volume 2C +of the UNIX Programmer's Manual. +.BP lprm +Is totally new, see lpr. +.BP ls +Has been rewritten for the new directory format. It understands +symbolic links and uses the new inode field which contains the +actual number of blocks allocated to a file when the +.B \-s +flag is supplied. Many rarely used options have been deleted. +.BP m4 +A bug which caused m4 to dump core when keywords were +undefined then redefined has been fixed. +.BP Mail +Now supports mail folders in the style of the Rand MH system. +Has been reworked to cooperate with sendmail in understanding +the new mail address formats. Allows users to defined message +header fields which are not be displayed when a messages is +viewed. Many other changes are described in a revised +version of the user manual. +.BP make +Understands not to unlink directories when interrupted. +Understands the new ``.F'' suffix for Fortran source files +which are to be run through the C preprocessor. Has a +new predefined macro MFLAGS which contains the flags +supplied to make on the command line (useful in creating +hierarchies of makefiles). +.BP mkdir +Now uses the mkdir system call to run faster. +.BP mt +Has a new command, status, which shows the current state +of a tape drive. +.BP mv +Has been rewritten to use the new rename system call. As +a result, multiple directories may now be moved in a single +command, the restrictions on having ``..'' in a pathname +are no longer present, and everything runs faster. +.BP net +And all related Berknet programs are no longer part +of the standard distribution. These programs live on +in /usr/src/old for those who can not do without them. +.BP netstat +Is a new program which displays network statistics and +active connections. +.BP oldcsh +No longer exists. +.BP od +Has gobs of new formats options. +.BP pagesize +Is a new program which prints the system page size for use +in constructing portable shell scripts. +.BP passwd +Now reliably interlocks with chsh, chfn, and vipw, in +guarding against concurrent updates to the password file. +.BP pc/pi +\fBFor\fP loops are now done according to the standard. +Files may now be dynamically allocated and disposed. +Records and variant records are now aligned to correspond to +C structures and unions (this was falsely claimed before). +Several obscure bugs involving formal routines have been +fixed. Three new library routines support random access +file i/o, see /usr/include/pascal for details. +.BP pc (only) +\fBFor\fP loop variables and \fBwith\fP +pointers are now allocated to registers. +Separate compilation type checking can now be done without reference +to the source file; this permits movement (including distribution) +of .o files and creation of libraries. +Display entries are saved only when needed (a speed optimization). +.BP pdx +Is a new debugger for use with pi. Pdx is invoked automatically +by the interpreter if a run-time error is encountered. +Future work is planned to extend the new +dbx debugger to understand code generated by +the Pascal compiler pc. +.BP ps +Has been changed to work with the new kernel and is no longer +dependent on system page size. All process segment sizes +are now shown in kilobytes. Understands that the old +``using new signal facilities'' bit in the process structure +now means ``using old 4.1BSD signal facilities''. +.BP pwd +Now simply calls the \fIgetwd\fP\|(3) routine. +.BP rcp +Is a new program for copying files across a network. +The complete syntax of cp is supported, including recursive +directory copying. +.BP refer +Has had many bugs fixed in it and the associated \-ms macro +package support made to work. +.BP reset +Now resets all the special characters to the system defaults +specified in the include file . +.BP rlogin +Is a new program for logging in to a machine across a +network. Rlogin uses the files /etc/hosts.equiv and .rhosts +in the users login directory to allow logins to be performed +without a password. Rlogin supports proper handling of ^S/^Q +and flushing of output when an interrupt is typed at the +terminal. Its `~' escape sequences are reminiscent of the +old cu program (as it is based on the same source code). +.BP rmdir +Now uses the rmdir system call to run more efficiently and +not require root privileges. Unfortunately, this means +arguments which end in one or more ``/'' characters are no +longer legal. +.BP roffbib +Is a new program for running off bibiliographic databases. +.BP rsh +Is a new program which supports remote command execution +across a network. +.BP ruptime +Is a new program which displays system status information +for clusters of machines attached to a local area network. +.BP rwho +Is a new program which displays users logged in on clusters +of machines attached to a local area network. +.BP script +Has been rewritten to use pseudo-terminals. This allows +the C shell job control facilities (among other things) +to be used while scripting. A side effect of this change +is that scripts now contain everything typed at a terminal. +.BP sdb +Has been replaced by dbx; it still lives on in /usr/src/old +for those with a personal attachment. +.BP sendbug +Is a new command for submitting bug reports on 4.2BSD in +a standard format suitable for automatic filing by the +bugfiler program. +.BP sh +No longer has a newgrp command due to the new groups facilities. +.BP sortbib +Is a new command for sorting bibliographic databases. +.BP strip +Has been made blindingly fast by using the new truncate +system call (thereby eliminating the old method of copying +the file). +.BP stty +The default system erase, kill, and interrupt characters have +been made the DEC standard values of DEL (`^?'), `^U', and +\&`^C'. This is not expected to gain much popularity, but was +done in the interest of compatibility with many other standard +operating systems. +.BP su +Has been changed to do a ``full login'' when starting up +the subshell. A new flag, \fB\-f\fP, does a ``fast'' su for when +a system is heavily loaded. Extra arguments supplied to +su are now treated as a command line and executed directly +instead of creating an interactive shell. +.BP sysline +Is a new program for maintaining system status information +on terminals which support a ``status line''; a poor man's +alternative to a window manager (or emacs). +.BP tail +Has a larger buffer so that ``tail \-r'' and similar +show more. +.BP talk +Is a new program which provides a screen-oriented write +facility. Users may be ``talked to''across a network, +though satellite response times have indicated overseas +conversations are still best done by phone. Can be very +obnoxious when engaged in important work. +.BP tar +Now allocates its internal buffers dynamically so that the +block size can be specified to be very large for streaming +tape drives. Also, now avoids many core-core copy operations. +Has a new +.B \-C +option for forcing chdir operations in the middle +of operation (thereby allowing multiple disjoint subtrees to +be easily placed in a single file, each with short relative +pathnames). Has a new flag, `B', for forcing 20 block records +to be read and written; useful in joining two tar commands +with a remote +shell to transfer large amounts of data across a network. +.BP telnet +Is a new program which supports the ARPA standard Telnet +protocol. +.BP tip +Replaces cu as the standard mechanism for connecting to +machines across a phone line or through a hardwired connection. Tip +uses a database of system descriptions, supports many different +auto-call units, and understands many nuances required to talk +to non-UNIX systems. Files may be transferred +to and from non-UNIX systems in a simple fashion. +.BP ul +A bug which sometimes caused an extra blank line to +be printed after reaching end of file has been fixed. +.BP uucp +And related programs have been extensively enhanced +to support many different auto-call units and multiple spooling +directories (among other things). A large number of bugs +and performance enhancements have been made. +.BP uusnap +Is a new program which gives a snap-shot of the uucp +spooling area. +.BP vfontinfo +Is a program used to inspect and print information about +fonts. +.BP vgrind +Now uses a regular expression language +to describe formatting. A +.B \-f +flag forces vgrind to act as +a filter, generating output suitable for inclusion in troff +and/or nroff documents. Language descriptions exist for C, Pascal, +Model, C shell, Bourne shell, Ratfor, and Icon programs. +.BP vi +A bug which caused the ^B command to place the cursor on +the wrong line has been fixed. A bug which caused vi to +believe a file had been modified when an i/o error occurred +has been fixed. A bug which allowed ``hardtabs'' to be +set to 0 causing a divide by zero fault has been fixed. +.BP vlp +Is a new program for pretty printing Lisp programs. +.BP vmstat +Has had one new piece of information added to +.B \-s +summary, the number of fast page reclaims performed. +The fields related to paging activity are now all +given in kilobytes. +.BP vpr +And associated programs for spooling and printing files +on Varian and Versatec printers are now shell scripts +which use the new line printer support. +.BP vwidth +Is a new program for making troff width tables for a font. +.BP wc +Is once again identical to the version 7 program. That is, +the \fB\-v\fP, \fB\-t\fP, \fB\-b\fP, \fB\-s\fP, and \fB\-u\fP +flags have been deleted. +.BP whereis +Understands the new directory organization for the source +code. +.BP which +Now understands how to handle aliases. +.BP who +Now displays the remote machine from which a user is +logged in. diff --git a/doc/misc/uchanges.4.2/3.t b/doc/misc/uchanges.4.2/3.t new file mode 100644 index 00000000..ae7bd82a --- /dev/null +++ b/doc/misc/uchanges.4.2/3.t @@ -0,0 +1,337 @@ +.SH +.LG +.ce +Section 2. +.SM +.sp +.PP +The most important change in section 2 is that the documentation +has been significantly improved. Manual page entries now indicate +the possible error codes which may be returned and how to interpret +them. The introduction to section 2 now includes a glossary of +terms used throughout the section. The terminology and formatting +have been made consistent. Many manual pages now have ``NOTES'' +or ``CAVEATS'' providing useful information heretofore left out +for the sake of brevity. As always the manual pages are still for +the programmer; they are terse and extremely concise. The ``4.2BSD +System Manual'' is likewise concise, but a bit more verbose in +providing an overall picture of the system facilities. +.PP +With regard to changes in the facilities, these fall into three +major categories: interprocess communication, signals, and file +system related calls. The interprocess communication facilities +center around the \fIsocket\fP mechanism described in the +``A 4.2BSD Interprocess Communication Primer''. The new signals +do not have an accompanying document, so the manual pages should +be studied carefully. The new file system calls pretty much stand +on their own, with a late section of the document +``A Fast File System for UNIX'' supplying a quick overview of the +most important new file system facilities. Finally, it should +be noted that the job control facilities introduced in 4.1BSD have +been adopted as a standard part of 4.2BSD. No special distinction +is given to these calls (in 4.1BSD they were earmarked ``2J''). +.PP +Many of the new system calls have both a ``set'' and a ``get'' +form. Only the ``get'' forms are indicated below. Consult +the manual for details on the ``set'' form. +.BP intro +Has been updated to reflect the new list of possible error +codes. Now includes a glossary of terminology used in section 2. +.BP access +Now has symbolic definitions for the \fImode\fP parameter defined +in <\fIsys/file.h\fP>. +.BP bind +Is a new interprocess communication system call for binding +names to sockets. +.BP connect +Is a new interprocess communication system call for establishing +a connection between two sockets. +.BP creat +Has been obsoleted by the new \fIopen\fP interface. +.BP fchmod +Is a new system call which does a \fIchmod\fP operation given +a file descriptor; useful in conjunction with the new advisory +locking facilities. +.BP fchown +Is a new system call which does a \fIchown\fP operation given +a file descriptor; useful in conjunction with the new advisory +locking facilities. +.BP fcntl +Is a new system call which is useful in controlling how i/o +is performed on a file descriptor (non-blocking i/o, signal +drive i/o). This +interface is compatible with the System III fcntl interface. +.BP flock +Is a new system call for manipulating advisory locks on +files. Locks may be shared or exclusive and locking operations +may be indicated as being non-blocking, in which case a +process is not blocked if the requested lock is currently +in use. +.BP fstat +Now returns a larger stat buffer; see below under stat. +.BP fsync +Is a new system call for synchronizing a file's in-core +state with that on disk. Its intended use is in building +transaction oriented facilities. +.BP ftruncate +Is a new system call which does a \fItruncate\fP operation given +a file descriptor; useful in conjunction with the new advisory +locking facilities. +.BP getdtablesize +Is a new system call which returns the size of the +descriptor table. +.BP getgroups +Is a new system call which returns the group access list +for the caller. +.BP gethostid +Is a new system call which returns the unique (hopefully) +identifier for the current host. +.BP gethostname +Is a new system call which returns the name of the current host. +.BP getitimer +Is a new system call which gets the current value for an +interval timer. +.BP getpagesize +Is a new system call which returns the system page size. +.BP getpriority +Is a new system call which returns the current scheduling +priority for a specific process, a group of processes, or +all processes owned by a user. In the latter two cases, +the priority returned is the highest (lowest numerical +value) enjoyed by any of the specified processes. +.BP getrlimit +Is a new system call which returns information about a +resource limit. The getrlimit and setrlimit calls replace +the old vlimit call from 4.1BSD. +.BP getrusage +Is a new system call which returns information about +resource utilitization of a child process or the caller. +This call replaces the vtimes call of 4.1BSD. +.BP getsockopt +Is a new interprocess communication system call which +returns the current options present on a socket. +.BP gettimeofday +Is a new system call which returns the current Greenwich +date and time, and the current timezone in which the machine is +operating. Time is returned in seconds and microseconds +since January 1, 1970. +.BP ioctl +Has been changed to encode the size of parameters and +whether they are to be copied in, out, or in and out of +the user address space in the \fIrequest\fP. The symbolic +names for the various ioctl requests remain the same, +only the numeric values have changed. A number of new ioctls exist +for use with sockets and the network facilities. The old +LINTRUP request has been replaced by a call to fcntl and +the SIGIO signal. +.BP killpg +Has now been made a system call; in 4.1BSD it was a +library routine. +.BP listen +Is a new interprocess communication system call used +to indicate a socket will be used to listen for incoming +connection requests. +.BP lseek +Now has symbolic definitions for its \fIwhence\fP +parameter defined in <\fIsys/file.h\fP>. +.BP mkdir +Is a new system call which creates a directory. +.BP mpx +The multiplexed file facilities are no longer part +of the system. They have been replaced by the +socket, and related, system calls. +.BP open +Is different, now taking an optional third parameter +and supporting file creation, automatic truncation, +automatic append on write, and ``exclusive'' opens. +The open interface has been made compatible with +System III with the exception that non-blocking +opens on terminal lines requiring carrier are not +supported. +.BP profil +Now returns statistical information based on a 100 hz +clock rate. +.BP quota +Is a new system call which is part of the disk quota +facilities. Quota is used to manipulate disk quotas +for a specific user, as well as perform certain random +chores such as syncing quotas to disk. +.BP read +Now automatically restarts when a read on a terminal +is interrupted by a signal before any data is read. +.BP readv +Is a new system call which supports scattering of +read data into (possibly) disjoint areas of memory. +.BP readlink +Is a new system call for reading the value of a +symbolic link. +.BP recv +Is a new interprocess communication system call +used to receive a message on a connected socket. +.BP recvfrom +Is a new interprocess communication system call +used to receive a message on a (possibly) unconnected socket. +.BP recvmsg +Is a new interprocess communication system call +used to receive a message on a (possibly) unconnected socket +which may have access rights included. When using on-machine +communication, recvmsg and sendmsg may be used to pass +file descriptors between processes. +.BP rename +Is a new system call which changes the name of an entry +in the file system (plain file, directory, character +special file, etc.). Rename has an important property +in that it guarantees the target will always exist, even +if the system crashes in the middle of the operation. +Rename only works with source and destination in the +same file system. +.BP rmdir +Is a new system call for removing a directory. +.BP select +Is a new system call (mainly for interprocess +communication) which provides facility for synchronous i/o +multiplexing. Sets of file descriptors may be queried +for readability, writability, and if any exceptional +conditions are present (such as out of band data on a +socket). An optional timeout may also be supplied in +which case the select operation will return after a +specified period of time should no descriptor satisfy the +requests. +.BP send +Is a new interprocess communication system call for +sending a message on a connected socket. +.BP sendto +Is a new interprocess communication system call for +sending a message on a (possibly) unconnected socket. +.BP sendmsg +Is a new interprocess communication system call for +sending a message on a (possibly) unconnected socket +which may included access rights. +.BP setquota +Is a new system call for enabling or disabling disk +quotas on a file system. +.BP setregid +Is a new system call which replaces the 4.1BSD setgid +system call. Setregid allows the real and effective +group ID's of a process to be set separately. +.BP setreuid +Is a new system call which replaces the 4.1BSD setuid +system call. Setreuid allows the real and effective +user ID's of a process to be set separately. +.BP shutdown +Is a new interprocess communication system call for +shutting down part or all of full-duplex connection. +.BP sigblock +Is a new system call for blocking signals during a +critical section of code. +.BP sigpause +Is a new system call for blocking a set of signals +and then pausing indefinitely for a signal to arrive. +.BP sigsetmask +Is a new system call for setting the set of signals +which are currently blocked from delivery to a process. +.BP sigstack +Is a new system call for defining an alternate stack +on which signals are to be processed. +.BP sigsys +Is no longer supported. The new signal facilities are +a superset of those which sigsys provided. +.BP sigvec +Is the new system call interface for defining signal +actions. For each signal (except SIGSTOP and SIGKILL), +sigvec allows a ``signal vector'' to be defined. The +signal vector is comprised of a handler, a mask of signals +to be blocked while the handler executes, and an indication +of whether or not the handler should execute on a signal +stack defined by a sigstack call. The old signal interface +is provided as a library routine with several important +caveats. First, signal actions are no longer reset to +their default value after a signal is delivered to a process. +Second, while a signal handler is executing the signal which +is being processed is blocked until the handler returns. +To simulate the old signal interface, the user must explicitly +reset the signal action to be the default value and unblock +the signal being processed. +.IP +Four new signals have been added for the interprocess +communication and interval timer facilities. SIGIO is +delivered to a process when an fcntl call enables +signal driven i/o and input is present on a terminal (and +a signal handler is defined). +SIGURG is delivered when an urgent condition arises on a +socket (and a handler is defined). SIGPROF and SIGVTALRM +are associated with the ITIMER_PROF and ITIMER_VIRTUAL +interval timers, and delivered to a process when such +a timer expires (the SIGALRM signal is used for the ITIMER_REAL +interval timer). The old SIGTINT signal is replaced by +SIGIO. +.BP socket +Is a new interprocess communication system call for +creating a socket. +.BP socketpair +Is a new interprocess communication system call for +creating a pair of connected and unnamed sockets. +.BP stat +Now returns a larger structure. New fields are present +indicating the optimal blocking factor in which i/o +should be performed (for disk files the block size of +the underlying file system) and the actual number of +disk blocks allocated to the file. Inode numbers are +now 32-bit quantities. Several spare fields have been +allocated for future expansion. These include space +for 64-bit file sizes and 64-bit time stamps. Two new +file types may be returned, S_IFLNK for symbolic +links, and S_IFSOCK for sockets residing in the file system. +.BP swapon +Has been renamed from the vswapon call of 4.1BSD. +.BP symlink +Is a new system call for creating a symbolic link. +.BP truncate +Is a new system call for truncating a file to a +specific size. +.BP unlink +Should no longer be used for removing directories. +Directories should only be created with mkdir and +removed with rmdir. Creating hard links to directories +can cause disastrous results. +.BP utime +Is defunct, replaced by utimes. +.BP utimes +Is a new system call which uses the new time format +in setting the accessed and updated times on a file. +.BP vfork +Is still present, but definitely on its way out. +Future plans include implementing fork with a scheme +in which pages are initially shared read-only. On +the first attempt by a process to write on a page +the parent and child would receive separate writable +copies of the page. +.BP vlimit +Is no longer supported. Vlimit is replaced by the +getrlimit and setrlimit calls. +.BP vread +Is no longer supported in the system. +.BP vswapon +Has been renamed swapon. +.BP vtimes +Is no longer supported. Vtimes is replaced by the +getrusage call. +.BP vwrite +Is no longer supported in the system. +.BP wait +Now is automatically restarted when interrupted +by a signal before status could be returned. +.BP wait3 +Returns resource usage in a different format than +that which was returned in 4.1BSD. This structure +is compatible with the new getrusage system call. +Wait3 is now automatically restarted when interrupted +by a signal before status could be returned. +.BP write +Now is automatically restarted when writing on a +terminal and interrupted by a signal before any +i/o was completed. +.BP writev +Is a new version of the write system call which +supports gathering of data in (possibly) +discontiguous areas of memory diff --git a/doc/misc/uchanges.4.2/4.t b/doc/misc/uchanges.4.2/4.t new file mode 100644 index 00000000..bab0e557 --- /dev/null +++ b/doc/misc/uchanges.4.2/4.t @@ -0,0 +1,110 @@ +.SH +.LG +.ce +Section 3 +.SM +.sp +.PP +The section 3 documentation has been reorganized to group manual +entries by library. Introductory sections for each logical and +physical library contain lists of the entry points in the library. +.PP +A number of routines which had been system calls under 4.1BSD are +now user-level library routines in 4.2BSD. These routines have +been grouped under section ``3C'' headings, ``C'' for compatibility. +Further, certain routines present in the standard C run-time +library which do not easily categorize as part of one of the standard +libraries, have been group under ``3X'' headings. +.BP curses +A number of bug fixes have been incorporated, +and the documentation has been revised. +.BP stdio +The standard i/o library has been modified to block i/o +operations to disk files according to the block size of +the underlying file system. This is accomplished using the new +\fIst_blksize\fP value returned by \fIfstat\fP. The resultant +performance improvement is significant as the old 1 kilobyte +buffer size often resulted in 7 memory-to-memory +copy operations by the system on 8 kilobyte block file systems. +.IP +End-of-file marks now ``stick''. That is, all input requests +on a stdio channel after encountering end-of-file will return +end-of-file until a \fIclearerr\fP call is made. This has +implications for programs which use stdio to read from a terminal +and do not process end-of-file as a terminating keystroke. +.IP +Two new functions may be used to control i/o buffering. +The \fIsetlinebuf\fP routine is used to change \fBstdout\fP +or \fBstderr\fP from block buffered or unbuffered to line +buffered. +The \fIsetbuffer\fP routine is an alternate form of \fIsetbuf\fP +which can be used after a stream has been opened, but before +it is read or written. +.BP bstring +Three new routines, \fIbcmp\fP, \fIbcopy\fP, and \fIbzero\fP +have been added to the library. These routines use the VAX +string instructions to manipulate binary byte strings of +a known size. +.BP ctime +Now uses the \fIgettimeofday\fP system call and supports +time conversion in six different time zones. Daylight +savings calculations are also performed in each time zone +when appropriate. +.BP isprint +Now considers space a printing character; as the manual page +has always indicated. +.BP directory +Is a new directory interface package which provides a portable +interface to reading directories. A version of this library +which operates under 4.1BSD is also available. +.BP getpass +Now properly handles being unable to open /dev/tty. +.BP getwd +Has been moved from the old jobs library to the standard +C run-time library. It now returns an error string rather +than printing on the standard error when unable to decipher +the current working directory. +.BP perror +Now uses the writev system call to pass all its +arguments to the system in a single system call. This +has profound effects on programs which transmit error +messages across a network. +.BP psignal +And sys_siglist are routines for printing signal names +in an equivalent manner to perror. +.BP qsort +Has been greatly sped up by choosing a random element +with which to apply its divide and conquer algorithm. +.BP random +Is a successor to rand which generates much better random +numbers. The old rand routine is still available and most +programs have not been switched over to random as doing so +would make certain facilities such encrypted mail unable +to operate on existing data files. +.BP setjmp +And longjmp now save and restore the signal mask so that +non-local exit from a signal handler is transparent. The +old semantics are available with _setjmp and _longjmp. +.BP net +Is a new set of routines for accessing database files +for the DARPA Internet. Four databases exist: one for +host names, one +for network names, one for protocol numbers, and one for +network services. The latter returns an Internet +port and protocol to be used in accessing a given +network service. +.IP +An additional collection of routines, all prefaced +with ``inet_'' may be used to manipulate Internet +addresses, and interpret and convert between +Internet addresses and ASCII +representations in the Internet standard ``dot'' notation. +.IP +Finally, routines are available for converting +16 and 32 bit quantities between host and network +order (on high-ender machines these routines are +defined to be noops). +.BP fstab +The routines for manipulating /etc/fstab have been +rewritten to return arbitrary length null-terminated +strings. diff --git a/doc/misc/uchanges.4.2/5.t b/doc/misc/uchanges.4.2/5.t new file mode 100644 index 00000000..b37a5f62 --- /dev/null +++ b/doc/misc/uchanges.4.2/5.t @@ -0,0 +1,95 @@ +.SH +.LG +.ce +Section 4 +.SM +.sp +.PP +The system now supports the 11/730, the new 64Kbit RAM memory +controllers for the 11/750 and 11/780, and the second UNIBUS +adapter for the 11/750. +Several new character and/or block device drivers have been added, +as well as support for many hardware devices which are +accessible only through the network facilities. Each new +piece of hardware supported is listed below. +.PP +New manual entries in section 4 have been created to describe +communications protocols, and network architectures supported. +At present the only network architecture fully supported is +the DARPA Internet with the TCP, IP, UDP, and ICMP protocols. +.PP +.BP acc +A network driver for the ACC LH/DH IMP interface. +.BP ad +A driver for the Data Translation A/D converter. +.BP arp +The Address Resolution Protocol for dynamically +mapping betwee 32-bit DARPA Internet addresses and +48-bit Xerox 10Mb/s Ethernet addresses. +.BP css +A network driver for the DEC IMP-11A LH/DH IMP interface. +.BP dmc +A network interface driver for the DEC DMC-11/DMR-11 +point-to-point communications device. +.BP ec +A network interface driver for the 3Com 10Mb/s Ethernet controller. +.BP en +A network interface driver for the Xerox 3Mb/s experimental +Ethernet controller. +.BP hy +A network interface driver for the Network Systems Hyperchannel +Adapter. +.BP ik +A driver for an Ikonas frame buffer graphics device interface. +.BP il +A network interface driver for the Interlan 10Mb/s Ethernet +interface. +.BP imp +A network interface driver for the standard 1822 interface +to an IMP; used in conjunction with either acc or css hardware. +.BP kg +A driver for a KL-11/DL-11W used as an alternate real +time clock source for gathering kernel statistics and profiling +information. +.BP lo +A software loopback network interface for protocol +testing and performance analysis. +.BP pcl +A network interface driver for the DEC PCL-11B communications +controller. +.BP ps +A driver for an Evans and Sutherland Picture System 2 +graphics device connected with a DMA interface. +.BP pty +Now includes a simple packet protocol to support +flow controlled operation with mechanisms for flushing +data to be read and/or written. +.BP rx +A driver for the DEC dual RX02 floppy disk unit. +.BP ts +Now supports TU80 tape drives. +.BP tu +The VAX-11/750 console cassette interface has been +made somewhat usable when operating in single-user +mode. The device driver employs assembly language +pseudo-dma code for the reception of incoming +packets from the cassette. +.BP uda +Now supports RA81, RA80, and RA60 disk drives. +.BP un +A network interface driver for an Ungermann-Bass network +interface unit connected to the host via a DR-11W. +.BP up +Now supports ECC correction and bad sector handling. +Also has improved logic for recognizing many different +kinds of disk drives automatically at boot time. +.BP uu +A driver for DEC dual TU58 tape cartridges connected +via a DL-11W interface. +.BP va +The Varian driver has been rewritten so that it may +coexist on the same UNIBUS with devices which require +exclusive use of the bus; i.e. RK07's. +.BP vv +A network interface driver for the Proteon proNET 10Mb/s +ring network controller. diff --git a/doc/misc/uchanges.4.2/6.t b/doc/misc/uchanges.4.2/6.t new file mode 100644 index 00000000..93a6782e --- /dev/null +++ b/doc/misc/uchanges.4.2/6.t @@ -0,0 +1,56 @@ +.SH +.LG +.ce +Section 5 +.SM +.sp +.PP +.BP dir +Reflects the new directory format. +.BP disktab +Is a new file for maintaining disk geometry information. +This is a temporary scheme until the information stored +in this file for each disk is recorded on the disk +pack itself. +.BP dump +Is a superset of that used in 4.1BSD. +.BP fs +Reflects the new file system organization. +.BP gettytab +Is a new file which idescribes terminal characteristics. +Each entry in the file describes one of the possible arguments +to the getty program. +.BP hosts +Is a database for mapping between host names +and DARPA Internet host addresses. +.BP mtab +Has been modified to include a ``type'' field indicating +whether the file system is mounted read-only, read-write, +or read-write with disk quotas enabled. +.BP networks +Is a database for mapping between network names +and DARPA standard network numbers. +.BP phones +Is a phone number data base for tip. +.BP printcap +Is a termcap clone for configuring printers. +.BP protocols +Is a database for mapping between protocol names +and DARPA Internetwork standard protocol numbers. +.BP remote +Is a database of remote hosts for use with tip. +.BP services +Is a database in which DARPA Internet services +are recorded. The information contained in this +file indicates the name of the service, the protocol +which is required to access it, and the port number +at which a client should connect to utilize the service. +.BP tar +Is a new entry describing the format of a tar tape. +.BP utmp +Has been augmented to include a remote host from which +a login session originates. The wtmp file is also used +to record FTP sessions. +.BP vgrindefs +Is a file describing how to vgrind programs written +in many languages. diff --git a/doc/misc/uchanges.4.2/7.t b/doc/misc/uchanges.4.2/7.t new file mode 100644 index 00000000..bb659828 --- /dev/null +++ b/doc/misc/uchanges.4.2/7.t @@ -0,0 +1,49 @@ +.SH +.LG +.ce +Section 6 +.SM +.sp +.BP aardvark +Does not work because it requires the ``Dungeon Definition Language'' +processor which is a binary image requiring 4.1BSD compatibility mode; +the DDL source is still present. +.BP aliens +The aliens have returned home, the game is no longer included in +the distribution. +.BP backgammon +Is now screen oriented. A new program, teachgammon, instructs the +new backgammon player. The old version is now called btlgammon. +.BP canfield +Is a new game which plays a brand of the popular game of solitaire. +Betting is included, the program cfscores may be used to find +out your current debt. +.BP ching +Now pipes its output through more. Thus the hacker placates +the seekers. +.BP chase +No longer exists because the binary does not work under 4.2BSD. +.BP factor +Is a rewrite in C of the old version 7 assembly language +program which finds the prime factors of a number. +.BP fortune +Has yet more adages. +.BP hangman +Is now screen oriented. +.BP mille +Now plays more intelligently. +.BP primes +Is a rewrite in C of the old version 7 assembly language +program which finds prime numbers within a specified range. +.BP rogue +Has been made more of a scoundrel. +The supplementary document +\&``A Guide to the Dungeons of Doom'', has been +updated as well, and is now part of Volume 2C +of the programmer's manual. +.BP sail +Is a new game which simulates sea battles of yore. +The manual page is large enough to be a separate +document and so has been left in its source directory. +.BP trek +The original trek has returned; trekies rejoice. diff --git a/doc/misc/uchanges.4.2/8.t b/doc/misc/uchanges.4.2/8.t new file mode 100644 index 00000000..6949757d --- /dev/null +++ b/doc/misc/uchanges.4.2/8.t @@ -0,0 +1,25 @@ +.SH +.LG +.ce +Section 7 +.SM +.sp +.BP hier +Has been updated to reflect the reorganization +to the user and system source. +.BP mailaddr +Is a new entry describing mail addressing syntax +under sendmail (possibly too Berkeley specific). +.BP ms +The \-ms macros have been extended to allow automatic +creation of a table of contents. Support for the +refer preprocessor is improved. Several bugs related +to multi-column output and floating keeps have been +fixed. Extensions to the accent mark string set are +available by including the .AM macro. Footnotes +can now be automatically numbered (in superscript) +by \-ms and referenced in the text with a \e** string +register. The manual page includes a summary of important +number and string registers. A new document +\&``Changes to \-ms'' is included in Volume 2C of +the programmer's manual. diff --git a/doc/misc/uchanges.4.2/9.t b/doc/misc/uchanges.4.2/9.t new file mode 100644 index 00000000..22cf0d15 --- /dev/null +++ b/doc/misc/uchanges.4.2/9.t @@ -0,0 +1,286 @@ +.SH +.LG +.ce +Section 8 +.SM +.NL +.PP +Major changes affecting system operations include: +.IP \(bu 3 +The system now supports disk quotas. These allow system +administrators to control users' disk space and file +allocation on a per-file system basis. Utilities in this +section exist for fixing, summarizing, and editing disk +quota summary files. +.IP \(bu 3 +File systems are now made with a new program, newfs, +which acts as front end to the old mkfs program. There +no longer is a need to remember disk partition sizes, as +newfs gets this information automatically from the /etc/disktab +file. In addition, newfs attempts to lay out file systems +according to the characteristics of the underlying disk +drive (taking into account disk geometry information). +.IP \(bu 3 +DEC standard bad block forwarding is now supported on the RP06 +and second vendor UNIBUS storage module disks. The bad144 program +can now be used to mark sectors bad on many disks, though +inclusion in the bad sector table is still somewhat risky +due to requirements in the ordering of entries in the table. +.IP \(bu 3 +A new program, format, should be used to initialize all +non-DEC storage modules before creating file systems. +Format formats the sector headers and creates a bad sector +table which is used in normal system operation. Format runs +in a standalone mode. +.IP \(bu 3 +Getty has been rewritten to use a description file, /etc/gettytab. +This allows sites to tailor terminal operation and configuration +without making modifications to getty. +.IP \(bu 3 +The line printer system is totally new. A program to administer +the operation of printers, lpc, is supplied, and printer accounting +has been consolidated into a single program, pac. +.IP \(bu 3 +The program used to restore files from dump tapes is now called +\fIrestore\fP. This name change was done to reinforce the fact that it is +completely rewritten and operates in a very different way than +the old restor program. Restore operates on mounted file systems +and uses only normal file system operations to restore files. +Versions of both dump and restore which operate across a network +are included as rdump and rrestore. Dump and restore (and their +network oriented counterparts) now perform so efficiently (mostly +because of the new file system), that disk to +disk backups should no longer be an attractive alternative. +.sp +.PP +.BP arff +No longer asks if you want to clobber the floppy when manipulating +archives which are not on the floppy. +.BP bad144 +Has been modified to use the /etc/disktab file. Can be used +to create bad sector tables for the DEC RP06 and several +new Winchester disk drives. Consult the source code for +details and use with extreme care. +.BP badsect +Has been modified to work with the new file system and now +must interact with fsck to perform its duties. Consult +the manual page for more information. +.BP bugfiler +Is a new program for automatic filing and acknowledgement +of bug reports submitted by the sendbug program. Intended +to operate with the Rand MH software which is part of the +user contributed software. Used at Berkeley to process +bug reports on 4.2BSD. +.BP chgrp +Has been moved to section 1. +.BP comsat +Has been changed to filter the noise lines in message headers +when displaying incoming mail. No longer uses a +second process watchdog as it uses the more reliable socket facilities +instead of the old mpx facilities. +.BP config +Has been extensively modified to handle the new root and +swap device specification syntax. A new document, +\&``Configuring 4.2BSD UNIX Systems with Config'', describes +its use, as well as other important information needed +in configuring system images; this is part of Volume 2C +of the programmer's manual. +.BP diskpart +Is a new program which may be used to generate disk +partition tables according to the rules used at Berkeley. +Can automatically generate entries required for device +drivers and for the /etc/diskpart file. (Does not handle +the new DEC DSA style drives properly because it tries +to reserve space for the bad sector table.) +.BP drtest +Is a new standalone program which is useful in testing +standalone disk device drivers and for pinpointing +bad sectors on a disk. +.BP dump +Has been modified for the new file system organization. +Mainly due to the new file system, it runs virtually +at tape speed. Properly handles locking on the dumpdates +file when multiple dumps are performed concurrently on +the same machine. +.BP dumpfs +Is a new program for dumping out information about a file +system such as the block size and disk layout information. +.BP edquota +Is a new program for editing user quotas. Operates by +invoking your favorite editor on an ASCII representation +of the information stored in the binary quota files. +Edquota also has a ``replication'' mode whereby a +quota template may be used to create quotas for a +group of users. +.BP fastboot +Is a new shell script which reboots the system without +checking the file systems; should be used with extreme +care. +.BP fasthalt +Is a new script which is similar to fastboot. +.BP format +Is a new standalone program for formatting non-DEC +storage modules and creating the appropriate bad +sector table on the disk. +.BP fsck +Has been changed for the new file system. Fsck +is more paranoid then ever in checking the disks, +and has been sped up significantly. The accompanying +Volume 2C document has been updated to reflect the +new file system organization. +.BP ftpd +Is the DARPA File Transfer Protocol server program. +It supports C shell style globbing of arguments +and a large set of the commands in the specification (except +the ABORT command!). +.BP gettable +Is a new program which can be used in aquiring up to +date DARPA Internet host database files. +.BP getty +Has been rewritten to use a terminal description database, +/etc/gettytab. Consult the manual entries for \fIgetty\fP\|(8) +and \fIgettytab\fP\|(5) for more information. +.BP icheck +Has been modified for the new file system. +.BP init +Has been significantly modified to use the new signal +facilities. In doing so, several race conditions related +to signal delivery have been fixed. +.BP kgmon +Is a new program for controlling running systems which have +been created with kernel profiling. Using kgmon, profiling +can be turned on or off and internal profiling buffers can +dumped into a gmon.out file suiitable for interpretation +by gprof. +.BP lpc +Is a new program controlling line printers and their associated +spooling queues. Lpc can be used to enable and disable printers +and/or their spooling queues. Lpc can also be used to rearrange +existing jobs in a queue. +.BP lpd +Has been rewritten and now runs as a ``server'', using the +interprocess communication facilities to service print +requests. A supplementary document describing the line +printer system is now part of Volume 2C of the programmer's +manual. +.BP MAKEDEV +.br +Is a new shell script which resides in /dev and is used +to create special files there. MAKEDEV keeps commands for +creating and manipulating local devices in a separate file +MAKEDEV.local. +.BP mkfs +Has been virtually rewritten for the new file system. +The arguments supplied are very different. For the +most part, users now use the newfs program when +creating file systems. Mkfs now automatically creates the +lost+found directory. +.BP mount +Now indicates file systems which are +mounted read-only or have disk quotas enabled. +.BP newfs +Is a new front-end to the mkfs program. Newfs figures +out the appropriate parameters to supply to mkfs, +invokes it, and then, if necessary, installs the +boot blocks necessary to bootstrap UNIX on 11/750's. +.BP pac +Is a new program which can be used to do printer accounting on +any printer. It subsumes the vpac program. +.BP quot +Now uses the information in the inode of each file to +find out how many blocks are allocated to it. +.BP quotacheck +.br +Is a new program which performs consistency checks +on disk quota files. +Quotacheck is normally run from the /etc/rc.local +file after a system is rebooted, though it can also be run +on mounted on file systems which are not in use. +.BP quotaon +Is a new program which enables disk quotas on +file systems. A link to quotaon, named quotaoff, +is used to disable disk quotas on file systems. +.BP pstat +Has been modified to understand new kernel data structures. +.BP rc +Has had system dependent startup commands moved to /etc/rc.local. +.BP rdump +Is a new program to dump file systems across a network. +.BP renice +Has been rewritten to use the new setpriority system call. +As a result, you can now renice users and process groups. +.BP repquota +Is a new program which summarizes disk quotas on one or +more file systems. +.BP restor +No longer exists. A new program, restore, is its successor. +.BP restore +Replaces restor. Restore operates on mounted file systems; +it contains an interactive mode and can be used to restore +files by name. Restore has become almost as flexible to use +as tar in retrieving files from tape. +.BP rexecd +Is a network server for the \fIrexec\fP\|(3X) library routine. +Supports remote command execution where authentication is +performed using user accounts and passwords. +.BP rlogind +Is a network server for the \fIrlogin\fP\|(1C) command. +Supports remote login sessions where authentication is +performed using privileged port numbers and two files, +/etc/hosts.equiv and .rhosts (in each users home directory). +.BP rmt +Is a program used by rrestore and rdump for doing remote +tape operations. +.BP route +Is a program for manually manipulating network routing +tables. +.BP routed +Is a routing daemon which uses a variant of the Xerox +Routing Information Protocol to automatically maintain +up to date routing tables. +.BP rrestore +Is a version of restore which works across a network. +.BP rshd +Is a server for the \fIrsh\fP\|(1C) command. It +supports remote command execution using privileged +port numbers and the /etc/hosts.equiv and .rhosts +files in users' home directories. +.BP rwhod +Is a server which generates and listens for host status +information on local networks. The information stored +by rwhod is used by the \fIrwho\fP\|(1C) and\fIruptime\fP\|(1C) +programs. +.BP rxformat +Is a program for formatting floppy disks (this uses +the \fIrx\fP device driver, not the console floppy interface). +.BP savecore +Has been modified to get many pieces of information +from the running system and crash dump to avoid compiled +in constants. +.BP sendmail +Is a new program replacing delivermail; it provides fully +internetwork mail forwarding capabilities. Sendmail uses +the DARPA standard SMTP protocol to send and receive mail. +Sendmail uses a configuration file to control its operation, +eliminating the compiled in description used in delivermail. +.BP setifaddr +Is a new program used to set a network interface's address. +Calls to this program are normally placed in the /etc/rc.local +file to configure the network hardware present on a machine. +.BP syslog +Is a server which receives system logging messages. Currently, +only the sendmail program uses this server. +.BP telnetd +Is a server for the DARPA standard TELNET protocol. +.BP tftpd +Is a server for the DARPA Trivial File Transfer Protocol. +.BP trpt +Is a program used in debugging TCP. Trpt transliterates +protocol trace information recorded by TCP in a circular buffer in +kernel memory. +.BP tunefs +Is a program for modifying certain parameters in the +super block of file systems. +.BP vipw +Is no longer a shell script and properly interacts +with passwd, chsh, and chfn in locking the password file. diff --git a/doc/misc/ukchanges.4.0 b/doc/misc/ukchanges.4.0 new file mode 100644 index 00000000..8f7e46ac --- /dev/null +++ b/doc/misc/ukchanges.4.0 @@ -0,0 +1,1057 @@ +.de IR +\fI\\$1\fR\\$2\\fR\\fR +.. +.TL +Changes in the VAX system in the Fourth +Berkeley Distribution, November, 1980 +.AU +Bill Joy +.AB +This document describes briefly the changes in the Berkeley system +for the VAX between the distribution of January 1980 (known as 3BSD) +and this, the fourth distribution, of November 1980. +It attempts to be summarize, without going into great detail, the +changes which have been made, and is intended to be used by someone +who is familiar with the system to quickly re-acclimate themselves to +the new system. +.AE +.SH +.ce +.LG +Major changes +.SM +.sp +.PP +.IP \s+1\(bu\s0 4 +There is a new format for \fB.o\fR files and also a new archive format. +Old \fB.o\fR files must be discarded and the programs compiled from the +source again. Old archives can be converted to the new format with +.IR arcv (8), +but if they contain old \fB.o\fR files they have to be completely +recreated. New libraries for the loader \fBmust\fR have a table +of contents, see +.IR ranlib (1). +.IP \s+1\(bu\s0 +The C compiler and associated programs now take arbitrary length names, +not chopping them off at length 7 or 8. Other changes in C are described under +.B cc +below. +.IP \s+1\(bu\s0 +There is a new version of the C shell, which supports ``job control'' and +which uses a new tty driver. See +.IR newcsh (1) +and +.IR newtty (1) +for details. +Programming considerations for the new system mechanisms involved are +described in +.IR jobs (3). +Users of the older +.B csh +can use +.B oldcsh +until they have time to learn the new features. +.IP \s+1\(bu\s0 +The standard output (in the standard i/o library) is now line buffered +by default when the output is a terminal. So that essentially all +programs may work without change in the presence of this +extra buffering, a partial output line is flushed whenever the library +goes to the system to read from the standard input. +.IP \s+1\(bu\s0 +A number of performance enhancements have been made. +Under normal timesharing loads, the system time has been decreased about +10%. The changes to the standard i/o library and improvements to the +character handling routines to terminals have reduced greatly the cost +of terminal i/o. The new version of the loader and the addition of table +of contents to loader archives have speeded up loading of large programs +by about a factor of 3. Improvements to the system data structures have +decreased the time required for most system calls, increasing the amount +of time available to user programs. +.IP \s+1\(bu\s0 +A bug has been fixed in the C optimizer which caused incorrect code to +be generated for the random number generator. A consequence of this is +that the +.B rand +function in this version of the system produces different sequences. +Fallout from this is the fact that the secret-mail facility encryption scheme +is subtly changed by this bug fix. All users should re-enroll in secretmail +using +.B enroll; +messages sent before re-enrolling can be read using +.B /usr/old/bin/xget. +.bp +.SH +.LG +.ce +Section 1 +.SM +.sp +.PP +This is a brief summary of the changes which have been made in +section 1 of the manual. +In general, a number of system maintenance +commands have been moved to section 8 of the manual as they are of little +interest to the average user. In addition, to reduce the bulk of the manual, +a number of very-closely related commands have been merged together onto +a single manual page; thus \fBccat\fR, \fBcompact\fR and \fBuncompact\fR, +which had three separate pages in the last edition of the manual, now have +only one, and the line printer commands \fBlpr\fB, \fBlpq\fR and \fBlprm\fR +have been placed on a single page. +.de BP +.IP \fB\\$1\\fR 11n +.. +.BP ac +Now appears in section 8. +.BP adb +Now correctly initializes the maps when debugging the system. +Control characters are now printed using the \fB^x\fR convention when the +\fBC\fR output format is used. The increment for dot in the \fBp\fR +format is now (correctly) 4. A previously undocumented command is +\fB$?\fR, giving the output of \fB$r\fR, preceded by the process +id and signal stopping the process. The bug which cause the running +process to always stop at location 2 when first run has been fixed. +.BP analyze +Now appears in section 8. +.BP ar +Now creates a new archive format, in which the critical information +is stored in ASCII, and thus portable between the VAX, PDP\-11, and +other machines. See +.IR old (8) +for information on dealing with the old format. +The program +.IR arcv (8) +converts old (binary format) archives to new format, in place. +Beware, however: the format of \fB\.o\fR files has changed, so archives +of object files must be recompiled (see \fBcc\fR below). +.BP ar11 +Is now in +.B /usr/old/bin +see +.IR old (8). +.BP arff +Is now +.IR arff (8). +.BP as +A new option \fB\-R\fR causes the assembler to make data segments +read-only and shared; this replaces the cumbersome ``:rofix'' script +used in the previous distribution. For very large assemblies there +is an option \fB\-J\fR which causes the assembler to use four-byte +jumps to avoid ``Branch too far diagnostics.'' Local labels have been +added to the assembler defined by ``\fIn\fR:'' and referenced as ``\fIn\fRf'' +or ``\fIn\fRb''; see the assembler manual in volume 2c for details. +All tables in the assembler have been made extensible so that there should +be no problems with assembling enormous files. The assembler has also +been sped up by 25-40%. +.BP at +A number of security problems with the +.I at +command have been fixed. +.BP biff +Is a new command which can enable immediate notification when +mail arrives; if you give the command ``biff y'' then the first few +lines of each piece of mail sent to you is printed on your terminal. +This is a (different flavor) replacement for the MAIL variable of +.B sh +or the mail variable of +.B csh. +.BP cat +New options \fB\-n\fR numbers lines; +\fB\-s\fR crushes out multiple blank lines, replacing \fBssp\fR; +\fB\-v\fR prints control characters in the \fB^x\fR format. +The commands +.IR num (1) +and +.IR see (1) +now just invoke +.I cat. +.BP cc +A newer version of the C compiler supports more strongly typed structures. +Field names need not appear in only one structure; rather +the compiler insists on correct typing of pointers accessing +structures in contexts where this would cause ambiguity, and producing +a warning in other cases when the pointer does not have the correct type +to access the field name. +.IP +A new type +\fBvoid\fR may be used in a declaration or a cast to indicate that there +is no result, or that a value is to be discarded. +.IP +The compiler has been changed to accept arbitrary-length names. +For maximum portability it is better to limit names to 8 characters, +7 characters for externals, but this is no longer required. The longer +names bring a new \fB\.o\fR format, incorporating a string table, and +consequently a large number of programs are changed. The critical ones +exist in ``old'' versions to ease conversion pains. +.IP +A number of bugs in the compiler have been fixed. To avoid remaining bugs +in the code generator, the declaration of \fBregister char\fR and +\fBregister short\fR variables are currently being compiled as though +the word \fBregister\fR were not present. +(This does \fBnot\fR affect pointer variables.) +This blindness is allowed in the semantics +of the language, and is not as bad as it might seem at first. It +is sufficiently difficult to maintain the semantics of C in operating +on such quantities that the code is often better when they are not placed +in registers. This applies to \fBunsigned char\fR and \fBunsigned short\fR +variables also. +.BP cd +The +.I cd +command, in +.IR csh +is now affected by a +.I cdpath +variable which works similarly to the command search +.I path +variable; see +.IR csh (1). +.BP checknr +A new command which checks macro bracketing structure in +.I nroff +or +.I troff +input. +.BP chgrp +Has been moved to section 8. +.BP chown +Has been moved to section 8. +.BP cifplot +Produces raster plots from CIF for integrated circuit designers. +.BP clri +Has been moved to section 8. +.BP colrm +Has had several bugs fixed. +.BP cp +It, along with +.I mv +now take +.B \-i +flags which cause them to ask before overwriting an existing file; thus +.B cp +can be usefully +\fIalias\fR\|ed +to ``cp \fB\-i\fR'' when using +.IR csh (1) +to provide a safer environment. +.BP csh +Has had a number of changes; most importantly, the shell now +supports ``job control'', allowing arbitration of a terminal +between several active groups of processes. See +.IR newcsh (1) +for a short description of new +.I csh +features. +Users of +.I csh +automatically use the new teletype driver summarized in +.IR newtty (4). +(An old version of +.B csh, +corresponding to that of the Third Distribution remains available as +.B oldcsh +to ease conversion to the new shell.) +.BP ctags +Now recognizes FORTRAN and Pascal routine definitions. +.BP cu +Is now functional on VADIC dial-out hardware with the necessary +software to record outgoing calls; see +.IR rv (4). +.BP cxref +Is now the +.B \-x +option to +.B ctags. +.BP date +The internal date representation (maintained in the hardware) +has been changed to be more compatible with the standard +DEC system VMS, although VMS still poses problems (see \s-2BUGS\s0 in +.IR date (1)). +.BP dcheck +Is now in section 8. +.BP dd +Options have been added to do blocking and unblocking of tapes +without converting to and from EBCDIC. +.BP ddate +Is obsoleted by the new +.B dump +program, which lives in section 8. +.BP df +The output format is greatly improved. It is now also possible +to say ``df directory'' to get \fIdf\fR to report the free space +available on the file system containing \fIdirectory\fR. +.BP diction +Is a new program which finds bad or wordy diction. +.BP diff +Has new options to give lines of context and to create a merged conditional +file with ``#ifdef'' controls in it. The command +.I diffdir +has been subsumed into +.I diff +and an option has been added to perform recursive directory differences. +.BP diffdir +Is now part of +.I diff. +.BP dmesg +Is now in section 8. +.BP dump +Is now in section 8. +.BP dumpdir +Is now in section 8. +.BP echo +The echo builtin to +.B csh +now is the same as the standard version 7 +echo. The special character sequences ``\ec'' and ``\en'' no longer +have their special meaning; instead the +.B \-n +option is accepted. +.BP ef\&l +Is a new FORTRAN preprocessor, providing C-like features. +.BP error +Is a new program which consumes error message output from +language and other processors, analyzes them and (optionally) +places appropriate diagnostics back into source files near the point of error. +.BP ex +A number of bug fixes and a few new features are available. +See the incremental change report in volume 2c or read the file +.I /usr/news/ex. +.BP expand +Now has a companion +.I unexpand +command, reversing its effect. +.BP f\&lcopy +Is now in section 8. +.BP from +Now takes a +.B \-s +option, printing only headers from the sender who is the next argument. +.BP gets +Is obsolete; use ``$<'' of +.IR csh (1) +or +.I read +of +.IR sh (1) +instead. +.BP grep +The +.B \-i +option now works with +.I fgrep; +several subtle bugs have been fixed in +its algorithm. +.BP iostat +Now has a single output format which includes character i/o rates, +seeks and transfers per second on each disk. +.BP kill +Is now built-in to +.IR csh +and take job names ``%...'' as arguments. This eliminates +much of the need to know process id's when using +.I kill. +It also takes symbolic as well as numeric signal names; do +``kill \-l'' (lower case letter l as in lark) to see a list. +.BP ld +Has been speeded up substantially; several new options have +been added providing incremental loading (\fB\-A\fR), primitive load maps +(\fB\-M\fR) and symbol def/use tracing (\fB\-y\fR). +The loader now supports archives with +table of contents, and expects all archives it encounters to have +them (or it complains); see +.IR ranlib (1). +.BP lisp +The lisp interpreter has begun to support new ``string'' and +``hunk'' data types. A user must now type vertical bars to delimit +atoms with embedded white space, as double quotes (") now delimit +strings. +The interpreter has benefitted from in-line expansion of +frequently called small routines, and will interpret +list structure 20% more quickly than before. +A perusal of the index to the lisp manual +in Volume 2c will show more new functions which Franz has in common with +\s-2MACLISP\s0. +.BP liszt +The quality of the code produced by +.I liszt +is substantially better than the previous version; +.I liszt +also now provides macros for UCI lisp compatibility as well +as Maclisp compatibility, and a facility for constructing a cross-reference +with +.IR lxref (1). +.BP ln +Now subsumes +.I lnall +when given multiple arguments. +.BP ls +Has new options \fB\-R\fR for a directory-recursive version, \fB\-F\fR +to highlight directories and executable files, and now indicates +.IR mpx (2) +files in long format outputs with first output character \fBm\fR. +.BP lxref +Is a new lisp cross referencing program. +.BP mail +All mail is now forwarded through the facilities of +.IR delivermail (8) +using the mail aliases data bases in the file +.I /usr/lib/aliases +whose format is described in +.IR aliases (5). +Gateways to UUCP, ARPA and Berknet machines are provided, with +normal naming conventions, i.e.: ``name@site'' for the ARPANET, +``machine!name'' for UUCP, and ``machine:name'' for the Berknet. +Personal distribution lists created and placed in the file +.I \&.mailrc +are now expanded in sent mail so that the recipient can reply +to members of personal aliases. Systemwide aliases contained in the +``aliases'' file are applied to +.I all +incoming mail; this allows correct functioning when reply is made to +a mailing list, which was not expanded to its constituents when the +mail was first sent. +.BP make +Now understands about Pascal files, running +.IR pc +using the options +PCFLAGS. +A number of limitations have been removed to allow very large +programs to be controlled. +.BP makewhatis +.br +Has been replaced by +.IR catman (8). +.BP man +Now interfaces with a preformatted version of the manual; this allows +the manual to be presented much more quickly. The preformatted manual +is maintained automatically; when pages are changed and then requested +they are reformatted. The +.IR catman (8) +command can be used to reformat all manual pages whose preformatted +sections are out of date. +.BP mkfs +Is now in section 8. +.BP mknod +Is now in section 8. +.BP more +Has been improved, providing more commands and has also been changed to be +more (sic) similar to +.IR ex (1). +A new interface +.I page +is like +.I more, +but clears the screen before presenting each pageful. +.BP mount +Is now in section 8. +.BP msgs +Now provides options for saving messages in files and responding to messages. +There is also an option (\fB\-p\fR) to arrange that long messages be piped +through +.IR more (1). +.BP ncheck +Is now in section 8. +.BP newaliases +Rebuilds the random access version of the mail forwarding database. +After you edit the file +/usr/lib/aliases which contains +the forwarding information, you must run +.B newaliases. +.BP nm +No longer prints symbols destined for +.IR sdb (1) +by default. Instead, when the +.B \-a +option is given, they are printed symbolically +(rather than in octal as before.) +.BP pc +Is a new Pascal compiler, which allows separate compilation and mixing +of Pascal code with routines written in C and FORTRAN. It is +possible to use +.IR sdb (1) +with Pascal routines, and all standard language features, including +procedure and function parameters are implemented. +.BP pi +Has had some options changed so that +they are similar to +\fIpc\fR\|'s options +(since the latter is constrained by the demands of compatibility with +.IR cc (1) +and +.IR ld (1)). +.BP pr +Now has an option \fB\-f\fR to use form-feeds in the output rather +than multiple blank lines to eject pages. +This can be used for greater top-of-form alignment reliability on +unreliable printers or to reduce bulk of the output. +.BP prof +Now suppresses routines which were never called and which accumulated no +time. An option to sort the output by number of calls has been provided. +.I Prof +can also combine the statistics from a number of saved monitor data +files in a single output report, producing a new summary data file. +.BP ps +The formats for +.B ps +have been improved to include more information about job state in all +output formats, and cpu and memory consumption by jobs +(in the \fBu\fR and \fBv\fR output formats.) +.BP pwd +Is superseded for +.IR csh (1) +users by +.I dirs, +which is built-in and significantly faster. +.BP ranlib +Is used to create loader table-of-contents for loader archives. +The loader insists that such table-of-contents exist or it complains, +as loading is very slow without these indices. +.BP renice +Is now in section 8. +.BP restor +Is now in section 8. +.BP sdb +Now knows about Pascal as well as C and FORTRAN 77. +.BP spice +Is no longer part of this distribution, and must be obtained separately. +.BP stty +Now has options to control the features of the new tty driver, +summarized in +.IR newtty (4) +and fully described in +.IR tty (4). +In particular, it is often desirable, when using the new driver with +.IR csh (1) +to place the command +``stty crt'' in the +.I \&.login +file to cause control characters to echo legibly and intelligent +erasing of characters from the screen to take place except at very +low speed. +.BP style +Is a new command, which analzes the style in which a paper is written. +.BP sync +Is now in section 8. +.BP tail +Now has a +.B \-f +option which follows a file as it grows, replacing +.B tra, +and a +.B \-r +option, which prints out the last part of a file backwards, line by line. +.BP tar +Now normally saves and (optionally) restores modes of directories. +It also uses the raw tape drive by default, so the file option +is not normally needed. +.BP tp +Has been fixed to work with the tape drive as it should. +.BP tra +Has been deleted; use ``tail \-f'' instead. +.BP tset +Has a more general scheme for mapping non-hardwired terminals to types. +The command used in startup files to set the terminal type can now be +simpler; see +.IR tset (1) +for details. +.BP ul +Subsumes the old ``iul'' command as the option \fB\-i\fR. +.BP units +Currency tables have been updated. +.BP uuencode +Along with +.I uudecode +provide the ability to mail binary files through +.I uucp +or other mail facilities. +.BP vmstat +The format has been changed to include statistics on the rate of system +calls, context switches and device interrupts. The format also includes +information about page-cache hits (pages of programs which recently exited +which were found lying in the free list.) See +.IR vmstat (8) +for more details. +.BP vpac +Is now in section 8. +.BP wc +Now will estimate transmission times over communications networks. +.BP yes +A new command, which is excessively obsequious. +.SH +.LG +.ce +Section 2. +.SM +.sp +.PP +The important changes to section 2 define the mechanisms needed to +support the job control facilities of +.IR csh (2) +defining new system calls +.B getpgrp, +.B killpg, +.B setpgrp +and providing a version of the +.B signal +system call interface with clean semantics; this is described in +.IR sigsys (2). +For a general introduction to the new job control facilities from +a programming standpoint see +.IR jobs (3). +.PP +The system calls in section 2 have been identified as to origin: +those in section 2V are peculiar to the VAX Virtual Memory version of +the system. Some of these (e.g. +.B vread +and +.B vwrite +which are likely to change soon are so marked.) +Calls resulting from the job control facilities are in subsection 2J. +.BP getpgrp +Is a new system call, which returns the process group of a specified process. +.BP ioctl +There is a new +.I ioctl +call FIONREAD which returns the number of characters immediately +available from any readable file descriptor, most usefully terminals. +.BP killpg +Kills all processes in a process group +.BP reboot +Is used to halt the processor or initiate automatic reboots. +.BP setpgrp +Changes the process group of a specified process. +.BP sigsys +There are more signals, needed by the new job control and limit facilities. +This is the new signal interface, which can be setup to handle signals +reliably, blocking them off when they occur so that they can't happen +again before they can be reset and also allowing them to be blocked, +but not lost if they occur (protecting critical sections.) +.BP vadvise +Allows processes with very abnormal paging behavior to advise the system +so that it can have a better chance of dealing with their virtual +memory needs. +.BP vhangup +Is used to simulate hangups on hard-wired ports and to prevent other +users processes from scribbling on a terminal after they log off. +.BP vlimit +Is used to provide the resource limiting +.I limit +facility of +.IR csh (1) +which allows the amount of CPU time or memory used by any process to be +controlled, as well as the maximum size of a file created, maximum +size of a core file created, etc. +.BP vswapon +Is used to inform the system that it should use the interleaved portions +of the paging area, since at boot it normally uses only that portion +of the paging area adjacent to the root file system. +.BP vtimes +Provides additional virtual memory information as well as the +traditional information provided by +.B times. +.BP wait3 +Provides options which allow return of +.B vtimes +like information about the virtual memory utilization of terminated +processes as well as allowing one to determine if any children have +changed state without blocking if none have. +.SH +.LG +.ce +Section 3 +.SM +.sp +.PP +The major change to the standardly available library routines is in the +standard i/o library handling of the standard output. The standard output +is now line buffered by default when it is directed to a terminal. +In order that old programs which do terminal i/o continue +to work (in almost every case) without change, the standard i/o library +flushes a partial line in the standard output buffer whenever a read +is made from the standard input. +.BP curses +Is a new library of routines to do terminal independent cursor motions. +This is a higher level set of routines based on the low level +.IR termcap (3). +.BP dbm +Has been changed to use 1024 byte blocks internally. If you have old data +files and recompile a program which uses +.B dbm +on them, you must recreate the files in the new format. +.BP getfsent +Is a new package of routines for locating entries in the file system +information file, +.B /etc/fstab. +.BP jobs +Is a descriptive page on use of the new job control facilities. +.BP malloc +Hasn't been changed yet (unfortunately), but we have discovered that +it has extremely poor behavior if used to allocate a large number +of blocks in a large virtual address space, as it tends to +page fault on a large number of pages whenever you allocate more +storage when the free list is nearly empty. Very large applications +should write their own free storage management routines based on +.IR sbrk (2) +until a new version of +.B malloc +is ready. +.BP nlist +The namelist has been changed to embed a string table. +The definition of the namelist in +.B +now includes a \fBunion\fR construction which the C compiler will not +let you initialize. Thus if you wish to use +.B nlist +you should use +.B +instead of +.B +as it doesn't include a \fBunion\fR construction and initializations of +\fBstruct nlist\fR objects are thus possible. +.BP rand +Generates different sequences, +due to a bug fix in the C optimizer (i.e. the old routine was +flaked out due to the bug.) +.BP regex +Is a new library routine which allows compilation and execution of +.BR ed -like +regular expressions. +.BP stdio +Has been changed to have line buffered standard output to terminals by +default (as described above). +.BP sigset +Is the user-level interface to the new signal facilities, providing +reliable and convenient handling of signals. +.BP string +The routines \fBstrcatn\fR \fBstrcpyn\fR and \fBstrcmpn\fR are now +decreed to be spelled \fBstrncat\fR, \fBstrncpy\fR and \fBstrncmp\fR +in the official version (to be compatible, e.g., with PDP-11 UNIX), +but both versions still exist (temporarily). +.BP termcap +Is the new name for the previously misnamed \fBtermlib\fR library. +.SH +.LG +.ce +Section 4 +.SM +.sp +.PP +The system now supports additional i/o disciplines and devices: +.BP bk +A ``line discipline'' which allows efficient, high-speed, input +for uploading of programs and networking over asynchronous +communications lines. +.BP dh +Abel DMAX-11 dh emulators. +.BP hp +Includes RM-05 support (including the SI MASSBUS disks). +.BP lp +A driver for a standard lineprinter interface. +.BP rv +Racal/vadic call units (via user-software simulation of a dn-11). +.BP tm +Support for UNIBUS TM/11 tape drives (e.g. Kennedy transport +on a Emulex controller.) +.BP tty +Includes a new tty driver which is standard for users of +.IR csh (1) +providing additional functionality. +.BP up +A driver for a EMULEX SC-11 or SC-21 UNIBUS disk controller +with storage module (e.g. Ampex 9300) disk drives. +.BP va +A varian raster plotter. +.SH +.LG +.ce +Section 5 +.SM +.sp +.PP +The changes impacting most users are the new archive and object file +formats. The new object file format requires recompilation of all +\fB\&.o\fR files, as the new format includes a string table for names +while the old table had only fixed space for 8 character names. +The new archive format is portable, and can be easily converted to +using +.IR arcv (8). +.BP a.out +Now includes a string table. New macros are provided for dealing +with executable files, and the names of the headers and the include +files have been changed. You should read this section if you have +programs which work with the bits in these files. +.BP acct +The system now maintains all the information fields in this file. +.BP aliases +This file gives forwarding information for mail. +The +.B delivermail +utility, which is invoked by the mail handlers, uses this information +to forward mail and to implement distribution groups. The program +.B newaliases +must be run whenever this file is edited, since the +.B delivermail +program actually uses a binary version of this file. +.BP ar +Now uses a portable format. Old formats may be converted using +.IR arcv (8), +although converting old loader archives is pointless, since the \fB.o\fR +files must be regenerated anyways. +.BP core +The maximum size of a core file can now be limited with +.I limit +of +.IR csh (1) +or by calling the system call +.B vlimit. +.BP environ +Has acquired a USER variable with the login name of the user. +.BP fstab +Is a new data structure, kept in the file +.B /etc/fstab; +it greatly simplifies the system startup script +.B /etc/rc, +the interface of the dump program, and is a central +figure in the automatic reboot procedure. It is possible +to reconfigure the disk drives simply by changing this data base. +No file system dependent commands need appear in +.B /etc/rc. +.BP stab +Describes the symbol table entries for the symbolic debugger which +appear in \fBa.out\fR files. +.BP termcap +Has been changed to describe even more terminals and functions. +.BP ttytype +The standard naming for terminals in this file is now to give long names; +thus dialups should be described as ``dialup'', not as ``sd'' like before. +.BP vfont +There are now rotated versions of all the fonts for use on output devices +which run 11 by 8.5 inch (sideways) paper. The Hershey fonts have been +extensively edited to fix problems and fill in missing and mangled characters. +.SH +.LG +.ce +Section 6 +.SM +.sp +.PP +There are a number of new games, including the popular ZORK game +as well as more mindless and more popular games, such as \fBsnake\fR, +and human-humiliating games such as \fBboggle\fR. +.BP aardvark +Is one of several dungeon-exploration games. +.BP boggle +Is an implementation of the Parker-Brothers game, in which you +and the computer look for words and you are humiliated by the computer. +.BP chess +Is the PDP-11 chess program running in compatibility mode. +.BP cribbage +Is a respectably good cribbage player. +.BP fish +Plays \*(lqGo Fish\*(rq. +.BP fortune +Has been refreshed with new and interesting quotations +and fancy-pants options. +.BP mille +Is an implementation of the French card game, Mille-Bourne. +.BP monop +Is the game of monopoly. +.BP mpu +Is another exploration game. +.BP snake +Is a mindless game in which the computer chases you around the screen and, +usually, ends up eating you. +.BP zork +Is the classic successor to adventure for die-hard explorers. +.br +.ne 10 +.SH +.LG +.ce +Section 7 +.SM +.sp +.BP hier +Has been updated to reflect changes in this distribution. +.SH +.LG +.ce +Section 8 +.SM +.NL +.sp +.PP +There is a major organizational change in section 8: the maintenance +commands have been moved here from what was section 1m (which no longer +exists) and have also (almost all) been moved into the directory +.B /etc. +.PP +The procedures for system reboot have been substantially changed. The system +now has provisions for automatic reboot and file system repair after a crash. +The system has been changed so that the disks are kept more consistent, +so that the repair program can easily tell whether the inconsistencies +it finds are simple and reasonable to fix. If it finds unexpected +inconsistencies, then the automatic reboot will fail and the new +.I fsck +interactive repair program can be run. +.BP adduser +There is now a shell procedure +.B vipw +which locks the password file for editing, so that you can't get messed +up by people changing their password while you are adding users. +.BP arcv +Converts to the new archive format (as discussed previously.) +.BP bproc +Is defunct; see +.B reboot +which replaces it. +.BP catman +Is a new command, which creates the preformatted version of the on-line +manual from the nroff source for the manual pages. +It also creates the data base for +.IR whatis (1) +.B /usr/lib/whatis, +replacing +.B makewhatis. +.BP crash +At the point of a system crash, the system now will automatically +reboot itself if the auto-reboot switch on the machine is set, print +the registers and the top few locations of the stack, and +will then normally ``preen'' the file systems and come up multiple user again. +The system does not (yet) automatically dump core to disk when a crash +occurs, so the procedures described in +.B crash +are still used to take a crash dump; in order to get one, you have +to be running with auto-reboot disabled when the crash occurs. +Note that you must now use \fBdd\fR to copy crash tapes, as the +tapes are blocked ``bs=20b''. +.BP cron +Now runs the executed commands as +.B root; +before it ran them as +.B daemon +which kept a number of reasonable +.B crontab +entries from working properly. +.BP dcheck +Is obsoleted, in all normal usage, by +.IR fsck (8). +.BP delivermail +.br +Is a new daemon which acts as a postman and routes mail destined +for foreign networks. It also interprets distribution, forwarding +and alias lists from the file +.B /usr/lib/aliases, +which replaces the function only partially performed previously in +.B /usr/lib/Mail.rc. +.BP dump +The dump program now is much more robust. It restarts after bad tapes +are encountered, and will keep a selected group of operators informed +about what it is doing. A +.B dumpdates +file which is kept in ASCII replaces the old binary format +.B ddates +file, making it easy to edit. +.B Dump +uses the new +.B fstab +file system table which records the desired frequency of dumps, and a +new option \fBw\fR will tell the operators what needs to be dumped. +.BP flcopy +Has a new option \fB\-h\fR to start halfway through, writing a disk +from an existing +.B floppy +file without reading the disk. +.BP fsck +Is a new, intelligent, interactive file system check program. +It is normally run automatically at reboot with the option \fB\-p\fR +to preen all the file systems and fix normal minor incomplete operations. +If any unexpected problems arise, the automatic reboot will fail and +.B fsck +should be run manually. There is a document explaining the use of +.B fsck +and all the errors which can occur in standard UNIX systems. Most +errors are prohibited from happening in this version of the system +unless there is hardware or software failure; +.B fsck +was designed with adversity in mind to deal with these exceptional cases +and is very easy to use to fix up addled file systems. +.BP getty +Is the new name for the old \fBgetty.vm\fR. +.BP halt +Halts the processor cleanly when no reboot is desired, regardless +of the setting of the auto-reboot switch on the machine. +.BP icheck +Is largely replaced by +.B fsck. +.BP init +Now understands how to initiate an automatic reboot. When passed appropriate +information as parameter at boot time, it will immediately run +.B /etc/rc +with parameter +.B autoboot, +causing it to run a disk check. +If +.B /etc/rc +exits with a non-zero exit status, the reboot we be considered a failure, +and a single user shell is given to the console as before. +The form of +.B /etc/rc +is such that interrupting the automatic reboot also yields a single-user +shell on the console. +.B Init +has also been fixed so that ``kill 1'' attempting to bring the system +down single user will not hang irretrievably if some processes refuse +to die because of hardware or software malfunction. Instead, +.B init +gives a single user shell and a warning that something is amiss. +.BP mkfs +It is critical that all newly created file systems have +.B lost+found +directories as created by... +.BP mklost+found +.br +Which creates empty directories into which +.B fsck +places detached files which it reconnects. +.BP mount +Now takes an option \fB\-a\fR to mount all normally mounted +file systems as specified in +.B /etc/fstab. +.BP ncheck +Is obsoleted in normal usage by +.B fsck. +.BP old +Is a front for a number of old commands dealing with old formats +for \fB.o\fR files and archives. These commands are kept in +.B /usr/old +and its subdirectories and can be used to keep your sanity until +you have time to convert your programs to the new formats. +.BP reboot +Describes the new reboot procedures, based largely on the automatic +reboot facility. Also describes the cold-start and emergency-start +procedures (which came from the old +.B bproc +manual page.) +.BP sticky +The system has been changed so that text pages of processes which have exited +are retained in the free page pool in core (at least for a while), so +that they will not have to be read from the disk again if they are needed +quickly. This tends to make heavily used commands behave much as +.B sticky +was intended to make them behave on swap based systems. +.BP swapon +The system supports paging interleaved across disks and controllers, but +bootstraps running only on one disk. This command makes the additional +pieces of the paging area available. +.BP umount +Now takes a \fB\-a\fR option, to attempt to unmount all file systems +mentioned in +.B fstab. +.BP vipw +Is a new script which lock the password file while editing it. +If the password file is being changed (e.g. by the +.IR passwd (1) +command), then +.B vipw +complains, and avoid the race condition. + diff --git a/doc/ps1/00.contents b/doc/ps1/00.contents new file mode 100644 index 00000000..a975e360 --- /dev/null +++ b/doc/ps1/00.contents @@ -0,0 +1,145 @@ +.\" Copyright (c) 1986 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)00.contents 5.2 (Berkeley) 5/10/86 +.\" +.OH '''PS1 Contents' +.EH 'PS1 Contents''' +.TL +UNIX Programmer's Supplementary Documents, Volume 1 (PS1) +.sp +\s-24.3 Berkeley Software Distribution, Virtual \s-2VAX\s+2\-11 Version\s+2 +.sp +\fRApril, 1986\fR +.PP +These two volumes contain documents which supplement the manual pages in +.I +The +.UX +Programmer's Reference Manual +.R +for the Virtual \s-2VAX\s0-11 version of the system as distributed by U.C. +Berkeley. +.SH +Languages in common use (other languages in Programmer's Supplement, volume 2) +.IP +.tl 'The C Programming Language \- Reference Manual''PS1:1' +.QP +Official statement of the syntax of C. +Should be supplemented by ``The C Programming Language,'' +B.W. Kernighan and D.M. Ritchie, Prentice-Hall, 1978, that +contains a tutorial introduction and many examples. + +.IP +.tl 'A Portable Fortran 77 Compiler''PS1:2' +.QP +A revised version of the document which originally appeared in +Volume 2b of the Bell Labs documentation; +this version reflects the ongoing work at Berkeley. + +.IP +.tl 'Introduction to the f77 I/O Library''PS1:3' +.QP +A description of the revised input/output library for Fortran 77, +reflecting work carried out at Berkeley. + +.IP +.tl 'Berkeley Pascal User\'s Manual''PS1:4' +.QP +An implementation of this language popular for learning to program. + +.IP +.tl 'Berkeley Vax/UNIX Assembler Reference Manual''PS1:5' +.QP +The usage and syntax of the assembler; useful mostly by compiler writers. + +.IP +.SH +General Reference +.IP +.tl 'Berkeley Software Architecture Manual (4.3 Edition)''PS1:6' +.QP +A concise and terse description of the system call interface +provided in Berkeley Unix, as revised for 4.3BSD. +This will never be a best seller. + +.IP +.tl 'An Introductory 4.3BSD Interprocess Communication Tutorial''PS1:7' +.QP +How to write programs that use the Interprocess Communication Facilities +of 4.3BSD. + +.IP +.tl 'An Advanced 4.3BSD Interprocess Communication Tutorial''PS1:8' +.QP +The reference document (with some examples) for the Interprocess Communication +Facilities of 4.3BSD. + +.SH +Programming Tools +.IP +.tl 'Lint, A C Program Checker''PS1:9' +.QP +Checks C programs for syntax errors, type violations, portability problems, +and a variety of probable errors. + +.IP +.tl 'A Tutorial Introduction to ADB''PS1:10' +.QP +How to debug programs using the \fIadb\fP debugger. +For hints on the use of ADB for debugging the +.UX +kernel, see ``Using ADB to Debug the Kernel'', SMM:3 + +.IP +.tl 'Debugging with dbx''PS1:11' +.QP +How to debug programs without having to know much about machine language. + +.IP +.tl 'Make \- A Program for Maintaining Computer Programs''PS1:12' +.QP +Indispensable tool for making sure large programs are properly +compiled with minimal effort. + +.IP +.tl 'An Introduction to the Revision Control System''PS1:13' +.QP +RCS is a user-contributed tool for working together with other people +without stepping on each other's toes. +An alternative to \fIsccs\fR for controlling software changes. + +.IP +.tl 'An Introduction to the Source Code Control System''PS1:14' +.QP +A useful introductory article for those users with +installations licensed for SCCS. + +.IP +.tl 'YACC: Yet Another Compiler-Compiler''PS1:15' +.QP +Converts a BNF specification of a language and semantic actions +written in C into a compiler for that language. + +.IP +.tl 'LEX \- A Lexical Analyzer Generator''PS1:16' +.QP +Creates a recognizer for a set of regular expressions: +each regular expression can be followed by arbitrary C code +to be executed upon finding the regular expression. + +.IP +.tl 'The M4 Macro Processor''PS1:17' +.QP +M4 is a macro processor useful in its own right and as a +front-end for C, Ratfor, and Cobol. + +.SH +Programming Libraries +.IP +.tl 'Screen Updating and Cursor Movement Optimization''PS1:18' +.QP +Describes the \fIcurses\fP package, an aid for writing screen-oriented, +terminal-independent programs. + diff --git a/doc/ps1/01.Clang/Clang.ms b/doc/ps1/01.Clang/Clang.ms new file mode 100644 index 00000000..073fb7f0 --- /dev/null +++ b/doc/ps1/01.Clang/Clang.ms @@ -0,0 +1,4540 @@ +.\" @(#)Clang.ms 6.3 (Berkeley) 9/16/99 +.\" +.nr Cl 2 +.TL +The C Programming Language - Reference Manual +.AU +Dennis M. Ritchie +.AI +.MH +.PP +This manual is a reprint, with updates to the current C standard, from +\fIThe C Programming Language\fR, +by Brian W. Kernighan and Dennis M. Richie, Prentice-Hall, Inc., 1978. +.EH 'PS1:1-%''The C Programming Language - Reference Manual' +.OH 'The C Programming Language - Reference Manual''PS1:1-%' +.NH 1 +Introduction +.PP +This manual describes the C language on the DEC PDP-11\(dg, the DEC VAX-11, +.FS +.LP +\(dg DEC PDP-11, and DEC VAX-11 are trademarks of Digital Equipment Corporation. +.LP +\(dd 3B 20 is a trademark of AT&T. +.FE +and the AT&T 3B 20\(dd. +Where differences exist, it concentrates on the VAX, but tries to point +out implementation-dependent details. With few execptions, these dependencies +follow directly from the underlying properties of the hardware; the various +compilers are generally quite compatible. +.NH 1 +Lexical Conventions +.PP +There are six classes of tokens\ -\ +identifiers, keywords, constants, strings, operators, and other separators. +Blanks, tabs, new\(hylines, +and comments (collectively, ``white space'') as described below +are ignored except as they serve to separate +tokens. +Some white space is required to separate +otherwise adjacent identifiers, +keywords, and constants. +.PP +If the input stream has been parsed into tokens +up to a given character, the next token is taken +to include the longest string of characters +which could possibly constitute a token. +.NH 2 +Comments +.PP +The characters +.B +/* +.R +introduce a comment which terminates +with the characters +\fB\(**/\fR. +Comments do not nest. +.NH 2 +Identifiers (Names) +.PP +An identifier is a sequence of letters and digits. +The first character must be a letter. +The underscore +(\fB_\fR) +counts as a letter. +Uppercase and lowercase letters +are different. +Although there is no limit on the length of a name, +only initial characters are significant: at least +eight characters of a non-external name, and perhaps +fewer for external names. +Moreover, some implementations may collapse case +distinctions for external names. +The external name sizes include: +.DS +.TS +l l. +PDP-11 7 characters, 2 cases +VAX-11 >100 characters, 2 cases +AT&T 3B 20 >100 characters, 2 cases +.TE +.fi +.DE +.NH 2 +Keywords +.PP +The following identifiers are reserved for use +as keywords and may not be used otherwise: +.DS +.ta 0.8i 1.6i 2.4i 3.2i 4.0i +\fBauto do for return typedef +break double goto short union +case else if sizeof unsigned +char enum int static void +continue external long struct while +default float register switch\fR +.ta 0.5i +.DE +.PP +Some implementations also reserve the words +.B +fortran, asm, gfloat, hfloat +.R +and +.B quad +.R +.NH 2 +Constants +.PP +There are several kinds +of constants. +Each has a type; an introduction to types is given in ``NAMES.'' +Hardware characteristics that affect sizes are summarized in +``Hardware Characteristics'' under ``LEXICAL CONVENTIONS.'' +.NH 3 +Integer Constants +.br +.PP +An integer constant consisting of a sequence of digits +is taken +to be octal if it begins with +.B +0 +.R +(digit zero). +An octal constant consists of the digits \fB0\fR through \fB7\fR only. +A sequence of digits preceded by +.B +0x +.R +or +.B +0X +.R +(digit zero) is taken to be a hexadecimal integer. +The hexadecimal digits include +.B +a +.R +or +.B +A +.R +through +.B +f +.R +or +.B +F +.R +with values 10 through 15. +Otherwise, the integer constant is taken to be decimal. +A decimal constant whose value exceeds the largest +signed machine integer is taken to be +\fBlong\fR; +an octal or hex constant which exceeds the largest unsigned machine integer +is likewise taken to be +.B +long\fR. +.R +Otherwise, integer constants are \fBint\fR. +.NH 3 +Explicit Long Constants +.br +.PP +A decimal, octal, or hexadecimal integer constant immediately followed +by +.B +l +.R +(letter ell) +or +.B +L +.R +is a long constant. +As discussed below, +on some machines +integer and long values may be considered identical. +.NH 3 +Character Constants +.br +.PP +A character constant is a character enclosed in single quotes, +as in '\fBx\fR'. +The value of a character constant is the numerical value of the +character in the machine's character set. +.PP +Certain nongraphic characters, +the single quote +(\fB'\fR) +and the backslash +(\fB\e\fR), +may be represented according to the following table +of escape sequences: +.DS +.TS +l l l. +new\(hyline NL (LF) \en +horizontal tab HT \et +vertical tab VT \ev +backspace BS \eb +carriage return CR \er +form feed FF \ef +backslash \e \e\e +single quote ' \e' +bit pattern \fIddd\fR\^ \e\fIddd\fR\^ +.TE +.DE +.PP +The escape +\e\fIddd\fR +consists of the backslash followed by 1, 2, or 3 octal digits +which are taken to specify the value of the +desired character. +A special case of this construction is +.B +\e0 +.R +(not followed +by a digit), which indicates the character +.B +NUL\fR. +.R +If the character following a backslash is not one +of those specified, the +behavior is undefined. +A new-line character is illegal in a character constant. +The type of a character constant is \fBint\fR. +.NH 3 +Floating Constants +.br +.PP +A floating constant consists of +an integer part, a decimal point, a fraction part, +an +.B +e +.R +or +\fBE\fR, +and an optionally signed integer exponent. +The integer and fraction parts both consist of a sequence +of digits. +Either the integer part or the fraction +part (not both) may be missing. +Either the decimal point or +the +.B +e +.R +and the exponent (not both) may be missing. +Every floating constant has type \fBdouble\fR. +.NH 3 +Enumeration Constants +.br +.PP +Names declared as enumerators +(see ``Structure, Union, and Enumeration Declarations'' under +``DECLARATIONS'') +have type \fBint\fR. +.NH 2 +Strings +.PP +A string is a sequence of characters surrounded by +double quotes, +as in +\fB"..."\fR. +A string has type +``array of \fBchar\fR'' and storage class +\fBstatic\fR +(see ``NAMES'') +and is initialized with +the given characters. +The compiler places +a null byte +(\fB\e0\fR) +at the end of each string so that programs +which scan the string can +find its end. +In a string, the double quote character +(\fB"\fR) +must be preceded by +a +\fB\e\fR; +in addition, the same escapes as described for character +constants may be used. +.PP +A +.B +\e +.R +and +the immediately following new\(hyline are ignored. +All strings, even when written identically, are distinct. +.NH 2 +Hardware Characteristics +.PP +The following figure summarize +certain hardware properties that vary from machine to machine. +.DS +.TS +center box; +c cfB s cfB s cfB s +c c s c s c s +l | l1 lp8 | l1 lp8 | l1 lp8. + DEC PDP\-11 DEC VAX-11 AT&T 3B + (ASCII) (ASCII) (ASCII) +.sp +_ +char 8 bits 8 bits 8bits +int 16 32 32 +short 16 16 16 +long 32 32 32 +float 32 32 32 +double 64 64 64 +float range \(+-10 \(+-38 \(+-10 \(+-38 \(+-10 \(+-38 +\^ \^ \^ \^ +double range \(+-10 \(+-38 \(+-10 \(+-38 \(+-10 \(+-308 +\^ \^ \^ \^ +.TE +.FG 4 4 1 "DEC PDP-11 HARDWARE CHARACTERISTICS" +.DE +.PP +.NH 1 +Syntax Notation +.PP +Syntactic categories are indicated by +.I +italic +.R +type +and literal words and characters +in +\fBbold\fR +type. +Alternative categories are listed on separate lines. +An optional terminal or nonterminal symbol is +indicated by the subscript ``opt,'' so that +.DS +{ \fIexpression\v'0.5'\s-2opt\s0\v'-0.5'\fR } +.DE +.LP +indicates an optional expression enclosed in braces. +The syntax is summarized in ``SYNTAX SUMMARY''. +.NH 1 +Names +.PP +The C language bases the interpretation of an +identifier upon two attributes of the identifier \(mi its +.I +storage class +.R +and its +.I +type\fR. +The storage class determines the location and lifetime +of the storage associated with an identifier; +the type determines +the meaning of the values +found in the identifier's storage. +.NH 2 +Storage Class +.PP +There are four declarable storage classes: +.BL 6 1 +.LI +Automatic +.LI +Static +.LI +External +.LI +Register. +.LE +.PP +Automatic variables are local to each invocation of +a block (see ``Compound Statement or Block'' in +``STATEMENTS'') and are discarded upon exit from the block. +Static variables are local to a block but retain +their values upon reentry to a block even after control +has left the block. +External variables exist and retain their values throughout +the execution of the entire program and +may be used for communication between +functions, even separately compiled functions. +Register variables are (if possible) stored in the fast registers +of the machine; like automatic +variables, they are local to each block and disappear on exit from the block. +.NH 2 +Type +.PP +The C language supports several +fundamental +types of objects. +Objects declared as characters +(\fBchar\fR) +are large enough to store any member of the implementation's +character set. +If a genuine character from that character set is +stored in a \fBchar\fR variable, +its value is equivalent to the integer code for that character. +Other quantities may be stored into character variables, but +the implementation is machine dependent. +In particular, \fBchar\fR may be signed or unsigned by default. +.PP +Up to three sizes of integer, declared +.B +short +.R +\fBint\fR, +\fBint\fR, +and +.B +long +.R +\fBint\fR, +are available. +Longer integers provide no less storage than shorter ones, +but the implementation may make either short integers or long integers, +or both, equivalent to plain integers. +``Plain'' integers have the natural size suggested +by the host machine architecture. +The other sizes are provided to meet special needs. +.PP +The properties of \fBenum\fR types (see ``Structure, Union, and Enumeration Declarations'' +under ``DECLARATIONS'') +are identical to those of +some integer types. +The implementation may use the range of values to +determine how to allocate storage. +.PP +Unsigned +integers, declared +.B +unsigned, +.R +obey the laws of arithmetic modulo +2\v'-0.5'\fIn\fR\v'0.5' +where \fIn\fR is the number of bits in the representation. +(On the +PDP-11, +unsigned long quantities are not supported.) +.PP +Single-precision floating point +(\fBfloat\fR) +and double precision floating point +(\fBdouble\fR) +may be synonymous in some implementations. +.PP +Because objects of the foregoing types can usefully be interpreted +as numbers, they will be referred to as +.I +arithmetic +.R +types. +\fBChar\fR, +.B +int +.R +of all sizes whether \fBunsigned\fR or not, and +.B +enum +.R +will collectively be called +.I +integral +.R +types. +The +.B +float +.R +and +.B +double +.R +types will collectively be called +.I +floating +.R +types. +.PP +The +.B +void +.R +type +specifies an empty set of values. +It is used as the type returned by functions that +generate no value. +.PP +Besides the fundamental arithmetic types, there is a +conceptually infinite class of derived types constructed +from the fundamental types in the following ways: +.BL 6 1 +.LI +\fIArrays\fR +of objects of most types +.LI +\fIFunctions\fR +which return objects of a given type +.LI +\fIPointers\fR +to objects of a given type +.LI +\fIStructures\fR +containing a sequence of objects of various types +.LI +\fIUnions\fR +capable of containing any one of several objects of various types. +.LE +.PP +In general these methods +of constructing objects can +be applied recursively. +.NH 1 +Objects and Lvalues +.PP +An +.I +object +.R +is a manipulatable region of storage. +An +.I +lvalue +.R +is an expression referring to an object. +An obvious example of an lvalue +expression is an identifier. +There are operators which yield lvalues: +for example, +if +.B +E +.R +is an expression of pointer type, then +.B +\(**E +.R +is an lvalue +expression referring to the object to which +.B +E +.R +points. +The name ``lvalue'' comes from the assignment expression +.B +E1\ =\ E2 +.R +in which the left operand +.B +E1 +.R +must be +an lvalue expression. +The discussion of each operator +below indicates whether it expects lvalue operands and whether it +yields an lvalue. +.NH 1 +Conversions +.PP +A number of operators may, depending on their operands, +cause conversion of the value of an operand from one type to another. +This part explains the result to be expected from such +conversions. +The conversions demanded by most ordinary operators are summarized under +``Arithmetic Conversions.'' +The summary will be supplemented +as required by the discussion +of each operator. +.NH 2 +Characters and Integers +.PP +A character or a short integer may be used wherever an +integer may be used. +In all cases +the value is converted to an integer. +Conversion of a shorter integer +to a longer preserves sign. +Whether or not sign-extension occurs for characters is machine +dependent, but it is guaranteed that a member of the +standard character set is non-negative. +Of the machines treated here, +only the +PDP-11 +and +VAX-11 +sign-extend. +On these machines, +.B +char +.R +variables range in value from +\(mi128 to 127. +The more explicit type +.B +unsigned +.R +.B +char +.R +forces the values to range from 0 to 255. +.PP +On machines that treat characters as signed, +the characters of the +ASCII +set are all non-negative. +However, a character constant specified +with an octal escape suffers sign extension +and may appear negative; +for example, +\fB\'\e377\'\fR +\fRhas the value +.B +\(mi1\fR. +.PP +When a longer integer is converted to a shorter +integer +or to a +.B +char, +.R +it is truncated on the left. +Excess bits are simply discarded. +.NH 2 +Float and Double +.PP +All floating arithmetic in C is carried out in double precision. +Whenever a +.B +float +.R +appears in an expression it is lengthened to +.B +double +.R +by zero padding its fraction. +When a +.B +double +.R +must be +converted to +\fBfloat\fR, +for example by an assignment, +the +.B +double +.R +is rounded before +truncation to +.B +float +.R +length. +This result is undefined if it cannot be represented as a float. +On the VAX, the compiler can be directed to use single percision for expressions +containing only float and interger operands. +.NH 2 +Floating and Integral +.PP +Conversions of floating values to integral type +are rather machine dependent. +In particular, the direction of truncation of negative numbers +varies. +The result is undefined if +it will not fit in the space provided. +.PP +Conversions of integral values to floating type +are well behaved. +Some loss of accuracy occurs +if the destination lacks sufficient bits. +.NH 2 +Pointers and Integers +.PP +An expression of integral type may be added to or subtracted from +a pointer; in such a case, +the first is converted as +specified in the discussion of the addition operator. +Two pointers to objects of the same type may be subtracted; +in this case, the result is converted to an integer +as specified in the discussion of the subtraction +operator. +.NH 2 +Unsigned +.PP +Whenever an unsigned integer and a plain integer +are combined, the plain integer is converted to unsigned +and the result is unsigned. +The value +is the least unsigned integer congruent to the signed +integer (modulo 2\v'-0.3'\s-2wordsize\s+2\v'0.3'). +In a 2's complement representation, +this conversion is conceptual; and there is no actual change in the +bit pattern. +.PP +When an unsigned \fBshort\fR integer is converted to +\fBlong\fR, +the value of the result is the same numerically as that of the +unsigned integer. +Thus the conversion amounts to padding with zeros on the left. +.NH 2 +Arithmetic Conversions +.PP +A great many operators cause conversions +and yield result types in a similar way. +This pattern will be called the ``usual arithmetic conversions.'' +.AL 1 6 +.LI +First, any operands of type +.B +char +.R +or +.B +short +.R +are converted to +\fBint\fR, +and any operands of type \fBunsigned char\fR +or \fBunsigned short\fR are converted +to \fBunsigned int\fR. +.LI +Then, if either operand is +.B +double, +.R +the other is converted to +.B +double +.R +and that is the type of the result. +.LI +Otherwise, if either operand is \fBunsigned long\fR, +the other is converted to \fBunsigned long\fR and that +is the type of the result. +.LI +Otherwise, if either operand is +\fBlong\fR, +the other is converted to +.B +long +.R +and that is the type of the result. +.LI +Otherwise, if one operand is \fBlong\fR, and +the other is \fBunsigned int\fR, they are both +converted to \fBunsigned long\fR and that is +the type of the result. +.LI +Otherwise, if either operand is +.B +unsigned, +.R +the other is converted to +.B +unsigned +.R +and that is the type of the result. +.LI +Otherwise, both operands must be +\fBint\fR, +and that is the type of the result. +.LE +.NH 2 +Void +.PP +The (nonexistent) value of a +.B +void +.R +object may not be used in any way, +and neither explicit nor implicit conversion may be applied. +Because a void expression denotes a nonexistent value, +such an expression may be used only +as an expression statement +(see ``Expression Statement'' under ``STATEMENTS'') +or as the left operand +of a comma expression (see ``Comma Operator'' under ``EXPRESSIONS''). +.PP +An expression may be converted to +type +.B +void +.R +by use of a cast. +For example, this makes explicit the discarding of the value +of a function call used as an expression statement. +.NH 1 +Expressions +.PP +The precedence of expression operators is the same +as the order of the major +subsections of this section, highest precedence first. +Thus, for example, the expressions referred to as the operands of +.B +\(pl +.R +(see ``Additive Operators'') +are those expressions defined under ``Primary Expressions'', +``Unary Operators'', and ``Multiplicative Operators''. +Within each subpart, the operators have the same +precedence. +Left- or right-associativity is specified +in each subsection for the operators +discussed therein. +The precedence and associativity of all the expression +operators are summarized in the +grammar of ``SYNTAX SUMMARY''. +.PP +Otherwise, the order of evaluation of expressions +is undefined. In particular, the compiler +considers itself free to +compute subexpressions in the order it believes +most efficient +even if the subexpressions +involve side effects. +The order in which subexpression evaluation takes place is unspecified. +Expressions involving a commutative and associative +operator +(\fB\(**,\fR +\fB\(pl\fR, +\fB&\fR, +\fB|\fR, +\fB^\fR) +may be rearranged arbitrarily even in the presence +of parentheses; +to force a particular order of evaluation, +an explicit temporary must be used. +.PP +The handling of overflow and divide check +in expression evaluation +is undefined. +Most existing implementations of C ignore integer overflows; +treatment of +division by 0 and all floating-point exceptions +varies between machines and is usually +adjustable by a library function. +.NH 2 +Primary Expressions +.PP +Primary expressions +involving \fB\.\fR, +\fB\(mi>\fR, +subscripting, and function calls +group left to right. +.DS +\fIprimary-expression: + identifier + constant + string + ( expression ) + primary-expression [ expression ] + primary-expression ( expression-list\v'0.5'\s-2opt\s0\v'-0.5' ) + primary-expression . identifier + primary-expression \(mi> identifier\fR +.DE +.DS +\fIexpression-list: + expression + expression-list , expression\fR +.DE +.PP +An identifier is a primary expression provided it has been +suitably declared as discussed below. +Its type is specified by its declaration. +If the type of the identifier is ``array of .\|.\|.'', +then the value of the identifier expression +is a pointer +to the first object in the array; and the +type of the expression is +``pointer to .\|.\|.''. +Moreover, an array identifier is not an lvalue +expression. +Likewise, an identifier which is declared +``function returning .\|.\|.'', +when used except in the function-name position +of a call, is converted to ``pointer to function returning .\|.\|.''. +.PP +A +constant is a primary expression. +Its type may be +\fBint\fR, +\fBlong\fR, +or +.B +double +.R +depending on its form. +Character constants have type +.B +int +.R +and floating constants have type +.B +double\fR. +.R +.PP +A string is a primary expression. +Its type is originally ``array of +\fBchar\fR'', +but following +the same rule given above for identifiers, +this is modified to ``pointer to +\fBchar\fR'' and +the +result is a pointer to the first character +in the string. +(There is an exception in certain initializers; +see ``Initialization'' under ``DECLARATIONS.'') +.PP +A parenthesized expression is a primary expression +whose type and value are identical +to those of the unadorned expression. +The presence of parentheses does +not affect whether the expression is an +lvalue. +.PP +A primary expression followed by an expression in square +brackets is a primary expression. +The intuitive meaning is that of a subscript. +Usually, the primary expression has type ``pointer to .\|.\|.'', +the subscript expression is +\fBint\fR, +and the type of the result is ``\|.\|.\|.\|''. +The expression +.B +E1[E2] +.R +is +identical (by definition) to +.B +\(**((E1)\(plE2))\fR. +All the clues +needed to understand +this notation are contained in this subpart together +with the discussions +in ``Unary Operators'' and ``Additive Operators'' on identifiers, +.B +\(** +.R +and +.B +\(pl +.R +respectively. +The implications are summarized under ``Arrays, Pointers, and Subscripting'' +under ``TYPES REVISITED.'' +.PP +A function call is a primary expression followed by parentheses +containing a possibly +empty, comma-separated list of expressions +which constitute the actual arguments to the +function. +The primary expression must be of type ``function returning .\|.\|.,'' +and the result of the function call is of type ``\|.\|.\|.\|''. +As indicated +below, a hitherto unseen identifier followed +immediately by a left parenthesis +is contextually declared +to represent a function returning +an integer; +thus in the most common case, integer-valued functions +need not be declared. +.PP +Any actual arguments of type +.B +float +.R +are +converted to +.B +double +.R +before the call. +Any of type +.B +char +.R +or +.B +short +.R +are converted to +.B +int\fR. +.R +Array names are converted to pointers. +No other conversions are performed automatically; +in particular, the compiler does not compare +the types of actual arguments with those of formal +arguments. +If conversion is needed, use a cast; +see ``Unary Operators'' and ``Type Names'' under +``DECLARATIONS.'' +.PP +In preparing for the call to a function, +a copy is made of each actual parameter. +Thus, all argument passing in C is strictly by value. +A function may +change the values of its formal parameters, but +these changes cannot affect the values +of the actual parameters. +It is possible +to pass a pointer on the understanding +that the function may change the value +of the object to which the pointer points. +An array name is a pointer expression. +The order of evaluation of arguments is undefined by the language; +take note that the various compilers differ. +Recursive calls to any +function are permitted. +.PP +A primary expression followed by a dot followed by an identifier +is an expression. +The first expression must be a structure or a union, and the identifier +must name a member of the structure or union. +The value is the named member of the structure or union, and it is +an lvalue if the first expression is an lvalue. +.PP +A primary expression followed by an arrow (built from +.B +\(mi +.R +and +.B +> +.R +) +followed by an identifier +is an expression. +The first expression must be a pointer to a structure or a union +and the identifier must name a member of that structure or union. +The result is an lvalue referring to the named member +of the structure or union +to which the pointer expression points. +Thus the expression +.B +E1\(mi>MOS +.R +is the same as +.B +(\(**E1).MOS\fR. +.R +Structures and unions are discussed in +``Structure, Union, and Enumeration Declarations'' under +``DECLARATIONS.'' +.NH 2 +Unary Operators +.PP +Expressions with unary operators +group right to left. +.tr ~~ +.DS +\fIunary-expression: + \(** expression + & lvalue + \(mi expression + ! expression + \s+2~\s0 expression + \(pl\(pl lvalue + \(mi\(milvalue + lvalue \(pl\(pl + lvalue \(mi\(mi + ( type-name ) expression\fR + sizeof\fI expression\fR + sizeof\fI ( type-name )\fR +.DE +.PP +The unary +.B +\(** +.R +operator +means +.I +indirection +.R +; +the expression must be a pointer, and the result +is an lvalue referring to the object to +which the expression points. +If the type of the expression is ``pointer to .\|.\|.,'' +the type of the result is ``\|.\|.\|.\|''. +.PP +The result of the unary +.B +& +.R +operator is a pointer +to the object referred to by the +lvalue. +If the type of the lvalue is ``\|.\|.\|.\|'', +the type of the result is ``pointer to .\|.\|.''. +.PP +The result +of the unary +.B +\(mi +.R +operator +is the negative of its operand. +The usual arithmetic conversions are performed. +The negative of an unsigned quantity is computed by +subtracting its value from +2\v'-0.5'\fIn\fR\^\v'0.5' where \fIn\fR\^ is the number of bits in +the corresponding signed type. +.sp +.tr ~~ +There is no unary +.B +\(pl +.R +operator. +.PP +The result of the logical negation operator +.B +! +.R +is one if the value of its operand is zero, zero if the value of its +operand is nonzero. +The type of the result is +.B +int\fR. +.R +It is applicable to any arithmetic type +or to pointers. +.PP +The +.B +\s+2~\s0 +.R +operator yields the one's complement of its operand. +The usual arithmetic conversions are performed. +The type of the operand must be integral. +.PP +The object referred to by the lvalue operand of prefix +.B +\(pl\(pl +.R +is incremented. +The value is the new value of the operand +but is not an lvalue. +The expression +.B +\(pl\(plx +.R +is equivalent to +\fBx=x\(pl1\fR. +See the discussions ``Additive Operators'' and ``Assignment +Operators'' for information on conversions. +.PP +The lvalue operand of prefix +.B +\(mi\(mi +.R +is decremented +analogously to the +prefix +.B +\(pl\(pl +.R +operator. +.PP +When postfix +.B +\(pl\(pl +.R +is applied to an lvalue, +the result is the value of the object referred to by the lvalue. +After the result is noted, the object +is incremented in the same +manner as for the prefix +.B +\(pl\(pl +.R +operator. +The type of the result is the same as the type of the lvalue expression. +.PP +When postfix +.B +\(mi\(mi +.R +is applied to an lvalue, +the result is the value of the object referred to by the lvalue. +After the result is noted, the object +is decremented in the manner as for the prefix +.B +\(mi\(mi +.R +operator. +The type of the result is the same as the type of the lvalue +expression. +.PP +An expression preceded by the parenthesized name of a data type +causes conversion of the value of the expression to the named type. +This construction is called a +.I +cast\fR. +.R +Type names are described in ``Type Names'' under ``Declarations.'' +.PP +The +.B +sizeof +.R +operator yields the size +in bytes of its operand. +(A +.I +byte +.R +is undefined by the language +except in terms of the value of +.B +sizeof\fR. +.R +However, in all existing implementations, +a byte is the space required to hold a +\fBchar.\fR) +When applied to an array, the result is the total +number of bytes in the array. +The size is determined from +the declarations of +the objects in the expression. +This expression is semantically an +.B +unsigned +.R +constant and may +be used anywhere a constant is required. +Its major use is in communication with routines +like storage allocators and I/O systems. +.PP +The +.B +sizeof +.R +operator +may also be applied to a parenthesized type name. +In that case it yields the size in bytes of an object +of the indicated type. +.PP +The construction +\fBsizeof(\fItype\|\fR\^)\fR\^ +is taken to be a unit, +so the expression +\fBsizeof(\fItype\|\fB)-2\fR +is the same as +\fB(sizeof(\fItype\|\fB))-2\fR. +.NH 2 +Multiplicative Operators +.PP +The multiplicative operators +\fB\(**\fR, +\fB/\fR, +and +.B +% +.R +group left to right. +The usual arithmetic conversions are performed. +.DS +\fImultiplicative expression: + expression \(** expression + expression / expression + expression % expression\fR +.DE +.PP +The binary +.B +\(** +.R +operator indicates multiplication. +The +.B +\(** +.R +operator is associative, +and expressions with several multiplications at the same +level may be rearranged by the compiler. +The binary +.B +/ +.R +operator indicates division. +.PP +The binary +.B +% +.R +operator yields the remainder +from the division of the first expression by the second. +The operands must be integral. +.PP +When positive integers are divided, truncation is toward 0; +but the form of truncation is machine-dependent +if either operand is negative. +On all machines covered by this manual, +the remainder has the same sign as the dividend. +It is always true that +.B +(a/b)\(**b\ \(pl a%b +.R +is equal to +.B +a +.R +(if +.B +b +.R +is not 0). +.NH 2 +Additive Operators +.PP +The additive operators +.B +\(pl +.R +and +.B +\(mi +.R +group left to right. +The usual arithmetic conversions are performed. +There are some additional type possibilities for each operator. +.DS +\fIadditive-expression: + expression \(pl expression + expression \(mi expression\fR +.DE +.PP +The result of the +.B +\(pl +.R +operator is the sum of the operands. +A pointer to an object in an array and +a value of any integral type +may be added. +The latter is in all cases converted to +an address offset +by multiplying it +by the length of the object to which the +pointer points. +The result is a pointer +of the same type as the original pointer +which points to another object in the same array, +appropriately offset from the original object. +Thus if +.B +P +.R +is a pointer +to an object in an array, the expression +.B +P\(pl1 +.R +is a pointer +to the next object in the array. +No further type combinations are allowed for pointers. +.PP +The +.B +\(pl +.R +operator is associative, +and expressions with several additions at the same level may +be rearranged by the compiler. +.PP +The result of the +.B +\(mi +.R +operator is the difference of the operands. +The usual arithmetic conversions are performed. +Additionally, +a value of any integral type +may be subtracted from a pointer, +and then the same conversions for addition apply. +.PP +If two pointers to objects of the same type are subtracted, +the result is converted +(by division by the length of the object) +to an +.B +int +.R +representing the number of +objects separating +the pointed-to objects. +This conversion will in general give unexpected +results unless the pointers point +to objects in the same array, since pointers, even +to objects of the same type, do not necessarily differ +by a multiple of the object length. +.NH 2 +Shift Operators +.PP +The shift operators +.B +<< +.R +and +.B +>> +.R +group left to right. +Both perform the usual arithmetic conversions on their operands, +each of which must be integral. +Then the right operand is converted to +\fBint\fR; +the type of the result is that of the left operand. +The result is undefined if the right operand is negative +or greater than or equal to the length of the object in bits. +On the VAX a negative right operand is interpreted as reversing +the direction of the shift. +.DS +\fIshift-expression: + expression << expression + expression >> expression\fR +.DE +.PP +The value of +.B +E1<>E2 +.R +is +.B +E1 +.R +right-shifted +.B +E2 +.R +bit positions. +The right shift is guaranteed to be logical +(0 fill) +if +.B +E1 +.R +is +\fBunsigned\fR; +otherwise, it may be +arithmetic. +.NH 2 +Relational Operators +.PP +The relational operators group left to right. +.DS +\fIrelational-expression: + expression < expression + expression > expression + expression <= expression + expression >= expression\fR +.DE +.PP +The operators +.B +< +.R +(less than), +.B +> +.R +(greater than), \fB<=\fR +(less than +or equal to), and +.B +>= +.R +(greater than or equal to) +all yield 0 if the specified relation is false +and 1 if it is true. +The type of the result is +.B +int\fR. +The usual arithmetic conversions are performed. +Two pointers may be compared; +the result depends on the relative locations in the address space +of the pointed-to objects. +Pointer comparison is portable only when the pointers point to objects +in the same array. +.NH 2 +Equality Operators +.PP +.DS +\fIequality-expression: + expression == expression + expression != expression\fR +.DE +.PP +The +.B +== +.R +(equal to) and the +.B +!= +.R +(not equal to) operators +are exactly analogous to the relational +operators except for their lower +precedence. +(Thus +.B +a>= expression + lvalue <<= expression + lvalue &= expression + lvalue ^= expression + lvalue |= expression\fR +.DE +.PP +In the simple assignment with +\fB=\fR, +the value of the expression replaces that of the object +referred +to by the lvalue. +If both operands have arithmetic type, +the right operand is converted to the type of the left +preparatory to the assignment. +Second, both operands may be structures or unions of the same type. +Finally, if the left operand is a pointer, the right operand must in general be a pointer +of the same type. +However, the constant 0 may be assigned to a pointer; +it is guaranteed that this value will produce a null +pointer distinguishable from a pointer to any object. +.PP +The behavior of an expression +of the form +\fBE1\fR\^ \fIop\fR\^ = \fBE2\fR\^ +may be inferred by +taking it as equivalent to +\fBE1 = E1 \fIop\fR\^ (\fBE2\fR\^); +however, +.B +E1 +.R +is evaluated only once. +In +.B +\(pl= +.R +and +\fB\(mi=\fR, +the left operand may be a pointer; in which case, the (integral) right +operand is converted as explained +in ``Additive Operators.'' +All right operands and all nonpointer left operands must +have arithmetic type. +.NH 2 +Comma Operator +.DS +\fIcomma-expression: + expression , expression\fR +.DE +.PP +A pair of expressions separated by a comma is evaluated +left to right, and the value of the left expression is +discarded. +The type and value of the result are the +type and value of the right operand. +This operator groups left to right. +In contexts where comma is given a special meaning, +e.g., in lists of actual arguments +to functions (see ``Primary Expressions'') and lists +of initializers (see ``Initialization'' under ``DECLARATIONS''), +the comma operator as described in this subpart +can only appear in parentheses. For example, +.DS +\fBf(a, (t=3, t\(pl2), c)\fR +.DE +.LP +has three arguments, the second of which has the value 5. +.NH 1 +Declarations +.PP +Declarations are used to specify the interpretation +which C gives to each identifier; they do not necessarily +reserve storage associated with the identifier. +Declarations have the form +.DS +\fIdeclaration: + decl-specifiers declarator-list\v'0.5'\s-2opt\s0\v'-0.5' ;\fR +.DE +.PP +The declarators in the declarator-list +contain the identifiers being declared. +The decl-specifiers +consist of a sequence of type and storage class specifiers. +.DS +\fIdecl-specifiers: + type-specifier decl-specifiers\v'0.5'\s-2opt\s0\v'-0.5' + sc-specifier decl-specifiers\v'0.5'\s-2opt\s0\v'-0.5'\fR +.DE +.PP +The list must be self-consistent in a way described below. +.NH 2 +Storage Class Specifiers +.PP +The sc-specifiers are: +.DS +\fIsc-specifier:\fB + auto + static + extern + register + typedef\fR +.DE +.PP +The +.B +typedef +.R +specifier does not reserve storage +and is called a ``storage class specifier'' only for syntactic convenience. +See ``Typedef'' for more information. +The meanings of the various storage classes were discussed in ``Names.'' +.PP +The +\fBauto\fR, +\fBstatic\fR, +and +.B +register +.R +declarations also serve as definitions +in that they cause an appropriate amount of storage to be reserved. +In the +.B +extern +.R +case, +there must be an external definition (see ``External Definitions'') +for the given identifiers +somewhere outside the function in which they are declared. +.PP +A +.B +register +.R +declaration is best thought of as an +.B +auto +.R +declaration, together with a hint to the compiler +that the variables declared will be heavily used. +Only the first few +such declarations in each function are effective. +Moreover, only variables of certain types will be stored in registers; +on the +PDP-11, +they are +.B +int +.R +or pointer. +One other restriction applies to register variables: +the address-of operator +.B +& +.R +cannot be applied to them. +Smaller, faster programs can be expected if register declarations +are used appropriately, +but future improvements in code generation +may render them unnecessary. +.PP +At most, one sc-specifier may be given in a declaration. +If the sc-specifier is missing from a declaration, it +is taken to be +.B +auto +.R +inside a function, +.B +extern +.R +outside. +Exception: +functions are never +automatic. +.NH 2 +Type Specifiers +.PP +The type-specifiers are +.DS +\fItype-specifier: + struct-or-union-specifier + typedef-name + enum-specifier +basic-type-specifier: + basic-type + basic-type basic-type-specifiers +basic-type:\fB + char + short + int + long + unsigned + float + double + void\fR +.DE +.PP +At most one of the words \fBlong\fR or \fBshort\fR +may be specified in conjunction with \fBint\fR; +the meaning is the same as if \fBint\fR were not mentioned. +The word \fBlong\fR may be specified in conjunction with +\fBfloat\fR; +the meaning is the same as \fBdouble\fR. +The word \fBunsigned\fR may be specified alone, or +in conjunction with \fBint\fR or any of its short +or long varieties, or with \fBchar\fR. +.PP +Otherwise, at most on type-specifier may be +given in a declaration. +In particular, adjectival use of \fBlong\fR, +\fBshort\fR, or \fBunsigned\fR is not permitted +with \fBtypedef\fR names. +If the type-specifier is missing from a declaration, +it is taken to be \fBint\fR. +.PP +Specifiers for structures, unions, and enumerations are discussed in +``Structure, Union, and Enumeration Declarations.'' +Declarations with +.B +typedef +.R +names are discussed in ``Typedef.'' +.NH 2 +Declarators +.PP +The declarator-list appearing in a declaration +is a comma-separated sequence of declarators, +each of which may have an initializer. +.DS +\fIdeclarator-list: + init-declarator + init-declarator , declarator-list +.DE +.DS +\fIinit-declarator: + declarator initializer\v'0.5'\s-2opt\s0\v'-0.5'\fR +.DE +.PP +Initializers are discussed in ``Initialization''. +The specifiers in the declaration +indicate the type and storage class of the objects to which the +declarators refer. +Declarators have the syntax: +.DS +\fIdeclarator: + identifier + ( declarator ) + \(** declarator + declarator () + declarator [ constant-expression\v'0.5'\s-2opt\s0\v'-0.5' ]\fR +.DE +.PP +The grouping is +the same as in expressions. +.NH 2 +Meaning of Declarators +.PP +Each declarator is taken to be +an assertion that when a construction of +the same form as the declarator appears in an expression, +it yields an object of the indicated +type and storage class. +.PP +Each declarator contains exactly one identifier; it is this identifier that +is declared. +If an unadorned identifier appears +as a declarator, then it has the type +indicated by the specifier heading the declaration. +.PP +A declarator in parentheses is identical to the unadorned declarator, +but the binding of complex declarators may be altered by parentheses. +See the examples below. +.PP +Now imagine a declaration +.DS +\fBT D1\fR +.DE +.LP +where +.B +T +.R +is a type-specifier (like +\fBint\fR, +etc.) +and +.B +D1 +.R +is a declarator. +Suppose this declaration makes the identifier have type +``\|.\|.\|.\| +.B +T +.R +,'' +where the ``\|.\|.\|.\|'' is empty if +.B +D1 +.R +is just a plain identifier +(so that the type of +.B +x +.R +in +\fB`int x''\fR +is just +\fBint\fR). +Then if +.B +D1 +.R +has the form +.DS +\fB\(**D\fR +.DE +.LP +the type of the contained identifier is +``\|.\|.\|.\| pointer to +.B +T +.R +\&.'' +.PP +If +.B +D1 +.R +has the form +.DS +\fBD\|(\|\|)\|\fR +.DE +.LP +then the contained identifier has the type +``\|.\|.\|. function returning +\fBT\fR.'' +.LP +If +.B +D1 +.R +has the form +.DS +\fBD\|[\|\fIconstant-expression\fB\|]\fR +.DE +.LP +or +.DS +\fBD\|[\|]\|\fR +.DE +.LP +then the contained identifier has type +``\|.\|.\|.\| array of +\fBT\fR.'' +In the first case, the constant +expression +is an expression +whose value is determinable at compile time +, whose type is +.B +int\fR, +and whose value is positive. +(Constant expressions are defined precisely in ``Constant Expressions.'') +When several ``array of'' specifications are adjacent, a multidimensional +array is created; +the constant expressions which specify the bounds +of the arrays may be missing only for the first member of the sequence. +This elision is useful when the array is external +and the actual definition, which allocates storage, +is given elsewhere. +The first constant expression may also be omitted +when the declarator is followed by initialization. +In this case the size is calculated from the number +of initial elements supplied. +.PP +An array may be constructed from one of the basic types, from a pointer, +from a structure or union, +or from another array (to generate a multidimensional array). +.PP +Not all the possibilities +allowed by the syntax above are actually +permitted. +The restrictions are as follows: +functions may not return +arrays or functions +although they may return pointers; +there are no arrays of functions although +there may be arrays of pointers to functions. +Likewise, a structure or union may not contain a function; +but it may contain a pointer to a function. +.PP +As an example, the declaration +.DS +\fBint i, \(**ip, f(), \(**fip(), (\(**pfi)();\fR +.DE +.LP +declares an integer +\fBi\fR, +a pointer +.B +ip +.R +to an integer, +a function +.B +f +.R +returning an integer, +a function +.B +fip +.R +returning a pointer to an integer, +and a pointer +.B +pfi +.R +to a function which +returns an integer. +It is especially useful to compare the last two. +The binding of +.B +\(**fip() +.R +is +.B +\(**(fip())\fR. +.R +The declaration suggests, +and the same construction in an expression +requires, the calling of a function +.B +fip\fR. +.R +Using indirection through the (pointer) result +to yield an integer. +In the declarator +\fB(\(**pfi)()\fR, +the extra parentheses are necessary, as they are also +in an expression, to indicate that indirection through +a pointer to a function yields a function, which is then called; +it returns an integer. +.PP +As another example, +.DS +\fBfloat fa[17], \(**afp[17];\fR +.DE +.LP +declares an array of +.B +float +.R +numbers and an array of +pointers to +.B +float +.R +numbers. +Finally, +.DS +\fBstatic int x3d[3][5][7];\fR +.DE +.LP +declares a static 3-dimensional array of integers, +with rank 3\(mu5\(mu7. +In complete detail, +.B +x3d +.R +is an array of three items; +each item is an array of five arrays; +each of the latter arrays is an array of seven +integers. +Any of the expressions +\fBx3d\fR, +\fBx3d[i]\fR, +\fBx3d[i][j]\fR, +.B +x3d[i][j][k] +.R +may reasonably appear in an expression. +The first three have type ``array'' +and the last has type +.B +int\fR. +.R +.NH 2 +Structure and Union Declarations +.PP +A structure +is an object consisting of a sequence of named members. +Each member may have any type. +A union is an object which may, at a given time, contain any one +of several members. +Structure and union specifiers have the same form. +.DS +\fIstruct-or-union-specifier: + struct-or-union { struct-decl-list } + struct-or-union identifier { struct-decl-list } + struct-or-union identifier +.DE +.DS +\fIstruct-or-union:\fB + struct + union\fR +.DE +.PP +The +struct-decl-list +.ne 4 +is a sequence of declarations for the members of the structure or union: +.DS +\fIstruct-decl-list: + struct-declaration + struct-declaration struct-decl-list +.DE +.DS +\fIstruct-declaration: + type-specifier struct-declarator-list ; +.DE +.DS +\fIstruct-declarator-list: + struct-declarator + struct-declarator , struct-declarator-list\fR +.DE +.PP +In the usual case, a struct-declarator is just a declarator +for a member of a structure or union. +A structure member may also consist of a specified number of bits. +Such a member is also called a +.I +field ; +.R +its length, +a non-negative constant expression, +is set off from the field name by a colon. +.DS +\fIstruct-declarator: + declarator + declarator : constant-expression + : constant-expression\fR +.DE +.PP +Within a structure, the objects declared +have addresses which increase as the declarations +are read left to right. +Each nonfield member of a structure +begins on an addressing boundary appropriate +to its type; +therefore, there may +be unnamed holes in a structure. +Field members are packed into machine integers; +they do not straddle words. +A field which does not fit into the space remaining in a word +is put into the next word. +No field may be wider than a word. +.PP +Fields are assigned right to left +on the +PDP-11 +and +VAX-11, +left to right on the 3B 20. +.PP +A struct-declarator with no declarator, only a colon and a width, +indicates an unnamed field useful for padding to conform +to externally-imposed layouts. +As a special case, a field with a width of 0 +specifies alignment of the next field at an implementation dependant boundary. +.PP +The language does not restrict the types of things that +are declared as fields, +but implementations are not required to support any but +integer fields. +Moreover, +even +.B +int +.R +fields may be considered to be unsigned. +On the +PDP-11, +fields are not signed and have only integer values; +on the +VAX-11, +fields declared with +.B +int +.R +are treated as containing a sign. +For these reasons, +it is strongly recommended that fields be declared as +.B +unsigned\fR. +.R +In all implementations, +there are no arrays of fields, +and the address-of operator +.B +& +.R +may not be applied to them, so that there are no pointers to +fields. +.PP +A union may be thought of as a structure all of whose members +begin at offset 0 and whose size is sufficient to contain +any of its members. +At most, one of the members can be stored in a union +at any time. +.PP +A structure or union specifier of the second form, that is, one of +.DS + \fBstruct \fIidentifier { struct-decl-list \fR} + \fBunion \fIidentifier { struct-decl-list \fR} +.DE +.LP +declares the identifier to be the +.I +structure tag +.R +(or union tag) +of the structure specified by the list. +A subsequent declaration may then use +the third form of specifier, one of +.DS + \fBstruct \fIidentifier\fR + \fBunion \fIidentifier\fR +.DE +.PP +Structure tags allow definition of self-referential +structures. Structure tags also +permit the long part of the declaration to be +given once and used several times. +It is illegal to declare a structure or union +which contains an instance of +itself, but a structure or union may contain a pointer to an instance of itself. +.PP +The third form of a structure or union specifier may be +used prior to a declaration which gives the complete specification +of the structure or union in situations in which the size +of the structure or union is unnecessary. +The size is unnecessary in two situations: when a +pointer to a structure or union is being declared and +when a \fBtypedef\fR name is declared to be a synonym +for a structure or union. +This, for example, allows the declaration of a pair +of structures which contain pointers to each other. +.PP +The names of members and tags do not conflict +with each other or with ordinary variables. +A particular name may not be used twice +in the same structure, +but the same name may be used in several different structures in the same scope. +.PP +A simple but important example of a structure declaration is +the following binary tree structure: +.DS +\fBstruct tnode +{ + char tword[20]; + int count; + struct tnode \(**left; + struct tnode \(**right; +};\fR +.DE +.LP +which contains an array of 20 characters, an integer, and two pointers +to similar structures. +Once this declaration has been given, the +declaration +.DS +\fBstruct tnode s, \(**sp;\fR +.DE +.LP +declares +.B +s +.R +to be a structure of the given sort +and +.B +sp +.R +to be a pointer to a structure +of the given sort. +With these declarations, the expression +.DS +\fBsp->count\fR +.DE +.LP +refers to the +.B +count +.R +field of the structure to which +.B +sp +.R +points; +.DS +\fBs.left\fR +.DE +.LP +refers to the left subtree pointer +of the structure +\fBs\fR; +and +.DS +\fBs.right->tword[0]\fR +.DE +.LP +refers to the first character of the +.B +tword +.R +member of the right subtree of +.B +s\fR. +.R +.PP +.NH 2 +Enumeration Declarations +.PP +Enumeration variables and constants have integral type. +.DS +\fIenum-specifier:\fB + enum\fI { enum-list \fR}\fB + enum \fIidentifier { enum-list \fR}\fB + enum \fIidentifier +.sp +enum-list: + enumerator + enum-list , enumerator +.sp +enumerator: + identifier + identifier = constant-expression\fR +.DE +.PP +The identifiers in an enum-list are declared as constants +and may appear wherever constants are required. +If no enumerators with +.B += +.R +appear, then the values of the +corresponding constants begin at 0 and increase by 1 as the declaration is +read from left to right. +An enumerator with +.B += +.R +gives the associated identifier the value +indicated; subsequent identifiers continue the progression from the assigned value. +.PP +The names of enumerators in the same scope must all be distinct +from each other and from those of ordinary variables. +.PP +The role of the identifier in the enum-specifier +is entirely analogous to that of the structure tag +in a struct-specifier; it names a particular enumeration. +For example, +.DS L +\fBenum color { chartreuse, burgundy, claret=20, winedark }; +\&... +enum color \(\(**\(**cp, col; +\&... +col = claret; +cp = &col; +\&... +if (\(\(**\(**cp == burgundy) ...\fR +.DE +.LP +makes +.B +color +.R +the enumeration-tag of a type describing various colors, +and then declares +.B +cp +.R +as a pointer to an object of that type, +and +.B +col +.R +as an object of that type. +The possible values are drawn from the set {0,1,20,21}. +.NH 2 +Initialization +.PP +A declarator may specify an initial value for the +identifier being declared. +The initializer is preceded by +.B += +.R +and +consists of an expression or a list of values nested in braces. +.DS +\fIinitializer: + = expression + = { initializer-list } + = { initializer-list , } +.DE +.DS +\fIinitializer-list: + expression + initializer-list , initializer-list\fR + { \fIinitializer-list \fR} + { \fIinitializer-list\fR , } +.DE +.PP +All the expressions in an initializer +for a static or external variable must be constant +expressions, which are described in ``CONSTANT EXPRESSIONS'', +or expressions which reduce to the address of a previously +declared variable, possibly offset by a constant expression. +Automatic or register variables may be initialized by arbitrary +expressions involving constants and previously declared variables and functions. +.PP +Static and external variables that are not initialized are +guaranteed to start off as zero. +Automatic and register variables that are not initialized +are guaranteed to start off as garbage. +.PP +When an initializer applies to a +.I +scalar +.R +(a pointer or an object of arithmetic type), +it consists of a single expression, perhaps in braces. +The initial value of the object is taken from +the expression; the same conversions as for assignment are performed. +.PP +When the declared variable is an +.I +aggregate +.R +(a structure or array), +the initializer consists of a brace-enclosed, comma-separated list of +initializers for the members of the aggregate +written in increasing subscript or member order. +If the aggregate contains subaggregates, this rule +applies recursively to the members of the aggregate. +If there are fewer initializers in the list than there are members of the aggregate, +then the aggregate is padded with zeros. +It is not permitted to initialize unions or automatic aggregates. +.PP +Braces may in some cases be omitted. +If the initializer begins with a left brace, then +the succeeding comma-separated list of initializers initializes +the members of the aggregate; +it is erroneous for there to be more initializers than members. +If, however, the initializer does not begin with a left brace, +then only enough elements from the list are taken to account +for the members of the aggregate; any remaining members +are left to initialize the next member of the aggregate of which +the current aggregate is a part. +.PP +A final abbreviation allows a +.B +char +.R +array to be initialized by a string. +In this case successive characters of the string +initialize the members of the array. +.PP +For example, +.DS +\fBint x[] = { 1, 3, 5 };\fR +.DE +.LP +declares and initializes +.B +x +.R +as a one-dimensional array which has three members, since no size was specified +and there are three initializers. +.DS +\fBfloat y[4][3] = +{ + { 1, 3, 5 }, + { 2, 4, 6 }, + { 3, 5, 7 }, +};\fR +.DE +.LP +is a completely-bracketed initialization: +1, 3, and 5 initialize the first row of +the array +\fBy[0]\fR, +namely +\fBy[0][0]\fR, +\fBy[0][1]\fR, +and +.B +y[0][2]\fR. +.R +Likewise, the next two lines initialize +.B +y[1] +.R +and +.B +y[2]\fR. +.R +The initializer ends early and therefore +.B +y[3] +.R +is initialized with 0. +Precisely, the same effect could have been achieved by +.DS +\fBfloat y[4][3] = +{ + 1, 3, 5, 2, 4, 6, 3, 5, 7 +};\fR +.DE +.PP +The initializer for +.B +y +.R +begins with a left brace but that for +.B +y[0] +.R +does not; +therefore, three elements from the list are used. +Likewise, the next three are taken successively for +.B +y[1] +.R +and +.B +y[2]\fR. +.R +Also, +.DS +\fBfloat y[4][3] = +{ + { 1 }, { 2 }, { 3 }, { 4 } +};\fR +.DE +.LP +initializes the first column of +.B +y +.R +(regarded as a two-dimensional array) +and leaves the rest 0. +.PP +Finally, +.DS +\fBchar msg[] = "Syntax error on line %s\en";\fR +.DE +.LP +shows a character array whose members are initialized +with a string. +.NH 2 +Type Names +.PP +In two contexts (to specify type conversions explicitly +by means of a cast +and as an argument of +\fBsizeof\fR), +it is desired to supply the name of a data type. +This is accomplished using a ``type name'', which in essence +is a declaration for an object of that type which omits the name of +the object. +.DS +\fItype-name: + type-specifier abstract-declarator +.DE +.DS +\fIabstract-declarator: + empty + ( abstract-declarator ) + \(** abstract-declarator + abstract-declarator () + abstract-declarator\fR\^ [ \fIconstant-expression\v'0.5'\s-2opt\s0\v'-0.5' \fR\^] +.DE +.PP +To avoid ambiguity, +in the construction +.DS + \fI( abstract-declarator \fR) +.DE +.LP +the +abstract-declarator +is required to be nonempty. +Under this restriction, +it is possible to identify uniquely the location in the abstract-declarator +where the identifier would appear if the construction were a declarator +in a declaration. +The named type is then the same as the type of the +hypothetical identifier. +For example, +.DS +\fBint +int \(** +int \(**[3] +int (\(**)[3] +int \(**() +int (\(**)() +int (\(**[3])()\fR +.DE +.LP +name respectively the types ``integer,'' ``pointer to integer,'' +``array of three pointers to integers,'' +``pointer to an array of three integers,'' +``function returning pointer to integer,'' +``pointer to function returning an integer,'' +and ``array of three pointers to functions returning an integer.'' +.NH 2 +Typedef +.PP +Declarations whose ``storage class'' is +.B +typedef +.R +do not define storage but instead +define identifiers which can be used later +as if they were type keywords naming fundamental +or derived types. +.DS +\fItypedef-name:\fR + \fIidentifier\fR +.DE +.PP +Within the scope of a declaration involving +\fBtypedef\fR, +each identifier appearing as part of +any declarator therein becomes syntactically +equivalent to the type keyword +naming the type +associated with the identifier +in the way described in ``Meaning of Declarators.'' +For example, +after +.DS +\fBtypedef int MILES, \(**KLICKSP; +typedef struct { double re, im; } complex;\fR +.DE +.LP +the constructions +.DS +\fBMILES distance; +extern KLICKSP metricp; +complex z, \(**zp;\fR +.DE +.LP +are all legal declarations; the type of +.B +distance +.R +is +\fBint\fR, +that of +.B +metricp +.R +is ``pointer to \fBint\fR, '' +and that of +.B +z +.R +is the specified structure. +The +.B +zp +.R +is a pointer to such a structure. +.PP +The +.B +typedef +.R +does not introduce brand-new types, only synonyms for +types which could be specified in another way. +Thus +in the example above +.B +distance +.R +is considered to have exactly the same type as +any other +.B +int +.R +object. +.NH 1 +Statements +.PP +Except as indicated, statements are executed in sequence. +.NH 2 +Expression Statement +.PP +Most statements are expression statements, which have +the form +.DS +\fIexpression \fR; +.DE +.PP +Usually expression statements are assignments or function +calls. +.NH 2 +Compound Statement or Block +.PP +So that several statements can be used where one is expected, +the compound statement (also, and equivalently, called ``block'') is provided: +.DS +\fIcompound-statement: + { declaration-list\v'0.5'\s-2opt\s0\v'-0.5' statement-list\v'0.5'\s-2opt\s0\v'-0.5' } +.DE +.DS +\fIdeclaration-list: + declaration + declaration declaration-list +.DE +.DS +\fIstatement-list: + statement + statement statement-list\fR +.DE +.PP +If any of the identifiers +in the declaration-list were previously declared, +the outer declaration is pushed down for the duration of the block, +after which it resumes its force. +.PP +Any initializations of +.B +auto +.R +or +.B +register +.R +variables are performed each time the block is entered at the top. +It is currently possible +(but a bad practice) +to transfer into a block; +in that case the initializations are not performed. +Initializations of +.B +static +.R +variables are performed only once when the program +begins execution. +Inside a block, +.B +extern +.R +declarations do not reserve storage +so initialization is not permitted. +.NH 2 +Conditional Statement +.PP +The two forms of the conditional statement are +.DS +\fBif\fR\^ ( \fIexpression\fR\^ ) \fIstatement\fR\^ +\fBif\fR\^ ( \fIexpression\fR\^ ) \fIstatement \fBelse \fIstatement\fR\^ +.DE +.PP +In both cases, the expression is evaluated; +and if it is nonzero, the first substatement +is executed. +In the second case, the second substatement is executed +if the expression is 0. +The ``else'' ambiguity is resolved by connecting +an +.B +else +.R +with the last encountered +\fBelse\fR-less +.B +if\fR. +.R +.NH 2 +While Statement +.PP +The +.B +while +.R +statement has the form +.DS +\fBwhile\fR\^ ( \fIexpression\fR\^ ) \fIstatement\fR\^ +.DE +.PP +The substatement is executed repeatedly +so long as the value of the +expression remains nonzero. +The test takes place before each execution of the +statement. +.NH 2 +Do Statement +.PP +The +.B +do +.R +statement has the form +.DS +\fBdo \fIstatement \fBwhile\fR\^ ( \fIexpression \fR\^) ; +.DE +.PP +The substatement is executed repeatedly until +the value of the expression becomes 0. +The test takes place after each execution of the +statement. +.NH 2 +For Statement +.PP +The +.B +for +.R +statement has the form: +.DS +\fBfor\fI ( exp-1\v'0.5'\s-2opt\s0\v'-0.5' ; exp-2\v'0.5'\s-2opt\s0\v'-0.5' ; exp-3\v'0.5'\s-2opt\s0\v'-0.5' ) statement\fR +.DE +.PP +.sp +Except for the behavior of \fBcontinue\fR, +this statement is equivalent to +.DS +\fIexp-1 \fR; +\fBwhile\fR\^ ( \fIexp-2\ ) \fR\^ +{ + \fIstatement + exp-3 ;\fR +} +.DE +.PP +Thus the first expression specifies initialization +for the loop; the second specifies +a test, made before each iteration, such +that the loop is exited when the expression becomes +0. +The third expression often specifies an incrementing +that is performed after each iteration. +.PP +Any or all of the expressions may be dropped. +A missing +.I +exp-2 +.R +makes the +implied +.B +while +.R +clause equivalent to +\fBwhile(1)\fR; +other missing expressions are simply +dropped from the expansion above. +.NH 2 +Switch Statement +.PP +The +.B +switch +.R +statement causes control to be transferred +to one of several statements depending on +the value of an expression. +It has the form +.DS +\fBswitch\fR\^ ( \fIexpression\fR\^ ) \fIstatement\fR\^ +.DE +.PP +The usual arithmetic conversion is performed on the +expression, but the result must be +.B +int\fR. +.R +The statement is typically compound. +Any statement within the statement +may be labeled with one or more case prefixes +as follows: +.DS +\fBcase \fIconstant-expression \fR: +.DE +.LP +where the constant +expression +must be +.B +int\fR. +.R +No two of the case constants in the same switch +may have the same value. +Constant expressions are precisely defined in ``CONSTANT EXPRESSIONS.'' +.PP +There may also be at most one statement prefix of the +form +.DS +\fBdefault :\fR +.DE +.PP +When the +.B +switch +.R +statement is executed, its expression +is evaluated and compared with each case constant. +If one of the case constants is +equal to the value of the expression, +control is passed to the statement +following the matched case prefix. +If no case constant matches the expression +and if there is a +\fBdefault\fR, +prefix, control +passes to the prefixed +statement. +If no case matches and if there is no +\fBdefault\fR, +then +none of the statements in the +switch is executed. +.PP +The prefixes +.B +case +.R +and +.B +default +.R +do not alter the flow of control, +which continues unimpeded across such prefixes. +To exit from a switch, see +``Break Statement.'' +.PP +Usually, the statement that is the subject of a switch is compound. +Declarations may appear at the head of this +statement, +but +initializations of automatic or register variables +are ineffective. +.NH 2 +Break Statement +.PP +The statement +.DS +\fBbreak ;\fR +.DE +.LP +causes termination of the smallest enclosing +\fBwhile\fR, +\fBdo\fR, +\fBfor\fR, +or +\fBswitch\fR +statement; +control passes to the +statement following the terminated statement. +.NH 2 +Continue Statement +.PP +The statement +.DS +\fBcontinue ;\fR +.DE +.LP +causes control to pass to the loop-continuation portion of the +smallest enclosing +\fBwhile\fR, +\fBdo\fR, +or +\fBfor\fR +statement; that is to the end of the loop. +More precisely, in each of the statements +.DS +.TS +lw(2i) lw(2i) lw(2i). +\fBwhile (\|.\|.\|.\|) { do { for (\|.\|.\|.\|) {\fR + \fIstatement ; statement ; statement ;\fR + \fBcontin: ; contin: ; contin: ; +} } while (...); }\fR +.TE +.DE +.LP +a +.B +continue +.R +is equivalent to +.B +goto\ contin\fR. +.R +(Following the +.B +contin: +.R +is a null statement, see ``Null Statement''.) +.NH 2 +Return Statement +.PP +A function returns to its caller by means of +the +.B +return +.R +statement which has one of the +forms +.DS +\fBreturn ; +return \fIexpression \fR; +.DE +.PP +In the first case, the returned value is undefined. +In the second case, the value of the expression +is returned to the caller +of the function. +If required, the expression is converted, +as if by assignment, to the type of +function in which it appears. +Flowing off the end of a function is +equivalent to a return with no returned value. +The expression may be parenthesized. +.NH 2 +Goto Statement +.PP +Control may be transferred unconditionally by means of +the statement +.DS +\fBgoto \fIidentifier \fR; +.DE +.PP +The identifier must be a label +(see ``Labeled Statement'') +located in the current function. +.NH 2 +Labeled Statement +.PP +Any statement may be preceded by +label prefixes of the form +.DS +\fIidentifier \fR: +.DE +.LP +which serve to declare the identifier +as a label. +The only use of a label is as a target of a +.B +goto\fR. +.R +The scope of a label is the current function, +excluding any subblocks in which the same identifier has been redeclared. +See ``SCOPE RULES.'' +.NH 2 +Null Statement +.PP +The null statement has the form +.DS + \fB;\fR +.DE +.PP +A null statement is useful to carry a label just before the +.B +} +.R +of a compound statement or to supply a null +body to a looping statement such as +.B +while\fR. +.R +.NH 1 +External Definitions +.PP +A C program consists of a sequence of external definitions. +An external definition declares an identifier to +have storage class +.B +extern +.R +(by default) +or perhaps +\fBstatic\fR, +and +a specified type. +The type-specifier (see ``Type Specifiers'' in +``DECLARATIONS'') may also be empty, in which +case the type is taken to be +.B +int\fR. +.R +The scope of external definitions persists to the end +of the file in which they are declared just as the effect +of declarations persists to the end of a block. +The syntax of external definitions is the same +as that of all declarations except that +only at this level may the code for functions be given. +.NH 2 +External Function Definitions +.PP +Function definitions have the form +.DS +\fIfunction-definition: + decl-specifiers\v'0.5'\s-2opt\s0\v'-0.5' function-declarator function-body\fR +.DE +.PP +The only sc-specifiers +allowed +among the decl-specifiers +are +.B +extern +.R +or +\fBstatic\fR; +see ``Scope of Externals'' in +``SCOPE RULES'' for the distinction between them. +A function declarator is similar to a declarator +for a ``function returning .\|.\|.\|'' except that +it lists the formal parameters of +the function being defined. +.DS +\fIfunction-declarator: + declarator ( parameter-list\v'0.5'\s-2opt\s0\v'-0.5' ) +.DE +.DS +\fIparameter-list: + identifier + identifier , parameter-list\fR +.DE +.PP +The function-body +has the form +.DS +\fIfunction-body: + declaration-list\v'0.5'\s-2opt\s0\v'-0.5' compound-statement\fR +.DE +.PP +The identifiers in the parameter list, and only those identifiers, +may be declared in the declaration list. +Any identifiers whose type is not given are taken to be +.B +int\fR. +.R +The only storage class which may be specified is +\fBregister\fR; +if it is specified, the corresponding actual parameter +will be copied, if possible, into a register +at the outset of the function. +.PP +A simple example of a complete function definition is +.DS +\fBint max(a, b, c) + int a, b, c; +{ + int m; +.sp + m = (a > b) ? a : b; + return((m > c) ? m : c); +}\fR +.DE +.PP +Here +.B +int +.R +is the type-specifier; +.B +max(a,\ b,\ c) +.R +is the function-declarator; +.B +int\ a,\ b,\ c; +.R +is the declaration-list for +the formal +parameters; +\fB{\ ...\ }\fR +is the +block giving the code for the statement. +.PP +The C program converts all +.B +float +.R +actual parameters +to +\fBdouble\fR, +so formal parameters declared +.B +float +.R +have their declaration adjusted to read +.B +double\fR. +.R +All \fBchar\fR and \fBshort\fR formal parameter +declarations are similarly adjusted +to read \fBint\fR. +Also, since a reference to an array in any context +(in particular as an actual parameter) +is taken to mean +a pointer to the first element of the array, +declarations of formal parameters declared ``array of .\|.\|.\|'' +are adjusted to read ``pointer to .\|.\|.\|.'' +.NH 2 +External Data Definitions +.PP +An external data definition has the form +.DS +\fIdata-definition: + declaration\fR +.DE +.PP +The storage class of such data may be +.B +extern +.R +(which is the default) +or +.B +static +.R +but not +.B +auto +.R +or +\fBregister\fR. +.NH 1 +Scope Rules +.PP +A C program need not all +be compiled at the same time. The source text of the +program +may be kept in several files, and precompiled +routines may be loaded from +libraries. +Communication among the functions of a program +may be carried out both through explicit calls +and through manipulation of external data. +.PP +Therefore, there are two kinds of scopes to consider: +first, what may be called the +.UL lexical +.UL scope +of an identifier, which is essentially the +region of a program during which it may +be used without drawing ``undefined identifier'' +diagnostics; +and second, the scope +associated with external identifiers, +which is characterized by the rule +that references to the same external +identifier are references to the same object. +.NH 2 +Lexical Scope +.PP +The lexical scope of identifiers declared in external definitions +persists from the definition through +the end of the source file +in which they appear. +The lexical scope of identifiers which are formal parameters +persists through the function with which they are +associated. +The lexical scope of identifiers declared at the head of a block +persists until the end of the block. +The lexical scope of labels is the whole of the +function in which they appear. +.PP +In all cases, however, +if an identifier is explicitly declared at the head of a block, +including the block constituting a function, +any declaration of that identifier outside the block +is suspended until the end of the block. +.PP +Remember also (see ``Structure, Union, and Enumeration Declarations'' in +``DECLARATIONS'') that tags, identifiers associated with +ordinary variables, +and identities associated with structure and union members +form three disjoint classes +which do not conflict. +Members and tags follow the same scope rules +as other identifiers. +The \fBenum\fR constants are in the same +class as ordinary variables and follow the same scope rules. +The +.B +typedef +.R +names are in the same class as ordinary identifiers. +They may be redeclared in inner blocks, but an explicit +type must be given in the inner declaration: +.DS +\fBtypedef float distance; +\&... +{ + auto int distance; + ...\fR +} +.DE +.PP +The +.B +int +.R +must be present in the second declaration, +or it would be taken to be +a declaration with no declarators and type +.B +distance\fR. +.R +.NH 2 +Scope of Externals +.PP +If a function refers to an identifier declared to be +\fBextern\fR, +then somewhere among the files or libraries +constituting the complete program +there must be at least one external definition +for the identifier. +All functions in a given program which refer to the same +external identifier refer to the same object, +so care must be taken that the type and size +specified in the definition +are compatible with those specified +by each function which references the data. +.PP +It is illegal to explicitly initialize any external +identifier more than once in the set of files and libraries +comprising a multi-file program. +It is legal to have more than one data definition +for any external non-function identifier; +explicit use of \fBextern\fR does not +change the meaning of an external declaration. +.PP +In restricted environments, the use of the \fBextern\fR +storage class takes on an additional meaning. +In these environments, the explicit appearance of the +\fBextern\fR keyword in external data declarations of +identities without initialization indicates that +the storage for the identifiers is allocated elsewhere, +either in this file or another file. +It is required that there be exactly one definition of +each external identifier (without \fBextern\fR) +in the set of files and libraries +comprising a mult-file program. +.PP +Identifiers declared +.B +static +.R +at the top level in external definitions +are not visible in other files. +Functions may be declared +.B +static\fR. +.R +.nr Hu 1 +.NH 1 +Compiler Control Lines +.PP +The C compiler contains a preprocessor capable +of macro substitution, conditional compilation, +and inclusion of named files. +Lines beginning with +.B +# +.R +communicate +with this preprocessor. +There may be any number of blanks and horizontal tabs +between the \fB#\fR and the directive. +These lines have syntax independent of the rest of the language; +they may appear anywhere and have effect which lasts (independent of +scope) until the end of the source program file. +.nr Hu 1 +.NH 2 +Token Replacement +.PP +A compiler-control line of the form +.DS +\fB#define \fIidentifier token-string\v'0.5'\s-2opt\s0\v'-0.5'\fR +.DE +.LP +causes the preprocessor to replace subsequent instances +of the identifier with the given string of tokens. +Semicolons in or at the end of the token-string are part of that string. +A line of the form +.DS +\fB#define \fIidentifier(identifier, ... )token-string\v'0.5'\s-2opt\s0\v'-0.5'\fR +.DE +.LP +where there is no space between the first identifier +and the +\fB(\fR, +is a macro definition with arguments. +There may be zero or more formal parameters. +Subsequent instances of the first identifier followed +by a +\fB(\fR, +a sequence of tokens delimited by commas, and a +\fB)\fR +are replaced +by the token string in the definition. +Each occurrence of an identifier mentioned in the formal parameter list +of the definition is replaced by the corresponding token string from the call. +The actual arguments in the call are token strings separated by commas; +however, commas in quoted strings or protected by +parentheses do not separate arguments. +The number of formal and actual parameters must be the same. +Strings and character constants in the token-string are scanned +for formal parameters, but +strings and character constants in the rest of the program are +not scanned for defined identifiers +to replacement. +.PP +In both forms the replacement string is rescanned for more +defined identifiers. +In both forms +a long definition may be continued on another line +by writing +.B +\e +.R +at the end of the line to be continued. +.PP +This facility is most valuable for definition of ``manifest constants,'' +as in +.DS +\fB#define TABSIZE 100 +.sp +int table\|[\|TABSIZE\|]\|;\fR +.DE +.PP +A control line of the form +.DS +\fB#undef \fIidentifier\fR +.DE +.LP +causes the +identifier's preprocessor definition (if any) to be forgotten. +.PP +If a \fB#define\fRd identifier is the subject of a subsequent +\fB#define\fR with no intervening \fB#undef\fR, then +the two token-strings are compared textually. +If the two token-strings are not identical +(all white space is considered as equivalent), then +the identifier is considered to be redefined. +.nr Hu 1 +.NH 2 +File Inclusion +.PP +A compiler control line of +the form +.DS +\fB#include\fI "filename\|\fR" +.DE +.LP +causes the replacement of that +line by the entire contents of the file +.I +filename\fR. +.R +The named file is searched for first in the directory +of the file containing the \fB#include\fR, +and then in a sequence of specified or standard places. +Alternatively, a control line of the form +.DS +\fB#include\fI +.DE +.LP +searches only the specified or standard places +and not the directory of the \fB#include\fR. +(How the places are specified is not part of the language.) +.PP +\fB#include\fRs +may be nested. +.nr Hu 1 +.NH 2 +Conditional Compilation +.PP +A compiler control line of the form +.DS +\fB#if \fIrestricted-constant-expression\fR +.DE +.LP +checks whether the restricted-constant expression evaluates to nonzero. +(Constant expressions are discussed in ``CONSTANT EXPRESSIONS''; +the following additional restrictions apply here: +the constant expression may not contain +.B +sizeof +.R +casts, or an enumeration constant.) +.PP +A restricted constant expression may also contain the +additional unary expression +.PP +\fBdefined \fIidentifier\fR +.LP +or +.PP +\fBdefined( \fIidentifier )\fR +.LP +which evaluates to one if the identifier is currently +defined in the preprocessor and zero if it is not. +.PP +All currently defined identifiers in restricted-constant-expressions +are replaced by their token-strings (except those identifiers +modified by \fBdefined\fR) just as in normal text. +The restricted constant expression will be evaluated only +after all expressions have finished. +During this evaluation, all undefined (to the procedure) +identifiers evaluate to zero. +.PP +A control line of the form +.DS +\fB#ifdef \fIidentifier\fR +.DE +.LP +checks whether the identifier is currently defined +in the preprocessor; i.e., whether it has been the +subject of a +.B +#define +.R +control line. +It is equivalent to \fB#ifdef(\fIidentifier\fB)\fR. +A control line of the form +.DS +\fB#ifndef \fIidentifier\fR +.DE +.LP +checks whether the identifier is currently undefined +in the preprocessor. +It is equivalent to +.DS +\fB#if !\|defined(\fIidentifier\fB)\fR. +.DE +.PP +All three forms are followed by an arbitrary number of lines, +possibly containing a control line +.DS +\fB#else\fR +.DE +.LP +and then by a control line +.DS +\fB#endif\fR +.DE +.PP +If the checked condition is true, +then any lines +between +.B +#else +.R +and +.B +#endif +.R +are ignored. +If the checked condition is false, then any lines between +the test and a +.B +#else +.R +or, lacking a +\fB#else\fR, +the +.B +#endif +.R +are ignored. +.PP +These constructions may be nested. +.nr Hu 1 +.NH 2 +Line Control +.PP +For the benefit of other preprocessors which generate C programs, +a line of the form +.DS +\fB#line \fIconstant "filename\fR" +.DE +.LP +causes the compiler to believe, for purposes of error +diagnostics, +that the line number of the next source line is given by the constant and the current input +file is named by "\fIfilename\fR". +If "\fIfilename\fR" is absent, the remembered file name does not change. +.nr Hu 1 +.NH 1 +Implicit Declarations +.PP +It is not always necessary to specify +both the storage class and the type +of identifiers in a declaration. +The storage class is supplied by +the context in external definitions +and in declarations of formal parameters +and structure members. +In a declaration inside a function, +if a storage class but no type +is given, the identifier is assumed +to be +\fBint\fR; +if a type but no storage class is indicated, +the identifier is assumed to +be +.B +auto\fR. +.R +An exception to the latter rule is made for +functions because +.B +auto +.R +functions do not exist. +If the type of an identifier is ``function returning .\|.\|.\|,'' +it is implicitly declared to be +.B +extern\fR. +.R +.PP +In an expression, an identifier +followed by +.B +( +.R +and not already declared +is contextually +declared to be ``function returning +.B +int\fR.'' +.nr Hu 1 +.NH 1 +Types Revisited +.PP +This part summarizes the operations +which can be performed on objects of certain types. +.nr Hu 1 +.NH 2 +Structures and Unions +.PP +Structures and unions may be assigned, passed as arguments to functions, +and returned by functions. +Other plausible operators, such as equality comparison +and structure casts, +are not implemented. +.PP +In a reference +to a structure or union member, the +name on the right +of the \fB->\fR or the \fB.\fR +must specify a member of the aggregate +named or pointed to by the expression +on the left. +In general, a member of a union may not be inspected +unless the value of the union has been assigned using that same member. +However, one special guarantee is made by the language in order +to simplify the use of unions: +if a union contains several structures that share a common initial sequence +and if the union currently contains one of these structures, +it is permitted to inspect the common initial part of any of +the contained structures. +For example, the following is a legal fragment: +.DS +\fBunion +{ + struct + { + int type; + } n; + struct + { + int type; + int intnode; + } ni; + struct + { + int type; + float floatnode; + } nf; +} u; +\&... +u.nf.type = FLOAT; +u.nf.floatnode = 3.14; +\&... +if (u.n.type == FLOAT) + ... sin(u.nf.floatnode) ...\fR +.DE +.PP +.nr Hu 1 +.NH 2 +Functions +.PP +There are only two things that +can be done with a function \fBm\fR, +call it or take its address. +If the name of a function appears in an +expression not in the function-name position of a call, +a pointer to the function is generated. +Thus, to pass one function to another, one +might say +.DS +\fBint f(); +\&... +g(f);\fR +.DE +.PP +.ne 8 +Then the definition of +.B +g +.R +might read +.DS +\fBg(funcp) + int (\(**funcp)(); +{ + ... + (\(**funcp)(); + ... +}\fR +.DE +.PP +Notice that +.B +f +.R +must be declared +explicitly in the calling routine since its appearance +in +.B +g(f) +.R +was not followed by +.B +(. +.R +.nr Hu 1 +.NH 2 +Arrays, Pointers, and Subscripting +.PP +Every time an identifier of array type appears +in an expression, it is converted into a pointer +to the first member of the array. +Because of this conversion, arrays are not +lvalues. +By definition, the subscript operator +.B +[] +.R +is interpreted +in such a way that +.B +E1[E2] +.R +is identical to +.B +\(**((E1)\(plE2))\fR. +.R +Because of the conversion rules +which apply to +\fB\(pl\fR, +if +.B +E1 +.R +is an array and +.B +E2 +.R +an integer, +then +.B +E1[E2] +.R +refers to the +.B +E2-th +.R +member of +.B +E1\fR. +.R +Therefore, +despite its asymmetric +appearance, subscripting is a commutative operation. +.PP +A consistent rule is followed in the case of +multidimensional arrays. +If +.B +E +.R +is an +\fIn\fR-dimensional +array +of rank +i\(muj\(mu...\(muk, +then +.B +E +.R +appearing in an expression is converted to +a pointer to an (n-1)-dimensional +array with rank +j\(mu...\(muk. +If the +.B +\(** +.R +operator, either explicitly +or implicitly as a result of subscripting, +is applied to this pointer, +the result is the pointed-to (n-1)-dimensional array, +which itself is immediately converted into a pointer. +.PP +For example, consider +.DS +\fBint x[3][5];\fR +.DE +.PP +Here +.B +x +.R +is a 3\(mu5 array of integers. +When +.B +x +.R +appears in an expression, it is converted +to a pointer to (the first of three) 5-membered arrays of integers. +In the expression +\fBx[i]\fR, +which is equivalent to +\fB\(**(x\(pli)\fR, +.B +x +.R +is first converted to a pointer as described; +then +.B +i +.R +is converted to the type of +\fBx\fR, +which involves multiplying +.B +i +.R +by the +length the object to which the pointer points, +namely 5-integer objects. +The results are added and indirection applied to +yield an array (of five integers) which in turn is converted to +a pointer to the first of the integers. +If there is another subscript, the same argument applies +again; this time the result is an integer. +.PP +Arrays in C are stored +row-wise (last subscript varies fastest) +and the first subscript in the declaration helps determine +the amount of storage consumed by an array. +Arrays play no other part in subscript calculations. +.nr Hu 1 +.NH 2 +Explicit Pointer Conversions +.PP +Certain conversions involving pointers are permitted +but have implementation-dependent aspects. +They are all specified by means of an explicit type-conversion +operator, see ``Unary Operators'' under``EXPRESSIONS'' and +``Type Names''under ``DECLARATIONS.'' +.PP +A pointer may be converted to any of the integral types large +enough to hold it. +Whether an +.B +int +.R +or +.B +long +.R +is required is machine dependent. +The mapping function is also machine dependent but is intended +to be unsurprising to those who know the addressing structure +of the machine. +Details for some particular machines are given below. +.PP +An object of integral type may be explicitly converted to a pointer. +The mapping always carries an integer converted from a pointer back to the same pointer +but is otherwise machine dependent. +.PP +A pointer to one type may be converted to a pointer to another type. +The resulting pointer may cause addressing exceptions +upon use if +the subject pointer does not refer to an object suitably aligned in storage. +It is guaranteed that +a pointer to an object of a given size may be converted to a pointer to an object +of a smaller size +and back again without change. +.PP +For example, +a storage-allocation routine +might accept a size (in bytes) +of an object to allocate, and return a +.B +char +.R +pointer; +it might be used in this way. +.DS +\fBextern char \(**malloc(); +double \(**dp; +.sp +dp = (double \(**) malloc(sizeof(double)); +\(**dp = 22.0 / 7.0;\fR +.DE +.PP +The +.B +alloc +.R +must ensure (in a machine-dependent way) +that its return value is suitable for conversion to a pointer to +\fBdouble\fR; +then the +.I +use +.R +of the function is portable. +.PP +The pointer +representation on the +PDP-11 +corresponds to a 16-bit integer and +measures bytes. +The +.B +char\fR's +have no alignment requirements; everything else must have an even address. +.PP +On the +VAX-11, +pointers are 32 bits long and measure bytes. +Elementary objects are aligned on a boundary equal to their +length, except that +.B +double +.R +quantities need be aligned only on even 4-byte boundaries. +Aggregates are aligned on the strictest boundary required by +any of their constituents. +.PP +The 3B 20 computer has 24-bit pointers placed into 32-bit quantities. +Most objects are +aligned on 4-byte boundaries. \fBShort\fRs are aligned in all cases on +2-byte boundaries. Arrays of characters, all structures, +\fBint\fR\^s, \fBlong\fR\^s, \fBfloat\fR\^s, and \fBdouble\fR\^s are aligned on 4-byte +boundries; but structure members may be packed tighter. +.nr Hu 1 +.NH 2 +CONSTANT EXPRESSIONS +.PP +In several places C requires expressions that evaluate to +a constant: +after +\fBcase\fR, +as array bounds, and in initializers. +In the first two cases, the expression can +involve only integer constants, character constants, +casts to integral types, +enumeration constants, +and +.B +sizeof +.R +expressions, possibly +connected by the binary operators +.ne 10 +.DS +\(pl \(mi \(** / % & | ^ << >> == != < > <= >= && || +.DE +.LP +or by the unary operators +.DS +\(mi \s+2~\s0 +.DE +.LP +or by the ternary operator +.DS +?: +.DE +.PP +Parentheses can be used for grouping +but not for function calls. +.PP +More latitude is permitted for initializers; +besides constant expressions as discussed above, +one can also use floating constants +and arbitrary casts and +can also apply the unary +.B +& +.R +operator to external or static objects +and to external or static arrays subscripted +with a constant expression. +The unary +.B +& +.R +can also +be applied implicitly +by appearance of unsubscripted arrays and functions. +The basic rule is that initializers must +evaluate either to a constant or to the address +of a previously declared external or static object plus or minus a constant. +.nr Hu 1 +.NH 1 +Portability Considerations +.PP +Certain parts of C are inherently machine dependent. +The following list of potential trouble spots +is not meant to be all-inclusive +but to point out the main ones. +.PP +Purely hardware issues like +word size and the properties of floating point arithmetic and integer division +have proven in practice to be not much of a problem. +Other facets of the hardware are reflected +in differing implementations. +Some of these, +particularly sign extension +(converting a negative character into a negative integer) +and the order in which bytes are placed in a word, +are nuisances that must be carefully watched. +Most of the others are only minor problems. +.PP +The number of +.B +register +.R +variables that can actually be placed in registers +varies from machine to machine +as does the set of valid types. +Nonetheless, the compilers all do things properly for their own machine; +excess or invalid +.B +register +.R +declarations are ignored. +.PP +Some difficulties arise only when +dubious coding practices are used. +It is exceedingly unwise to write programs +that depend +on any of these properties. +.PP +The order of evaluation of function arguments +is not specified by the language. +The order in which side effects take place +is also unspecified. +.PP +Since character constants are really objects of type +\fBint\fR, +multicharacter character constants may be permitted. +The specific implementation +is very machine dependent +because the order in which characters +are assigned to a word +varies from one machine to another. +.PP +Fields are assigned to words and characters to integers right to left +on some machines +and left to right on other machines. +These differences are invisible to isolated programs +that do not indulge in type punning (e.g., +by converting an +.B +int +.R +pointer to a +.B +char +.R +pointer and inspecting the pointed-to storage) +but must be accounted for when conforming to externally-imposed +storage layouts. +.nr Hu 1 +.NH 1 +Syntax Summary +.PP +This summary of C syntax is intended more for aiding comprehension +than as an exact statement of the language. +.nr Hu 1 +.ne 18 +.NH 2 +Expressions +.PP +The basic expressions are: +.tr ~~ +.DS + \fIexpression: + primary + \(** expression\fR + &\fIlvalue + \(mi expression + ! expression + \s+2~\s0 expression + \(pl\(pl lvalue + \(mi\(milvalue + lvalue \(pl\(pl + lvalue \(mi\(mi + \fBsizeof\fI expression + \fBsizeof (\fItype-name\fB)\fI + ( type-name ) expression + expression binop expression + expression ? expression : expression + lvalue asgnop expression + expression , expression +.DE +.DS + \fIprimary: + identifier + constant + string + ( expression ) + primary ( expression-list\v'0.5'\s-2opt\s0\v'-0.5' ) + primary [ expression ] + primary . identifier + primary \(mi identifier +.DE +.DS + \fIlvalue: + identifier + primary [ expression ] + lvalue . identifier + primary \(mi identifier + \(** expression + ( lvalue )\fR +.DE +.PP +.PP +The primary-expression operators +.DS + () [] . \(mi +.tr ~~ +.DE +.LP +have highest priority and group left to right. +The unary operators +.DS + \(** & \(mi ! \s+2~\s0 \(pl\(pl \(mi\(mi \fBsizeof\fI ( type-name \fR) +.DE +.LP +have priority below the primary operators +but higher than any binary operator +and group right to left. +Binary operators +group left to right; they have priority +decreasing +as indicated below. +.DS + \fIbinop:\fR + \(** / % + \(pl \(mi + >> << + < > <= >= + == != + & + ^ + | + && + || +.DE +The conditional operator groups right to left. +.PP +Assignment operators all have the same +priority and all group right to left. +.DS + \fIasgnop:\fR + = \(pl= \(mi= \(**= /= %= >>= <<= &= ^= |= +.DE +.PP +The comma operator has the lowest priority and groups left to right. +.nr Hu 1 +.NH 2 +Declarations +.PP +.DS + \fIdeclaration: + decl-specifiers init-declarator-list\v'0.5'\s-2opt\s0\v'-0.5' ; +.DE +.DS + \fIdecl-specifiers: + type-specifier decl-specifiers\v'0.5'\s-2opt\s0\v'-0.5' + sc-specifier decl-specifiers\v'0.5'\s-2opt\s0\v'-0.5' +.DE +.DS + \fIsc-specifier:\fB + auto + static + extern + register + typedef +.DE +.DS + \fItype-specifier: + struct-or-union-specifier + typedef-name + enum-specifier + basic-type-specifier: + basic-type + basic-type basic-type-specifiers + basic-type:\fB + char + short + int + long + unsigned + float + double + void\fR +.DE +.DS +\fIenum-specifier:\fB + enum\fI { enum-list }\fB + enum \fIidentifier { enum-list }\fB + enum \fIidentifier +.DE +.DS + \fIenum-list: + enumerator + enum-list , enumerator +.DE +.DS + \fIenumerator: + identifier + identifier = constant-expression +.DE +.DS + \fIinit-declarator-list: + init-declarator + init-declarator , init-declarator-list +.DE +.DS + \fIinit-declarator: + declarator initializer\v'0.5'\s-2opt\s0\v'-0.5' +.DE +.DS + \fIdeclarator: + identifier + ( declarator ) + \(** declarator + declarator () + declarator [ constant-expression\v'0.5'\s-2opt\s0\v'-0.5' ] +.DE +.DS + \fIstruct-or-union-specifier:\fB + struct\fI { struct-decl-list }\fB + struct \fIidentifier { struct-decl-list }\fB + struct \fIidentifier\fB + union { \fIstruct-decl-list }\fB + union \fIidentifier { struct-decl-list }\fB + union \fIidentifier +.DE +.DS + \fIstruct-decl-list: + struct-declaration + struct-declaration struct-decl-list +.DE +.DS + \fIstruct-declaration: + type-specifier struct-declarator-list ; +.DE +.DS + \fIstruct-declarator-list: + struct-declarator + struct-declarator , struct-declarator-list +.DE +.DS + \fIstruct-declarator: + declarator + declarator : constant-expression + : constant-expression +.DE +.DS + \fIinitializer: + = expression + = { initializer-list } + = { initializer-list , } +.DE +.DS + \fIinitializer-list: + expression + initializer-list , initializer-list + { initializer-list } + { initializer-list , } +.DE +.DS + \fItype-name: + type-specifier abstract-declarator +.DE +.DS + \fIabstract-declarator: + empty + ( abstract-declarator ) + \(** abstract-declarator + abstract-declarator () + abstract-declarator [ constant-expression\v'0.5'\s-2opt\s0\v'-0.5' ] +.DE +.DS + \fItypedef-name: + identifier +.nr Hu 1 +.DE +.NH 2 +Statements +.PP +.DS + \fIcompound-statement: + { declaration-list\v'0.5'\s-2opt\s0\v'-0.5' statement-list\v'0.5'\s-2opt\s0\v'-0.5' } +.DE +.DS + \fIdeclaration-list: + declaration + declaration declaration-list +.DE +.DS + \fIstatement-list: + statement + statement statement-list +.DE +.DS + \fIstatement: + compound-statement + expression ; + \fBif\fI ( expression ) statement + \fBif\fI ( expression ) statement \fBelse\fI statement + \fBwhile\fI ( expression ) statement + \fBdo\fI statement \fBwhile\fI ( expression ) ; + \fBfor\fI (exp\v'0.3'\s-2opt\s0\v'-0.3'\fB;\fIexp\v'0.3'\s-2opt\s0\v'-0.3'\fB;\fIexp\v'0.3'\s-2opt\s0\v'-0.3'\fI) statement + \fBswitch\fI ( expression ) statement + \fBcase\fI constant-expression : statement + \fBdefault\fI : statement + \fBbreak ; + continue ; + return ; + return\fI expression ; + \fBgoto\fI identifier ; + identifier : statement + ;\fR +.nr Hu 1 +.DE +.NH 2 +External definitions +.PP +.DS + \fIprogram: + external-definition + external-definition program +.DE +.DS + \fIexternal-definition: + function-definition + data-definition +.DE +.DS + \fIfunction-definition: + decl-specifier\v'0.5'\s-2opt\s0\v'-0.5' function-declarator function-body +.DE +.DS + \fIfunction-declarator: + declarator ( parameter-list\v'0.5'\s-2opt\s0\v'-0.5' ) +.DE +.DS + \fIparameter-list: + identifier + identifier , parameter-list +.DE +.DS + \fIfunction-body: + declaration-list\v'0.5'\s-2opt\s0\v'-0.5' compound-statement +.DE +.DS + \fIdata-definition: + \fBextern\fI declaration\fB ; + \fBstatic\fI declaration\fB ; +.DE +.NH +Preprocessor +.DS + \fB#define\fI identifier token-string\v'0.3'\s-2opt\s0\v'-0.3'\fB + \fB#define\fI identifier\fB(\fIidentifier\fB,...)\fItoken-string\v'0.5'\s-2opt\s0\v'-0.5'\fB + \fB#undef\fI identifier\fB + \fB#include "\fIfilename\|\fB" + #include <\fIfilename\|\fB> + \fB#if\fI restricted-constant-expression\fB + \fB#ifdef\fI identifier\fB + \fB#ifndef\fI identifier\fB + \fB#else + \fB#endif + \fB#line\fI constant \fB"\fIfilename\|\fB" +.sp 5 +.DE +.TC 2 1 3 0 diff --git a/doc/ps1/01.Clang/Clib.ms b/doc/ps1/01.Clang/Clib.ms new file mode 100644 index 00000000..5fe71278 --- /dev/null +++ b/doc/ps1/01.Clang/Clib.ms @@ -0,0 +1,1162 @@ +.\" @(#)Clib.ms 6.1 (Berkeley) 5/14/86 +.\" +.so /k3/unx/MACROS/cmac1 +.CH 3 "C LIBRARIES" +.H 1 "C LIBRARIES" +.H 2 "GENERAL" +.P +This chapter and Chapter 4 describe the libraries that +are supported on the UNIX operating system. +A library is a collection of related functions and/or declarations +that simplify programming effort +by linking only what is needed, +allowing use of locally produced functions, etc. +All of the functions described are also described in +Part 3 of the +.I "UNIX System Programmer Reference Manual" . +Most of the declarations described are in Part 5 of the +.I "UNIX System Programmer Reference Manual" . +The three main libraries on the UNIX system are: +.tr ~ +.VL 20 +.LI ~\fBC~library\fR +This is the basic library for C language programs. +The C library is composed of functions and declarations used for file access, +string testing and manipulation, character testing and manipulation, memory allocation, and other functions. +This library is described later in this chapter. +.tr ~ +.LE +.VL 20 +.LI ~\fBObject~file\fR +This library provides functions for the access and manipulation of +object files. +This library is described in Chapter 4. +.tr ~ +.LE +.VL 20 +.LI ~\fBMath~library\fR +This library provides exponential, bessel functions, logarithmic, +hyperbolic, and trigonometric functions. +This library is described in Chapter 4. +.LE +.P +Some libraries consist of two portions - functions and declarations. +In some cases, the user must request that the functions (and/or declarations) of a specific library be included +in a program being compiled. +In other cases, the functions (and/or declarations) are included automatically. +.H 3 "Including Functions" +.br +.P +When a program is being compiled, the compiler will +automatically search the C language library +to locate and include functions that are used in the program. +This is the case only for the C library and no other library. +In order for the compiler to locate and include functions from other libraries, +the user must specify these libraries on the command line for the compiler. +For example, when using functions of the math library, the user must request that the +math library be searched by including the argument \fB-lm\fR on the command line, such as: +.DS I +cc file.c -lm +.DE +The argument \fB-lm\fR must come after all files that +reference functions in the math library in order for +the link editor to know which functions to include in +the a.out file. +.P 0 +This method should be used for all functions that are not part of the C language library. +.H 3 "Including Declarations" +.br +.P +Some functions require a set of declarations in order to operate properly. +A set of declarations is stored in a file under the \fI/usr/include\fR +directory. +These files are referred to as \fIheader files\fR. +In order to include a certain header file, the user must specify this request within the C language program. +The request is in the form: +.DS I +#include +.DE +.P 0 +where \fIfile.h\fR is the name of the file. +Since the header files define the type of the functions and +various preprocessor constants, they must be included +before invoking the functions they declare. +.P +The remainder of this chapter describes the functions and +header files of the C Library. +The description of the library begins with the actions required by the user to include the functions +and/or header files in a program being compiled (if any). +Following the description of the actions required is information +in three-column format of the form: +.DS L +\fBfunction\fR\^ \fBreference\fR\^(N) Brief description. +.SP +.DE +.P 0 +The functions are grouped by type while the +reference refers to section `N' in the +.I "UNIX System Programmer Reference Manual" . +Following this, are descriptions of the header files associated with these +functions (if any). +.H 2 "THE C LIBRARY" +.P +The C library consists of several types of functions. +All the functions of the C library are loaded automatically by the compiler. +Various declarations must sometimes be included by the user as required. +The functions of the C library are divided into the following types: +.BL 6 1 +.LI +Input/output control +.LI +String manipulation +.LI +Character manipulation +.LI +Time functions +.LI +Miscellaneous functions. +.LE +.H 3 "Input/Output Control" +.br +.P +These functions of the C library +are automatically included as needed +during the compiling of +a C language program. +No command line request is needed. +.P +The +header file required by the input/output functions should be included in the +program being compiled. +This is accomplished by including the line: +.DS I +#include \fR +.DE +.P 0 +near the beginning of each file that references +an input or output function. +.P +The input/output functions are grouped into the following +categories: +.BL 6 1 +.LI +File access +.LI +File status +.LI +Input +.LI +Output +.LI +Miscellaneous. +.LE +.H 3 "File Access Functions" +.br +.P 0 +.TS +expand; +lll +lll. +.if n .ft B +.if t .ft BI +.SP 2 +FUNCTION REFERENCE BRIEF DESCRIPTION +.ft R +.SP +\fBfclose\fR\^ \fBfclose\fR\^(3S) Close an open stream. +.SP +\fBfdopen\fR\^ \fBfopen\fR\^(3S) Associate stream with + an \fBopen\fR(2) ed file. +.SP +\fBfileno\fR\^ \fBferror\fR\^(3S) File descriptor associated + with an open stream. +.SP +\fBfopen\fR\^ \fBfopen\fR\^(3S) Open a file with + specified permissions. + \fBFopen\fR returns a pointer + to a stream which is + used in subsequent + references to the file. +.SP +\fBfreopen\fR\^ \fBfopen\fR\^(3S) Substitute named file + in place of open + stream. +.SP +\fBfseek\fR\^ \fBfseek\fR\^(3S) Reposition the file + pointer. +.SP +\fBpclose\fR\^ \fBpopen\fR\^(3S) Close a stream opened + by \fBpopen\fR. +.SP +\fBpopen\fR\^ \fBpopen\fR\^(3S) Create pipe as a stream + between calling process + and command. +.SP +\fBrewind\fR\^ \fBfseek\fR\^(3S) Reposition file + pointer at beginning + of file. +.SP +\fBsetbuf\fR\^ \fBsetbuf\fR\^(3S) Assign buffering to + stream. +.SP +\fBvsetbuf setbuf\fR(3S) Similar to \fBsetbuf\fR, but + allowing finer control. +.TE +.H 3 "File Status Functions" +.br +.P 0 +.TS +expand; +lll +lll. +.if n .ft B +.if t .ft BI +.SP 2 +FUNCTION REFERENCE BRIEF DESCRIPTION +.ft R +.SP +\fBclearerr\fR\^ \fBferror\fR\^(3S) Reset error condition on + stream. +.SP +\fBfeof\fB \fBferror\fR(3S) Test for ``end of file'' + on stream. +.SP +\fBferror\fR\^ \fBferror\fR\^(3S) Test for error condition + on stream. +.SP +\fBftell\fR\^ \fBfseek\fR\^(3S) Return current position + in the file. +.TE +.H 3 "Input Functions" +.br +.P 0 +.TS +expand; +lll +lll. +.if n .ft B +.if t .ft BI +.SP 2 +FUNCTION REFERENCE BRIEF DESCRIPTION +.ft R +.SP +\fBfgetc\fR\^ \fBgetc\fR\^(3S) True function for \fBgetc\fR\^ + (3S). +.SP +\fBfgets\fR\^ \fBgets\fR\^(3S) Read string from stream. +.SP +\fBfread\fR\^ \fBfread\fR\^(3S) General buffered read + from stream. +.SP +\fBfscanf\fR\^ \fBscanf\fR\^(3S) Formatted read from + stream. +.SP +\fBgetc\fR\^ \fBgetc\fR\^(3S) Read character from + stream. +.SP +\fBgetchar\fR\^ \fBgetc\fR\^(3S) Read character from + standard input. +.SP +\fBgets\fR\^ \fBgets\fR\^(3S) Read string from standard input. +.SP +\fBgetw\fR\^ \fBgetc\fR\^(3S) Read word from stream. +.SP +\fBscanf\fR\^ \fBscanf\fR\^(3S) Read using format from + standard input. +.SP +\fBsscanf\fR\^ \fBscanf\fR\^(3S) Formatted from + string. +.SP +\fBungetc\fR\^ \fBungetc\fR\^(3S) Put back one character on + stream. +.TE +.H 3 "Output Functions" +.br +.P 0 +.TS +expand; +lll +lll. +.if n .ft B +.if t .ft BI +.SP 2 +FUNCTION REFERENCE BRIEF DESCRIPTION +.ft R +.SP +\fBfflush\fR\^ \fBfclose\fR\^(3S) Write all currently buffered + characters from stream. +.SP +\fBfprintf\fR\^ \fBprintf\fR\^(3S) Formatted write to + stream. +.SP +\fBfputc\fR\^ \fBputc\fR\^(3S) True function for \fBputc\fR\^ + (3S). +.SP +\fBfputs\fR\^ \fBputs\fR\^(3S) Write string to stream. +.SP +\fBfwrite\fR\^ \fBfread\fR\^(3S) General buffered write to + stream. +.SP +\fBprintf\fR\^ \fBprintf\fR\^(3S) Print using format to + standard output. +.SP +\fBputc\fR\^ \fBputc\fR\^(3S) Write character to + standard output. +.SP +\fBputchar\fR\^ \fBputc\fR\^(3S) Write character to + standard output. +.SP +\fBputs\fR\^ \fBputs\fR\^(3S) Write string to + standard output. +.SP +\fBputw\fR\^ \fBputc\fR\^(3S) Write word to stream. +.SP +\fBsprintf\fR\^ \fBprintf\fR\^(3S) Formatted write to + string. +.SP +\fBvfprintf vprint\fR(3C) Print using format to + stream by \fBvarargs\fR(5) + argument list. +.SP +\fBvprintf vprint\fR(3C) Print using format to + standard output by + \fBvarargs\fR(5) argument list. +.SP +\fBvsprintf vprintf\fR(3C) Print using format to + stream string by + \fBvarargs\fR(5) argument list. +.TE +.H 3 "Miscellaneous Functions" +.br +.P 0 +.TS +expand; +lll +lll. +.if n .ft B +.if t .ft BI +.SP 2 +FUNCTION REFERENCE BRIEF DESCRIPTION +.ft R +.SP +\fBctermid\fR\^ \fBctermid\fR\^(3S) Return file name for + controlling terminal. +.SP +\fBcuserid\fR\^ \fBcuserid\fR\^(3S) Return login name for + owner of current process. +.SP +\fBsystem\fR\^ \fBsystem\fR\^(3S) Execute shell command. +.SP +\fBtempnam\fR\^ \fBtempnam\fR\^(3S) Create temporary file + name using directory and + prefix. +.SP +\fBtmpnam\fR\^ \fBtmpnam\fR\^(3S) Create temporary file + name. +.SP +\fBtmpfile\fR\^ \fBtmpfile\fR\^(3S) Create temporary file. +.TE +.H 3 "String Manipulation Functions" +.br +.P +These functions are +used to locate characters within a string, copy, +concatenate, and compare strings. +These functions are automatically located and loaded during the compiling of +a C language program. +No command line request is needed +since these functions are part of the C library. +The string manipulation functions are declared in a header file that +may be included in the program being compiled. +This is accomplished by including the line: +.DS I +#include +.DE +near the beginning of each file that uses one +of these functions. +.sp +.P 0 +.TS +expand; +lll +lll. +.if n .ft B +.if t .ft BI +.SP 2 +FUNCTION REFERENCE BRIEF DESCRIPTION +.ft R +.SP +\fBstrcat\fR\^ \fBstring\fR\^(3C) Concatenate two strings. +.SP +\fBstrchr\fR\^ \fBstring\fR\^(3C) Search string for + character. +.SP +\fBstrcmp\fR\^ \fBstring\fR\^(3C) Compares two strings. +.SP +\fBstrcpy\fR\^ \fBstring\fR\^(3C) Copy string. +.SP +\fBstrcspn\fR\^ \fBstring\fR\^(3C) Length of initial string + not containing set of + characters. +.SP +\fBstrlen\fR\^ \fBstring\fR\^(3C) Length of string. +.SP +\fBstrncat\fR\^ \fBstring\fR\^(3C) Concatenate two strings + with a maximum length. +.SP +\fBstrncmp\fR\^ \fBstring\fR\^(3C) Compares two strings + with a maximum length. +.SP +\fBstrncpy\fR\^ \fBstring\fR\^(3C) Copy string over string + with a maximum length. +.SP +\fBstrpbrk\fR\^ \fBstring\fR\^(3C) Search string for any + set of characters. +.SP +\fBstrrchr\fR\^ \fBstring\fR\^(3C) Search string backwards + for character. +.SP +\fBstrspn\fR\^ \fBstring\fR\^(3C) Length of initial string + containing set of + characters. +.SP +\fBstrtok\fR\^ \fBstring\fR\^(3C) Search string for token + separated by any of a + set of characters. +.TE +.H 3 "Character Manipulation" +.br +.P +The following functions and declarations are used for +testing and translating ASCII characters. +These functions are located and loaded automatically during the compiling of +a C language program. +No command line request is needed +since these functions are part of the C library. +.P +The declarations associated with these functions should be included in the +program being compiled. +This is accomplished by including the line: +.DS I +#include +.DE +.P 0 +near the beginning of the file being compiled. +.H 3 "Character Testing Functions" +.br +.P +These functions can be used to identify characters as uppercase or +lowercase letters, digits, punctuation, etc. +.P 0 +.TS +expand; +lll +lll. +.if n .ft B +.if t .ft BI +.SP 2 +FUNCTION REFERENCE BRIEF DESCRIPTION +.ft R +.SP +\fBisalnum\fR\^ \fBctype\fR\^(3C) Is character + alphanumeric? +.SP +\fBisalpha\fR\^ \fBctype\fR\^(3C) Is character alphabetic? +.SP +\fBisascii\fR\^ \fBctype\fR\^(3C) Is integer ASCII + character? +.SP +\fBiscntrl\fR\^ \fBctype\fR\^(3C) Is character a control + character? +.SP +\fBisdigit\fR\^ \fBctype\fR\^(3C) Is character a digit? +.SP +\fBisgraph\fR\^ \fBctype\fR\^(3C) Is character a printable + character? +.SP +\fBislower\fR\^ \fBctype\fR\^(3C) Is character a + lowercase letter? +.SP +\fBisprint\fR\^ \fBctype\fR\^(3C) Is character a printing + character including + space? +.SP +\fBispunct\fR\^ \fBctype\fR\^(3C) Is character a + punctuation character? +.SP +\fBisspace\fR\^ \fBctype\fR\^(3C) Is character a white + space character? +.SP +\fBisupper\fR\^ \fBctype\fR\^(3C) Is character an uppercase + letter? +.SP +\fBisxdigit\fR\^ \fBctype\fR\^(3C) Is character a hex digit? +.TE +.H 3 "Character Translation Functions" +.br +.P +These functions provide +translation of uppercase to lowercase, lowercase to uppercase, +and integer to ASCII. +.P 0 +.TS +expand; +lll +lll. +.if n .ft B +.if t .ft BI +.SP 2 +FUNCTION REFERENCE BRIEF DESCRIPTION +.ft R +.SP +\fBtoascii\fR\^ \fBconv\fR\^(3C) Convert integer to + ASCII character. +.SP +\fBtolower\fR\^ \fBconv\fR\^(3C) Convert character to + lowercase. +.SP +\fBtoupper\fR\^ \fBconv\fR\^(3C) Convert character to + uppercase. +.TE +.H 3 "Time Functions" +.br +.P +These functions are used for +accessing +and reformatting the systems idea of the current date and time. +These functions are located and loaded automatically during the compiling of +a C language program. +No command line request is needed +since these functions are part of the C library. +.P +The header file associated with these functions should be included in the +program being compiled. +This is accomplished by including the line: +.DS I +.ne 4 +#include +.DE +.P 0 +near the beginning of any file using the time functions. +.P +These functions (except \fBtzset\fR) convert a time such as returned +by \fBtime\fR(2). +.ne 6 +.P 0 +.TS +expand; +lll +lll. +.if n .ft B +.if t .ft BI +.SP 2 +.ne 4 +FUNCTION REFERENCE BRIEF DESCRIPTION +.ft R +.SP +.ne 4 +\fBasctime\fR\^ \fBctime\fR\^(3C) Return string + representation + of date and time. +.SP +.ne 4 +\fBctime\fR\^ \fBctime\fR\^(3C) Return string + representation of + date and time, given + integer form. +.SP +.ne 4 +\fBgmtime\fR\^ \fBctime\fR\^(3C) Return Greenwich + Mean Time. +.SP +.ne 4 +\fBlocaltime\fR\^ \fBctime\fR\^(3C) Return local time. +.SP +.ne 4 +\fBtzset\fR\^ \fBctime\fR\^(3C) Set time zone field + from environment + variable. +.TE +.P 0 +.H 3 "Miscellaneous Functions" +.br +.P +These functions support a wide variety of operations. +Some of these are numerical conversion, password file and group file access, +memory allocation, random number generation, and table management. +These functions are automatically located and included in a program being compiled. +No command line request is needed since these functions are part of the C library. +.P +Some of these functions require declarations to be included. +These are described following the descriptions of the functions. +.H 3 "Numerical Conversion" +.br +.P +The following functions perform numerical conversion. +.P 0 +.TS +expand; +lll +lll. +.if n .ft B +.if t .ft BI +.SP 2 +.ne 4 +FUNCTION REFERENCE BRIEF DESCRIPTION +.ft R +.SP +.ne 4 +\fBa64l\fR\^ \fBa64l\fR\^(3C) Convert string to + base 64 ASCII. +.SP +.ne 4 +\fBatof\fR\^ \fBatof\fR\^(3C) Convert string to + floating. +.SP +.ne 4 +\fBatoi\fR\^ \fBatof\fR\^(3C) Convert string to + integer. +.SP +.ne 4 +\fBatol\fR\^ \fBatof\fR\^(3C) Convert string to long. +.SP +.ne 4 +\fBfrexp\fR\^ \fBfrexp\fR\^(3C) Split floating into + mantissa and exponent. +.SP +.ne 4 +\fBl3tol\fR\^ \fBl3tol\fR\^(3C) Convert 3-byte integer + to long. +.SP +.ne 4 +\fBltol3\fR\^ \fBl3tol\fR\^(3C) Convert long to 3-byte + integer. +.SP +.ne 4 +\fBldexp\fR\^ \fBfrexp\fR\^(3C) Combine mantissa and + exponent. +.SP +.ne 4 +\fBl64a\fR\^ \fBa64l\fR\^(3C) Convert base 64 ASCII + to string. +.SP +.ne 4 +\fBmodf\fR\^ \fBfrexp\fR\^(3C) Split mantissa into + integer and fraction. +.TE +.H 3 "DES Algorithm Access" +.br +.P +The following functions allow access to the Data Encryption Standard (DES) algorithm +used on the UNIX operating system. +The DES algorithm is implemented with variations to frustrate use of +hardware implementations of the DES for key search. +.P 0 +.TS +expand; +lll +lll. +.if n .ft B +.if t .ft BI +.SP 2 +.ne 4 +FUNCTION REFERENCE BRIEF DESCRIPTION +.ft R +.SP +.ne 4 +\fBcrypt\fR\^ \fBcrypt\fR\^(3C) Encode string. +.SP +.ne 4 +\fBencrypt\fR\^ \fBcrypt\fR\^(3C) Encode/decode string of + 0s and 1s. +.SP +.ne 4 +\fBsetkey\fR\^ \fBcrypt\fR\^(3C) Initialize for subsequent + use of \fBencrypt\fR. +.TE +.H 3 "Group File Access" +.br +.P +The following functions are used to obtain entries from the group file. +Declarations for these functions must be included in the program being +compiled with the line: +.DS I +#include +.DE +.P 0 +.P 0 +.TS +expand; +lll +lll. +.if n .ft B +.if t .ft BI +.SP 2 +.ne 4 +FUNCTION REFERENCE BRIEF DESCRIPTION +.ft R +.SP +.ne 4 +\fBendgrent\fR\^ \fBgetgrent\fR\^(3C) Close group file being + processed. +.SP +.ne 4 +\fBgetgrent\fR\^ \fBgetgrent\fR\^(3C) Get next group file + entry. +.SP +.ne 4 +\fBgetgrgid\fR\^ \fBgetgrent\fR\^(3C) Return next group with + matching gid. +.SP +.ne 4 +\fBgetgrnam\fR\^ \fBgetgrent\fR\^(3C) Return next group with + matching name. +.SP +.ne 4 +\fBsetgrent\fR\^ \fBgetgrent\fR\^(3C) Rewind group file being + processed. +.SP +.ne 4 +\fBfgetgrent getgrent\fR(3C) Get next group file entry + from a specified file. +.TE +.H 3 "Password File Access" +.br +.P +These functions are used to search and access information stored in the +password file (/etc/passwd). +Some functions require declarations that can be included in the program +being compiled by adding the line: +.DS I +#include +.DE +.P 0 +.P 0 +.TS +expand; +lll +lll. +.if n .ft B +.if t .ft BI +.SP 2 +.ne 4 +FUNCTION REFERENCE BRIEF DESCRIPTION +.ft R +.SP +.ne 4 +\fBendpwent\fR\^ \fBgetpwent\fR\^(3C) Close password file + being processed. +.SP +.ne 4 +\fBgetpw\fR\^ \fBgetpw\fR\^(3C) Search password file + for uid. +.SP +.ne 4 +\fBgetpwent\fR\^ \fBgetpwent\fR\^(3C) Get next password file + entry. +.SP +.ne 4 +\fBgetpwnam\fR\^ \fBgetpwent\fR\^(3C) Return next entry with + matching name. +.SP +.ne 4 +\fBgetpwuid\fR\^ \fBgetpwent\fR\^(3C) Return next entry with + matching uid. +.SP +.ne 4 +\fBputpwent\fR\^ \fBputpwent\fR\^(3C) Write entry on stream. +.SP +.ne 4 +\fBsetpwent\fR\^ \fBgetpwent\fR\^(3C) Rewind password file + being accessed. +.SP +.ne 4 +.ne 3 +\fBfgetpwent getpwent\fR(3C) Get next password file + entry from a specified + file. +.TE +.H 3 "Parameter Access" +.br +.P +The following functions provide access to several different types of +paramenters. +None require any declarations. +.P 0 +.TS +expand; +lll +lll. +.if n .ft B +.if t .ft BI +.SP 2 +.ne 4 +FUNCTION REFERENCE BRIEF DESCRIPTION +.ft R +.SP +.ne 4 +\fBgetopt\fR\^ \fBgetopt\fR\^(3C) Get next option from + option list. +.SP +.ne 4 +\fBgetcwd\fR\^ \fBgetcwd\fR\^(3C) Return string + representation of + current working directory. +.SP +.ne 4 +\fBgetenv\fR\^ \fBgetenv\fR\^(3C) Return string value + associated with + environment variable. +.SP +.ne 4 +\fBgetpass\fR\^ \fBgetpass\fR\^(3C) Read string from terminal + without echoing. +.SP +.ne 4 +\fBputenv putenv\fR(3C) Change or add value + of an environment + variable. +.TE +.H 3 "Hash Table Management" +.br +.P +The following functions are used to manage hash search tables. +The header file associated with these functions should be included +in the program being compiled. +This is accomplished by including the line: +.DS I +#include +.DE +near the beginning of any file using the search functions. +.P 0 +.TS +expand; +lll +lll. +.if n .ft B +.if t .ft BI +.SP 2 +.ne 4 +FUNCTION REFERENCE BRIEF DESCRIPTION +.ft R +.SP +.ne 4 +\fBhcreate\fR\^ \fBhsearch\fR\^(3C) Create hash table. +.SP +.ne 4 +\fBhdestroy\fR\^ \fBhsearch\fR\^(3C) Destroy hash table. +.SP +.ne 4 +\fBhsearch\fR\^ \fBhsearch\fR\^(3C) Search hash table for + entry. +.TE +.H 3 "Binary Tree Management" +.br +.P +The following functions are used to manage a binary tree. +The header file associated with these functions should be included +in the program being compiled. +This is accomplished by including the line: +.DS I +#include +.DE +near the beginning of any file using the search functions. +.P 0 +.TS +expand; +lll +lll. +.if n .ft B +.if t .ft BI +.SP 2 +.ne 4 +FUNCTION REFERENCE BRIEF DESCRIPTION +.ft R +.SP +.ne 4 +\fBtdelete\fR\^ \fBtsearch\fR\^(3C) Deletes nodes from + binary tree. +.SP +.ne 4 +\fBtfind tsearch\fR(3C) Find element in + binary tree. +.SP +.ne 4 +\fBtsearch\fR\^ \fBtsearch\fR\^(3C) Look for and add + element to binary + tree. +.SP +.ne 4 +\fBtwalk\fR\^ \fBtsearch\fR\^(3C) Walk binary tree. +.TE +.H 3 "Table Management" +.br +.P +The following functions are used to manage a table. +Since none of these functions allocate storage, sufficient +memory must be allocated before using these functions. +The header file associated with these functions should be included +in the program being compiled. +This is accomplished by including the line: +.DS I +#include +.DE +near the beginning of any file using the search functions. +.P 0 +.TS +expand; +lll +lll. +.if n .ft B +.if t .ft BI +.SP 2 +.ne 4 +FUNCTION REFERENCE BRIEF DESCRIPTION +.ft R +.SP +.ne 4 +\fBbsearch\fR\^ \fBbsearch\fR\^(3C) Search table using + binary search. +.SP +.ne 4 +\fBlfind lsearch\fR(3C) Find element in + library tree. +.SP +.ne 4 +\fBlsearch\fR\^ \fBlsearch\fR\^(3C) Look for and add + element in binary + tree. +.SP +.ne 4 +\fBqsort\fR\^ \fBqsort\fR\^(3C) Sort table using + quick-sort algorithm. +.TE +.H 3 "Memory Allocation" +.br +.P +The following functions provide a means by which memory can be +dynamically allocated or freed. +.P 0 +.TS +expand; +lll +lll. +.if n .ft B +.if t .ft BI +.SP 2 +.ne 4 +FUNCTION REFERENCE BRIEF DESCRIPTION +.ft R +.SP +.ne 4 +\fBcalloc\fR\^ \fBmalloc\fR\^(3C) Allocate zeroed storage. +.SP +.ne 4 +\fBfree\fR\^ \fBmalloc\fR\^(3C) Free previously allocated + storage. +.SP +.ne 4 +\fBmalloc\fR\^ \fBmalloc\fR\^(3C) Allocate storage. +.SP +.ne 4 +\fBrealloc\fR\^ \fBmalloc\fR\^(3C) Change size of allocated + storage. +.TE +The following is another set of memory allocation functions +available. +.P 0 +.TS +expand; +lll +lll. +.if n .ft B +.if t .ft BI +.SP 2 +.ne 4 +FUNCTION REFERENCE BRIEF DESCRIPTION +.ft R +.SP +.ne 4 +\fBcalloc malloc\fR(3X) Allocate zeroed storage. +.SP +.ne 4 +\fBfree malloc\fR(3X) Free previously allocated + storage. +.SP +.ne 4 +\fBmalloc malloc\fR(3X) Allocate storage. +.SP +.ne 4 +\fBmallopt malloc\fR(3X) Control allocation + algorithm. +.SP +.ne 4 +\fBmallinfo malloc\fR(3X) Space usage. +.SP +.ne 4 +\fBrealoc malloc\fR(3X) Change size of + allocated storage. +.TE +.H 3 "Pseudorandom Number Generation" +.br +.P +The following functions are used to generate pseudorandom numbers. +The functions that end with \fB48\fR are a family of interfaces to +a pseudorandom number generator based upon the linear congruent +algorithm and 48-bit integer arithmetic. +The \fBrand\fR\^ and \fBsrand\fR\^ functions provide an interface to +a multiplicative congruential random number generator with period of +232. +.P 0 +.TS +expand; +lll +lll. +.if n .ft B +.if t .ft BI +.SP 2 +.ne 4 +FUNCTION REFERENCE BRIEF DESCRIPTION +.ft R +.SP +.ne 4 +\fBdrand48\fR\^ \fBdrand48\fR\^(3C) Random double over + the interval [0 to 1). +.SP +.ne 4 +\fBlcong48\fR\^ \fBdrand48\fR\^(3C) Set parameters for + \fBdrand48\fR\^, \fBlrand48\fR\^, + and \fBmrand48\fR. +.SP +.ne 4 +\fBlrand48\fR\^ \fBdrand48\fR\^(3C) Random long over the + interval [0 to 2\v'-0.3'31\v'0.3'). +.SP +.ne 4 +\fBmrand48\fR\^ \fBdrand48\fR\^(3C) Random long over the + interval [-2\v'-0.3'31\v'0.3' to 2\v'-0.3'31\v'0.3'). +.SP +.ne 4 +\fBrand\fR\^ \fBrand\fR\^(3C) Random integer over the + interval [0 to 32767). +.SP +.ne 4 +\fBseed48\fR\^ \fBdrand48\fR\^(3C) Seed the generator for + \fBdrand48\fR\^, \fBlrand48\fR\^, and + \fBmrand48\fR. +.SP +.ne 4 +\fBsrand\fR\^ \fBrand\fR\^(3C) Seed the generator + for \fBrand\fR. +.SP +.ne 4 +\fBsrand48\fR\^ \fBdrand48\fR\^(3C) Seed the generator for + \fBdrand48\fR\^, \fBlrand48\fR\^, and + \fBmrand48\fR using a long. +.SP +.ne 4 +.TE +.sp +.sp +.sp +.sp +.tr ~ +.sp +.H 3 "Signal Handling Functions" +.br +.P +The functions \fBgsignal\fR\^ and \fBssignal\fR\^ implement a software +facility similar to \fBsignal\fR(2) in the +.I "UNIX System Programmer Reference Manual" . +This facility enables users to indicate the disposition of error +conditions and allows users to handle signals for their own purposes. +The declarations associated with these functions can be included in the +program being complied by the line +.DS I +#include +.DE +.P 0 +These declarations define ASCII names for the 15 software signals. +.P 0 +.TS +expand; +lll +lll. +.SP 2 +.ne 4 +.if n .ft B +.if t .ft BI +FUNCTION REFERENCE BRIEF DESCRIPTION +.ft R +.SP +.ne 4 +\fBgsignal\fR\^ \fBssignal\fR\^(3C) Send a software signal. +.SP +.ne 4 +\fBssignal\fR\^ \fBssignal\fR\^(3C) Arrange for handling + of software signals. +.TE +.H 3 "Miscellaneous" +.br +.P +The following functions do not fall into any previously described +category. +.P 0 +.TS +expand; +lll +lll. +.SP 2 +.ne 4 +.if n .ft B +.if t .ft BI +FUNCTION REFERENCE BRIEF DESCRIPTION +.ft R +.SP +.ne 4 +\fBabort\fR\^ \fBabort\fR\^(3C) Cause an IOT signal + to be sent to the + process. +.SP +.ne 4 +\fBabs\fR\^ \fBabs\fR\^(3C) Return the absolute + integer value. +.SP +.ne 4 +\fBecvt\fR\^ \fBecvt\fR\^(3C) Convert double to + string. +.SP +.ne 4 +\fBfcvt\fR\^ \fBecvt\fR\^(3C) Convert double to + string using Fortran + Format. +.SP +.ne 4 +\fBgcvt\fR\^ \fBecvt\fR\^(3C) Convert double to + string using Fortran + F or E format. +.SP +.ne 4 +\fBisatty\fR\^ \fBttyname\fR\^(3C) Test whether integer + file descriptor is + associated with a + terminal. +.SP +.ne 4 +\fBmktemp\fR\^ \fBmktemp\fR\^(3C) Create file name + using template. +.SP +.ne 4 +\fBmonitor\fR\^ \fBmonitor\fR\^(3C) Cause process to record + a histogram of program + counter location. +.SP +.ne 4 +\fBswab\fR\^ \fBswab\fR\^(3C) Swap and copy bytes. +.SP +.ne 4 +\fBttyname\fR\^ \fBttyname\fR\^(3C) Return pathname of + terminal associated with + integer file descriptor. +.TE +.TC 2 1 3 0 diff --git a/doc/ps1/01.Clang/Makefile b/doc/ps1/01.Clang/Makefile new file mode 100644 index 00000000..becdb9cc --- /dev/null +++ b/doc/ps1/01.Clang/Makefile @@ -0,0 +1,27 @@ +# +# Copyright (c) 1986 Regents of the University of California. +# All rights reserved. The Berkeley software License Agreement +# specifies the terms and conditions for redistribution. +# +# @(#)Makefile 6.1 (Berkeley) 5/26/86 +# +SRCS= Clang.ms +MACROS= -msU +PRINTER=Pdp +EQN= deqn -${PRINTER} +TBL= dtbl -${PRINTER} +TROFF= ditroff -${PRINTER} + +paper: paper.${PRINTER} + lpr -${PRINTER} -n paper.${PRINTER} + +paper.${PRINTER}: ${SRCS} + ${TBL} ${SRCS} | ${TROFF} ${MACROS} -t > paper.${PRINTER} + +clean: + rm -f paper.[PT]* *.spell errs Errs make.out + +spell: ${SRCS} + @for i in ${SRCS}; do \ + echo $$i; spell $$i | sort | comm -23 - spell.ok > $$i.spell; \ + done diff --git a/doc/ps1/01.Clang/cmac1 b/doc/ps1/01.Clang/cmac1 new file mode 100644 index 00000000..0dfc0981 --- /dev/null +++ b/doc/ps1/01.Clang/cmac1 @@ -0,0 +1,882 @@ +.\" @(#)cmac1 6.1 (Berkeley) 5/14/86 +.\" +.if t .nr L 9i +.if t .nr W 4.5i \"changes page width from default 6i to 4.5i +.if t .nr O .75i +.nr N 3 \" Section page numbering +.so /usr/lib/tmac/tmac.m \"Calls mm macros instead of calling on command line +.rm AT AV CS FC MT PM SG NS NE +.rr A Au C E Ex Fg Tb +.)K +.dsUG \fIUNIX System User Reference Manual\fR +.dsUA \fIUNIX System Administrator Reference Manual\fR +.dsUP \fIUNIX System Programmer Reference Manual\fR +.dsU UNIX operating system +.dsV UNIX System +.dsW UNIX system +.if n .ds EM -- +.di XX +.sp 1P +.di +.nr R. \n(dn +.rm XX +.nr iN 0 +.nr sL 0 +.de)T +.if t .ps 8 +.if t .if \\n(sL .ps 12 +.ft B +.nr;0 \w\\$5 +.if\w\\$6 .nr ;0 +\w'-'u+\w\\$6u +.if\\n(;0-\\n(:a .nr :a \\n(;0 +.)I \\$1 \\n(H1 \\n(H2 \\n(H3 \\n(H4 \\n(H5 \\n(H6 \\n(H7 +.if\w\\$3-\\*(}3 .nr H\\$1 \w\\$3 +.. +.de)U \" Macro that outputs each line of TOC--modified for ps, font, spacing +.if t .ps 8 +.ft B +.if t \{\ +.if!0\\$1-\\n(:b .sp\\n(:cu*.3v \} +.if n \{\ +.if!0\\$1-\\n(:b .sp\\n(:cu*1v \} +.)I \\$1 \\*(}0 +.nr;0 \\*(}3 +.)I \\$1 \\*(Ci +.nr;1 \\*(}3 +.)I \\$1 \\*(}2 +.nr;2 \\*(}3 +.ds}3 \\$5 +.if\\n(.$-5 .ds }3 \\$6\(hy\\$5 +.nr:e \\n(:au-\w\\*(}3u+2n +.ds}3 \h\\n(:eu\\*(}3 +.ds}y +.nr;0 -\w\\$3 +.if\\n(;0 .as }y \h\\n(;0u +.if2-0\\$1 .as }y "\\$3 +.if0\\$1-1 .ds }y "\\$3\\*(}y +.if!0\\$2 .ds }y +.ll\\nWu-\\n(:au-3n +.in\\n(;2u +.if!0\\$2 .in\\n(;1u +.in\\n(;1u \" Used to be ti\\n(;1 +.fi +.di>A +.if!0\\$1-\\n(:d .if !\\n(:f \\*(}y\\$4\\\\f(BB\\a\\fB\\*(}3 +.if!0\\$1-\\n(:d .if \\n(:f \\*(}y\\$4\\t\\fB\\*(}3 +.if0\\$1-\\n(:d \\*(}y\\$4\\fB\\*(}3 +.br +\!.br +.di +.br +.ll\\nWu +.ne\\n(dnu+.5p-1v +.ta\\nWu-\\n(:au-2n +.nf +.in0 +.na +.>A +.. +.de uD +.if t .sp .5 +.if n .sp +.ft B +.S 12 +.in +1.5i +.ti -1.5i +.di oL +.fi +.na +\\$7\h'|1.5i'\\$4 +.br +\!.br +.di +.br +.in 0 +.ne \\n(dnu+1v +.nf +.oL +.fi +.ad b +.ft R +.S 10 +.. +.de)L \" Macro that begins each list--modified for spacing +.if\\n(:g>5 .)D "LB:too many nested lists" +.if\\n(:g .)A +.if!\\n+(:g-1 .ds ]b \\n(.i +.nr:b \\n(.iu+0\\$1u +.nr:c \\n(.iu+0\\$2u +.nr:d 0\\$3 +.nr:e 0\\$4 +.nr:f 0\\$6 +.if!\w\\$6 .nr :f 1 +.ds]g \\$5 +.if!\w\\$5 \{.ds ]g \& +.if\\n(:e .ds ]g 1 +'br\} +.nr:a 0 1 +.if0\\$4 .af :a \\$5 1 +.if t .if(\\n(:g<=\\n(Ls) .SP 1.5 +.if n .if(\\n(:g<=\\n(Ls) .SP 2 +.fi +.in\\n(:bu +.ti\\n(:bu +.. +.deLI \" Modified for spacing +.if!\\n(:g .)D "LI:no lists active" +.if(\\n(:g<=\\n(Ls)&(\\n(:f>0) .SP 1 +.in\\n(:bu +.if(\\n(:f)&(\\n(:D<1) .ne1v+.5p +.ds}0 \\*(]g +.if\\n(:e .ds }0 \\n+(:a. +.if\\n(:e-1 .ds }0 \\n(:a) +.if\\n(:e-2 .ds }0 (\\n(:a) +.if\\n(:e-3 .ds }0 [\\n(:a] +.if\\n(:e-4 .ds }0 <\\n(:a> +.if\\n(:e-5 .ds }0 {\\n(:a} +.if\\n(.$-1 .ds }0 \\$1\ \\*(}0 +.if\\n(.$=1 .ds }0 \\$1 +.nr;0 \w\\*(}0 +.nr;1 \\n(:c +.if\\n(:d .nr ;1 \\n(:bu-\\n(:du-\\n(;0u +.if!\\n(;1 .nr ;1 0 +.nr;0 \\n(:bu-\\n(;1u-\\n(;0u +.ti\\n(;1u +.if!\\n(;0 .nr ;0 \w u +.if\w\\*(}0 \&\\*(}0\h\\n(;0u\&\c +.. +.deRP \"Modified to add section-page in toc & $3 to change Rp string +.if\\n(;R=2 .)D "RP: missing RF" +.if\\n(;R \{\ +.nr;R 0 +.if!(0\\$1) .nr :R 0 1 +.)R +.ie(0\\$2=2):(0\\$2=3) \{\ +.if\\n(;e \&\c +'ne8 +.sp1 \} +.el\{\ +.ie\\n(;e .SK +.el\{\ +\&\c +.bp +'br\} \} +.if \\n(.$=3 .ds Rp \\$3 +.ce1 +.if \\n(.$<3 .ul +\\*(Rp +.if\w\\*(Rp \{\ +.am>C +.)T 1 1 "" "\\*(Rp" \\nP \\*(cN +\\.. +'br\} +.if n .sp 2v +.if t .sp 1v +.nf +.>r +.br +.rm>r +.)R +.if(0\\$2=0):(0\\$2=2) .SK +'br\} +.. +.de)r \"Modified for spacing -- 1.5v instead of .5v in troff--2v in nroff +.if t \{\ +.if\\n(Ds .SP 1.5 \} +.if n \{\ +.if\\n(Ds .SP 2 \} +.if(\\n(:0>=\\n(.t)&((\\n(:0<(\\n(.p-\\n(;r-\\n(:m)):\ +(\\n(nl>(\\n(.p-\\n(;r-\\n(:o/2u+\\n(;r))) \{\ +.if\\n(;e \&\c +.ne\\n(.tu+1v +.if\\n(:I<2 .)r \} +.. +.de)t \"Modified for spacing--same as )r macro +.br +.nr!L \\n(!7 +.ls1 +.)r +.ti\\n(.iu +.nf +.if\\n(:t>1 .in -\\n(;iu +.rs +.nr;d 1 +.>0 +.)R +.nr;d 0 +.ie\\n(:I>1 \{\ +.if\\n(nl>\\n(:J .nr :I 0 \} +.el.nr :I 0 +.ls\\n(!L +.in\\n(;iu +.if!\\n(;q .nf +.if n .if\\n(Ds .SP 2 +.if t .if\\n(Ds .SP 1.5 +.nr:J \\n(nl +.. +.de FG +.if n \{\ +.ie \\$1>37 .nr s1 37 +.el .nr s1 \\$1 \} +.if t \{\ +.ie \\$1>39 .nr s1 39 +.el .nr s1 \\$1 \} +.nr fN +1 +.nr cK 0 +.if '\\$3'C' .nr cK 1 +.if '\\$3'CF' .nr cK 1 +.ie \\n(cK=1 \{\ +.nr sN +1 +.nr fN -1 \} +.el \{\ +.ds iD \\$3 +.nr sN 1 \} +.nr cK 0 +.if !'\\$3'C' .if !'\\$3'1' .if !'\\$3'CF' \{\ +.:L "\\$1" "\\$2" "\\*(iD-\\n(sN" "\\*(cN-\\n(fN" "\\$4" +.nr cK 1 \} +.if \\n(cK=0 .:L "\\$1" "\\$2" "" "\\*(cN-\\n(fN" "\\$4" +.if \\n(sL=0 \{\ +.nr cK 0 +.if \\$2>27 .nr cK 1 +.if '\\$3'1' .nr cK 2 +.if '\\$3'CF' .nr cK 2 +.ie \\n(cK=1 \{\ +.if \\n(.$=4 .DF +.if \\n(.$=5 .DS +.fi +.ft B +.ds fM Figure\ \\*(cN-\\n(fN.\ \ +.nr mW \w'\\*(fM' +.nr tW \w'\\$4' +.nr cK \\n(.l-\\n(mW +.ie \\n(tW>\\n(cK \{\ +'in +\\n(mWu +'ti -\\n(mWu \} +.el 'ce 1000 +.di fT +.sp 1 +\\*(fM\\$4 +.ft P +.br +.di +.nr fH \\n(dn +.ie \\n(.i 'in +.el 'ce 0 +\!.if n .ne 39v +\!.if t .ne 41v +\!.rs +.sp 18P +.ce 3 +\\*(iD-\\n(sN +\\$2W X \\$1H +TURN-PAGE +.nf +.fT +.if n .sp 18P-\\n(fHu +.if t .sp 21P-\\n(fHu +\!.SP 1 +.DE \} +.el .ie \\n(cK=0 \{\ +.if \\n(.$=4 .DF +.if \\n(.$=5 .DS +.fi +.ft B +.ds fM Figure\ \\*(cN-\\n(fN.\ \ +.nr mW \w'\\*(fM' +.nr tW \w'\\$4' +.nr cK \\n(.l-\\n(mW +.ie \\n(tW>\\n(cK \{\ +'in +\\n(mWu +'ti -\\n(mWu \} +.el 'ce 1000 +.di fT +.sp 1 +\\*(fM\\$4 +.ft P +.br +.di +.nr fH \\n(dn +.ie \\n(.i 'in +.el 'ce 0 +\!.ne \\n(s1v+\\n(fHu +\!.if t .if \\n(nl>\\n(\\n(=\\n(R.*8 .SP 1 +\!.if t .ne 8 +\!.SP 1 +.DE \} +.el \{\ +.fi +.ft B +.ds fM Figure\ \\*(cN-\\n(fN.\ \ +.nr mW \w'\\*(fM' +.nr tW \w'\\$4' +.nr cK \\n(.l-\\n(mW +.ie \\n(tW>\\n(cK \{\ +'in +\\n(mWu +'ti -\\n(mWu \} +.el 'ce 1000 +.sp 1 +\\*(fM\\$4 +.ft P +.if \\n(.t>=\\n(R.*8 .SP 1 +.if t .ne 8 +.ie \\n(.i 'in +.el 'ce 0 \} +\} +.rr cK s1 mW tW fH +.rm fT fM +.. +.de IN +.if n \{\ +.ie \\$1>39 .nr s1 39 +.el .nr s1 \\$1 \} +.if t \{\ +.ie \\$1>41 .nr s1 41 +.el .nr s1 \\$1 \} +.nr iN +1 +.if \\n(.$=3 .DF +.if \\n(.$=4 .DS +\!.ne \\n(s1v +\!.if t .if \\n(nl>\\n(\\n(=\\n(R.*8 .SP 1 +\!.ne 8 +\!.SP 1 +.DE +.:L "\\$1" "\\$2" "\\$3" "" "INSERT \\n(iN" +.rr s1 +.. +.de AS +.if '\\$1'D' .ds aD Danger +.if '\\$1'C' .ds aD Caution +.if '\\$1'W' .ds aD Warning +.if '\\$1'N' .ds aD Note +.ie \w'\\$2' .as aD \ \\$2:\ \ +.el .as aD :\ \ +.if n .in +4 +.if t .in +0.25i +.if n .ll -4 +.if t .ll -0.25i +.if n .SP 2 +.if t .SP 2 +.nr pF \\n(.f +.if n .ft B +.if t .ft BI +\\*(aD\c +.if '\\$1'N' 'ft R +.. +.de AE +.br +.if n .SP 2 +.if t .SP 2 +.ll +.in +.ft \\n(pF +.rr pF +.rm aD +.. +.\" need to set floating display register to 5 +.nr Df 5 +.de )E \"Save heading for TOC +.ds }3 +.if \\n(:S .ds }3 \\*(cN +.if \w'\\*(}0' .as }0 \ +.am >C +.)T \\n(;1 \\$1 "\\*(}0" "\\$2" \\nP \\*(}3 "\\*(cD" +\\.. +.. +.de CE \" Force a toc entry +.am >C +.)T \\$1 \\$1 "\\$2" "\\$5" "\\$4" "\\$3" +\\.. +.. +.PH "''''" \"remove default page number +.EF "'\\fB\\\\*(cN-\\\\nP\\fP'''" \"page # at bottom left of even pages +.OF "'''\\fB\\\\*(cN-\\\\nP\\fP'" \"at bottom right of odd pages +.PF "''''" +.nr Pt 1 \"paragraph type 1 -- all paragraphs indented +.nr Pi 0 \"set paragraph indent to zero spaces +.if t .nr Ps 3 +.if n .nr Ps 2 +.HM 1 A A A A A A \"set heading mark types +.nr Ht 1 \"heading type 1 -- no concatenation of heading marks +.nr Hb 5 \"break after heading levels 1 - 5 +.nr Hs 5 \"output a space after heading levels 1 - 5 +.nr Hc 2 +.nr hC 2 +.nr Ds 1 +.nr Si 4 +.nr Li 4 +.ds HP 14 12 10 10 10 10 10 +.if t .ds HF 3 3 3 4 3 4 3 +.if n .ds HF 3 3 3 2 3 2 3 +.nr Cl 3 \"save levels 1-3 for the table of contents +.nr cS 3 +.nr Oc 1 \"no default page numbers on TOC +.if t .ds Ci 0P 0P 2P +.if n .ds Ci 0n 0n 4n +.SA 1 +.de HX \"define user-exit header macro +.)I \\$1 \\*(HF +.ds hF \\*(}3 +.)I \\$1 \\*(HP +.nr hP \\*(}3 +.if !\\n(Hc .nr Hc \\n(hC +.if \\$1>1 .nr Cl \\n(cS +.if \\$1=1 .if \\n(sL=0 .ds }0 +.if \\$1=2 .ds }0 +.if \\$1=3 .ds }0 +.if \\$1=4 .ds }0 +.if \\$1=5 .ds }0 +.if \\$1=6 .ds }0 +.if \\$1=7 .ds }0 +.nr ;3 +3v +.if t .if \\$1=2 .SP 3 +.if n .if \\$1=2 .SP 3 +.if t .if \\$1=3 .SP 2 +.if n .if \\$1=3 .SP 2 +.if t .if \\$1=4 .SP 2 +.if n .if \\$1=4 .SP 2 +.if t .if \\$1=5 .SP 1 +.if n .if \\$1=5 .SP 1 +.if \\$1=1 \{\ +.ds cT \\$3 +.nr cS \\n(Cl +.if \\n(sL=0 .nr Cl 0 +.ps +4 +.ft B +.rs +.sp 14p +.ce +\\*(cD +.sp 2p +.SP 1P +.ft P +.rs +.ps -4 \} +.if 0\\$1<=\\n(Hc \{\ +.nr hC \\n(Hc +.ft \\*(hF +.nr pS \\n(.s +.ps \\n(hP +.if \w\\$3>\\n(.l .nr Hc 0 +.ps \\n(pS +.ft P \} +.vs \\n(hP+2 +.. +.de HZ +.vs \\n(pS+2 +.. +.de TP +'sp 2 +'ft B +'tl \\*(}t +.if \\nP%2 .if \\nP>1 'tl \\*(}o +.if !\\nP%2 'tl \\*(}e +'ft P +'sp 2 +.nr \\n(L "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" +\\.. +.. +.de IL +.if n \{\ +.ll 75 +.lt 75 +.po 5 +.ds tG \\$1 +.ds wR \\$2 +.ds eD \\$3 +.af pN 1 +.nr pN 0 +.de :B +'sp 3 +'nr pN +1 +'ft B +'tl ''-\\\\n(pN-'' +'ft P +'sp 2 +'tP +\\.. +.de tP +'sp 2 +'ft B +'tl 'AT&T''DOCUMENT DEVELOPMENT ORGANIZATION' +'sp 3 +'tl ''LIST OF ILLUSTRATIONS'' +'sp 2 +'nf +'ta 20R 21L 54R 55L +\tTGL:\t\\*(tG\tSELECT CODE:\t\\*(sC +\tWRITER:\t\\*(wR\tISSUE:\t\\*(iS +\tEDITOR:\t\\*(eD\tRELEASE DATE:\t\\*(rD +'sp 2 +'ta 2 6 14 25 43 66 +\tH\tW\tID#\tFIG.\tTITLE\tMISC. +'ft P +\l'7.5i_' +\\.. +.bp +.wh -6 :B +.nf +.tP +.]L \} +.. +.de >L +.ll -12 +.in +33 +.ti -33 +.ft B +.fi +.di ?L +\h'|1'\\$1\h'|5'\\$2\h'|9'\\$3\h'|25'\\$4\h'|33'\\$5 +.br +.nf +.ll +.in +.ft P +\l'7.5i_' +.di +.nr dH \\n(dnu +.ne \\n(dHu+1v +.?L +.rm ?L +.. +.de CF +.ft R +.if t .ps -2 +.if t .vs -2 +.nf +.da fN +.if n .sp 1v +\\$1\\ \\ +.. +.de TF +.br +.di +.nr fh \\n(fhu+\\n(dnu +.fi +.if t .ps +.if t .vs +.. +.de CT +.nr fh 0 +.ev 1 +.ft B +.if t .ps +2 +.if t .vs +2 +.nf +.di tL +.. +.de TT +.br +.di +.nr th \\n(dnu +.ev +.. +.de n1 +.ce +\fBNOTICE\fR +.sp 1v +This contains private information owned or +controlled by AT&T. +It shall be treated in confidence and may be +used only for installation, operation and +maintenance of the equipment with which it +is furnished and for no other purpose without +written permission of AT&T. +.sp 1v +.ce +Printed in U.S.A. +.. +.de n2 +.ce +.ps +2 +Copyright \(co 19\\\\n(yr AT&T +.ps -2 +.sp 1v +.ce +All Rights Reserved +.sp 1v +.ce +Printed in U.S.A. +.. +.de n3 +.ce +\fBNOTICE\fP +.sp 1v +This contains private information owned or controlled +by AT&T. +This information is of a developmental nature. +A copyright will be obtained when published in final form. +It shall be treated in confidence and may be used only +for the express purpose for which it is distributed +and for no other purpose without written +permission of AT&T. +.sp 1v +.ce +Printed in U.S.A. +.. +.de CP +.br +.ds sC \\$1 +.ds iS \\$2 +.ds rD \\$3 +.rm TP +.rs +.bp +.rm )h )b )f +.wh 0 +.if t .po 0.25i +.if n .po .5i +.if t .ll 5.5i +.if n .ll 7.5i +.if t .lt 5.5i +.if n .lt 7.5i +.in 0 +.rs +.sp 0.5i +.tl '''\\fB\\$1\\fR' +.tl '''\\fBIssue \\$2, \\$3\\fR' +.ch )b 0 +.ev 2 +.if t .ll 4.5i +.if t .in 1i +.if t .ps -2 +.if t .vs -2 +.if n .ll 7i +.if n .in 0.5i +.fi +.ad b +.di nT +.ie \\n(.$=3 .n1 +.el .ie t .if \\n(.$=4 .n2 +.el .if \\n(.$=4 .n3 +.di +.nr nh \\n(dnu +.ev 0 +.sp |\\n(.pu-\\n(nlu-\\n(fhu-\\n(nhu-\\n(thu/2u +.nf +.ce 1000 +.tL +.br +.ce 0 +.sp |\\n(.pu-0.5i-\\n(nhu-\\n(fhu +.nT +.br +.if \\n(fh \l'1i' +.fN +.br +.. +.de UC +.if t \{\ +.S 8 10 +.lt 4.75i +.ll 4.75i +.po 1i +.tr ~ +.bp +.rs +.sp 2v +.tl \\$1\\*(sC, Iss. \\*(iSCOMMENT FORM +.fi +.P 0 +Your comments and suggestions are appreciated and +will help us to provide the best documentation for your use. +.AL 1 3 +.LI +How would you rate this document for COMPLETENESS? +(Please\ Circle) +.SP +.if n .ta 8 16 24 32 40 48 56 64 +.if t .ta 1.75i 3.8i +.tc +Excellent Adequate Poor +.tc - +.br +.ta 1i 2i 3i 4i +4 3 2 1 0 +.tc +.LI +Identify any information that you feel should be included or removed. +.SP +\l'|4.5i' +.SP +\l'|4.5i' +.LI +How would you rate this document for ACCURACY of information? +(Please\ Circle) +.SP +.ta 1.75i 3.8i +Excellent Adequate Poor +.tc - +.br +.ta 1i 2i 3i 4i +4 3 2 1 0 +.tc +.LI +Specify page and nature of any error(s) found in this document. +.SP +\l'|4.5i' +.SP +\l'|4.5i' +.LI +How would you rate this document for ORGANIZATION of information? +(Please\ Circle) +.SP +.ta 1.75i 3.8i +Excellent Adequate Poor +.tc - +.br +.ta 1i 2i 3i 4i +4 3 2 1 0 +.tc +.LI +Describe any format or packaging problems you have experienced with +this document. +.SP +\l'|4.5i' +.SP +\l'|4.5i' +.LI +Do you have any general comments or suggestions regarding this +document? +.SP +\l'|4.5i' +.SP +\l'|4.5i' +.LI +We would like to know a little about your background as a user of +this document: +.LE +.AL A +.LI +Your job function \l'|2.5i' +.SP +.LI +Number of years experience with computer hardware: +operation \l'.4i_' , +.br +maintenance \l'.4i_' . +.SP +.LI +Number of years experience with computer software: +user \l'.4i_' , +.br +programmer \l'.4i_' . +.br +.LE +.nf +.SP +Your Name \l'2.24i_' Phone No. \l'|4.5i' +Company \l'|4.5i' +Address \l'|4.5i' +City & State \l'2.9i_' Zip Code \l'|4.5i' +.. diff --git a/doc/ps1/02.f77/Makefile b/doc/ps1/02.f77/Makefile new file mode 100644 index 00000000..dddbec94 --- /dev/null +++ b/doc/ps1/02.f77/Makefile @@ -0,0 +1,27 @@ +# +# Copyright (c) 1986 Regents of the University of California. +# All rights reserved. The Berkeley software License Agreement +# specifies the terms and conditions for redistribution. +# +# @(#)Makefile 5.1 (Berkeley) 4/21/86 +# +SRCS= f77.ms +MACROS= -msU +PRINTER=Pdp +EQN= deqn -${PRINTER} +TBL= dtbl -${PRINTER} +TROFF= ditroff -${PRINTER} + +paper: paper.${PRINTER} + lpr -${PRINTER} -n paper.${PRINTER} + +paper.${PRINTER}: ${SRCS} + ${TBL} ${SRCS} | ${EQN} | ${TROFF} ${MACROS} -t > paper.${PRINTER} + +clean: + rm -f paper.[PT]* *.spell errs Errs make.out + +spell: ${SRCS} + @for i in ${SRCS}; do \ + echo $$i; spell $$i | sort | comm -23 - spell.ok > $$i.spell; \ + done diff --git a/doc/ps1/02.f77/f77.ms b/doc/ps1/02.f77/f77.ms new file mode 100644 index 00000000..673ba9a3 --- /dev/null +++ b/doc/ps1/02.f77/f77.ms @@ -0,0 +1,2435 @@ +.\" Copyright (c) 1980 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)f77.ms 5.4 (Berkeley) 4/28/86 +.\" +.rm CM +.hw name-list +.de XX +.ne 3 +.sp .3 +.ti -0.8i +.ta 0.8i +\\$1 \c +.. +.\" +.\" Nh macro - same as NH but also saves heading for table of contents +.\" Nh usage: Nh level string, e.g.: .Nh 2 "Short Integers" +.de Nh +.NH \\$1 +\\$2 +.XS +.if '2'\\$1' .ti .25i +.if '3'\\$1' .ti .5i +\\*(SN \\$2 +.XE +.IP +.. +.EQ +delim $$ +.EN +.ND "" +.\".RP +.TL +A Portable Fortran 77 Compiler +.AU +S. I. Feldman +.AU +P. J. Weinberger +.AI +Bell Laboratories +Murray Hill, New Jersey 07974 +.AU +J. Berkman +.AI +University of California +Berkeley, CA 94720 +.AB +The Fortran language has been revised. +The new language, known as\p +Fortran 77, +became an official American National Standard on April 3, 1978. +We report here on a compiler and run-time system for the new extended language. +It is believed to be the first complete Fortran 77 system to be implemented. +This compiler is designed to be portable, +to be correct and complete, +and to generate code compatible with calling sequences produced by C compilers. +In particular, this Fortran is quite usable on +.UX +systems. +In this paper, we describe the language compiled, +interfaces between procedures, +and file formats assumed by the \s-1I/O\s0 system. +Appendix A describes the Fortran 77 language extensions. +.PP +This is a standard Bell Laboratories +document reproduced with minor modifications +to the text. +The Bell Laboratory's appendix +on ``Differences Between Fortran 66 and Fortran 77'' +has been changed to Appendix A, +and a local appendix has been added. +Appendix B contains +a list of Fortran 77 references +(some from the original Bell document +and some added at Berkeley). +.sp 2 +.LP +Revised September, 1985 +.AE +.LP +.CS 9 10 19 0 0 8 +.\" the Table of Contents uses pages 2 and 3, +.\" hence the document begins at page 4. +.pn 4 +.EH 'PS1:2-%''A Portable Fortran 77 Compiler' +.OH 'A Portable Fortran 77 Compiler''PS1:2-%' +.bp +.NH 0 +INTRODUCTION +.XS +\*(SN Introduction +.XE +.LP +The Fortran language has been revised. +The new language, known as Fortran 77, +became an official American National Standard [1] on April 3, 1978. +Fortran 77 supplants 1966 Standard Fortran [2]. +We report here on a compiler and run-time system for the new extended language. +The compiler and computation library were written by S.I.F., the \s-1I/O\s0 system by P.J.W. +We believe ours to be the first complete Fortran 77 system to be implemented. +This compiler is designed to be portable to a number of different machines, +to be correct and complete, +and to generate code compatible with calling sequences produced +by compilers for the C language [3]. +In particular, +it is in use on +\s-1UNIX\s0 +systems. +Two families of C compilers are in use at Bell Laboratories, +those based on D. M. Ritchie's \s-1PDP-11\s0 compiler [4] +and those based on S. C. Johnson's portable C compiler [5]. +This Fortran compiler can drive the second passes of either family. +In this paper, we describe the language compiled, +interfaces between procedures, +and file formats assumed by the \s-1I/O\s0 system. +We will describe implementation details in companion papers. +.Nh 2 Usage +At present, versions of the compiler run on and compile +for the \s-1PDP-11\s0, +the \s-1VAX-11/780\s0, +and the Interdata 8/32 +\s-1UNIX\s0 +systems. +The command to run the compiler is +.DS +f\|77 \fIflags file . . .\fR +.DE +.B f\|77 +is a general-purpose command for compiling and loading Fortran and Fortran-related files. +\s-1EFL\s0 [6] and Ratfor [7] source files will be preprocessed before being presented to the Fortran compiler. +C and assembler source files will be compiled by the appropriate programs. +Object files will be loaded. +(The +.B f\|77 +and +.B cc +commands cause slightly different loading sequences to be generated, +since Fortran programs need a few extra libraries and a different startup routine +than do C programs.) +The following file name suffixes are understood: +.DS + \f3.f\f1 Fortran source file + \f3.F\f1 Fortran source file + \f3.e\f1 \s-1EFL\s0 source file + \f3.r\f1 Ratfor source file + \f3.c\f1 C source file + \f3.s\f1 Assembler source file + \f3.o\f1 Object file +.DE +.IP +Arguments whose names end with \f3.f\f1 are taken to be +Fortran 77 source programs; +they are compiled, and +each object program is left on the file in the current directory +whose name is that of the source with \f3.o\f1 substituted +for \f3.f\f1. +.IP +Arguments whose names end with \f3.F\f1 +are also taken to be Fortran 77 source programs; these are first +processed by the C preprocessor before being compiled by \fBf77\fP. +.IP +Arguments whose names end with \f3.r\f1 or \f3.e\f1 +are taken to be Ratfor or \s-1EFL\s0 +source programs, respectively; these are first transformed by the +appropriate preprocessor, then compiled by \fBf77\fP. +.IP +In the same way, +arguments whose names end +with \f3.c\f1 or \f3.s\f1 +are taken to be C or assembly source programs +and are compiled or assembled, producing a \f3.o\f1 file. +.IP +The following flags are understood: +.in +0.8i +.XX \(mi\f3c\f1 +Compile but do not load. +Output for +.B x.f , +.B x.F , +.B x.e , +.B x.r , +.B x.c , +or +.B x.s +is put on file +.B x.o . +.XX \(mi\f3d\f1 +Used in debugging the compiler. +.XX \(mi\f3g\f1 +Have the compiler produce additional +symbol table information for \fIdbx(1)\fR. +This flag is incompatible with \(mi\f3O\f1. +See section 1.4 for more details. +.XX \(mi\f3i2\f1 +On machines which support short integers, +make the default integer constants and variables short +(see section 2.14). +(\fB\(mii4\fR is the standard value of this option). +All logical quantities will be short. +.XX \(mi\f3m\f1 +Apply the M4 macro preprocessor +to each \s-1EFL\s0 or Ratfor source file +before using the appropriate compiler. +.XX "\(mi\f3o\f1 \fIfile\fR" +Put executable module on file +.I file . +(Default is \fBa.out\fR). +.ne 6 +.XX \(mi\f3onetrip\f1\ or\ \(mi\f31\f1 +.br +Compile code that performs every +.B do +loop at least once +(see section 2.12). +.XX \(mi\f3p\f1 +Generate code to produce usage profiles. +.XX \(mi\f3pg\f1 +Generate code in the manner of \fB\(mip\fR, but invoke a run-time +recording mechanism that keeps more extensive statistics. +See +.I gprof (1). +.XX \(mi\f3q\f1 +Suppress printing of file names and program unit names during compilation. +.XX \(mi\f3r8\f1 +Treat all floating point variables, +constants, functions and intrinsics +as double precision and all complex +quantities as double complex. See section 2.17. +.XX \(mi\f3u\f1 +Make the default type of a variable +.B undefined +(see section 2.3). +.XX \(mi\f3v\f1 +Print the version number of the compiler and the name of each pass. +.XX \(mi\f3w\f1 +Suppress all warning messages. +.XX \(mi\f3w66\f1 +Suppress warnings about Fortran 66 features used. +.XX \(mi\f3C\f1 +Compile code that checks that subscripts are within array bounds. +For multi-dimensional arrays, only the equivalent linear subscript is +checked. +.XX \(mi\fBD\fP\fIname=def\fR +.XX \(mi\fBD\fP\fIname\fR +Define the +.I name +to the C preprocessor, as if by `#define'. If no definition is given, the name +is defined as "1". (\fB.F\fR files only). +.XX \(mi\f3E\f1\fIstr\fR +Use the string \fIstr\fR as an +\s-1EFL\s0 option in processing \f3.e\f1 files. +.XX \(mi\f3F\f1 +Ratfor, \s-1EFL\s0, and \f3.F\f1 source files +are pre-processed into \f3.f\f1 files, +and those \f3.f\f1 files are left on the disk without being compiled. +.XX \(mi\fBI\fP\fIdir\fR +`#include' files whose names do not begin with `/' are always sought +first in the directory of the \fIfile\fR +argument, then in directories named in \fB\(miI\fR +options, then in directories on a standard list. (\fB.F\fR files only). +.XX \(mi\f3N\f1[\fBqxscn\fR]\fInnn\f1 +.br +Make static tables in the compiler bigger. The compiler will complain +if it overflows its tables and suggest you apply one or more of these +flags. These flags have the following meanings: +.RS +.IP \fBq\fP +Maximum number of equivalenced variables. Default is 150. +.IP \fBx\fP +Maximum number of external names (common block names, subroutine and +function names). Default is 200. +.IP \fBs\fP +Maximum number of statement numbers. Default is 401. +.IP \fBc\fP +Maximum depth of nesting for control statements (e.g. DO loops). Default is +20. +.IP \fBn\fP +Maximum number of identifiers. Default is 1009. +.RE +.XX \(mi\f3O\f1 +Invoke the object code optimizer. +Incompatible with \(mi\f3g\f1. +.XX \(mi\f3R\f1\fIstr\fR +Use the string \fIstr\fR as a Ratfor option +in processing \f3.r\f1 files. +.XX \(mi\f3U\f1 +Do not convert upper case letters to lower case. +The default is to convert Fortran programs to lower case +except within character string constants. +.XX \(mi\f3S\f1 +Generate assembler output for each source file, but do not assemble it. +Assembler output for a source file +.B x.f , +.B x.F , +.B x.e , +.B x.r , +or +.B x.c +is put on file +.B x.s . +.in -0.8i +.IP +Other flags, +all library names (arguments beginning \fB\(mil\fR), +and any names not ending with one of the understood suffixes are passed +to the loader. +.Nh 2 Documentation\ Conventions +In running text, we write Fortran keywords and other literal strings in boldface lower case. +Examples will be presented in lightface lower case. +Names representing a class of values will be printed in italics. +.Nh 2 Implementation\ Strategy +The compiler and library are written entirely in C. +The compiler generates C compiler intermediate code. +Since there are C compilers running on a variety of machines, +relatively small changes will make this Fortran compiler generate code for any of them. +Furthermore, this approach guarantees that the resulting programs are compatible with C usage. +The runtime computational library is complete. +The runtime \s-1I/O\s0 library makes use of D. M. Ritchie's Standard C \s-1I/O\s0 package [8] +for transferring data. +With the few exceptions described below, only documented calls are used, +so it should be relatively easy to modify to run on other operating +systems. +.Nh 2 Debugging\ Aids +A memory image is sometimes +written to a file \fBcore\fP in the current directory +upon abnormal termination for errors caught by the \fBf77\fP libraries, +user calls to \fBabort\fP, and certain signals (see \fBsigvec\fP\|(2) +in the \fI\s-1UNIX\s0 Programmer's Manual\fP). +\fBCore\fP is normally created only if +the \fB\(mig\fP flag was specified to \fBf77\fP during loading.\(dg +.FS +\(dgSpecify \fB\(mig\fP when loading with \fBcc\fP or \fBf77\fP; +specify \fB\(milg\fP as a library +when using \fBld\fP directly. +.FE +The source-level debugger +.I dbx (1) +may be used with the executable and the +.B core +file to examine the image and +determine what went wrong. +.IP +In the event that it is necessary to override this default behavior, +the user may set the environment variable \fBf77_dump_flag\fP. +If \fBf77_dump_flag\fP is set to a value beginning +with \fBn\fP, a \fBcore\fP file is not produced regardless of whether +\fB\(mig\fP was specified at compile time, +and if the value begins with \fBy\fP, +dumps are produced even if \fB\(mig\fP was not specified. +.NH 1 +LANGUAGE EXTENSIONS +.XS +\*(SN Language Extensions +.XE +.LP +Fortran 77 includes almost all of Fortran 66 as a subset. +We describe the differences briefly in Appendix A. +The most important additions are a character string data type, +file-oriented input/output statements, and random access \s-1I/O\s0. +Also, the language has been cleaned up considerably. +.LP +In addition to implementing the language specified in the new Standard, +our compiler implements a few extensions described in this section. +Most are useful additions to the language. +The remainder are extensions +to make it easier to communicate with C procedures +or to permit compilation of +old (1966 Standard) programs. +.Nh 2 Double\ Complex\ Data\ Type +The new type +.B "double complex" +is defined. +Each datum is represented by a pair of double precision real values. +The statements +.DS +z1 = ( 0.1d0, 0.2d0 ) +z2 = dcmplx( dx, dy ) +.DE +assign double complex values to \fBz1\fP and \fBz2\fP. +The double precision values which constitute the double complex +value may be isolated by using \fBdreal\fP or \fBdble\fP for the +real part and \fBimag\fP or \fBdimag\fP for the +imaginary part. +To compute the double complex conjugate of a double complex value, +use \fBconjg\fP or \fBdconjg\fP. +The other \fBdouble complex\fP intrinsic functions may be +accessed using their generic names or specific names. +The generic names are: \fBabs\fP, \fBsqrt\fP, \fBexp\fP, +\fBlog\fP, \fBsin\fP, and \fBcos\fP. +The specific names are the same as the generic names preceded by +either \fBcd\fP or \fBz\fP, e.g. you may code \fBsqrt\fP, +\fBzsqrt\fP or \fBcdsqrt\fP to compute the square root of a double +complex value. +.Nh 2 Internal\ Files +The Fortran 77 standard introduces ``internal files'' (memory arrays), but +restricts their use to formatted sequential \s-1I/O\s0 statements. +Our \s-1I/O\s0 system also permits internal files to be used +in formatted direct reads and writes and list directed sequential read and +writes. +.Nh 2 Implicit\ Undefined\ Statement +Fortran 66 has a fixed rule that the type of a variable that does not appear in a type statement +is +.B integer +if its first letter is +\fBi, j, k, l, m\fR or \fBn\fR, +and +.B real +otherwise. +Fortran 77 has an +.B implicit +statement for overriding this rule. +As an aid to good programming practice, we permit an additional type, +.B undefined. +The statement +.DS +implicit undefined(a-z) +.DE +turns off the automatic data typing mechanism, +and the compiler will issue a diagnostic for each variable that is used but does +not appear in a type statement. +Specifying the +.B \(miu +compiler flag is equivalent to beginning each procedure with this statement. +.Nh 2 Recursion +Procedures may call themselves, +directly or through a chain of other procedures. +Since Fortran variables are by default +.B static , +it is often necessary to use the +.B automatic +storage extension to prevent unexpected results +from recursive functions. +.Nh 2 Automatic\ Storage +Two new keywords are recognized, +.B static +and +.B automatic. +These keywords may appear as ``types'' in type statements and in +.B implicit +statements. +Local variables are static by default; +there is only one instance of the variable. +For variables declared +.B automatic, +there is a separate instance of the variable for each +invocation of the procedure. +Automatic variables may not appear in +.B equivalence, +.B data, +or +.B save +statements. +Neither type of variable is guaranteed to retain its value between +calls to a subprogram (see the \fBsave\fP statement in Appendix A). +.Nh 2 Source\ Input\ Format +The Standard expects input to the compiler to be in 72-column format: +except in comment lines, +the first five characters are the statement number, the next is the continuation character, +and the next 66 are the body of the line. +(If there are fewer than 72 characters on a line, the compiler pads it with blanks; +characters after the seventy-second are ignored.) +.IP +In order to make it easier to type Fortran programs, +our compiler also accepts input in variable length lines. +An ampersand ``&'' in the first position of a line indicates a continuation +line; the remaining characters form the body of the line. +A tab character in one of the first six positions of a line signals the +end of the statement number and continuation part of the line; +the remaining characters form the body of the line. +A tab elsewhere on the line is treated as another kind of blank by the +compiler. +.IP +In the Standard, there are only 26 letters \(em Fortran is a one-case language. +Consistent with ordinary +\s-1UNIX\s0 +system usage, our compiler expects lower case input. +By default, the compiler converts all upper case characters to lower case except those inside character constants. +However, if the +.B \(miU +compiler flag is specified, upper case letters are not transformed. +In this mode, it is possible to specify external names with upper case letters in them, +and to have distinct variables differing only in case. +If \(mi\f3U\f1 is specified, +keywords will only be recognized in lower case. +.Nh 2 Include\ Statement +The statement +.DS +include \(fmstuff\|\(fm +.DE +is replaced by the contents of the file +.B stuff ; +.B include +statements may be nested to a reasonable depth, currently ten. +.Nh 2 Binary\ Initialization\ Constants +A variable may be initialized in a +.B data +statement +by a binary constant, denoted by a letter followed by a quoted string. +If the letter is \fBb\fR, the string is binary, and only zeroes and ones are permitted. +If the letter is \fBo\fR, the string is octal, with digits \fB0\(mi7\fR. +If the letter is \fBz\fR or \fBx\fR, the string is hexadecimal, with digits \fB0\(mi9\fR, \fBa\(mif\fR. +Thus, the statements +.DS +integer a(3) +data a / b\(fm1010\|\(fm, o\(fm12\|\(fm, z\(fma\|\(fm / +.DE +initialize all three elements of +.B a +to ten. +.Nh 2 Character\ Strings +For compatibility with C usage, the following backslash escapes are recognized: +.DS +\f3\en\f1 newline +\f3\et\f1 tab +\f3\eb\f1 backspace +\f3\ef\f1 form feed +\f3\e0\f1 null +\f3\e\(fm\f1 apostrophe (does not terminate a string) +\f3\e"\f1 quotation mark (does not terminate a string) +\f3\e\e\f1 \e +\f3\e\fP\fIx\fR \fIx\fR, where \fIx\fR is any other character +.DE +Fortran 77 only has one quoting character, the apostrophe. +Our compiler and \s-1I/O\s0 system recognize +both the apostrophe `` \(fm '' and the double-quote `` " ''. +If a string begins with one variety of quote mark, the other may be embedded within it +without using the repeated quote or backslash escapes. +.IP +Each character string constant appearing outside a +.B data +statement is followed by a +null character to ease communication with C routines. +.Nh 2 Hollerith +Fortran 77 does not have the old Hollerith ``\fIn\fP\|\fBh\fR'' +notation, +though the new Standard recommends implementing the old Hollerith feature +in order to improve compatibility with old programs. +In our compiler, Hollerith data may be used in place of character string constants, +and may also be used to initialize non-character variables in +.B data +statements. +.Nh 2 Equivalence\ Statements +As a very special and peculiar case, +Fortran 66 permits an element of a multiply-dimensioned array to be represented by +a singly-subscripted reference in +.B equivalence +statements. +Fortran 77 does not permit this usage, since +subscript lower bounds may now be different from 1. +Our compiler permits single subscripts in +.B equivalence +statements, +under the interpretation that all missing subscripts are equal to 1. +A warning message is printed for each such incomplete subscript. +.Nh 2 One-Trip\ \s-1DO\s0\ Loops +The Fortran 77 Standard requires that the range of a +.B do +loop not be performed +if the initial value is already past the limit value, +as in +.DS +do 10 i = 2, 1 +.DE +The 1966 Standard stated that the effect of such a statement was undefined, +but it was common practice that the range of a +.B do +loop would be performed +at least once. +In order to accommodate old programs, though they were in violation of the 1966 Standard, +the +.B \(mionetrip +or +.B \(mi1 +compiler flags causes non-standard loops to be generated. +.Nh 2 Commas\ in\ Formatted\ Input +The \s-1I/O\s0 system attempts to be more lenient than the +Standard when it seems worthwhile. +When doing a formatted read of non-character variables, +commas may be used as value separators in the input record, +overriding the field lengths given in the format statement. +Thus, +the format +.DS +(i10, f20.10, i4) +.DE +will read the record +.DS +\(mi345,.05e\(mi3,12 +.DE +correctly. +.Nh 2 Short\ Integers +On machines that support halfword integers, +the compiler accepts declarations of type +.B integer\(**2. +(Ordinary integers follow the Fortran rules about occupying the same +space as a real variable; they are assumed to be of C type +.B "long int" ; +halfword integers are of C type +.B "short int" .) +An expression involving only objects of type +.B integer\(**2 +is of that type. +Generic functions return short or long integers depending on the actual types of their arguments. +If a procedure is compiled using the +.B \(mii2 +flag, all small integer constants will be +of type +.B integer\(**2. +If the precision of an integer-valued intrinsic function is not determined by the generic function rules, +one will be chosen that returns the prevailing length +(\fBinteger\(**2\fR when the \fB\(mii2\fR command flag is in effect). +When the +.B \(mii2 +option is in effect, all quantities of type +.B logical +will be short. +Note that these short integer and logical quantities do not obey the standard rules for storage association. +.Nh 2 Additional\ Intrinsic\ Functions +This compiler supports all of the +intrinsic functions specified in the Fortran 77 Standard. +In addition, there are built-in functions +for performing bitwise logical and boolean operations on +integer and logical values +(\fBor\fR, \fBand\fR, \fBxor\fR, \fBnot\fR, \fBlshift\fP, and \fBrshift\fP), +and intrinsic functions for \fBdouble complex\fP values (see section 2.1). +The \fBf77\fP library contains many other functions, such as accessing +the \s-1UNIX\s0 command arguments (\fBgetarg\fR and \fBiargc\fR) +and environment (\fBgetenv\fR). +See \fBintro\fP(3f) and \fBbit\fP(3f) in the \fI\s-1UNIX\s0 +Programmer's Manual\fP +for more information. +.Nh 2 Namelist\ \s-1I/O\s0 +Namelist \s-1I/O\s0 provides an easy way to input and output information without +formats. +Although not part of the standard, namelist \s-1I/O\s0 was part of many +Fortran 66 systems and is a common extension to Fortran 77 systems. +.IP +Variables and arrays to be used in namelist \s-1I/O\s0 are declared as part of +a namelist in a \fBnamelist\fP statement, e.g.: +.DS + character str\(**12 + logical flags(20) + complex c(2) + real arr1(2,3), arr2(0:3,4) + namelist /basic/ arr1, arr2, key, str, c /flglst/ key, flags +.DE +This defines two namelists: list \fBbasic\fP consists of variables +\fBkey\fP and \fBstr\fP and arrays \fBarr1\fP, \fBarr2\fP, +and \fBc\fP; list \fBflglst\fP consists of variable \fBkey\fP and +array \fBflags\fP. +A namelist can include variables and arrays of any type, and +a variable or array may be in several different namelists. +However dummy arguments and array elements may not be in a namelist. +A namelist name may be used in external sequential \fBread\fP, \fBwrite\fP +and \fBprint\fP statements wherever a format could be used. +.IP +In a namelist \fBread\fP, column one of each data record is ignored. +The data begins with an ampersand in column 2 followed by +the namelist name and a blank. +Then there is a sequence of value assignments separated by commas +and finally an ``&end''. +A simple example of input data corresponding to namelist \fBbasic\fP is: +.DS +\ &basic key=5, str=\(fmhi there\(fm &end +.DE +.EQ +delim off +.EN +For compatibility with other systems, dollar signs +may be used instead of the ampersands: +.DS +\ $basic key=5, str=\(fmhi there\(fm $end +.DE +.IP +.EQ +delim $$ +.EN +A value assignment in the data record must be one of three forms. +The simplest is a variable name followed by an equal sign +followed by a data value which is assigned to that variable, +e.g. ``key=5''. +The second form consists of an array name followed by ``='' +followed by one or more values to be assigned to the array, +e.g.: +.DS +c=(1.1,\-2.9),(\-1.8e+10,14.0e\-3) +.DE +assigns values to c(1) and c(2) in the complex array c. +.IP +As in other \fBread\fP statements, values are assigned in the order of the +array in memory, i.e. column-major order for two dimensional arrays. +Multiple copies of a value may be represented by a repetition count +followed by an asterisk followed by the value; e.g. ``3*55.4'' is the +same as ``55.4, 55.4, 55.4''. +It is an error to specify more values than the array can hold; +if less are specified, only that number of elements of the array +are changed. +The third form of a value assignment is a subscripted variable +name followed by ``='' followed by a value or values, +e.g.: ``arr2(0,4)=15.2''. +Only integer constant subscripts may be used. +The correct number of subscripts must be used and the subscripts +must be legal. +This form is the same as the form with an array name except the +array is filled starting at the named element. +.IP +In all three forms, the variable or array name must be declared +in the namelist. The form of the data values is the same as in +list directed input except that in namelist \s-1I/O\s0, +character strings in the data must be enclosed in apostrophes or +double quotes, and +repetition counts must be followed by data values. +.IP +One use of namelist input is to read in a list of options or flags. +For example: +.DS + logical flags(14) + namelist /pars/ flags, iters, xlow, xhigh, xinc + data flags/14*.false./ + +10 read(5,pars,end=900) + print pars + call calc( xlow, xhigh, xinc, flags, iters ) + go to 10 +900 continue + end +.DE +could be run with the following data (each record begins with a space): +.DS +\ &pars iters=10, xlow=0.0, xhigh=1.0, xinc=0.1 &end +\ &pars xinc=0.2, +\ \ \ flags(2)=2*.true., flags(8)=.true. &end +\ &pars xlow=2.0, xhigh=8.0 &end +.DE +The program reads parameters for the run from the first data set +and computes using them. +Then it loops and each successive set of namelist input data +specifies only those data items which need to be changed. +Note the second data set sets the $2 sup nd$, $3 sup rd$, +and $8 sup th$ elements in the array \fBflags\fP to \fB.true.\fP. +.IP +When a namelist name is used in a \fBwrite\fP or \fBprint\fP statement, +all the values in the namelist are output together with their names. +For example the \fBprint\fP in the program above prints the following: +.DS +\ &pars flags= f, f, f, f, f, f, f, f, f, f, f, f, f, f, iters= +\ 10, xlow= 0., xhigh= 1.00000, xinc= 0.100000 +\ &end +\ &pars flags= f, t, t, f, f, f, f, t, f, f, f, f, f, f, iters= +\ 10, xlow= 0., xhigh= 1.00000, xinc= 0.200000 +\ &end +\ &pars flags= f, t, t, f, f, f, f, t, f, f, f, f, f, f, iters= +\ 10, xlow= 2.00000, xhigh= 8.00000, xinc= 0.200000 +\ &end +.DE +.IP +Each line begins with a space so that namelist output can be used as input to +a namelist \fBread\fP. +The default is to use ampersands in namelist \fBprint\fP and +\fBwrite\fP. +However, dollar signs will be used if the last preceding namelist \fBread\fP +data set used dollar signs. +The character to be used is stored as the first character of the common +block \fBnamelistkey\fP. +.Nh 2 Automatic\ Precision\ Increase +The \(mi\fBr8\fP flag allows a user to run a program with increased +precision without changing any of the program source, +i.e. it allows a user to take a program coded in +single precision and compile and execute it as if it had +been coded in double precision. +The option extends the precision of all single precision real +and complex constants, variables, external functions, and intrinsic functions. +For example, the source: +.DS + implicit complex(c) + real last + intrinsic sin, csin + data last/0.3/ + + x = 0.1 + y = sqrt(x)+sqrt(last) + c1 = (0.1,0.2) + c2 = sqrt(c1) + x = real(i) + y = aimag(c1) + call fun(sin,csin) +.DE +is compiled under this flag as if it had been written as: +.DS + implicit double precision (a-b,d-h,o-z), double complex(c) + double precision last + intrinsic dsin, cdsin + data last/0.3d0/ + + x = 0.1d0 + y = sqrt(x)+sqrt(last) + c1 = (0.1d0,0.2d0) + c2 = sqrt(c1) + x = dreal(i) + y = dimag(c1) + call fun(dsin,cdsin) +.DE +When the \(mi\fBr8\f flag is invoked, +the calls using the generic name \fBsqrt\fP will refer to a different +specific function since the types of the arguments have changed. +This option extends the precision of all single precision \fBreal\fP +and \fBcomplex\fP variables and functions, +including those declared \fBreal\(**4\fP and \fBcomplex\(**8\fP. +.IP +In order to successfully use this flag to increase precision, +the entire program including +all the subroutines and functions it calls must be recompiled. +Programs which use dynamic memory allocation or +use equivalence or common statements to associate variables of different types +may have to be changed by hand. +Similar caveats apply to the sizes of records +in unformatted \s-1I/O\s0. +.Nh 2 Characters\ and\ Integers +A character constant of integer length or less +may be assigned to an integer variable. +Individual bytes are packed into +the integer in the native byte order. +The character constant is padded with blanks +to the width of the integer during the assignment. +Use of this feature is deprecated; +it is intended only as a porting aid +for extended Fortran 66 programs. +Note that the intrinsic +.B ichar +function behaves as the standard requires, +converting only single bytes to integers. +.NH 1 +VIOLATIONS OF THE STANDARD +.XS +\*(SN Violations of the Standard +.XE +.LP +We know only a few ways in which our Fortran system violates the new standard: +.Nh 2 Double\ Precision\ Alignment +The Fortran Standards (both 1966 and 1977) +permit +.B common +or +.B equivalence +statements to force a double precision quantity onto an odd word boundary, +as in the following example: +.DS I +real a(4) +double precision b,c +.sp .5 +equivalence (a(1),b), (a(4),c) +.DE +Some machines (e.g., Honeywell 6000, \s-1IBM 360\s0) require that double precision quantities be on double word boundaries; +other machines (e.g., \s-1IBM 370\s0), run inefficiently if this alignment rule is not observed. +It is possible to tell which equivalenced and common variables suffer from a forced odd +alignment, but every double precision argument would have to be assumed on a bad boundary. +To load such a quantity on some machines, +it would be necessary to use separate operations to move the upper and lower halves +into the halves of an aligned temporary, then to load that double precision temporary; the reverse would be +needed to store a result. +We have chosen to require that all double precision real and complex quantities +fall on even word boundaries on machines with corresponding hardware requirements, +and to issue a diagnostic if the source code demands a violation of the rule. +.Nh 2 Dummy\ Procedure\ Arguments +If any argument of a procedure is of type character, +all dummy procedure arguments of that procedure must be declared +in an +.B external +statement. +This requirement arises as a subtle corollary of the way we represent character string arguments +and of the one-pass nature of the compiler. +A warning is printed if a dummy procedure is not declared +.B external. +Code is correct if there are no +.B character +arguments. +.Nh 2 T\ and\ TL\ Formats +The implementation of the +.B t +(absolute tab) +and +.B tl +(leftward tab) +format codes +is defective. +These codes allow rereading or rewriting part of the +record which has already been processed +(section 6.3.2 in Appendix A). +The implementation uses seeks, +so if the unit is not one which allows seeks, +such as a terminal, +the program is in error. +A benefit of the implementation chosen is +that there is no upper limit on the length of +a record, +nor is it necessary to predeclare any record +lengths except where specifically required +by Fortran or the operating system. +.Nh 2 Carriage\ Control +The Standard leaves as implementation dependent which logical unit(s) +are treated as ``printer'' files. +In this implementation there is no printer file and +thus by default, no carriage control is recognized on formatted output. +This can be changed using \fBform=\|\(fmprint\|\(fm\fP in the +\fBopen\fP statement +for a unit, or by using the \fBfpr\fP(1) filter for output; see [9]. +.Nh 2 Assigned\ Goto +The optional +.I list +associated with an assigned +.B goto +statement is not checked against the actual assigned value during execution. +.NH 1 +INTER-PROCEDURE INTERFACE +.XS +\*(SN Inter-Procedure Interface +.XE +.LP +To be able to write C procedures that call or are called by Fortran procedures, +it is necessary to know the conventions for procedure names, +data representation, +return values, +and argument lists that the compiled code obeys. +.Nh 2 Procedure\ Names +On +\s-1UNIX\s0 +systems, +the name of a common block or a Fortran procedure +has an underscore appended to it by the compiler +to distinguish it from a C procedure or external variable +with the same user-assigned name. +Fortran built-in procedure names have embedded underscores to avoid clashes +with user-assigned subroutine names. +.Nh 2 Data\ Representations +The following is a table of +corresponding Fortran and C declarations: +.KS +.TS +center; +l l +l l. +.B +Fortran C +.R +.sp .5 +integer\(**2 x short int x; +integer x long int x; +logical x long int x; +real x float x; +double precision x double x; +complex x struct { float r, i; } x; +double complex x struct { double dr, di; } x; +character\(**6 x char x[6]; +.TE +.KE +(By the rules of Fortran, +.B integer, +.B logical, +and +.B real +data occupy the same amount of memory.) +.Nh 2 Arrays +The first element of a C array always has subscript zero, +while Fortran arrays begin at 1 by default. +Fortran arrays are stored in column-major order in contiguous storage, +C arrays are stored in row-major order. +Many mathematical libraries have subroutines which transpose a two dimensional +matrix, e.g. \fBf01crf\fP in the \fB\s-1NAG\s0\fP library and +\fBvtran\fP in the \fB\s-1IMSL\s0\fP library. +These may be used to transpose a two-dimensional array stored in C in row-major +order to Fortran column-major order or vice-versa. +.Nh 2 Return\ Values +A function of type +.B integer, +.B logical, +.B real, +or +.B "double precision" +declared as a C function returns the corresponding type. +A +.B complex +or +.B "double complex" +function is equivalent to a C routine +with an additional +initial argument that points to the place where the return value is to be stored. +Thus, +.DS +complex function f( . . . ) +.DE +is equivalent to +.DS +f_(temp, . . .) +struct { float r, i; } \(**temp; + . . . +.DE +A character-valued function is equivalent to a C routine with +two extra initial arguments: a data address and a length. +Thus, +.DS +character\(**15 function g( . . . ) +.DE +is equivalent to +.DS +g_(result, length, . . .) +char result[ ]; +long int length; + . . . +.DE +and could be invoked in C by +.DS +char chars[15]; + . . . +g_(chars, 15L, . . . ); +.DE +Subroutines are invoked as if they were \fBinteger\fR-valued functions +whose value specifies which alternate return to use. +Alternate return arguments (statement labels) are not passed to the function, +but are used to do an indexed branch in the calling procedure. +(If the subroutine has no entry points with alternate return arguments, +the returned value is undefined.) +The statement +.DS +call nret(\(**1, \(**2, \(**3) +.DE +is treated exactly as if it were the computed +.B goto +.DS +goto (1, 2, 3), nret( ) +.DE +.Nh 2 Argument\ Lists +All Fortran arguments are passed by address. +In addition, +for every argument that is of type character or +that is a dummy procedure, +an argument giving the length of the value is passed. +(The string lengths are +.B "long int" +quantities passed by value.) +The order of arguments is then: +.DS +Extra arguments for complex and character functions +Address for each datum or function +A \fBlong int\fR for each character or procedure argument +.DE +Thus, the call in +.DS +external f +character\(**7 s +integer b(3) + . . . +call sam(f, b(2), s) +.DE +is equivalent to that in +.DS +int f(); +char s[7]; +long int b[3]; + . . . +sam_(f, &b[1], s, 0L, 7L); +.DE +.Nh 2 System\ Interface +To run a Fortran program, the system invokes a small C program which +first initializes signal handling, then calls \fBf_init\fP to initialize +the Fortran \s-1I/O\s0 library, then calls your Fortran main program, +and then calls \fBf_exit\fP to close any Fortran files opened. +.IP +\fBf_init\fP initializes Fortran units 0, 5, and 6 to standard error, +standard input, and standard output respectively. +It also calls \fBsetlinebuf\fP to initiate line buffering +of standard error. +If you are using Fortran subroutines which may do \s-1I/O\s0 +and you have a C main program, +call \fBf_init\fP before calling the Fortran subroutines. +Otherwise, Fortran units 0, 5, and 6 will be connected to files +\fBfort.0\fP, \fBfort.5\fP, and \fBfort.6\fP, +and error messages from the \fBf77\fP libraries will be written +to \fBfort.0\fP instead of to standard error. +If your C program terminates by calling the C function \fBexit\fP, +all files are automatically closed. +If there are Fortran scratch files to be deleted, first call \fBf_exit\fP. +\fBF_init\fP and \fBf_exit\fP do not have any arguments. +.IP +The \fB\(mid\fP flag will show what libraries are used in loading Fortran +programs. +.NH 1 +FILE FORMATS +.XS +\*(SN File Formats +.XE +.Nh 2 Structure\ of\ Fortran\ Files +Fortran requires four kinds of external files: +sequential formatted and unformatted, +and direct formatted and unformatted. +On +\s-1UNIX\s0 +systems, +these are all implemented as ordinary files +which are assumed to have the proper +internal structure. +.IP +Fortran \s-1I/O\s0 is based on \f2records\f1. +When a direct file is opened in a Fortran program, +the record length of the records must be given, +and this is used by the Fortran \s-1I/O\s0 system to +make the file look as if it is made up of records +of the given length. +In the special case that the record length is given +as 1, +the files are not considered to be divided into records, +but are treated as byte-addressable byte strings; +that is, +as ordinary +\s-1UNIX\s0 +file system files. +(A read or write request on such a file keeps consuming bytes until +satisfied, rather than being restricted to a single record.) +.IP +The peculiar requirements on sequential unformatted files +make it unlikely that they will ever be read or written by any means except Fortran \s-1I/O\s0 statements. +Each record is preceded and followed by +an integer containing the record's length in bytes. +.IP +The Fortran \s-1I/O\s0 system breaks sequential formatted files +into records while reading by using each newline +as a record separator. +The result of reading off the end of a record is undefined according to the Standard. +The \s-1I/O\s0 system is permissive and +treats the record as being extended by blanks. +On output, +the \s-1I/O\s0 system will write a newline at the end of each +record. +It is also possible for programs to write newlines +for themselves. +This is an error, +but the only effect will be that the single record +the user thought he wrote will be treated as +more than one record when being read or +backspaced over. +.Nh 2 Portability\ Considerations +The Fortran \s-1I/O\s0 system uses only the facilities of the +standard C \s-1I/O\s0 library, +a widely available and fairly portable package, +with the following two nonstandard features: +the \s-1I/O\s0 system needs to know whether a file +can be used for direct \s-1I/O\s0, +and whether or not it is possible to backspace. +Both of these facilities are implemented +using the +.B fseek +routine, +so there is a routine +.B canseek +which determines if +.B fseek +will have the desired effect. +Also, the +.B inquire +statement provides the user +with the ability to find out if two files are the +same, +and to get the name of an already opened file +in a form which would enable the program to reopen +it. +Therefore there are two routines which +depend on facilities of the operating system +to provide these two services. +In any case, +the \s-1I/O\s0 system +runs on the \s-1PDP-11\s0, \s-1VAX-11/780\s0, and Interdata 8/32 +\s-1UNIX\s0 +systems. +.Nh 2 Logical\ Units\ and\ Files +Fortran logical unit numbers may be any integer between 0 and 99. +The number of simultaneously open files is currently limited to 48. +.IP +Units 5, 6, and 0 are connected before the program begins to +standard input, standard output, and standard error respectively. +.IP +If an unit is opened explicitly by an \fBopen\fP statement with +a \fBfile=\fP keyword, then the file name is the name from +the \fBopen\fP statement. +Otherwise, the default file name corresponding to unit \fIn\fP is +\fBfort.\fP\fIn\fP. +If there is an environment variable whose name is the same as +the tail of the file name after periods are deleted, +then the contents of that environment variable +are used as the name of the file. +See [9] for details. +.IP +The default connection for all units is for sequential formatted \s-1I/O\s0. +The Standard does not specify where a file which has been explicitly +\fBopen\fRed +for sequential \s-1I/O\s0 is initially positioned. +The \s-1I/O\s0 system will position the file at the beginning. +Therefore a +.B write +will destroy any data already in the file, but a +.B read +will work reasonably. +To position a file to its end, +use a \fBread\fP loop, or the system dependent function \fBfseek\fP. +The preconnected units +0, 5, and 6 are positioned as they come +from the program's parent process. +.bp +.SH +APPENDIX A: Differences Between Fortran 66 and Fortran 77 +.XS +Appendix A. Differences Between Fortran 66 and Fortran 77 +.XE +.LP +The following is a very brief description of the differences +between the 1966 [2] and the 1977 [1] Standard languages. +We assume that the reader is familiar with Fortran 66. +We do not pretend to be complete, precise, +or unbiased, +but plan to describe what we feel are the most important aspects of the new language. +The best current information on the 1977 Standard is in publications of the +\s-1X3J3\s0 Subcommittee of the +American National Standards Institute, and +the \s-1ANSI\s0 X3.9-1978 document, the official description of the language. +The Standard is written in English rather than a meta-language, +but it is forbidding and legalistic. +A number of tutorials and textbooks +are available +(see Appendix B). +.NH 0 +Features Deleted from Fortran 66 +.XS +\*(SN Features Deleted from Fortran 66 +.XE +.Nh 2 Hollerith +All notions of ``Hollerith'' +(\fIn\fP\|\fBh\fR) +as data +have been officially removed, although our compiler, like almost all in the foreseeable future, +will continue to support this archaism. +.Nh 2 Extended\ Range\ of\ DO +.IP +In Fortran 66, under a set of very restrictive and rarely-understood conditions, it is permissible +to jump out of the range of a +.B do +loop, then jump back into it. +Extended range has been removed in the Fortran 77 language. +The restrictions are so special, and the implementation of extended range is so unreliable in many compilers, +that this change really counts as no loss. +.NH 1 +Program Form +.XS +\*(SN Program Form +.XE +.Nh 2 Blank\ Lines +Completely blank lines are now legal comment lines. +.Nh 2 Program\ and\ Block\ Data\ Statements +A main program may now begin with a statement that gives that program an external name: +.DS +program work +.DE +Block data procedures may also have names. +.DS +block data stuff +.DE +There is now a rule that only +.I one +unnamed +block data procedure may appear in a program. +(This rule is not enforced by our system.) +The Standard does not specify the effect of the program and block data names, +but they are clearly intended to aid conventional loaders. +.Nh 2 ENTRY\ Statement +Multiple entry points are now legal. +Subroutine and function subprograms may have additional entry points, +declared by an +.B entry +statement with an optional argument list. +.DS +entry extra(a, b, c) +.DE +Execution begins at the first statement following the +.B entry +line. +All variable declarations must precede all executable statements in the procedure. +If the procedure begins with a +.B subroutine +statement, +all entry points are subroutine names. +If it begins with a +.B function +statement, each entry is a function entry point, +with type determined by the type declared for the entry name. +If any entry is a character-valued function, +then all entries must be. +In a function, an entry name of the same type as that where control entered +must be assigned a value. +Arguments do not retain their values between calls. +(The ancient trick of calling one entry point with a large number of arguments +to cause the procedure to ``remember'' the locations of those arguments, +then invoking an entry with just a few arguments for later calculation, +is still illegal. +Furthermore, the trick doesn't work in our implementation, +since arguments are not kept in static storage.) +.Nh 2 \s-1DO\s0\ Loops +.B do +variables and range parameters may now be of integer, real, or double precision types. +(The use of floating point +.B do +variables is very dangerous +because of the possibility of unexpected roundoff, +and we strongly recommend against their use.) +The action of the +.B do +statement is now defined for all values of the +.B do +parameters. +The statement +.DS +do 10 i = l, u, d +.DE +performs +$ max (0^,^ left floor ( u - l + d ) / d^ right floor )$ +iterations. +The +.B do +variable has a predictable value when exiting a loop: +the value at the time a +.B goto +or +.B return +terminates the loop; +otherwise +the value that failed the limit test. +.Nh 2 Alternate\ Returns +In a +.B subroutine +or subroutine +.B entry +statement, +some of the arguments may be noted by an asterisk, as in +.DS +subroutine s(a, \(**, b, \(**) +.DE +The meaning of the ``alternate returns'' is described +in section 5.2 of Appendix A. +.NH 1 +Declarations +.XS +\*(SN Declarations +.XE +.Nh 2 CHARACTER\ Data\ Type +One of the biggest improvements to the language is the addition of a character-string data type. +Local and +common character variables must have a length denoted by a constant expression: +.DS +character\(**17 a, b(3,4) +character\(**(6+3) c +.DE +If the length is omitted entirely, it is assumed equal to 1. +A character string argument may have a constant length, +or the length may be declared to be the same as that of the corresponding actual argument at run time +by a statement like +.DS +character\(**(\(**) a +.DE +(There is an intrinsic function +.B len +that returns the actual length of a character string.) +Character arrays and common blocks containing character variables must be packed: +in an array of character variables, the first character of one element must follow the last character of +the preceding element, without holes. +.Nh 2 IMPLICIT\ Statement +The traditional implied declaration rules still hold: +a variable whose name begins with +\fBi, j, k, l, m,\fR or \fBn\fR is of type +\f3integer\f1; +other variables are of type +.B real, +unless otherwise declared. +This general rule may be overridden with an +.B implicit +statement: +.DS +implicit real(a-c,g), complex(w-z), character\(**(17) (s) +.DE +declares that variables whose name begins with an +\fBa ,b, c,\fR +or +\fBg\fR +are +.B real, +those beginning with +\fBw, x, y,\fR +or +\fBz\fR +are assumed +.B complex, +and so on. +It is still poor practice to depend on implicit typing, but this statement is an industry standard. +.Nh 2 PARAMETER\ Statement +It is now possible to give a constant a symbolic name, as in +.DS +character str\(**(\(**) +parameter (x=17, y=x/3, pi=3.14159d0, str=\(fmhello\(fm) +.DE +The type of each parameter name is governed +by the same implicit and explicit rules as for a variable. +Symbolic names for \fBcharacter\fP constants may be declared with +an implied length ``(\(**)''. +The right side of each equal sign must be a constant expression +(an expression made up of constants, operators, and already defined parameters). +.Nh 2 Array\ Declarations +Arrays may now have as many as seven dimensions. +(Only three were permitted in 1966.) +The lower bound of each dimension may be declared +to be other than 1 by +using a colon. +Furthermore, an adjustable array bound may be an integer expression involving constants, +arguments, and variables in +.B common. +.DS +real a(\(mi5:3, 7, m:n), b(n+1:2\(**n) +.DE +The upper bound on the last dimension of an array argument may be denoted by an asterisk +to indicate that the upper bound is not specified: +.DS +integer a(5, \(**), b(\(**), c(0:1, \(mi2:\(**) +.DE +.Nh 2 SAVE\ Statement +A little known rule of Fortran 66 is that variables in a procedure do +not necessarily retain their values between invocations of that procedure. +This rule permits overlay and stack implementations for the affected variables. +In Fortran 77, three types of variables automatically keep there values: +variables in blank common, +variables defined in \fBdata\fP statements and never changed, and +variables in named common blocks which have not become undefined. +At any instant in the execution of a program, +if a named common block is declared neither in the currently executing procedure +nor in any of the procedures in the chain of callers, +all of the variables in that common block become undefined. +Fortran 77 permits one to specify that certain variables and common blocks are +to retain their values between invocations. +The declaration +.DS +save a, /b/, c +.DE +leaves the values of the variables +.B a +and +.B c +and all of the contents of common block +.B b +unaffected by an exit from the procedure. +The simple declaration +.DS +save +.DE +has this effect on all variables and common blocks in the procedure. +A common block must be \fBsave\fRd in every procedure in which it is declared +if the desired effect is to occur. +.Nh 2 INTRINSIC\ Statement +All of the functions specified in the Standard are in a single category, +``intrinsic functions'', rather than being divided into ``intrinsic'' and ``basic external'' functions. +If an intrinsic function is to be passed to another procedure, it must be declared +.B intrinsic. +Declaring it +.B external +(as in Fortran 66) causes a function other than the built-in one to be passed. +.NH 1 +Expressions +.XS +\*(SN Expressions +.XE +.Nh 2 Character\ Constants +Character string constants are marked by strings surrounded by apostrophes. +If an apostrophe is to be included in a constant, it is repeated: +.DS + \(fmabc\(fm + \(fmain\(fm\(fmt\(fm +.DE +Although null (zero-length) character strings are not allowed in the +standard Fortran, they may be used with \fBf77\fP. +Our compiler has two different quotation marks, `` \(fm '' and `` " ''. +(See section 2.9 in the main text.) +.Nh 2 Concatenation +One new operator has been added, +character string concatenation, marked by a double slash +``//''. +The result of a concatenation +is the string containing the characters +of the left operand followed by the characters of +the right operand. +The character expressions +.DS + \(fmab\(fm // \(fmcd\(fm + \(fmabcd\(fm +.DE +are equal. +.IP +Dummy arguments of type character may be declared with implied +lengths: +.DS +subroutine s ( a, b ) +character a\(**(\(**), b\(**(\(**) +.DE +Such dummy arguments may be used in concatenations in assign statements: +.DS +s = a // b +.DE +but not in other contexts. For example: +.DS +if( a // b .eq. \(fmabc\(fm ) key = 1 +call sub( a // b ) +.DE +are legal statements if ``a'' and ``b'' are dummy arguments +declared with explicit lengths, or if they are not arguments. +These are illegal if they are declared with implied lengths. +.Nh 2 Character\ String\ Assignment +The left and right sides of a character assignment may not share storage. +(The assumed implementation of character assignment is to copy characters from the right to the left side.) +If the left side is longer than the right, it is padded with blanks. +If the left side is shorter than the right, trailing characters are discarded. +Since the two sides of a character assignment must be disjoint, the +following are illegal: +.DS +str = \(fm\ \(fm // str +str = str(2:) +.DE +These are not flagged as errors during compilation or execution, +however the result is undefined. +.Nh 2 Substrings +It is possible to extract a substring of a character variable or character +array element, using the colon notation: +.DS +a(i,\|j) (m:n) +.DE +is the string of $(n-m+1)$ characters beginning at the +$m sup th$ character of the character array element $a sub ij$. +Results are undefined unless $m<=n$. +Substrings may be used on the left sides of assignments and as procedure actual arguments. +.Nh 2 Exponentiation +It is now permissible to raise real quantities to complex powers, +or complex quantities to real or complex powers. +(The principal part of the logarithm is used.) +Also, multiple exponentiation is now defined: +.DS +a\(**\(**b\(**\(**c is equivalent to a \(**\(** (b\(**\(**c) +.DE +.Nh 2 Relaxation\ of\ Restrictions +Mixed mode expressions are now permitted. +(For instance, +it is permissible to combine integer and complex quantities in an expression.) +.IP +Constant expressions are permitted where a constant is allowed, +except in +.B data +statements +and +.B format +statements. +(A constant expression is made up of explicit constants and +\fBparameter\fRs +and the Fortran operators, +except for exponentiation to a floating-point power.) +An adjustable dimension may now be an integer expression involving constants, +arguments, and variables in +.B common. +.IP +Subscripts may now be general integer expressions; +the old +$c v +- c'$ +rules have been removed. +.B do +loop bounds may be general integer, real, or double precision expressions. +Computed +.B goto +expressions and \s-1I/O\s0 unit numbers may be general integer expressions. +.NH 1 +Executable Statements +.XS +\*(SN Executable Statements +.XE +.Nh 2 IF-THEN-ELSE +At last, the +if-then-else +branching structure has been added to Fortran. +It is called a ``Block If\|''. +A Block If begins with a statement of the form +.DS +if ( . . . ) then +.DE +and ends with an +.DS +end if +.DE +statement. +Two other new statements may appear in a Block If. +There may be several +.DS +else if (. . .) then +.DE +statements, +followed by at most one +.DS +else +.DE +statement. +If the logical expression in the Block If statement is true, +the statements following it up to the next +.B "else if", +.B else, +or +.B "end if" +are executed. +Otherwise, the next +.B "else if" +statement in the group is executed. +If none of the +.B "else if" +conditions are true, control passes to the statements following the +.B else +statement, if any. +(The +.B else +block must follow all +.B "else if" +blocks in a Block If. +Of course, there may be Block Ifs embedded inside of other Block If structures.) +A case construct may be rendered: +.DS +if (s .eq. \(fmab\(fm) then + . . . +else if (s .eq. \(fmcd\(fm) then + . . . +else + . . . +end if +.DE +.Nh 2 Alternate\ Returns +Some of the arguments of a subroutine call may be statement labels preceded by an asterisk, as in: +.DS +call joe(j, \(**10, m, \(**2) +.DE +A +.B return +statement may have an integer expression, such as: +.DS +return k +.DE +If the entry point has +$n$ +alternate return (asterisk) arguments +and if $1<=k<=n$, the return is followed by a branch to the corresponding statement label; +otherwise the usual return to the statement following the +.B call +is executed. +.NH 1 +Input/Output +.XS +\*(SN Input/Output +.XE +.Nh 2 Format\ Variables +A format may be the value of a character expression (constant or otherwise), +or be stored in a character array, as in: +.DS +write(6, \(fm(i5)\(fm) x +.DE +.Nh 2 END=,\ ERR=,\ and\ IOSTAT=\ Clauses +A +.B read +or +.B write +statement may contain +.B end=, +.B err=, +and +.B iostat= +clauses, as in: +.DS +write(6, 101, err=20, iostat=a(4)) +read(5, 101, err=20, end=30, iostat=x) +.DE +Here 5 and 6 are the +.I units +on which the \s-1I/O\s0 is done, +101 is the statement number of the associated format, +20 and 30 are statement numbers, +and +.B a +and +.B x +are integer variables. +If an error occurs during \s-1I/O\s0, +control returns to the program at statement 20. +If the end of the file is reached, +control returns to the program at statement 30. +In any case, the variable referred to in +the +.B iostat= +clause is given a value when +the \s-1I/O\s0 statement finishes. +(Yes, the value is assigned to the name on the right side of the equal sign.) +This value is zero if all went well, +negative for end of file, +and some positive value for errors. +.Nh 2 Formatted\ \s-1I/O\s0 +.NH 3 +Character Constants +.IP +Character constants in formats are copied literally to the output. +.IP +A format may be specified as a character constant within the +.B read +or +.B write +statement. +.DS +write(6,\|\(fm(i2,\|\(fm\|\(fm isn\|\(fm\|\(fm\|\(fm\|\(fm\|t \|\(fm\|\(fm,i1)\|\(fm) 7, 4 +.DE +produces +.DS + 7 isn\|\(fm\|t 4 +.DE +In the example above, the format is the character constant +.DS +(i2,\|\(fm isn\|\(fm\|\(fmt \|\(fm,i1) +.DE +and the embedded character constant +.DS + isn\|\(fmt +.DE +is copied into the output. +.IP +The example could have been written more legibly by taking advantage +of the two types of quote marks. +.DS +write(6,\|\(fm(i2," isn\|\(fm\|\|\(fm\|t ",i1)\|\(fm) 7, 4 +.DE +However, the double quote is not standard Fortran 77. +.IP +The standard does not allow reading into character constants or +Hollerith fields. +In order to facilitate running older programs, the Fortran \s-1I/O\s0 library +allows reading into Hollerith fields; however this is a practice to be +avoided. +.NH 3 +Positional Editing Codes +.IP +.B t, +.B tl, +.B tr, +and +.B x +codes +control where the +next character is in the record. +\fBtr\fIn\fR +or +\fIn\fBx\fR +specifies that the next character is +$n$ to the right of the current position. +\fBtl\fIn\fR +specifies that the next character is +$n$ to the left of the current position, +allowing parts of the record to be reconsidered. +\fBt\fIn\fR +says that the next character is to be character +number $n$ in the record. +(See section 3.3 in the main text.) +.NH 3 +Colon +.IP +A colon in the format terminates the \s-1I/O\s0 operation +if there are no more data items in the \s-1I/O\s0 list, +otherwise it has no effect. +In the fragment +.DS +x=\(fm("hello", :, " there", i4)\(fm +write(6, x) 12 +write(6, x) +.DE +the first +.B write +statement prints +.DS +hello there 12 +.DE +while the second only prints +.DS +hello +.DE +.NH 3 +Optional Plus Signs +.IP +According to the Standard, +each implementation has the option of putting +plus signs in front of non-negative +numeric output. +The +.B sp +format code may be used to make the optional plus +signs actually appear for all subsequent items +while the format is active. +The +.B ss +format code guarantees that the \s-1I/O\s0 system will not +insert the optional plus signs, +and the +.B s +format code restores the default behavior of +the \s-1I/O\s0 system. +(Since we never put out optional plus signs, +.B ss +and +.B s +codes have the same effect in our implementation.) +.NH 3 +Blanks on Input +.IP +Blanks in numeric input fields, +other than leading blanks, +will be ignored following a +.B bn +code in a format +statement, +and will be treated as zeros following a +.B bz +code in a format statement. +The default for a unit may be changed by using +the +.B open +statement. +(Blanks are ignored by default.) +.NH 3 +Unrepresentable Values +.IP +The Standard requires that if a numeric item +cannot be represented in the form required by a format code, +the output field must be filled with asterisks. +(We think this should have been an option.) +.NH 3 +Iw.m +.IP +There is a new integer output code, +\fBi\fIw.m.\fR +It is the same as +\fBi\fIw\fR, +except that there will be at least $m$ +digits in the output field, +including, +if necessary, +leading zeros. +The case \fBi\fR$w.0$ is special, +in that if the value being printed is 0, +the output field is +entirely blank. +\fBi\fIw\fB.1\fR +is the same as +\fBi\fIw\fR. +.NH 3 +Floating Point +.IP +On input, exponents may start with the letter +\fBE, D, e, \fRor \fBd.\fR +All have the same meaning. +On output we always use \fBe\fR or \fBd\fR. +The +.B e +and +.B d +format codes also have identical meanings. +A leading zero before the decimal point in +.B e +output +without a scale factor is optional with the +implementation. +There is a +\fBg\fIw.d\fR +format code which is the same as +\fBe\fIw.d\fR +and +\fBf\fIw.d\fR +on input, +but which chooses +.B f +or +.B e +formats for output depending +on the size of the number and of $d$. +.NH 3 +``A'' Format Code +.IP +The +.B a +code is used for character data. +\fBa\fIw\fR +uses a field width of $w$, +while a plain +.B a +uses the length of the internal character item. +.Nh 2 Standard\ Units +There are default formatted input and output units. +The statement +.DS +read 10, a, b +.DE +reads from the standard unit using format statement 10. +The default unit may be explicitly specified by an asterisk, as in +.DS +read(\(**, 10) a, b +.DE +Similarly, the standard output unit is specified by a +.B print +statement or an asterisk unit: +.DS +print 10 +write(\(**, 10) +.DE +.Nh 2 List-Directed\ \s-1I/O\s0 +List-directed \s-1I/O\s0 is a +kind of free form input for sequential \s-1I/O\s0. +It is invoked by using an asterisk as the +format identifier, as in +.DS +read(6, \(**) a,b,c +.DE +.IP +On input, +values are separated by strings of blanks +and possibly a comma. +On \s-1UNIX\s0, tabs may be used +interchangeably with blanks as separators. +Values, +except for character strings, +cannot contain blanks. +End of record counts as a blank, +except in character strings, +where it is ignored. +Complex constants are given as two real constants +separated by a comma and enclosed in parentheses. +A null input field, +such as between two consecutive commas, +means the corresponding variable in the +\s-1I/O\s0 list is not changed. +Values may be preceded by repetition counts, +as in +.DS +4\(**(3.,2.) 2\(**, 4\(**\|\(fm\|hello\|\(fm +.DE +which stands for 4 complex constants, 2 null values, +and 4 string constants. +.IP +The Fortran standard requires data being read into \fBcharacter\fP variables +by a list-directed read to be enclosed in quotes. +In our system, the quotes are optional for strings which do not start with +a digit or quote and do not contain separators. +.IP +For output, suitable formats are chosen for +each item. +The values of character strings are printed; +they are not enclosed in quotes. +According to the standard, +they could not be read back +using list-directed input. +However much of this data could be read back in with list-directed +\s-1I/O\s0 on our system. +.Nh 2 Direct\ \s-1I/O\s0 +A file connected for direct access consists of +a set of equal-sized records each of which is +uniquely identified by a positive integer. +The records may be written or read in any order, +using direct access \s-1I/O\s0 statements. +.IP +Direct access +.B read +and +.B write +statements +have an extra argument, +.B rec=, +which gives the record number to be read or written. +.DS +read(2, rec=13, err=20) (a(i), i=1, 203) +.DE +reads the thirteenth record into the array +.B a. +.IP +The size of the records must be given by an +.B open +statement +(see below). +Direct access files may be connected for either formatted +or unformatted \s-1I/O\s0. +.Nh 2 Internal\ Files +Internal files are character string objects, +such as variables or substrings, +or arrays of type character. +In the former cases there is only a single record +in the file; +in the latter case each array element is a record. +The Standard includes only sequential +formatted \s-1I/O\s0 on internal files. +(\s-1I/O\s0 is not a very precise term to use here, +but internal files are dealt with using +.B read +and +.B write.) +Internal files are used by giving the name of the +character object in place of the unit number, as in +.DS +character\(**80 x +read(5,\(fm(a)\(fm) x +read(x,\(fm(i3,i4)\(fm) n1,n2 +.DE +which reads a character string into +.B x +and then reads +two integers from the front of it. +A sequential +.B read +or +.B write +always starts at the beginning +of an internal file. +.IP +We also support two extensions of the standard. The first is +direct \s-1I/O\s0 on internal files. +This is like direct \s-1I/O\s0 on external files, +except that the number of records in the file cannot be +changed. +In this case a record is a single element of an array of character strings. +The second extension is list-directed \s-1I/O\s0 on internal files. +.Nh 2 OPEN,\ CLOSE,\ and\ INQUIRE\ Statements +These statements are used to connect and disconnect +units and files, +and to gather information about units and files. +.NH 3 +OPEN +.IP +The +.B open +statement is used to connect a file with a +unit, +or to alter some properties of the connection. +The following is a minimal example. +.DS +open(1, file=\(fmfort.junk\(fm) +.DE +.B open +takes a variety of arguments with meanings described below. +.EQ +delim off +.EN +. \" macros here +.de HP +.RT +.if !\\(IP .nr IP +1 +.sp \\n(PDu +.ne 3v +.in +\\n(PIu +.ti -\\n(PIu +\fB\\$1\fR\ \c +.. +.de P1 +.KS +.nf +.in +.3i +.ta .3i .6i .9i 1.2i 1.5i 1.8i +.sp +.. +.de P2 +.fi +.in -.3i +.sp +.KE +.. +.de TH +.RT +.sp \\n(PDu +.ne 3v +\fB\\$1\\$2\\$3\\$4\\$5\\$6\fR\ \c +.. +. \" end of macros +.RS +.HP unit= +an integer between 0 and 99 inclusive which is the unit to +which the file is to be connected (see section 5.3 in the text). +If this parameter is the first one in the +.B open +statement, +the +.B unit= +can be omitted. +.HP iostat= +is the same as in +.B read +or +.B write. +.HP err= +is the same as in +.B read +or +.B write. +.HP file= +a character expression, +which when stripped of trailing blanks, +is the name of the file to be connected to the unit. +The file name should not be given if the +.B status=\(fmscratch\(fm. +.HP status= +one of +.B \(fmold\(fm, +.B \(fmnew\(fm, +.B \(fmscratch\(fm, +or +.B \(fmunknown\(fm. +If this parameter is not given,\p +.B \(fmunknown\(fm +is assumed. +The meaning of +.B \(fmunknown\(fm +is processor dependent; +our system will create the file if it doesn't exist. +If +.B \(fmscratch\(fm +is given, +a temporary file will be created. +Temporary files are destroyed at the end of execution. +If +.B \(fmnew\(fm +is given, the file must not exist. +It will be created for both reading and writing. +If +.B \(fmold\(fm +is given, it is an error for the file not to exist. +.HP access= +.B \(fmsequential\(fm +or +.B \(fmdirect\(fm, +depending on whether the file is +to be opened for sequential or direct \s-1I/O\s0. +.HP form= +.B \(fmformatted\(fm +or +.B \(fmunformatted\(fm. +On +\s-1UNIX\s0 +systems, +.B form=\(fmprint\(fm +implies +.B \(fmformatted\(fm +with vertical format control. +(See section 3.4 of the text). +.HP recl= +a positive integer specifying the record length of +the direct access file being opened. +We measure all record lengths in bytes. +On +\s-1UNIX\s0 +systems a record length of 1 has the special meaning explained +in section 5.1 of the text. +.HP blank= +.B \(fmnull\(fm +or +.B \(fmzero\(fm. +This parameter has meaning only for formatted \s-1I/O\s0. +The default value is +.B \(fmnull\(fm. +.B \(fmzero\(fm +means that blanks, +other than leading blanks, +in numeric input fields are to be treated as zeros. +.RE +.IP +Opening a new file on a unit which is already connected +has the effect of first closing the old file. +.NH 3 +CLOSE +.IP +.B close +severs the connection between a unit and a file. +The unit number must be given. +The optional parameters are +.B iostat= +and +.B err= +with +their usual meanings, +and +.B status= +either +.B \(fmkeep\(fm +or +.B \(fmdelete\(fm. +For scratch files the default is +.B \(fmdelete\(fm; +otherwise +.B \(fmkeep\(fm +is the default. +.B \(fmdelete\(fm +means the file will be removed. +A simple example is +.DS +close(3, err=17) +.DE +.NH 3 +INQUIRE +.IP +The +.B inquire +statement gives information about +a unit +(``inquire by unit'') +or a file (``inquire by file''). +Simple examples are: +.DS +inquire(unit=3, name=xx) +inquire(file=\(fm\|junk\|\(fm, number=n, exist=l) +.DE +.RS +.HP file= +a character variable specifies the file the +.B inquire +is about. +Trailing blanks in the file name are ignored. +.HP unit= +an integer variable specifies the unit the +.B inquire +is about. +Exactly one of +.B file= +or +.B unit= +must be used. +.HP "iostat=, err=" +are as before. +.HP exist= +a logical variable. +The logical variable is set to +.B ".true." +if the file or unit +exists and is set to +.B ".false." +otherwise. +.HP opened= +a logical variable. +The logical variable is set to +.B ".true." +if the file +is connected to a unit or if the unit is connected +to a file, +and it is set to +.B ".false." +otherwise. +.HP number= +an integer variable to which is assigned the +number of the unit connected to the file, +if any. +.HP named= +a logical variable to which is assigned +.B ".true." +if +the file has a name, +or +.B ".false." +otherwise. +.HP name= +a character variable to which is assigned the name +of the file (inquire by file) or the name of the +file connected to the unit (inquire by unit). +.HP access= +a character variable to which will be assigned +the value +.B \(fmsequential\(fm +if the connection is for +sequential \s-1I/O\s0, +.B \(fmdirect\(fm +if the connection is for direct \s-1I/O\s0, +.B \(fmunknown\(fm +if not connected. +.HP sequential= +a character variable to which is assigned the +value +.B \(fmyes\(fm +if the file could be connected for +sequential \s-1I/O\s0, +.B \(fmno\(fm +if the file could not be connected for sequential \s-1I/O\s0, +and +.B \(fmunknown\(fm +if we can't tell. +.HP direct= +a character variable to which is assigned the value +.B \(fmyes\(fm +if the file could be connected for direct \s-1I/O\s0, +.B \(fmno\(fm +if the file could not be connected for direct +\s-1I/O\s0, and +.B \(fmunknown\(fm +if we can't tell. +.HP form= +a character variable to which is assigned the value +.B \(fmunformatted\(fm +if the file is connected for unformatted \s-1I/O\s0, +.B \(fmformatted\(fm +if the file is connected for formatted \s-1I/O\s0, +.B \(fmprint\(fm +for formatted \s-1I/O\s0 with vertical format control, or +.B \(fmunknown\(fm +if not connected. +.HP formatted= +a character variable to which is assigned the value +.B \(fmyes\(fm +if the file could be connected for formatted \s-1I/O\s0, +.B \(fmno\(fm +if the file could not be connected for formatted \s-1I/O\s0, +and +.B \(fmunknown\(fm +if we can't tell. +.HP unformatted= +a character variable to which is assigned the value +.B \(fmyes\(fm +if +the file could be connected for unformatted \s-1I/O\s0, +.B \(fmno\(fm +if the file could not be connected for unformatted \s-1I/O\s0, +and +.B \(fmunknown\(fm +if we can't tell. +.HP recl= +an integer variable to which is assigned the record length +of the records in the file if the file is connected +for direct access. +.HP nextrec= +an integer variable to which is assigned one more +than the number of the the last record read from a file connected +for direct access. +.HP blank= +a character variable to which is assigned the value +.B \(fmnull\(fm +if null blank control is in effect for the file +connected for formatted \s-1I/O\s0, +.B \(fmzero\(fm +if blanks are being converted to zeros and +the file is connected for formatted \s-1I/O\s0. +.RE +.IP +For information on file permissions, ownership, etc., +use the Fortran library routines \fBstat\fP and \fBaccess\fP. +.IP +For further discussion of the \s-1UNIX\s0 Fortran \s-1I/O\s0 system +see ``Introduction to the f77 I/O Library'' [9]. +.bp +.SH +APPENDIX B: References and Bibliography +.XS +Appendix B. References and Bibliography +.XE +.LP +.sp +.B +References +.R +.IP 1. 3 +\f2American National Standard Programming Language \s-1FORTRAN\s0, +\s-1ANSI\s0 X3.9-1978\f1. +New York: American National Standards Institute, 1978. +.IP 2. +\f2\s-1USA\s0 Standard \s-1FORTRAN\s0, \s-1USAS X\s03.9-1966\f1. +New York: United States of America Standards Institute, 1966. +Clarified in \f2Comm. \s-1ACM\s0\f1 12:289 (1969) +and \f2Comm. \s-1ACM\s0\f1 14:628 (1971). +.IP 3. +Kernighan, B. W., and D. M. Ritchie. \f2The C Programming Language.\f1 +Englewood Cliffs: Prentice-Hall, 1978. +.IP 4. +Ritchie, D. M. Private communication. +.IP 5. +Johnson, S. C. ``A Portable Compiler: Theory and Practice,'' +\f2Proceedings of Fifth \s-1ACM\s0 Symposium on +Principles of Programming Languages\f1. 1978. +.IP 6. +Feldman, S. I. ``An Informal Description of \s-1EFL\s0,'' +internal memorandum. +.IP 7. +Kernighan, B. W. ``\s-1RATFOR\s0\(emA Preprocessor for +Rational Fortran,'' \f2Bell Laboratories Computing Science +Technical Report #55\f1. 1977. +.IP 8. +Ritchie, D. M. Private communication. +.IP 9. +Wasley, D. L. ``Introduction to the f77 I/O Library'', +\fI\s-1UNIX\s0 Programmer's Manual, Volume 2c\fR. +.sp +.LP +.B +Bibliography +.R +.LP +The following books or documents describe aspects of Fortran 77. +This list cannot pretend to be complete. +Certainly no particular endorsement is implied. +.IP 1. 3 +Brainerd, Walter S., et al. \f2Fortran 77 Programming.\f1 +Harper Row, 1978. +.IP 2. +Day, A. C. \f2Compatible Fortran.\f1 Cambridge University Press, 1979. +.IP 3. +Dock, V. Thomas. \f2Structured Fortran IV Programming.\f1 West, 1979. +.IP 4. +Feldman, S. I. ``The Programming Language \s-1EFL\s0,'' +\f2Bell Laboratories Technical Report\f1. +June 1979. +.IP 5. +Hume, J. N., and R. C. Holt. \f2Programming Fortran 77.\f1 +Reston, 1979. +.IP 6. +Katzan, Harry, Jr. \f2Fortran 77.\f1 Van Nostrand-Reinhold, 1978. +.IP 7. +Meissner, Loren P., and Organick, Elliott I. \f2Fortran 77 Featuring +Structured Programming\f1, Addison-Wesley, 1979. +.IP 8. +Merchant, Michael J. \f2\s-1ABC\s0's of Fortran Programming.\f1 +Wadsworth, 1979. +.IP 9. +Page, Rex, and Richard Didday. \f2Fortran 77 for Humans.\f1 +West, 1980. +.IP 10. +Wagener, Jerrold L. \f2Principles of Fortran 77 Programming.\f1 +Wiley, 1980. +.\" want Table of Contents to begin on page 2 hence must expand body +.\" of .TC macro to enable us to get handle on page number. +.pn 2 +.bp +.PX diff --git a/doc/ps1/03.f77io/Makefile b/doc/ps1/03.f77io/Makefile new file mode 100644 index 00000000..a67a9192 --- /dev/null +++ b/doc/ps1/03.f77io/Makefile @@ -0,0 +1,25 @@ +# +# Copyright (c) 1986 Regents of the University of California. +# All rights reserved. The Berkeley software License Agreement +# specifies the terms and conditions for redistribution. +# +# @(#)Makefile 5.1 (Berkeley) 4/21/86 +# +SRCS= f77IO.ms +MACROS= -msU +PRINTER=Pdp +TROFF= ditroff -${PRINTER} + +paper: paper.${PRINTER} + lpr -${PRINTER} -n paper.${PRINTER} + +paper.${PRINTER}: ${SRCS} + ${TROFF} ${MACROS} -t ${SRCS} > paper.${PRINTER} + +clean: + rm -f paper.[PT]* *.spell errs Errs make.out + +spell: ${SRCS} + @for i in ${SRCS}; do \ + echo $$i; spell $$i | sort | comm -23 - spell.ok > $$i.spell; \ + done diff --git a/doc/ps1/03.f77io/f77IO.ms b/doc/ps1/03.f77io/f77IO.ms new file mode 100644 index 00000000..694a4e20 --- /dev/null +++ b/doc/ps1/03.f77io/f77IO.ms @@ -0,0 +1,922 @@ +.\" Copyright (c) 1980 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)f77IO.ms 5.4 (Berkeley) 4/28/86 +.\" +.EH 'PS1:3-%''Introduction to the f77 I/O Library' +.OH 'Introduction to the f77 I/O Library''PS1:3-%' +.de Fo +Fortran\\$1 +.. +.de Sm +\s-1\\$1\s0 +.. +.\" +.\" Nh macro - same as NH but also saves heading for table of contents +.\" Nh usage: Nh level string, e.g.: .Nh 2 "Calculator Sample" +.de Nh +.NH \\$1 +\\$2 +.XS +.if '2'\\$1' .ti .25i +.if '3'\\$1' .ti .5i +\\*(SN \\$2 +.XE +.PP +.. +.ND "" +.\" .nr ll 7.0i +.\" .nr LL 7.0i +.\" .po 0.0i +.\" .rm PT +.\" .rm BT +.\".RP +.TL +Introduction to the f77 I/O Library +.AU +David L. Wasley +.AU +J. Berkman +.AI +University of California, Berkeley +Berkeley, California 94720 +.AB +The f77 I/O library, libI77.a, +includes routines to perform all of the standard types of +.Fo +input and output specified in the +.Sm ANSI +1978 +.Fo +standard. +The I/O Library was written originally by Peter J. Weinberger at Bell Labs. +Where the original implementation was incomplete, +it has been rewritten to more closely implement the standard. +Where the standard is vague, +we have tried to provide flexibility within the constraints of the +.UX +operating system. +A number of logical extensions and enhancements have been provided +such as the use of the C stdio library routines to provide +efficient buffering for file I/O. +.sp 2 +.LP +Revised September, 1985 +.AE +.LP +.\" page 2 is allocated to the table of contents +.pn 3 +.bp +.Nh 1 "Fortran I/O" +The requirements of the +.Sm ANSI +standard impose significant overhead +on programs that do large amounts of I/O. Formatted I/O can be +very ``expensive'' while direct access binary I/O is usually very efficient. +Because of the complexity of +.Fo +I/O, +some general concepts deserve clarification. +.Nh 2 "Types of I/O and logical records" +There are four forms of I/O: +.B formatted, +.B unformatted, +.B list\ directed, +and +.B namelist. +The last two are +related to formatted but do not obey all the rules for formatted I/O. +There are two types of ``files'': +.B external +and +.B internal +and two modes of access to files: +.B direct +and +.B sequential. +The definition of a logical record depends upon the +combination of I/O form, file type, and access mode specified by the +.Fo +I/O statement. +.Nh 3 "Direct access external I/O" +A logical record in a +.B direct +access +.B external +file is a string of bytes +of a length specified when the file is opened. +Read and write statements must not specify logical records longer than +the original record size definition. Shorter logical records are allowed. +.B Unformatted +direct writes leave the unfilled part of the record undefined. +.B Formatted +direct writes cause the unfilled record to be padded with blanks. +.Nh 3 "Sequential access external I/O" +Logical records in +.B sequentially +accessed +.B external +files may be of arbitrary +and variable length. +Logical record length for +.B unformatted +sequential files is determined by +the size of items in the iolist. +The requirements of this form of I/O cause the external physical +record size to be somewhat larger than the logical record size. +For +.B formatted +write statements, logical record length is determined by +the format statement interacting with the iolist at execution time. +The ``newline'' character is the logical record delimiter. +Formatted sequential access causes one or more logical records +ending with ``newline'' characters to be read or written. +.Nh 3 "List directed and namelist sequential external I/O" +Logical record length for +.B list\ directed +and +.B namelist +I/O is relatively meaningless. +On output, the record length is dependent on the magnitude of the +data items. +On input, the record length is determined by the data types and the file +contents. +By ANSI definition, a slash, ``/'', terminates execution of a +list directed input operation. +Namelist input is terminated by ``&end'' or ``$end'' (depending on whether +the character before the namelist name was ``&'' or ``$''). +.Nh 3 "Internal I/O" +The logical record length for an +.B internal +read or write is the length of the +character variable or array element. Thus a simple character variable +is a single logical record. A character variable array is similar to +a fixed length direct access file, and obeys the same rules. +.B Unformatted +and +.B namelist +I/O are not allowed on ``internal'' files. +.Nh 2 "I/O execution" +Note that each execution of a +.Fo +.B unformatted +I/O statement causes a single +logical record to be read or written. Each execution of a +.Fo +.B formatted +I/O statement causes one or more logical records to be read or written. +.PP +A slash, ``/'', will terminate assignment of +values to the input list during +.B list\ directed +input and the remainder of the current input line is skipped. +The standard is rather vague on this point but seems to require that +a new external logical record be found at the start of any formatted +input. Therefore data following the slash is ignored and may be used +to comment the data file. +.PP +.B "Direct access list directed" +I/O is not allowed. +.B "Unformatted internal" +I/O is not allowed. +.B Namelist +I/O is allowed only with +.B "external sequential" +files. +All other flavors of I/O are allowed, although some are not part of the +.Sm ANSI +standard. +.PP +Any I/O statement may include an +.B err= +clause to specify an alternative branch to be taken on errors +and/or an +.B iostat= +clause to return the specific error code. +Any error detected during I/O processing will cause the program to abort +unless either +.B err= +or +.B iostat= +has been specificed in the program. +Read statements may include +.B end= +to branch on end-of-file. +The end-of-file indication for that logical unit may be reset with +a \fBbackspace\fP statement. +File position and the value of I/O list items is undefined following an error. +.sp 1 +.Nh 1 "Implementation details" +Some details of the current implementation may be useful in understanding +constraints on +.Fo +I/O. +.Nh 2 "Number of logical units" +Unit numbers must be in the range 0 \- 99. +The maximum number of logical units that a program may have open at one +time is the same as the +.UX +system limit, currently 48. +.Nh 2 "Standard logical units" +By default, logical units 0, 5, and 6 +are opened to ``stderr'', ``stdin'', and ``stdout'' respectively. +However they can be re-defined with an +.B open +statement. +To preserve error reporting, it is an error to close logical unit 0 +although it may be reopened to another file. +.PP +If you want to open the default file name for any preconnected logical unit, +remember to +.B close +the unit first. +Redefining the standard units may impair normal console I/O. +An alternative is to +use shell re-direction to externally re-define the above units. +To re-define default blank control or format of the standard input or output +files, use the +.B open +statement specifying the unit number and no +file name (see \(sc\|2.4). +.PP +The standard units, 0, 5, and 6, are named internally ``stderr'', ``stdin'', +and ``stdout'' respectively. +These are not actual file names and can not be used for opening these units. +.B Inquire +will not return these names and will indicate +that the above units are not named unless they have been opened to real files. +The names are meant to make error reporting more meaningful. +.Nh 2 "Vertical format control" +Simple vertical format control is implemented. The logical unit must be opened +for sequential access with +.B "form = \(fmprint\(fm" +(see \(sc\|3.2). +Control codes ``0'' and ``1'' are replaced in the output file +with ``\\n'' and ``\\f'' respectively. +The control character ``+'' is not implemented and, like +any other character in the first position of a record +written to a ``print'' file, is dropped. +The +.B "form = \(fmprint\(fm" +mode does not recognize vertical format control for +.B "direct formatted, list directed," +or +.B "namelist" +output. +.PP +An alternative is to use +the filter \fIfpr\fP(1) for vertical format control. +It replaces ``0'' and ``1'' by +``\\n'' and ``\\f'' respectively, and implements the ``+'' control code. +Unlike +.B "form = \(fmprint\(fm" +which drops unrecognized form control characters, \fIfpr\fP copies those +characters to the output file. +.Nh 2 "File names and the open statement" +A file name may be specified in an \fBopen\fP statement for the +logical unit. +If a logical unit is opened by an \fBopen\fP statement which does +not specify a file name, or it is opened implicitly by the execution +of a \fBread\fP, \fBwrite\fP, or \fBendfile\fP +statement, then the default file name is +.I fort.N +where +.I N +is the logical unit number. +Before opening the file, the library checks for an environment +variable with a name identical to the tail of the +file name with periods removed.\(dg +.FS +\(dgPeriods are deleted because they can not be part of environment variable names in the Bourne shell. +.FE +If it finds such an environment variable, it uses its value +as the actual name of the file. +For example, a program containing: +.DS +open(32,file=\(fm/usr/guest/census/data.d\(fm) +read(32,100) vec +write(44) vec +.DE +normally will read from \fI/usr/guest/census/data.d\fP and write to +\fIfort.44\fP in the current directory. +If the environment variables \fIdatad\fP and \fIfort44\fP are set, +e.g.: +.DS +% setenv datad mydata +% setenv fort44 myout +.DE +in the C shell or: +.DS +$ datad=mydata +$ fort44=myout +$ export datad fort44 +.DE +in the Bourne shell, then the program will read from \fImydata\fP and +write to \fImyout\fP. +.PP +An +.B open +statement need not specify a file name. If it refers to a logical +unit that is already open, the +.B blank= +and +.B form= +specifiers may be +redefined without affecting the current file position. +Otherwise, if +.B "status = \(fmscratch\(fm" +is specified, a temporary file with a +name of the form +.I tmp.FXXXXXX +will be opened, +and, by default, will be deleted when closed or during +termination of program execution. +.PP +It is an error to try to open an existing file with +.B "status = \(fmnew\(fm" +\&. +It is an error to try to open a nonexistent file with +.B "status = \(fmold\(fm" +\&. +By default, +.B "status = \(fmunknown\(fm" +will be assumed, and a file will be created if necessary. +.PP +By default, files are positioned +at their beginning upon opening, but see \fIfseek\fP(3f) +and \fIioinit\fP(3f) for alternatives. +Existing files are never truncated on opening. +Sequentially accessed external files are truncated to the current file +position on \fBclose\fP, \fBbackspace\fP, or \fBrewind\fP only if the last +access to the file was a write. +An +.B endfile +always causes such files to be truncated to the current +file position. +.Nh 2 "Format interpretation" +Formats which are in format statements are parsed by the compiler; +formats in \fBread\fP, \fBwrite\fP, and \fBprint\fP statements +are parsed during execution by the +.Sm I/O +library. +Upper as well as lower case characters are recognized in format statements +and all the alphabetic arguments to the I/O library routines. +.PP +If the external representation of a datum +is too large for the field width specified, the specified +field is filled with asterisks (\(**). +On \fBE\fPw.d\fBE\fPe output, +the exponent field will be filled with asterisks if the +exponent representation is too large. +This will only happen if ``e'' is zero (see appendix B). +.PP +On output, a real value that is truly zero will display as ``0.'' to +distinguish it from a very small non-zero value. +If this causes problems for other input systems, the +\fBBZ\fP edit descriptor may be used to cause the field +following the decimal point to be filled with zero's. +.PP +Non-destructive tabbing is implemented for both internal and external +formatted I/O. +Tabbing left or right on output +does not affect previously written portions of a record. +Tabbing right on output +causes unwritten portions of a record to be filled with blanks. +Tabbing right off the end of an input logical record is an error. +Tabbing left beyond the beginning of an input logical record leaves +the input pointer at the beginning of the record. +The format specifier +.B T +must be followed by a positive non-zero number. +If it is not, it will have a different meaning (see \(sc\|3.1). +.PP +Tabbing left requires seek ability on the logical unit. +Therefore it is not allowed in I/O to a terminal or pipe. +Likewise, nondestructive tabbing in either direction is possible +only on a unit that can seek. Otherwise tabbing right or spacing with +.B X +will write blanks on the output. +.Nh 2 "List directed output" +In formatting list directed output, the I/O system tries to prevent +output lines longer than 80 characters. +Each external datum will be separated by two spaces. +List directed output of +.B complex +values includes an appropriate comma. +List directed output distinguishes between +.B real +and +.B "double precision" +values and formats them differently. +Output of a character string that includes ``\\n'' +is interpreted reasonably by the output system. +.Nh 2 "I/O errors" +If I/O errors are not trapped by the user's program an appropriate +error message will be written to ``stderr'' before aborting. +An error number will be printed in ``[ ]'' along with a brief error message +showing the logical unit and I/O state. +Error numbers < 100 refer to +.UX +errors, and are described in the +introduction to chapter 2 of the +.UX +Programmer's Manual. +Error numbers \(>= 100 come from the I/O library, and are described +further in the appendix to this writeup\(dd. +.FS +\(dd On many systems, these are also available in \fIhelp f77 io_err_msgs\fP. +.FE +For internal I/O, part of the string will be printed with ``|'' at the +current position in the string. +For external I/O, part of the current record will be displayed if +the error was caused during reading from a file that can backspace. +.sp 1 +.Nh 1 "Non-``ANSI Standard'' extensions" +Several extensions have been added to the I/O system to provide +for functions omitted or poorly defined in the standard. +Programmers should be aware that these are non-portable. +.Nh 2 "Format specifiers" +.B B +is an acceptable edit control specifier. It causes return to the logical unit's +default mode of blank interpretation. +This is consistent with +.B S +which returns to default sign control. +.PP +.B P +by itself is equivalent to +.B 0P +\&. It resets the scale factor to the +default value, 0. +.PP +The form of the \fBE\fPw.d\fBE\fPe format specifier has been extended to +.B D +also. +The form \fBE\fPw.d.e is allowed but is not standard. +The ``e'' field specifies the minimum number of digits or spaces in the +exponent field on output. +If the value of the exponent is too large, the exponent notation +.B e +or +.B d +will be dropped from the output to allow one +more character position. +If this is still not adequate, the ``e'' field will be filled with +asterisks (\(**). +The default value for ``e'' is 2. +.PP +An additional form of tab control specification has been added. +The +.Sm ANSI +standard forms \fBTR\fPn, \fBTL\fPn, and \fBT\fPn are supported +where +.I n +is a positive non-zero number. +If +.B T +or n\fBT\fP is specified, tabbing will +be to the next (or n-th) 8-column tab stop. +Thus columns of alphanumerics can be lined up without counting. +.PP +A format control specifier has been added to suppress the newline +at the end of the last record of a formatted sequential write. The +specifier is a dollar sign ($). It is constrained by the same rules +as the colon (:). It is used typically for console prompts. +For example: + +.DS +write (\(**, "(\(fmenter value for x: \(fm,$)") +read (\(**,\(**) x +.DE +.PP +Radices other than 10 can be specified for formatted integer I/O +conversion. The specifier is patterned after +.B P, +the scale factor for +floating point conversion. It remains in effect until another radix is +specified or format interpretation is complete. The specifier is defined +as [n]\fBR\fP where 2 \(<= \fIn\fP \(<= 36. If +.I n +is omitted, +the default decimal radix is restored. +.PP +The format specifier \fBO\fPm.n may be used for an octal conversion; +it is equivalent to 8\fBR,I\fPm.n,10\fBR\fP. +Similarly, \fBZ\fPm.n is equivalent to 16\fBR,I\fPm.n,10\fBR\fP and +may be used for an hexadecimal conversion; +.PP +In conjunction with the above, a sign control specifier has been added +to cause integer values to be interpreted as unsigned during output +conversion. The specifier is +.B SU +and remains in effect until another +sign control specifier is encountered, or format interpretation is +complete.\(dg +.FS +\(dgNote: Unsigned integer values greater than (2\(**\(**31 - 1), +can be read and written using \fBSU\fP. +However they can not be used in +computations because +.Fo +uses signed arithmetic and such values appear to the arithmetic unit +as negative numbers. +.FE +Radix and ``unsigned'' specifiers could be used to format +a hexadecimal dump, as follows: + +.DS +2000 format ( SU, 8Z10.8 ) +.DE + +.Nh 2 "Print files" +The +.Sm ANSI +standard is ambiguous regarding the definition of a ``print'' file. +Since +.UX +has no default ``print'' file, an additional +.B form= +specifier +is now recognized in the +.B open +statement. +Specifying +.B "form = \(fmprint\(fm" +implies +.B formatted +and enables vertical format +control for that logical unit (see \(sc\|2.3). +Vertical format control is interpreted only on sequential formatted writes +to a ``print'' file. +.PP +The +.B inquire +statement will return +.B print +in the +.B form= +string variable +for logical units opened as ``print'' files. +It will return -1 for the unit number of an unconnected file. +.PP +If a logical unit is already open, an +.B open +statement including the +.B form= +option or the +.B blank= +option will do nothing but re-define those options. +This instance of the +.B open +statement need not include the file name, and +must not include a file name if +.B unit= +refers to a standard input or output. +Therefore, to re-define the standard output as a ``print'' file, use: + +.DS +open (unit=6, form=\(fmprint\(fm) +.DE +.Nh 2 "Scratch files" +A +.B close +statement with +.B "status = \(fmkeep\(fm" +may be specified for temporary files. +This is the default for all other files. +Remember to get the scratch file's real name, +using +.B inquire +\&, if you want to re-open it later. +.Nh 2 "List directed I/O" +List directed read has been modified to allow +tab characters wherever blanks are allowed. +It also allows input of a string not enclosed in quotes. +The string must not start with a digit or quote, +and can not contain any separators ( ``,'', ``/'', blank or tab ). +A newline will terminate the string unless escaped with \\. +Any string not meeting the above restrictions +must be enclosed in quotes (`` " '' or `` \(fm ''). +.PP +Internal list directed I/O has been implemented. During internal list reads, +bytes are consumed until the iolist is satisfied, or the ``end-of-file'' +is reached. +During internal list writes, records are filled until the iolist is satisfied. +The length of an internal array element should be at least 20 bytes to +avoid logical record overflow when writing double precision values. +Internal list read was implemented to make command line decoding easier. +Internal list write should be avoided. +.Nh 2 "Namelist I/O" +Namelist I/O is a common extension in Fortran systems. +The \fBf77\fP version was designed to be compatible with other +vendors versions; +it is described in ``A Portable Fortran 77 Compiler'', +by Feldman and Weinberger, August, 1985. +.sp 1 +.Nh 1 "Running older programs" +Traditional +.Fo +environments usually assume carriage control on all logical units, +usually interpret blank spaces on input as ``0''s, and often provide +attachment of global file names to logical units at run time. +There are several routines in the I/O library to provide these functions. +.Nh 2 "Traditional unit control parameters" +If a program reads and writes only units 5 and 6, then including +.B \-lI66 +in the f77 command will cause carriage control to be interpreted on +output and cause blanks to be zeros on input without further +modification of the program. +If this is not adequate, +the routine \fIioinit\fP(3f) can be called to specify control parameters +separately, including whether files should be positioned at their +beginning or end upon opening. +.Nh 2 "Ioinit()" +\fIIoinit\fP(3f) can be used to attach logical units +to specific files at run time, and to set global parameters for the +.Sm I/O +system. +It will look for names of a user specified form in the environment +and open the corresponding logical unit for +.B "sequential formatted" +I/O. Names must be of the form \fB\s-1PREFIX\s0\fP\fInn\fP where +.B \\s-1PREFIX\\s0 +is specified in the call to +.I ioinit +and +.I nn +is the logical unit to be opened. Unit numbers < 10 must include +the leading ``0''. +.PP +.I Ioinit +should prove adequate for most programs as written. +However, it +is written in +.Fo \-77 +specifically so that it may serve as an example for similar +user-supplied routines. +A copy may be retrieved by ``ar x /usr/lib/libU77.a ioinit.f''. +See \(sc\|2.4 for another way to override program file names +through environment variables. +.sp 1 +.Nh 1 "Magnetic tape I/O" +Because the I/O library uses stdio buffering, reading or writing +magnetic tapes should be done with great caution, or avoided if possible. +A set of routines has been provided to read and write arbitrary sized buffers +to or from tape directly. The buffer must be a +.B character +object. +.B Internal +I/O can be used to fill or interpret the buffer. +These routines do not use normal +.Fo +I/O processing and do not obey +.Fo +I/O rules. +See \fItopen\fP(3f). +.sp 1 +.Nh 1 "Caveat Programmer" +The I/O library is extremely complex yet we believe there are few bugs left. +We've tried to make the system as correct as possible according to +the +.Sm ANSI +X3.9\-1978 document and keep it compatible with the +.UX +file system. +Exceptions to the standard are noted in appendix B. +.bp +.DS C +.B "Appendix A" + +.B "I/O Library Error Messages" +.DE +.XS +Appendix A: I/O Library Error Messages +.XE +.sp 1 +.PP +The following error messages are generated by the I/O library. +The error numbers are returned in the \fBiostat=\fP variable. +Error numbers < 100 are generated by the +.UX +kernel. +See the introduction to chapter 2 of the +.UX +Programmers Manual for their description. +.nr PD 0 +.de Er +.ne 4v +.IP \\$1 +\fI\\$2\fP +.br +.. +.RS + +.Er 100 "error in format" +See error message output for the location +of the error in the format. Can be caused +by more than 10 levels of nested parentheses, or +an extremely long format statement. + +.Er 101 "illegal unit number" +It is illegal to close logical unit 0. +Unit numbers must be between 0 and 99 inclusive. + +.Er 102 "formatted i/o not allowed" +The logical unit was opened for +unformatted I/O. + +.Er 103 "unformatted i/o not allowed" +The logical unit was opened for +formatted I/O. + +.Er 104 "direct i/o not allowed" +The logical unit was opened for sequential +access, or the logical record length was +specified as 0. + +.Er 105 "sequential i/o not allowed" +The logical unit was opened for direct +access I/O. + +.Er 106 "can't backspace file" +The file associated with the logical unit +can't seek. May be a device or a pipe. + +.Er 107 "off beginning of record" +The format specified a left tab beyond the +beginning of an internal input record. + +.Er 108 "can't stat file" +The system can't return status information +about the file. Perhaps the directory is +unreadable. + +.Er 109 "no \(** after repeat count" +Repeat counts in list directed I/O must be +followed by an \(** with no blank spaces. + +.Er 110 "off end of record" +A formatted write tried to go beyond the +logical end-of-record. An unformatted read +or write will also cause this. + +.Er 111 "truncation failed" +The truncation of an external sequential file on +.B close , +.B backspace , +.B rewind , +or +.B endfile +failed. + +.Er 112 "incomprehensible list input" +List input has to be just right. + +.Er 113 "out of free space" +The library dynamically creates buffers for +internal use. You ran out of memory for this. +Your program is too big! + +.Er 114 "unit not connected" +The logical unit was not open. + +.Er 115 "invalid data for integer format term" +Only spaces, a leading sign and digits are allowed. + +.Er 116 "invalid data for logical format term" +Legal input consists of spaces (optional), a period (optional), and then +a ``t'', ``T'', ``f'', or ``F''. + +.Er 117 "\|\(fmnew\|\(fm file exists" +You tried to open an existing file with +``status=\|\(fmnew\|\(fm''. + +.Er 118 "can't find \|\(fmold\|\(fm file" +You tried to open a non-existent file +with ``status=\|\(fmold\|\(fm''. + +.Er 119 "opening too many files or unknown system error" +Either you are trying to open too many files +simultaneously or there has been an undetected system error. + +.Er 120 "requires seek ability" +Direct access requires seek ability. +Sequential unformatted I/O requires seek +ability on the file due to the special +data structure required. Tabbing left +also requires seek ability. + +.Er 121 "illegal argument" +Certain arguments to +.B open , +etc. will be +checked for legitimacy. Often only non-default +forms are looked for. + +.Er 122 "negative repeat count" +The repeat count for list directed input +must be a positive integer. + +.Er 123 "illegal operation for unit" +An operation was requested for a device +associated with the logical unit which +was not possible. This error is returned +by the tape I/O routines if attempting to +read past end-of-tape, etc. + +.Er 124 "invalid data for d, e, f or g format term" +Input data must be legal. + +.Er 125 "illegal input for namelist" +Column one of input is ignored, the namelist name +must match, the variables must be in the namelist, +and the data must be of the right type. +.if n .nr PD 1v +.if t .nr PD 0.3v +.RE +.bp +.LP +.DS C +.B "Appendix B" + +.B "Exceptions to the ANSI Standard" +.DE +.XS +Appendix B: Exceptions to the ANSI Standard +.XE +.sp 1 +.PP +A few exceptions to the +.Sm ANSI +standard remain. +.sp 1 +.LP +.B "Vertical format control" +.PP +The ``+'' carriage control specifier is not fully implemented +(see \(sc\|2.3). +It would be difficult to implement it correctly and still +provide +.UX -like +file I/O. +.PP +Furthermore, the carriage control implementation is asymmetrical. +A file written with carriage control interpretation can not be +read again with the same characters in column 1. +.PP +An alternative to interpreting carriage control internally is to +run the output file through a ``Fortran output filter'' +before printing. This filter could recognize a much broader range +of carriage control and include terminal dependent processing. +One such filter is \fIfpr\fP(1). +.sp 1 +.LP +.B "Default files" +.PP +Files created by default use of +.B endfile +statements are opened for +.B "sequential formatted" +access. There is no way to redefine such a file to allow +.B direct +or +.B unformatted +access. +.sp 1 +.LP +.B "Lower case strings" +.PP +It is not clear if the +.Sm ANSI +standard requires internally generated strings to be upper case or not. +As currently written, the +.B inquire +statement will return lower case strings for any alphanumeric data. +.sp 1 +.LP +.B "Exponent representation on Ew.dEe output" +.PP +If the field width for the exponent is too small, the standard +allows dropping the exponent character but only if the exponent +is > 99. This system does not enforce that restriction. +Further, the standard implies that the entire field, ``w'', should be +filled with asterisks if the exponent can not be displayed. +This system fills only the exponent field in the above case since +that is more diagnostic. +.sp 1 +.LP +.B "Pre-connection of files" +.PP +The standard says units must be pre-connected to files before the program +starts or must be explicitly opened. +Instead, the I/O library +connects the unit to a file on its first use in a +\fBread\fP, \fBwrite\fP, \fBprint\fP, or \fBendfile\fP statement. +Thus \fBinquire\fP by unit can not tell prior to a unit number use the +characteristics or name of the file corresponding to a unit. +.\" want Table of Contents to begin on page 2 hence must expand body +.\" of .TC macro to enable us to get handle on page number. +.pn 2 +.bp +.PX diff --git a/doc/ps1/04.pascal/Makefile b/doc/ps1/04.pascal/Makefile new file mode 100644 index 00000000..7a649ff8 --- /dev/null +++ b/doc/ps1/04.pascal/Makefile @@ -0,0 +1,106 @@ +# +# Copyright (c) 1980 Regents of the University of California. +# All rights reserved. The Berkeley software License Agreement +# specifies the terms and conditions for redistribution. +# +# @(#)makefile 6.1 (Berkeley) 5/7/86 +# +# This makefile assumes that csh is running the figures +# +PRINTER=Pdp +TROFF= ditroff -${PRINTER} +TBL= dtbl -${PRINTER} +LPR= lpr -n -${PRINTER} +SEC = ? +FIGURES=\ + firstout firstobjout firstobjout2\ + bigger2.p bigger3.p bigout1 bigger6.p bigout2 bigout3 bigout4\ + primeout1 primeout2\ + digitsout synerrout synerr2out\ + mismout clashout sinout1 sinout2\ + exprout typequout primeout3\ + katout copydataout kat2out katscript xxxxqqqout xxxxqqqout2\ + primes primes-d\ + comments1.p commentsout + +manual: lpr.${PRINTER} + ${LPR} lpr.${PRINTER} + +lpr.${PRINTER}: ${FIGURES} + soelim puman${SEC}.n | ${TBL} | csh -cf '${TROFF} -t >lpr.${PRINTER}' + +troff: ${FIGURES} + soelim puman${SEC}.n | ${TBL} | ${TROFF} + +csfix: + cc -O csfix.c -o csfix +firstout: first.p csfix + -csh -cf 'pix -g first.p |& expand | csfix >firstout' +firstobjout: first.p + -csh -cf 'pi -g first.p >& firstobjout ; px >& firstobjout' +firstobjout2: first.p + -csh -cf 'pi -g -p first.p >& firstobjout2 ; px >& firstobjout2' +bigger2.p: bigger.p + -expand bigger.p >bigger2.p +bigger3.p: bigger2.p csfix + cat -n bigger2.p | expand | csfix -d >bigger3.p +bigout1: bigger.p csfix + -csh -cf 'pix -g bigger.p |& expand | csfix >bigout1' +bigger6.p: bigger5.p csfix + cat -n bigger5.p | expand | csfix -d >bigger6.p +bigout2: bigger4.p + -csh -cf 'pix -g bigger4.p |& expand >bigout2' +bigout3: bigger7.p + -csh -cf 'pix -g bigger7.p |& expand >bigout3' +bigout4: bigger7.p + -csh -cf '(pix -g bigger7.p >/dev/null) |& expand > bigout4' +primeout1: primes.p csfix + -csh -cf 'pix -g -l -z primes.p |& expand | csfix - >primeout1' +primeout2: primes.p csfix + -csh -cf 'pxp -z primes.p |& expand | csfix - >primeout2' +digitsout: digits.p csfix + -csh -cf 'pi -g digits.p |& expand | csfix >digitsout' +synerrout: synerr.p csfix + -csh -cf 'pi -g -l synerr.p |& expand | csfix >synerrout' +synerr2out: synerr2.p csfix + -csh -cf 'pix -g -l synerr2.p |& expand | csfix >synerr2out' +mismout: mism.p csfix + -csh -cf 'pi -g -l mism.p |& expand | csfix >mismout' +clashout: clash.p + -csh -cf 'pi -g clash.p |& expand >clashout' +sinout1: sin1.p + -csh -cf 'pi -g sin1.p |& expand >sinout1' +sinout2: sin2.p + -csh -cf 'pi -g sin2.p |& expand >sinout2' +exprout: expr.p + -pi -g -l expr.p | expand >exprout +typequout: typequ.p + -pi -g typequ.p >typequout +primeout3: primes2.p csfix + -csh -cf 'pix -g primes2.p |& expand | csfix -d >primeout3' +katout: kat.p csfix primes + -csh -cf 'pix -g -l kat.p katout' +copydataout: copydata.p csfix + -csh -cf 'pix -g -l copydata.p |& expand | csfix -d >copydataout' +kat2out: kat2.p + -csh -cf 'pi -g kat2.p ; obj primes |& csfix -d >kat2out' +xxxxqqqout: kat2.p + -pi -g kat2.p + -csh -cf 'obj xxxxqqq >& xxxxqqqout' +xxxxqqqout2: kat2.p + -pi -g -p kat2.p + -csh -cf 'obj xxxxqqq >& xxxxqqqout2' +primes: primes.p + -pix -g -p primes.p > primes +primes-d: primes + csfix -d primes-d +katscript: katin + -csh -cf 'pi -g kat2.p ; obj katin >& katscript' + -ed - katscript < fixkatscript +comments1.p: comments.p + -expand comments.p >comments1.p +commentsout: comments.p + -csh -cf 'pxp comments.p |& expand >commentsout' + -ed - commentsout < fixcomments +clean: + -rm csfix pmon.out obj lpr.${PRINTER} ${FIGURES} errs Errs diff --git a/doc/ps1/04.pascal/bigger.p b/doc/ps1/04.pascal/bigger.p new file mode 100644 index 00000000..d342b096 --- /dev/null +++ b/doc/ps1/04.pascal/bigger.p @@ -0,0 +1,24 @@ +(* + * Graphic representation of a function + * f(x) = exp(-x) * sin(2 * pi * x) + *) +program graph1(output); +const + d = 0.0625; (* 1/16, 16 lines for interval [x, x+1] *) + s = 32; (* 32 character width for interval [x, x+1] + h = 34; (* Character position of x-axis *) + c = 6.28138; (* 2 * pi *) + lim = 32; +var + x, y: real; + i, n: integer; +begin + for i := 0 to lim begin + x := d / i; + y := exp(-x9 * sin(i * x); + n := Round(s * y) + h; + repeat + write(' '); + n := n - 1 + writeln('*') +end. diff --git a/doc/ps1/04.pascal/bigger4.p b/doc/ps1/04.pascal/bigger4.p new file mode 100644 index 00000000..5a16ef40 --- /dev/null +++ b/doc/ps1/04.pascal/bigger4.p @@ -0,0 +1,26 @@ +(* + * Graphic representation of a function + * f(x) = exp(-x) * sin(2 * pi * x) + *) +program graph1(output); +const + d = 0.0625; (* 1/16, 16 lines for interval [x, x+1] *) + s = 32; (* 32 character width for interval [x, x+1] *) + h = 34; (* Character position of x-axis *) + c = 6.28138; (* 2 * pi *) + lim = 32; +var + x, y: real; + i, n: integer; +begin + for i := 0 to lim do begin + x := d / i; + y := exp(-x) * sin(c * x); + n := round(s * y) + h; + repeat + write(' '); + n := n - 1 + until n = 0; + writeln('*') + end +end. diff --git a/doc/ps1/04.pascal/bigger5.p b/doc/ps1/04.pascal/bigger5.p new file mode 100644 index 00000000..5a16ef40 --- /dev/null +++ b/doc/ps1/04.pascal/bigger5.p @@ -0,0 +1,26 @@ +(* + * Graphic representation of a function + * f(x) = exp(-x) * sin(2 * pi * x) + *) +program graph1(output); +const + d = 0.0625; (* 1/16, 16 lines for interval [x, x+1] *) + s = 32; (* 32 character width for interval [x, x+1] *) + h = 34; (* Character position of x-axis *) + c = 6.28138; (* 2 * pi *) + lim = 32; +var + x, y: real; + i, n: integer; +begin + for i := 0 to lim do begin + x := d / i; + y := exp(-x) * sin(c * x); + n := round(s * y) + h; + repeat + write(' '); + n := n - 1 + until n = 0; + writeln('*') + end +end. diff --git a/doc/ps1/04.pascal/bigger7.p b/doc/ps1/04.pascal/bigger7.p new file mode 100644 index 00000000..b4cd01d5 --- /dev/null +++ b/doc/ps1/04.pascal/bigger7.p @@ -0,0 +1,26 @@ +(* + * Graphic representation of a function + * f(x) = exp(-x) * sin(2 * pi * x) + *) +program graph1(output); +const + d = 0.0625; (* 1/16, 16 lines for interval [x, x+1] *) + s = 32; (* 32 character width for interval [x, x+1] *) + h = 34; (* Character position of x-axis *) + c = 6.28138; (* 2 * pi *) + lim = 32; +var + x, y: real; + i, n: integer; +begin + for i := 0 to lim do begin + x := d * i; + y := exp(-x) * sin(c * x); + n := round(s * y) + h; + repeat + write(' '); + n := n - 1 + until n = 0; + writeln('*') + end +end. diff --git a/doc/ps1/04.pascal/clash.p b/doc/ps1/04.pascal/clash.p new file mode 100644 index 00000000..4a07405d --- /dev/null +++ b/doc/ps1/04.pascal/clash.p @@ -0,0 +1,9 @@ +program clash(output); +var + i: integer; + c: char; +begin + i := 1; + c := i; + write(c, i) +end. diff --git a/doc/ps1/04.pascal/comments.p b/doc/ps1/04.pascal/comments.p new file mode 100644 index 00000000..b07ddfc6 --- /dev/null +++ b/doc/ps1/04.pascal/comments.p @@ -0,0 +1,18 @@ +{ This is a left marginal comment. } +program hello(output); +var i : integer; {This is a trailing comment} +j : integer; {This is a right marginal comment} +k : array [ 1..10] of array [1..10] of integer; {Marginal, but past the margin} +{ + An aligned, multi-line comment + which explains what this program is + all about +} +begin +i := 1; {Trailing i comment} +{A left marginal comment} + {An aligned comment} +j := 1; {Right marginal comment} +k[1] := 1; +writeln(i, j, k[1]) +end. diff --git a/doc/ps1/04.pascal/copydata.p b/doc/ps1/04.pascal/copydata.p new file mode 100644 index 00000000..ecf237c0 --- /dev/null +++ b/doc/ps1/04.pascal/copydata.p @@ -0,0 +1,15 @@ +program copydata(data, output); +var + ch: char; + data: text; +begin + reset(data); + while not eof(data) do begin + while not eoln(data) do begin + read(data, ch); + write(ch) + end; + readln(data); + writeln + end +end { copydata }. diff --git a/doc/ps1/04.pascal/csfix.c b/doc/ps1/04.pascal/csfix.c new file mode 100644 index 00000000..40da1131 --- /dev/null +++ b/doc/ps1/04.pascal/csfix.c @@ -0,0 +1,191 @@ +/* + * Copyright (c) 1980 Regents of the University of California. + * All rights reserved. The Berkeley software License Agreement + * specifies the terms and conditions for redistribution. + */ + +#ifndef lint +char copyright[] = +"@(#) Copyright (c) 1980 Regents of the University of California.\n\ + All rights reserved.\n"; +#endif not lint + +#ifndef lint +static char sccsid[] = "@(#)csfix.c 6.2 (Berkeley) 5/7/86"; +#endif not lint + +#include +/* + * csfix - fix constant spacing for error message flags in troff + * + * Bill Joy UCB September 11, 1977 + * + * This would be better written in snobol! + * + * Normally fixes error flags in a pi listing + * Optional - causes fixing of '---' and initial blank widthin a pxp profile. + */ + +char flag, dflag; + +main(argc, argv) + int argc; + char *argv[]; +{ + + argc--, argv++; + if (argc > 0 && argv[0][0] == '-' && argv[0][1] == 'd') + dflag++, argc--, argv++; + if (argc > 0 && argv[0][0] == '-') + flag++, argc--, argv++; + if (argc != 0) { + write(2, "Usage: csfix\n", 13); + exit(1); + } + while (getline()) { + if (errline()) { + flag ? fixpxp() : reformat(); + continue; + } + if (flag) { + fixdigits(); + continue; + } + if (spwarn()) + continue; + if (nontriv()) + save(); + if (dflag) + fixdigits(); + else + putline(); + } + exit(0); +} + +char line[160], flagee[160], *digitty(); + +getline() +{ + register char *cp, c; + + for (cp = line, c = getchar(); c != '\n' && c != EOF; c = getchar()) + *cp++ = c; + if (c == EOF) + return (0); + *cp = 0; + return (1); +} + +errline() +{ + register int i; + register char *cp; + + for (cp = line; cp[0] && cp[1] && cp[2]; cp++) + if (cp[0] == '-' && cp[1] == '-' && cp[2] == '-') + return (1); + return (0); +} + +reformat() +{ + register char *cp, c, *tail; + + printf("%2.2s", line); + if (line[0] != 'w') + printf("\\l'\\w`w `u-\\w`%2.2s`u '", line); + for (cp = line; *cp != 0 && *cp != '^'; cp++) + continue; + tail = cp + 1; + if (cp[-1] == '\b' && cp[-2] == '|') + cp -= 2; + c = flagee[cp - line]; + flagee[cp - line] = 0; + printf("\\l'\\w`%s`u-\\w`w `u\\&\\(rh'", flagee); + flagee[cp - line] = c; + if (c == '\0') + c = flagee[cp - line - 1]; + printf("\\l'(\\w`%c`u-\\w`^`u)/2 '", c); + printf("\\(ua"); + printf("\\l'(\\w`%c`u-\\w`^`u)/2 '", c); + printf("\\l'\\w`---`u\\&\\(rh'%s\n", tail+3); +} + +nontriv() +{ + + switch (line[0]) { + case 'E': + case 'e': + case 'w': + case 's': + case 0: + return (0); + } + return (1); +} + +save() +{ + + strcpy(flagee, line); +} + +putline() +{ + + printf("%s\n", flag ? digitty(0) : line); +} + +spwarn() +{ + + if (line[0] != ' ' || line[1] != ' ' || line[2] != 'w') + return (0); + printf(" \\l'(\\w`E`u-\\w`w`u)/2 'w\\l'(\\w`E`u-\\w`w`u)/2 '"); + printf(&line[3]); + printf("\n"); + return (1); +} + +fixpxp() +{ + register char *cp; + + for (cp = line; *cp != '-'; cp++) + continue; + *cp = 0; + printf("%s\\l'\\w`\\0\\0\\0\\0`u-\\w`.`u\\&\\(rh'%s\n", digitty(1), cp + 3); +} + +char * +digitty(yup) + char yup; +{ + register char *cp, *dp, *lp; + + for (lp = line; *lp && *lp != '|'; lp++) + continue; + if (yup == 0 && !*lp) + return (line); + for (cp = line, dp = flagee; cp < lp; cp++) + if (*cp == ' ') + *dp++ = '\\', *dp++ = '0'; + else + *dp++ = *cp; + strcpy(dp, cp); + return (flagee); +} + +fixdigits() +{ + register char *cp, c; + + for (cp = line; *cp == ' ' || *cp >= '0' && *cp <= '9'; cp++) + continue; + c = *cp, *cp = 0; + digitty(1); + *cp = c; + printf("%s%s\n", flagee, cp); +} diff --git a/doc/ps1/04.pascal/data b/doc/ps1/04.pascal/data new file mode 100644 index 00000000..3f9cfb50 --- /dev/null +++ b/doc/ps1/04.pascal/data @@ -0,0 +1,3 @@ +line one. +line two. +line three is the end. diff --git a/doc/ps1/04.pascal/digits.p b/doc/ps1/04.pascal/digits.p new file mode 100644 index 00000000..1e59d8da --- /dev/null +++ b/doc/ps1/04.pascal/digits.p @@ -0,0 +1,9 @@ +program digits(output); +var r: real; +begin +r := 0.; +r := .0; +r := 1.e10; +r := .05e-10; +writeln(r) +end. diff --git a/doc/ps1/04.pascal/expr.p b/doc/ps1/04.pascal/expr.p new file mode 100644 index 00000000..60109af8 --- /dev/null +++ b/doc/ps1/04.pascal/expr.p @@ -0,0 +1,21 @@ +program x(output); +var + a: set of char; + b: Boolean; + c: (red, green, blue); + p: ^ integer; + A: alfa; + B: packed array [1..5] of char; +begin + b := true; + c := red; + new(p); + a := []; + A := 'Hello, yellow'; + b := a and b; + a := a * 3; + if input < 2 then writeln('boo'); + if p <= 2 then writeln('sure nuff'); + if A = B then writeln('same'); + if c = true then writeln('hue''s and color''s') +end. diff --git a/doc/ps1/04.pascal/first.p b/doc/ps1/04.pascal/first.p new file mode 100644 index 00000000..19196944 --- /dev/null +++ b/doc/ps1/04.pascal/first.p @@ -0,0 +1,4 @@ +program first(output) +begin + writeln('Hello, world!') +end. diff --git a/doc/ps1/04.pascal/fixcomments b/doc/ps1/04.pascal/fixcomments new file mode 100644 index 00000000..5201c8f7 --- /dev/null +++ b/doc/ps1/04.pascal/fixcomments @@ -0,0 +1,6 @@ +1i +.ta 3.25i +. +g/ *{/s// {/ +w +q diff --git a/doc/ps1/04.pascal/fixkatscript b/doc/ps1/04.pascal/fixkatscript new file mode 100644 index 00000000..73948198 --- /dev/null +++ b/doc/ps1/04.pascal/fixkatscript @@ -0,0 +1,6 @@ +1t1 +1s/.*/\\*b&\\fR/ +3t3 +3s/.*/\\*b&\\fR/ +w +q diff --git a/doc/ps1/04.pascal/kat.p b/doc/ps1/04.pascal/kat.p new file mode 100644 index 00000000..6d804533 --- /dev/null +++ b/doc/ps1/04.pascal/kat.p @@ -0,0 +1,13 @@ +program kat(input, output); +var + ch: char; +begin + while not eof do begin + while not eoln do begin + read(ch); + write(ch) + end; + readln; + writeln + end +end { kat }. diff --git a/doc/ps1/04.pascal/kat2.p b/doc/ps1/04.pascal/kat2.p new file mode 100644 index 00000000..0dbc01a1 --- /dev/null +++ b/doc/ps1/04.pascal/kat2.p @@ -0,0 +1,23 @@ +program kat(input, output); +var + ch: char; + i: integer; + name: packed array [1..100] of char; +begin + i := 1; + repeat + if i < argc then begin + argv(i, name); + reset(input, name); + i := i + 1 + end; + while not eof do begin + while not eoln do begin + read(ch); + write(ch) + end; + readln; + writeln + end + until i >= argc +end { kat }. diff --git a/doc/ps1/04.pascal/kat3.p b/doc/ps1/04.pascal/kat3.p new file mode 100644 index 00000000..411205ca --- /dev/null +++ b/doc/ps1/04.pascal/kat3.p @@ -0,0 +1,23 @@ +program kat(input, output); +var + ch: char; + i: integer; + name: packed array [1..100] of char; +begin + i := 1; + repeat + if i < argc then begin + argv(i, name); + reset(input, name); + i := i + 1 + end; + while not eof do begin + while not eoln do begin + read(ch); + write(ch) + end; + readln; + writeln + end + until i >= argc +end { kat }. diff --git a/doc/ps1/04.pascal/katin b/doc/ps1/04.pascal/katin new file mode 100644 index 00000000..220793bf --- /dev/null +++ b/doc/ps1/04.pascal/katin @@ -0,0 +1,2 @@ +This is a line of text. +The next line contains only an end-of-file (an invisible control-d!) diff --git a/doc/ps1/04.pascal/mism.p b/doc/ps1/04.pascal/mism.p new file mode 100644 index 00000000..a690b1e7 --- /dev/null +++ b/doc/ps1/04.pascal/mism.p @@ -0,0 +1,5 @@ +program mismatch(output) +begin + writeln('***'); + { The next line is the last line in the file } + writeln diff --git a/doc/ps1/04.pascal/primes.p b/doc/ps1/04.pascal/primes.p new file mode 100644 index 00000000..d8403901 --- /dev/null +++ b/doc/ps1/04.pascal/primes.p @@ -0,0 +1,30 @@ +program primes(output); +const n = 50; n1 = 7; (*n1 = sqrt(n)*) +var i,k,x,inc,lim,square,l: integer; + prim: boolean; + p,v: array[1..n1] of integer; +begin + write(2:6, 3:6); l := 2; + x := 1; inc := 4; lim := 1; square := 9; + for i := 3 to n do + begin (*find next prime*) + repeat x := x + inc; inc := 6-inc; + if square <= x then + begin lim := lim+1; + v[lim] := square; square := sqr(p[lim+1]) + end ; + k := 2; prim := true; + while prim and (k v[k] + end + until prim; + if i <= n1 then p[i] := x; + write(x:6); l := l+1; + if l = 10 then + begin writeln; l := 0 + end + end ; + writeln; +end . diff --git a/doc/ps1/04.pascal/primes2.p b/doc/ps1/04.pascal/primes2.p new file mode 100644 index 00000000..7693de81 --- /dev/null +++ b/doc/ps1/04.pascal/primes2.p @@ -0,0 +1,30 @@ +program primes(output); +const n = 50; n1 = 6; (*n1 = sqrt(n)*) +var i,k,x,inc,lim,square,l: integer; + prim: boolean; + p,v: array[1..n1] of integer; +begin + write(2:6, 3:6); l := 2; + x := 1; inc := 4; lim := 1; square := 9; + for i := 3 to n do + begin (*find next prime*) + repeat x := x + inc; inc := 6-inc; + if square <= x then + begin lim := lim+1; + v[lim] := square; square := sqr(p[lim+1]) + end ; + k := 2; prim := true; + while prim and (k v[k] + end + until prim; + if i <= n1 then p[i] := x; + write(x:6); l := l+1; + if l = 10 then + begin writeln; l := 0 + end + end ; + writeln; +end . diff --git a/doc/ps1/04.pascal/puman0.n b/doc/ps1/04.pascal/puman0.n new file mode 100644 index 00000000..414a1ab8 --- /dev/null +++ b/doc/ps1/04.pascal/puman0.n @@ -0,0 +1,127 @@ +.\" Copyright (c) 1980 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)puman0.n 6.2 (Berkeley) 5/7/86 +.\" +.so tmac.p +.EH 'PS1:4-%''Berkeley Pascal User\'s Manual' +.OH 'Berkeley Pascal User\'s Manual''PS1:4-%' +.TL +Berkeley Pascal User's Manual +.br +Version 3.1 \- April 1986 +.AU +William N. Joy\(dd, Susan L. Graham, Charles B. Haley\(dd, +Marshall Kirk McKusick, and Peter B. Kessler\(dd +.AI +Computer Science Division +.if n Department of Electrical Engineering +.if n and Computer Science +.if t Department of Electrical Engineering and Computer Science +University of California, Berkeley +Berkeley, California 94720 +...AI +...MH +.AB +.FS +Copyright 1977, 1979, 1980, 1983 +W. N. Joy, S. L. Graham, C. B. Haley, M. K. McKusick, P. B. Kessler +.FE +.FS +\(ddAuthor's current addresses: +William Joy: Sun Microsystems, 2550 Garcia Ave., Mountain View, CA 94043; +Charles Haley: S & B Associates, 1110 Centennial Ave., Piscataway, NJ 08854; +Peter Kessler: Xerox Research Park, Palo Alto, CA +.FE +.PP +Berkeley +Pascal +is designed for interactive instructional use +and runs on the \s-2PDP\s0/11 and \s-2VAX\s0/11 computers. +Interpretive code is produced, +providing fast translation at the expense of slower execution speed. +There is also a fully compatible compiler for the \s-2VAX\s0/11. +An execution profiler and +Wirth's cross reference program are also +available with the system. +.PP +The system supports full Pascal. +The language accepted is +`standard' Pascal, +and a small number of extensions. +There is an option to suppress the extensions. +The extensions include a separate compilation facility +and the ability to link to object modules +produced from other source languages. +.PP +The +.UM +gives a list of sources relating to the +.UX +system, the Pascal language, and the +.UP +system. +Basic usage examples are provided for the Pascal components +.PI , +.X , +.IX , +.PC , +and +.XP . +Errors commonly encountered in these programs are discussed. +Details are given of special considerations due to the +interactive implementation. +A number of examples are provided including many dealing with +input/output. An appendix supplements Wirth's +.I "Pascal Report" +to form the full definition of the Berkeley implementation of the language. +.AE +.sp +.SH +'if n 'ND +Introduction +.PP +The +.UP +.UM +consists of five major sections and an appendix. +In section 1 we give sources of information about +.UX , +about the programming +language Pascal, and about the +Berkeley +implementation of the language. +Section 2 introduces the +Berkeley +implementation and provides a number of tutorial examples. +Section 3 discusses the error diagnostics produced by the translators +.PC +and +.PI , +and the runtime interpreter +.X . +Section 4 describes input/output with special attention given to features +of the interactive implementation and to features unique to +.UX . +Section 5 gives details on the components of the system +and explanation of all relevant options. +The +.UM +concludes with an appendix to Wirth's +.I "Pascal Report" +with which it forms a precise definition of the implementation. +.SH +History of the implementation +.PP +The first +Berkeley +system was written by Ken Thompson in early 1976. +The main features of the present system were implemented by +Charles Haley and William Joy during the latter half of 1976. +Earlier versions of this system have been in use since January, 1977. +.PP +The system was moved to the \s-2VAX\s0-11 +by Peter Kessler and Kirk McKusick +with the porting of the interpreter in the spring of 1979, +and the implementation of the compiler in the summer of 1980. diff --git a/doc/ps1/04.pascal/puman1.n b/doc/ps1/04.pascal/puman1.n new file mode 100644 index 00000000..18b2823e --- /dev/null +++ b/doc/ps1/04.pascal/puman1.n @@ -0,0 +1,422 @@ +.\" Copyright (c) 1980 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)puman1.n 6.1 (Berkeley) 5/7/86 +.\" +.if !\n(xx \{\ +.so tmac.p \} +.if n 'ND +'nr H1 0 +.NH +Sources of information +.PP +This section lists the resources available +for information about +general features of +.UX , +text editing, +the Pascal language, +and the +.UP +implementation, +concluding with a list of references. +The available documents include both so-called standard documents \- +those distributed with all +.UX +system \- +and documents (such as this one) written at Berkeley. +.NH 2 +Where to get documentation +.PP +Current documentation for most of the +.UX +system is available ``on line'' at your terminal. +Details on getting such documentation interactively are given +in section 1.3. +.NH 2 +Documentation describing UNIX +.PP +The following documents are those recommended as tutorial and +reference material about the +.UX +system. +We give the documents with the introductory and tutorial materials +first, the reference materials last. +.SH +UNIX For Beginners \- Second Edition +.PP +This document is the basic tutorial for +.UX +available with the standard system. +.SH +Communicating with UNIX +.PP +This is also a basic tutorial on the system and assumes +no previous familiarity +with computers; it was written at Berkeley. +.SH +An introduction to the C shell +.PP +This document introduces +.I csh, +the shell in common use at Berkeley, and provides a good deal of general +description about the way in which the system functions. +It provides a useful glossary of terms used in discussing the system. +.SH +UNIX Programmer's Manual +.PP +This manual is the major source of details on the components of the +.UX +system. +It consists of an Introduction, +a permuted index, +and eight command sections. +Section 1 consists of descriptions of most of the ``commands'' +of +.UX . +Most of the other sections have limited relevance to the user +of +Berkeley +Pascal, being of interest mainly to system programmers. +.PP +U\s-2NIX\s0 +documentation often refers the reader to sections of the manual. +Such a reference consists of a command name and a section number or name. +An example of such a reference would be: +.I ed +(1). +Here +.I ed +is a command name \- the standard +.UX +text editor, and `(1)' indicates that its documentation is in section 1 of the +manual. +.PP +The pieces of the +Berkeley +Pascal system are +.I pi +(1), +.X +(1), +the combined Pascal translator and interpretive executor +.IX +(1), +the Pascal compiler +.PC +(1), +the Pascal execution profiler +.XP +(1), +and +the Pascal cross-reference generator +.I pxref +(1). +.PP +It is possible to obtain a copy of a manual section +by using the +.I man +(1) command. +To get the Pascal documentation just described one could issue the +command: +.LS +% \*bman pi\fP +.LE +to the shell. +The user input here is shown in +.B "bold face" ; +the `% ', +which was printed by the shell as a prompt, +is not. +Similarly the command: +.LS +% \*bman man\fP +.LE +asks the +.I man +command to describe itself. +.NH 2 +Text editing documents +.PP +The following documents introduce the various +.UX +text editors. +Most Berkeley users use a version of the text editor +.I ex; +either +.I edit, +which is a version of +.I ex +for new and casual users, +.I ex +itself, +or +.I vi +(visual) which focuses on the display editing portion of +.I ex. +.SH +A Tutorial Introduction to the UNIX Text Editor +.PP +This document, written by Brian Kernighan of Bell Laboratories, +is a tutorial for the standard +.UX +text editor +.I ed. +It introduces you to the basics of text editing, +and provides enough information to meet day-to-day editing needs, +for +.I ed +users. +.SH +Edit: A tutorial +.PP +This introduces the use of +.I edit, +an editor similar to +.I ed +which provides a more hospitable environment for beginning users. +.SH +Ex/edit Command Summary +.PP +This summarizes the features of the editors +.I ex +and +.I edit +in a concise form. If you have used a line oriented editor before +this summary alone may be enough to get you started. +.SH +Ex Reference Manual \- Version 3.7 +.PP +A complete reference on the features of +.I ex +and +.I edit. +.SH +An Introduction to Display Editing with Vi +.PP +.I Vi +is a display oriented text editor. It can be used on most any \s-2CRT\s0 +terminal, +and uses the screen as a window into the file you are editing. Changes +you make to the file are reflected in what you see. This manual serves +both as an introduction to editing with +.I vi +and a reference manual. +.SH +Vi Quick Reference +.PP +This reference card is a handy quick guide to +.I vi; +you should get one when you get the introduction to +.I vi. +.NH 2 +Pascal documents \- The language +.PP +This section describes the documents on the Pascal language +which are likely to be most useful to the +Berkeley +Pascal user. +Complete references for these documents are given in section 1.7. +.SH +Pascal User Manual +.PP +By Kathleen Jensen and Niklaus Wirth, the +.I "User Manual" +provides a tutorial introduction to the features +of the language Pascal, +and serves as an excellent quick-reference to the language. +The reader with no familiarity with Algol-like languages +may prefer one of the Pascal text books listed below, +as they provide more examples and explanation. +Particularly important here are pages 116-118 which define the syntax +of the language. +Sections 13 and 14 and Appendix F pertain only to the +6000-3.4 implementation of Pascal. +.SH +Pascal Report +.PP +By Niklaus Wirth, this document is bound with the +.I "User Manual." +It is the guiding reference for implementors and the fundamental +definition of the language. +Some programmers find this report too concise to be of practical use, +preferring the +.I "User Manual" +as a reference. +.SH +Books on Pascal +.PP +Several good books which teach Pascal or use it as a medium are +available. +The books by Wirth +.I "Systematic Programming" +and +.I "Algorithms + Data Structures = Programs" +use Pascal as a vehicle for teaching programming and data structure +concepts respectively. +They are both recommended. +Other books on Pascal are listed in the references below. +.NH 2 +Pascal documents \- The Berkeley Implementation +.PP +This section describes the documentation which is available +describing the +Berkeley +implementation of Pascal. +.SH +User's Manual +.PP +The document you are reading is the +.I "User's Manual" +for +.UP . +We often refer the reader to the +Jensen-Wirth +.I "User Manual" +mentioned above, +a different document with a similar name. +.SH +Manual sections +.PP +The sections relating to Pascal in the +.I "UNIX Programmer's Manual" +are +.IX +(1), +.PI +(1), +.PC +(1), +.X +(1), +.I pxp +(1), +and +.I pxref +(1). +These sections give a description of each program, +summarize the available options, +indicate files used by the program, +give basic information on the diagnostics produced +and include a list of known bugs. +.SH +Implementation notes +.PP +For those interested in the internal organization of the +Berkeley +Pascal system there are a series of +.I "Implementation Notes" +describing these details. +The +.I "Berkeley Pascal PXP Implementation Notes" +describe the Pascal interpreter +.X \|; +and the +.I "Berkeley Pascal PX Implementation Notes" +describe the structure of the +execution profiler +.I pxp . +.br +.ne 8 +.NH 2 +References +.de re +.sp +.IP +'nf +.. +.SH +UNIX Documents +.re +.I "Communicating With UNIX" +Computer Center +University of California, Berkeley +January, 1978. +.re +Ricki Blau and James Joyce +.I "Edit: a tutorial" +UNIX User's Supplementary Documents (USD), 14 +University of California, Berkeley, CA. 94720 +April, 1986. +.re +.I "Ex/edit Command Summary" +Computer Center +University of California, Berkeley +August, 1978. +.re +William Joy +.I "Ex Reference Manual \- Version 3.7" +UNIX User's Supplementary Documents (USD), 16 +University of California, Berkeley, CA. 94720 +April, 1986. +.re +William Joy +.I "An Introduction to Display Editing with Vi" +UNIX User's Supplementary Documents (USD), 15 +University of California, Berkeley, CA. 94720 +April, 1986. +.re +William Joy +.I "An Introduction to the C shell (Revised)" +UNIX User's Supplementary Documents (USD), 4 +University of California, Berkeley, CA. 94720 +April, 1986. +.re +Brian W. Kernighan +.I "UNIX for Beginners \- Second Edition" +UNIX User's Supplementary Documents (USD), 1 +University of California, Berkeley, CA. 94720 +April, 1986. +.re +Brian W. Kernighan +.I "A Tutorial Introduction to the UNIX Text Editor" +UNIX User's Supplementary Documents (USD), 12 +University of California, Berkeley, CA. 94720 +April, 1986. +.re +Dennis M. Ritchie and Ken Thompson +.I "The UNIX Time Sharing System" +Reprinted from Communications of the ACM July 1974 in +UNIX Programmer's Supplementary Documents, Volume 2 (PS2), 1 +University of California, Berkeley, CA. 94720 +April, 1986. +.SH +Pascal Language Documents +.re +Cooper and Clancy +.I "Oh! Pascal!, 2nd Edition" +W. W. Norton & Company, Inc. +500 Fifth Ave., NY, NY. 10110 +1985, 475 pp. +.re +Cooper +.I "Standard Pascal User Reference Manual" +W. W. Norton & Company, Inc. +500 Fifth Ave., NY, NY. 10110 +1983, 176 pp. +.re +Kathleen Jensen and Niklaus Wirth +.I "Pascal \- User Manual and Report" +Springer-Verlag, New York. +1975, 167 pp. +.re +Niklaus Wirth +.I "Algorithms + Data structures = Programs" +Prentice-Hall, New York. +1976, 366 pp. +.SH +Berkeley Pascal documents +.PP +The following documents are available from the Computer Center Library +at the University of California, Berkeley. +.nf +.re +William N. Joy +.I "Berkeley Pascal PX Implementation Notes" +Version 1.1, April 1979. +(Vax-11 Version 2.0 By Kirk McKusick, December, 1979) +.re +William N. Joy +.I "Berkeley Pascal PXP Implementation Notes" +Version 1.1, April 1979. diff --git a/doc/ps1/04.pascal/puman2.n b/doc/ps1/04.pascal/puman2.n new file mode 100644 index 00000000..d6691de5 --- /dev/null +++ b/doc/ps1/04.pascal/puman2.n @@ -0,0 +1,831 @@ +.\" Copyright (c) 1980 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)puman2.n 6.2 (Berkeley) 5/7/86 +.\" +.if !\n(xx \{\ +.so tmac.p \} +'if n 'ND +.nr H1 1 +.NH +Basic UNIX Pascal +.PP +The following sections +explain the basics of using +.UP . +In examples here we use the text editor +.I ex +(1). +Users of the text editor +.I ed +should have little trouble following these examples, +as +.I ex +is similar to +.I ed . +We use +.I ex +because it +allows us to make clearer examples.\(dg +.FS +\(dg Users with \s-2CRT\s0 terminals should find the editor +.I vi +more pleasant to use; +we do not show its use here because its display oriented nature +makes it difficult to illustrate. +.FE +The new +.UX +user will find it helpful to read one of the text editor documents +described in section 1.4 before continuing with this section. +.NH 2 +A first program +.PP +To prepare a program for +.UP +we first need to have an account on +.UX +and to `login' +to the system on this account. +These procedures are described in the documents +.I "Communicating with UNIX" +and +.I "UNIX for Beginners". +.PP +Once we are logged in we need to choose a name for our program; +let us call it `first' as this is the first example. +We must also choose a name for the file in which the program will be stored. +The +.UP +system requires that programs reside in files which have names ending with +the sequence `.p' so we will call our file `first.p'. +.PP +A sample editing session to create this file would begin: +.LS +% \*bex first.p\fR +"first.p" [New file] +: +.LE +We didn't expect the file to exist, so the error diagnostic doesn't +bother us. +The editor now knows the name of the file we are creating. +The `:' prompt indicates that it is ready for command input. +We can add the text for our program using the `append' +command as follows. +.LS +:\*bappend\fR +.B +program first(output) +begin + writeln('Hello, world!') +end. +\&. +.R +: +.LE +The line containing the single `\*b.\fR' character here indicated +the end of the appended text. +The `:' prompt indicates that +.I ex +is ready for another command. +As the editor operates in a temporary work space we must now store the contents +of this work space in the file `first.p' +so we can use the Pascal +translator and executor +.IX +on it. +.LS +:\*bwrite\fR +"first.p" [New file] 4 lines, 59 characters +:\*bquit\fR +% +.LE +We wrote out the file from the edit buffer here with the +`write' +command, and +.I ex +indicated the number of lines and characters written. +We then quit the editor, and now have a prompt from the shell.\(dd +.FS +\(dd Our examples here assume you are using +.I csh. +.FE +.KS +.PP +We are ready to try +to translate and execute our program. +.DS +.tr '\(aa^\(ua +% \*bpix first.p\fR +.so firstout +.tr ''^^ +% +.DE +.KE +.PP +The translator first printed a syntax error diagnostic. +The number 2 here indicates that the rest of the line is an image +of the second line of our program. +The translator is saying that it expected to find a `;' before the +keyword +.B begin +on this line. +If we look at the Pascal syntax charts in the Jensen-Wirth +.I "User Manual" , +or at some of the sample programs therein, we will see that +we have omitted the terminating `;' of the +.B program +statement on the first +line of our program. +.PP +One other thing to notice about the error diagnostic is the letter `e' +at the beginning. +It stands for `error', +indicating that our input was not legal Pascal. +The fact that it is an `e' rather than an `E' +indicates that the translator managed to recover from this error well +enough that generation of code and execution could take place. +Execution is possible whenever no fatal `E' errors +occur during translation. +The other classes of diagnostics are `w' warnings, +which do not necessarily indicate errors in the program, +but point out inconsistencies which are likely to be due to program bugs, +and `s' standard-Pascal violations.\*(dg +.FS +\*(dgThe standard Pascal warnings occur only when the associated +.B s +translator option is enabled. +The +.B s +option is discussed in sections 5.1 and A.6 below. +Warning diagnostics are discussed at the end of section 3.2, +the associated +.B w +option is described in section 5.2. +.FE +.PP +After completing the translation of the program to interpretive code, +the Pascal system indicates that execution of the translated program began. +The output from the execution of the program then appeared. +At program termination, the Pascal runtime system indicated the +number of statements executed, and the amount of cpu time +used, with the resolution of the latter being 1/60'th of a second. +.PP +Let us now fix the error in the program and translate it to a permanent +object code file +.I obj +using +.PI . +The program +.PI +translates Pascal programs but stores the object code instead of executing it\*(dd. +.FS +\*(ddThis script indicates some other useful approaches to debugging +Pascal programs. +As in +.I ed +we can shorten commands in +.I ex +to an initial prefix of the command name as we did +with the +.I substitute +command here. +We have also used the `!' shell escape command here to execute other +commands with a shell without leaving the editor. +.FE +.LS +% \*bex first.p\fR +"first.p" 4 lines, 59 characters +:\*b1 print\fR +program first(output) +:\*bs/$/;\fR +program first(output); +:\*bwrite\fR +"first.p" 4 lines, 60 characters +:\*bquit\fR +% \*bpi first.p\fR +% +.LE +If we now use the +.UX +.I ls +list files command we can see what files we have: +.LS +% \*bls\fR +first.p +obj +% +.LE +The file `obj' here contains the Pascal interpreter code. +We can execute this by typing: +.LS +% \*bpx obj\fR +.so firstobjout +% +.LE +Alternatively, the command: +.LS +% \*bobj\fR +.LE +will have the same effect. +Some examples of different ways to execute the program follow. +.LS +% \*bpx\fR +.so firstobjout +% \*bpi -p first.p\fR +% \*bpx obj\fR +.so firstobjout2 +% \*bpix -p first.p\fR +.so firstobjout2 +% +.LE +.PP +Note that +.I px +will assume that `obj' is the file we wish to execute +if we don't tell it otherwise. +The last two translations use the +.B \-p +no-post-mortem option to eliminate +execution statistics and +`Execution begins' +and +`Execution terminated' +messages. +See section 5.2 for more details. +If we now look at the files in our directory we will see: +.LS +% \*bls\fR +first.p +obj +% +.LE +We can give our object program a name other than `obj' by using the move +command +.I mv +(1). +Thus to name our program `hello': +.LS +% \*bmv obj hello\fR +% \*bhello\fR +Hello, world! +% \*bls\fR +first.p +hello +% +.LE +Finally we can get rid of the Pascal object code by using the +.I rm +(1) remove file command, e.g.: +.LS +% \*brm hello\fR +% \*bls\fR +first.p +% +.LE +.PP +For small programs which are being developed +.IX +tends to be more convenient to use than +.PI +and +.X . +Except for absence of the +.I obj +file after a +.IX +run, +a +.IX +command is equivalent to a +.PI +command followed by a +.X +command. +For larger programs, +where a number of runs testing different parts of the program are +to be made, +.PI +is useful as this +.I obj +file can be executed any desired number of times. +.. >>> INSERT SECTION FOR PC <<< +.NH 2 +A larger program +.PP +Suppose that we have used the editor to put a larger program +in the file `bigger.p'. +We can list this program with line numbers by using the program +.I cat -n +i.e.: +.LS +% \*bcat -n bigger.p\fR +.so bigger3.p +% +.LE +This program is similar to program 4.9 on page 30 of the +Jensen-Wirth +.I "User Manual" . +A number of problems have been introduced into this example for +pedagogical reasons. +.br +.PP +If we attempt to translate and execute the program using +.IX +we get the following response: +.LS +% \*bpix bigger.p\fR +.so bigout1 +% +.LE +.PP +Since there were fatal `E' errors in our program, +no code was generated and execution was necessarily suppressed. +One thing which would be useful at this point is a listing of the +program with the error messages. +We can get this by using the command: +.LS +% \*bpi -l bigger.p\fR +.LE +There is no point in using +.IX +here, since we know there are fatal errors in the program. +This command will produce the output at our terminal. +If we are at a terminal which does not produce a hard copy +we may wish to print this +listing off-line on a line printer. +We can do this with the command: +.LS +% \*bpi -l bigger.p | lpr\fR +.LE +.PP +In the next few sections we will illustrate various aspects of the +Berkeley +Pascal system by correcting this program. +.NH 2 +Correcting the first errors +.PP +Most of the errors which occurred in this program were +.I syntactic +errors, those in the format and structure of the program rather than +its content. +Syntax errors are flagged by printing the offending line, and then a line +which flags the location at which an error was detected. +The flag line also gives an explanation +stating either a possible cause of the error, +a simple action which can be taken to recover from the error so +as to be able to continue the analysis, +a symbol which was expected at the point of error, +or an indication that the input was `malformed'. +In the last case, the recovery may skip ahead in the input +to a point where analysis of the program can continue. +.PP +In this example, +the first error diagnostic indicates that the translator detected +a comment within a comment. +While this is not considered an error in `standard' +Pascal, it usually corresponds to an error in the program which +is being translated. +In this case, we have accidentally omitted the trailing `*)' of the comment +on line 8. +We can begin an editor session to correct this problem by doing: +.LS +% \*bex bigger.p\fR +"bigger.p" 24 lines, 512 characters +:\*b8s/$/ *)\fR + s = 32; (* 32 character width for interval [x, x+1] *) +: +.LE +.PP +The second diagnostic, given after line 16, +indicates that the keyword +.B do +was expected before the keyword +.B begin +in the +.B for +statement. +If we examine the +.I statement +syntax chart on page 118 of the +Jensen-Wirth +.I "User Manual" +we will discover that +.B do +is a necessary part of the +.B for +statement. +Similarly, we could have referred to section C.3 of the +Jensen-Wirth +.I "User Manual" +to learn about the +.B for +statement and gotten the same information there. +It is often useful to refer to these syntax charts and to the +relevant sections of this book. +.PP +We can correct this problem by first scanning for the keyword +.B for +in the file and then substituting the keyword +.B do +to appear in front of the keyword +.B begin +there. +Thus: +.LS +:\*b/for\fR + for i := 0 to lim begin +:\*bs/begin/do &\fR + for i := 0 to lim do begin +: +.LE +The next error in the program is easy to pinpoint. +On line 18, we didn't hit the shift key and got a `9' +instead of a `)'. +The translator diagnosed that `x9' +was an undefined variable and, later, +that a `)' was missing in the statement. +It should be stressed that +.PI +is not suggesting that you should insert a `)' before the `;'. +It is only indicating that making this change will help it to be able to +continue analyzing the program so as to be able to diagnose further +errors. +You must then determine the true cause of the error and make the +appropriate correction to the source text. +.PP +This error also illustrates the fact that one error in the input may lead +to multiple error diagnostics. +.I Pi +attempts +to give only one diagnostic for each error, +but single errors in the input sometimes appear to be more than +one error. +It is also the case that +.PI +may not detect an error when it occurs, but may detect it later in +the input. +This would have happened +in this example if we had typed `x' instead of `x9'. +.PP +The translator next detected, on line 19, that the function +.I Round +and the variable +.I h +were undefined. +It does not know about +.I Round +because +.UP +normally distinguishes between upper and lower case.\*(dg +.FS +\*(dgIn ``standard'' Pascal no distinction is made based on case. +.FE +On +.UX +lower-case is preferred\*(dd, +.FS +\*(ddOne good reason for using lower-case is that it is easier to type. +.FE +and all keywords and built-in +.B procedure +and +.B function +names are composed of lower-case letters, +just as they are in the Jensen-Wirth +.I "Pascal Report" . +Thus we need to use the function +.I round +here. +As far as +.I h +is concerned, +we can see why it is undefined if we look back to line 9 +and note that its definition was lost in the non-terminated +comment. +This diagnostic need not, therefore, concern us. +.PP +The next error which occurred in the program caused the translator +to insert a `;' before the statement calling +.I writeln +on line 23. +If we examine the program around the point of error we will see +that the actual error is that the keyword +.B until +and an associated expression have been omitted here. +Note that the diagnostic from the translator does not indicate the actual +error, and is somewhat misleading. +The translator made the correction which seemed to be most plausible. +As the omission of a `;' character is a common mistake, +the translator chose to indicate this as a possible fix here. +It later detected that the keyword +.B until +was missing, but not until it saw the keyword +.B end +on line 24. +The combination of these diagnostics indicate to us the true problem. +.PP +The final syntactic error message indicates that the translator needed an +.B end +keyword to match the +.B begin +at line 15. +Since the +.B end +at line 24 is supposed to match this +.B begin , +we can infer that another +.B begin +must have been mismatched, and have matched this +.B end . +Thus we see that we need an +.B end +to match the +.B begin +at line 16, +and to appear before the final +.B end . +We can make these corrections: +.LS +:\*b/x9/s//x)\fR + y := exp(-x) * sin(i * x); +:\*b+s/Round/round\fR + n := round(s * y) + h; +:\*b/write\fR + write(' '); +:\*b/\fR + writeln('*') +:\*binsert\fR + \*buntil n = 0;\fR +\&\*b.\fR +:\*b$\fR +end. +:\*binsert\fR + \*bend\fR +\&\*b.\fR +: +.LE +.PP +At the end of each +.B procedure +or +.B function +and the end of the +.B program +the translator summarizes references to undefined variables +and improper usages of variables. +It also gives +warnings about potential errors. +In our program, the summary errors do not indicate any further problems +but the warning that +.I c +is unused is somewhat suspicious. +Examining the program we see that the constant was intended +to be used in the expression which is an argument to +.I sin , +so we can correct this expression, and translate the program. +We have now made a correction for each diagnosed error +in our program. +.LS +:\*b?i ?s//c /\fR + y := exp(-x) * sin(c * x); +:\*bwrite\fR +"bigger.p" 26 lines, 538 characters +:\*bquit\fR +% \*bpi bigger.p\fR +% +.LE +It should be noted that the translator suppresses warning +diagnostics for a particular +.B procedure , +.B function +or the main +.B program +when it finds severe syntax errors in that part of the source +text. +This is to prevent possibly confusing and +incorrect warning diagnostics from being produced. +Thus these warning diagnostics may not appear in a program with +bad syntax errors until these errors are corrected. +.KS +.PP +We are now ready to execute our program for the first +time. +We will do so in the next section after giving a listing +of the corrected program for reference purposes. +.LS +% \*bcat -n bigger.p\fR +.so bigger6.p +% +.LE +.NH 2 +Executing the second example +.PP +We are now ready to execute the second example. +The following output was produced by our first run. +.LS +% \*bpx\fR +.so bigout2 +% +.LE +Here the interpreter is presenting us with a runtime error diagnostic. +It detected a `division by zero' at line 17. +Examining line 17, we see that we have written +the statement `x := d / i' instead of `x := d * i'. +We can correct this and rerun the program: +.LS +% \*bex bigger.p\fR +"bigger.p" 26 lines, 538 characters +:\*b17\fR + x := d / i +:\*bs'/'*\fR + x := d * i +:\*bwrite\fR +"bigger.p" 26 lines, 538 characters +:\*bq\fR +% \*bpix bigger.p\fR +.so bigout3 +% +.LE +.KS +.PP +This appears to be the output we wanted. +We could now save the output in a file if we wished by using the shell +to redirect the output: +.LS +% \*bpx > graph\fR +.LE +.KE +We can use +.I cat +(1) to see the contents of the file graph. +We can also make a listing of the graph on the line printer without +putting it into a file, e.g. +.LS +% \*bpx | lpr\fR +.so bigout4 +% +.LE +Note here that the statistics lines came out on our terminal. +The statistics line comes out on the diagnostic output (unit 2.) +There are two ways to get rid of the statistics line. +We can redirect the statistics message to the printer using the +syntax `|\|&' to the shell rather than `|', i.e.: +.LS +% \*bpx |\|& lpr\fR +% +.LE +or we can translate the program with the +.B p +option disabled on the command line as we did above. +This will disable all post-mortem dumping including the statistics line, +thus: +.LS +% \*bpi -p bigger.p\fR +% \*bpx | lpr\fR +% +.LE +This option also disables the statement limit which normally guards +against infinite looping. +You should not use it until your program is debugged. +Also if +.B p +is specified and an error occurs, you will +not get run time diagnostic information to help you +determine what the problem is. +.NH 2 +Formatting the program listing +.PP +It is possible to use special lines within the source text of a program +to format the program listing. +An empty line (one with no characters on it) corresponds to a +`space' macro in an assembler, leaving a completely blank line +without a line number. +A line containing only a control-l (form-feed) character +will cause a page eject in the listing with the corresponding line number +suppressed. +This corresponds to an `eject' pseudo-instruction. +See also section 5.2 for details on the +.B n +and +.B i +options of +.PI . +.NH 2 +Execution profiling +.PP +An execution profile consists of a structured listing of (all or part of) +a program with information about the number of times each statement in +the program was executed for a particular run of the program. +These profiles can be used for several purposes. +In a program which was abnormally terminated due to excessive looping +or recursion or by a program fault, the counts can facilitate location +of the error. +Zero counts mark portions of the program which were not executed; +during the early debugging stages they should prompt new test data or +a re-examination of the program logic. +The profile is perhaps most valuable, however, in drawing +attention to the (typically small) +portions of the program that dominate execution time. +This information can be used for source level optimization. +.SH +An example +.PP +A prime number is a number which is divisible only by itself and the +number one. +The program +.I primes , +written by Niklaus Wirth, +determines the first few prime numbers. +In translating the program we have specified the +.B z +option to +.IX . +This option causes the translator to generate counters and count instructions +sufficient in number to determine the number of times each statement in the +program was executed.\*(dg +.FS +\*(dgThe counts +are completely accurate only in the absence of runtime errors and nonlocal +.B goto +statements. +This is not generally a problem, however, as in structured programs +nonlocal +.B goto +statements occur infrequently, +and counts are incorrect after abnormal termination only when the +.I "upward look" +described below to get a count passes a suspended call point. +.FE +When execution of the program completes, either normally or abnormally, +this count data is written to the file +.I pmon.out +in the current directory.\*(dd +.FS +\*(dd\c +.I Pmon.out +has a name similar to +.I mon.out +the monitor file produced by the profiling facility of the C compiler +.I cc +(1). +See +.I prof +(1) for a discussion of the C compiler profiling facilities. +.FE +It is then possible to prepare an execution profile by giving +.XP +the name of the file associated with this data, as was done in the following +example. +.LS +% \*bpix -l -z primes.p\fR +.so primeout1 +% +.LE +.SH +Discussion +.PP +The header lines of the outputs of +.IX +and +.XP +in this example indicate the version of the translator and execution +profiler in use at the time this example was prepared. +The time given with the file name (also on the header line) +indicates the time of last modification of the program source file. +This time serves to +.I "version stamp" +the input program. +.I Pxp +also indicates the time at which the profile data was gathered. +.LS +% \*bpxp -z primes.p\fR +.so primeout2 +% +.LE +.KE +.PP +To determine the number of times a statement was executed, +one looks to the left of the statement and finds the corresponding +vertical bar `|'. +If this vertical bar is labelled with a count then that count gives the +number of times the statement was executed. +If the bar is not labelled, we look up in the listing to find the first +`|' which directly above the original one which has a count and that +is the answer. +Thus, in our example, +.I k +was incremented 157 times on line 18, +while the +.I write +procedure call on line 24 was executed 48 times as given by the count +on the +.B repeat . +.PP +More information on +.I pxp +can be found in its manual section +.XP +(1) +and in sections 5.4, 5.5 and 5.10. diff --git a/doc/ps1/04.pascal/puman3.n b/doc/ps1/04.pascal/puman3.n new file mode 100644 index 00000000..d8ca94fb --- /dev/null +++ b/doc/ps1/04.pascal/puman3.n @@ -0,0 +1,726 @@ +.\" Copyright (c) 1980 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)puman3.n 6.2 (Berkeley) 5/7/86 +.\" +.if !\n(xx \{\ +.so tmac.p \} +.if n 'ND +.nr H1 2 +.NH +Error diagnostics +.PP +This section of the +.UM +discusses the error diagnostics of the programs +.PI , +.PC +and +.X . +.I Pix +is a simple but useful program which invokes +.PI +and +.X +to do all the real processing. +See its manual section +.IX +(1) +and section 5.2 below for more details. +All the diagnostics given by +.PI +will also be given by +.PC . +.NH 2 +Translator syntax errors +.PP +A few comments on the general nature of the syntax errors usually +made by Pascal programmers +and the recovery mechanisms of the current translator may help in using +the system. +.SH +Illegal characters +.PP +Characters such as `$', `!', and `@' are not part of the language Pascal. +If they are found in the source program, +and are not part of a constant string, a constant character, or a comment, +they are considered to be +`illegal characters'. +This can happen if you leave off an opening string quote `\(aa'. +Note that the character `"', although used in English to quote strings, +is not used to quote strings in Pascal. +Most non-printing characters in your input are also illegal except +in character constants and character strings. +Except for the tab and form feed characters, +which are used to ease formatting of the program, +non-printing characters in the input file print as the character `?' +so that they will show in your listing. +.SH +String errors +.PP +There is no character string of length 0 in Pascal. +Consequently the input `\(aa\(aa' is not acceptable. +Similarly, encountering an end-of-line after an opening string quote `\(aa' +without encountering the matching closing quote yields the diagnostic +``Unmatched \(aa for string''. +It is permissible to use the character `#' +instead of `\'' +to delimit character and constant strings for portability reasons. +For this reason, a spuriously placed `#' sometimes causes the diagnostic +about unbalanced quotes. +Similarly, a `#' in column one is used when preparing programs which are to +be kept in multiple files. +See section 5.11 for details. +.SH +Comments in a comment, non-terminated comments +.PP +As we saw above, these errors are usually caused by leaving off a comment +delimiter. +You can convert parts of your program to comments +without generating this diagnostic +since there are two different kinds of comments \- those delimited by +`{' and `}', and those delimited by `(*' and `*)'. +Thus consider: +.LS +{ This is a comment enclosing a piece of program +a := functioncall; (* comment within comment *) +procedurecall; +lhs := rhs; (* another comment *) +} +.LE +.PP +By using one kind of comment exclusively in your program you can use +the other delimiters when you need to +``comment out'' +parts of your program\*(dg. +.FS +\*(dgIf you wish to transport your program, +especially to the 6000-3.4 implementation, +you should use the character sequence `(*' to delimit comments. +For transportation over the +.I rcslink +to Pascal 6000-3.4, the character `#' should be used to delimit characters +and constant strings. +.FE +In this way you will also allow the translator to help by detecting +statements accidentally placed within comments. +.PP +If a comment does not terminate before the end of the input file, +the translator will point to the beginning of the comment, +indicating that the comment is not terminated. +In this case processing will terminate immediately. +See the discussion of ``QUIT'' below. +.SH +Digits in numbers +.PP +This part of the language is a minor nuisance. +Pascal requires digits in real numbers both before and after the decimal +point. +Thus the following statements, which look quite reasonable to +.SM +FORTRAN +.NL +users, generate diagnostics in Pascal: +.LS +.so digitsout +.LE +These same constructs are also illegal as input to the Pascal interpreter +.I px . +.SH +Replacements, insertions, and deletions +.PP +When a syntax error is encountered in the input text, +the parser invokes an error recovery procedure. +This procedure examines the input text immediately after the point +of error and considers a set of simple corrections to see whether they +will allow the analysis to continue. +These corrections involve replacing an input token with a different +token, +inserting a token, +or replacing an input token with a different token. +Most of these changes will not cause fatal syntax errors. +The exception is the insertion of or replacement with a symbol +such as an identifier or a number; +in this case the recovery makes no attempt to determine +.I which +identifier or +.I what +number should be inserted, +hence these are considered fatal syntax errors. +.PP +Consider the following example. +.LS +% \*bpix -l synerr.p\fR +.tr -- +.so synerrout +% +.LE +The only surprise here may be that Pascal does not have an exponentiation +operator, hence the complaint about `**'. +This error illustrates that, if you assume that the language has a feature +which it does not, the translator diagnostic may not indicate this, +as the translator is unlikely to recognize the construct you supply. +.SH +Undefined or improper identifiers +.PP +If an identifier is encountered in the input but is undefined, +the error recovery will replace it with an identifier of the +appropriate class. +Further references to this identifier will be summarized at the +end of the containing +.B procedure +or +.B function +or at the end of the +.B program +if the reference occurred in the main program. +Similarly, +if an identifier is used in an inappropriate way, +e.g. if a +.B type +identifier is used in an assignment statement, +or if a simple variable +is used where a +.B record +variable is required, +a diagnostic will be produced and an identifier of the appropriate +type inserted. +Further incorrect references to this identifier will be flagged only +if they involve incorrect use in a different way, +with all incorrect uses being summarized in the same way as undefined +variable uses are. +.SH +Expected symbols, malformed constructs +.PP +If none of the above mentioned corrections appear reasonable, the +error recovery will examine the input +to the left of the point of error to see if there is only one symbol +which can follow this input. +If this is the case, the recovery will print a diagnostic which +indicates that the given symbol was `Expected'. +.PP +In cases where none of these corrections resolve the problems +in the input, +the recovery may issue a diagnostic that indicates that the +input is ``malformed''. +If necessary, the translator may then skip forward in the input to +a place where analysis can continue. +This process may cause some errors in the text to be missed. +.PP +Consider the following example: +.LS +% \*bpix -l synerr2.p\fR +.so synerr2out +% +.LE +Here we misspelled +.I output +and gave a +.SM FORTRAN +style variable declaration +which the translator diagnosed as a `Malformed declaration'. +When, on line 6, we used `(' and `)' for subscripting +(as in +.SM FORTRAN ) +rather than the `[' and `]' which are used in Pascal, +the translator noted that +.I a +was not defined as a +.B procedure . +This occurred because +.B procedure +and +.B function +argument lists are delimited by parentheses in Pascal. +As it is not permissible to assign to procedure calls the translator +diagnosed a malformed statement at the point of assignment. +.SH +Expected and unexpected end-of-file, ``QUIT'' +.PP +If the translator finds a complete program, but there is more non-comment text +in the input file, then it will indicate that an end-of-file was expected. +This situation may occur after a bracketing error, or if too many +.B end s +are present in the input. +The message may appear +after the recovery says that it +``Expected \`.\'\|'' +since `.' is the symbol that terminates a program. +.PP +If severe errors in the input prohibit further processing +the translator may produce a diagnostic followed by ``QUIT''. +One example of this was given above \- +a non-terminated comment; +another example is a line which is longer than 160 +characters. +Consider also the following example. +.LS +% \*bpix -l mism.p\fR +.so mismout +% +.LE +.NH 2 +Translator semantic errors +.PP +The extremely large number of semantic diagnostic messages which the translator +produces make it unreasonable to discuss each message or group of messages +in detail. +The messages are, however, very informative. +We will here explain the typical formats and the terminology used in the error +messages so that you will be able to make sense out of them. +In any case in which a diagnostic is not completely comprehensible you can +refer to the +.I "User Manual" +by Jensen and Wirth for examples. +.SH +Format of the error diagnostics +.PP +As we saw in the example program above, the error diagnostics from +the Pascal translator include the number of a line in the text of the program +as well as the text of the error message. +While this number is most often the line where the error occurred, it +is occasionally the number of a line containing a bracketing keyword +like +.B end +or +.B until . +In this case, the diagnostic may refer to the previous statement. +This occurs because of the method the translator uses for sampling line +numbers. +The absence of a trailing `;' in the previous statement causes the line +number corresponding to the +.B end +or +.B until . +to become associated with the statement. +As Pascal is a free-format language, the line number associations +can only be approximate and may seem arbitrary to some users. +This is the only notable exception, however, to reasonable associations. +.SH +Incompatible types +.PP +Since Pascal is a strongly typed language, many semantic errors manifest +themselves as type errors. +These are called `type clashes' by the translator. +The types allowed for various operators in the language are summarized on page +108 of the +Jensen-Wirth +.I "User Manual" . +It is important to know that the Pascal translator, in its diagnostics, +distinguishes between the following type `classes': +.br +.ne 8 +.TS +center; +lew(10) le le le le. +array Boolean char file integer +pointer real record scalar string +.TE +These words are plugged into a great number of error messages. +Thus, if you tried to assign an +.I integer +value to a +.I char +variable you would receive a diagnostic like the following: +.LS +.so clashout +.LE +In this case, one error produced a two line error message. +If the same error occurs more than once, the same explanatory +diagnostic will be given each time. +.SH +Scalar +.PP +The only class whose meaning is not self-explanatory is +`scalar'. +Scalar has a precise meaning in the +Jensen-Wirth +.I "User Manual" +where, in fact, it refers to +.I char , +.I integer , +.I real , +and +.I Boolean +types as well as the enumerated types. +For the purposes of the Pascal translator, +scalar +in an error message refers to a user-defined, enumerated +type, such as +.I ops +in the example above or +.I color +in +.LS +\*btype\fP color = (red, green, blue) +.LE +For integers, the more explicit denotation +.I integer +is used. +Although it would be correct, in the context of the +.I "User Manual" +to refer to an integer variable as a +.I scalar +variable +.PI +prefers the more specific identification. +.SH +Function and procedure type errors +.PP +For built-in procedures and functions, two kinds of errors occur. +If the routines are called with the wrong number of arguments a message similar to: +.LS +.so sinout1 +.LE +is given. +If the type of the argument is wrong, a message like +.LS +.so sinout2 +.LE +is produced. +A few functions and procedures implemented in Pascal 6000-3.4 are +diagnosed as unimplemented in +Berkeley +Pascal, notably those related to +.B segmented +files. +.SH +Can't read and write scalars, etc. +.PP +The messages which state that scalar (user-defined) types +cannot be written to and from files are often mysterious. +It is in fact the case that if you define +.LS +\*btype\fP color = (red, green, blue) +.LE +``standard'' Pascal does not associate these constants with the strings +`red', `green', and `blue' in any way. +An extension has been added which allows enumerated types +to be read and written, +however if the program is to be portable, +you will have to write your own routines to perform these functions. +Standard Pascal only allows the reading of characters, integers and real +numbers from text files. +You cannot read strings or Booleans. +It is possible to make a +.LS +\*bfile of\fP color +.LE +but the representation is binary rather than string. +.SH +Expression diagnostics +.PP +The diagnostics for semantically ill-formed expressions are very explicit. +Consider this sample translation: +.LS +% \*bpi -l expr.p\fP +.so exprout +% +.LE +This example is admittedly far-fetched, but illustrates that the error +messages are sufficiently clear to allow easy determination of the +problem in the expressions. +.SH +Type equivalence +.PP +Several diagnostics produced by the Pascal translator complain about +`non-equivalent types'. +In general, +Berkeley +Pascal considers variables to have the same type only if they were +declared with the same constructed type or with the same type identifier. +Thus, the variables +.I x +and +.I y +declared as +.LS +\*bvar\fP + x: ^ integer; + y: ^ integer; +.LE +do not have the same type. +The assignment +.LS +x := y +.LE +thus produces the diagnostics: +.LS +.so typequout +.LE +Thus it is always necessary to declare a type such as +.LS +\*btype\fP intptr = ^ integer; +.LE +and use it to declare +.LS +\*bvar\fP x: intptr; y: intptr; +.LE +Note that if we had initially declared +.LS +\*bvar\fP x, y: ^ integer; +.LE +then the assignment statement would have worked. +The statement +.LS +x^ := y^ +.LE +is allowed in either case. +Since the parameter to a +.B procedure +or +.B function +must be declared with a +type identifier rather than a constructed type, +it is always necessary, in practice, +to declare any type which will be used in this way. +.SH +Unreachable statements +.PP +Berkeley +Pascal flags unreachable statements. +Such statements usually correspond to errors in the program logic. +Note that a statement is considered to be reachable +if there is a potential path of control, +even if it can never be taken. +Thus, no diagnostic is produced for the statement: +.LS +\*bif\fP false \*bthen\fP + writeln('impossible!') +.LE +.SH +Goto's into structured statements +.PP +The translator detects and complains about +.B goto +statements which transfer control into structured statements (\c +.B for , +.B while , +etc.) +It does not allow such jumps, nor does it allow branching from the +.B then +part of an +.B if +statement into the +.B else +part. +Such checks are made only within the body of a single procedure or +function. +.SH +Unused variables, never set variables +.PP +Although +.PI +always clears variables to 0 at +.B procedure +and +.B function +entry, +.PC +does not unless runtime checking is enabled using the +.B C +option. +It is +.B not +good programming practice to rely on this initialization. +To discourage this practice, and to help detect errors in program logic, +.PI +flags as a `w' warning error: +.IP +.RS +.HP 1) +Use of a variable which is never assigned a value. +.IP 2) +A variable which is declared but never used, distinguishing +between those variables for which values are computed but which are never +used, and those completely unused. +.RE +.LP +In fact, these diagnostics are applied to all declared items. +Thus a +.B const +or a +.B procedure +which is declared but never used is flagged. +The +.B w +option of +.PI +may be used to suppress these warnings; +see sections 5.1 and 5.2. +.NH 2 +Translator panics, i/o errors +.SH +Panics +.PP +One class of error which rarely occurs, but which causes termination +of all processing when it does is a panic. +A panic indicates a translator-detected internal inconsistency. +A typical panic message is: +.LS +snark (rvalue) line=110 yyline=109 +Snark in pi +.LE +If you receive such a message, the translation will be quickly and perhaps +ungracefully terminated. +You should contact a teaching assistant or a member of the system staff, +after saving a copy of your program for later inspection. +If you were making changes to an existing program when the problem +occurred, you may +be able to work around the problem by ascertaining which change caused the +.I snark +and making a different change or correcting an error in the program. +A small number of panics are possible in +.X . +All panics should be reported to a teaching assistant or systems +staff so that they can be fixed. +.SH +Out of memory +.PP +The only other error which will abort translation when no errors are +detected is running out of memory. +All tables in the translator, with the exception of the parse stack, +are dynamically allocated, and can grow to take up the full available +process space of 64000 bytes on the \s-2PDP\s0-11. On the \s-2VAX\s0-11, +table sizes are extremely generous and very large (25000) line programs +have been easily accommodated. For the \s-2PDP\s0\-11, it is +generally true that +the size of the largest translatable program is directly related to +.B procedure +and +.B function +size. +A number of non-trivial Pascal programs, including +some with more than 2000 lines and 2500 statements +have been translated and interpreted using +Berkeley +Pascal on \s-2PDP\s0-11's. +Notable among these are the Pascal-S +interpreter, +a large set of programs for automated generation of +code generators, +and a general context-free parsing program which has been used to +parse sentences with a grammar for a superset of English. +In general, +very large programs should be translated using +.PC +and the separate compilation facility. +.PP +If you receive an out of space message from the translator +during translation of a large +.B procedure +or +.B function +or one containing a large number of string constants +you may yet be able +to translate your program if you break this one +.B procedure +or +.B function +into several routines. +.SH +I/O errors +.PP +Other errors which you may encounter when running +.PI +relate to input-output. +If +.PI +cannot open the file you specify, +or if the file is empty, +you will be so informed. +.NH 2 +Run-time errors +.PP +We saw, in our second example, a run-time error. +We here give the general description of run-time errors. +The more unusual interpreter error messages are explained +briefly in the manual section for +.I px +(1). +.SH +Start-up errors +.PP +These errors occur when the object file to be executed is not available +or appropriate. +Typical errors here are caused by the specified object file not existing, +not being a Pascal object, or being inaccessible to the user. +.SH +Program execution errors +.PP +These errors occur when the program interacts with the Pascal runtime +environment in an inappropriate way. +Typical errors are values or subscripts out of range, +bad arguments to built-in functions, +exceeding the statement limit because of an infinite loop, +or running out of memory\*(dd. +.FS +\*(ddThe checks for running out of memory are not foolproof and there +is a chance that the interpreter will fault, producing a core image +when it runs out of memory. +This situation occurs very rarely. +.FE +The interpreter will produce a backtrace after the error occurs, +showing all the active routine calls, +unless the +.B p +option was disabled when the program was translated. +Unfortunately, no variable values are given and no way of extracting them +is available.* +.FS +* On the \s-2VAX\s0-11, each variable +is restricted to allocate at most 65000 bytes of storage (this is a +\s-2PDP\s0-11ism that has survived to the \s-2VAX\s0.) +.FE +.PP +As an example of such an error, assume that we have accidentally +declared the constant +.I n1 +to be 6, instead of 7 +on line 2 of the program primes as given in section 2.6 above. +If we run this program we get the following response. +.LS +% \*bpix primes.p\fP +.so primeout3 +% +.LE +.PP +Here the interpreter indicates that the program terminated +abnormally due to a subscript out of range near line 14, +which is eight lines into the body of the program primes. +.SH +Interrupts +.PP +If the program is interrupted while executing +and the +.B p +option was not specified, +then a backtrace will be printed.\*(dg +.FS +\*(dgOccasionally, the Pascal system will be in an inconsistent +state when this occurs, +e.g. when an interrupt terminates a +.B procedure +or +.B function +entry or exit. +In this case, the backtrace will only contain the current line. +A reverse call order list of procedures will not be given. +.FE +The file +.I pmon.out +of profile information will be written if the program was translated +with the +.B z +option enabled to +.PI +or +.IX . +.SH +I/O interaction errors +.PP +The final class of interpreter errors results from inappropriate +interactions with files, including the user's terminal. +Included here are bad formats for integer and real numbers (such as +no digits after the decimal point) when reading. diff --git a/doc/ps1/04.pascal/puman4.n b/doc/ps1/04.pascal/puman4.n new file mode 100644 index 00000000..67ebc2f8 --- /dev/null +++ b/doc/ps1/04.pascal/puman4.n @@ -0,0 +1,582 @@ +.\" Copyright (c) 1980 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)puman4.n 6.2 (Berkeley) 5/7/86 +.\" +.if !\n(xx \{\ +.so tmac.p \} +.nr H1 3 +.if n 'ND +.NH +Input/output +.PP +This section describes features of the Pascal input/output environment, +with special consideration of the features peculiar to an +interactive implementation. +.NH 2 +Introduction +.PP +Our first sample programs, in section 2, used the file +.I output . +We gave examples there of redirecting the output to a file and to the line +printer using the shell. +Similarly, we can read the input from a file or another program. +Consider the following Pascal program which is similar to the program +.I cat +(1). +.LS +% \*bpix -l kat.p clean.p\fR +.LE +Note that since the shell creates the output file `clean.p' before +.XP +executes, so `clean.p' and `dirty.p' must not be the same file. +.PP +.I Pxp +automatically paragraphs the program, performing housekeeping +chores such as comment alignment, and +treating blank lines, lines containing exactly one blank +and lines containing only a form-feed character as though they +were comments, preserving their vertical spacing effect in the output. +.I Pxp +distinguishes between four kinds of comments: +.HP +.RS +.IP 1) +Left marginal comments, which begin in the first column of the +input line and are placed in the first column of an output line. +.IP 2) +Aligned comments, which are preceded by no input tokens on the +input line. +These are aligned in the output with the running program text. +.IP 3) +Trailing comments, which are preceded in the input line by a token with +no more than two spaces separating the token from the comment. +.IP 4) +Right marginal comments, which are preceded in the input line +by a token from which they are separated by at least three spaces or a tab. +These are aligned down the right margin of the output, +currently to the first tab stop after the 40th column from the current +``left margin''. +.RE +.LP +Consider the following program. +.LS +% \*bcat comments.p\fR +.so comments1.p +.LE +When formatted by +.XP +the following output is produced. +.LS +% \*bpxp comments.p\fR +.so commentsout +% +.LE +The following formatting related options are currently available in +.XP . +The options +.B f +and +.B j +described in the previous section may also be of interest. +.SH +Strip comments \-s +.PP +The +.B s +option causes +.XP +to remove all comments from the input text. +.SH +Underline keywords \- \_ +.PP +A command line argument of the form +.B \-\_ +as in +.LS +% \*bpxp -_ dirty.p\fR +.LE +can be used to cause +.XP +to underline all keywords in the output for enhanced readability. +.SH +Specify indenting unit \- [23456789] +.PP +The normal unit which +.XP +uses to indent a structure statement level is 4 spaces. +By giving an argument of the form +\fB\-\fId\fR +with +.I d +a digit, +2 \(<= +.I d +\(<= 9 +you can specify that +.I d +spaces are to be used per level instead. +.NH 2 +Pxref +.PP +The cross-reference program +.I pxref +may be used to make cross-referenced listings of Pascal +programs. +To produce a cross-reference of the program in the file +`foo.p' +one can execute the command: +.LS +% \*bpxref foo.p\fR +.LE +The cross-reference is, unfortunately, not block structured. +Full details on +.I pxref +are given in its manual section +.I pxref +(1). +.NH 2 +Multi-file programs +.PP +A text inclusion facility is available with +.UP . +This facility allows the interpolation of source text from other +files into the source stream of the translator. +It can be used to divide large programs into more manageable pieces +for ease in editing, listing, and maintenance. +.PP +The +.B include +facility is based on that of the +.SM +UNIX +.NL +C compiler. +To trigger it you can place the character `#' in the first portion of +a line and then, after an arbitrary number of blanks or tabs, +the word +`include' +followed by a filename enclosed in single `\(aa' or double `"' quotation +marks. +The file name may be followed by a semicolon `;' if you wish to treat +this as a pseudo-Pascal statement. +The filenames of included files must end in `.i'. +An example of the use of included files in a main program would be: +.LS +\*bprogram\fR compiler(input, output, obj); + +#\*binclude\fR "globals.i" +#\*binclude\fR "scanner.i" +#\*binclude\fR "parser.i" +#\*binclude\fR "semantics.i" + +\*bbegin\fR + { main program } +\*bend\fR. +.LE +.PP +At the point the +.B include +pseudo-statement is encountered in the input, the lines from +the included file are interpolated into the input stream. +For the purposes of translation and runtime diagnostics and +statement numbers in the listings and post-mortem backtraces, +the lines in the included file are numbered from 1. +Nested includes are possible up to 10 deep. +.PP +See the descriptions of the +.B i +option of +.PI +in section 5.2 +above; +this can be used to control listing when +.B include +files are present. +.PP +When a non-trivial line is encountered in the source text after an +.B include +finishes, the +`popped' filename is printed, in the same manner as above. +.PP +For the purposes of error diagnostics when not making a listing, the filename +will be printed before each diagnostic if the current +filename has changed since the last +filename was printed. +.NH 2 +Separate Compilation with Pc +.PP +A separate compilation facility is provided with the Berkeley Pascal compiler, +.PC . +This facility allows programs to be divided into a number of files and +the pieces to be compiled individually, +to be linked together at some later time. +This is especially useful for large programs, +where small changes would otherwise require +time-consuming re-compilation of the entire program. +.PP +Normally, +.PC +expects to be given entire Pascal programs. +However, if given the +.B \-c +option on the command line, it will accept a sequence of definitions and +declarations, and compile them into a +.B .o +file, to be linked with a Pascal program at a later time. +In order that procedures and functions be available across +separately compiled files, they must be declared with the directive +.B external . +This directive is similar to the directive +.B forward +in that it must precede the resolution of the function or procedure, +and formal parameters and function result types must be specified +at the +.B external +declaration and may not be specified at the resolution. +.PP +Type checking is performed across separately compiled files. +Since Pascal type defintions define unique types, +any types which are shared between separately compiled files +must be the same definition. +This seemingly impossible problem is solved using a facility similar +to the +.B include +facility discussed above. +Definitions may be placed in files with the extension +.B .h +and the files included by separately compiled files. +Each definition from a +.B .h +file defines a unique type, and all uses of a definition from the same +.B .h +file define the same type. +Similarly, the facility is extended to allow the definition of +.B const s +and the declaration of +.B label s, +.B var s, +and +.B external +.B function s +and +.B procedure s. +Thus +.B procedure s +and +.B function s +which are used between separately compiled files must be declared +.B external , +and must be so declared in a +.B .h +file included by any file which calls or resolves the +.B function +or +.B procedure . +Conversely, +.B function s +and +.B procedure s +declared +.B external +may only be so declared in +.B .h +files. +These files may be included only at the outermost level, +and thus define or declare global objects. +Note that since only +.B external +.B function +and +.B procedure +declarations (and not resolutions) are allowed in +.B .h +files, statically nested +.B function s +and +.B procedure s +can not be declared +.B external . +.PP +An example of the use of included +.B .h +files in a program would be: +.LS +\*bprogram\fR compiler(input, output, obj); + +#\*binclude\fR "globals.h" +#\*binclude\fR "scanner.h" +#\*binclude\fR "parser.h" +#\*binclude\fR "semantics.h" + +\*bbegin\fR + { main program } +\*bend\fR. +.LE +.PP +This might include in the main program +the definitions and declarations of all the global +.B label s, +.B const s, +.B type s and +.B var s +from the file globals.h, +and the +.B external +.B function +and +.B procedure +declarations for each of the +separately compiled files for the scanner, parser and semantics. +The header file +.I scanner.h +would contain declarations of the form: +.LS +\*btype\fR + token = \*brecord\fR + { token fields } + \*bend\fR; + +\*bfunction\fR scan(\*bvar\fR inputfile: text): token; + \*bexternal\fR; +.LE +.ne 15 +Then the scanner might be in a separately compiled file containing: +.LS +#\*binclude\fR "globals.h" +#\*binclude\fR "scanner.h" + +\*bfunction\fR scan; +\*bbegin\fR + { scanner code } +\*bend\fR; +.LE +which includes the same global definitions and declarations +and resolves the scanner functions and procedures declared +.B external +in the file scanner.h. diff --git a/doc/ps1/04.pascal/pumanA.n b/doc/ps1/04.pascal/pumanA.n new file mode 100644 index 00000000..98fcf11d --- /dev/null +++ b/doc/ps1/04.pascal/pumanA.n @@ -0,0 +1,938 @@ +.\" Copyright (c) 1980 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)pumanA.n 6.2 (Berkeley) 5/7/86 +.\" +.if !\n(xx \{\ +.so tmac.p \} +.ND +.nr H1 0 +.af H1 A +.NH +Appendix to Wirth's Pascal Report +.PP +This section is an appendix to +the definition of the Pascal language in Niklaus Wirth's +.I "Pascal Report" +and, with that Report, precisely defines the +Berkeley +implementation. +This appendix includes a summary of extensions to the language, +gives the ways in which the undefined specifications were resolved, +gives limitations and restrictions of the current implementation, +and lists the added functions and procedures available. +It concludes with a list of differences with the commonly available +Pascal 6000\-3.4 implementation, +and some comments on standard and portable Pascal. +.NH 2 +Extensions to the language Pascal +.PP +This section defines non-standard language constructs available in +.UP . +The +.B s +standard Pascal option of the translators +.PI +and +.PC +can be used to detect these extensions in programs which are to be transported. +.SH +String padding +.PP +.UP +will pad constant strings with blanks in expressions and as +value parameters to make them as long as is required. +The following is a legal +.UP +program: +.LS +\*bprogram\fP x(output); +\*bvar\fP z : \*bpacked\fP \*barray\fP [ 1 .. 13 ] \*bof\fP char; +\*bbegin\fP + z := 'red'; + writeln(z) +\*bend\fP; +.LE +The padded blanks are added on the right. +Thus the assignment above is equivalent to: +.LS +z := 'red ' +.LE +which is standard Pascal. +.SH +Octal constants, octal and hexadecimal write +.PP +Octal constants may be given as a sequence of octal digits followed +by the character `b' or `B'. +The forms +.LS +write(a:n \*boct\fP) +.LE +and +.LS +write(a:n \*bhex\fP) +.LE +cause the internal representation of +expression +.I a, +which must be Boolean, character, integer, pointer, or a user-defined enumerated +type, +to be written in octal or hexadecimal respectively. +.SH +Assert statement +.PP +An +.B assert +statement causes a +.I Boolean +expression to be evaluated +each time the statement is executed. +A runtime error results if any of the expressions evaluates to be +.I false . +The +.B assert +statement is treated as a comment if run-time tests are disabled. +The syntax for +.B assert +is: +.LS +\*bassert\fP +.LE +.SH +Enumerated type input-output +.PP +Enumerated types may be read and written. +On output the string name associated with the enumerated +value is output. +If the value is out of range, +a runtime error occurs. +On input an identifier is read and looked up +in a table of names associated with the +type of the variable, and +the appropriate internal value is assigned to the variable being +read. +If the name is not found in the table +a runtime error occurs. +.SH +Structure returning functions +.PP +An extension has been added which allows functions +to return arbitrary sized structures rather than just +scalars as in the standard. +.SH +Separate compilation +.PP +The compiler +.PC +has been extended to allow separate compilation of programs. +Procedures and functions declared at the global level +may be compiled separately. +Type checking of calls to separately compiled routines is performed +at load time to insure that the program as a whole +is consistent. +See section 5.10 for details. +.NH 2 +Resolution of the undefined specifications +.SH +File name \- file variable associations +.PP +Each Pascal file variable is associated with a named +.UX +file. +Except for +.I input +and +.I output, +which are +exceptions to some of the rules, a name can become associated +with a file in any of three ways: +.IP "\ \ \ \ \ 1)" 10 +If a global Pascal file variable appears in the +.B program +statement +then it is associated with +.UX +file of the same name. +.IP "\ \ \ \ \ 2)" +If a file was reset or rewritten using the +extended two-argument form of +.I reset +or +.I rewrite +then the given name +is associated. +.IP "\ \ \ \ \ 3)" +If a file which has never had +.UX +name associated +is reset or rewritten without specifying a name +via the second argument, then a temporary name +of the form `tmp.x' +is associated with the file. +Temporary names start with +`tmp.1' and continue by incrementing the last character in the +.SM +USASCII +.NL +ordering. +Temporary files are removed automatically +when their scope is exited. +.SH +The program statement +.PP +The syntax of the +.B program +statement is: +.LS +\*bprogram\fP ( { , } ) ; +.LE +The file identifiers (other than +.I input +and +.I output ) +must be declared as variables of +.B file +type in the global declaration part. +.SH +The files input and output +.PP +The formal parameters +.I input +and +.I output +are associated with the +.UX +standard input and output and have a +somewhat special status. +The following rules must be noted: +.IP "\ \ \ \ \ 1)" 10 +The program heading +.B must +contains the formal parameter +.I output. +If +.I input +is used, explicitly or implicitly, then it must +also be declared here. +.IP "\ \ \ \ \ 2)" +Unlike all other files, the +Pascal files +.I input +and +.I output +must not be defined in a declaration, +as their declaration is automatically: +.LS +\*bvar\fP input, output: text +.LE +.IP "\ \ \ \ \ 3)" +The procedure +.I reset +may be used on +.I input. +If no +.UX +file name has ever been associated with +.I input, +and no file name is given, then an attempt will be made +to `rewind' +.I input. +If this fails, a run time +error will occur. +.I Rewrite +calls to output act as for any other file, except that +.I output +initially has no associated file. +This means that a simple +.LS +rewrite(output) +.LE +associates a temporary name with +.I output. +.SH +Details for files +.PP +If a file other than +.I input +is to be read, +then reading must be initiated by a call to the +procedure +.I reset +which causes the Pascal system to attempt to open the +associated +.UX +file for reading. +If this fails, then a runtime error occurs. +Writing of a file other than +.I output +must be initiated by a +.I rewrite +call, +which causes the Pascal system to create the associated +.UX +file and +to then open the file for writing only. +.SH +Buffering +.PP +The buffering for +.I output +is determined by the value of the +.B b +option +at the end of the +.B program +statement. +If it has its default value 1, +then +.I output +is +buffered in blocks of up to 512 characters, +flushed whenever a writeln occurs +and at each reference to the file +.I input. +If it has the value 0, +.I output +is unbuffered. +Any value of +2 or more gives block buffering without line or +.I input +reference flushing. +All other output files are always buffered in blocks of 512 characters. +All output buffers are flushed when the files are closed at scope exit, +whenever the procedure +.I message +is called, and can be flushed using the +built-in procedure +.I flush. +.PP +An important point for an interactive implementation is the definition +of `input\(ua'. +If +.I input +is a teletype, and the Pascal system reads a character at the beginning +of execution to define `input\(ua', then no prompt could be printed +by the program before the user is required to type some input. +For this reason, `input\(ua' is not defined by the system until its definition +is needed, reading from a file occurring only when necessary. +.SH +The character set +.PP +Seven bit +.SM USASCII +is the character set used on +.UX . +The standard Pascal +symbols `and', 'or', 'not', '<=', '>=', '<>', +and the uparrow `\(ua' (for pointer qualification) +are recognized.\*(dg +.FS +\*(dgOn many terminals and printers, the up arrow is represented +as a circumflex `^'. +These are not distinct characters, but rather different graphic +representations of the same internal codes. +.FE +Less portable are the +synonyms tilde `~' +for +.B not , +`&' for +.B and , +and `|' for +.B or . +.PP +Upper and lower case are considered to be distinct.\*(st +.FS +\*(stThe proposed standard for Pascal considers them to be the same. +.FE +Keywords and built-in +.B procedure +and +.B function +names are +composed of all lower case letters. +Thus the identifiers GOTO and GOto are distinct both from each other and +from the keyword +\*bgoto\fP. +The standard type `boolean' is also available as `Boolean'. +.PP +Character strings and constants may be delimited by the character +`\'' +or by the character `#'; +the latter is sometimes convenient when programs are to be transported. +Note that the `#' character has special meaning +.up +when it is the first character on a line \- see +.I "Multi-file programs" +below. +.SH +The standard types +.PP +The standard type +.I integer +is conceptually defined as +.LS +\*btype\fP integer = minint .. maxint; +.LE +.I Integer +is implemented with 32 bit twos complement arithmetic. +Predefined constants of type +.I integer +are: +.LS +\*bconst\fP maxint = 2147483647; minint = -2147483648; +.LE +.PP +The standard type +.I char +is conceptually defined as +.LS +\*btype\fP char = minchar .. maxchar; +.LE +Built-in character constants are `minchar' and `maxchar', `bell' and `tab'; +ord(minchar) = 0, ord(maxchar) = 127. +.PP +The type +.I real +is implemented using 64 bit floating point arithmetic. +The floating point arithmetic is done in `rounded' mode, and +provides approximately 17 digits of precision +with numbers as small as 10 to the negative 38th power and as large as +10 to the 38th power. +.SH +Comments +.PP +Comments can be delimited by either `{' and `}' or by `(*' and `*)'. +If the character `{' appears in a comment delimited by `{' and `}', +a warning diagnostic is printed. +A similar warning will be printed if the sequence `(*' appears in +a comment delimited by `(*' and `*)'. +The restriction implied by this warning is not part of standard Pascal, +but detects many otherwise subtle errors. +.SH +Option control +.PP +Options of the translators may be controlled +in two distinct ways. +A number of options may appear on the command line invoking the translator. +These options are given as one or more strings of letters preceded by the +character `\-' and cause the default setting of +each given option to be changed. +This method of communication of options is expected to predominate +for +.UX . +Thus the command +.LS +% \*bpi \-l \-s foo.p\fR +.LE +translates the file foo.p with the listing option enabled (as it normally +is off), and with only standard Pascal features available. +.PP +If more control over the portions of the program where options are enabled is +required, then option control in comments can and should be used. +The +format for option control in comments is identical to that used in Pascal +6000\-3.4. +One places the character `$' as the first character of the comment +and follows it by a comma separated list of directives. +Thus an equivalent to the command line example given above would be: +.LS +{$l+,s+ listing on, standard Pascal} +.LE +as the first line of the program. +The `l' +option is more appropriately specified on the command line, +since it is extremely unlikely in an interactive environment +that one wants a listing of the program each time it is translated. +.PP +Directives consist of a letter designating the option, +followed either by a `+' to turn the option on, or by a `\-' to turn the +option off. +The +.B b +option takes a single digit instead of +a `+' or `\-'. +.SH +Notes on the listings +.PP +The first page of a listing +includes a banner line indicating the version and date of generation of +.PI +or +.PC . +It also +includes the +.UX +path name supplied for the source file and the date of +last modification of that file. +.PP +Within the body of the listing, lines are numbered consecutively and +correspond to the line numbers for the editor. +Currently, two special +kinds of lines may be used to format the listing: +a line consisting of a form-feed +character, control-l, which causes a page +eject in the listing, and a line with +no characters which causes the line number to be suppressed in the listing, +creating a truly blank line. +These lines thus correspond to `eject' and `space' macros found in many +assemblers. +Non-printing characters are printed as the character `?' in the listing.\*(dg +.FS +\*(dgThe character generated by a control-i indents +to the next `tab stop'. +Tab stops are set every 8 columns in +.UX . +Tabs thus provide a quick way of indenting in the program. +.FE +.SH +The standard procedure write +.PP +If no minimum field length parameter is specified +for a +.I write, +the following default +values are assumed: +.KS +.TS +center; +l n. +integer 10 +real 22 +Boolean length of `true' or `false' +char 1 +string length of the string +oct 11 +hex 8 +.TE +.KE +The end of each line in a text file should be explicitly +indicated by `writeln(f)', where `writeln(output)' may be written +simply as `writeln'. +For +.UX , +the built-in function `page(f)' puts a single +.SM ASCII +form-feed character on the output file. +For programs which are to be transported the filter +.I pcc +can be used to interpret carriage control, as +.UX +does not normally do so. +.NH 2 +Restrictions and limitations +.SH +Files +.PP +Files cannot be members of files or members of dynamically +allocated structures. +.SH +Arrays, sets and strings +.PP +The calculations involving array subscripts and set elements +are done with 16 bit arithmetic. +This +restricts the types over which arrays and sets may be defined. +The lower bound of such a range must be greater than or equal to +\-32768, and the upper bound less than 32768. +In particular, strings may have any length from 1 to 65535 characters, +and sets may contain no more than 65535 elements. +.SH +Line and symbol length +.PP +There is no intrinsic limit on the length of identifiers. +Identifiers +are considered to be distinct if they differ +in any single position over their entire length. +There is a limit, however, on the maximum input +line length. +This limit is quite generous however, currently exceeding 160 +characters. +.SH +Procedure and function nesting and program size +.PP +At most 20 levels of +.B procedure +and +.B function +nesting are allowed. +There is no fundamental, translator defined limit on the size of the +program which can be translated. +The ultimate limit is supplied by the +hardware and thus, on the \s-2PDP\s0-11, +by the 16 bit address space. +If +one runs up against the `ran out of memory' diagnostic the program may yet +translate if smaller procedures are used, as a lot of space is freed +by the translator at the completion of each +.B procedure +or +.B function +in the current +implementation. +.PP +On the \s-2VAX\s0-11, there is an implementation defined limit +of 65536 bytes per variable. +There is no limit on the number of variables. +.SH +Overflow +.PP +There is currently no checking for overflow on arithmetic operations at +run-time on the \s-2PDP\s0-11. +Overflow checking is performed on the \s-2VAX\s0-11 by the hardware. +.br +.ne 15 +.NH 2 +Added types, operators, procedures and functions +.SH +Additional predefined types +.PP +The type +.I alfa +is predefined as: +.LS +\*btype\fP alfa = \*bpacked\fP \*barray\fP [ 1..10 ] \*bof\fP \*bchar\fP +.LE +.PP +The type +.I intset +is predefined as: +.LS +\*btype\fP intset = \*bset of\fP 0..127 +.LE +In most cases the context of an expression involving a constant +set allows the translator to determine the type of the set, even though the +constant set itself may not uniquely determine this type. +In the +cases where it is not possible to determine the type of the set from +local context, the expression type defaults to a set over the entire base +type unless the base type is integer\*(dg. +.FS +\*(dgThe current translator makes a special case of the construct +`if ... in [ ... ]' and enforces only the more lax restriction +on 16 bit arithmetic given above in this case. +.FE +In the latter case the type defaults to the current +binding of +.I intset, +which must be ``type set of (a subrange of) integer'' at that point. +.PP +Note that if +.I intset +is redefined via: +.LS +\*btype\fP intset = \*bset of\fP 0..58; +.LE +then the default integer set is the implicit +.I intset +of +Pascal 6000\-3.4 +.SH +Additional predefined operators +.PP +The relationals `<' and `>' of proper set +inclusion are available. +With +.I a +and +.I b +sets, note that +.LS +(\*bnot\fR (\fIa\fR < \fIb\fR)) <> (\fIa\fR >= \fIb\fR) +.LE +As an example consider the sets +.I a += [0,2] +and +.I b += [1]. +The only relation true between these sets is `<>'. +.SH +Non-standard procedures +.IP argv(i,a) 25 +where +.I i +is an integer and +.I a +is a string variable +assigns the (possibly truncated or blank padded) +.I i \|'th +argument +of the invocation of the current +.UX +process to the variable +.I a . +The range of valid +.I i +is +.I 0 +to +.I argc\-1 . +.IP date(a) +assigns the current date to the alfa variable +.I a +in the format `dd mmm yy ', where `mmm' is the first +three characters of the month, i.e. `Apr'. +.IP flush(f) +writes the output buffered for Pascal file +.I f +into the associated +.UX +file. +.IP halt +terminates the execution of the program with +a control flow backtrace. +.IP linelimit(f,x)\*(dd +.FS +\*(ddCurrently ignored by pdp-11 +.X . +.FE +with +.I f +a textfile and +.I x +an integer expression +causes +the program to be abnormally terminated if more than +.I x +lines are +written on file +.I f . +If +.I x +is less than 0 then no limit is imposed. +.IP message(x,...) +causes the parameters, which have the format of those +to the +built-in +.B procedure +.I write, +to be written unbuffered on the diagnostic unit 2, +almost always the user's terminal. +.IP null +a procedure of no arguments which does absolutely nothing. +It is useful as a place holder, +and is generated by +.XP +in place of the invisible empty statement. +.IP remove(a) +where +.I a +is a string causes the +.UX +file whose +name is +.I a, +with trailing blanks eliminated, to be removed. +.IP reset(f,a) +where +.I a +is a string causes the file whose name +is +.I a +(with blanks trimmed) to be associated with +.I f +in addition +to the normal function of +.I reset. +.IP rewrite(f,a) +is analogous to `reset' above. +.IP stlimit(i) +where +.I i +is an integer sets the statement limit to be +.I i +statements. +Specifying the +.B p +option to +.I pc +disables statement limit counting. +.IP time(a) +causes the current time in the form `\ hh:mm:ss\ ' to be +assigned to the alfa variable +.I a. +.SH +Non-standard functions +.IP argc 25 +returns the count of arguments when the Pascal program +was invoked. +.I Argc +is always at least 1. +.IP card(x) +returns the cardinality of the set +.I x, +i.e. the +number of elements contained in the set. +.IP clock +returns an integer which is the number of central processor +milliseconds of user time used by this process. +.IP expo(x) +yields the integer valued exponent of the floating-point +representation of +.I x ; +expo(\fIx\fP) = entier(log2(abs(\fIx\fP))). +.IP random(x) +where +.I x +is a real parameter, evaluated but otherwise +ignored, invokes a linear congruential random number generator. +Successive seeds are generated as (seed*a + c) mod m and +the new random number is a normalization of the seed to the range 0.0 to 1.0; +a is 62605, c is 113218009, and m is +536870912. +The initial seed +is 7774755. +.IP seed(i) +where +.I i +is an integer sets the random number generator seed +to +.I i +and returns the previous seed. +Thus seed(seed(i)) +has no effect except to yield value +.I i. +.IP sysclock +an integer function of no arguments returns the number of central processor +milliseconds of system time used by this process. +.IP undefined(x) +a Boolean function. +Its argument is a real number and +it always returns false. +.IP wallclock +an integer function of no arguments returns the time +in seconds since 00:00:00 GMT January 1, 1970. +.NH 2 +Remarks on standard and portable Pascal +.PP +It is occasionally desirable to prepare Pascal programs which will be +acceptable at other Pascal installations. +While certain system dependencies are bound to creep in, +judicious design and programming practice can usually eliminate +most of the non-portable usages. +Wirth's +.I "Pascal Report" +concludes with a standard for implementation and program exchange. +.PP +In particular, the following differences may cause trouble when attempting +to transport programs between this implementation and Pascal 6000\-3.4. +Using the +.B s +translator option may serve to indicate many problem areas.\*(dg +.FS +\*(dgThe +.B s +option does not, however, check that identifiers differ +in the first 8 characters. +.I Pi +and +.PC +also do not check the semantics of +.B packed . +.FE +.SH +Features not available in Berkeley Pascal +.IP +Segmented files and associated functions and procedures. +.IP +The function +.I trunc +with two arguments. +.IP +Arrays whose indices exceed the capacity of 16 bit arithmetic. +.SH +Features available in Berkeley Pascal but not in Pascal 6000-3.4 +.IP +The procedures +.I reset +and +.I rewrite +with file names. +.IP +The functions +.I argc, +.I seed, +.I sysclock, +and +.I wallclock. +.IP +The procedures +.I argv, +.I flush, +and +.I remove. +.IP +.I Message +with arguments other than character strings. +.IP +.I Write +with keyword +.B hex . +.IP +The +.B assert +statement. +.IP +Reading and writing of enumerated types. +.IP +Allowing functions to return structures. +.IP +Separate compilation of programs. +.IP +Comparison of records. +.SH +Other problem areas +.PP +Sets and strings are more general in \* +.UP ; +see the restrictions given in +the +Jensen-Wirth +.I "User Manual" +for details on the 6000\-3.4 restrictions. +.PP +The character set differences may cause problems, +especially the use of the function +.I chr, +characters as arguments to +.I ord, +and comparisons of characters, +since the character set ordering +differs between the two machines. +.PP +The Pascal 6000\-3.4 compiler uses a less strict notion of type equivalence. +In +.UP , +types are considered identical only if they are represented +by the same type identifier. +Thus, in particular, unnamed types are unique +to the variables/fields declared with them. +.PP +Pascal 6000\-3.4 doesn't recognize our option +flags, so it is wise to +put the control of +.UP +options to the end of option lists or, better +yet, restrict the option list length to one. +.PP +For Pascal 6000\-3.4 the ordering of files in the program statement has +significance. +It is desirable to place +.I input +and +.I output +as the first two files in the +.B program +statement. +.sp 2 +.SH +Acknowledgments +.PP +The financial support of William Joy and Susan Graham by +the National Science Foundation under grants +MCS74-07644-A04, MCS78-07291, and MCS80-05144, +and the William Joy by an +.SM IBM +Graduate Fellowship are gratefully acknowledged. diff --git a/doc/ps1/04.pascal/sin1.p b/doc/ps1/04.pascal/sin1.p new file mode 100644 index 00000000..21248836 --- /dev/null +++ b/doc/ps1/04.pascal/sin1.p @@ -0,0 +1,13 @@ +program sinout(output); +begin + + + + + + + + + +write(sin(1,2)); +end. diff --git a/doc/ps1/04.pascal/sin2.p b/doc/ps1/04.pascal/sin2.p new file mode 100644 index 00000000..4a2cc317 --- /dev/null +++ b/doc/ps1/04.pascal/sin2.p @@ -0,0 +1,13 @@ +program sinout(output); +begin + + + + + + + + + +write(sin('*')); +end. diff --git a/doc/ps1/04.pascal/synerr.p b/doc/ps1/04.pascal/synerr.p new file mode 100644 index 00000000..ff9b2379 --- /dev/null +++ b/doc/ps1/04.pascal/synerr.p @@ -0,0 +1,9 @@ +program syn(output); +var i, j are integer; +begin + for j :* 1 to 20 begin + write(j); + i = 2 ** j; + writeln(i)) + end +end. diff --git a/doc/ps1/04.pascal/synerr2.p b/doc/ps1/04.pascal/synerr2.p new file mode 100644 index 00000000..4b7be594 --- /dev/null +++ b/doc/ps1/04.pascal/synerr2.p @@ -0,0 +1,7 @@ +program synerr2(input,outpu); +integer a(10) +begin + read(b); + for c := 1 to 10 do + a(c) := b * c; +end. diff --git a/doc/ps1/04.pascal/tmac.p b/doc/ps1/04.pascal/tmac.p new file mode 100644 index 00000000..066bcd53 --- /dev/null +++ b/doc/ps1/04.pascal/tmac.p @@ -0,0 +1,79 @@ +'so /usr/lib/tmac/tmac.s +.if t .tr \(rh- +.if t .tr *\(**=\(eq/\(sl+\(pl +.bd S B 3 +.de SM +.if "\\$1"" .ps -2 +.if !"\\$1"" \s-2\\$1\s0\\$2 +.. +.de LG +.if "\\$1"" .ps +2 +.if !"\\$1"" \s+2\\$a\s0\\$2 +.. +.de HP +.nr pd \\n(PD +.nr PD 0 +.if \\n(.$=0 .IP +.if \\n(.$=1 .IP "\\$1" +.if \\n(.$>=2 .IP "\\$1" "\\$2" +.nr PD \\n(pd +.rm pd +.. +.de LS \"LS - Literal display, ASCII, constant spaced DS +.XD +.ID +.nf +.if t .tr '\'`\`^\(ua-\(mi +.if t .tr _\(ul +.. +.de LE \"LE - End literal display +.DE +.tr ''``__--^^ +.. +.de UP +Berkeley Pascal\\$1 +.. +.de PD +\s-2PDP\s0 +.if \\n(.$=0 11/70 +.if \\n(.$>0 11/\\$1 +.. +.de DK +Digital Equipment Corporation\\$1 +.. +.de IN +.I +.if \\n(.$<2 \\$1 1.0 Implementation Notes +.if \\n(.$>=2 \\$1 1.0 Implementation Notes\\c +.R +.if \\n(.$>=2 \\$2 +.. +.de UM +.I +User's Manual +.R +.. +.de PC +.I pc \\$1 +.. +.de PI +.I pi \\$1 +.. +.de XP +.I pxp \\$1 +.. +.de IX +.I pix \\$1 +.. +.de X +.I px \\$1 +.. +.if n .ds dg + +.if t .ds dg \(dg +.if n .ds dd * +.if t .ds dd \(dd +.if n .nr FM 1.12i +.if t .ds b \\fB +.if n .ds b \\fI +.ds i \\fI +.nr xx 1 diff --git a/doc/ps1/04.pascal/typequ.p b/doc/ps1/04.pascal/typequ.p new file mode 100644 index 00000000..7d080dc5 --- /dev/null +++ b/doc/ps1/04.pascal/typequ.p @@ -0,0 +1,10 @@ +program x(output); +var + x: ^ integer; + y: ^ integer; +begin + new(y); + x := y; + x^ := 1; + x := x; +end. diff --git a/doc/ps1/05.as/Makefile b/doc/ps1/05.as/Makefile new file mode 100644 index 00000000..707a1c67 --- /dev/null +++ b/doc/ps1/05.as/Makefile @@ -0,0 +1,47 @@ +# +# Copyright (c) 1983 Regents of the University of California +# +# @(#)Makefile 1.2 (Berkeley) 4/15/86 +# +MAN = as.man.1 +DOC = asdocs0.me asdocs1.me asdocs2.me asdocs3.me asdocs4.me +# +# Change these to change the way the document is printed out; +# the document is written using -me, which always must be present +# +FMT = ditroff +PKG = -me +PRINTER = -Pdp +# FMTOPTIONS = -t +FMTOPTIONS = +FMTDST = docs.t.out +EQN = deqn +TBL = dtbl +all: sources fmt + +clean: + -rm *.TME $(FMTDST) + +srcs: sources +sources: $(DOC) $(MAN) +$(DOC) $(MAN): + sccs get $@ +# +# Constructing the assembler documentation: +# assembler reference manual +# assembler manual page +# +.SUFFIXES: .me .TME .tbl + +DOCS = asdocs0.me asdocs1.TME asdocs2.TME asdocs3.TME asdocs4.TME + +docs.raw: $(DOCS) + +fmt: $(DOCS) + cat $(DOCS) | $(FMT) $(FMTOPTIONS) $(PKG) $(PRINTER) + -rm *.TME + +.me.TME: + soelim $*.me | $(TBL) $(PRINTER) > $*.tmp + $(EQN) $(PRINTER) /usr/pub/eqnchar $*.tmp > $*.TME + rm $*.tmp diff --git a/doc/ps1/05.as/as.man.1 b/doc/ps1/05.as/as.man.1 new file mode 100644 index 00000000..70e3a8a5 --- /dev/null +++ b/doc/ps1/05.as/as.man.1 @@ -0,0 +1,98 @@ +.\" +.\" Copyright (c) 1982 Regents of the University of California +.\" +.\" @(#)as.man.1 4.3 7/1/83 +.\" +.TH AS 1 "July 1, 1983" +.UC 4 +.SH NAME +as \- VAX-11 assembler +.SH SYNOPSIS +.B as +[ +.B \-d124 +] [ +.B \-L +] [ +.B \-W +] [ +.B \-V +] [ +.B \-J +] [ +.B \-R +] [ +.B \-t +directory +] [ +.B \-o +objfile ] [ name ... ] +.SH DESCRIPTION +.I As +assembles the named files, or the standard input if no file name is specified. +The available flags are: +.TP +.B \-d +Specifies the number of bytes to be assembled for offsets +which involve forward or external references, and which have sizes unspecified +in the assembly language. +The default is +.B \-d4. +.TP +.B \-L +Save defined labels beginning with a `L', which are normally discarded +to save space in the resultant symbol table. +The compilers generate such temporary labels. +.TP +.B \-V +Use virtual memory for some intermediate storage, +rather than a temporary file. +.TP +.B \-W +Do not complain about errors. +.TP +.B \-J +Use long branches to resolve jumps when byte-displacement branches are +insufficient. This must be used when a compiler-generated assembly contains +branches of more than 32k bytes. +.TP +.B \-R +Make initialized data segments read-only, by concatenating them to +the text segments. +This obviates the need to run editor scripts on assembly +code to make initialized data read-only and shared. +.TP +.B \-t +Specifies a directory to receive the temporary file, other than +the default /tmp. +.PP +All undefined symbols in the assembly +are treated as global. +.PP +The output of the assembly is left on the file +.I objfile; +if that is omitted, +.I a.out +is used. +.SH FILES +.ta 1.5i +/tmp/as\(** default temporary files +.br +a.out default resultant object file +.SH "SEE ALSO" +ld(1), +nm(1), +adb(1), +dbx(1), +a.out(5) +.br +Auxiliary documentation +.I Assembler Reference Manual. +.SH AUTHORS +John F. Reiser +.br +Robert R. Henry +.SH BUGS +.B \-J +should be eliminated; the assembler should automatically choose among +byte, word and long branches. diff --git a/doc/ps1/05.as/asdocs0.me b/doc/ps1/05.as/asdocs0.me new file mode 100644 index 00000000..681cfb2a --- /dev/null +++ b/doc/ps1/05.as/asdocs0.me @@ -0,0 +1,27 @@ +.\" +.\" Copyright (c) 1982 Regents of the University of California +.\" @(#)asdocs0.me 1.5 4/25/86 +.\" +.nr si 1n +.ds UX \s-2UNIX\s+2 +.ds DC \s-2DEC\s+2 +.ds VX \s-2VAX\s+2 +.ds AC \s-2ASCII\s+2 +.ds PD \s-2PDP-11\s+2 +.ds MA \s-2MACRO-32\s+2 +.ds DM \*(DC \*(MA +.ds CL ``C'' +.ds DL $ +.ds US \s-2\d\-\u\s+2 +.ds UL \s-2\d\-\u\s+2 +.ds TD February 9, 1983 +.ds VS Berkeley VAX/UNIX +.ds AM Assembler Reference Manual +.oh '\*(VS \*(AM''PS1:5-%' +.eh 'PS1:5-%''\*(VS \*(AM' +.\".of ''\*(TD'%' +.\".ef '%'\*(TD'' +.de SH +.sh "\\$1" "\\$2" +.\".tm Starting with section \\$1 \\$2 +.. diff --git a/doc/ps1/05.as/asdocs1.me b/doc/ps1/05.as/asdocs1.me new file mode 100644 index 00000000..fc228e7a --- /dev/null +++ b/doc/ps1/05.as/asdocs1.me @@ -0,0 +1,444 @@ +.\" +.\" Copyright (c) 1982 Regents of the University of California +.\" @(#)asdocs1.me 1.7 2/9/83 +.\" +.EQ +delim $$ +.EN +.(l C +.i "\*(VS \*(AM" +.sp 2.0v +John F. Reiser +Bell Laboratories, +Holmdel, NJ +.sp 1.0v +.i and +.sp 1.0v +Robert R. Henry\** +.(f +\**Preparation of this paper supported in part +by the National Science Foundation under grant MCS #78-07291. +.)f +Electronics Research Laboratory +University of California +Berkeley, CA 94720 +.sp 1.0v +November 5, 1979 +.sp 1.0v +.i Revised +\*(TD +.)l +.SH 1 Introduction +.pp +This document describes the usage and input syntax +of the \*(UX \*(VX-11 assembler +.i as . +.i As +is designed for assembling the code produced by the +\*(CL compiler; +certain concessions have been made to handle code written +directly by people, +but in general little sympathy has been extended. +This document is intended only for the writer of a compiler or a maintainer +of the assembler. +.SH 2 "Assembler Revisions since November 5, 1979" +.pp +There has been one major change to +.i as +since the last release. +.i As +has been updated to assemble the new instructions and +data formats for +.q G +and +.q H +floating point numbers, +as well as the new queue instructions. +.SH 2 "Features Supported, but No Longer Encouraged as of \*(TD" +.pp +These feature(s) in +.i as +are supported, but no longer encouraged. +.ip - +The colon operator for field initialization is likely to disappear. +.SH 1 "Usage" +.pp +.i As +is invoked with these command arguments: +.br +.sp 0.25v +as +[ +.b \-LVWJR +] +[ +.b \-d $n$ +] +[ +.b \-DTS +] +[ +.b \-t +.i directory +] +[ +.b \-o +.i output +] +[ $name sub 1$ ] $...$ +[ $name sub n$ ] +.br +.sp 0.25v +.pp +The +.b \-L +flag instructs the assembler to save labels beginning with a +.q L +in the symbol table portion of the +.i output +file. +Labels are not saved by default, +as the default action of the link editor +.i ld +is to discard them anyway. +.pp +The +.b \-V +flag tells the assembler to place its interpass temporary +file into virtual memory. +In normal circumstances, +the system manager will decide where the temporary file should lie. +Our experiments +with very large temporary files show that placing the temporary +file into virtual memory will save about 13% of the assembly time, +where the size of the temporary file is about 350K bytes. +Most assembler sources will not be this long. +.pp +The +.b \-W +turns of all warning error reporting. +.pp +The +.b \-J +flag forces \*(UX style pseudo\-branch +instructions with destinations further away than a +byte displacement to be +turned into jump instructions with 4 byte offsets. +The +.b \-J +flag buys you nothing if +.b \-d2 +is set. +(See \(sc8.4, and future work described in \(sc11) +.pp +The +.b \-R +flag effectively turns +.q "\fB.data\fP $n$" +directives into +.q "\fB.text\fP $n$" +directives. +This obviates the need to run editor scripts on assembler source to +.q "read\-only" +fix initialized data segments. +Uninitialized data (via +.b .lcomm +and +.b .comm +directives) +is still assembled into the data or bss segments. +.pp +The +.b \-d +flag specifies the number of bytes +which the assembler should allow for a displacement when the value of the +displacement expression is undefined in the first pass. +The possible values of +.i n +are 1, 2, or 4; +the assembler uses 4 bytes +if +.b -d +is not specified. +See \(sc8.2. +.pp +Provided the +.b \-V +flag is not set, +the +.b \-t +flag causes the assembler to place its single temporary file +in the +.i directory +instead of in +.i /tmp . +.pp +The +.b \-o +flag causes the output to be placed on the file +.i output . +By default, +the output of the assembler is placed in the file +.i a.out +in the current directory. +.pp +The input to the assembler is normally taken from the standard input. +If file arguments occur, +then the input is taken sequentially from the files +$name sub 1$, +$name sub 2~...~name sub n$ +This is not to say that the files are assembled separately; +$name sub 1$ is effectively concatenated to $name sub 2$, +so multiple definitions cannot occur amongst the input sources. +.pp +.pp +The +.b \-D +(debug), +.b \-T +(token trace), +and the +.b \-S +(symbol table) +flags enable assembler trace information, +provided that the assembler has been compiled with +the debugging code enabled. +The information printed is long and boring, +but useful when debugging the assembler. +.SH 1 "Lexical conventions" +.pp +Assembler tokens include identifiers (alternatively, +.q symbols +or +.q names ), +constants, +and operators. +.SH 2 "Identifiers" +.pp +An identifier consists of a sequence of alphanumeric characters +(including +period +.q "\fB\|.\|\fP" , +underscore +.q "\*(US" , +and +dollar +.q "\*(DL" ). +The first character may not be numeric. +Identifiers may be (practically) arbitrary long; +all characters are significant. +.SH 2 "Constants" +.SH 3 "Scalar constants" +.pp +All scalar (non floating point) +constants are (potentially) 128 bits wide. +Such constants are interpreted as two's complement numbers. +Note that 64 bit (quad words) and 128 bit (octal word) integers +are only partially supported by the \*(VX hardware. +In addition, +128 bit integers are only supported by the extended \*(VX architecture. +.i As +supports 64 and 128 bit integers +only so they can be used as immediate constants +or to fill initialized data space. +.i As +can not perform arithmetic on constants larger than 32 bits. +.pp +Scalar constants are initially evaluated to a full 128 bits, +but are pared down by discarding high order copies of the sign bit +and categorizing the number as a long, quad or octal integer. +Numbers with less precision than 32 bits are treated as 32 bit quantities. +.pp +The digits are +.q 0123456789abcdefABCDEF +with the obvious values. +.pp +An octal constant consists of a sequence of digits with a leading zero. +.pp +A decimal constant consists of a sequence of digits without a leading zero. +.pp +A hexadecimal constant consists of the characters +.q 0x +(or +.q 0X ) +followed by a sequence of digits. +.pp +A single-character constant consists of a single quote +.q "\|\(fm\|" +followed by an \*(AC character, +including \*(AC newline. +The constant's value is the code for the +given character. +.SH 3 "Floating Point Constants" +.pp +Floating point constants are internally represented +in the \*(VX floating point format +that is specified by the lexical form of the constant. +Using the meta notation that +[dec] is a decimal digit (\c +.q "0123456789" ), +[expt] is a type specification character (\c, +.q "fFdDhHgG" ), +[expe] is a exponent delimiter and type specification character (\c, +.q "eEfFdDhHgG" ), +$x sup roman "*"$ means 0 or more occurences of $x$, +$x sup +$ means 1 or more occurences of $x$, +then the general lexical form of a floating point number is: +.ce 1 +0[expe]([+-])$roman "[dec]" sup +$(.)($roman "[dec]" sup roman "*"$)([expt]([+-])($roman "dec]" sup +$)) +.ce 0 +The standard semantic interpretation is used for the +signed integer, fraction and signed power of 10 exponent. +If the exponent delimiter is specified, +it must be either an +.q e +or +.q E , +or must agree with the initial type specification character that is used. +The type specification character specifies +the type and representation of the constructed number, as follows: +.(b +.TS +center; +c l c +c l n. +type character floating representation size (bits) +_ +f, F F format floating 32 +d, D D format floating 64 +g, G G format floating 64 +h, H H format floating 128 +.TE +.)b +Note that +.q G +and +.q H +format floating point numbers are not supported +by all implementations of the \*(VX architecture. +.i As +does not require the augmented architecture in order to run. +.pp +The assembler uses the library routine +.i atof() +to convert +.q F +and +.q D +numbers, +and uses its own conversion routine +(derived from +.i atof , +and believed to be numerically accurate) +to convert +.q G +and +.q H +floating point numbers. +.pp +Collectively, +all floating point numbers, +together with quad and octal scalars are called +.i Bignums . +When +.i as +requires a Bignum, +a 32 bit scalar quantity may also be used. +.SH 3 "String Constants" +.pp +A string constant is defined using +the same syntax and semantics as the \*(CL language uses. +Strings begin and end with a +.q "''" +(double quote). +The \*(DM assembler conventions for flexible string quoting is +not implemented. +All \*(CL backslash conventions are observed; +the backslash conventions +peculiar to the \*(PD assembler are not observed. +Strings are known by their value and their length; +the assembler does not implicitly end strings with a null byte. +.SH 2 "Operators" +.pp +There are several single-character +operators; +see \(sc6.1. +.SH 2 "Blanks" +.pp +Blank and tab characters +may be interspersed freely between tokens, +but may not be used within tokens (except character constants). +A blank or tab is required to separate adjacent +identifiers or constants not otherwise separated. +.SH 2 "Scratch Mark Comments" +.pp +The character +.q "#" +introduces a comment, +which extends through the end of the line on which it appears. +Comments starting in column 1, +having the format +.q "# $expression~~string$" , +are interpreted as an indication that the assembler is now assembling +file +.i string +at line +.i expression . +Thus, one can use the \*(CL preprocessor on an assembly language source file, +and use the +.i #include +and +.i #define +preprocessor directives. +(Note that there may not be an assembler comment starting in column +1 if the assembler source is given to the \*(CL preprocessor, +as it will be interpreted by the preprocessor in a way not intended.) +Comments are otherwise ignored by the assembler. +.SH 2 "\*(CL Style Comments" +.pp +The assembler will recognize \*(CL style comments, +introduced with the prologue +.b "/*" +and ending with the epilogue +.b "*/" . +\*(CL style comments may extend across multiple lines, +and are the preferred comment style +to use if one chooses to use the \*(CL preprocessor. +.SH 1 "Segments and Location Counters" +.pp +Assembled code and data fall into three segments: the text segment, +the data segment, +and the bss segment. +The \*(UX operating system makes +some assumptions about the content of these segments; +the assembler does not. +Within the text and data segments there are a number of sub-segments, +distinguished by number (\c +.q "\fBtext\fP 0" , +.q "\fBtext\fP 1" , +$...$ +.q "\fBdata\fP 0" , +.q "\fBdata\fP 1" , +$...$). +Currently there are four subsegments each in text and data. +The subsegments are for programming convenience only. +.pp +Before writing the output file, +the assembler zero-pads each text subsegment to a multiple of four +bytes and then concatenates the subsegments in order to form the text segment; +an analogous operation is done for the data segment. +Requesting that the loader define symbols and storage regions is the only +action allowed by the assembler with respect to the bss segment. +Assembly begins in +.q "\fBtext\fP 0" . +.pp +Associated with each (sub)segment is an implicit location counter which +begins at zero and is incremented by 1 for each byte assembled into the +(sub)segment. +There is no way to explicitly reference a location counter. +Note that the location counters of subsegments other than +.q "\fBtext\fP 0" +and +.q "\fBdata\fP 0" +behave peculiarly due to the concatenation used to form +the text and data segments. diff --git a/doc/ps1/05.as/asdocs2.me b/doc/ps1/05.as/asdocs2.me new file mode 100644 index 00000000..56d4673b --- /dev/null +++ b/doc/ps1/05.as/asdocs2.me @@ -0,0 +1,310 @@ +.\" +.\" Copyright (c) 1982 Regents of the University of California +.\" @(#)asdocs2.me 1.6 2/11/83 +.\" +.EQ +delim $$ +.EN +.SH 1 "Statements" +.pp +A source program is composed of a sequence of +.i statements . +Statements are separated either by new-lines +or by semicolons. +There are two kinds of statements: null statements +and keyword statements. +Either kind of statement may be preceded by +one or more labels. +.SH 2 "Named Global Labels" +.pp +A global label consists of a name followed +by a colon. +The effect of a name label is to assign the current +value and type of the location counter +to the name. +An error is indicated in pass 1 if the +name is already defined; +an error is indicated in pass 2 if the +value assigned changes the definition +of the label. +.pp +A global label is referenced by its name. +.pp +Global labels beginning with a +.q "\|L\|" +are discarded unless the +.b \-L +option +is in effect. +.SH 2 "Numeric Local Labels" +.pp +A numeric label consists of a digit $0$ to $9$ +followed by a colon. +Such a label serves to define temporary symbols of the form +.q "$n roman b$" +and +.q "$n roman f$" , +where $n$ +is the digit of the label. +As in the case of name labels, +a numeric label assigns +the current value and type of the location counter +to the temporary symbol. +However, several numeric labels with the same digit +may be used within the same assembly. +References to symbols of the form +.q "$n roman b$" +refer to the first numeric label +.q "$n$:" +.i b ackwards +from the reference; +.q "$n roman f$" +symbols refer to the first numeric label +.q "$n$:" +.i f orwards +from the reference. +Such numeric labels conserve the inventive powers +of the human programmer. +.pp +For various reasons, +.i as +turns local labels into labels of the form +$roman L n roman ".\*(DL" m$. +Although unlikely, +these generated labels may conflict +with programmer defined labels. +.SH 2 "Null statements" +.pp +A null statement is an empty statement ignored by the assembler. +A null statement may be labeled, however. +.SH 2 "Keyword statements" +.pp +A keyword statement begins with one of the many predefined +keywords known to +.i as ; +the syntax of the remainder of the statement depends +on the keyword. +All instruction opcodes are keywords. +The remaining keywords are assembler pseudo-operations, +also called +.i directives . +The pseudo-operations are listed in \(sc8, +together with the syntax they require. +.SH 1 "Expressions" +.pp +An expression is a sequence of symbols representing a value. +Its constituents are identifiers, +constants, +operators, +and parentheses. +Each expression has a type. +.pp +All operators in expressions are fundamentally binary in +nature. +Arithmetic is two's complement and has 32 bits of precision. +.i As +can not do arithmetic on floating point numbers, quad or octal +precision scalar numbers. +There are four levels of precedence, +listed here from +lowest precedence level to highest: +.(b +.TS +center; +c l. +precedence operators +_ +binary $+$, $-$ +binary \fI\(bv\fP\|, $&$, $italic "^"$, $!$ +binary $*$, $/$, $%$, +unary $-$, $italic "~"$ +.TE +.)b +.pp +All operators of the same precedence are evaluated strictly left to right, +except for the evaluation order enforced by parenthesis. +.SH 2 "Expression Operators" +.pp +The operators are: +.(b +.TS +center; +c l. +operator meaning +_ +$+$ addition +$-$ (binary) subtraction +$*$ multiplication +$/$ division +$%$ modulo +$-$ (unary) 2's complement +$&$ bitwise and +$\(bv$ bitwise or +$italic "^"$ bitwise exclusive or +$!$ bitwise or not +$italic "~"$ bitwise 1's complement +$>$ logical right shift +$>>$ logical right shift +$<$ logical left shift +$<<$ logical left shift +.TE +.)b +.pp +Expressions may be grouped by use of parentheses, +.q "(" +and +.q ")". +.SH 2 "Data Types" +.pp +The assembler manipulates several different +types of expressions. +The types likely to be met explicitly are: +.nr ii \w'undefined\ \ 'u +.ip "undefined" +Upon first encounter, +each symbol is undefined. +It may become undefined if it is assigned an undefined expression. +It is an error to attempt to assemble an undefined +expression in pass 2; +in pass 1, +it is not (except that +certain keywords require operands which are not undefined). +.ip "undefined\ external" +A symbol which is declared +.b .globl +but not defined +in the current assembly is an undefined external. +If such a symbol is declared, +the link editor +.i ld +must be used to load the assembler's output with +another routine that defines the undefined reference. +.ip "absolute" +An absolute symbol is defined ultimately from a constant. +Its value is unaffected by any possible future applications +of the link-editor to the output file. +.ip "text" +The value of a text symbol is measured +with respect to the beginning of the text segment of the program. +If the assembler output is link-edited, +its text symbols may change in value +since the program need +not be the first in the link editor's output. +Most text symbols are defined by appearing as labels. +At the start of an assembly, +the value of +.q "\|\fB.\fP\|" +is +.q "text 0" . +.ip "data" +The value of a data symbol is measured +with respect to the origin of the data segment of a program. +Like text symbols, +the value of a data symbol may change +during a subsequent link-editor run since previously +loaded programs may have data segments. +After the first +.b .data +statement, +the value of +.q "\|\fB.\fP\|" +is +.q "data 0". +.ip "bss" +The value of a bss symbol is measured from +the beginning of the bss segment of a program. +Like text and data symbols, +the value of a bss symbol +may change during a subsequent link-editor run, +since previously loaded programs may have bss segments. +.ip "external\ absolute,\ text,\ data,\ or\ bss" +Symbols declared +.b .globl +but defined within an assembly as absolute, +text, +data, +or bss +symbols may be used exactly as if they were not +declared +.b .globl ; +however, their value and type are available +to the link editor so that the program may be loaded with others +that reference these symbols. +.ip "register" +The symbols +.(q +.b "r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15" +.b "ap fp sp pc" +.)q +are predefined +as register symbols. +In addition, the +.q "%" +operator converts the following absolute expression whose +value is between 0 and 15 into a register reference. +.ip "other\ types\ \ " +Each keyword known to the assembler has a type which +is used to select the routine which processes +the associated keyword statement. +The behavior of such symbols +when not used as keywords is the same as if they were absolute. +.SH 2 "Type Propagation in Expressions" +.pp +When operands are combined by expression operators, +the result has a type which depends on the types +of the operands and on the operator. +The rules involved are complex to state but +were intended to be sensible and predictable. +For purposes of expression evaluation the +important types are +.(b +.TS +center; +l. +undefined +absolute +text +data +bss +undefined external +other +.TE +.)b +.pp +The combination rules are then +.nr ii 5n +.np +If one of the operands is undefined, +the result is undefined. +.np +If both operands are absolute, +the result is absolute. +.np +If an absolute is combined with one of the +.q "other types" +mentioned above, +the result has the other type. +An +.q "other type" +combined with an explicitly +discussed type other than absolute +it acts like an absolute. +.pp +Further rules applying to particular operators are: +.ip "$+$" +If one operand is text-, data-, or bss-segment +relocatable, or is an undefined external, +the result has the postulated type and the other operand +must be absolute. +.ip $-$ +If the first operand is a relocatable +text-, data-, or bss-segment symbol, the second operand +may be absolute (in which case the result has the +type of the first operand); +or the second operand may have the same type +as the first (in which case the result is absolute). +If the first operand is external undefined, +the second must be absolute. +All other combinations are illegal. +.ip others +It is illegal to apply these operators to any but absolute symbols. diff --git a/doc/ps1/05.as/asdocs3.me b/doc/ps1/05.as/asdocs3.me new file mode 100644 index 00000000..998bf6a9 --- /dev/null +++ b/doc/ps1/05.as/asdocs3.me @@ -0,0 +1,608 @@ +.\" +.\" Copyright (c) 1982 Regents of the University of California +.\" @(#)asdocs3.me 1.6 2/11/83 +.\" +.EQ +delim $$ +.EN +.SH 1 "Pseudo-operations (Directives)" +.pp +The keywords listed below introduce directives or instructions, +and influence the later behavior of the assembler for this statement. +The metanotation +.ce 1 +[ stuff ] +.ce 0 +means that 0 or more instances of the given +.q stuff +may appear. +.pp +.b Boldface +tokens must appear literally; +words in +.i italic +words are substitutable. +.pp +The pseudo\-operations listed below +are grouped into functional categories. +.SH 2 "Interface to a Previous Pass" +.(b +.in -2n +.TS +lb l. +\&.ABORT +.TE +.in +2n +.)b +.pp +As soon as the assembler sees this directive, +it ignores all further input +(but it does read to the end of file), +and aborts the assembly. +No files are created. +It is anticipated that this would be used in a pipe interconnected +version of a compiler, +where the first major syntax error would +cause the compiler to issue this directive, +saving unnecessary work in assembling code +that would have to be discarded anyway. +.(b +.in -2n +.TS +lb l. +\&.file $string$ +.TE +.in +2n +.)b +.pp +This directive causes the assembler to think it is in file +.i string , +so error messages reflect the proper source file. +.(b +.in -2n +.TS +lb l. +\&.line $expression$ +.TE +.in +2n +.)b +.pp +This directive causes the assembler to think it is on line +.i expression +so error messages reflect the proper source file. +.pp +The only effect of assembling multiple files specified in the command string +is to insert the +.i file +and +.i line +directives, +with the appropriate values, +at the beginning of the source from each file. +.(b +.in -2n +.TS +lb l. +# $expression$ $string$ +# $expression$ +.TE +.in +2n +.)b +.pp +This is the only instance where a comment is meaningful to the assembler. +The +.q "#" +.ul 1 +must +be in the first column. +This meta comment causes the assembler +to believe it is on line +.i expression . +The second argument, +if included, +causes the assembler to believe it is in file +.i string , +otherwise the current file name does not change. +.SH 2 "Location Counter Control" +.(b +.in -2n +.TS +lb l. +\&.data [ $expression$ ] +\&.text [ $expression$ ] +.TE +.in +2n +.)b +.pp +These two pseudo-operations cause the +assembler to begin assembling into the indicated text or data +subsegment. +If specified, +the +.i expression +must be defined and absolute; +an omitted +.i expression +is treated as zero. +The effect of a +.b .data +directive is treated +as a +.b .text +directive if the +.b \-R +assembly flag is set. +Assembly starts in the +.b ".text" +0 subsegment. +.pp +The directives +.b .align +and +.b .org +also control the placement of the location counter. +.sh 2 "Filled Data" +.(b +.in -2n +.TS +lb l. +\&.align $align\*(USexpr$ [ \fB,\fP $fill\*(USexpr$ ] +.TE +.in +2n +.)b +.pp +The location counter is adjusted +so that the +.i expression +lowest bits of the location counter become zero. +This is done by +assembling from 0 to $2 sup align\*(USexpr$ bytes, +taken from the low order byte of $fill\*(USexpr$. +If present, +$fill\*(USexpr$ must be absolute; +otherwise it defaults to 0. +Thus +.q ".align 2" +pads by null bytes to make the location counter +evenly divisible by 4. +The +.i align_expr +must be defined, +absolute, nonnegative, +and less than 16. +.pp +Warning: +the subsegment concatenation convention +and the current loader conventions +may not preserve attempts at aligning +to more than 2 low-order zero bits. +.(b +.in -2n +.TS +lb l. +\&.org $org\*(USexpr$ [ \fB,\fP $fill\*(USexpr$ ] +.TE +.in +2n +.)b +.pp +The location counter is set equal to the value of $org\*(USexpr$, +which must be defined and absolute. +The value of the $org\*(USexpr$ +must be greater than the current value +of the location counter. +Space between the current value of the location counter +and the desired value are filled with bytes taken from the +low order byte of $fill\*(USexpr$, +which must be absolute and defaults to 0. +.(b +.in -2n +.TS +lb l. +\&.space $space\*(USexpr$ [ \fB,\fP $fill\*(USexpr$ ] +.TE +.in +2n +.)b +.pp +The location counter is advanced by +$space\*(USexpr$ bytes. +$Space\*(USexpr$ must be defined and absolute. +The space is filled in with bytes taken from the low order +byte of $fill\*(USexpr$, +which must be defined and absolute. +$Fill\*(USexpr$ defaults to 0. +The +.b .fill +directive is a more general way to accomplish the +.b .space +directive. +.(b +.in -2n +.TS +lb l. +\&.fill $rep\*(USexpr$\fB,\fP $size\*(USexpr$\fB,\fP $fill\*(USexpr$ +.TE +.in +2n +.)b +.pp +All three expressions must be absolute. +.i fill\*(USexpr , +treated as an expression of size +.i size\*(USexpr +bytes, +is assembled and replicated +.i rep\*(USexpr +times. +The effect is to advance the current location counter +.i rep\*(USexpr +\(** +.i size\*(USexpr +bytes. +.i size\*(USexpr +must be between 1 and 8. +.SH 2 "Symbol Definitions" +.SH 2 "Initialized Data" +.(b +.in -2n +.TS +lb l. +\&.byte $expr$ [ \fB,\fP $expr$ ] +\&.word $expr$ [ \fB,\fP $expr$ ] +\&.int $expr$ [ \fB,\fP $expr$ ] +\&.long $expr$ [ \fB,\fP $expr$ ] +.TE +.in +2n +.)b +.pp +The +.i expression s +in the comma-separated +list are truncated to the size indicated by the key word: +.(b +.in -2n +.TS +center; +c l +cb n. +keyword length (bits) +_ +\&.byte 8 +\&.word 16 +\&.int 32 +\&.long 32 +.TE +.in +2n +.)b +and assembled in successive locations. +The +.i expression s +must be absolute. +.pp +Each +.i expression +may optionally be of the form: +.(b +.TS +center; +l. +$expression sub 1$ : $expression sub 2$ +.TE +.)b +In this case, +the value of $expression sub 2$ is truncated +to $expression sub 1$ bits, +and assembled in the next $expression sub 1$ bit field +which fits in the natural data size being assembled. +Bits which are skipped because a field does not fit are filled with zeros. +Thus, +.q "\fB.byte\fP 123" +is equivalent to +.q "\fB.byte\fP 8:123" , +and +.q "\fB.byte\fP 3:1,2:1,5:1" +assembles two bytes, containing the values 9 and 1. +.pp +.b NB: +Bit field initialization with the colon operator is likely +to disappear in future releases of the assembler. +.(b +.in -2n +.TS +lb l. +\&.quad $number$ [ , $number$ ] +\&.octa $number$ [ , $number$ ] +\&.float $number$ [ , $number$ ] +\&.double $number$ [ , $number$ ] +\&.ffloat $number$ [ , $number$ ] +\&.dfloat $number$ [ , $number$ ] +\&.gfloat $number$ [ , $number$ ] +\&.hfloat $number$ [ , $number$ ] +.TE +.in +2n +.)b +.pp +These initialize Bignums (see \(sc3.2.2) +in successive locations whose size is a function on the key word. +The type of the Bignums +(determined by the exponent field, or lack thereof) +may not agree with type implied by the key word. +The following table shows the key words, +their size, +and the data types for the Bignums they expect. +.(b +.in -2n +.TS +center; +c l l l +rb n l l. +keyword format length (bits) valid $number$(s) +_ +\&.quad quad scalar 64 scalar +\&.octa octal scalar 128 scalar +\&.float F float 32 F, D and scalar +\&.ffloat F float 32 F, D and scalar +\&.double D float 64 F, D and scalar +\&.dfloat D float 64 F, D and scalar +\&.gfloat G float 64 G scalar +\&.hfloat H float 128 H scalar +.TE +.in +2n +.)b +.pp +.i As +will correctly perform other floating point conversions while initializing, +but issues a warning message. +.i As +performs all floating point initializations and conversions +using only the facilities defined +in the original (native) architecture. +.(b +.in -2n +.TS +lb l. +\&.ascii $string$ [ , $string$] +\&.asciz $string$ [ , $string$] +.TE +.in +2n +.)b +.pp +Each +.i string +in the list is assembled into successive locations, +with the first letter in the string being placed +into the first location, etc. +The +.b .ascii +directive will not null pad the string; +the +.b .asciz +directive will null pad the string. +(Recall that strings are known by their length, +and need not be terminated with a null, +and that the \*(CL conventions for escaping are understood.) +The +.b .ascii +directive is identical to: +.br +.b .byte +$string sub 0$ +.b , +$string sub 1$ +.b , +$...$ +.br +.(b +.in -2n +.TS +lb l. +\&.comm $name$\fB,\fP $expression$ +.TE +.in +2n +.)b +.pp +Provided the +.i name +is not defined elsewhere, +its type is made +.q "undefined external" , +and its value is +.i expression . +In fact the +.i name +behaves +in the current assembly just like an +undefined external. +However, +the link editor +.i ld +has been special-cased +so that all external symbols which are not otherwise defined, +and which have a non-zero value, +are defined to lie in the bss segment, +and enough space is left after the symbol to hold +.i expression +bytes. +.(b +.in -2n +.TS +lb l. +\&.lcomm $name$\fB,\fP $expression$ +.TE +.in +2n +.)b +.pp +.i expression +bytes will be allocated in the bss segment and +.i name +assigned the location of the first byte, +but the +.i name +is not declared +as global and hence will be unknown to the link editor. +.(b +.in -2n +.TS +lb l. +\&.globl $name$ +.TE +.in +2n +.)b +.pp +This statement makes the +.i name +external. +If it is otherwise defined (by +.b .set +or by +appearance as a label) +it acts within the assembly exactly as if +the +.b .globl +statement were not given; +however, +the link editor may be used +to combine this object module with other modules referring to this symbol. +.pp +Conversely, +if the given symbol is not defined +within the current assembly, +the link editor can combine the output of this assembly +with that of others which define the symbol. +The assembler makes all otherwise +undefined symbols external. +.(b +.in -2n +.TS +lb l. +\&.set $name$\fB,\fP $expression$ +.TE +.in +2n +.)b +.pp +The ($name$, $expression$) +pair is entered into the symbol table. +Multiple +.b .set +statements with the same name are legal; +the most recent value replaces all previous values. +.(b +.in -2n +.TS +lb l. +\&.lsym\& $name$\fB,\fP $expression$ +.TE +.in +2n +.)b +.pp +A unique and otherwise unreferencable instance of the +($name$, $expression$) +pair is created in the symbol table. +The Fortran 77 compiler uses this mechanism to pass local symbol definitions +to the link editor and debugger. +.(b +.in -2n +.TS +lb l. +\&.stabs $string$, $expr sub 1$, $expr sub 2$, $expr sub 3$, $expr sub 4$ +\&.stabn $expr sub 1$, $expr sub 2$, $expr sub 3$, $expr sub 4$ +\&.stabd $expr sub 1$, $expr sub 2$, $expr sub 3$ +.TE +.in +2n +.)b +.pp +The +.i stab +directives place symbols in the symbol table for the symbolic +debugger, +.i sdb \**. +.(f +\**Katseff, H.P. +.i "Sdb: A Symbol Debugger." +Bell Laboratories, Holmdel, +NJ. April 12, 1979. +.br +Katseff, H.P. +.i "Symbol Table Format for Sdb", +File 39394, +Bell Laboratories, Holmdel, NJ. March 14, 1979. +.)f +A +.q stab +is a +.i s ymbol +.i tab le +entry. +The +.b .stabs +is a string stab, the +.b .stabn +is a stab not having a string, +and the +.b .stabd +is a +.q dot +stab that implicitly references +.q dot , +the current location counter. +.pp +The +.i string +in the +.b .stabs +directive is the name of a symbol. +If the symbol name is zero, +the +.b .stabn +directive may be used instead. +.pp +The other expressions are stored +in the name list structure +of the symbol table +and preserved by the loader for reference by +.i sdb ; +the value of the expressions are peculiar to formats required by +.i sdb . +.nr ii \w'$expr sub 1$\ \ 'u +.ip $expr sub 1$ +is used as a symbol table tag +(nlist field +.i n\*(UStype ). +.ip $expr sub 2$ +seems to always be zero +(nlist field +.i n\*(USother ). +.ip $expr sub 3$ +is used for either the +source line number, +or for a nesting level +(nlist field +.i n\*(USdesc ). +.ip $expr sub 4$ +is used as tag specific information +(nlist field +.i n\*(USvalue ). +In the +case of the +.b .stabd +directive, this expression is nonexistent, and +is taken to be the value of the location counter +at the following instruction. +Since there is no associated name for a +.b .stabd +directive, +it can +only be used in circumstances where the name is zero. +The effect of a +.b .stabd +directive can be achieved by one of the other +.b .stab x +directives in the following manner: +.br +$bold .stabn$ $expr sub 1$, $expr sub 2$, $expr sub 3$, $roman LL n$ +.br +$roman LL n bold :$ +.pp +The +.b .stabd +directive is preferred, +because it does not clog the symbol +table with labels used only for the stab symbol entries. diff --git a/doc/ps1/05.as/asdocs4.me b/doc/ps1/05.as/asdocs4.me new file mode 100644 index 00000000..436688a2 --- /dev/null +++ b/doc/ps1/05.as/asdocs4.me @@ -0,0 +1,324 @@ +.\" +.\" Copyright (c) 1982 Regents of the University of California +.\" @(#)asdocs4.me 1.9 7/1/83 +.\" +.EQ +delim $$ +.EN +.SH 1 "Machine instructions" +.pp +The syntax of machine instruction statements accepted by +.i as +is generally similar to the syntax of \*(DM. +There are differences, +however. +.SH 2 "Character set" +.pp +.i As +uses the character +.q \*(DL +instead of +.q # +for immediate constants, +and the character +.q * +instead of +.q @ +for indirection. +Opcodes and register names +are spelled with lower-case rather than upper-case letters. +.SH 2 "Specifying Displacement Lengths" +.pp +Under certain circumstances, +the following constructs are (optionally) recognized by +.i as +to indicate the number of bytes to allocate for +the displacement used when constructing +displacement and displacement deferred addressing modes: +.(b +.TS +center; +c c l +cb cb l. +primary alternate length +_ +B\` B^ byte (1 byte) +W\` W^ word (2 bytes) +L\` L^ long word (4 bytes) +.TE +.)b +.pp +One can also use lower case +.b b , +.b w +or +.b l +instead of the upper +case letters. +There must be no space between the size specifier letter and the +.q "^" +or +.q "\`" . +The constructs +.b "S^" +and +.b "G^" +are not recognized +by +.i as , +as they are by the \*(DM assembler. +It is preferred to use the +.q "\`" displacement specifier, +so that the +.q "^" +is not +misinterpreted as the +.b xor +operator. +.pp +Literal values +(including floating-point literals used where the +hardware expects a floating-point operand) +are assembled as short +literals if possible, +hence not needing the +.b "S^" +\*(DM directive. +.pp +If the displacement length modifier is present, +then the displacement is +.b always +assembled with that displacement, +even if it will fit into a smaller field, +or if significance is lost. +If the length modifier is not present, +and if the value of the displacement is known exactly in +.i as 's +first pass, +then +.i as +determines the length automatically, +assembling it in the shortest possible way, +Otherwise, +.i as +will use the value specified by the +.b \-d +argument, +which defaults to 4 bytes. +.SH 2 "case\fIx\fP Instructions" +.pp +.i As +considers the instructions +.b caseb , +.b casel , +.b casew +to have three operands. +The displacements must be explicitly computed by +.i as , +using one or more +.b .word +statements. +.SH 2 "Extended branch instructions" +.pp +These opcodes (formed in general +by substituting a +.q j +for the initial +.q b +of the standard opcodes) +take as branch destinations +the name of a label in the current subsegment. +It is an error if the destination is known to be in a different subsegment, +and it is a warning if the destination is not defined within +the object module being assembled. +.pp +If the branch destination is close enough, +then the corresponding +short branch +.q b +instruction is assembled. +Otherwise the assembler choses a sequence +of one or more instructions which together have the same effect as if the +.q b +instruction had a larger span. +In general, +.i as +chooses the inverse branch followed by a +.b brw , +but a +.b brw +is sometimes pooled among several +.q j +instructions with the same destination. +.pp +.i As +is unable to perform the same long/short branch generation +for other instructions with a fixed byte displacement, +such as the +.b sob , +.b aob +families, +or for the +.b acbx +family of instructions which has a fixed word displacement. +This would be desirable, +but is prohibitive because of the complexity of these instructions. +.pp +If the +.b \-J +assembler option is given, +a +.b jmp +instruction is used instead of a +.b brw +instruction +for +.b ALL +.q j +instructions with distant destinations. +This makes assembly of large (>32K bytes) +programs (inefficiently) +possible. +.i As +does not try to use clever combinations of +.b brb , +.b brw +and +.b jmp +instructions. +The +.b jmp +instructions use PC relative addressing, +with the length of the offset given by the +.b \-d +assembler +option. +.pp +These are the extended branch instructions +.i as +recognizes: +.(b +.TS +center; +lb lb lb. +jeql jeqlu jneq jnequ +jgeq jgequ jgtr jgtru +jleq jlequ jlss jlssu +jbcc jbsc jbcs jbss + +jlbc jlbs +jcc jcs +jvc jvs +jbc jbs +jbr +.TE +.)b +.pp +Note that +.b jbr +turns into +.b brb +if its target is close enough; +otherwise a +.b brw +is used. +.SH 1 "Diagnostics" +.pp +Diagnostics are intended to be self explanatory and appear on +the standard output. +Diagnostics either report an +.i error +or a +.i warning. +Error diagnostics complain about lexical, syntactic and some +semantic errors, and abort the assembly. +.pp +The majority of the warnings complain about the use of \*(VX +features not supported by all implementations of the architecture. +.i As +will warn if new opcodes are used, +if +.q G +or +.q H +floating point numbers are used +and will complain about mixed floating conversions. +.SH 1 "Limits" +.(b +.TS +center; +l l. +limit what +_ +Arbitrary\** Files to assemble +BUFSIZ Significant characters per name +Arbitrary Characters per input line +Arbitrary Characters per string +Arbitrary Symbols +4 Text segments +4 Data segments +.TE +.)b +.(f +\**Although the number of characters available to the \fIargv\fP line +is restricted by \*(UX to 10240. +.)f +.SH 1 "Annoyances and Future Work" +.pp +Most of the annoyances deal with restrictions on the extended +branch instructions. +.pp +.i As +only uses a two level algorithm for resolving extended branch +instructions into short or long displacements. +What is really needed is a general mechanism +to turn a short conditional jump into a +reverse conditional jump over one of +.b two +possible unconditional branches, +either a +.b brw +or a +.b jmp +instruction. +Currently, the +.b \-J +forces the +.b jmp +instruction to +.i always +be used, +instead of the +shorter +.b brw +instruction when needed. +.pp +The assembler should also recognize extended branch instructions for +.b sob , +.b aob , +and +.b acbx +instructions. +.b Sob +instructions will be easy, +.b aob +will be harder because the synthesized instruction +uses the index operand twice, +so one must be careful of side effects, +and the +.b acbx +family will be much harder (in the general case) +because the comparison depends on the sign of the addend operand, +and two operands are used more than once. +Augmenting +.i as +with these extended loop instructions +will allow the peephole optimizer to produce much better +loop optimizations, +since it currently assumes the worst +case about the size of the loop body. +.pp +The string temporary file is not put in memory when the -V flag is set. +The string table in the generated a.out contains some strings +and names that are never referenced from the symbol table; +the loader removes these unreferenced strings, however. diff --git a/doc/ps1/06.sysman/0.t b/doc/ps1/06.sysman/0.t new file mode 100644 index 00000000..c8dd11ba --- /dev/null +++ b/doc/ps1/06.sysman/0.t @@ -0,0 +1,265 @@ +.\" Copyright (c) 1983 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)0.t 6.6 (Berkeley) 5/13/86 +.\" +.if n .ND +.TL +Berkeley Software Architecture Manual +.br +4.3BSD Edition +.AU +William Joy, Robert Fabry, +.AU +Samuel Leffler, M. Kirk McKusick, +.AU +Michael Karels +.AI +Computer Systems Research Group +Computer Science Division +Department of Electrical Engineering and Computer Science +University of California, Berkeley +Berkeley, CA 94720 +.EH 'PS1:6-%''4.3BSD Architecture Manual' +.OH '4.3BSD Architecture Manual''PS1:6-%' +.AB +.FS +* UNIX is a trademark of Bell Laboratories. +.FE +This document summarizes the facilities +provided by the 4.3BSD version of the UNIX\|* operating system. +It does not attempt to act as a tutorial for use of the system +nor does it attempt to explain or justify the design of the +system facilities. +It gives neither motivation nor implementation details, +in favor of brevity. +.PP +The first section describes the basic kernel functions +provided to a UNIX process: process naming and protection, +memory management, software interrupts, +object references (descriptors), time and statistics functions, +and resource controls. +These facilities, as well as facilities for +bootstrap, shutdown and process accounting, +are provided solely by the kernel. +.PP +The second section describes the standard system +abstractions for +files and file systems, +communication, +terminal handling, +and process control and debugging. +These facilities are implemented by the operating system or by +network server processes. +.AE +.LP +.bp +.ft B +.br +.sv 2 +.ce +TABLE OF CONTENTS +.ft R +.LP +.sp 1 +.nf +.B "Introduction." +.LP +.if t .sp .5v +.nf +.B "0. Notation and types" +.LP +.if t .sp .5v +.nf +.B "1. Kernel primitives" +.LP +.if t .sp .5v +.nf +.nf +\fB1.1. Processes and protection\fP +1.1.1. Host and process identifiers +1.1.2. Process creation and termination +1.1.3. User and group ids +1.1.4. Process groups +.LP +.nf +\fB1.2. Memory management\fP +1.2.1. Text, data and stack +1.2.2. Mapping pages +1.2.3. Page protection control +1.2.4. Giving and getting advice +1.2.5. Protection primitives +.LP +.if t .sp .5v +.nf +\fB1.3. Signals\fP +1.3.1. Overview +1.3.2. Signal types +1.3.3. Signal handlers +1.3.4. Sending signals +1.3.5. Protecting critical sections +1.3.6. Signal stacks +.LP +.if t .sp .5v +.nf +\fB1.4. Timing and statistics\fP +1.4.1. Real time +1.4.2. Interval time +.LP +.if t .sp .5v +.nf +\fB1.5. Descriptors\fP +1.5.1. The reference table +1.5.2. Descriptor properties +1.5.3. Managing descriptor references +1.5.4. Multiplexing requests +1.5.5. Descriptor wrapping +.LP +.if t .sp .5v +.nf +\fB1.6. Resource controls\fP +1.6.1. Process priorities +1.6.2. Resource utilization +1.6.3. Resource limits +.LP +.if t .sp .5v +.nf +\fB1.7. System operation support\fP +1.7.1. Bootstrap operations +1.7.2. Shutdown operations +1.7.3. Accounting +.bp +.LP +.if t .sp .5v +.sp 1 +.nf +\fB2. System facilities\fP +.LP +.if t .sp .5v +.nf +\fB2.1. Generic operations\fP +2.1.1. Read and write +2.1.2. Input/output control +2.1.3. Non-blocking and asynchronous operations +.LP +.if t .sp .5v +.nf +\fB2.2. File system\fP +2.2.1 Overview +2.2.2. Naming +2.2.3. Creation and removal +2.2.3.1. Directory creation and removal +2.2.3.2. File creation +2.2.3.3. Creating references to devices +2.2.3.4. Portal creation +2.2.3.6. File, device, and portal removal +2.2.4. Reading and modifying file attributes +2.2.5. Links and renaming +2.2.6. Extension and truncation +2.2.7. Checking accessibility +2.2.8. Locking +2.2.9. Disc quotas +.LP +.if t .sp .5v +.nf +\fB2.3. Interprocess communication\fP +2.3.1. Interprocess communication primitives +2.3.1.1.\0 Communication domains +2.3.1.2.\0 Socket types and protocols +2.3.1.3.\0 Socket creation, naming and service establishment +2.3.1.4.\0 Accepting connections +2.3.1.5.\0 Making connections +2.3.1.6.\0 Sending and receiving data +2.3.1.7.\0 Scatter/gather and exchanging access rights +2.3.1.8.\0 Using read and write with sockets +2.3.1.9.\0 Shutting down halves of full-duplex connections +2.3.1.10.\0 Socket and protocol options +2.3.2. UNIX domain +2.3.2.1. Types of sockets +2.3.2.2. Naming +2.3.2.3. Access rights transmission +2.3.3. INTERNET domain +2.3.3.1. Socket types and protocols +2.3.3.2. Socket naming +2.3.3.3. Access rights transmission +2.3.3.4. Raw access +.LP +.if t .sp .5v +.nf +\fB2.4. Terminals and devices\fP +2.4.1. Terminals +2.4.1.1. Terminal input +2.4.1.1.1 Input modes +2.4.1.1.2 Interrupt characters +2.4.1.1.3 Line editing +2.4.1.2. Terminal output +2.4.1.3. Terminal control operations +2.4.1.4. Terminal hardware support +2.4.2. Structured devices +2.4.3. Unstructured devices +.LP +.if t .sp .5v +.nf +\fB2.5. Process control and debugging\fP +.LP +.if t .sp .5v +.nf +\fBI. Summary of facilities\fP +.LP +.de sh +.ds RH \\$1 +.bp +.NH \\*(ss +\s+2\\$1\s0 +.PP +.PP +.. +.bp +.ds ss 1 +.de _d +.if t .ta .6i 2.1i 2.6i +.\" 2.94 went to 2.6, 3.64 to 3.30 +.if n .ta .84i 2.6i 3.30i +.. +.de _f +.if t .ta .5i 1.25i 2.5i 3.5i +.\" 3.5i went to 3.8i +.if n .ta .7i 1.75i 3.8i 4.8i +.. +.nr H1 -1 +.sh "Notation and types +.PP +The notation used to describe system calls is a variant of a +C language call, consisting of a prototype call followed by +declaration of parameters and results. +An additional keyword \fBresult\fP, not part of the normal C language, +is used to indicate which of the declared entities receive results. +As an example, consider the \fIread\fP call, as described in +section 2.1: +.DS +cc = read(fd, buf, nbytes); +result int cc; int fd; result char *buf; int nbytes; +.DE +The first line shows how the \fIread\fP routine is called, with +three parameters. +As shown on the second line \fIcc\fP is an integer and \fIread\fP also +returns information in the parameter \fIbuf\fP. +.PP +Description of all error conditions arising from each system call +is not provided here; they appear in the programmer's manual. +In particular, when accessed from the C language, +many calls return a characteristic \-1 value +when an error occurs, returning the error code in the global variable +\fIerrno\fP. +Other languages may present errors in different ways. +.PP +A number of system standard types are defined in the include file +.I +and used in the specifications here and in many C programs. +These include \fBcaddr_t\fP giving a memory address (typically as +a character pointer), +\fBoff_t\fP giving a file offset (typically as a long integer), +and a set of unsigned types \fBu_char\fP, \fBu_short\fP, \fBu_int\fP +and \fBu_long\fP, shorthand names for \fBunsigned char\fP, \fBunsigned +short\fP, etc. diff --git a/doc/ps1/06.sysman/1.0.t b/doc/ps1/06.sysman/1.0.t new file mode 100644 index 00000000..b0c91583 --- /dev/null +++ b/doc/ps1/06.sysman/1.0.t @@ -0,0 +1,29 @@ +.\" Copyright (c) 1983 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)1.0.t 6.2 (Berkeley) 5/12/86 +.\" +.ds ss 1 +.sh "Kernel primitives +.PP +The facilities available to a UNIX user process are logically +divided into two parts: kernel facilities directly implemented by +UNIX code running in the operating system, and system facilities +implemented either by the system, or in cooperation with a +\fIserver process\fP. These kernel facilities are described in +this section 1. +.PP +The facilities implemented in the kernel are those which define the +\fIUNIX virtual machine\fP in which each process runs. +Like many real machines, this virtual machine has memory management hardware, +an interrupt facility, timers and counters. The UNIX +virtual machine also allows access to files and other objects through a set of +\fIdescriptors\fP. Each descriptor resembles a device controller, +and supports a set of operations. Like devices on real machines, some +of which are internal to the machine and some of which are external, +parts of the descriptor machinery are built-in to the operating system, while +other parts are often implemented in server processes on other machines. +The facilities provided through the descriptor machinery are described in +section 2. +.ds ss 2 diff --git a/doc/ps1/06.sysman/1.1.t b/doc/ps1/06.sysman/1.1.t new file mode 100644 index 00000000..87e3aff2 --- /dev/null +++ b/doc/ps1/06.sysman/1.1.t @@ -0,0 +1,188 @@ +.\" Copyright (c) 1983 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)1.1.t 6.2 (Berkeley) 5/12/86 +.\" +.sh "Processes and protection +.NH 3 +Host and process identifiers +.PP +Each UNIX host has associated with it a 32-bit host id, and a host +name of up to 64 characters (as defined by MAXHOSTNAMELEN in +\fI\fP). +These are set (by a privileged user) +and returned by the calls: +.DS +sethostid(hostid) +long hostid; + +hostid = gethostid(); +result long hostid; + +sethostname(name, len) +char *name; int len; + +len = gethostname(buf, buflen) +result int len; result char *buf; int buflen; +.DE +On each host runs a set of \fIprocesses\fP. +Each process is largely independent of other processes, +having its own protection domain, address space, timers, and +an independent set of references to system or user implemented objects. +.PP +Each process in a host is named by an integer +called the \fIprocess id\fP. This number is +in the range 1-30000 +and is returned by +the \fIgetpid\fP routine: +.DS +pid = getpid(); +result int pid; +.DE +On each UNIX host this identifier is guaranteed to be unique; +in a multi-host environment, the (hostid, process id) pairs are +guaranteed unique. +.NH 3 +Process creation and termination +.PP +A new process is created by making a logical duplicate of an +existing process: +.DS +pid = fork(); +result int pid; +.DE +The \fIfork\fP call returns twice, once in the parent process, where +\fIpid\fP is the process identifier of the child, +and once in the child process where \fIpid\fP is 0. +The parent-child relationship induces a hierarchical structure on +the set of processes in the system. +.PP +A process may terminate by executing an \fIexit\fP call: +.DS +exit(status) +int status; +.DE +returning 8 bits of exit status to its parent. +.PP +When a child process exits or +terminates abnormally, the parent process receives +information about any +event which caused termination of the child process. A +second call provides a non-blocking interface and may also be used +to retrieve information about resources consumed by the process during its +lifetime. +.DS +#include + +pid = wait(astatus); +result int pid; result union wait *astatus; + +pid = wait3(astatus, options, arusage); +result int pid; result union waitstatus *astatus; +int options; result struct rusage *arusage; +.DE +.PP +A process can overlay itself with the memory image of another process, +passing the newly created process a set of parameters, using the call: +.DS +execve(name, argv, envp) +char *name, **argv, **envp; +.DE +The specified \fIname\fP must be a file which is in a format recognized +by the system, either a binary executable file or a file which causes +the execution of a specified interpreter program to process its contents. +.NH 3 +User and group ids +.PP +Each process in the system has associated with it two user-id's: +a \fIreal user id\fP and a \fIeffective user id\fP, both 16 bit +unsigned integers (type \fBuid_t\fP). +Each process has an \fIreal accounting group id\fP and an \fIeffective +accounting group id\fP and a set of +\fIaccess group id's\fP. The group id's are 16 bit unsigned integers +(type \fBgid_t\fP). +Each process may be in several different access groups, with the maximum +concurrent number of access groups a system compilation parameter, +the constant NGROUPS in the file \fI\fP, +guaranteed to be at least 8. +.PP +The real and effective user ids associated with a process are returned by: +.DS +ruid = getuid(); +result uid_t ruid; + +euid = geteuid(); +result uid_t euid; +.DE +the real and effective accounting group ids by: +.DS +rgid = getgid(); +result gid_t rgid; + +egid = getegid(); +result gid_t egid; +.DE +The access group id set is returned by a \fIgetgroups\fP call*: +.DS +ngroups = getgroups(gidsetsize, gidset); +result int ngroups; int gidsetsize; result int gidset[gidsetsize]; +.DE +.FS +* The type of the gidset array in getgroups and setgroups +remains integer for compatibility with 4.2BSD. +It may change to \fBgid_t\fP in future releases. +.FE +.PP +The user and group id's +are assigned at login time using the \fIsetreuid\fP, \fIsetregid\fP, +and \fIsetgroups\fP calls: +.DS +setreuid(ruid, euid); +int ruid, euid; + +setregid(rgid, egid); +int rgid, egid; + +setgroups(gidsetsize, gidset) +int gidsetsize; int gidset[gidsetsize]; +.DE +The \fIsetreuid\fP call sets both the real and effective user-id's, +while the \fIsetregid\fP call sets both the real +and effective accounting group id's. +Unless the caller is the super-user, \fIruid\fP +must be equal to either the current real or effective user-id, +and \fIrgid\fP equal to either the current real or effective +accounting group id. The \fIsetgroups\fP call is restricted +to the super-user. +.NH 3 +Process groups +.PP +Each process in the system is also normally associated with a \fIprocess +group\fP. The group of processes in a process group is sometimes +referred to as a \fIjob\fP and manipulated by high-level system +software (such as the shell). +The current process group of a process is returned by the +\fIgetpgrp\fP call: +.DS +pgrp = getpgrp(pid); +result int pgrp; int pid; +.DE +When a process is in a specific process group it may receive +software interrupts affecting the group, causing the group to +suspend or resume execution or to be interrupted or terminated. +In particular, a system terminal has a process group and only processes +which are in the process group of the terminal may read from the +terminal, allowing arbitration of terminals among several different jobs. +.PP +The process group associated with a process may be changed by +the \fIsetpgrp\fP call: +.DS +setpgrp(pid, pgrp); +int pid, pgrp; +.DE +Newly created processes are assigned process id's distinct from all +processes and process groups, and the same process group as their +parent. A normal (unprivileged) process may set its process group equal +to its process id. A privileged process may set the process group of any +process to any value. diff --git a/doc/ps1/06.sysman/1.2.t b/doc/ps1/06.sysman/1.2.t new file mode 100644 index 00000000..59f65b49 --- /dev/null +++ b/doc/ps1/06.sysman/1.2.t @@ -0,0 +1,245 @@ +.\" Copyright (c) 1983 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)1.2.t 6.10 (Berkeley) 8/25/86 +.\" +.sh "Memory management\(dg +.NH 3 +Text, data and stack +.PP +.FS +\(dg This section represents the interface planned for later +releases of the system. Of the calls described in this section, +only \fIsbrk\fP and \fIgetpagesize\fP are included in 4.3BSD. +.FE +Each process begins execution with three logical areas of memory +called text, data and stack. +The text area is read-only and shared, while the data and stack +areas are private to the process. Both the data and stack areas may +be extended and contracted on program request. The call +.DS +addr = sbrk(incr); +result caddr_t addr; int incr; +.DE +changes the size of the data area by \fIincr\fP bytes and +returns the new end of the data area, while +.DS +addr = sstk(incr); +result caddr_t addr; int incr; +.DE +changes the size of the stack area. +The stack area is also automatically extended as needed. +On the VAX the text and data areas are adjacent in the P0 region, +while the stack section is in the P1 region, and grows downward. +.NH 3 +Mapping pages +.PP +The system supports sharing of data between processes +by allowing pages to be mapped into memory. These mapped +pages may be \fIshared\fP with other processes or \fIprivate\fP +to the process. +Protection and sharing options are defined in \fI\fP as: +.DS +.ta \w'#define\ \ 'u +\w'MAP_HASSEMAPHORE\ \ 'u +\w'0x0080\ \ 'u +/* protections are chosen from these bits, or-ed together */ +#define PROT_READ 0x04 /* pages can be read */ +#define PROT_WRITE 0x02 /* pages can be written */ +#define PROT_EXEC 0x01 /* pages can be executed */ +.DE +.DS +.ta \w'#define\ \ 'u +\w'MAP_HASSEMAPHORE\ \ 'u +\w'0x0080\ \ 'u +/* flags contain mapping type, sharing type and options */ +/* mapping type; choose one */ +#define MAP_FILE 0x0001 /* mapped from a file or device */ +#define MAP_ANON 0x0002 /* allocated from memory, swap space */ +#define MAP_TYPE 0x000f /* mask for type field */ +.DE +.DS +.ta \w'#define\ \ 'u +\w'MAP_HASSEMAPHORE\ \ 'u +\w'0x0080\ \ 'u +/* sharing types; choose one */ +#define MAP_SHARED 0x0010 /* share changes */ +#define MAP_PRIVATE 0x0000 /* changes are private */ +.DE +.DS +.ta \w'#define\ \ 'u +\w'MAP_HASSEMAPHORE\ \ 'u +\w'0x0080\ \ 'u +/* other flags */ +#define MAP_FIXED 0x0020 /* map addr must be exactly as requested */ +#define MAP_INHERIT 0x0040 /* region is retained after exec */ +#define MAP_HASSEMAPHORE 0x0080 /* region may contain semaphores */ +#define MAP_NOPREALLOC 0x0100 /* do not preallocate space */ +.DE +The cpu-dependent size of a page is returned by the +\fIgetpagesize\fP system call: +.DS +pagesize = getpagesize(); +result int pagesize; +.DE +.LP +The call: +.DS +maddr = mmap(addr, len, prot, flags, fd, pos); +result caddr_t maddr; caddr_t addr; int *len, prot, flags, fd; off_t pos; +.DE +causes the pages starting at \fIaddr\fP and continuing +for at most \fIlen\fP bytes to be mapped from the object represented by +descriptor \fIfd\fP, starting at byte offset \fIpos\fP. +The starting address of the region is returned; +for the convenience of the system, +it may differ from that supplied +unless the MAP_FIXED flag is given, +in which case the exact address will be used or the call will fail. +The actual amount mapped is returned in \fIlen\fP. +The \fIaddr\fP, \fIlen\fP, and \fIpos\fP parameters +must all be multiples of the pagesize. +A successful \fImmap\fP will delete any previous mapping +in the allocated address range. +The parameter \fIprot\fP specifies the accessibility +of the mapped pages. +The parameter \fIflags\fP specifies +the type of object to be mapped, +mapping options, and +whether modifications made to +this mapped copy of the page +are to be kept \fIprivate\fP, or are to be \fIshared\fP with +other references. +Possible types include MAP_FILE, +mapping a regular file or character-special device memory, +and MAP_ANON, which maps memory not associated with any specific file. +The file descriptor used for creating MAP_ANON regions is used only +for naming, and may be given as \-1 if no name +is associated with the region.\(dd +.FS +\(dd The current design does not allow a process +to specify the location of swap space. +In the future we may define an additional mapping type, MAP_SWAP, +in which the file descriptor argument specifies a file +or device to which swapping should be done. +.FE +The MAP_INHERIT flag allows a region to be inherited after an \fIexec\fP. +The MAP_HASSEMAPHORE flag allows special handling for +regions that may contain semaphores. +The MAP_NOPREALLOC flag allows processes to allocate regions whose +virtual address space, if fully allocated, +would exceed the available memory plus swap resources. +Such regions may get a SIGSEGV signal if they page fault and resources +are not available to service their request; +typically they would free up some resources via \fIunmap\fP so that +when they return from the signal the page +fault could be successfully completed. +.PP +A facility is provided to synchronize a mapped region with the file +it maps; the call +.DS +msync(addr, len); +caddr_t addr; int len; +.DE +writes any modified pages back to the filesystem and updates +the file modification time. +If \fIlen\fP is 0, all modified pages within the region containing \fIaddr\fP +will be flushed; +if \fIlen\fP is non-zero, only the pages containing \fIaddr\fP and \fIlen\fP +succeeding locations will be examined. +Any required synchronization of memory caches +will also take place at this time. +Filesystem operations on a file that is mapped for shared modifications +are unpredictable except after an \fImsync\fP. +.PP +A mapping can be removed by the call +.DS +munmap(addr, len); +caddr_t addr; int len; +.DE +This call deletes the mappings for the specified address range, +and causes further references to addresses within the range +to generate invalid memory references. +.NH 3 +Page protection control +.PP +A process can control the protection of pages using the call +.DS +mprotect(addr, len, prot); +caddr_t addr; int len, prot; +.DE +This call changes the specified pages to have protection \fIprot\fP\|. +Not all implementations will guarantee protection on a page basis; +the granularity of protection changes may be as large as an entire region. +.NH 3 +Giving and getting advice +.PP +A process that has knowledge of its memory behavior may +use the \fImadvise\fP call: +.DS +madvise(addr, len, behav); +caddr_t addr; int len, behav; +.DE +\fIBehav\fP describes expected behavior, as given +in \fI\fP: +.DS +.ta \w'#define\ \ 'u +\w'MADV_SEQUENTIAL\ \ 'u +\w'00\ \ \ \ 'u +#define MADV_NORMAL 0 /* no further special treatment */ +#define MADV_RANDOM 1 /* expect random page references */ +#define MADV_SEQUENTIAL 2 /* expect sequential references */ +#define MADV_WILLNEED 3 /* will need these pages */ +#define MADV_DONTNEED 4 /* don't need these pages */ +#define MADV_SPACEAVAIL 5 /* insure that resources are reserved */ +.DE +Finally, a process may obtain information about whether pages are +core resident by using the call +.DS +mincore(addr, len, vec) +caddr_t addr; int len; result char *vec; +.DE +Here the current core residency of the pages is returned +in the character array \fIvec\fP, with a value of 1 meaning +that the page is in-core. +.NH 3 +Synchronization primitives +.PP +Primitives are provided for synchronization using semaphores in shared memory. +Semaphores must lie within a MAP_SHARED region with at least modes +PROT_READ and PROT_WRITE. +The MAP_HASSEMAPHORE flag must have been specified when the region was created. +To acquire a lock a process calls: +.DS +value = mset(sem, wait) +result int value; semaphore *sem; int wait; +.DE +\fIMset\fP indivisibly tests and sets the semaphore \fIsem\fP. +If the the previous value is zero, the process has acquired the lock +and \fImset\fP returns true immediately. +Otherwise, if the \fIwait\fP flag is zero, +failure is returned. +If \fIwait\fP is true and the previous value is non-zero, +\fImset\fP relinquishes the processor until notified that it should retry. +.LP +To release a lock a process calls: +.DS +mclear(sem) +semaphore *sem; +.DE +\fIMclear\fP indivisibly tests and clears the semaphore \fIsem\fP. +If the ``WANT'' flag is zero in the previous value, +\fImclear\fP returns immediately. +If the ``WANT'' flag is non-zero in the previous value, +\fImclear\fP arranges for waiting processes to retry before returning. +.PP +Two routines provide services analogous to the kernel +\fIsleep\fP and \fIwakeup\fP functions interpreted in the domain of +shared memory. +A process may relinquish the processor by calling \fImsleep\fP +with a set semaphore: +.DS +msleep(sem) +semaphore *sem; +.DE +If the semaphore is still set when it is checked by the kernel, +the process will be put in a sleeping state +until some other process issues an \fImwakeup\fP for the same semaphore +within the region using the call: +.DS +mwakeup(sem) +semaphore *sem; +.DE +An \fImwakeup\fP may awaken all sleepers on the semaphore, +or may awaken only the next sleeper on a queue. diff --git a/doc/ps1/06.sysman/1.3.t b/doc/ps1/06.sysman/1.3.t new file mode 100644 index 00000000..28de20e2 --- /dev/null +++ b/doc/ps1/06.sysman/1.3.t @@ -0,0 +1,227 @@ +.\" Copyright (c) 1983 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)1.3.t 6.2 (Berkeley) 5/12/86 +.\" +.sh "Signals +.PP +.NH 3 +Overview +.PP +The system defines a set of \fIsignals\fP that may be delivered +to a process. Signal delivery resembles the occurrence of a hardware +interrupt: the signal is blocked from further occurrence, +the current process context is saved, and a new one +is built. A process may specify +the \fIhandler\fP to which a signal is delivered, or specify that +the signal is to be \fIblocked\fP or \fIignored\fP. A process may +also specify that a +\fIdefault\fP action is to be taken when signals occur. +.PP +Some signals +will cause a process to exit when they are not caught. This +may be accompanied by creation of a \fIcore\fP image file, containing +the current memory image of the process for use in post-mortem debugging. +A process may choose to have signals delivered on a special +stack, so that sophisticated software stack manipulations are possible. +.PP +All signals have the same \fIpriority\fP. If multiple signals +are pending simultaneously, the order in which they are delivered +to a process is implementation specific. Signal routines execute +with the signal that caused their invocation \fIblocked\fP, but other +signals may yet occur. Mechanisms are provided whereby critical sections +of code may protect themselves against the occurrence of specified signals. +.NH 3 +Signal types +.PP +The signals defined by the system fall into one of +five classes: hardware conditions, +software conditions, input/output notification, process control, or +resource control. +The set of signals is defined in the file \fI\fP. +.PP +Hardware signals are derived from exceptional conditions which +may occur during +execution. Such signals include SIGFPE representing floating +point and other arithmetic exceptions, SIGILL for illegal instruction +execution, SIGSEGV for addresses outside the currently assigned +area of memory, and SIGBUS for accesses that violate memory +protection constraints. +Other, more cpu-specific hardware signals exist, +such as those for the various customer-reserved instructions on +the VAX (SIGIOT, SIGEMT, and SIGTRAP). +.PP +Software signals reflect interrupts generated by user request: +SIGINT for the normal interrupt signal; SIGQUIT for the more +powerful \fIquit\fP signal, that normally causes a core image +to be generated; SIGHUP and SIGTERM that cause graceful +process termination, either because a user has ``hung up'', or +by user or program request; and SIGKILL, a more powerful termination +signal which a process cannot catch or ignore. +Programs may define their own asynchronous events using SIGUSR1 +and SIGUSR2. +Other software signals (SIGALRM, SIGVTALRM, SIGPROF) +indicate the expiration of interval timers. +.PP +A process can request notification via a SIGIO signal +when input or output is possible +on a descriptor, or when a \fInon-blocking\fP operation completes. +A process may request to receive a SIGURG signal when an +urgent condition arises. +.PP +A process may be \fIstopped\fP by a signal sent to it or the members +of its process group. The SIGSTOP signal is a powerful stop +signal, because it cannot be caught. Other stop signals +SIGTSTP, SIGTTIN, and SIGTTOU are used when a user request, input +request, or output request respectively is the reason for stopping the process. +A SIGCONT signal is sent to a process when it is +continued from a stopped state. +Processes may receive notification with a SIGCHLD signal when +a child process changes state, either by stopping or by terminating. +.PP +Exceeding resource limits may cause signals to be generated. +SIGXCPU occurs when a process nears its CPU time limit and SIGXFSZ +warns that the limit on file size creation has been reached. +.NH 3 +Signal handlers +.PP +A process has a handler associated with each signal. +The handler controls the way the signal is delivered. +The call +.DS +#include + +._f +struct sigvec { + int (*sv_handler)(); + int sv_mask; + int sv_flags; +}; + +sigvec(signo, sv, osv) +int signo; struct sigvec *sv; result struct sigvec *osv; +.DE +assigns interrupt handler address \fIsv_handler\fP to signal \fIsigno\fP. +Each handler address +specifies either an interrupt routine for the signal, that the +signal is to be ignored, +or that a default action (usually process termination) is to occur +if the signal occurs. +The constants +SIG_IGN and SIG_DEF used as values for \fIsv_handler\fP +cause ignoring or defaulting of a condition. +The \fIsv_mask\fP value specifies the +signal mask to be used when the handler is invoked; it implicitly includes +the signal which invoked the handler. +Signal masks include one bit for each signal; +the mask for a signal \fIsigno\fP is provided by the macro +\fIsigmask\fP(\fIsigno\fP), from \fI\fP. +\fISv_flags\fP specifies whether system calls should be +restarted if the signal handler returns and +whether the handler should operate on the normal run-time +stack or a special signal stack (see below). If \fIosv\fP +is non-zero, the previous signal vector is returned. +.PP +When a signal condition arises for a process, the signal +is added to a set of signals pending for the process. +If the signal is not currently \fIblocked\fP by the process +then it will be delivered. The process of signal delivery +adds the signal to be delivered and those signals +specified in the associated signal +handler's \fIsv_mask\fP to a set of those \fImasked\fP +for the process, saves the current process context, +and places the process in the context of the signal +handling routine. The call is arranged so that if the signal +handling routine exits normally the signal mask will be restored +and the process will resume execution in the original context. +If the process wishes to resume in a different context, then +it must arrange to restore the signal mask itself. +.PP +The mask of \fIblocked\fP signals is independent of handlers for +signals. It delays signals from being delivered much as a +raised hardware interrupt priority level delays hardware interrupts. +Preventing an interrupt from occurring by changing the handler is analogous to +disabling a device from further interrupts. +.PP +The signal handling routine \fIsv_handler\fP is called by a C call +of the form +.DS +(*sv_handler)(signo, code, scp); +int signo; long code; struct sigcontext *scp; +.DE +The \fIsigno\fP gives the number of the signal that occurred, and +the \fIcode\fP, a word of information supplied by the hardware. +The \fIscp\fP parameter is a pointer to a machine-dependent +structure containing the information for restoring the +context before the signal. +.NH 3 +Sending signals +.PP +A process can send a signal to another process or group of processes +with the calls: +.DS +kill(pid, signo) +int pid, signo; + +killpgrp(pgrp, signo) +int pgrp, signo; +.DE +Unless the process sending the signal is privileged, +it must have the same effective user id as the process receiving the signal. +.PP +Signals are also sent implicitly from a terminal device to the +process group associated with the terminal when certain input characters +are typed. +.NH 3 +Protecting critical sections +.PP +To block a section of code against one or more signals, a \fIsigblock\fP +call may be used to add a set of signals to the existing mask, returning +the old mask: +.DS +oldmask = sigblock(mask); +result long oldmask; long mask; +.DE +The old mask can then be restored later with \fIsigsetmask\fP\|, +.DS +oldmask = sigsetmask(mask); +result long oldmask; long mask; +.DE +The \fIsigblock\fP call can be used to read the current mask +by specifying an empty \fImask\fP\|. +.PP +It is possible to check conditions with some signals blocked, +and then to pause waiting for a signal and restoring the mask, by using: +.DS +sigpause(mask); +long mask; +.DE +.NH 3 +Signal stacks +.PP +Applications that maintain complex or fixed size stacks can use +the call +.DS +._f +struct sigstack { + caddr_t ss_sp; + int ss_onstack; +}; + +sigstack(ss, oss) +struct sigstack *ss; result struct sigstack *oss; +.DE +to provide the system with a stack based at \fIss_sp\fP for delivery +of signals. The value \fIss_onstack\fP indicates whether the +process is currently on the signal stack, +a notion maintained in software by the system. +.PP +When a signal is to be delivered, the system checks whether +the process is on a signal stack. If not, then the process is switched +to the signal stack for delivery, with the return from the signal +arranged to restore the previous stack. +.PP +If the process wishes to take a non-local exit from the signal routine, +or run code from the signal stack that uses a different stack, +a \fIsigstack\fP call should be used to reset the signal stack. diff --git a/doc/ps1/06.sysman/1.4.t b/doc/ps1/06.sysman/1.4.t new file mode 100644 index 00000000..5d185ae9 --- /dev/null +++ b/doc/ps1/06.sysman/1.4.t @@ -0,0 +1,110 @@ +.\" Copyright (c) 1983 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)1.4.t 6.2 (Berkeley) 5/12/86 +.\" +.sh "Timers +.NH 3 +Real time +.PP +The system's notion of the current Greenwich time and the current time +zone is set and returned by the call by the calls: +.DS +#include + +settimeofday(tvp, tzp); +struct timeval *tp; +struct timezone *tzp; + +gettimeofday(tp, tzp); +result struct timeval *tp; +result struct timezone *tzp; +.DE +where the structures are defined in \fI\fP as: +.DS +._f +struct timeval { + long tv_sec; /* seconds since Jan 1, 1970 */ + long tv_usec; /* and microseconds */ +}; + +struct timezone { + int tz_minuteswest; /* of Greenwich */ + int tz_dsttime; /* type of dst correction to apply */ +}; +.DE +The precision of the system clock is hardware dependent. +Earlier versions of UNIX contained only a 1-second resolution version +of this call, which remains as a library routine: +.DS +time(tvsec) +result long *tvsec; +.DE +returning only the tv_sec field from the \fIgettimeofday\fP call. +.NH 3 +Interval time +.PP +The system provides each process with three interval timers, +defined in \fI\fP: +.DS +._d +#define ITIMER_REAL 0 /* real time intervals */ +#define ITIMER_VIRTUAL 1 /* virtual time intervals */ +#define ITIMER_PROF 2 /* user and system virtual time */ +.DE +The ITIMER_REAL timer decrements +in real time. It could be used by a library routine to +maintain a wakeup service queue. A SIGALRM signal is delivered +when this timer expires. +.PP +The ITIMER_VIRTUAL timer decrements in process virtual time. +It runs only when the process is executing. A SIGVTALRM signal +is delivered when it expires. +.PP +The ITIMER_PROF timer decrements both in process virtual time and when +the system is running on behalf of the process. +It is designed to be used by processes to statistically profile +their execution. +A SIGPROF signal is delivered when it expires. +.PP +A timer value is defined by the \fIitimerval\fP structure: +.DS +._f +struct itimerval { + struct timeval it_interval; /* timer interval */ + struct timeval it_value; /* current value */ +}; +.DE +and a timer is set or read by the call: +.DS +getitimer(which, value); +int which; result struct itimerval *value; + +setitimer(which, value, ovalue); +int which; struct itimerval *value; result struct itimerval *ovalue; +.DE +The third argument to \fIsetitimer\fP specifies an optional structure +to receive the previous contents of the interval timer. +A timer can be disabled by specifying a timer value of 0. +.PP +The system rounds argument timer intervals to be not less than the +resolution of its clock. This clock resolution can be determined +by loading a very small value into a timer and reading the timer back to +see what value resulted. +.PP +The \fIalarm\fP system call of earlier versions of UNIX is provided +as a library routine using the ITIMER_REAL timer. The process +profiling facilities of earlier versions of UNIX +remain because +it is not always possible to guarantee +the automatic restart of system calls after +receipt of a signal. +The \fIprofil\fP call arranges for the kernel to begin gathering +execution statistics for a process: +.DS +profil(buf, bufsize, offset, scale); +result char *buf; int bufsize, offset, scale; +.DE +This begins sampling of the program counter, with statistics maintained +in the user-provided buffer. diff --git a/doc/ps1/06.sysman/1.5.t b/doc/ps1/06.sysman/1.5.t new file mode 100644 index 00000000..5a9d3054 --- /dev/null +++ b/doc/ps1/06.sysman/1.5.t @@ -0,0 +1,198 @@ +.\" Copyright (c) 1983 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)1.5.t 6.3 (Berkeley) 5/12/86 +.\" +.sh Descriptors +.PP +.NH 3 +The reference table +.PP +Each process has access to resources through +\fIdescriptors\fP. Each descriptor is a handle allowing +the process to reference objects such as files, devices +and communications links. +.PP +Rather than allowing processes direct access to descriptors, the system +introduces a level of indirection, so that descriptors may be shared +between processes. Each process has a \fIdescriptor reference table\fP, +containing pointers to the actual descriptors. The descriptors +themselves thus have multiple references, and are reference counted by the +system. +.PP +Each process has a fixed size descriptor reference table, where +the size is returned by the \fIgetdtablesize\fP call: +.DS +nds = getdtablesize(); +result int nds; +.DE +and guaranteed to be at least 20. The entries in the descriptor reference +table are referred to by small integers; for example if there +are 20 slots they are numbered 0 to 19. +.NH 3 +Descriptor properties +.PP +Each descriptor has a logical set of properties maintained +by the system and defined by its \fItype\fP. +Each type supports a set of operations; +some operations, such as reading and writing, are common to several +abstractions, while others are unique. +The generic operations applying to many of these types are described +in section 2.1. Naming contexts, files and directories are described in +section 2.2. Section 2.3 describes communications domains and sockets. +Terminals and (structured and unstructured) devices are described +in section 2.4. +.NH 3 +Managing descriptor references +.PP +A duplicate of a descriptor reference may be made by doing +.DS +new = dup(old); +result int new; int old; +.DE +returning a copy of descriptor reference \fIold\fP indistinguishable from +the original. The \fInew\fP chosen by the system will be the +smallest unused descriptor reference slot. +A copy of a descriptor reference may be made in a specific slot +by doing +.DS +dup2(old, new); +int old, new; +.DE +The \fIdup2\fP call causes the system to deallocate the descriptor reference +current occupying slot \fInew\fP, if any, replacing it with a reference +to the same descriptor as old. +This deallocation is also performed by: +.DS +close(old); +int old; +.DE +.NH 3 +Multiplexing requests +.PP +The system provides a +standard way to do +synchronous and asynchronous multiplexing of operations. +.PP +Synchronous multiplexing is performed by using the \fIselect\fP call +to examine the state of multiple descriptors simultaneously, +and to wait for state changes on those descriptors. +Sets of descriptors of interest are specified as bit masks, +as follows: +.DS +#include + +nds = select(nd, in, out, except, tvp); +result int nds; int nd; result fd_set *in, *out, *except; +struct timeval *tvp; + +FD_ZERO(&fdset); +FD_SET(fd, &fdset); +FD_CLR(fd, &fdset); +FD_ISSET(fd, &fdset); +int fs; fs_set fdset; +.DE +The \fIselect\fP call examines the descriptors +specified by the +sets \fIin\fP, \fIout\fP and \fIexcept\fP, replacing +the specified bit masks by the subsets that select true for input, +output, and exceptional conditions respectively (\fInd\fP +indicates the number of file descriptors specified by the bit masks). +If any descriptors meet the following criteria, +then the number of such descriptors is returned in \fInds\fP and the +bit masks are updated. +.if n .ds bu * +.if t .ds bu \(bu +.IP \*(bu +A descriptor selects for input if an input oriented operation +such as \fIread\fP or \fIreceive\fP is possible, or if a +connection request may be accepted (see section 2.3.1.4). +.IP \*(bu +A descriptor selects for output if an output oriented operation +such as \fIwrite\fP or \fIsend\fP is possible, or if an operation +that was ``in progress'', such as connection establishment, +has completed (see section 2.1.3). +.IP \*(bu +A descriptor selects for an exceptional condition if a condition +that would cause a SIGURG signal to be generated exists (see section 1.3.2), +or other device-specific events have occurred. +.LP +If none of the specified conditions is true, the operation +waits for one of the conditions to arise, +blocking at most the amount of time specified by \fItvp\fP. +If \fItvp\fP is given as 0, the \fIselect\fP waits indefinitely. +.PP +Options affecting I/O on a descriptor +may be read and set by the call: +.DS +._d +dopt = fcntl(d, cmd, arg) +result int dopt; int d, cmd, arg; + +/* interesting values for cmd */ +#define F_SETFL 3 /* set descriptor options */ +#define F_GETFL 4 /* get descriptor options */ +#define F_SETOWN 5 /* set descriptor owner (pid/pgrp) */ +#define F_GETOWN 6 /* get descriptor owner (pid/pgrp) */ +.DE +The F_SETFL \fIcmd\fP may be used to set a descriptor in +non-blocking I/O mode and/or enable signaling when I/O is +possible. F_SETOWN may be used to specify a process or process +group to be signaled when using the latter mode of operation +or when urgent indications arise. +.PP +Operations on non-blocking descriptors will +either complete immediately, +note an error EWOULDBLOCK, +partially complete an input or output operation returning a partial count, +or return an error EINPROGRESS noting that the requested operation is +in progress. +A descriptor which has signalling enabled will cause the specified process +and/or process group +be signaled, with a SIGIO for input, output, or in-progress +operation complete, or +a SIGURG for exceptional conditions. +.PP +For example, when writing to a terminal +using non-blocking output, +the system will accept only as much data as there is buffer space for +and return; when making a connection on a \fIsocket\fP, the operation may +return indicating that the connection establishment is ``in progress''. +The \fIselect\fP facility can be used to determine when further +output is possible on the terminal, or when the connection establishment +attempt is complete. +.NH 3 +Descriptor wrapping.\(dg +.PP +.FS +\(dg The facilities described in this section are not included +in 4.3BSD. +.FE +A user process may build descriptors of a specified type by +\fIwrapping\fP a communications channel with a system supplied protocol +translator: +.DS +new = wrap(old, proto) +result int new; int old; struct dprop *proto; +.DE +Operations on the descriptor \fIold\fP are then translated by the +system provided protocol translator into requests on the underlying +object \fIold\fP in a way defined by the protocol. +The protocols supported by the kernel may vary from system to system +and are described in the programmers manual. +.PP +Protocols may be based on communications multiplexing or a rights-passing +style of handling multiple requests made on the same object. For instance, +a protocol for implementing a file abstraction may or may not include +locally generated ``read-ahead'' requests. A protocol that provides for +read-ahead may provide higher performance but have a more difficult +implementation. +.PP +Another example is the terminal driving facilities. Normally a terminal +is associated with a communications line, and the terminal type +and standard terminal access protocol are wrapped around a synchronous +communications line and given to the user. If a virtual terminal +is required, the terminal driver can be wrapped around a communications +link, the other end of which is held by a virtual terminal protocol +interpreter. diff --git a/doc/ps1/06.sysman/1.6.t b/doc/ps1/06.sysman/1.6.t new file mode 100644 index 00000000..7c0ecdbc --- /dev/null +++ b/doc/ps1/06.sysman/1.6.t @@ -0,0 +1,108 @@ +.\" Copyright (c) 1983 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)1.6.t 6.2 (Berkeley) 5/12/86 +.\" +.sh "Resource controls +.NH 3 +Process priorities +.PP +The system gives CPU scheduling priority to processes that have not used +CPU time recently. This tends to favor interactive processes and +processes that execute only for short periods. +It is possible to determine the priority currently +assigned to a process, process group, or the processes of a specified user, +or to alter this priority using the calls: +.DS +._d +#define PRIO_PROCESS 0 /* process */ +#define PRIO_PGRP 1 /* process group */ +#define PRIO_USER 2 /* user id */ + +prio = getpriority(which, who); +result int prio; int which, who; + +setpriority(which, who, prio); +int which, who, prio; +.DE +The value \fIprio\fP is in the range \-20 to 20. +The default priority is 0; lower priorities cause more +favorable execution. +The \fIgetpriority\fP call returns the highest priority (lowest numerical value) +enjoyed by any of the specified processes. +The \fIsetpriority\fP call sets the priorities of all of the +specified processes to the specified value. +Only the super-user may lower priorities. +.NH 3 +Resource utilization +.PP +The resources used by a process are returned by a \fIgetrusage\fP call, +returning information in a structure defined in \fI\fP: +.DS +._d +#define RUSAGE_SELF 0 /* usage by this process */ +#define RUSAGE_CHILDREN -1 /* usage by all children */ + +getrusage(who, rusage) +int who; result struct rusage *rusage; + +._f +struct rusage { + struct timeval ru_utime; /* user time used */ + struct timeval ru_stime; /* system time used */ + int ru_maxrss; /* maximum core resident set size: kbytes */ + int ru_ixrss; /* integral shared memory size (kbytes*sec) */ + int ru_idrss; /* unshared data memory size */ + int ru_isrss; /* unshared stack memory size */ + int ru_minflt; /* page-reclaims */ + int ru_majflt; /* page faults */ + int ru_nswap; /* swaps */ + int ru_inblock; /* block input operations */ + int ru_oublock; /* block output operations */ + int ru_msgsnd; /* messages sent */ + int ru_msgrcv; /* messages received */ + int ru_nsignals; /* signals received */ + int ru_nvcsw; /* voluntary context switches */ + int ru_nivcsw; /* involuntary context switches */ +}; +.DE +The \fIwho\fP parameter specifies whose resource usage is to be returned. +The resources used by the current process, or by all +the terminated children of the current process may be requested. +.NH 3 +Resource limits +.PP +The resources of a process for which limits are controlled by the +kernel are defined in \fI\fP, and controlled by the +\fIgetrlimit\fP and \fIsetrlimit\fP calls: +.DS +._d +#define RLIMIT_CPU 0 /* cpu time in milliseconds */ +#define RLIMIT_FSIZE 1 /* maximum file size */ +#define RLIMIT_DATA 2 /* maximum data segment size */ +#define RLIMIT_STACK 3 /* maximum stack segment size */ +#define RLIMIT_CORE 4 /* maximum core file size */ +#define RLIMIT_RSS 5 /* maximum resident set size */ + +#define RLIM_NLIMITS 6 + +#define RLIM_INFINITY 0x7f\&f\&f\&f\&f\&f\&f + +._f +struct rlimit { + int rlim_cur; /* current (soft) limit */ + int rlim_max; /* hard limit */ +}; + +getrlimit(resource, rlp) +int resource; result struct rlimit *rlp; + +setrlimit(resource, rlp) +int resource; struct rlimit *rlp; +.DE +.PP +Only the super-user can raise the maximum limits. +Other users may only +alter \fIrlim_cur\fP within the range from 0 to \fIrlim_max\fP +or (irreversibly) lower \fIrlim_max\fP. diff --git a/doc/ps1/06.sysman/1.7.t b/doc/ps1/06.sysman/1.7.t new file mode 100644 index 00000000..a410e9ca --- /dev/null +++ b/doc/ps1/06.sysman/1.7.t @@ -0,0 +1,73 @@ +.\" Copyright (c) 1983 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)1.7.t 6.3 (Berkeley) 5/12/86 +.\" +.sh "System operation support +.PP +Unless noted otherwise, +the calls in this section are permitted only to a privileged user. +.NH 3 +Bootstrap operations +.PP +The call +.DS +mount(blkdev, dir, ronly); +char *blkdev, *dir; int ronly; +.DE +extends the UNIX name space. The \fImount\fP call specifies +a block device \fIblkdev\fP containing a UNIX file system +to be made available starting at \fIdir\fP. If \fIronly\fP is +set then the file system is read-only; writes to the file system +will not be permitted and access times will not be updated +when files are referenced. +\fIDir\fP is normally a name in the root directory. +.PP +The call +.DS +swapon(blkdev, size); +char *blkdev; int size; +.DE +specifies a device to be made available for paging and swapping. +.PP +.NH 3 +Shutdown operations +.PP +The call +.DS +unmount(dir); +char *dir; +.DE +unmounts the file system mounted on \fIdir\fP. +This call will succeed only if the file system is +not currently being used. +.PP +The call +.DS +sync(); +.DE +schedules input/output to clean all system buffer caches. +(This call does not require privileged status.) +.PP +The call +.DS +reboot(how) +int how; +.DE +causes a machine halt or reboot. The call may request a reboot +by specifying \fIhow\fP as RB_AUTOBOOT, or that the machine be halted +with RB_HALT. These constants are defined in \fI\fP. +.NH 3 +Accounting +.PP +The system optionally keeps an accounting record in a file +for each process that exits on the system. +The format of this record is beyond the scope of this document. +The accounting may be enabled to a file \fIname\fP by doing +.DS +acct(path); +char *path; +.DE +If \fIpath\fP is null, then accounting is disabled. Otherwise, +the named file becomes the accounting file. diff --git a/doc/ps1/06.sysman/2.0.t b/doc/ps1/06.sysman/2.0.t new file mode 100644 index 00000000..7e8e8985 --- /dev/null +++ b/doc/ps1/06.sysman/2.0.t @@ -0,0 +1,56 @@ +.\" Copyright (c) 1983 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)2.0.t 6.2 (Berkeley) 5/12/86 +.\" +.ds ss 1 +.sh "System facilities +This section discusses the system facilities that +are not considered part of the kernel. +.PP +The system abstractions described are: +.IP "Directory contexts +.br +A directory context is a position in the UNIX file system name +space. Operations on files and other named objects in a file system are +always specified relative to such a context. +.IP "Files +.br +Files are used to store uninterpreted sequence of bytes on which +random access \fIreads\fP and \fIwrites\fP may occur. +Pages from files may also be mapped into process address space.\(dg +A directory may be read as a file. +.FS +\(dg Support for mapping files is not included in the 4.3 release. +.FE +.IP "Communications domains +.br +A communications domain represents +an interprocess communications environment, such as the communications +facilities of the UNIX system, +communications in the INTERNET, or the resource sharing protocols +and access rights of a resource sharing system on a local network. +.IP "Sockets +.br +A socket is an endpoint of communication and the focal +point for IPC in a communications domain. Sockets may be created in pairs, +or given names and used to rendezvous with other sockets +in a communications domain, accepting connections from these +sockets or exchanging messages with them. These operations model +a labeled or unlabeled communications graph, and can be used in a +wide variety of communications domains. Sockets can have different +\fItypes\fP\| to provide different semantics of communication, +increasing the flexibility of the model. +.IP "Terminals and other devices +.br +Devices include +terminals, providing input editing and interrupt generation +and output flow control and editing, magnetic tapes, +disks and other peripherals. They often support the generic +\fIread\fP and \fIwrite\fP operations as well as a number of \fIioctl\fP\|s. +.IP "Processes +.br +Process descriptors provide facilities for control and debugging of +other processes. +.ds ss 2 diff --git a/doc/ps1/06.sysman/2.1.t b/doc/ps1/06.sysman/2.1.t new file mode 100644 index 00000000..ef403801 --- /dev/null +++ b/doc/ps1/06.sysman/2.1.t @@ -0,0 +1,111 @@ +.\" Copyright (c) 1983 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)2.1.t 6.2 (Berkeley) 5/12/86 +.\" +.sh "Generic operations +.PP +.PP +Many system abstractions support the +operations \fIread\fP, \fIwrite\fP and \fIioctl\fP. We describe +the basics of these common primitives here. +Similarly, the mechanisms whereby normally synchronous operations +may occur in a non-blocking or asynchronous fashion are +common to all system-defined abstractions and are described here. +.NH 3 +Read and write +.PP +The \fIread\fP and \fIwrite\fP system calls can be applied +to communications channels, files, terminals and devices. +They have the form: +.DS +cc = read(fd, buf, nbytes); +result int cc; int fd; result caddr_t buf; int nbytes; + +cc = write(fd, buf, nbytes); +result int cc; int fd; caddr_t buf; int nbytes; +.DE +The \fIread\fP call transfers as much data as possible from the +object defined by \fIfd\fP to the buffer at address \fIbuf\fP of +size \fInbytes\fP. The number of bytes transferred is +returned in \fIcc\fP, which is \-1 if a return occurred before +any data was transferred because of an error or use of non-blocking +operations. +.PP +The \fIwrite\fP call transfers data from the buffer to the +object defined by \fIfd\fP. Depending on the type of \fIfd\fP, +it is possible that the \fIwrite\fP call will accept some portion +of the provided bytes; the user should resubmit the other bytes +in a later request in this case. +Error returns because of interrupted or otherwise incomplete operations +are possible. +.PP +Scattering of data on input or gathering of data for output +is also possible using an array of input/output vector descriptors. +The type for the descriptors is defined in \fI\fP as: +.DS +._f +struct iovec { + caddr_t iov_msg; /* base of a component */ + int iov_len; /* length of a component */ +}; +.DE +The calls using an array of descriptors are: +.DS +cc = readv(fd, iov, iovlen); +result int cc; int fd; struct iovec *iov; int iovlen; + +cc = writev(fd, iov, iovlen); +result int cc; int fd; struct iovec *iov; int iovlen; +.DE +Here \fIiovlen\fP is the count of elements in the \fIiov\fP array. +.NH 3 +Input/output control +.PP +Control operations on an object are performed by the \fIioctl\fP +operation: +.DS +ioctl(fd, request, buffer); +int fd, request; caddr_t buffer; +.DE +This operation causes the specified \fIrequest\fP to be performed +on the object \fIfd\fP. The \fIrequest\fP parameter specifies +whether the argument buffer is to be read, written, read and written, +or is not needed, and also the size of the buffer, as well as the +request. +Different descriptor types and subtypes within descriptor types +may use distinct \fIioctl\fP requests. For example, +operations on terminals control flushing of input and output +queues and setting of terminal parameters; operations on +disks cause formatting operations to occur; operations on tapes +control tape positioning. +.PP +The names for basic control operations are defined in \fI\fP. +.NH 3 +Non-blocking and asynchronous operations +.PP +A process that wishes to do non-blocking operations on one of +its descriptors sets the descriptor in non-blocking mode as +described in section 1.5.4. Thereafter the \fIread\fP call will +return a specific EWOULDBLOCK error indication if there is no data to be +\fIread\fP. The process may +\fIselect\fP the associated descriptor to determine when a read is +possible. +.PP +Output attempted when a descriptor can accept less than is requested +will either accept some of the provided data, returning a shorter than normal +length, or return an error indicating that the operation would block. +More output can be performed as soon as a \fIselect\fP call indicates +the object is writeable. +.PP +Operations other than data input or output +may be performed on a descriptor in a non-blocking fashion. +These operations will return with a characteristic error indicating +that they are in progress +if they cannot complete immediately. The descriptor +may then be \fIselect\fPed for \fIwrite\fP to find out +when the operation has been completed. When \fIselect\fP indicates +the descriptor is writeable, the operation has completed. +Depending on the nature of the descriptor and the operation, +additional activity may be started or the new state may be tested. diff --git a/doc/ps1/06.sysman/2.2.t b/doc/ps1/06.sysman/2.2.t new file mode 100644 index 00000000..f63aacf8 --- /dev/null +++ b/doc/ps1/06.sysman/2.2.t @@ -0,0 +1,443 @@ +.\" Copyright (c) 1983 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)2.2.t 6.3 (Berkeley) 5/12/86 +.\" +.sh "File system +.NH 3 +Overview +.PP +The file system abstraction provides access to a hierarchical +file system structure. +The file system contains directories (each of which may contain +other sub-directories) as well as files and references to other +objects such as devices and inter-process communications sockets. +.PP +Each file is organized as a linear array of bytes. No record +boundaries or system related information is present in +a file. +Files may be read and written in a random-access fashion. +The user may read the data in a directory as though +it were an ordinary file to determine the names of the contained files, +but only the system may write into the directories. +The file system stores only a small amount of ownership, protection and usage +information with a file. +.NH 3 +Naming +.PP +The file system calls take \fIpath name\fP arguments. +These consist of a zero or more component \fIfile names\fP +separated by ``/\^'' characters, where each file name +is up to 255 ASCII characters excluding null and ``/\^''. +.PP +Each process always has two naming contexts: one for the +root directory of the file system and one for the +current working directory. These are used +by the system in the filename translation process. +If a path name begins with a ``/\^'', it is called +a full path name and interpreted relative to the root directory context. +If the path name does not begin with a ``/\^'' it is called +a relative path name and interpreted relative to the current directory +context. +.PP +The system limits +the total length of a path name to 1024 characters. +.PP +The file name ``..'' in each directory refers to +the parent directory of that directory. +The parent directory of the root of the file system is always that directory. +.PP +The calls +.DS +chdir(path); +char *path; + +chroot(path) +char *path; +.DE +change the current working directory and root directory context of a process. +Only the super-user can change the root directory context of a process. +.NH 3 +Creation and removal +.PP +The file system allows directories, files, special devices, +and ``portals'' to be created and removed from the file system. +.NH 4 +Directory creation and removal +.PP +A directory is created with the \fImkdir\fP system call: +.DS +mkdir(path, mode); +char *path; int mode; +.DE +where the mode is defined as for files (see below). +Directories are removed with the \fIrmdir\fP system call: +.DS +rmdir(path); +char *path; +.DE +A directory must be empty if it is to be deleted. +.NH 4 +File creation +.PP +Files are created with the \fIopen\fP system call, +.DS +fd = open(path, oflag, mode); +result int fd; char *path; int oflag, mode; +.DE +The \fIpath\fP parameter specifies the name of the +file to be created. The \fIoflag\fP parameter must +include O_CREAT from below to cause the file to be created. +Bits for \fIoflag\fP are +defined in \fI\fP: +.DS +._d +#define O_RDONLY 000 /* open for reading */ +#define O_WRONLY 001 /* open for writing */ +#define O_RDWR 002 /* open for read & write */ +#define O_NDELAY 004 /* non-blocking open */ +#define O_APPEND 010 /* append on each write */ +#define O_CREAT 01000 /* open with file create */ +#define O_TRUNC 02000 /* open with truncation */ +#define O_EXCL 04000 /* error on create if file exists */ +.DE +.PP +One of O_RDONLY, O_WRONLY and O_RDWR should be specified, +indicating what types of operations are desired to be performed +on the open file. The operations will be checked against the user's +access rights to the file before allowing the \fIopen\fP to succeed. +Specifying O_APPEND causes writes to automatically append to the +file. +The flag O_CREAT causes the file to be created if it does not +exist, owned by the current user +and the group of the containing directory. +The protection for the new file is specified in \fImode\fP. +The file mode is used as a three digit octal number. +Each digit encodes read access as 4, write access as 2 and execute +access as 1, or'ed together. The 0700 bits describe owner +access, the 070 bits describe the access rights for processes in the same +group as the file, and the 07 bits describe the access rights +for other processes. +.PP +If the open specifies to create the file with O_EXCL +and the file already exists, then the \fIopen\fP will fail +without affecting the file in any way. This provides a +simple exclusive access facility. +If the file exists but is a symbolic link, the open will fail +regardless of the existence of the file specified by the link. +.NH 4 +Creating references to devices +.PP +The file system allows entries which reference peripheral devices. +Peripherals are distinguished as \fIblock\fP or \fIcharacter\fP +devices according by their ability to support block-oriented +operations. +Devices are identified by their ``major'' and ``minor'' +device numbers. The major device number determines the kind +of peripheral it is, while the minor device number indicates +one of possibly many peripherals of that kind. +Structured devices have all operations performed internally +in ``block'' quantities while +unstructured devices often have a number of +special \fIioctl\fP operations, and may have input and output +performed in varying units. +The \fImknod\fP call creates special entries: +.DS +mknod(path, mode, dev); +char *path; int mode, dev; +.DE +where \fImode\fP is formed from the object type +and access permissions. The parameter \fIdev\fP is a configuration +dependent parameter used to identify specific character or +block I/O devices. +.NH 4 +Portal creation\(dg +.PP +.FS +\(dg The \fIportal\fP call is not implemented in 4.3BSD. +.FE +The call +.DS +fd = portal(name, server, param, dtype, protocol, domain, socktype) +result int fd; char *name, *server, *param; int dtype, protocol; +int domain, socktype; +.DE +places a \fIname\fP in the file system name space that causes connection to a +server process when the name is used. +The portal call returns an active portal in \fIfd\fP as though an +access had occurred to activate an inactive portal, as now described. +.PP +When an inactive portal is accessed, the system sets up a socket +of the specified \fIsocktype\fP in the specified communications +\fIdomain\fP (see section 2.3), and creates the \fIserver\fP process, +giving it the specified \fIparam\fP as argument to help it identify +the portal, and also giving it the newly created socket as descriptor +number 0. The accessor of the portal will create a socket in the same +\fIdomain\fP and \fIconnect\fP to the server. The user will then +\fIwrap\fP the socket in the specified \fIprotocol\fP to create an object of +the required descriptor type \fIdtype\fP and proceed with the +operation which was in progress before the portal was encountered. +.PP +While the server process holds the socket (which it received as \fIfd\fP +from the \fIportal\fP call on descriptor 0 at activation) further references +will result in connections being made to the same socket. +.NH 4 +File, device, and portal removal +.PP +A reference to a file, special device or portal may be removed with the +\fIunlink\fP call, +.DS +unlink(path); +char *path; +.DE +The caller must have write access to the directory in which +the file is located for this call to be successful. +.NH 3 +Reading and modifying file attributes +.PP +Detailed information about the attributes of a file +may be obtained with the calls: +.DS +#include + +stat(path, stb); +char *path; result struct stat *stb; + +fstat(fd, stb); +int fd; result struct stat *stb; +.DE +The \fIstat\fP structure includes the file +type, protection, ownership, access times, +size, and a count of hard links. +If the file is a symbolic link, then the status of the link +itself (rather than the file the link references) +may be found using the \fIlstat\fP call: +.DS +lstat(path, stb); +char *path; result struct stat *stb; +.DE +.PP +Newly created files are assigned the user id of the +process that created it and the group id of the directory +in which it was created. The ownership of a file may +be changed by either of the calls +.DS +chown(path, owner, group); +char *path; int owner, group; + +fchown(fd, owner, group); +int fd, owner, group; +.DE +.PP +In addition to ownership, each file has three levels of access +protection associated with it. These levels are owner relative, +group relative, and global (all users and groups). Each level +of access has separate indicators for read permission, write +permission, and execute permission. +The protection bits associated with a file may be set by either +of the calls: +.DS +chmod(path, mode); +char *path; int mode; + +fchmod(fd, mode); +int fd, mode; +.DE +where \fImode\fP is a value indicating the new protection +of the file, as listed in section 2.2.3.2. +.PP +Finally, the access and modify times on a file may be set by the call: +.DS +utimes(path, tvp) +char *path; struct timeval *tvp[2]; +.DE +This is particularly useful when moving files between media, to +preserve relationships between the times the file was modified. +.NH 3 +Links and renaming +.PP +Links allow multiple names for a file +to exist. Links exist independently of the file linked to. +.PP +Two types of links exist, \fIhard\fP links and \fIsymbolic\fP +links. A hard link is a reference counting mechanism that +allows a file to have multiple names within the same file +system. Symbolic links cause string substitution +during the pathname interpretation process. +.PP +Hard links and symbolic links have different +properties. A hard link insures the target +file will always be accessible, even after its original +directory entry is removed; no such guarantee exists for a symbolic link. +Symbolic links can span file systems boundaries. +.PP +The following calls create a new link, named \fIpath2\fP, +to \fIpath1\fP: +.DS +link(path1, path2); +char *path1, *path2; + +symlink(path1, path2); +char *path1, *path2; +.DE +The \fIunlink\fP primitive may be used to remove +either type of link. +.PP +If a file is a symbolic link, the ``value'' of the +link may be read with the \fIreadlink\fP call, +.DS +len = readlink(path, buf, bufsize); +result int len; result char *path, *buf; int bufsize; +.DE +This call returns, in \fIbuf\fP, the null-terminated string +substituted into pathnames passing through \fIpath\fP\|. +.PP +Atomic renaming of file system resident objects is possible +with the \fIrename\fP call: +.DS +rename(oldname, newname); +char *oldname, *newname; +.DE +where both \fIoldname\fP and \fInewname\fP must be +in the same file system. +If \fInewname\fP exists and is a directory, then it must be empty. +.NH 3 +Extension and truncation +.PP +Files are created with zero length and may be extended +simply by writing or appending to them. While a file is +open the system maintains a pointer into the file +indicating the current location in the file associated with +the descriptor. This pointer may be moved about in the +file in a random access fashion. +To set the current offset into a file, the \fIlseek\fP +call may be used, +.DS +oldoffset = lseek(fd, offset, type); +result off_t oldoffset; int fd; off_t offset; int type; +.DE +where \fItype\fP is given in \fI\fP as one of: +.DS +._d +#define L_SET 0 /* set absolute file offset */ +#define L_INCR 1 /* set file offset relative to current position */ +#define L_XTND 2 /* set offset relative to end-of-file */ +.DE +The call ``lseek(fd, 0, L_INCR)'' +returns the current offset into the file. +.PP +Files may have ``holes'' in them. Holes are void areas in the +linear extent of the file where data has never been +written. These may be created by seeking to +a location in a file past the current end-of-file and writing. +Holes are treated by the system as zero valued bytes. +.PP +A file may be truncated with either of the calls: +.DS +truncate(path, length); +char *path; int length; + +ftruncate(fd, length); +int fd, length; +.DE +reducing the size of the specified file to \fIlength\fP bytes. +.NH 3 +Checking accessibility +.PP +A process running with +different real and effective user ids +may interrogate the accessibility of a file to the +real user by using +the \fIaccess\fP call: +.DS +accessible = access(path, how); +result int accessible; char *path; int how; +.DE +Here \fIhow\fP is constructed by or'ing the following bits, defined +in \fI\fP: +.DS +._d +#define F_OK 0 /* file exists */ +#define X_OK 1 /* file is executable */ +#define W_OK 2 /* file is writable */ +#define R_OK 4 /* file is readable */ +.DE +The presence or absence of advisory locks does not affect the +result of \fIaccess\fP\|. +.NH 3 +Locking +.PP +The file system provides basic facilities that allow cooperating processes +to synchronize their access to shared files. A process may +place an advisory \fIread\fP or \fIwrite\fP lock on a file, +so that other cooperating processes may avoid interfering +with the process' access. This simple mechanism +provides locking with file granularity. More granular +locking can be built using the IPC facilities to provide a lock +manager. +The system does not force processes to obey the locks; +they are of an advisory nature only. +.PP +Locking is performed after an \fIopen\fP call by applying the +\fIflock\fP primitive, +.DS +flock(fd, how); +int fd, how; +.DE +where the \fIhow\fP parameter is formed from bits defined in \fI\fP: +.DS +._d +#define LOCK_SH 1 /* shared lock */ +#define LOCK_EX 2 /* exclusive lock */ +#define LOCK_NB 4 /* don't block when locking */ +#define LOCK_UN 8 /* unlock */ +.DE +Successive lock calls may be used to increase or +decrease the level of locking. If an object is currently +locked by another process when a \fIflock\fP call is made, +the caller will be blocked until the current lock owner +releases the lock; this may be avoided by including LOCK_NB +in the \fIhow\fP parameter. +Specifying LOCK_UN removes all locks associated with the descriptor. +Advisory locks held by a process are automatically deleted when +the process terminates. +.NH 3 +Disk quotas +.PP +As an optional facility, each file system may be requested to +impose limits on a user's disk usage. +Two quantities are limited: the total amount of disk space which +a user may allocate in a file system and the total number of files +a user may create in a file system. Quotas are expressed as +\fIhard\fP limits and \fIsoft\fP limits. A hard limit is +always imposed; if a user would exceed a hard limit, the operation +which caused the resource request will fail. A soft limit results +in the user receiving a warning message, but with allocation succeeding. +Facilities are provided to turn soft limits into hard limits if a +user has exceeded a soft limit for an unreasonable period of time. +.PP +To enable disk quotas on a file system the \fIsetquota\fP call +is used: +.DS +setquota(special, file) +char *special, *file; +.DE +where \fIspecial\fP refers to a structured device file where +a mounted file system exists, and +\fIfile\fP refers to a disk quota file (residing on the file +system associated with \fIspecial\fP) from which user quotas +should be obtained. The format of the disk quota file is +implementation dependent. +.PP +To manipulate disk quotas the \fIquota\fP call is provided: +.DS +#include + +quota(cmd, uid, arg, addr) +int cmd, uid, arg; caddr_t addr; +.DE +The indicated \fIcmd\fP is applied to the user ID \fIuid\fP. +The parameters \fIarg\fP and \fIaddr\fP are command specific. +The file \fI\fP contains definitions pertinent to the +use of this call. diff --git a/doc/ps1/06.sysman/2.3.t b/doc/ps1/06.sysman/2.3.t new file mode 100644 index 00000000..a1a57449 --- /dev/null +++ b/doc/ps1/06.sysman/2.3.t @@ -0,0 +1,385 @@ +.\" Copyright (c) 1983 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)2.3.t 6.3 (Berkeley) 5/12/86 +.\" +.sh "Interprocess communications +.NH 3 +Interprocess communication primitives +.NH 4 +Communication domains +.PP +The system provides access to an extensible set of +communication \fIdomains\fP. A communication domain +is identified by a manifest constant defined in the +file \fI\fP. +Important standard domains supported by the system are the ``unix'' +domain, AF_UNIX, for communication within the system, the ``Internet'' +domain for communication in the DARPA Internet, AF_INET, +and the ``NS'' domain, AF_NS, for communication +using the Xerox Network Systems protocols. +Other domains can be added to the system. +.NH 4 +Socket types and protocols +.PP +Within a domain, communication takes place between communication endpoints +known as \fIsockets\fP. Each socket has the potential to exchange +information with other sockets of an appropriate type within the domain. +.PP +Each socket has an associated +abstract type, which describes the semantics of communication using that +socket. Properties such as reliability, ordering, and prevention +of duplication of messages are determined by the type. +The basic set of socket types is defined in \fI\fP: +.DS +/* Standard socket types */ +._d +#define SOCK_DGRAM 1 /* datagram */ +#define SOCK_STREAM 2 /* virtual circuit */ +#define SOCK_RAW 3 /* raw socket */ +#define SOCK_RDM 4 /* reliably-delivered message */ +#define SOCK_SEQPACKET 5 /* sequenced packets */ +.DE +The SOCK_DGRAM type models the semantics of datagrams in network communication: +messages may be lost or duplicated and may arrive out-of-order. +A datagram socket may send messages to and receive messages from multiple +peers. +The SOCK_RDM type models the semantics of reliable datagrams: messages +arrive unduplicated and in-order, the sender is notified if +messages are lost. +The \fIsend\fP and \fIreceive\fP operations (described below) +generate reliable/unreliable datagrams. +The SOCK_STREAM type models connection-based virtual circuits: two-way +byte streams with no record boundaries. +Connection setup is required before data communication may begin. +The SOCK_SEQPACKET type models a connection-based, +full-duplex, reliable, sequenced packet exchange; +the sender is notified if messages are lost, and messages are never +duplicated or presented out-of-order. +Users of the last two abstractions may use the facilities for +out-of-band transmission to send out-of-band data. +.PP +SOCK_RAW is used for unprocessed access to internal network layers +and interfaces; it has no specific semantics. +.PP +Other socket types can be defined. +.PP +Each socket may have a specific \fIprotocol\fP associated with it. +This protocol is used within the domain to provide the semantics +required by the socket type. +Not all socket types are supported by each domain; +support depends on the existence and the implementation +of a suitable protocol within the domain. +For example, within the ``Internet'' domain, the SOCK_DGRAM type may be +implemented by the UDP user datagram protocol, and the SOCK_STREAM +type may be implemented by the TCP transmission control protocol, while +no standard protocols to provide SOCK_RDM or SOCK_SEQPACKET sockets exist. +.NH 4 +Socket creation, naming and service establishment +.PP +Sockets may be \fIconnected\fP or \fIunconnected\fP. An unconnected +socket descriptor is obtained by the \fIsocket\fP call: +.DS +s = socket(domain, type, protocol); +result int s; int domain, type, protocol; +.DE +The socket domain and type are as described above, +and are specified using the definitions from \fI\fP. +The protocol may be given as 0, meaning any suitable protocol. +One of several possible protocols may be selected using identifiers +obtained from a library routine, \fIgetprotobyname\fP. +.PP +An unconnected socket descriptor of a connection-oriented type +may yield a connected socket descriptor +in one of two ways: either by actively connecting to another socket, +or by becoming associated with a name in the communications domain and +\fIaccepting\fP a connection from another socket. +Datagram sockets need not establish connections before use. +.PP +To accept connections or to receive datagrams, +a socket must first have a binding +to a name (or address) within the communications domain. +Such a binding may be established by a \fIbind\fP call: +.DS +bind(s, name, namelen); +int s; struct sockaddr *name; int namelen; +.DE +Datagram sockets may have default bindings established when first +sending data if not explicitly bound earlier. +In either case, +a socket's bound name may be retrieved with a \fIgetsockname\fP call: +.DS +getsockname(s, name, namelen); +int s; result struct sockaddr *name; result int *namelen; +.DE +while the peer's name can be retrieved with \fIgetpeername\fP: +.DS +getpeername(s, name, namelen); +int s; result struct sockaddr *name; result int *namelen; +.DE +Domains may support sockets with several names. +.NH 4 +Accepting connections +.PP +Once a binding is made to a connection-oriented socket, +it is possible to \fIlisten\fP for connections: +.DS +listen(s, backlog); +int s, backlog; +.DE +The \fIbacklog\fP specifies the maximum count of connections +that can be simultaneously queued awaiting acceptance. +.PP +An \fIaccept\fP call: +.DS +t = accept(s, name, anamelen); +result int t; int s; result struct sockaddr *name; result int *anamelen; +.DE +returns a descriptor for a new, connected, socket +from the queue of pending connections on \fIs\fP. +If no new connections are queued for acceptance, +the call will wait for a connection unless non-blocking I/O has been enabled. +.NH 4 +Making connections +.PP +An active connection to a named socket is made by the \fIconnect\fP call: +.DS +connect(s, name, namelen); +int s; struct sockaddr *name; int namelen; +.DE +Although datagram sockets do not establish connections, +the \fIconnect\fP call may be used with such sockets +to create an \fIassociation\fP with the foreign address. +The address is recorded for use in future \fIsend\fP calls, +which then need not supply destination addresses. +Datagrams will be received only from that peer, +and asynchronous error reports may be received. +.PP +It is also possible to create connected pairs of sockets without +using the domain's name space to rendezvous; this is done with the +\fIsocketpair\fP call\(dg: +.FS +\(dg 4.3BSD supports \fIsocketpair\fP creation only in the ``unix'' +communication domain. +.FE +.DS +socketpair(domain, type, protocol, sv); +int domain, type, protocol; result int sv[2]; +.DE +Here the returned \fIsv\fP descriptors correspond to those obtained with +\fIaccept\fP and \fIconnect\fP. +.PP +The call +.DS +pipe(pv) +result int pv[2]; +.DE +creates a pair of SOCK_STREAM sockets in the UNIX domain, +with pv[0] only writable and pv[1] only readable. +.NH 4 +Sending and receiving data +.PP +Messages may be sent from a socket by: +.DS +cc = sendto(s, buf, len, flags, to, tolen); +result int cc; int s; caddr_t buf; int len, flags; caddr_t to; int tolen; +.DE +if the socket is not connected or: +.DS +cc = send(s, buf, len, flags); +result int cc; int s; caddr_t buf; int len, flags; +.DE +if the socket is connected. +The corresponding receive primitives are: +.DS +msglen = recvfrom(s, buf, len, flags, from, fromlenaddr); +result int msglen; int s; result caddr_t buf; int len, flags; +result caddr_t from; result int *fromlenaddr; +.DE +and +.DS +msglen = recv(s, buf, len, flags); +result int msglen; int s; result caddr_t buf; int len, flags; +.DE +.PP +In the unconnected case, +the parameters \fIto\fP and \fItolen\fP +specify the destination or source of the message, while +the \fIfrom\fP parameter stores the source of the message, +and \fI*fromlenaddr\fP initially gives the size of the \fIfrom\fP +buffer and is updated to reflect the true length of the \fIfrom\fP +address. +.PP +All calls cause the message to be received in or sent from +the message buffer of length \fIlen\fP bytes, starting at address \fIbuf\fP. +The \fIflags\fP specify +peeking at a message without reading it or sending or receiving +high-priority out-of-band messages, as follows: +.DS +._d +#define MSG_PEEK 0x1 /* peek at incoming message */ +#define MSG_OOB 0x2 /* process out-of-band data */ +.DE +.NH 4 +Scatter/gather and exchanging access rights +.PP +It is possible scatter and gather data and to exchange access rights +with messages. When either of these operations is involved, +the number of parameters to the call becomes large. +Thus the system defines a message header structure, in \fI\fP, +which can be +used to conveniently contain the parameters to the calls: +.DS +.if t .ta .5i 1.25i 2i 2.7i +.if n ._f +struct msghdr { + caddr_t msg_name; /* optional address */ + int msg_namelen; /* size of address */ + struct iov *msg_iov; /* scatter/gather array */ + int msg_iovlen; /* # elements in msg_iov */ + caddr_t msg_accrights; /* access rights sent/received */ + int msg_accrightslen; /* size of msg_accrights */ +}; +.DE +Here \fImsg_name\fP and \fImsg_namelen\fP specify the source or destination +address if the socket is unconnected; \fImsg_name\fP may be given as +a null pointer if no names are desired or required. +The \fImsg_iov\fP and \fImsg_iovlen\fP describe the scatter/gather +locations, as described in section 2.1.3. +Access rights to be sent along with the message are specified +in \fImsg_accrights\fP, which has length \fImsg_accrightslen\fP. +In the ``unix'' domain these are an array of integer descriptors, +taken from the sending process and duplicated in the receiver. +.PP +This structure is used in the operations \fIsendmsg\fP and \fIrecvmsg\fP: +.DS +sendmsg(s, msg, flags); +int s; struct msghdr *msg; int flags; + +msglen = recvmsg(s, msg, flags); +result int msglen; int s; result struct msghdr *msg; int flags; +.DE +.NH 4 +Using read and write with sockets +.PP +The normal UNIX \fIread\fP and \fIwrite\fP calls may be +applied to connected sockets and translated into \fIsend\fP and \fIreceive\fP +calls from or to a single area of memory and discarding any rights +received. A process may operate on a virtual circuit socket, a terminal +or a file with blocking or non-blocking input/output +operations without distinguishing the descriptor type. +.NH 4 +Shutting down halves of full-duplex connections +.PP +A process that has a full-duplex socket such as a virtual circuit +and no longer wishes to read from or write to this socket can +give the call: +.DS +shutdown(s, direction); +int s, direction; +.DE +where \fIdirection\fP is 0 to not read further, 1 to not +write further, or 2 to completely shut the connection down. +If the underlying protocol supports unidirectional or bidirectional shutdown, +this indication will be passed to the peer. +For example, a shutdown for writing might produce an end-of-file +condition at the remote end. +.NH 4 +Socket and protocol options +.PP +Sockets, and their underlying communication protocols, may +support \fIoptions\fP. These options may be used to manipulate +implementation- or protocol-specific facilities. +The \fIgetsockopt\fP +and \fIsetsockopt\fP calls are used to control options: +.DS +getsockopt(s, level, optname, optval, optlen) +int s, level, optname; result caddr_t optval; result int *optlen; + +setsockopt(s, level, optname, optval, optlen) +int s, level, optname; caddr_t optval; int optlen; +.DE +The option \fIoptname\fP is interpreted at the indicated +protocol \fIlevel\fP for socket \fIs\fP. If a value is specified +with \fIoptval\fP and \fIoptlen\fP, it is interpreted by +the software operating at the specified \fIlevel\fP. The \fIlevel\fP +SOL_SOCKET is reserved to indicate options maintained +by the socket facilities. Other \fIlevel\fP values indicate +a particular protocol which is to act on the option request; +these values are normally interpreted as a ``protocol number''. +.NH 3 +UNIX domain +.PP +This section describes briefly the properties of the UNIX communications +domain. +.NH 4 +Types of sockets +.PP +In the UNIX domain, +the SOCK_STREAM abstraction provides pipe-like +facilities, while SOCK_DGRAM provides (usually) +reliable message-style communications. +.NH 4 +Naming +.PP +Socket names are strings and may appear in the UNIX file +system name space through portals\(dg. +.FS +\(dg The 4.3BSD implementation of the UNIX domain embeds +bound sockets in the UNIX file system name space; +this may change in future releases. +.FE +.NH 4 +Access rights transmission +.PP +The ability to pass UNIX descriptors with messages in this domain +allows migration of service within the system and allows +user processes to be used in building system facilities. +.NH 3 +INTERNET domain +.PP +This section describes briefly how the Internet domain is +mapped to the model described in this section. More +information will be found in the document describing the +network implementation in 4.3BSD. +.NH 4 +Socket types and protocols +.PP +SOCK_STREAM is supported by the Internet TCP protocol; +SOCK_DGRAM by the UDP protocol. +Each is layered atop the transport-level Internet Protocol (IP). +The Internet Control Message Protocol is implemented atop/beside IP +and is accessible via a raw socket. +The SOCK_SEQPACKET +has no direct Internet family analogue; a protocol +based on one from the XEROX NS family and layered on +top of IP could be implemented to fill this gap. +.NH 4 +Socket naming +.PP +Sockets in the Internet domain have names composed of the 32 bit +Internet address, and a 16 bit port number. +Options may be used to +provide IP source routing or security options. +The 32-bit address is composed of network and host parts; +the network part is variable in size and is frequency encoded. +The host part may optionally be interpreted as a subnet field +plus the host on subnet; this is is enabled by setting a network address +mask at boot time. +.NH 4 +Access rights transmission +.PP +No access rights transmission facilities are provided in the Internet domain. +.NH 4 +Raw access +.PP +The Internet domain allows the super-user access to the raw facilities +of IP. +These interfaces are modeled as SOCK_RAW sockets. +Each raw socket is associated with one IP protocol number, +and receives all traffic received for that protocol. +This allows administrative and debugging +functions to occur, +and enables user-level implementations of special-purpose protocols +such as inter-gateway routing protocols. diff --git a/doc/ps1/06.sysman/2.4.t b/doc/ps1/06.sysman/2.4.t new file mode 100644 index 00000000..6a129bb0 --- /dev/null +++ b/doc/ps1/06.sysman/2.4.t @@ -0,0 +1,147 @@ +.\" Copyright (c) 1983 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)2.4.t 6.2 (Berkeley) 5/12/86 +.\" +.sh "Terminals and Devices +.NH 3 +Terminals +.PP +Terminals support \fIread\fP and \fIwrite\fP I/O operations, +as well as a collection of terminal specific \fIioctl\fP operations, +to control input character interpretation and editing, +and output format and delays. +.NH 4 +Terminal input +.PP +Terminals are handled according to the underlying communication +characteristics such as baud rate and required delays, +and a set of software parameters. +.NH 5 +Input modes +.PP +A terminal is in one of three possible modes: \fIraw\fP, \fIcbreak\fP, +or \fIcooked\fP. +In raw mode all input is passed through to the +reading process immediately and without interpretation. +In cbreak mode, the handler interprets input only by looking +for characters that cause interrupts or output flow control; +all other characters are made available as in raw mode. +In cooked mode, input +is processed to provide standard line-oriented local editing functions, +and input is presented on a line-by-line basis. +.NH 5 +Interrupt characters +.PP +Interrupt characters are interpreted by the terminal handler only in +cbreak and cooked modes, and +cause a software interrupt to be sent to all processes in the process +group associated with the terminal. Interrupt characters exist +to send SIGINT +and SIGQUIT signals, +and to stop a process group +with the SIGTSTP signal either immediately, or when +all input up to the stop character has been read. +.NH 5 +Line editing +.PP +When the terminal is in cooked mode, editing of an input line +is performed. Editing facilities allow deletion of the previous +character or word, or deletion of the current input line. +In addition, a special character may be used to reprint the current +input line after some number of editing operations have been applied. +.PP +Certain other characters are interpreted specially when a process is +in cooked mode. The \fIend of line\fP character determines +the end of an input record. The \fIend of file\fP character simulates +an end of file occurrence on terminal input. Flow control is provided +by \fIstop output\fP and \fIstart output\fP control characters. Output +may be flushed with the \fIflush output\fP character; and a \fIliteral +character\fP may be used to force literal input of the immediately +following character in the input line. +.PP +Input characters may be echoed to the terminal as they are received. +Non-graphic ASCII input characters may be echoed as a two-character +printable representation, ``^character.'' +.NH 4 +Terminal output +.PP +On output, the terminal handler provides some simple formatting services. +These include converting the carriage return character to the +two character return-linefeed sequence, +inserting delays after certain standard control characters, +expanding tabs, and providing translations +for upper-case only terminals. +.NH 4 +Terminal control operations +.PP +When a terminal is first opened it is initialized to a standard +state and configured with a set of standard control, editing, +and interrupt characters. A process +may alter this configuration with certain +control operations, specifying parameters in a standard structure:\(dg +.FS +\(dg The control interface described here is an internal interface only +in 4.3BSD. Future releases will probably use a modified interface +based on currently-proposed standards. +.FE +.DS +._f +struct ttymode { + short tt_ispeed; /* input speed */ + int tt_iflags; /* input flags */ + short tt_ospeed; /* output speed */ + int tt_oflags; /* output flags */ +}; +.DE +and ``special characters'' are specified with the +\fIttychars\fP structure, +.DS +._f +struct ttychars { + char tc_erasec; /* erase char */ + char tc_killc; /* erase line */ + char tc_intrc; /* interrupt */ + char tc_quitc; /* quit */ + char tc_startc; /* start output */ + char tc_stopc; /* stop output */ + char tc_eofc; /* end-of-file */ + char tc_brkc; /* input delimiter (like nl) */ + char tc_suspc; /* stop process signal */ + char tc_dsuspc; /* delayed stop process signal */ + char tc_rprntc; /* reprint line */ + char tc_flushc; /* flush output (toggles) */ + char tc_werasc; /* word erase */ + char tc_lnextc; /* literal next character */ +}; +.DE +.NH 4 +Terminal hardware support +.PP +The terminal handler allows a user to access basic +hardware related functions; e.g. line speed, +modem control, parity, and stop bits. A special signal, +SIGHUP, is automatically +sent to processes in a terminal's process +group when a carrier transition is detected. This is +normally associated with a user hanging up on a modem +controlled terminal line. +.NH 3 +Structured devices +.PP +Structures devices are typified by disks and magnetic +tapes, but may represent any random-access device. +The system performs read-modify-write type buffering actions on block +devices to allow them to be read and written in a totally random +access fashion like ordinary files. +File systems are normally created in block devices. +.NH 3 +Unstructured devices +.PP +Unstructured devices are those devices which +do not support block structure. Familiar unstructured devices +are raw communications lines (with +no terminal handler), raster plotters, magnetic tape and disks unfettered +by buffering and permitting large block input/output and positioning +and formatting commands. diff --git a/doc/ps1/06.sysman/2.5.t b/doc/ps1/06.sysman/2.5.t new file mode 100644 index 00000000..0ed40cd8 --- /dev/null +++ b/doc/ps1/06.sysman/2.5.t @@ -0,0 +1,12 @@ +.\" Copyright (c) 1983 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)2.5.t 6.2 (Berkeley) 5/12/86 +.\" +.sh "Process and kernel descriptors +.PP +The status of the facilities in this section is still under discussion. +The \fIptrace\fP facility of earlier UNIX systems +remains in 4.3BSD. +Planned enhancements would allow a descriptor-based process control facility. diff --git a/doc/ps1/06.sysman/Makefile b/doc/ps1/06.sysman/Makefile new file mode 100644 index 00000000..e93482bb --- /dev/null +++ b/doc/ps1/06.sysman/Makefile @@ -0,0 +1,27 @@ +# +# Copyright (c) 1986 Regents of the University of California. +# All rights reserved. The Berkeley software License Agreement +# specifies the terms and conditions for redistribution. +# +# @(#)Makefile 6.1 (Berkeley) 5/8/86 +# +SRCS= 0.t 1.0.t 1.1.t 1.2.t 1.3.t 1.4.t 1.5.t 1.6.t 1.7.t \ + 2.0.t 2.1.t 2.2.t 2.3.t 2.4.t 2.5.t a.t +MACROS= -msU +PRINTER=Pdp +TBL= dtbl -${PRINTER} +TROFF= ditroff -${PRINTER} + +paper: paper.${PRINTER} + lpr -${PRINTER} -n paper.${PRINTER} + +paper.${PRINTER}: ${SRCS} + ${TBL} ${SRCS} | ${TROFF} ${MACROS} -t > paper.${PRINTER} + +clean: + rm -f paper.[PT]* *.spell errs Errs make.out + +spell: ${SRCS} + @for i in ${SRCS}; do \ + echo $$i; spell $$i | sort | comm -23 - spell.ok > $$i.spell; \ + done diff --git a/doc/ps1/06.sysman/a.t b/doc/ps1/06.sysman/a.t new file mode 100644 index 00000000..5e1d3288 --- /dev/null +++ b/doc/ps1/06.sysman/a.t @@ -0,0 +1,215 @@ +.\" Copyright (c) 1983 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)a.t 6.5 (Berkeley) 5/12/86 +.\" +.ds RH Summary of facilities +.bp +.SH +\s+2I. Summary of facilities\s0 +.PP +.de h +.br +.if n .ne 8 +\fB\\$1 \\$2\fP +.br +.. +.nr H1 0 +.NH +Kernel primitives +.LP +.h 1.1. "Process naming and protection +.in +5 +.TS +lw(1.6i) aw(3i). +sethostid set UNIX host id +gethostid get UNIX host id +sethostname set UNIX host name +gethostname get UNIX host name +getpid get process id +fork create new process +exit terminate a process +execve execute a different process +getuid get user id +geteuid get effective user id +setreuid set real and effective user id's +getgid get accounting group id +getegid get effective accounting group id +getgroups get access group set +setregid set real and effective group id's +setgroups set access group set +getpgrp get process group +setpgrp set process group +.TE +.in -5 +.h 1.2 "Memory management +.in +5 +.TS +lw(1.6i) aw(3i). + memory management definitions +sbrk change data section size +sstk\(dg change stack section size +.FS +\(dg Not supported in 4.3BSD. +.FE +getpagesize get memory page size +mmap\(dg map pages of memory +msync\(dg flush modified mapped pages to filesystem +munmap\(dg unmap memory +mprotect\(dg change protection of pages +madvise\(dg give memory management advice +mincore\(dg determine core residency of pages +msleep\(dg sleep on a lock +mwakeup\(dg wakeup process sleeping on a lock +.TE +.in -5 +.h 1.3 "Signals +.in +5 +.TS +lw(1.6i) aw(3i). + signal definitions +sigvec set handler for signal +kill send signal to process +killpgrp send signal to process group +sigblock block set of signals +sigsetmask restore set of blocked signals +sigpause wait for signals +sigstack set software stack for signals +.TE +.in -5 +.h 1.4 "Timing and statistics +.in +5 +.TS +lw(1.6i) aw(3i). + time-related definitions +gettimeofday get current time and timezone +settimeofday set current time and timezone +getitimer read an interval timer +setitimer get and set an interval timer +profil profile process +.TE +.in -5 +.h 1.5 "Descriptors +.in +5 +.TS +lw(1.6i) aw(3i). +getdtablesize descriptor reference table size +dup duplicate descriptor +dup2 duplicate to specified index +close close descriptor +select multiplex input/output +fcntl control descriptor options +wrap\(dg wrap descriptor with protocol +.FS +\(dg Not supported in 4.3BSD. +.FE +.TE +.in -5 +.h 1.6 "Resource controls +.in +5 +.TS +lw(1.6i) aw(3i). + resource-related definitions +getpriority get process priority +setpriority set process priority +getrusage get resource usage +getrlimit get resource limitations +setrlimit set resource limitations +.TE +.in -5 +.h 1.7 "System operation support +.in +5 +.TS +lw(1.6i) aw(3i). +mount mount a device file system +swapon add a swap device +umount umount a file system +sync flush system caches +reboot reboot a machine +acct specify accounting file +.TE +.in -5 +.NH +System facilities +.LP +.h 2.1 "Generic operations +.in +5 +.TS +lw(1.6i) aw(3i). +read read data +write write data + scatter-gather related definitions +readv scattered data input +writev gathered data output + standard control operations +ioctl device control operation +.TE +.in -5 +.h 2.2 "File system +.PP +Operations marked with a * exist in two forms: as shown, +operating on a file name, and operating on a file descriptor, +when the name is preceded with a ``f''. +.in +5 +.TS +lw(1.6i) aw(3i). + file system definitions +chdir change directory +chroot change root directory +mkdir make a directory +rmdir remove a directory +open open a new or existing file +mknod make a special file +portal\(dg make a portal entry +unlink remove a link +stat* return status for a file +lstat returned status of link +chown* change owner +chmod* change mode +utimes change access/modify times +link make a hard link +symlink make a symbolic link +readlink read contents of symbolic link +rename change name of file +lseek reposition within file +truncate* truncate file +access determine accessibility +flock lock a file +.TE +.in -5 +.h 2.3 "Communications +.in +5 +.TS +lw(1.6i) aw(3i). + standard definitions +socket create socket +bind bind socket to name +getsockname get socket name +listen allow queuing of connections +accept accept a connection +connect connect to peer socket +socketpair create pair of connected sockets +sendto send data to named socket +send send data to connected socket +recvfrom receive data on unconnected socket +recv receive data on connected socket +sendmsg send gathered data and/or rights +recvmsg receive scattered data and/or rights +shutdown partially close full-duplex connection +getsockopt get socket option +setsockopt set socket option +.TE +.in -5 +.h 2.4 "Terminals, block and character devices +.in +5 +.TS +lw(1.6i) aw(3i). +.TE +.in -5 +.h 2.5 "Processes and kernel hooks +.in +5 +.TS +lw(1.6i) aw(3i). +.TE +.in -5 diff --git a/doc/ps1/06.sysman/spell.ok b/doc/ps1/06.sysman/spell.ok new file mode 100644 index 00000000..b0cbd9ce --- /dev/null +++ b/doc/ps1/06.sysman/spell.ok @@ -0,0 +1,332 @@ +AF +ANON +AUTOBOOT +Behav +CLR +DEF +DGRAM +DONTNEED +Datagram +Datagrams +EINPROGRESS +EWOULDBLOCK +EXCL +FD +FSIZE +Fabry +GETFL +GETOWN +HASSEMAPHORE +HASSEMPHORE +IGN +INCR +INET +IP +IPC +ISSET +ITIMER +Karels +Leffler +MADV +MAXHOSTNAMELEN +MSG +Manual''PS1:6 +McKusick +Mclear +Mset +NB +NDELAY +NGROUPS +NLIMITS +NOEXTEND +NS +OOB +PGRP +PRIO +PROT +PS1:6 +RB +RDM +RDONLY +RDWR +RH +RLIM +RLIMIT +RSS +RUSAGE +SEQPACKET +SETFL +SETOWN +SIG +SIGALRM +SIGBUS +SIGCHLD +SIGCONT +SIGEMT +SIGFPE +SIGHUP +SIGILL +SIGINT +SIGIO +SIGIOT +SIGKILL +SIGPROF +SIGQUIT +SIGSEGV +SIGSTOP +SIGTERM +SIGTRAP +SIGTSTP +SIGTTIN +SIGTTOU +SIGURG +SIGUSR1 +SIGUSR2 +SIGVTALRM +SIGXCPU +SIGXFSZ +Sem +Sv +TCP +TRUNC +UDP +VAX +WILLNEED +WRONLY +XTND +accessor +accrights +accrightslen +addr +anamelen +arg +argv +arusage +astatus +behav +blkdev +brkc +bu +buf +buflen +bufsize +caddr +cbreak +chroot +cmd +datagram +datagrams +dev +dopt +dprop +ds +dst +dsttime +dsuspc +dtype +dup2 +egid +envp +eofc +erasec +errno +euid +fchmod +fchown +fcntl +fd +fdset +file.h +filename +filesystem +flushc +fromlenaddr +fs +fstat +ftruncate +getdtablesize +getegid +geteuid +getgid +getgroups +gethostid +gethostname +getitimer +getpagesize +getpeername +getpriority +getprotobyname +getrlimit +getrusage +getsockname +getsockopt +gettimeofday +gid +gidset +gidsetsize +hostid +idrss +iflags +inblock +incr +intrc +ioctl.h +iov +iovec +iovlen +ispeed +isrss +itimerval +ixrss +kbytes +killc +killpgrp +len +linefeed +lnextc +lstat +maddr +madvise +majflt +maxrss +mclear +mincore +minflt +minuteswest +mman.h +mmap +mprotect +mremap +mset +msg +msghdr +msglen +msgrcv +msgsnd +msleep +msync +munmap +mwakeup +namelen +nbytes +nd +nds +newname +ngroups +nivcsw +nl +nsignals +nswap +nvcsw +oflag +oflags +oldmask +oldname +oldoffset +onstack +optlen +optname +optval +or'ed +or'ing +ospeed +oss +osv +oublock +ovalue +pagesize +param +param.h +path1 +path2 +pathname +pathnames +pgrp +pid +pos +prio +prot +proto +pv +quitc +quota.h +readlink +readv +reboot.h +recv +recvfrom +recvmsg +resource.h +rgid +rlim +rlimit +rlp +ronly +rprntc +ru +ruid +rusage +sbrk +scp +sem +sendmsg +sendto +setgroups +sethostid +sethostname +setitimer +setpriority +setquota +setregid +setreuid +setrlimit +setsockopt +settimeofday +sigblock +sigcontext +sigmask +signal.h +signo +sigpause +sigsetmask +sigstack +sigvec +sockaddr +socket.h +socketpair +socktype +sp +ss +sstk +startc +stat.h +stb +stopc +suspc +sv +sw +symlink +ta +time.h +timeval +timezone +tolen +tt +ttychars +ttymode +tv +tvp +tvsec +types.h +tz +tzp +uid +uio.h +umount +usec +vec +wait.h +waitstatus +werasc +writeable +writev diff --git a/doc/ps1/07.ipctut/Makefile b/doc/ps1/07.ipctut/Makefile new file mode 100644 index 00000000..2c7ac265 --- /dev/null +++ b/doc/ps1/07.ipctut/Makefile @@ -0,0 +1,32 @@ +# +# Copyright (c) 1986 Regents of the University of California. +# All rights reserved. The Berkeley software License Agreement +# specifies the terms and conditions for redistribution. +# +# @(#)Makefile 6.2 (Berkeley) 5/6/86 +# +SRCS= tutor.me +GSRCS= gremlins +MACROS= -me +PRINTER=Pdp +SOELIM= soelim +TBL= dtbl -${PRINTER} +TROFF= ditroff -${PRINTER} + +paper: paper.${PRINTER} pics.Pip + lpr -${PRINTER} -n paper.${PRINTER} + lpr -Pip -n pics.Pip + +paper.${PRINTER}: ${SRCS} + ${TBL} ${SRCS} | ${TROFF} ${MACROS} -t > paper.${PRINTER} + +pics.Pip: ${GSRCS} + grn -Pip ${GSRCS} | ditroff -Pip -t >pics.Pip + +clean: + rm -f paper.[PT]* *.spell errs Errs make.out + +spell: ${SRCS} + @for i in ${SRCS}; do \ + echo $$i; spell $$i | sort | comm -23 - spell.ok > $$i.spell; \ + done diff --git a/doc/ps1/07.ipctut/accept.grn b/doc/ps1/07.ipctut/accept.grn new file mode 100644 index 00000000..688c9a54 --- /dev/null +++ b/doc/ps1/07.ipctut/accept.grn @@ -0,0 +1,480 @@ +gremlinfile +1 208.00 256.00 +3 +208.00 256.00 +448.00 256.00 +-1.00 -1.00 +1 0 +0 + 3 +328.00 56.00 +320.41 64.85 +322.31 57.90 +316.62 53.47 +328.00 56.00 +-1.00 -1.00 +6 0 +0 + 3 +272.00 56.00 +280.46 47.97 +277.86 54.70 +283.06 59.69 +272.00 56.00 +-1.00 -1.00 +6 0 +0 + 4 +249.60 438.40 +272.00 438.40 +249.60 460.80 +249.60 416.00 +272.00 438.40 +227.20 438.40 +-1.00 -1.00 +6 0 +0 + 3 +224.00 400.00 +224.00 336.00 +275.20 336.00 +275.20 400.00 +224.00 400.00 +-1.00 -1.00 +6 0 +0 + 3 +249.60 400.00 +249.60 416.00 +-1.00 -1.00 +6 0 +0 + 3 +224.00 387.20 +275.20 387.20 +275.20 374.40 +224.00 374.40 +224.00 361.60 +275.20 361.60 +275.20 348.80 +224.00 348.80 +-1.00 -1.00 +6 0 +0 + 4 +268.80 380.80 +265.60 380.80 +268.80 384.00 +268.80 377.60 +272.00 380.80 +265.60 380.80 +-1.00 -1.00 +6 0 +0 + 5 +272.00 380.80 +297.60 377.60 +300.80 352.00 +284.80 326.40 +275.20 316.80 +-1.00 -1.00 +6 0 +0 + 3 +275.20 316.80 +284.25 319.06 +278.59 320.19 +277.46 325.85 +275.20 316.80 +-1.00 -1.00 +6 0 +0 + 4 +249.60 291.20 +249.60 307.20 +249.60 307.20 +249.60 275.20 +265.60 291.20 +233.60 291.20 +-1.00 -1.00 +6 0 +0 + 4 +401.60 291.20 +401.60 307.20 +401.60 307.20 +401.60 275.20 +417.60 291.20 +385.60 291.20 +-1.00 -1.00 +6 0 +0 + 4 +393.60 438.40 +416.00 438.40 +393.60 460.80 +393.60 416.00 +416.00 438.40 +371.20 438.40 +-1.00 -1.00 +6 0 +0 + 3 +368.00 400.00 +368.00 336.00 +419.20 336.00 +419.20 400.00 +368.00 400.00 +-1.00 -1.00 +6 0 +0 + 3 +393.60 400.00 +393.60 416.00 +-1.00 -1.00 +6 0 +0 + 3 +368.00 387.20 +419.20 387.20 +419.20 374.40 +368.00 374.40 +368.00 361.60 +419.20 361.60 +419.20 348.80 +368.00 348.80 +-1.00 -1.00 +6 0 +0 + 4 +376.80 368.80 +373.60 368.80 +376.80 372.00 +376.80 365.60 +380.00 368.80 +373.60 368.80 +-1.00 -1.00 +6 0 +0 + 5 +372.00 368.00 +352.00 364.00 +340.00 348.00 +372.00 308.00 +-1.00 -1.00 +6 0 +0 + 3 +372.00 308.00 +367.60 318.80 +367.20 311.60 +360.40 309.20 +372.00 308.00 +-1.00 -1.00 +6 0 +0 + 3 +412.00 304.00 +436.00 336.00 +-1.00 -1.00 +6 0 +0 + 5 +436.00 336.00 +456.00 332.00 +476.00 336.00 +488.00 332.00 +-1.00 -1.00 +6 0 +0 + 5 +424.00 316.00 +448.00 312.00 +472.00 316.00 +488.00 312.00 +-1.00 -1.00 +6 0 +0 + 3 +488.00 312.00 +480.00 324.00 +488.00 332.00 +-1.00 -1.00 +6 0 +0 + 4 +249.60 214.40 +272.00 214.40 +249.60 236.80 +249.60 192.00 +272.00 214.40 +227.20 214.40 +-1.00 -1.00 +6 0 +0 + 3 +224.00 176.00 +224.00 112.00 +275.20 112.00 +275.20 176.00 +224.00 176.00 +-1.00 -1.00 +6 0 +0 + 3 +249.60 176.00 +249.60 192.00 +-1.00 -1.00 +6 0 +0 + 3 +224.00 163.20 +275.20 163.20 +275.20 150.40 +224.00 150.40 +224.00 137.60 +275.20 137.60 +275.20 124.80 +224.00 124.80 +-1.00 -1.00 +6 0 +0 + 4 +268.80 156.80 +265.60 156.80 +268.80 160.00 +268.80 153.60 +272.00 156.80 +265.60 156.80 +-1.00 -1.00 +6 0 +0 + 5 +272.00 156.80 +297.60 153.60 +300.80 128.00 +284.80 102.40 +275.20 92.80 +-1.00 -1.00 +6 0 +0 + 3 +275.20 92.80 +284.25 95.06 +278.59 96.19 +277.46 101.85 +275.20 92.80 +-1.00 -1.00 +6 0 +0 + 4 +249.60 67.20 +249.60 83.20 +249.60 83.20 +249.60 51.20 +265.60 67.20 +233.60 67.20 +-1.00 -1.00 +6 0 +0 + 4 +401.60 67.20 +401.60 83.20 +401.60 83.20 +401.60 51.20 +417.60 67.20 +385.60 67.20 +-1.00 -1.00 +6 0 +0 + 4 +393.60 214.40 +416.00 214.40 +393.60 236.80 +393.60 192.00 +416.00 214.40 +371.20 214.40 +-1.00 -1.00 +6 0 +0 + 3 +368.00 176.00 +368.00 112.00 +419.20 112.00 +419.20 176.00 +368.00 176.00 +-1.00 -1.00 +6 0 +0 + 3 +393.60 176.00 +393.60 192.00 +-1.00 -1.00 +6 0 +0 + 3 +368.00 163.20 +419.20 163.20 +419.20 150.40 +368.00 150.40 +368.00 137.60 +419.20 137.60 +419.20 124.80 +368.00 124.80 +-1.00 -1.00 +6 0 +0 + 4 +376.80 144.80 +373.60 144.80 +376.80 148.00 +376.80 141.60 +380.00 144.80 +373.60 144.80 +-1.00 -1.00 +6 0 +0 + 5 +372.00 144.00 +352.00 140.00 +340.00 124.00 +372.00 84.00 +-1.00 -1.00 +6 0 +0 + 3 +372.00 84.00 +367.60 94.80 +367.20 87.60 +360.40 85.20 +372.00 84.00 +-1.00 -1.00 +6 0 +0 + 3 +412.00 80.00 +436.00 112.00 +-1.00 -1.00 +6 0 +0 + 5 +436.00 112.00 +456.00 108.00 +476.00 112.00 +488.00 108.00 +-1.00 -1.00 +6 0 +0 + 5 +424.00 92.00 +448.00 88.00 +472.00 92.00 +488.00 88.00 +-1.00 -1.00 +6 0 +0 + 3 +488.00 88.00 +480.00 100.00 +488.00 108.00 +-1.00 -1.00 +6 0 +0 + 4 +337.60 47.20 +337.60 63.20 +337.60 63.20 +337.60 31.20 +353.60 47.20 +321.60 47.20 +-1.00 -1.00 +6 0 +0 + 4 +376.80 132.80 +373.60 132.80 +376.80 136.00 +376.80 129.60 +380.00 132.80 +373.60 132.80 +-1.00 -1.00 +6 0 +0 + 5 +372.00 132.00 +360.00 132.00 +336.00 120.00 +332.00 80.00 +-1.00 -1.00 +6 0 +0 + 3 +332.00 80.00 +335.40 91.16 +330.54 85.82 +323.75 88.25 +332.00 80.00 +-1.00 -1.00 +6 0 +0 + 3 +268.00 68.00 +316.00 56.00 +-1.00 -1.00 +4 0 +0 + 3 +268.00 56.00 +320.00 44.00 +-1.00 -1.00 +4 0 +0 + 0 +232.00 464.00 +232.00 464.00 +262.00 464.00 +292.00 464.00 +-1.00 -1.00 +1 1 +9 Process 1 + 0 +380.00 464.00 +380.00 464.00 +410.00 464.00 +440.00 464.00 +-1.00 -1.00 +1 1 +9 Process 2 + 0 +236.00 240.00 +236.00 240.00 +266.00 240.00 +296.00 240.00 +-1.00 -1.00 +1 1 +9 Process 1 + 0 +380.00 240.00 +380.00 240.00 +410.00 240.00 +440.00 240.00 +-1.00 -1.00 +1 1 +9 Process 2 + 0 +440.00 320.00 +440.00 320.00 +455.00 320.00 +470.00 320.00 +-1.00 -1.00 +1 1 +4 NAME + 0 +440.00 96.00 +440.00 96.00 +455.00 96.00 +470.00 96.00 +-1.00 -1.00 +1 1 +4 NAME + -1 diff --git a/doc/ps1/07.ipctut/dgramread.c b/doc/ps1/07.ipctut/dgramread.c new file mode 100644 index 00000000..ab020e77 --- /dev/null +++ b/doc/ps1/07.ipctut/dgramread.c @@ -0,0 +1,56 @@ +.\" Copyright (c) 1986 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)dgramread.c 6.3 (Berkeley) 5/8/86 +.\" +#include +#include +#include +#include + +/* + * In the included file a sockaddr_in is defined as follows: + * struct sockaddr_in { + * short sin_family; + * u_short sin_port; + * struct in_addr sin_addr; + * char sin_zero[8]; + * }; + * + * This program creates a datagram socket, binds a name to it, then reads + * from the socket. + */ +main() +{ + int sock, length; + struct sockaddr_in name; + char buf[1024]; + + /* Create socket from which to read. */ + sock = socket(AF_INET, SOCK_DGRAM, 0); + if (sock < 0) { + perror("opening datagram socket"); + exit(1); + } + /* Create name with wildcards. */ + name.sin_family = AF_INET; + name.sin_addr.s_addr = INADDR_ANY; + name.sin_port = 0; + if (bind(sock, &name, sizeof(name))) { + perror("binding datagram socket"); + exit(1); + } + /* Find assigned port value and print it out. */ + length = sizeof(name); + if (getsockname(sock, &name, &length)) { + perror("getting socket name"); + exit(1); + } + printf("Socket has port #%d\en", ntohs(name.sin_port)); + /* Read from the socket */ + if (read(sock, buf, 1024) < 0) + perror("receiving datagram packet"); + printf("-->%s\en", buf); + close(sock); +} diff --git a/doc/ps1/07.ipctut/dgramsend.c b/doc/ps1/07.ipctut/dgramsend.c new file mode 100644 index 00000000..0a97910f --- /dev/null +++ b/doc/ps1/07.ipctut/dgramsend.c @@ -0,0 +1,53 @@ +.\" Copyright (c) 1986 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)dgramsend.c 6.2 (Berkeley) 5/8/86 +.\" +#include +#include +#include +#include +#include + +#define DATA "The sea is calm tonight, the tide is full . . ." + +/* + * Here I send a datagram to a receiver whose name I get from the command + * line arguments. The form of the command line is dgramsend hostname + * portnumber + */ + +main(argc, argv) + int argc; + char *argv[]; +{ + int sock; + struct sockaddr_in name; + struct hostent *hp, *gethostbyname(); + + /* Create socket on which to send. */ + sock = socket(AF_INET, SOCK_DGRAM, 0); + if (sock < 0) { + perror("opening datagram socket"); + exit(1); + } + /* + * Construct name, with no wildcards, of the socket to send to. + * Getnostbyname() returns a structure including the network address + * of the specified host. The port number is taken from the command + * line. + */ + hp = gethostbyname(argv[1]); + if (hp == 0) { + fprintf(stderr, "%s: unknown host\n", argv[1]); + exit(2); + } + bcopy(hp->h_addr, &name.sin_addr, hp->h_length); + name.sin_family = AF_INET; + name.sin_port = htons(atoi(argv[2])); + /* Send message. */ + if (sendto(sock, DATA, sizeof(DATA), 0, &name, sizeof(name)) < 0) + perror("sending datagram message"); + close(sock); +} diff --git a/doc/ps1/07.ipctut/gremlins b/doc/ps1/07.ipctut/gremlins new file mode 100644 index 00000000..172e545d --- /dev/null +++ b/doc/ps1/07.ipctut/gremlins @@ -0,0 +1,23 @@ +.\" Copyright (c) 1986 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)gremlins 6.1 (Berkeley) 5/4/86 +.\" +.sp |1i +.GS C +height 6i +file pipe.grn +.GE +.bp +.sp |1i +.GS C +height 6i +file socketpair.grn +.GE +.bp +.sp |1i +.GS C +height 6i +file accept.grn +.GE diff --git a/doc/ps1/07.ipctut/pipe.c b/doc/ps1/07.ipctut/pipe.c new file mode 100644 index 00000000..72f81eb4 --- /dev/null +++ b/doc/ps1/07.ipctut/pipe.c @@ -0,0 +1,47 @@ +.\" Copyright (c) 1986 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)pipe.c 6.2 (Berkeley) 5/8/86 +.\" +#include + +#define DATA "Bright star, would I were steadfast as thou art . . ." + +/* + * This program creates a pipe, then forks. The child communicates to the + * parent over the pipe. Notice that a pipe is a one-way communications + * device. I can write to the output socket (sockets[1], the second socket + * of the array returned by pipe()) and read from the input socket + * (sockets[0]), but not vice versa. + */ + +main() +{ + int sockets[2], child; + + /* Create a pipe */ + if (pipe(sockets) < 0) { + perror("opening stream socket pair"); + exit(10); + } + + if ((child = fork()) == -1) + perror("fork"); + else if (child) { + char buf[1024]; + + /* This is still the parent. It reads the child's message. */ + close(sockets[1]); + if (read(sockets[0], buf, 1024) < 0) + perror("reading message"); + printf("-->%s\en", buf); + close(sockets[0]); + } else { + /* This is the child. It writes a message to its parent. */ + close(sockets[0]); + if (write(sockets[1], DATA, sizeof(DATA)) < 0) + perror("writing message"); + close(sockets[1]); + } +} diff --git a/doc/ps1/07.ipctut/pipe.grn b/doc/ps1/07.ipctut/pipe.grn new file mode 100644 index 00000000..e87237be --- /dev/null +++ b/doc/ps1/07.ipctut/pipe.grn @@ -0,0 +1,405 @@ +gremlinfile +1 208.00 256.00 +3 +208.00 256.00 +432.00 256.00 +-1.00 -1.00 +1 0 +0 + 0 +384.00 244.00 +384.00 244.00 +402.00 244.00 +420.00 244.00 +-1.00 -1.00 +1 1 +5 child + 0 +232.00 244.00 +232.00 244.00 +253.00 244.00 +274.00 244.00 +-1.00 -1.00 +1 1 +6 parent + 0 +232.00 468.00 +232.00 468.00 +253.00 468.00 +274.00 468.00 +-1.00 -1.00 +1 1 +6 parent + 3 +340.00 104.00 +339.45 115.65 +336.67 108.99 +329.46 108.99 +340.00 104.00 +-1.00 -1.00 +6 0 +0 + 3 +300.00 100.00 +309.84 106.26 +302.68 105.37 +299.11 111.63 +300.00 100.00 +-1.00 -1.00 +6 0 +0 + 4 +376.80 169.60 +373.60 169.60 +376.80 172.80 +376.80 166.40 +380.00 169.60 +373.60 169.60 +-1.00 -1.00 +6 0 +0 + 4 +376.80 156.80 +373.60 156.80 +376.80 160.00 +376.80 153.60 +380.00 156.80 +373.60 156.80 +-1.00 -1.00 +6 0 +0 + 3 +368.00 163.20 +419.20 163.20 +419.20 150.40 +368.00 150.40 +368.00 137.60 +419.20 137.60 +419.20 124.80 +368.00 124.80 +-1.00 -1.00 +6 0 +0 + 3 +393.60 176.00 +393.60 192.00 +-1.00 -1.00 +6 0 +0 + 3 +368.00 176.00 +368.00 112.00 +419.20 112.00 +419.20 176.00 +368.00 176.00 +-1.00 -1.00 +6 0 +0 + 4 +393.60 214.40 +416.00 214.40 +393.60 236.80 +393.60 192.00 +416.00 214.40 +371.20 214.40 +-1.00 -1.00 +6 0 +0 + 3 +358.40 108.80 +359.12 118.10 +356.25 113.09 +350.53 113.81 +358.40 108.80 +-1.00 -1.00 +6 0 +0 + 5 +272.00 169.60 +297.60 169.60 +323.20 160.00 +358.40 108.80 +-1.00 -1.00 +6 0 +0 + 4 +268.80 169.60 +265.60 169.60 +268.80 172.80 +268.80 166.40 +272.00 169.60 +265.60 169.60 +-1.00 -1.00 +6 0 +0 + 3 +352.00 51.20 +249.60 51.20 +-1.00 -1.00 +6 0 +0 + 3 +249.60 83.20 +352.00 83.20 +-1.00 -1.00 +6 0 +0 + 4 +352.00 67.20 +352.00 51.20 +352.00 83.20 +-1.00 -1.00 +6 180 +0 + 4 +249.60 67.20 +249.60 83.20 +249.60 83.20 +249.60 51.20 +265.60 67.20 +233.60 67.20 +-1.00 -1.00 +6 0 +0 + 3 +275.20 92.80 +284.25 95.06 +278.59 96.19 +277.46 101.85 +275.20 92.80 +-1.00 -1.00 +6 0 +0 + 5 +272.00 156.80 +297.60 153.60 +300.80 128.00 +284.80 102.40 +275.20 92.80 +-1.00 -1.00 +6 0 +0 + 4 +268.80 156.80 +265.60 156.80 +268.80 160.00 +268.80 153.60 +272.00 156.80 +265.60 156.80 +-1.00 -1.00 +6 0 +0 + 3 +224.00 163.20 +275.20 163.20 +275.20 150.40 +224.00 150.40 +224.00 137.60 +275.20 137.60 +275.20 124.80 +224.00 124.80 +-1.00 -1.00 +6 0 +0 + 3 +249.60 176.00 +249.60 192.00 +-1.00 -1.00 +6 0 +0 + 3 +224.00 176.00 +224.00 112.00 +275.20 112.00 +275.20 176.00 +224.00 176.00 +-1.00 -1.00 +6 0 +0 + 4 +249.60 214.40 +272.00 214.40 +249.60 236.80 +249.60 192.00 +272.00 214.40 +227.20 214.40 +-1.00 -1.00 +6 0 +0 + 3 +358.40 332.80 +359.12 342.10 +356.25 337.09 +350.53 337.81 +358.40 332.80 +-1.00 -1.00 +6 0 +0 + 5 +272.00 393.60 +297.60 393.60 +323.20 384.00 +358.40 332.80 +-1.00 -1.00 +6 0 +0 + 4 +268.80 393.60 +265.60 393.60 +268.80 396.80 +268.80 390.40 +272.00 393.60 +265.60 393.60 +-1.00 -1.00 +6 0 +0 + 3 +352.00 275.20 +249.60 275.20 +-1.00 -1.00 +6 0 +0 + 3 +249.60 307.20 +352.00 307.20 +-1.00 -1.00 +6 0 +0 + 4 +352.00 291.20 +352.00 275.20 +352.00 307.20 +-1.00 -1.00 +6 180 +0 + 4 +249.60 291.20 +249.60 307.20 +249.60 307.20 +249.60 275.20 +265.60 291.20 +233.60 291.20 +-1.00 -1.00 +6 0 +0 + 3 +275.20 316.80 +284.25 319.06 +278.59 320.19 +277.46 325.85 +275.20 316.80 +-1.00 -1.00 +6 0 +0 + 5 +272.00 380.80 +297.60 377.60 +300.80 352.00 +284.80 326.40 +275.20 316.80 +-1.00 -1.00 +6 0 +0 + 4 +268.80 380.80 +265.60 380.80 +268.80 384.00 +268.80 377.60 +272.00 380.80 +265.60 380.80 +-1.00 -1.00 +6 0 +0 + 3 +224.00 387.20 +275.20 387.20 +275.20 374.40 +224.00 374.40 +224.00 361.60 +275.20 361.60 +275.20 348.80 +224.00 348.80 +-1.00 -1.00 +6 0 +0 + 3 +249.60 400.00 +249.60 416.00 +-1.00 -1.00 +6 0 +0 + 3 +224.00 400.00 +224.00 336.00 +275.20 336.00 +275.20 400.00 +224.00 400.00 +-1.00 -1.00 +6 0 +0 + 4 +249.60 438.40 +272.00 438.40 +249.60 460.80 +249.60 416.00 +272.00 438.40 +227.20 438.40 +-1.00 -1.00 +6 0 +0 + 3 +272.00 292.00 +284.00 300.00 +284.00 296.00 +304.00 296.00 +304.00 288.00 +284.00 288.00 +284.00 284.00 +272.00 292.00 +-1.00 -1.00 +6 0 +0 + 3 +272.00 68.00 +284.00 76.00 +284.00 72.00 +304.00 72.00 +304.00 64.00 +284.00 64.00 +284.00 60.00 +272.00 68.00 +-1.00 -1.00 +6 0 +0 + 0 +316.00 64.00 +316.00 64.00 +331.00 64.00 +346.00 64.00 +-1.00 -1.00 +1 1 +4 PIPE + 0 +316.00 288.00 +316.00 288.00 +331.00 288.00 +346.00 288.00 +-1.00 -1.00 +1 1 +4 PIPE + 5 +372.00 156.00 +348.00 156.00 +300.00 100.00 +-1.00 -1.00 +6 0 +0 + 5 +372.00 168.00 +332.00 160.00 +324.00 136.00 +340.00 104.00 +-1.00 -1.00 +6 0 +0 + -1 diff --git a/doc/ps1/07.ipctut/socketpair.c b/doc/ps1/07.ipctut/socketpair.c new file mode 100644 index 00000000..6784e826 --- /dev/null +++ b/doc/ps1/07.ipctut/socketpair.c @@ -0,0 +1,50 @@ +.\" Copyright (c) 1986 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)socketpair.c 6.2 (Berkeley) 5/8/86 +.\" +#include +#include +#include + +#define DATA1 "In Xanadu, did Kublai Khan . . ." +#define DATA2 "A stately pleasure dome decree . . ." + +/* + * This program creates a pair of connected sockets then forks and + * communicates over them. This is very similar to communication with pipes, + * however, socketpairs are two-way communications objects. Therefore I can + * send messages in both directions. + */ + +main() +{ + int sockets[2], child; + char buf[1024]; + + if (socketpair(AF_UNIX, SOCK_STREAM, 0, sockets) < 0) { + perror("opening stream socket pair"); + exit(1); + } + + if ((child = fork()) == -1) + perror("fork"); + else if (child) { /* This is the parent. */ + close(sockets[0]); + if (read(sockets[1], buf, 1024, 0) < 0) + perror("reading stream message"); + printf("-->%s\en", buf); + if (write(sockets[1], DATA2, sizeof(DATA2)) < 0) + perror("writing stream message"); + close(sockets[1]); + } else { /* This is the child. */ + close(sockets[1]); + if (write(sockets[0], DATA1, sizeof(DATA1)) < 0) + perror("writing stream message"); + if (read(sockets[0], buf, 1024, 0) < 0) + perror("reading stream message"); + printf("-->%s\en", buf); + close(sockets[0]); + } +} diff --git a/doc/ps1/07.ipctut/socketpair.grn b/doc/ps1/07.ipctut/socketpair.grn new file mode 100644 index 00000000..7314df99 --- /dev/null +++ b/doc/ps1/07.ipctut/socketpair.grn @@ -0,0 +1,407 @@ +gremlinfile +1 208.00 256.00 +3 +208.00 256.00 +432.00 256.00 +-1.00 -1.00 +1 0 +0 + 3 +332.00 284.00 +320.33 291.00 +325.00 284.00 +320.33 277.00 +332.00 284.00 +-1.00 -1.00 +6 0 +0 + 3 +272.00 296.00 +282.00 290.00 +278.00 296.00 +282.00 302.00 +272.00 296.00 +-1.00 -1.00 +6 0 +0 + 3 +264.00 284.00 +328.00 284.00 +-1.00 -1.00 +4 0 +0 + 3 +272.00 296.00 +336.00 296.00 +-1.00 -1.00 +4 0 +0 + 3 +332.00 60.00 +320.33 67.00 +325.00 60.00 +320.33 53.00 +332.00 60.00 +-1.00 -1.00 +6 0 +0 + 3 +272.00 72.00 +282.00 66.00 +278.00 72.00 +282.00 78.00 +272.00 72.00 +-1.00 -1.00 +6 0 +0 + 3 +264.00 60.00 +328.00 60.00 +-1.00 -1.00 +4 0 +0 + 3 +272.00 72.00 +336.00 72.00 +-1.00 -1.00 +4 0 +0 + 0 +384.00 244.00 +384.00 244.00 +402.00 244.00 +420.00 244.00 +-1.00 -1.00 +1 1 +5 child + 4 +353.60 67.20 +353.60 83.20 +353.60 83.20 +353.60 51.20 +369.60 67.20 +337.60 67.20 +-1.00 -1.00 +6 0 +0 + 4 +249.60 67.20 +249.60 83.20 +249.60 83.20 +249.60 51.20 +265.60 67.20 +233.60 67.20 +-1.00 -1.00 +6 0 +0 + 4 +353.60 291.20 +353.60 307.20 +353.60 307.20 +353.60 275.20 +369.60 291.20 +337.60 291.20 +-1.00 -1.00 +6 0 +0 + 0 +232.00 244.00 +232.00 244.00 +253.00 244.00 +274.00 244.00 +-1.00 -1.00 +1 1 +6 parent + 0 +232.00 468.00 +232.00 468.00 +253.00 468.00 +274.00 468.00 +-1.00 -1.00 +1 1 +6 parent + 3 +340.00 104.00 +339.45 115.65 +336.67 108.99 +329.46 108.99 +340.00 104.00 +-1.00 -1.00 +6 0 +0 + 3 +300.00 100.00 +309.84 106.26 +302.68 105.37 +299.11 111.63 +300.00 100.00 +-1.00 -1.00 +6 0 +0 + 4 +376.80 169.60 +373.60 169.60 +376.80 172.80 +376.80 166.40 +380.00 169.60 +373.60 169.60 +-1.00 -1.00 +6 0 +0 + 4 +376.80 156.80 +373.60 156.80 +376.80 160.00 +376.80 153.60 +380.00 156.80 +373.60 156.80 +-1.00 -1.00 +6 0 +0 + 3 +368.00 163.20 +419.20 163.20 +419.20 150.40 +368.00 150.40 +368.00 137.60 +419.20 137.60 +419.20 124.80 +368.00 124.80 +-1.00 -1.00 +6 0 +0 + 3 +393.60 176.00 +393.60 192.00 +-1.00 -1.00 +6 0 +0 + 3 +368.00 176.00 +368.00 112.00 +419.20 112.00 +419.20 176.00 +368.00 176.00 +-1.00 -1.00 +6 0 +0 + 4 +393.60 214.40 +416.00 214.40 +393.60 236.80 +393.60 192.00 +416.00 214.40 +371.20 214.40 +-1.00 -1.00 +6 0 +0 + 3 +358.40 108.80 +359.12 118.10 +356.25 113.09 +350.53 113.81 +358.40 108.80 +-1.00 -1.00 +6 0 +0 + 5 +272.00 169.60 +297.60 169.60 +323.20 160.00 +358.40 108.80 +-1.00 -1.00 +6 0 +0 + 4 +268.80 169.60 +265.60 169.60 +268.80 172.80 +268.80 166.40 +272.00 169.60 +265.60 169.60 +-1.00 -1.00 +6 0 +0 + 3 +275.20 92.80 +284.25 95.06 +278.59 96.19 +277.46 101.85 +275.20 92.80 +-1.00 -1.00 +6 0 +0 + 5 +272.00 156.80 +297.60 153.60 +300.80 128.00 +284.80 102.40 +275.20 92.80 +-1.00 -1.00 +6 0 +0 + 4 +268.80 156.80 +265.60 156.80 +268.80 160.00 +268.80 153.60 +272.00 156.80 +265.60 156.80 +-1.00 -1.00 +6 0 +0 + 3 +224.00 163.20 +275.20 163.20 +275.20 150.40 +224.00 150.40 +224.00 137.60 +275.20 137.60 +275.20 124.80 +224.00 124.80 +-1.00 -1.00 +6 0 +0 + 3 +249.60 176.00 +249.60 192.00 +-1.00 -1.00 +6 0 +0 + 3 +224.00 176.00 +224.00 112.00 +275.20 112.00 +275.20 176.00 +224.00 176.00 +-1.00 -1.00 +6 0 +0 + 4 +249.60 214.40 +272.00 214.40 +249.60 236.80 +249.60 192.00 +272.00 214.40 +227.20 214.40 +-1.00 -1.00 +6 0 +0 + 3 +358.40 332.80 +359.12 342.10 +356.25 337.09 +350.53 337.81 +358.40 332.80 +-1.00 -1.00 +6 0 +0 + 5 +272.00 393.60 +297.60 393.60 +323.20 384.00 +358.40 332.80 +-1.00 -1.00 +6 0 +0 + 4 +268.80 393.60 +265.60 393.60 +268.80 396.80 +268.80 390.40 +272.00 393.60 +265.60 393.60 +-1.00 -1.00 +6 0 +0 + 4 +249.60 291.20 +249.60 307.20 +249.60 307.20 +249.60 275.20 +265.60 291.20 +233.60 291.20 +-1.00 -1.00 +6 0 +0 + 3 +275.20 316.80 +284.25 319.06 +278.59 320.19 +277.46 325.85 +275.20 316.80 +-1.00 -1.00 +6 0 +0 + 5 +272.00 380.80 +297.60 377.60 +300.80 352.00 +284.80 326.40 +275.20 316.80 +-1.00 -1.00 +6 0 +0 + 4 +268.80 380.80 +265.60 380.80 +268.80 384.00 +268.80 377.60 +272.00 380.80 +265.60 380.80 +-1.00 -1.00 +6 0 +0 + 3 +224.00 387.20 +275.20 387.20 +275.20 374.40 +224.00 374.40 +224.00 361.60 +275.20 361.60 +275.20 348.80 +224.00 348.80 +-1.00 -1.00 +6 0 +0 + 3 +249.60 400.00 +249.60 416.00 +-1.00 -1.00 +6 0 +0 + 3 +224.00 400.00 +224.00 336.00 +275.20 336.00 +275.20 400.00 +224.00 400.00 +-1.00 -1.00 +6 0 +0 + 4 +249.60 438.40 +272.00 438.40 +249.60 460.80 +249.60 416.00 +272.00 438.40 +227.20 438.40 +-1.00 -1.00 +6 0 +0 + 5 +372.00 168.00 +332.00 164.00 +324.00 140.00 +340.00 104.00 +-1.00 -1.00 +6 0 +0 + 5 +372.00 156.00 +344.00 156.00 +300.00 100.00 +-1.00 -1.00 +6 0 +0 + -1 diff --git a/doc/ps1/07.ipctut/strchkread.c b/doc/ps1/07.ipctut/strchkread.c new file mode 100644 index 00000000..45d7d253 --- /dev/null +++ b/doc/ps1/07.ipctut/strchkread.c @@ -0,0 +1,79 @@ +.\" Copyright (c) 1986 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)strchkread.c 6.2 (Berkeley) 5/8/86 +.\" +#include +#include +#include +#include +#include +#include +#define TRUE 1 + +/* + * This program uses select() to check that someone is trying to connect + * before calling accept(). + */ + +main() +{ + int sock, length; + struct sockaddr_in server; + int msgsock; + char buf[1024]; + int rval; + fd_set ready; + struct timeval to; + + /* Create socket */ + sock = socket(AF_INET, SOCK_STREAM, 0); + if (sock < 0) { + perror("opening stream socket"); + exit(1); + } + /* Name socket using wildcards */ + server.sin_family = AF_INET; + server.sin_addr.s_addr = INADDR_ANY; + server.sin_port = 0; + if (bind(sock, &server, sizeof(server))) { + perror("binding stream socket"); + exit(1); + } + /* Find out assigned port number and print it out */ + length = sizeof(server); + if (getsockname(sock, &server, &length)) { + perror("getting socket name"); + exit(1); + } + printf("Socket has port #%d\en", ntohs(server.sin_port)); + + /* Start accepting connections */ + listen(sock, 5); + do { + FD_ZERO(&ready); + FD_SET(sock, &ready); + to.tv_sec = 5; + if (select(sock + 1, &ready, 0, 0, &to) < 0) { + perror("select"); + continue; + } + if (FD_ISSET(sock, &ready)) { + msgsock = accept(sock, (struct sockaddr *)0, (int *)0); + if (msgsock == -1) + perror("accept"); + else do { + bzero(buf, sizeof(buf)); + if ((rval = read(msgsock, buf, 1024)) < 0) + perror("reading stream message"); + else if (rval == 0) + printf("Ending connection\en"); + else + printf("-->%s\en", buf); + } while (rval > 0); + close(msgsock); + } else + printf("Do something else\en"); + } while (TRUE); +} diff --git a/doc/ps1/07.ipctut/streamread.c b/doc/ps1/07.ipctut/streamread.c new file mode 100644 index 00000000..c1f9eca5 --- /dev/null +++ b/doc/ps1/07.ipctut/streamread.c @@ -0,0 +1,75 @@ +.\" Copyright (c) 1986 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)streamread.c 6.2 (Berkeley) 5/8/86 +.\" +#include +#include +#include +#include +#include +#define TRUE 1 + +/* + * This program creates a socket and then begins an infinite loop. Each time + * through the loop it accepts a connection and prints out messages from it. + * When the connection breaks, or a termination message comes through, the + * program accepts a new connection. + */ + +main() +{ + int sock, length; + struct sockaddr_in server; + int msgsock; + char buf[1024]; + int rval; + int i; + + /* Create socket */ + sock = socket(AF_INET, SOCK_STREAM, 0); + if (sock < 0) { + perror("opening stream socket"); + exit(1); + } + /* Name socket using wildcards */ + server.sin_family = AF_INET; + server.sin_addr.s_addr = INADDR_ANY; + server.sin_port = 0; + if (bind(sock, &server, sizeof(server))) { + perror("binding stream socket"); + exit(1); + } + /* Find out assigned port number and print it out */ + length = sizeof(server); + if (getsockname(sock, &server, &length)) { + perror("getting socket name"); + exit(1); + } + printf("Socket has port #%d\en", ntohs(server.sin_port)); + + /* Start accepting connections */ + listen(sock, 5); + do { + msgsock = accept(sock, 0, 0); + if (msgsock == -1) + perror("accept"); + else do { + bzero(buf, sizeof(buf)); + if ((rval = read(msgsock, buf, 1024)) < 0) + perror("reading stream message"); + i = 0; + if (rval == 0) + printf("Ending connection\en"); + else + printf("-->%s\en", buf); + } while (rval != 0); + close(msgsock); + } while (TRUE); + /* + * Since this program has an infinite loop, the socket "sock" is + * never explicitly closed. However, all sockets will be closed + * automatically when a process is killed or terminates normally. + */ +} diff --git a/doc/ps1/07.ipctut/streamwrite.c b/doc/ps1/07.ipctut/streamwrite.c new file mode 100644 index 00000000..b4551d50 --- /dev/null +++ b/doc/ps1/07.ipctut/streamwrite.c @@ -0,0 +1,54 @@ +.\" Copyright (c) 1986 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)streamwrite.c 6.2 (Berkeley) 5/8/86 +.\" +#include +#include +#include +#include +#include + +#define DATA "Half a league, half a league . . ." + +/* + * This program creates a socket and initiates a connection with the socket + * given in the command line. One message is sent over the connection and + * then the socket is closed, ending the connection. The form of the command + * line is streamwrite hostname portnumber + */ + +main(argc, argv) + int argc; + char *argv[]; +{ + int sock; + struct sockaddr_in server; + struct hostent *hp, *gethostbyname(); + char buf[1024]; + + /* Create socket */ + sock = socket(AF_INET, SOCK_STREAM, 0); + if (sock < 0) { + perror("opening stream socket"); + exit(1); + } + /* Connect socket using name specified by command line. */ + server.sin_family = AF_INET; + hp = gethostbyname(argv[1]); + if (hp == 0) { + fprintf(stderr, "%s: unknown host\n", argv[1]); + exit(2); + } + bcopy(hp->h_addr, &server.sin_addr, hp->h_length); + server.sin_port = htons(atoi(argv[2])); + + if (connect(sock, &server, sizeof(server)) < 0) { + perror("connecting stream socket"); + exit(1); + } + if (write(sock, DATA, sizeof(DATA)) < 0) + perror("writing on stream socket"); + close(sock); +} diff --git a/doc/ps1/07.ipctut/tutor.me b/doc/ps1/07.ipctut/tutor.me new file mode 100644 index 00000000..ff51ce3f --- /dev/null +++ b/doc/ps1/07.ipctut/tutor.me @@ -0,0 +1,922 @@ +.\" Copyright (c) 1980 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)tutor.me 6.5 (Berkeley) 5/10/86 +.\" +.oh 'Introductory 4.3BSD IPC''PS1:7-%' +.eh 'PS1:7-%''Introductory 4.3BSD IPC' +.rs +.sp 2 +.sz 14 +.ft B +.ce 2 +An Introductory 4.3BSD +Interprocess Communication Tutorial +.sz 10 +.sp 2 +.ce +.i "Stuart Sechrest" +.ft +.sp +.ce 4 +Computer Science Research Group +Computer Science Division +Department of Electrical Engineering and Computer Science +University of California, Berkeley +.sp 2 +.ce +.i ABSTRACT +.sp +.(c +.pp +Berkeley UNIX\(dg 4.3BSD offers several choices for interprocess communication. +To aid the programmer in developing programs which are comprised of +cooperating +processes, the different choices are discussed and a series of example +programs are presented. These programs +demonstrate in a simple way the use of pipes, socketpairs, sockets +and the use of datagram and stream communication. The intent of this +document is to present a few simple example programs, not to describe the +networking system in full. +.)c +.sp 2 +.(f +\(dg\|UNIX is a trademark of AT&T Bell Laboratories. +.)f +.b +.sh 1 "Goals" +.r +.pp +Facilities for interprocess communication (IPC) and networking +were a major addition to UNIX in the Berkeley UNIX 4.2BSD release. +These facilities required major additions and some changes +to the system interface. +The basic idea of this interface is to make IPC similar to file I/O. +In UNIX a process has a set of I/O descriptors, from which one reads +and to which one writes. +Descriptors may refer to normal files, to devices (including terminals), +or to communication channels. +The use of a descriptor has three phases: its creation, +its use for reading and writing, and its destruction. By using descriptors +to write files, rather than simply naming the target file in the write +call, one gains a surprising amount of flexibility. Often, the program that +creates a descriptor will be different from the program that uses the +descriptor. For example the shell can create a descriptor for the output +of the `ls' +command that will cause the listing to appear in a file rather than +on a terminal. +Pipes are another form of descriptor that have been used in UNIX +for some time. +Pipes allow one-way data transmission from one process +to another; the two processes and the pipe must be set up by a common +ancestor. +.pp +The use of descriptors is not the only communication interface +provided by UNIX. +The signal mechanism sends a tiny amount of information from one +process to another. +The signaled process receives only the signal type, +not the identity of the sender, +and the number of possible signals is small. +The signal semantics limit the flexibility of the signaling mechanism +as a means of interprocess communication. +.pp +The identification of IPC with I/O is quite longstanding in UNIX and +has proved quite successful. At first, however, IPC was limited to +processes communicating within a single machine. With Berkeley UNIX +4.2BSD this expanded to include IPC between machines. This expansion +has necessitated some change in the way that descriptors are created. +Additionally, new possibilities for the meaning of read and write have +been admitted. Originally the meanings, or semantics, of these terms +were fairly simple. When you wrote something it was delivered. When +you read something, you were blocked until the data arrived. +Other possibilities exist, +however. One can write without full assurance of delivery if one can +check later to catch occasional failures. Messages can be kept as +discrete units or merged into a stream. +One can ask to read, but insist on not waiting if nothing is immediately +available. These new possibilities are allowed in the Berkeley UNIX IPC +interface. +.pp +Thus Berkeley UNIX 4.3BSD offers several choices for IPC. +This paper presents simple examples that illustrate some of +the choices. +The reader is presumed to be familiar with the C programming language +[Kernighan & Ritchie 1978], +but not necessarily with the system calls of the UNIX system or with +processes and interprocess communication. +The paper reviews the notion of a process and the types of +communication that are supported by Berkeley UNIX 4.3BSD. +A series of examples are presented that create processes that communicate +with one another. The programs show different ways of establishing +channels of communication. +Finally, the calls that actually transfer data are reviewed. +To clearly present how communication can take place, +the example programs have been cleared of anything that +might be construed as useful work. +They can, therefore, serve as models +for the programmer trying to construct programs which are comprised of +cooperating processes. +.b +.sh 1 "Processes" +.pp +A \fIprogram\fP is both a sequence of statements and a rough way of referring +to the computation that occurs when the compiled statements are run. +A \fIprocess\fP can be thought of as a single line of control in a program. +Most programs execute some statements, go through a few loops, branch in +various directions and then end. These are single process programs. +Programs can also have a point where control splits into two independent lines, +an action called \fIforking.\fP +In UNIX these lines can never join again. A call to the system routine +\fIfork()\fP, causes a process to split in this way. +The result of this call is that two independent processes will be +running, executing exactly the same code. +Memory values will be the same for all values set before the fork, but, +subsequently, each version will be able to change only the +value of its own copy of each variable. +Initially, the only difference between the two will be the value returned by +\fIfork().\fP The parent will receive a process id for the child, +the child will receive a zero. +Calls to \fIfork(),\fP +therefore, typically precede, or are included in, an if-statement. +.pp +A process views the rest of the system through a private table of descriptors. +The descriptors can represent open files or sockets (sockets are communication +objects that will be discussed below). Descriptors are referred to +by their index numbers in the table. The first three descriptors are often +known by special names, \fI stdin, stdout\fP and \fIstderr\fP. +These are the standard input, output and error. +When a process forks, its descriptor table is copied to the child. +Thus, if the parent's standard input is being taken from a terminal +(devices are also treated as files in UNIX), the child's input will +be taken from the +same terminal. Whoever reads first will get the input. If, before forking, +the parent changes its standard input so that it is reading from a +new file, the child will take its input from the new file. It is +also possible to take input from a socket, rather than from a file. +.b +.sh 1 "Pipes" +.r +.pp +Most users of UNIX know that they can pipe the output of a +program ``prog1'' to the input of another, ``prog2,'' by typing the command +\fI``prog1 | prog2.''\fP +This is called ``piping'' the output of one program +to another because the mechanism used to transfer the output is called a +pipe. +When the user types a command, the command is read by the shell, which +decides how to execute it. If the command is simple, for example, +.i "``prog1,''" +the shell forks a process, which executes the program, prog1, and then dies. +The shell waits for this termination and then prompts for the next +command. +If the command is a compound command, +.i "``prog1 | prog2,''" +the shell creates two processes connected by a pipe. One process +runs the program, prog1, the other runs prog2. The pipe is an I/O +mechanism with two ends, or sockets. Data that is written into one socket +can be read from the other. +.(z +.ft CW +.so pipe.c +.ft +.ce 1 +Figure 1\ \ Use of a pipe +.)z +.pp +Since a program specifies its input and output only by the descriptor table +indices, which appear as variables or constants, +the input source and output destination can be changed without +changing the text of the program. +It is in this way that the shell is able to set up pipes. Before executing +prog1, the process can close whatever is at \fIstdout\fP +and replace it with one +end of a pipe. Similarly, the process that will execute prog2 can substitute +the opposite end of the pipe for +\fIstdin.\fP +.pp +Let us now examine a program that creates a pipe for communication between +its child and itself (Figure 1). +A pipe is created by a parent process, which then forks. +When a process forks, the parent's descriptor table is copied into +the child's. +.pp +In Figure 1, the parent process makes a call to the system routine +\fIpipe().\fP +This routine creates a pipe and places descriptors for the sockets +for the two ends of the pipe in the process's descriptor table. +\fIPipe()\fP +is passed an array into which it places the index numbers of the +sockets it created. +The two ends are not equivalent. The socket whose index is +returned in the low word of the array is opened for reading only, +while the socket in the high end is opened only for writing. +This corresponds to the fact that the standard input is the first +descriptor of a process's descriptor table and the standard output +is the second. After creating the pipe, the parent creates the child +with which it will share the pipe by calling \fIfork().\fP +Figure 2 illustrates the effect of a fork. +The parent process's descriptor table points to both ends of the pipe. +After the fork, both parent's and child's descriptor tables point to +the pipe. +The child can then use the pipe to send a message to the parent. +.(z +- +.bl 5.8i +- +.\" pipe.grn goes here +.sp +.ce 1 +Figure 2\ \ Sharing a pipe between parent and child +.)z +.pp +Just what is a pipe? +It is a one-way communication mechanism, with one end opened +for reading and the other end for writing. +Therefore, parent and child need to agree on which way to turn +the pipe, from parent to child or the other way around. +Using the same pipe for communication both from parent to child and +from child to parent would be possible (since both processes have +references to both ends), but very complicated. +If the parent and child are to have a two-way conversation, +the parent creates two pipes, one for use in each direction. +(In accordance with their plans, both parent and child in the example above +close the socket that they will not use. It is not required that unused +descriptors be closed, but it is good practice.) +A pipe is also a \fIstream\fP communication mechanism; that +is, all messages sent through the pipe are placed in order +and reliably delivered. When the reader asks for a certain +number of bytes from this +stream, he is given as many bytes as are available, up +to the amount of the request. Note that these bytes may have come from +the same call to \fIwrite()\fR or from several calls to \fIwrite()\fR +which were concatenated. +.b +.sh 1 "Socketpairs" +.r +.pp +Berkeley UNIX 4.3BSD provides a slight generalization of pipes. A pipe is a +pair of connected sockets for one-way stream communication. One may +obtain a pair of connected sockets for two-way stream communication +by calling the routine \fIsocketpair().\fP +The program in Figure 3 calls \fIsocketpair()\fP +to create such a connection. The program uses the link for +communication in both directions. Since socketpairs are +an extension of pipes, their use resembles that of pipes. +Figure 4 illustrates the result of a fork following a call to +\fIsocketpair().\fP +.pp +\fISocketpair()\fP +takes as +arguments a specification of a domain, a style of communication, and a +protocol. +These are the parameters shown in the example. +Domains and protocols will be discussed in the next section. +Briefly, +a domain is a space of names that may be bound +to sockets and implies certain other conventions. +Currently, socketpairs have only been implemented for one +domain, called the UNIX domain. +The UNIX domain uses UNIX path names for naming sockets. +It only allows communication +between sockets on the same machine. +.pp +Note that the header files +.i "" +and +.i "." +are required in this program. +The constants AF_UNIX and SOCK_STREAM are defined in +.i "," +which in turn requires the file +.i "" +for some of its definitions. +.(z +.ft CW +.so socketpair.c +.ft +.ce 1 +Figure 3\ \ Use of a socketpair +.)z +.(z +- +.bl 5.8i +- +.\" socketpair.grn goes here +.sp +.ce 1 +Figure 4\ \ Sharing a socketpair between parent and child +.)z +.b +.sh 1 "Domains and Protocols" +.r +.pp +Pipes and socketpairs are a simple solution for communicating between +a parent and child or between child processes. +What if we wanted to have processes that have no common ancestor +with whom to set up communication? +Neither standard UNIX pipes nor socketpairs are +the answer here, since both mechanisms require a common ancestor to +set up the communication. +We would like to have two processes separately create sockets +and then have messages sent between them. This is often the +case when providing or using a service in the system. This is +also the case when the communicating processes are on separate machines. +In Berkeley UNIX 4.3BSD one can create individual sockets, give them names and +send messages between them. +.pp +Sockets created by different programs use names to refer to one another; +names generally must be translated into addresses for use. +The space from which an address is drawn is referred to as a +.i domain. +There are several domains for sockets. +Two that will be used in the examples here are the UNIX domain (or AF_UNIX, +for Address Format UNIX) and the Internet domain (or AF_INET). +UNIX domain IPC is an experimental facility in 4.2BSD and 4.3BSD. +In the UNIX domain, a socket is given a path name within the file system +name space. +A file system node is created for the socket and other processes may +then refer to the socket by giving the proper pathname. +UNIX domain names, therefore, allow communication between any two processes +that work in the same file system. +The Internet domain is the UNIX implementation of the DARPA Internet +standard protocols IP/TCP/UDP. +Addresses in the Internet domain consist of a machine network address +and an identifying number, called a port. +Internet domain names allow communication between machines. +.pp +Communication follows some particular ``style.'' +Currently, communication is either through a \fIstream\fP +or by \fIdatagram.\fP +Stream communication implies several things. Communication takes +place across a connection between two sockets. The communication +is reliable, error-free, and, as in pipes, no message boundaries are +kept. Reading from a stream may result in reading the data sent from +one or several calls to \fIwrite()\fP +or only part of the data from a single call, if there is not enough room +for the entire message, or if not all the data from a large message +has been transferred. +The protocol implementing such a style will retransmit messages +received with errors. It will also return error messages if one tries to +send a message after the connection has been broken. +Datagram communication does not use connections. Each message is +addressed individually. If the address is correct, it will generally +be received, although this is not guaranteed. Often datagrams are +used for requests that require a response from the +recipient. If no response +arrives in a reasonable amount of time, the request is repeated. +The individual datagrams will be kept separate when they are read, that +is, message boundaries are preserved. +.pp +The difference in performance between the two styles of communication is +generally less important than the difference in semantics. The +performance gain that one might find in using datagrams must be weighed +against the increased complexity of the program, which must now concern +itself with lost or out of order messages. If lost messages may simply be +ignored, the quantity of traffic may be a consideration. The expense +of setting up a connection is best justified by frequent use of the connection. +Since the performance of a protocol changes as it is tuned for different +situations, it is best to seek the most up-to-date information when +making choices for a program in which performance is crucial. +.pp +A protocol is a set of rules, data formats and conventions that regulate the +transfer of data between participants in the communication. +In general, there is one protocol for each socket type (stream, +datagram, etc.) within each domain. +The code that implements a protocol +keeps track of the names that are bound to sockets, +sets up connections and transfers data between sockets, +perhaps sending the data across a network. +This code also keeps track of the names that are bound to sockets. +It is possible for several protocols, differing only in low level +details, to implement the same style of communication within +a particular domain. Although it is possible to select +which protocol should be used, for nearly all uses it is sufficient to +request the default protocol. This has been done in all of the example +programs. +.pp +One specifies the domain, style and protocol of a socket when +it is created. For example, in Figure 5a the call to \fIsocket()\fP +causes the creation of a datagram socket with the default protocol +in the UNIX domain. +.b +.sh 1 "Datagrams in the UNIX Domain" +.r +.(z +.ft CW +.so udgramread.c +.ft +.ce 1 +Figure 5a\ \ Reading UNIX domain datagrams +.)z +.pp +Let us now look at two programs that create sockets separately. +The programs in Figures 5a and 5b use datagram communication +rather than a stream. +The structure used to name UNIX domain sockets is defined +in the file \fI.\fP +The definition has also been included in the example for clarity. +.pp +Each program creates a socket with a call to \fIsocket().\fP +These sockets are in the UNIX domain. +Once a name has been decided upon it is attached to a socket by the +system call \fIbind().\fP +The program in Figure 5a uses the name ``socket'', +which it binds to its socket. +This name will appear in the working directory of the program. +The routines in Figure 5b use its +socket only for sending messages. It does not create a name for +the socket because no other process has to refer to it. +.(z +.ft CW +.so udgramsend.c +.ft +.ce 1 +Figure 5b\ \ Sending a UNIX domain datagrams +.)z +.pp +Names in the UNIX domain are path names. Like file path names they may +be either absolute (e.g. ``/dev/imaginary'') or relative (e.g. ``socket''). +Because these names are used to allow processes to rendezvous, relative +path names can pose difficulties and should be used with care. +When a name is bound into the name space, a file (inode) is allocated in the +file system. If +the inode is not deallocated, the name will continue to exist even after +the bound socket is closed. This can cause subsequent runs of a program +to find that a name is unavailable, and can cause +directories to fill up with these +objects. The names are removed by calling \fIunlink()\fP or using +the \fIrm\fP\|(1) command. +Names in the UNIX domain are only used for rendezvous. They are not used +for message delivery once a connection is established. Therefore, in +contrast with the Internet domain, unbound sockets need not be (and are +not) automatically given addresses when they are connected. +.pp +There is no established means of communicating names to interested +parties. In the example, the program in Figure 5b gets the +name of the socket to which it will send its message through its +command line arguments. Once a line of communication has been created, +one can send the names of additional, perhaps new, sockets over the link. +Facilities will have to be built that will make the distribution of +names less of a problem than it now is. +.b +.sh 1 "Datagrams in the Internet Domain" +.r +.(z +.ft CW +.so dgramread.c +.ft +.ce 1 +Figure 6a\ \ Reading Internet domain datagrams +.)z +.pp +The examples in Figure 6a and 6b are very close to the previous example +except that the socket is in the Internet domain. +The structure of Internet domain addresses is defined in the file +\fI\fP. +Internet addresses specify a host address (a 32-bit number) +and a delivery slot, or port, on that +machine. These ports are managed by the system routines that implement +a particular protocol. +Unlike UNIX domain names, Internet socket names are not entered into +the file system and, therefore, +they do not have to be unlinked after the socket has been closed. +When a message must be sent between machines it is sent to +the protocol routine on the destination machine, which interprets the +address to determine to which socket the message should be delivered. +Several different protocols may be active on +the same machine, but, in general, they will not communicate with one another. +As a result, different protocols are allowed to use the same port numbers. +Thus, implicitly, an Internet address is a triple including a protocol as +well as the port and machine address. +An \fIassociation\fP is a temporary or permanent specification +of a pair of communicating sockets. +An association is thus identified by the tuple +<\fIprotocol, local machine address, local port, +remote machine address, remote port\fP>. +An association may be transient when using datagram sockets; +the association actually exists during a \fIsend\fP operation. +.(z +.ft CW +.so dgramsend.c +.ft +.ce 1 +Figure 6b\ \ Sending an Internet domain datagram +.)z +.pp +The protocol for a socket is chosen when the socket is created. The +local machine address for a socket can be any valid network address of the +machine, if it has more than one, or it can be the wildcard value +INADDR_ANY. +The wildcard value is used in the program in Figure 6a. +If a machine has several network addresses, it is likely +that messages sent to any of the addresses should be deliverable to +a socket. This will be the case if the wildcard value has been chosen. +Note that even if the wildcard value is chosen, a program sending messages +to the named socket must specify a valid network address. One can be willing +to receive from ``anywhere,'' but one cannot send a message ``anywhere.'' +The program in Figure 6b is given the destination host name as a command +line argument. +To determine a network address to which it can send the message, it looks +up +the host address by the call to \fIgethostbyname()\fP. +The returned structure includes the host's network address, +which is copied into the structure specifying the +destination of the message. +.pp +The port number can be thought of as the number of a mailbox, into +which the protocol places one's messages. Certain daemons, offering +certain advertised services, have reserved +or ``well-known'' port numbers. These fall in the range +from 1 to 1023. Higher numbers are available to general users. +Only servers need to ask for a particular number. +The system will assign an unused port number when an address +is bound to a socket. +This may happen when an explicit \fIbind\fP +call is made with a port number of 0, or +when a \fIconnect\fP or \fIsend\fP +is performed on an unbound socket. +Note that port numbers are not automatically reported back to the user. +After calling \fIbind(),\fP asking for port 0, one may call +\fIgetsockname()\fP to discover what port was actually assigned. +The routine \fIgetsockname()\fP +will not work for names in the UNIX domain. +.pp +The format of the socket address is specified in part by standards within the +Internet domain. The specification includes the order of the bytes in +the address. Because machines differ in the internal representation +they ordinarily use +to represent integers, printing out the port number as returned by +\fIgetsockname()\fP may result in a misinterpretation. To +print out the number, it is necessary to use the routine \fIntohs()\fP +(for \fInetwork to host: short\fP) to convert the number from the +network representation to the host's representation. On some machines, +such as 68000-based machines, this is a null operation. On others, +such as VAXes, this results in a swapping of bytes. Another routine +exists to convert a short integer from the host format to the network format, +called \fIhtons()\fP; similar routines exist for long integers. +For further information, refer to the +entry for \fIbyteorder\fP in section 3 of the manual. +.b +.sh 1 "Connections" +.r +.pp +To send data between stream sockets (having communication style SOCK_STREAM), +the sockets must be connected. +Figures 7a and 7b show two programs that create such a connection. +The program in 7a is relatively simple. +To initiate a connection, this program simply creates +a stream socket, then calls \fIconnect()\fP, +specifying the address of the socket to which +it wishes its socket connected. Provided that the target socket exists and +is prepared to handle a connection, connection will be complete, +and the program can begin to send +messages. Messages will be delivered in order without message +boundaries, as with pipes. The connection is destroyed when either +socket is closed (or soon thereafter). If a process persists +in sending messages after the connection is closed, a SIGPIPE signal +is sent to the process by the operating system. Unless explicit action +is taken to handle the signal (see the manual page for \fIsignal\fP +or \fIsigvec\fP), +the process will terminate and the shell +will print the message ``broken pipe.'' +.(z +.ft CW +.so streamwrite.c +.ft +.ce 1 +Figure 7a\ \ Initiating an Internet domain stream connection +.)z +.(z +.ft CW +.so streamread.c +.ft +.ce 1 +Figure 7b\ \ Accepting an Internet domain stream connection +.sp 2 +.ft CW +.so strchkread.c +.ft +.ce 1 +Figure 7c\ \ Using select() to check for pending connections +.)z +.(z +- +.bl 5.8i +- +.\" accept.grn goes here +.sp +.ce 1 +Figure 8\ \ Establishing a stream connection +.)z +.pp +Forming a connection is asymmetrical; one process, such as the +program in Figure 7a, requests a connection with a particular socket, +the other process accepts connection requests. +Before a connection can be accepted a socket must be created and an address +bound to it. This +situation is illustrated in the top half of Figure 8. Process 2 +has created a socket and bound a port number to it. Process 1 has created an +unnamed socket. +The address bound to process 2's socket is then made known to process 1 and, +perhaps to several other potential communicants as well. +If there are several possible communicants, +this one socket might receive several requests for connections. +As a result, a new socket is created for each connection. This new socket +is the endpoint for communication within this process for this connection. +A connection may be destroyed by closing the corresponding socket. +.pp +The program in Figure 7b is a rather trivial example of a server. It +creates a socket to which it binds a name, which it then advertises. +(In this case it prints out the socket number.) The program then calls +\fIlisten()\fP for this socket. +Since several clients may attempt to connect more or less +simultaneously, a queue of pending connections is maintained in the system +address space. \fIListen()\fP +marks the socket as willing to accept connections and initializes the queue. +When a connection is requested, it is listed in the queue. If the +queue is full, an error status may be returned to the requester. +The maximum length of this queue is specified by the second argument of +\fIlisten()\fP; the maximum length is limited by the system. +Once the listen call has been completed, the program enters +an infinite loop. On each pass through the loop, a new connection is +accepted and removed from the queue, and, hence, a new socket for the +connection is created. The bottom half of Figure 8 shows the result of +Process 1 connecting with the named socket of Process 2, and Process 2 +accepting the connection. After the connection is created, the +service, in this case printing out the messages, is performed and the +connection socket closed. The \fIaccept()\fP +call will take a pending connection +request from the queue if one is available, or block waiting for a request. +Messages are read from the connection socket. +Reads from an active connection will normally block until data is available. +The number of bytes read is returned. When a connection is destroyed, +the read call returns immediately. The number of bytes returned will +be zero. +.pp +The program in Figure 7c is a slight variation on the server in Figure 7b. +It avoids blocking when there are no pending connection requests by +calling \fIselect()\fP +to check for pending requests before calling \fIaccept().\fP +This strategy is useful when connections may be received +on more than one socket, or when data may arrive on other connected +sockets before another connection request. +.pp +The programs in Figures 9a and 9b show a program using stream communication +in the UNIX domain. Streams in the UNIX domain can be used for this sort +of program in exactly the same way as Internet domain streams, except for +the form of the names and the restriction of the connections to a single +file system. There are some differences, however, in the functionality of +streams in the two domains, notably in the handling of +\fIout-of-band\fP data (discussed briefly below). These differences +are beyond the scope of this paper. +.(z +.ft CW +.so ustreamwrite.c +.ft +.ce 1 +Figure 9a\ \ Initiating a UNIX domain stream connection +.sp 2 +.ft CW +.so ustreamread.c +.ft +.ce 1 +Figure 9b\ \ Accepting a UNIX domain stream connection +.)z +.b +.sh 1 "Reads, Writes, Recvs, etc." +.r +.pp +UNIX 4.3BSD has several system calls for reading and writing information. +The simplest calls are \fIread() \fP and \fIwrite().\fP \fIWrite()\fP +takes as arguments the index of a descriptor, a pointer to a buffer +containing the data and the size of the data. +The descriptor may indicate either a file or a connected socket. +``Connected'' can mean either a connected stream socket (as described +in Section 8) or a datagram socket for which a \fIconnect()\fP +call has provided a default destination (see the \fIconnect()\fP manual page). +\fIRead()\fP also takes a descriptor that indicates either a file or a socket. +\fIWrite()\fP requires a connected socket since no destination is +specified in the parameters of the system call. +\fIRead()\fP can be used for either a connected or an unconnected socket. +These calls are, therefore, quite flexible and may be used to +write applications that require no assumptions about the source of +their input or the destination of their output. +There are variations on \fIread() \fP and \fIwrite()\fP +that allow the source and destination of the input and output to use +several separate buffers, while retaining the flexibility to handle +both files and sockets. These are \fIreadv()\fP and \fI writev(),\fP +for read and write \fIvector.\fP +.pp +It is sometimes necessary to send high priority data over a +connection that may have unread low priority data at the +other end. For example, a user interface process may be interpreting +commands and sending them on to another process through a stream connection. +The user interface may have filled the stream with as yet unprocessed +requests when the user types +a command to cancel all outstanding requests. +Rather than have the high priority data wait +to be processed after the low priority data, it is possible to +send it as \fIout-of-band\fP +(OOB) data. The notification of pending OOB data results in the generation of +a SIGURG signal, if this signal has been enabled (see the manual +page for \fIsignal\fP or \fIsigvec\fP). +See [Leffler 1986] for a more complete description of the OOB mechanism. +There are a pair of calls similar to \fIread\fP and \fIwrite\fP +that allow options, including sending +and receiving OOB information; these are \fI send()\fP +and \fIrecv().\fP +These calls are used only with sockets; specifying a descriptor for a file will +result in the return of an error status. These calls also allow +\fIpeeking\fP at data in a stream. +That is, they allow a process to read data without removing the data from +the stream. One use of this facility is to read ahead in a stream +to determine the size of the next item to be read. +When not using these options, these calls have the same functions as +\fIread()\fP and \fIwrite().\fP +.pp +To send datagrams, one must be allowed to specify the destination. +The call \fIsendto()\fP +takes a destination address as an argument and is therefore used for +sending datagrams. The call \fIrecvfrom()\fP +is often used to read datagrams, since this call returns the address +of the sender, if it is available, along with the data. +If the identity of the sender does not matter, one may use \fIread()\fP +or \fIrecv().\fP +.pp +Finally, there are a pair of calls that allow the sending and +receiving of messages from multiple buffers, when the address of the +recipient must be specified. These are \fIsendmsg()\fP and +\fIrecvmsg().\fP +These calls are actually quite general and have other uses, +including, in the UNIX domain, the transmission of a file descriptor from one +process to another. +.pp +The various options for reading and writing are shown in Figure 10, +together with their parameters. The parameters for each system call +reflect the differences in function of the different calls. +In the examples given in this paper, the calls \fIread()\fP and +\fIwrite()\fP have been used whenever possible. +.(z +.ft CW + /* + * The variable descriptor may be the descriptor of either a file + * or of a socket. + */ + cc = read(descriptor, buf, nbytes) + int cc, descriptor; char *buf; int nbytes; + + /* + * An iovec can include several source buffers. + */ + cc = readv(descriptor, iov, iovcnt) + int cc, descriptor; struct iovec *iov; int iovcnt; + + cc = write(descriptor, buf, nbytes) + int cc, descriptor; char *buf; int nbytes; + + cc = writev(descriptor, iovec, ioveclen) + int cc, descriptor; struct iovec *iovec; int ioveclen; + + /* + * The variable ``sock'' must be the descriptor of a socket. + * Flags may include MSG_OOB and MSG_PEEK. + */ + cc = send(sock, msg, len, flags) + int cc, sock; char *msg; int len, flags; + + cc = sendto(sock, msg, len, flags, to, tolen) + int cc, sock; char *msg; int len, flags; + struct sockaddr *to; int tolen; + + cc = sendmsg(sock, msg, flags) + int cc, sock; struct msghdr msg[]; int flags; + + cc = recv(sock, buf, len, flags) + int cc, sock; char *buf; int len, flags; + + cc = recvfrom(sock, buf, len, flags, from, fromlen) + int cc, sock; char *buf; int len, flags; + struct sockaddr *from; int *fromlen; + + cc = recvmsg(sock, msg, flags) + int cc, socket; struct msghdr msg[]; int flags; +.ft +.sp 1 +.ce 1 +Figure 10\ \ Varieties of read and write commands +.)z +.b +.sh 1 "Choices" +.r +.pp +This paper has presented examples of some of the forms +of communication supported by +Berkeley UNIX 4.3BSD. These have been presented in an order chosen for +ease of presentation. It is useful to review these options emphasizing the +factors that make each attractive. +.pp +Pipes have the advantage of portability, in that they are supported in all +UNIX systems. They also are relatively +simple to use. Socketpairs share this simplicity and have the additional +advantage of allowing bidirectional communication. The major shortcoming +of these mechanisms is that they require communicating processes to be +descendants of a common process. They do not allow intermachine communication. +.pp +The two communication domains, UNIX and Internet, allow processes with no common +ancestor to communicate. +Of the two, only the Internet domain allows +communication between machines. +This makes the Internet domain a necessary +choice for processes running on separate machines. +.pp +The choice between datagrams and stream communication is best made by +carefully considering the semantic and performance +requirements of the application. +Streams can be both advantageous and disadvantageous. One disadvantage +is that a process is only allowed a limited number of open streams, +as there are usually only 64 entries available in the open descriptor +table. This can cause problems if a single server must talk with a large +number of clients. +Another is that for delivering a short message the stream setup and +teardown time can be unnecessarily long. Weighed against this are +the reliability built into the streams. This will often be the +deciding factor in favor of streams. +.b +.sh 1 "What to do Next" +.r +.pp +Many of the examples presented here can serve as models for multiprocess +programs and for programs distributed across several machines. +In developing a new multiprocess program, it is often easiest to +first write the code to create the processes and communication paths. +After this code is debugged, the code specific to the application can +be added. +.pp +An introduction to the UNIX system and programming using UNIX system calls +can be found in [Kernighan and Pike 1984]. +Further documentation of the Berkeley UNIX 4.3BSD IPC mechanisms can be +found in [Leffler et al. 1986]. +More detailed information about particular calls and protocols +is provided in sections +2, 3 and 4 of the +UNIX Programmer's Manual [CSRG 1986]. +In particular the following manual pages are relevant: +.(b +.TS +l l. +creating and naming sockets socket(2), bind(2) +establishing connections listen(2), accept(2), connect(2) +transferring data read(2), write(2), send(2), recv(2) +addresses inet(4F) +protocols tcp(4P), udp(4P). +.TE +.)b +.(b +.sp +.b +Acknowledgements +.pp +I would like to thank Sam Leffler and Mike Karels for their help in +understanding the IPC mechanisms and all the people whose comments +have helped in writing and improving this report. +.pp +This work was sponsored by the Defense Advanced Research Projects Agency +(DoD), ARPA Order No. 4031, monitored by the Naval Electronics Systems +Command under contract No. N00039-C-0235. +The views and conclusions contained in this document are those of the +author and should not be interpreted as representing official policies, +either expressed or implied, of the Defense Research Projects Agency +or of the US Government. +.)b +.(b +.sp +.b +References +.r +.sp +.ls 1 +B.W. Kernighan & R. Pike, 1984, +.i "The UNIX Programming Environment." +Englewood Cliffs, N.J.: Prentice-Hall. +.sp +.ls 1 +B.W. Kernighan & D.M. Ritchie, 1978, +.i "The C Programming Language," +Englewood Cliffs, N.J.: Prentice-Hall. +.sp +.ls 1 +S.J. Leffler, R.S. Fabry, W.N. Joy, P. Lapsley, S. Miller & C. Torek, 1986, +.i "An Advanced 4.3BSD Interprocess Communication Tutorial." +Computer Systems Research Group, +Department of Electrical Engineering and Computer Science, +University of California, Berkeley. +.sp +.ls 1 +Computer Systems Research Group, 1986, +.i "UNIX Programmer's Manual, 4.3 Berkeley Software Distribution." +Computer Systems Research Group, +Department of Electrical Engineering and Computer Science, +University of California, Berkeley. +.)b diff --git a/doc/ps1/07.ipctut/udgramread.c b/doc/ps1/07.ipctut/udgramread.c new file mode 100644 index 00000000..ddeb6574 --- /dev/null +++ b/doc/ps1/07.ipctut/udgramread.c @@ -0,0 +1,53 @@ +.\" Copyright (c) 1986 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)udgramread.c 6.3 (Berkeley) 5/8/86 +.\" +#include +#include +#include + +/* + * In the included file a sockaddr_un is defined as follows + * struct sockaddr_un { + * short sun_family; + * char sun_path[108]; + * }; + */ + +#include + +#define NAME "socket" + +/* + * This program creates a UNIX domain datagram socket, binds a name to it, + * then reads from the socket. + */ +main() +{ + int sock, length; + struct sockaddr_un name; + char buf[1024]; + + /* Create socket from which to read. */ + sock = socket(AF_UNIX, SOCK_DGRAM, 0); + if (sock < 0) { + perror("opening datagram socket"); + exit(1); + } + /* Create name. */ + name.sun_family = AF_UNIX; + strcpy(name.sun_path, NAME); + if (bind(sock, &name, sizeof(struct sockaddr_un))) { + perror("binding name to datagram socket"); + exit(1); + } + printf("socket -->%s\en", NAME); + /* Read from the socket */ + if (read(sock, buf, 1024) < 0) + perror("receiving datagram packet"); + printf("-->%s\en", buf); + close(sock); + unlink(NAME); +} diff --git a/doc/ps1/07.ipctut/udgramsend.c b/doc/ps1/07.ipctut/udgramsend.c new file mode 100644 index 00000000..8d89c787 --- /dev/null +++ b/doc/ps1/07.ipctut/udgramsend.c @@ -0,0 +1,41 @@ +.\" Copyright (c) 1986 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)udgramsend.c 6.2 (Berkeley) 5/8/86 +.\" +#include +#include +#include +#include + +#define DATA "The sea is calm tonight, the tide is full . . ." + +/* + * Here I send a datagram to a receiver whose name I get from the command + * line arguments. The form of the command line is udgramsend pathname + */ + +main(argc, argv) + int argc; + char *argv[]; +{ + int sock; + struct sockaddr_un name; + + /* Create socket on which to send. */ + sock = socket(AF_UNIX, SOCK_DGRAM, 0); + if (sock < 0) { + perror("opening datagram socket"); + exit(1); + } + /* Construct name of socket to send to. */ + name.sun_family = AF_UNIX; + strcpy(name.sun_path, argv[1]); + /* Send message. */ + if (sendto(sock, DATA, sizeof(DATA), 0, + &name, sizeof(struct sockaddr_un)) < 0) { + perror("sending datagram message"); + } + close(sock); +} diff --git a/doc/ps1/07.ipctut/ustreamread.c b/doc/ps1/07.ipctut/ustreamread.c new file mode 100644 index 00000000..c010e9e3 --- /dev/null +++ b/doc/ps1/07.ipctut/ustreamread.c @@ -0,0 +1,69 @@ +.\" Copyright (c) 1986 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)ustreamread.c 6.3 (Berkeley) 5/8/86 +.\" +#include +#include +#include +#include + +#define NAME "socket" + +/* + * This program creates a socket in the UNIX domain and binds a name to it. + * After printing the socket's name it begins a loop. Each time through the + * loop it accepts a connection and prints out messages from it. When the + * connection breaks, or a termination message comes through, the program + * accepts a new connection. + */ +main() +{ + int sock, msgsock, rval; + struct sockaddr_un server; + char buf[1024]; + + /* Create socket */ + sock = socket(AF_UNIX, SOCK_STREAM, 0); + if (sock < 0) { + perror("opening stream socket"); + exit(1); + } + /* Name socket using file system name */ + server.sun_family = AF_UNIX; + strcpy(server.sun_path, NAME); + if (bind(sock, &server, sizeof(struct sockaddr_un))) { + perror("binding stream socket"); + exit(1); + } + printf("Socket has name %s\en", server.sun_path); + /* Start accepting connections */ + listen(sock, 5); + for (;;) { + msgsock = accept(sock, 0, 0); + if (msgsock == -1) + perror("accept"); + else do { + bzero(buf, sizeof(buf)); + if ((rval = read(msgsock, buf, 1024)) < 0) + perror("reading stream message"); + else if (rval == 0) + printf("Ending connection\en"); + else + printf("-->%s\en", buf); + } while (rval > 0); + close(msgsock); + } + /* + * The following statements are not executed, because they follow an + * infinite loop. However, most ordinary programs will not run + * forever. In the UNIX domain it is necessary to tell the file + * system that one is through using NAME. In most programs one uses + * the call unlink() as below. Since the user will have to kill this + * program, it will be necessary to remove the name by a command from + * the shell. + */ + close(sock); + unlink(NAME); +} diff --git a/doc/ps1/07.ipctut/ustreamwrite.c b/doc/ps1/07.ipctut/ustreamwrite.c new file mode 100644 index 00000000..409906bc --- /dev/null +++ b/doc/ps1/07.ipctut/ustreamwrite.c @@ -0,0 +1,44 @@ +.\" Copyright (c) 1986 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)ustreamwrite.c 6.3 (Berkeley) 5/8/86 +.\" +#include +#include +#include +#include + +#define DATA "Half a league, half a league . . ." + +/* + * This program connects to the socket named in the command line and sends a + * one line message to that socket. The form of the command line is + * ustreamwrite pathname + */ +main(argc, argv) + int argc; + char *argv[]; +{ + int sock; + struct sockaddr_un server; + char buf[1024]; + + /* Create socket */ + sock = socket(AF_UNIX, SOCK_STREAM, 0); + if (sock < 0) { + perror("opening stream socket"); + exit(1); + } + /* Connect socket using name specified by command line. */ + server.sun_family = AF_UNIX; + strcpy(server.sun_path, argv[1]); + + if (connect(sock, &server, sizeof(struct sockaddr_un)) < 0) { + close(sock); + perror("connecting stream socket"); + exit(1); + } + if (write(sock, DATA, sizeof(DATA)) < 0) + perror("writing on stream socket"); +} diff --git a/doc/ps1/08.ipc/0.t b/doc/ps1/08.ipc/0.t new file mode 100644 index 00000000..df3f0f30 --- /dev/null +++ b/doc/ps1/08.ipc/0.t @@ -0,0 +1,65 @@ +.\" Copyright (c) 1986 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)0.t 1.3 (Berkeley) 5/2/86 +.\" +.EH 'PS1:8-%''Advanced 4.3BSD IPC Tutorial' +.OH 'Advanced 4.3BSD IPC Tutorial''PS1:8-%' +.ds lq `` +.ds rq '' +.de DT +.if t .ta .5i 1.25i 2.5i 3.75i +.\" 3.5i went to 3.8i +.if n .ta .7i 1.75i 3.8i +.. +.bd S B 3 +.TL +An Advanced 4.3BSD Interprocess Communication Tutorial +.AU +Samuel J. Leffler +.AU +Robert S. Fabry +.AU +William N. Joy +.AU +Phil Lapsley +.AI +Computer Systems Research Group +Department of Electrical Engineering and Computer Science +University of California, Berkeley +Berkeley, California 94720 +.sp 2 +.AU +Steve Miller +.AU +Chris Torek +.AI +Heterogeneous Systems Laboratory +Department of Computer Science +University of Maryland, College Park +College Park, Maryland 20742 +.de IR +\fI\\$1\fP\\$2 +.. +.de UX +UNIX\\$1 +.. +.AB +.PP +.FS +* \s-2UNIX\s0 is a Trademark of Bell Laboratories. +.FE +This document provides an introduction to the interprocess +communication facilities included in the +4.3BSD release of the +.UX * +system. +.PP +It discusses the overall model for interprocess communication +and introduces the interprocess communication primitives +which have been added to the system. The majority of the +document considers the use of these primitives in developing +applications. The reader is expected to be familiar with +the C programming language as all examples are written in C. +.AE diff --git a/doc/ps1/08.ipc/1.t b/doc/ps1/08.ipc/1.t new file mode 100644 index 00000000..078a6c62 --- /dev/null +++ b/doc/ps1/08.ipc/1.t @@ -0,0 +1,81 @@ +.\" Copyright (c) 1986 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)1.t 1.3 (Berkeley) 5/2/86 +.\" +.\".ds LH "4.3BSD IPC Primer +.\".ds RH Introduction +.\".ds RF "Leffler/Fabry/Joy +.\".ds LF "\*(DY +.\".ds CF " +.nr H1 1 +.LP +.bp +.LG +.B +.ce +1. INTRODUCTION +.sp 2 +.R +.NL +One of the most important additions to UNIX in 4.2BSD was interprocess +communication. +These facilities were the result of +more than two years of discussion and research. The facilities +provided in 4.2BSD incorporated many of the ideas from current +research, while trying to maintain the UNIX philosophy of +simplicity and conciseness. +The current release of Berkeley UNIX, 4.3BSD, +completes some of the IPC facilities +and provides an upward-compatible interface. +It is hoped that the interprocess communication +facilities included in 4.3BSD will establish a +standard for UNIX. From the response to the design, +it appears many organizations carrying out +work with UNIX are adopting it. +.PP +UNIX has previously been very weak in the area of interprocess +communication. Prior to the 4BSD facilities, the only +standard mechanism which allowed two processes to communicate were +pipes (the mpx files which were part of Version 7 were +experimental). Unfortunately, pipes are very restrictive +in that +the two communicating processes must be related through a +common ancestor. +Further, the semantics of pipes makes them almost impossible +to maintain in a distributed environment. +.PP +Earlier attempts at extending the IPC facilities of UNIX have +met with mixed reaction. The majority of the problems have +been related to the fact that these facilities have been tied to +the UNIX file system, either through naming or implementation. +Consequently, the IPC facilities provided in 4.3BSD have been +designed as a totally independent subsystem. The 4.3BSD IPC +allows processes to rendezvous in many ways. +Processes may rendezvous through a UNIX file system-like +name space (a space where all names are path names) +as well as through a +network name space. In fact, new name spaces may +be added at a future time with only minor changes visible +to users. Further, the communication facilities +have been extended to include more than the simple byte stream +provided by a pipe. These extensions have resulted +in a completely new part of the system which users will need +time to familiarize themselves with. It is likely that as +more use is made of these facilities they will be refined; +only time will tell. +.PP +This document provides a high-level description +of the IPC facilities in 4.3BSD and their use. +It is designed to complement the manual pages for the IPC primitives +by examples of their use. +The remainder of this document is organized in four sections. +Section 2 introduces the IPC-related system calls and the basic model +of communication. Section 3 describes some of the supporting +library routines users may find useful in constructing distributed +applications. Section 4 is concerned with the client/server model +used in developing applications and includes examples of the +two major types of servers. Section 5 delves into advanced topics +which sophisticated users are likely to encounter when using +the IPC facilities. diff --git a/doc/ps1/08.ipc/2.t b/doc/ps1/08.ipc/2.t new file mode 100644 index 00000000..a19d556a --- /dev/null +++ b/doc/ps1/08.ipc/2.t @@ -0,0 +1,683 @@ +.\" Copyright (c) 1986 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)2.t 1.3 (Berkeley) 5/2/86 +.\" +.\".ds RH "Basics +.bp +.nr H1 2 +.nr H2 0 +.bp +.LG +.B +.ce +2. BASICS +.sp 2 +.R +.NL +.PP +The basic building block for communication is the \fIsocket\fP. +A socket is an endpoint of communication to which a name may +be \fIbound\fP. Each socket in use has a \fItype\fP +and one or more associated processes. Sockets exist within +\fIcommunication domains\fP. +A communication domain is an +abstraction introduced to bundle common properties of +processes communicating through sockets. +One such property is the scheme used to name sockets. For +example, in the UNIX communication domain sockets are +named with UNIX path names; e.g. a +socket may be named \*(lq/dev/foo\*(rq. Sockets normally +exchange data only with +sockets in the same domain (it may be possible to cross domain +boundaries, but only if some translation process is +performed). The +4.3BSD IPC facilities support three separate communication domains: +the UNIX domain, for on-system communication; +the Internet domain, which is used by +processes which communicate +using the the DARPA standard communication protocols; +and the NS domain, which is used by processes which +communicate using the Xerox standard communication +protocols*. +.FS +* See \fIInternet Transport Protocols\fP, Xerox System Integration +Standard (XSIS)028112 for more information. This document is +almost a necessity for one trying to write NS applications. +.FE +The underlying communication +facilities provided by these domains have a significant influence +on the internal system implementation as well as the interface to +socket facilities available to a user. An example of the +latter is that a socket \*(lqoperating\*(rq in the UNIX domain +sees a subset of the error conditions which are possible +when operating in the Internet (or NS) domain. +.NH 2 +Socket types +.PP +Sockets are +typed according to the communication properties visible to a +user. +Processes are presumed to communicate only between sockets of +the same type, although there is +nothing that prevents communication between sockets of different +types should the underlying communication +protocols support this. +.PP +Four types of sockets currently are available to a user. +A \fIstream\fP socket provides for the bidirectional, reliable, +sequenced, and unduplicated flow of data without record boundaries. +Aside from the bidirectionality of data flow, a pair of connected +stream sockets provides an interface nearly identical to that of pipes\(dg. +.FS +\(dg In the UNIX domain, in fact, the semantics are identical and, +as one might expect, pipes have been implemented internally +as simply a pair of connected stream sockets. +.FE +.PP +A \fIdatagram\fP socket supports bidirectional flow of data which +is not promised to be sequenced, reliable, or unduplicated. +That is, a process +receiving messages on a datagram socket may find messages duplicated, +and, possibly, +in an order different from the order in which it was sent. +An important characteristic of a datagram +socket is that record boundaries in data are preserved. Datagram +sockets closely model the facilities found in many contemporary +packet switched networks such as the Ethernet. +.PP +A \fIraw\fP socket provides users access to +the underlying communication +protocols which support socket abstractions. +These sockets are normally datagram oriented, though their +exact characteristics are dependent on the interface provided by +the protocol. Raw sockets are not intended for the general user; they +have been provided mainly for those interested in developing new +communication protocols, or for gaining access to some of the more +esoteric facilities of an existing protocol. The use of raw sockets +is considered in section 5. +.PP +A \fIsequenced packet\fP socket is similar to a stream socket, +with the exception that record boundaries are preserved. This +interface is provided only as part of the NS socket abstraction, +and is very important in most serious NS applications. +Sequenced-packet sockets allow the user to manipulate the +SPP or IDP headers on a packet or a group of packets either +by writing a prototype header along with whatever data is +to be sent, or by specifying a default header to be used with +all outgoing data, and allows the user to receive the headers +on incoming packets. The use of these options is considered in +section 5. +.PP +Another potential socket type which has interesting properties is +the \fIreliably delivered +message\fP socket. +The reliably delivered message socket has +similar properties to a datagram socket, but with +reliable delivery. There is currently no support for this +type of socket, but a reliably delivered message protocol +similar to Xerox's Packet Exchange Protocol (PEX) may be +simulated at the user level. More information on this topic +can be found in section 5. +.NH 2 +Socket creation +.PP +To create a socket the \fIsocket\fP system call is used: +.DS +s = socket(domain, type, protocol); +.DE +This call requests that the system create a socket in the specified +\fIdomain\fP and of the specified \fItype\fP. A particular protocol may +also be requested. If the protocol is left unspecified (a value +of 0), the system will select an appropriate protocol from those +protocols which comprise the communication domain and which +may be used to support the requested socket type. The user is +returned a descriptor (a small integer number) which may be used +in later system calls which operate on sockets. The domain is specified as +one of the manifest constants defined in the file <\fIsys/socket.h\fP>. +For the UNIX domain the constant is AF_UNIX*; for the Internet +.FS +* The manifest constants are named AF_whatever as they indicate +the ``address format'' to use in interpreting names. +.FE +domain AF_INET; and for the NS domain, AF_NS. +The socket types are also defined in this file +and one of SOCK_STREAM, SOCK_DGRAM, SOCK_RAW, or SOCK_SEQPACKET +must be specified. +To create a stream socket in the Internet domain the following +call might be used: +.DS +s = socket(AF_INET, SOCK_STREAM, 0); +.DE +This call would result in a stream socket being created with the TCP +protocol providing the underlying communication support. To +create a datagram socket for on-machine use the call might +be: +.DS +s = socket(AF_UNIX, SOCK_DGRAM, 0); +.DE +.PP +The default protocol (used when the \fIprotocol\fP argument to the +\fIsocket\fP call is 0) should be correct for most every +situation. However, it is possible to specify a protocol +other than the default; this will be covered in +section 5. +.PP +There are several reasons a socket call may fail. Aside from +the rare occurrence of lack of memory (ENOBUFS), a socket +request may fail due to a request for an unknown protocol +(EPROTONOSUPPORT), or a request for a type of socket for +which there is no supporting protocol (EPROTOTYPE). +.NH 2 +Binding local names +.PP +A socket is created without a name. Until a name is bound +to a socket, processes have no way to reference it and, consequently, +no messages may be received on it. +Communicating processes are bound +by an \fIassociation\fP. In the Internet and NS domains, +an association +is composed of local and foreign +addresses, and local and foreign ports, +while in the UNIX domain, an association is composed of +local and foreign path names (the phrase ``foreign pathname'' +means a pathname created by a foreign process, not a pathname +on a foreign system). +In most domains, associations must be unique. +In the Internet domain there +may never be duplicate tuples. UNIX domain sockets need not always +be bound to a name, but when bound +there may never be duplicate tuples. +The pathnames may not refer to files +already existing on the system +in 4.3; the situation may change in future releases. +.PP +The \fIbind\fP system call allows a process to specify half of +an association, +(or ), while the \fIconnect\fP +and \fIaccept\fP primitives are used to complete a socket's association. +.PP +In the Internet domain, +binding names to sockets can be fairly complex. +Fortunately, it is usually not necessary to specifically bind an +address and port number to a socket, because the +\fIconnect\fP and \fIsend\fP calls will automatically +bind an appropriate address if they are used with an +unbound socket. The process of binding names to NS +sockets is similar in most ways to that of +binding names to Internet sockets. +.PP +The \fIbind\fP system call is used as follows: +.DS +bind(s, name, namelen); +.DE +The bound name is a variable length byte string which is interpreted +by the supporting protocol(s). Its interpretation may vary from +communication domain to communication domain (this is one of +the properties which comprise the \*(lqdomain\*(rq). +As mentioned, in the +Internet domain names contain an Internet address and port +number. NS domain names contain an NS address and +port number. In the UNIX domain, names contain a path name and +a family, which is always AF_UNIX. If one wanted to bind +the name \*(lq/tmp/foo\*(rq to a UNIX domain socket, the +following code would be used*: +.FS +* Note that, although the tendency here is to call the \*(lqaddr\*(rq +structure \*(lqsun\*(rq, doing so would cause problems if the code +were ever ported to a Sun workstation. +.FE +.DS +#include + ... +struct sockaddr_un addr; + ... +strcpy(addr.sun_path, "/tmp/foo"); +addr.sun_family = AF_UNIX; +bind(s, (struct sockaddr *) &addr, strlen(addr.sun_path) + + sizeof (addr.sun_family)); +.DE +Note that in determining the size of a UNIX domain address null +bytes are not counted, which is why \fIstrlen\fP is used. In +the current implementation of UNIX domain IPC under 4.3BSD, +the file name +referred to in \fIaddr.sun_path\fP is created as a socket +in the system file space. +The caller must, therefore, have +write permission in the directory where +\fIaddr.sun_path\fP is to reside, and this file should be deleted by the +caller when it is no longer needed. Future versions of 4BSD +may not create this file. +.PP +In binding an Internet address things become more +complicated. The actual call is similar, +.DS +#include +#include + ... +struct sockaddr_in sin; + ... +bind(s, (struct sockaddr *) &sin, sizeof (sin)); +.DE +but the selection of what to place in the address \fIsin\fP +requires some discussion. We will come back to the problem +of formulating Internet addresses in section 3 when +the library routines used in name resolution are discussed. +.PP +Binding an NS address to a socket is even more +difficult, +especially since the Internet library routines do not +work with NS hostnames. The actual call is again similar: +.DS +#include +#include + ... +struct sockaddr_ns sns; + ... +bind(s, (struct sockaddr *) &sns, sizeof (sns)); +.DE +Again, discussion of what to place in a \*(lqstruct sockaddr_ns\*(rq +will be deferred to section 3. +.NH 2 +Connection establishment +.PP +Connection establishment is usually asymmetric, +with one process a \*(lqclient\*(rq and the other a \*(lqserver\*(rq. +The server, when willing to offer its advertised services, +binds a socket to a well-known address associated with the service +and then passively \*(lqlistens\*(rq on its socket. +It is then possible for an unrelated process to rendezvous +with the server. +The client requests services from the server by initiating a +\*(lqconnection\*(rq to the server's socket. +On the client side the \fIconnect\fP call is +used to initiate a connection. Using the UNIX domain, this +might appear as, +.DS +struct sockaddr_un server; + ... +connect(s, (struct sockaddr *)&server, strlen(server.sun_path) + + sizeof (server.sun_family)); +.DE +while in the Internet domain, +.DS +struct sockaddr_in server; + ... +connect(s, (struct sockaddr *)&server, sizeof (server)); +.DE +and in the NS domain, +.DS +struct sockaddr_ns server; + ... +connect(s, (struct sockaddr *)&server, sizeof (server)); +.DE +where \fIserver\fP in the example above would contain either the UNIX +pathname, Internet address and port number, or NS address and +port number of the server to which the +client process wishes to speak. +If the client process's socket is unbound at the time of +the connect call, +the system will automatically select and bind a name to +the socket if necessary; c.f. section 5.4. +This is the usual way that local addresses are bound +to a socket. +.PP +An error is returned if the connection was unsuccessful +(any name automatically bound by the system, however, remains). +Otherwise, the socket is associated with the server and +data transfer may begin. Some of the more common errors returned +when a connection attempt fails are: +.IP ETIMEDOUT +.br +After failing to establish a connection for a period of time, +the system decided there was no point in retrying the +connection attempt any more. This usually occurs because +the destination host is down, or because problems in +the network resulted in transmissions being lost. +.IP ECONNREFUSED +.br +The host refused service for some reason. +This is usually +due to a server process +not being present at the requested name. +.IP "ENETDOWN or EHOSTDOWN" +.br +These operational errors are +returned based on status information delivered to +the client host by the underlying communication services. +.IP "ENETUNREACH or EHOSTUNREACH" +.br +These operational errors can occur either because the network +or host is unknown (no route to the network or host is present), +or because of status information returned by intermediate +gateways or switching nodes. Many times the status returned +is not sufficient to distinguish a network being down from a +host being down, in which case the system +indicates the entire network is unreachable. +.PP +For the server to receive a client's connection it must perform +two steps after binding its socket. +The first is to indicate a willingness to listen for +incoming connection requests: +.DS +listen(s, 5); +.DE +The second parameter to the \fIlisten\fP call specifies the maximum +number of outstanding connections which may be queued awaiting +acceptance by the server process; this number +may be limited by the system. Should a connection be +requested while the queue is full, the connection will not be +refused, but rather the individual messages which comprise the +request will be ignored. This gives a harried server time to +make room in its pending connection queue while the client +retries the connection request. Had the connection been returned +with the ECONNREFUSED error, the client would be unable to tell +if the server was up or not. As it is now it is still possible +to get the ETIMEDOUT error back, though this is unlikely. The +backlog figure supplied with the listen call is currently limited +by the system to a maximum of 5 pending connections on any +one queue. This avoids the problem of processes hogging system +resources by setting an infinite backlog, then ignoring +all connection requests. +.PP +With a socket marked as listening, a server may \fIaccept\fP +a connection: +.DS +struct sockaddr_in from; + ... +fromlen = sizeof (from); +newsock = accept(s, (struct sockaddr *)&from, &fromlen); +.DE +(For the UNIX domain, \fIfrom\fP would be declared as a +\fIstruct sockaddr_un\fP, and for the NS domain, \fIfrom\fP +would be declared as a \fIstruct sockaddr_ns\fP, +but nothing different would need +to be done as far as \fIfromlen\fP is concerned. In the examples +which follow, only Internet routines will be discussed.) A new +descriptor is returned on receipt of a connection (along with +a new socket). If the server wishes to find out who its client is, +it may supply a buffer for the client socket's name. The value-result +parameter \fIfromlen\fP is initialized by the server to indicate how +much space is associated with \fIfrom\fP, then modified on return +to reflect the true size of the name. If the client's name is not +of interest, the second parameter may be a null pointer. +.PP +\fIAccept\fP normally blocks. That is, \fIaccept\fP +will not return until a connection is available or the system call +is interrupted by a signal to the process. Further, there is no +way for a process to indicate it will accept connections from only +a specific individual, or individuals. It is up to the user process +to consider who the connection is from and close down the connection +if it does not wish to speak to the process. If the server process +wants to accept connections on more than one socket, or wants to avoid blocking +on the accept call, there are alternatives; they will be considered +in section 5. +.NH 2 +Data transfer +.PP +With a connection established, data may begin to flow. To send +and receive data there are a number of possible calls. +With the peer entity at each end of a connection +anchored, a user can send or receive a message without specifying +the peer. As one might expect, in this case, then +the normal \fIread\fP and \fIwrite\fP system calls are usable, +.DS +write(s, buf, sizeof (buf)); +read(s, buf, sizeof (buf)); +.DE +In addition to \fIread\fP and \fIwrite\fP, +the new calls \fIsend\fP and \fIrecv\fP +may be used: +.DS +send(s, buf, sizeof (buf), flags); +recv(s, buf, sizeof (buf), flags); +.DE +While \fIsend\fP and \fIrecv\fP are virtually identical to +\fIread\fP and \fIwrite\fP, +the extra \fIflags\fP argument is important. The flags, +defined in \fI\fP, may be +specified as a non-zero value if one or more +of the following is required: +.DS +.TS +l l. +MSG_OOB send/receive out of band data +MSG_PEEK look at data without reading +MSG_DONTROUTE send data without routing packets +.TE +.DE +Out of band data is a notion specific to stream sockets, and one +which we will not immediately consider. The option to have data +sent without routing applied to the outgoing packets is currently +used only by the routing table management process, and is +unlikely to be of interest to the casual user. The ability +to preview data is, however, of interest. When MSG_PEEK +is specified with a \fIrecv\fP call, any data present is returned +to the user, but treated as still \*(lqunread\*(rq. That +is, the next \fIread\fP or \fIrecv\fP call applied to the socket will +return the data previously previewed. +.NH 2 +Discarding sockets +.PP +Once a socket is no longer of interest, it may be discarded +by applying a \fIclose\fP to the descriptor, +.DS +close(s); +.DE +If data is associated with a socket which promises reliable delivery +(e.g. a stream socket) when a close takes place, the system will +continue to attempt to transfer the data. +However, after a fairly long period of +time, if the data is still undelivered, it will be discarded. +Should a user have no use for any pending data, it may +perform a \fIshutdown\fP on the socket prior to closing it. +This call is of the form: +.DS +shutdown(s, how); +.DE +where \fIhow\fP is 0 if the user is no longer interested in reading +data, 1 if no more data will be sent, or 2 if no data is to +be sent or received. +.NH 2 +Connectionless sockets +.PP +To this point we have been concerned mostly with sockets which +follow a connection oriented model. However, there is also +support for connectionless interactions typical of the datagram +facilities found in contemporary packet switched networks. +A datagram socket provides a symmetric interface to data +exchange. While processes are still likely to be client +and server, there is no requirement for connection establishment. +Instead, each message includes the destination address. +.PP +Datagram sockets are created as before. +If a particular local address is needed, +the \fIbind\fP operation must precede the first data transmission. +Otherwise, the system will set the local address and/or port +when data is first sent. +To send data, the \fIsendto\fP primitive is used, +.DS +sendto(s, buf, buflen, flags, (struct sockaddr *)&to, tolen); +.DE +The \fIs\fP, \fIbuf\fP, \fIbuflen\fP, and \fIflags\fP +parameters are used as before. +The \fIto\fP and \fItolen\fP +values are used to indicate the address of the intended recipient of the +message. When +using an unreliable datagram interface, it is +unlikely that any errors will be reported to the sender. When +information is present locally to recognize a message that can +not be delivered (for instance when a network is unreachable), +the call will return \-1 and the global value \fIerrno\fP will +contain an error number. +.PP +To receive messages on an unconnected datagram socket, the +\fIrecvfrom\fP primitive is provided: +.DS +recvfrom(s, buf, buflen, flags, (struct sockaddr *)&from, &fromlen); +.DE +Once again, the \fIfromlen\fP parameter is handled in +a value-result fashion, initially containing the size of +the \fIfrom\fP buffer, and modified on return to indicate +the actual size of the address from which the datagram was received. +.PP +In addition to the two calls mentioned above, datagram +sockets may also use the \fIconnect\fP call to associate +a socket with a specific destination address. In this case, any +data sent on the socket will automatically be addressed +to the connected peer, and only data received from that +peer will be delivered to the user. Only one connected +address is permitted for each socket at one time; +a second connect will change the destination address, +and a connect to a null address (family AF_UNSPEC) +will disconnect. +Connect requests on datagram sockets return immediately, +as this simply results in the system recording +the peer's address (as compared to a stream socket, where a +connect request initiates establishment of an end to end +connection). \fIAccept\fP and \fIlisten\fP are not +used with datagram sockets. +.PP +While a datagram socket socket is connected, +errors from recent \fIsend\fP calls may be returned +asynchronously. +These errors may be reported on subsequent operations +on the socket, +or a special socket option used with \fIgetsockopt\fP, SO_ERROR, +may be used to interrogate the error status. +A \fIselect\fP for reading or writing will return true +when an error indication has been received. +The next operation will return the error, and the error status is cleared. +Other of the less +important details of datagram sockets are described +in section 5. +.NH 2 +Input/Output multiplexing +.PP +One last facility often used in developing applications +is the ability to multiplex i/o requests among multiple +sockets and/or files. This is done using the \fIselect\fP +call: +.DS +#include +#include + ... + +fd_set readmask, writemask, exceptmask; +struct timeval timeout; + ... +select(nfds, &readmask, &writemask, &exceptmask, &timeout); +.DE +\fISelect\fP takes as arguments pointers to three sets, one for +the set of file descriptors for which the caller wishes to +be able to read data on, one for those descriptors to which +data is to be written, and one for which exceptional conditions +are pending; out-of-band data is the only +exceptional condition currently implemented by the socket +If the user is not interested +in certain conditions (i.e., read, write, or exceptions), +the corresponding argument to the \fIselect\fP should +be a null pointer. +.PP +Each set is actually a structure containing an array of +long integer bit masks; the size of the array is set +by the definition FD_SETSIZE. +The array is be +long enough to hold one bit for each of FD_SETSIZE file descriptors. +.PP +The macros FD_SET(\fIfd, &mask\fP) and +FD_CLR(\fIfd, &mask\fP) +have been provided for adding and removing file descriptor +\fIfd\fP in the set \fImask\fP. The +set should be zeroed before use, and +the macro FD_ZERO(\fI&mask\fP) has been provided +to clear the set \fImask\fP. +The parameter \fInfds\fP in the \fIselect\fP call specifies the range +of file descriptors (i.e. one plus the value of the largest +descriptor) to be examined in a set. +.PP +A timeout value may be specified if the selection +is not to last more than a predetermined period of time. If +the fields in \fItimeout\fP are set to 0, the selection takes +the form of a +\fIpoll\fP, returning immediately. If the last parameter is +a null pointer, the selection will block indefinitely*. +.FS +* To be more specific, a return takes place only when a +descriptor is selectable, or when a signal is received by +the caller, interrupting the system call. +.FE +\fISelect\fP normally returns the number of file descriptors selected; +if the \fIselect\fP call returns due to the timeout expiring, then +the value 0 is returned. +If the \fIselect\fP terminates because of an error or interruption, +a \-1 is returned with the error number in \fIerrno\fP, +and with the file descriptor masks unchanged. +.PP +Assuming a successful return, the three sets will +indicate which +file descriptors are ready to be read from, written to, or +have exceptional conditions pending. +The status of a file descriptor in a select mask may be +tested with the \fIFD_ISSET(fd, &mask)\fP macro, which +returns a non-zero value if \fIfd\fP is a member of the set +\fImask\fP, and 0 if it is not. +.PP +To determine if there are connections waiting +on a socket to be used with an \fIaccept\fP call, +\fIselect\fP can be used, followed by +a \fIFD_ISSET(fd, &mask)\fP macro to check for read +readiness on the appropriate socket. If \fIFD_ISSET\fP +returns a non-zero value, indicating permission to read, then a +connection is pending on the socket. +.PP +As an example, to read data from two sockets, \fIs1\fP and +\fIs2\fP as it is available from each and with a one-second +timeout, the following code +might be used: +.DS +#include +#include + ... +fd_set read_template; +struct timeval wait; + ... +for (;;) { + wait.tv_sec = 1; /* one second */ + wait.tv_usec = 0; + + FD_ZERO(&read_template); + + FD_SET(s1, &read_template); + FD_SET(s2, &read_template); + + nb = select(FD_SETSIZE, &read_template, (fd_set *) 0, (fd_set *) 0, &wait); + if (nb <= 0) { + \fIAn error occurred during the \fPselect\fI, or + the \fPselect\fI timed out.\fP + } + + if (FD_ISSET(s1, &read_template)) { + \fISocket #1 is ready to be read from.\fP + } + + if (FD_ISSET(s2, &read_template)) { + \fISocket #2 is ready to be read from.\fP + } +} +.DE +.PP +In 4.2, the arguments to \fIselect\fP were pointers to integers +instead of pointers to \fIfd_set\fPs. This type of call +will still work as long as the number of file descriptors +being examined is less than the number of bits in an +integer; however, the methods illustrated above should +be used in all current programs. +.PP +\fISelect\fP provides a synchronous multiplexing scheme. +Asynchronous notification of output completion, input availability, +and exceptional conditions is possible through use of the +SIGIO and SIGURG signals described in section 5. diff --git a/doc/ps1/08.ipc/3.t b/doc/ps1/08.ipc/3.t new file mode 100644 index 00000000..3f9c22eb --- /dev/null +++ b/doc/ps1/08.ipc/3.t @@ -0,0 +1,381 @@ +.\" Copyright (c) 1986 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)3.t 1.4 (Berkeley) 5/2/86 +.\" +.\".ds RH "Network Library Routines +.bp +.nr H1 3 +.nr H2 0 +.bp +.LG +.B +.ce +3. NETWORK LIBRARY ROUTINES +.sp 2 +.R +.NL +.PP +The discussion in section 2 indicated the possible need to +locate and construct network addresses when using the +interprocess communication facilities in a distributed +environment. To aid in this task a number of routines +have been added to the standard C run-time library. +In this section we will consider the new routines provided +to manipulate network addresses. While the 4.3BSD networking +facilities support both the DARPA standard Internet protocols +and the Xerox NS protocols, most of the routines presented +in this section do not apply to the NS domain. Unless otherwise +stated, it should be assumed that the routines presented in this +section do not apply to the NS domain. +.PP +Locating a service on a remote host requires many levels of +mapping before client and server may +communicate. A service is assigned a name which is intended +for human consumption; e.g. \*(lqthe \fIlogin server\fP on host +monet\*(rq. +This name, and the name of the peer host, must then be translated +into network \fIaddresses\fP which are not necessarily suitable +for human consumption. Finally, the address must then used in locating +a physical \fIlocation\fP and \fIroute\fP to the service. The +specifics of these three mappings are likely to vary between +network architectures. For instance, it is desirable for a network +to not require hosts to +be named in such a way that their physical location is known by +the client host. Instead, underlying services in the network +may discover the actual location of the host at the time a client +host wishes to communicate. This ability to have hosts named in +a location independent manner may induce overhead in connection +establishment, as a discovery process must take place, +but allows a host to be physically mobile without requiring it to +notify its clientele of its current location. +.PP +Standard routines are provided for: mapping host names +to network addresses, network names to network numbers, +protocol names to protocol numbers, and service names +to port numbers and the appropriate protocol to +use in communicating with the server process. The +file <\fInetdb.h\fP> must be included when using any of these +routines. +.NH 2 +Host names +.PP +An Internet host name to address mapping is represented by +the \fIhostent\fP structure: +.DS +.if t .ta 0.6i 1.1i 2.6i +struct hostent { + char *h_name; /* official name of host */ + char **h_aliases; /* alias list */ + int h_addrtype; /* host address type (e.g., AF_INET) */ + int h_length; /* length of address */ + char **h_addr_list; /* list of addresses, null terminated */ +}; + +#define h_addr h_addr_list[0] /* first address, network byte order */ +.DE +The routine \fIgethostbyname\fP(3N) takes an Internet host name +and returns a \fIhostent\fP structure, +while the routine \fIgethostbyaddr\fP(3N) +maps Internet host addresses into a \fIhostent\fP structure. +.PP +The official name of the host and its public aliases are +returned by these routines, +along with the address type (family) and a null terminated list of +variable length address. This list of addresses is +required because it is possible +for a host to have many addresses, all having the same name. +The \fIh_addr\fP definition is provided for backward compatibility, +and is defined to be the first address in the list of addresses +in the \fIhostent\fP structure. +.PP +The database for these calls is provided either by the +file \fI/etc/hosts\fP (\fIhosts\fP\|(5)), +or by use of a nameserver, \fInamed\fP\|(8). +Because of the differences in these databases and their access protocols, +the information returned may differ. +When using the host table version of \fIgethostbyname\fP, +only one address will be returned, but all listed aliases will be included. +The nameserver version may return alternate addresses, +but will not provide any aliases other than one given as argument. +.PP +Unlike Internet names, NS names are always mapped into host +addresses by the use of a standard NS \fIClearinghouse service\fP, +a distributed name and authentication server. The algorithms +for mapping NS names to addresses via a Clearinghouse are +rather complicated, and the routines are not part of the +standard libraries. The user-contributed Courier (Xerox +remote procedure call protocol) compiler contains routines +to accomplish this mapping; see the documentation and +examples provided therein for more information. It is +expected that almost all software that has to communicate +using NS will need to use the facilities of +the Courier compiler. +.PP +An NS host address is represented by the following: +.DS +union ns_host { + u_char c_host[6]; + u_short s_host[3]; +}; + +union ns_net { + u_char c_net[4]; + u_short s_net[2]; +}; + +struct ns_addr { + union ns_net x_net; + union ns_host x_host; + u_short x_port; +}; +.DE +The following code fragment inserts a known NS address into +a \fIns_addr\fP: +.DS +#include +#include +#include + ... +u_long netnum; +struct sockaddr_ns dst; + ... +bzero((char *)&dst, sizeof(dst)); + +/* + * There is no convenient way to assign a long + * integer to a ``union ns_net'' at present; in + * the future, something will hopefully be provided, + * but this is the portable way to go for now. + * The network number below is the one for the NS net + * that the desired host (gyre) is on. + */ +netnum = htonl(2266); +dst.sns_addr.x_net = *(union ns_net *) &netnum; +dst.sns_family = AF_NS; + +/* + * host 2.7.1.0.2a.18 == "gyre:Computer Science:UofMaryland" + */ +dst.sns_addr.x_host.c_host[0] = 0x02; +dst.sns_addr.x_host.c_host[1] = 0x07; +dst.sns_addr.x_host.c_host[2] = 0x01; +dst.sns_addr.x_host.c_host[3] = 0x00; +dst.sns_addr.x_host.c_host[4] = 0x2a; +dst.sns_addr.x_host.c_host[5] = 0x18; +dst.sns_addr.x_port = htons(75); +.DE +.NH 2 +Network names +.PP +As for host names, routines for mapping network names to numbers, +and back, are provided. These routines return a \fInetent\fP +structure: +.DS +.DT +/* + * Assumption here is that a network number + * fits in 32 bits -- probably a poor one. + */ +struct netent { + char *n_name; /* official name of net */ + char **n_aliases; /* alias list */ + int n_addrtype; /* net address type */ + int n_net; /* network number, host byte order */ +}; +.DE +The routines \fIgetnetbyname\fP(3N), \fIgetnetbynumber\fP(3N), +and \fIgetnetent\fP(3N) are the network counterparts to the +host routines described above. The routines extract their +information from \fI/etc/networks\fP. +.PP +NS network numbers are determined either by asking your local +Xerox Network Administrator (and hardcoding the information +into your code), or by querying the Clearinghouse for addresses. +The internetwork router is the only process +that needs to manipulate network numbers on a regular basis; if +a process wishes to communicate with a machine, it should ask the +Clearinghouse for that machine's address (which will include +the net number). +.NH 2 +Protocol names +.PP +For protocols, which are defined in \fI/etc/protocols\fP, +the \fIprotoent\fP structure defines the +protocol-name mapping +used with the routines \fIgetprotobyname\fP(3N), +\fIgetprotobynumber\fP(3N), +and \fIgetprotoent\fP(3N): +.DS +.DT +struct protoent { + char *p_name; /* official protocol name */ + char **p_aliases; /* alias list */ + int p_proto; /* protocol number */ +}; +.DE +.PP +In the NS domain, protocols are indicated by the "client type" +field of a IDP header. No protocol database exists; see section +5 for more information. +.NH 2 +Service names +.PP +Information regarding services is a bit more complicated. A service +is expected to reside at a specific \*(lqport\*(rq and employ +a particular communication protocol. This view is consistent with +the Internet domain, but inconsistent with other network architectures. +Further, a service may reside on multiple ports. +If this occurs, the higher level library routines +will have to be bypassed or extended. +Services available are contained in the file \fI/etc/services\fP. +A service mapping is described by the \fIservent\fP structure, +.DS +.DT +struct servent { + char *s_name; /* official service name */ + char **s_aliases; /* alias list */ + int s_port; /* port number, network byte order */ + char *s_proto; /* protocol to use */ +}; +.DE +The routine \fIgetservbyname\fP(3N) maps service +names to a servent structure by specifying a service name and, +optionally, a qualifying protocol. Thus the call +.DS +sp = getservbyname("telnet", (char *) 0); +.DE +returns the service specification for a telnet server using +any protocol, while the call +.DS +sp = getservbyname("telnet", "tcp"); +.DE +returns only that telnet server which uses the TCP protocol. +The routines \fIgetservbyport\fP(3N) and \fIgetservent\fP(3N) are +also provided. The \fIgetservbyport\fP routine has an interface similar +to that provided by \fIgetservbyname\fP; an optional protocol name may +be specified to qualify lookups. +.PP +In the NS domain, services are handled by a central dispatcher +provided as part of the Courier remote procedure call facilities. +Again, the reader is referred to the Courier compiler documentation +and to the Xerox standard* +.FS +* \fICourier: The Remote Procedure Call Protocol\fP, XSIS 038112. +.FE +for further details. +.NH 2 +Miscellaneous +.PP +With the support routines described above, an Internet application program +should rarely have to deal directly +with addresses. This allows +services to be developed as much as possible in a network independent +fashion. It is clear, however, that purging all network dependencies +is very difficult. So long as the user is required to supply network +addresses when naming services and sockets there will always some +network dependency in a program. For example, the normal +code included in client programs, such as the remote login program, +is of the form shown in Figure 1. +(This example will be considered in more detail in section 4.) +.PP +If we wanted to make the remote login program independent of the +Internet protocols and addressing scheme we would be forced to add +a layer of routines which masked the network dependent aspects from +the mainstream login code. For the current facilities available in +the system this does not appear to be worthwhile. +.PP +Aside from the address-related data base routines, there are several +other routines available in the run-time library which are of interest +to users. These are intended mostly to simplify manipulation of +names and addresses. Table 1 summarizes the routines +for manipulating variable length byte strings and handling byte +swapping of network addresses and values. +.KF +.DS B +.TS +box; +l | l +l | l. +Call Synopsis +_ +bcmp(s1, s2, n) compare byte-strings; 0 if same, not 0 otherwise +bcopy(s1, s2, n) copy n bytes from s1 to s2 +bzero(base, n) zero-fill n bytes starting at base +htonl(val) convert 32-bit quantity from host to network byte order +htons(val) convert 16-bit quantity from host to network byte order +ntohl(val) convert 32-bit quantity from network to host byte order +ntohs(val) convert 16-bit quantity from network to host byte order +.TE +.DE +.ce +Table 1. C run-time routines. +.KE +.PP +The byte swapping routines are provided because the operating +system expects addresses to be supplied in network order. On +some architectures, such as the VAX, +host byte ordering is different than +network byte ordering. Consequently, +programs are sometimes required to byte swap quantities. The +library routines which return network addresses provide them +in network order so that they may simply be copied into the structures +provided to the system. This implies users should encounter the +byte swapping problem only when \fIinterpreting\fP network addresses. +For example, if an Internet port is to be printed out the following +code would be required: +.DS +printf("port number %d\en", ntohs(sp->s_port)); +.DE +On machines where unneeded these routines are defined as null +macros. +.DS +.if t .ta .5i 1.0i 1.5i 2.0i +.if n .ta .7i 1.4i 2.1i 2.8i +#include +#include +#include +#include +#include + ... +main(argc, argv) + int argc; + char *argv[]; +{ + struct sockaddr_in server; + struct servent *sp; + struct hostent *hp; + int s; + ... + sp = getservbyname("login", "tcp"); + if (sp == NULL) { + fprintf(stderr, "rlogin: tcp/login: unknown service\en"); + exit(1); + } + hp = gethostbyname(argv[1]); + if (hp == NULL) { + fprintf(stderr, "rlogin: %s: unknown host\en", argv[1]); + exit(2); + } + bzero((char *)&server, sizeof (server)); + bcopy(hp->h_addr, (char *)&server.sin_addr, hp->h_length); + server.sin_family = hp->h_addrtype; + server.sin_port = sp->s_port; + s = socket(AF_INET, SOCK_STREAM, 0); + if (s < 0) { + perror("rlogin: socket"); + exit(3); + } + ... + /* Connect does the bind() for us */ + + if (connect(s, (char *)&server, sizeof (server)) < 0) { + perror("rlogin: connect"); + exit(5); + } + ... +} +.DE +.ce +Figure 1. Remote login client code. diff --git a/doc/ps1/08.ipc/4.t b/doc/ps1/08.ipc/4.t new file mode 100644 index 00000000..fe179622 --- /dev/null +++ b/doc/ps1/08.ipc/4.t @@ -0,0 +1,484 @@ +.\" Copyright (c) 1986 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)4.t 1.3 (Berkeley) 5/2/86 +.\" +.\".ds RH "Client/Server Model +.bp +.nr H1 4 +.nr H2 0 +.sp 8i +.bp +.LG +.B +.ce +4. CLIENT/SERVER MODEL +.sp 2 +.R +.NL +.PP +The most commonly used paradigm in constructing distributed applications +is the client/server model. In this scheme client applications request +services from a server process. This implies an asymmetry in establishing +communication between the client and server which has been examined +in section 2. In this section we will look more closely at the interactions +between client and server, and consider some of the problems in developing +client and server applications. +.PP +The client and server require a well known set of conventions before +service may be rendered (and accepted). This set of conventions +comprises a protocol which must be implemented at both ends of a +connection. Depending on the situation, the protocol may be symmetric +or asymmetric. In a symmetric protocol, either side may play the +master or slave roles. In an asymmetric protocol, one side is +immutably recognized as the master, with the other as the slave. +An example of a symmetric protocol is the TELNET protocol used in +the Internet for remote terminal emulation. An example +of an asymmetric protocol is the Internet file transfer protocol, +FTP. No matter whether the specific protocol used in obtaining +a service is symmetric or asymmetric, when accessing a service there +is a \*(lqclient process\*(rq and a \*(lqserver process\*(rq. We +will first consider the properties of server processes, then +client processes. +.PP +A server process normally listens at a well known address for +service requests. That is, the server process remains dormant +until a connection is requested by a client's connection +to the server's address. At such a time +the server process ``wakes up'' and services the client, +performing whatever appropriate actions the client requests of it. +.PP +Alternative schemes which use a service server +may be used to eliminate a flock of server processes clogging the +system while remaining dormant most of the time. For Internet +servers in 4.3BSD, +this scheme has been implemented via \fIinetd\fP, the so called +``internet super-server.'' \fIInetd\fP listens at a variety +of ports, determined at start-up by reading a configuration file. +When a connection is requested to a port on which \fIinetd\fP is +listening, \fIinetd\fP executes the appropriate server program to handle the +client. With this method, clients are unaware that an +intermediary such as \fIinetd\fP has played any part in the +connection. \fIInetd\fP will be described in more detail in +section 5. +.PP +A similar alternative scheme is used by most Xerox services. In general, +the Courier dispatch process (if used) accepts connections from +processes requesting services of some sort or another. The client +processes request a particular triple. If the dispatcher knows of such a program, it is +started to handle the request; if not, an error is reported to the +client. In this way, only one port is required to service a large +variety of different requests. Again, the Courier facilities are +not available without the use and installation of the Courier +compiler. The information presented in this section applies only +to NS clients and services that do not use Courier. +.NH 2 +Servers +.PP +In 4.3BSD most servers are accessed at well known Internet addresses +or UNIX domain names. For +example, the remote login server's main loop is of the form shown +in Figure 2. +.KF +.if t .ta .5i 1.0i 1.5i 2.0i 2.5i 3.0i 3.5i +.if n .ta .7i 1.4i 2.1i 2.8i 3.5i 4.2i 4.9i +.sp 0.5i +.DS +main(argc, argv) + int argc; + char *argv[]; +{ + int f; + struct sockaddr_in from; + struct servent *sp; + + sp = getservbyname("login", "tcp"); + if (sp == NULL) { + fprintf(stderr, "rlogind: tcp/login: unknown service\en"); + exit(1); + } + ... +#ifndef DEBUG + /* Disassociate server from controlling terminal */ + ... +#endif + + sin.sin_port = sp->s_port; /* Restricted port -- see section 5 */ + ... + f = socket(AF_INET, SOCK_STREAM, 0); + ... + if (bind(f, (struct sockaddr *) &sin, sizeof (sin)) < 0) { + ... + } + ... + listen(f, 5); + for (;;) { + int g, len = sizeof (from); + + g = accept(f, (struct sockaddr *) &from, &len); + if (g < 0) { + if (errno != EINTR) + syslog(LOG_ERR, "rlogind: accept: %m"); + continue; + } + if (fork() == 0) { + close(f); + doit(g, &from); + } + close(g); + } +} +.DE +.ce +Figure 2. Remote login server. +.sp 0.5i +.KE +.PP +The first step taken by the server is look up its service +definition: +.sp 1 +.nf +.in +5 +.if t .ta .5i 1.0i 1.5i 2.0i +.if n .ta .7i 1.4i 2.1i 2.8i +sp = getservbyname("login", "tcp"); +if (sp == NULL) { + fprintf(stderr, "rlogind: tcp/login: unknown service\en"); + exit(1); +} +.sp 1 +.in -5 +.fi +The result of the \fIgetservbyname\fP call +is used in later portions of the code to +define the Internet port at which it listens for service +requests (indicated by a connection). +.KS +.PP +Step two is to disassociate the server from the controlling +terminal of its invoker: +.DS + for (i = 0; i < 3; ++i) + close(i); + + open("/", O_RDONLY); + dup2(0, 1); + dup2(0, 2); + + i = open("/dev/tty", O_RDWR); + if (i >= 0) { + ioctl(i, TIOCNOTTY, 0); + close(i); + } +.DE +.KE +This step is important as the server will +likely not want to receive signals delivered to the process +group of the controlling terminal. Note, however, that +once a server has disassociated itself it can no longer +send reports of errors to a terminal, and must log errors +via \fIsyslog\fP. +.PP +Once a server has established a pristine environment, it +creates a socket and begins accepting service requests. +The \fIbind\fP call is required to insure the server listens +at its expected location. It should be noted that the +remote login server listens at a restricted port number, and must +therefore be run +with a user-id of root. +This concept of a ``restricted port number'' is 4BSD +specific, and is covered in section 5. +.PP +The main body of the loop is fairly simple: +.DS +.if t .ta .5i 1.0i 1.5i 2.0i +.if n .ta .7i 1.4i 2.1i 2.8i +for (;;) { + int g, len = sizeof (from); + + g = accept(f, (struct sockaddr *)&from, &len); + if (g < 0) { + if (errno != EINTR) + syslog(LOG_ERR, "rlogind: accept: %m"); + continue; + } + if (fork() == 0) { /* Child */ + close(f); + doit(g, &from); + } + close(g); /* Parent */ +} +.DE +An \fIaccept\fP call blocks the server until +a client requests service. This call could return a +failure status if the call is interrupted by a signal +such as SIGCHLD (to be discussed in section 5). Therefore, +the return value from \fIaccept\fP is checked to insure +a connection has actually been established, and +an error report is logged via \fIsyslog\fP if an error +has occurred. +.PP +With a connection +in hand, the server then forks a child process and invokes +the main body of the remote login protocol processing. Note +how the socket used by the parent for queuing connection +requests is closed in the child, while the socket created as +a result of the \fIaccept\fP is closed in the parent. The +address of the client is also handed the \fIdoit\fP routine +because it requires it in authenticating clients. +.NH 2 +Clients +.PP +The client side of the remote login service was shown +earlier in Figure 1. +One can see the separate, asymmetric roles of the client +and server clearly in the code. The server is a passive entity, +listening for client connections, while the client process is +an active entity, initiating a connection when invoked. +.PP +Let us consider more closely the steps taken +by the client remote login process. As in the server process, +the first step is to locate the service definition for a remote +login: +.DS +sp = getservbyname("login", "tcp"); +if (sp == NULL) { + fprintf(stderr, "rlogin: tcp/login: unknown service\en"); + exit(1); +} +.DE +Next the destination host is looked up with a +\fIgethostbyname\fP call: +.DS +hp = gethostbyname(argv[1]); +if (hp == NULL) { + fprintf(stderr, "rlogin: %s: unknown host\en", argv[1]); + exit(2); +} +.DE +With this accomplished, all that is required is to establish a +connection to the server at the requested host and start up the +remote login protocol. The address buffer is cleared, then filled +in with the Internet address of the foreign host and the port +number at which the login process resides on the foreign host: +.DS +bzero((char *)&server, sizeof (server)); +bcopy(hp->h_addr, (char *) &server.sin_addr, hp->h_length); +server.sin_family = hp->h_addrtype; +server.sin_port = sp->s_port; +.DE +A socket is created, and a connection initiated. Note +that \fIconnect\fP implicitly performs a \fIbind\fP +call, since \fIs\fP is unbound. +.DS +s = socket(hp->h_addrtype, SOCK_STREAM, 0); +if (s < 0) { + perror("rlogin: socket"); + exit(3); +} + ... +if (connect(s, (struct sockaddr *) &server, sizeof (server)) < 0) { + perror("rlogin: connect"); + exit(4); +} +.DE +The details of the remote login protocol will not be considered here. +.NH 2 +Connectionless servers +.PP +While connection-based services are the norm, some services +are based on the use of datagram sockets. One, in particular, +is the \*(lqrwho\*(rq service which provides users with status +information for hosts connected to a local area +network. This service, while predicated on the ability to +\fIbroadcast\fP information to all hosts connected to a particular +network, is of interest as an example usage of datagram sockets. +.PP +A user on any machine running the rwho server may find out +the current status of a machine with the \fIruptime\fP(1) program. +The output generated is illustrated in Figure 3. +.KF +.DS B +.TS +l r l l l l l. +arpa up 9:45, 5 users, load 1.15, 1.39, 1.31 +cad up 2+12:04, 8 users, load 4.67, 5.13, 4.59 +calder up 10:10, 0 users, load 0.27, 0.15, 0.14 +dali up 2+06:28, 9 users, load 1.04, 1.20, 1.65 +degas up 25+09:48, 0 users, load 1.49, 1.43, 1.41 +ear up 5+00:05, 0 users, load 1.51, 1.54, 1.56 +ernie down 0:24 +esvax down 17:04 +ingres down 0:26 +kim up 3+09:16, 8 users, load 2.03, 2.46, 3.11 +matisse up 3+06:18, 0 users, load 0.03, 0.03, 0.05 +medea up 3+09:39, 2 users, load 0.35, 0.37, 0.50 +merlin down 19+15:37 +miro up 1+07:20, 7 users, load 4.59, 3.28, 2.12 +monet up 1+00:43, 2 users, load 0.22, 0.09, 0.07 +oz down 16:09 +statvax up 2+15:57, 3 users, load 1.52, 1.81, 1.86 +ucbvax up 9:34, 2 users, load 6.08, 5.16, 3.28 +.TE +.DE +.ce +Figure 3. ruptime output. +.sp +.KE +.PP +Status information for each host is periodically broadcast +by rwho server processes on each machine. The same server +process also receives the status information and uses it +to update a database. This database is then interpreted +to generate the status information for each host. Servers +operate autonomously, coupled only by the local network and +its broadcast capabilities. +.PP +Note that the use of broadcast for such a task is fairly inefficient, +as all hosts must process each message, whether or not using an rwho server. +Unless such a service is sufficiently universal and is frequently used, +the expense of periodic broadcasts outweighs the simplicity. +.PP +The rwho server, in a simplified form, is pictured in Figure +4. There are two separate tasks performed by the server. The +first task is to act as a receiver of status information broadcast +by other hosts on the network. This job is carried out in the +main loop of the program. Packets received at the rwho port +are interrogated to insure they've been sent by another rwho +server process, then are time stamped with their arrival time +and used to update a file indicating the status of the host. +When a host has not been heard from for an extended period of +time, the database interpretation routines assume the host is +down and indicate such on the status reports. This algorithm +is prone to error as a server may be down while a host is actually +up, but serves our current needs. +.KF +.DS +.if t .ta .5i 1.0i 1.5i 2.0i +.if n .ta .7i 1.4i 2.1i 2.8i +main() +{ + ... + sp = getservbyname("who", "udp"); + net = getnetbyname("localnet"); + sin.sin_addr = inet_makeaddr(INADDR_ANY, net); + sin.sin_port = sp->s_port; + ... + s = socket(AF_INET, SOCK_DGRAM, 0); + ... + on = 1; + if (setsockopt(s, SOL_SOCKET, SO_BROADCAST, &on, sizeof(on)) < 0) { + syslog(LOG_ERR, "setsockopt SO_BROADCAST: %m"); + exit(1); + } + bind(s, (struct sockaddr *) &sin, sizeof (sin)); + ... + signal(SIGALRM, onalrm); + onalrm(); + for (;;) { + struct whod wd; + int cc, whod, len = sizeof (from); + + cc = recvfrom(s, (char *)&wd, sizeof (struct whod), 0, + (struct sockaddr *)&from, &len); + if (cc <= 0) { + if (cc < 0 && errno != EINTR) + syslog(LOG_ERR, "rwhod: recv: %m"); + continue; + } + if (from.sin_port != sp->s_port) { + syslog(LOG_ERR, "rwhod: %d: bad from port", + ntohs(from.sin_port)); + continue; + } + ... + if (!verify(wd.wd_hostname)) { + syslog(LOG_ERR, "rwhod: malformed host name from %x", + ntohl(from.sin_addr.s_addr)); + continue; + } + (void) sprintf(path, "%s/whod.%s", RWHODIR, wd.wd_hostname); + whod = open(path, O_WRONLY | O_CREAT | O_TRUNC, 0666); + ... + (void) time(&wd.wd_recvtime); + (void) write(whod, (char *)&wd, cc); + (void) close(whod); + } +} +.DE +.ce +Figure 4. rwho server. +.sp +.KE +.PP +The second task performed by the server is to supply information +regarding the status of its host. This involves periodically +acquiring system status information, packaging it up in a message +and broadcasting it on the local network for other rwho servers +to hear. The supply function is triggered by a timer and +runs off a signal. Locating the system status +information is somewhat involved, but uninteresting. Deciding +where to transmit the resultant packet +is somewhat problematical, however. +.PP +Status information must be broadcast on the local network. +For networks which do not support the notion of broadcast another +scheme must be used to simulate or +replace broadcasting. One possibility is to enumerate the +known neighbors (based on the status messages received +from other rwho servers). This, unfortunately, +requires some bootstrapping information, +for a server will have no idea what machines are its +neighbors until it receives status messages from them. +Therefore, if all machines on a net are freshly booted, +no machine will have any +known neighbors and thus never receive, or send, any status information. +This is the identical problem faced by the routing table management +process in propagating routing status information. The standard +solution, unsatisfactory as it may be, is to inform one or more servers +of known neighbors and request that they always communicate with +these neighbors. If each server has at least one neighbor supplied +to it, status information may then propagate through +a neighbor to hosts which +are not (possibly) directly neighbors. If the server is able to +support networks which provide a broadcast capability, as well as +those which do not, then networks with an +arbitrary topology may share status information*. +.FS +* One must, however, be concerned about \*(lqloops\*(rq. +That is, if a host is connected to multiple networks, it +will receive status information from itself. This can lead +to an endless, wasteful, exchange of information. +.FE +.PP +It is important that software operating in a distributed +environment not have any site-dependent information compiled into it. +This would require a separate copy of the server at each host and +make maintenance a severe headache. 4.3BSD attempts to isolate +host-specific information from applications by providing system +calls which return the necessary information*. +.FS +* An example of such a system call is the \fIgethostname\fP(2) +call which returns the host's \*(lqofficial\*(rq name. +.FE +A mechanism exists, in the form of an \fIioctl\fP call, +for finding the collection +of networks to which a host is directly connected. +Further, a local network broadcasting mechanism +has been implemented at the socket level. +Combining these two features allows a process +to broadcast on any directly connected local +network which supports the notion of broadcasting +in a site independent manner. This allows 4.3BSD +to solve the problem of deciding how to propagate +status information in the case of \fIrwho\fP, or +more generally in broadcasting: +Such status information is broadcast to connected +networks at the socket level, where the connected networks +have been obtained via the appropriate \fIioctl\fP +calls. +The specifics of +such broadcastings are complex, however, and will +be covered in section 5. diff --git a/doc/ps1/08.ipc/5.t b/doc/ps1/08.ipc/5.t new file mode 100644 index 00000000..e9b284f2 --- /dev/null +++ b/doc/ps1/08.ipc/5.t @@ -0,0 +1,1187 @@ +.\" Copyright (c) 1986 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)5.t 1.5 (Berkeley) 1/6/88 +.\" +.\".ds RH "Advanced Topics +.bp +.nr H1 5 +.nr H2 0 +.LG +.B +.ce +5. ADVANCED TOPICS +.sp 2 +.R +.NL +.PP +A number of facilities have yet to be discussed. For most users +of the IPC the mechanisms already +described will suffice in constructing distributed +applications. However, others will find the need to utilize some +of the features which we consider in this section. +.NH 2 +Out of band data +.PP +The stream socket abstraction includes the notion of \*(lqout +of band\*(rq data. Out of band data is a logically independent +transmission channel associated with each pair of connected +stream sockets. Out of band data is delivered to the user +independently of normal data. +The abstraction defines that the out of band data facilities +must support the reliable delivery of at least one +out of band message at a time. This message may contain at least one +byte of data, and at least one message may be pending delivery +to the user at any one time. For communications protocols which +support only in-band signaling (i.e. the urgent data is +delivered in sequence with the normal data), the system normally extracts +the data from the normal data stream and stores it separately. +This allows users to choose between receiving the urgent data +in order and receiving it out of sequence without having to +buffer all the intervening data. It is possible +to ``peek'' (via MSG_PEEK) at out of band data. +If the socket has a process group, a SIGURG signal is generated +when the protocol is notified of its existence. +A process can set the process group +or process id to be informed by the SIGURG signal via the +appropriate \fIfcntl\fP call, as described below for +SIGIO. +If multiple sockets may have out of band data awaiting +delivery, a \fIselect\fP call for exceptional conditions +may be used to determine those sockets with such data pending. +Neither the signal nor the select indicate the actual arrival +of the out-of-band data, but only notification that it is pending. +.PP +In addition to the information passed, a logical mark is placed in +the data stream to indicate the point at which the out +of band data was sent. The remote login and remote shell +applications use this facility to propagate signals between +client and server processes. When a signal +flushs any pending output from the remote process(es), all +data up to the mark in the data stream is discarded. +.PP +To send an out of band message the MSG_OOB flag is supplied to +a \fIsend\fP or \fIsendto\fP calls, +while to receive out of band data MSG_OOB should be indicated +when performing a \fIrecvfrom\fP or \fIrecv\fP call. +To find out if the read pointer is currently pointing at +the mark in the data stream, the SIOCATMARK ioctl is provided: +.DS +ioctl(s, SIOCATMARK, &yes); +.DE +If \fIyes\fP is a 1 on return, the next read will return data +after the mark. Otherwise (assuming out of band data has arrived), +the next read will provide data sent by the client prior +to transmission of the out of band signal. The routine used +in the remote login process to flush output on receipt of an +interrupt or quit signal is shown in Figure 5. +It reads the normal data up to the mark (to discard it), +then reads the out-of-band byte. +.KF +.DS +#include +#include + ... +oob() +{ + int out = FWRITE, mark; + char waste[BUFSIZ]; + + /* flush local terminal output */ + ioctl(1, TIOCFLUSH, (char *)&out); + for (;;) { + if (ioctl(rem, SIOCATMARK, &mark) < 0) { + perror("ioctl"); + break; + } + if (mark) + break; + (void) read(rem, waste, sizeof (waste)); + } + if (recv(rem, &mark, 1, MSG_OOB) < 0) { + perror("recv"); + ... + } + ... +} +.DE +.ce +Figure 5. Flushing terminal I/O on receipt of out of band data. +.sp +.KE +.PP +A process may also read or peek at the out-of-band data +without first reading up to the mark. +This is more difficult when the underlying protocol delivers +the urgent data in-band with the normal data, and only sends +notification of its presence ahead of time (e.g., the TCP protocol +used to implement streams in the Internet domain). +With such protocols, the out-of-band byte may not yet have arrived +when a \fIrecv\fP is done with the MSG_OOB flag. +In that case, the call will return an error of EWOULDBLOCK. +Worse, there may be enough in-band data in the input buffer +that normal flow control prevents the peer from sending the urgent data +until the buffer is cleared. +The process must then read enough of the queued data +that the urgent data may be delivered. +.PP +Certain programs that use multiple bytes of urgent data and must +handle multiple urgent signals (e.g., \fItelnet\fP\|(1C)) +need to retain the position of urgent data within the stream. +This treatment is available as a socket-level option, SO_OOBINLINE; +see \fIsetsockopt\fP\|(2) for usage. +With this option, the position of urgent data (the \*(lqmark\*(rq) +is retained, but the urgent data immediately follows the mark +within the normal data stream returned without the MSG_OOB flag. +Reception of multiple urgent indications causes the mark to move, +but no out-of-band data are lost. +.NH 2 +Non-Blocking Sockets +.PP +It is occasionally convenient to make use of sockets +which do not block; that is, I/O requests which +cannot complete immediately and +would therefore cause the process to be suspended awaiting completion are +not executed, and an error code is returned. +Once a socket has been created via +the \fIsocket\fP call, it may be marked as non-blocking +by \fIfcntl\fP as follows: +.DS +#include + ... +int s; + ... +s = socket(AF_INET, SOCK_STREAM, 0); + ... +if (fcntl(s, F_SETFL, FNDELAY) < 0) + perror("fcntl F_SETFL, FNDELAY"); + exit(1); +} + ... +.DE +.PP +When performing non-blocking I/O on sockets, one must be +careful to check for the error EWOULDBLOCK (stored in the +global variable \fIerrno\fP), which occurs when +an operation would normally block, but the socket it +was performed on is marked as non-blocking. +In particular, \fIaccept\fP, \fIconnect\fP, \fIsend\fP, \fIrecv\fP, +\fIread\fP, and \fIwrite\fP can +all return EWOULDBLOCK, and processes should be prepared +to deal with such return codes. +If an operation such as a \fIsend\fP cannot be done in its entirety, +but partial writes are sensible (for example, when using a stream socket), +the data that can be sent immediately will be processed, +and the return value will indicate the amount actually sent. +.NH 2 +Interrupt driven socket I/O +.PP +The SIGIO signal allows a process to be notified +via a signal when a socket (or more generally, a file +descriptor) has data waiting to be read. Use of +the SIGIO facility requires three steps: First, +the process must set up a SIGIO signal handler +by use of the \fIsignal\fP or \fIsigvec\fP calls. Second, +it must set the process id or process group id which is to receive +notification of pending input to its own process id, +or the process group id of its process group (note that +the default process group of a socket is group zero). +This is accomplished by use of an \fIfcntl\fP call. +Third, it must enable asynchronous notification of pending I/O requests +with another \fIfcntl\fP call. Sample code to +allow a given process to receive information on +pending I/O requests as they occur for a socket \fIs\fP +is given in Figure 6. With the addition of a handler for SIGURG, +this code can also be used to prepare for receipt of SIGURG signals. +.KF +.DS +#include + ... +int io_handler(); + ... +signal(SIGIO, io_handler); + +/* Set the process receiving SIGIO/SIGURG signals to us */ + +if (fcntl(s, F_SETOWN, getpid()) < 0) { + perror("fcntl F_SETOWN"); + exit(1); +} + +/* Allow receipt of asynchronous I/O signals */ + +if (fcntl(s, F_SETFL, FASYNC) < 0) { + perror("fcntl F_SETFL, FASYNC"); + exit(1); +} +.DE +.ce +Figure 6. Use of asynchronous notification of I/O requests. +.sp +.KE +.NH 2 +Signals and process groups +.PP +Due to the existence of the SIGURG and SIGIO signals each socket has an +associated process number, just as is done for terminals. +This value is initialized to zero, +but may be redefined at a later time with the F_SETOWN +\fIfcntl\fP, such as was done in the code above for SIGIO. +To set the socket's process id for signals, positive arguments +should be given to the \fIfcntl\fP call. To set the socket's +process group for signals, negative arguments should be +passed to \fIfcntl\fP. Note that the process number indicates +either the associated process id or the associated process +group; it is impossible to specify both at the same time. +A similar \fIfcntl\fP, F_GETOWN, is available for determining the +current process number of a socket. +.PP +Another signal which is useful when constructing server processes +is SIGCHLD. This signal is delivered to a process when any +child processes have changed state. Normally servers use +the signal to \*(lqreap\*(rq child processes that have exited +without explicitly awaiting their termination +or periodic polling for exit status. +For example, the remote login server loop shown in Figure 2 +may be augmented as shown in Figure 7. +.KF +.DS +int reaper(); + ... +signal(SIGCHLD, reaper); +listen(f, 5); +for (;;) { + int g, len = sizeof (from); + + g = accept(f, (struct sockaddr *)&from, &len,); + if (g < 0) { + if (errno != EINTR) + syslog(LOG_ERR, "rlogind: accept: %m"); + continue; + } + ... +} + ... +#include +reaper() +{ + union wait status; + + while (wait3(&status, WNOHANG, 0) > 0) + ; +} +.DE +.sp +.ce +Figure 7. Use of the SIGCHLD signal. +.sp +.KE +.PP +If the parent server process fails to reap its children, +a large number of \*(lqzombie\*(rq processes may be created. +.NH 2 +Pseudo terminals +.PP +Many programs will not function properly without a terminal +for standard input and output. Since sockets do not provide +the semantics of terminals, +it is often necessary to have a process communicating over +the network do so through a \fIpseudo-terminal\fP. A pseudo- +terminal is actually a pair of devices, master and slave, +which allow a process to serve as an active agent in communication +between processes and users. Data written on the slave side +of a pseudo-terminal is supplied as input to a process reading +from the master side, while data written on the master side are +processed as terminal input for the slave. +In this way, the process manipulating +the master side of the pseudo-terminal has control over the +information read and written on the slave side +as if it were manipulating the keyboard and reading the screen +on a real terminal. +The purpose of this abstraction is to +preserve terminal semantics over a network connection\(em +that is, the slave side appears as a normal terminal to +any process reading from or writing to it. +.PP +For example, the remote +login server uses pseudo-terminals for remote login sessions. +A user logging in to a machine across the network is provided +a shell with a slave pseudo-terminal as standard input, output, +and error. The server process then handles the communication +between the programs invoked by the remote shell and the user's +local client process. +When a user sends a character that generates an interrupt +on the remote machine that flushes terminal output, +the pseudo-terminal generates a control message for the server process. +The server then sends an out of band message +to the client process to signal a flush of data at the real terminal +and on the intervening data buffered in the network. +.PP +Under 4.3BSD, the name of the slave side of a pseudo-terminal is of the form +\fI/dev/ttyxy\fP, where \fIx\fP is a single letter +starting at `p' and continuing to `t'. +\fIy\fP is a hexadecimal digit (i.e., a single +character in the range 0 through 9 or `a' through `f'). +The master side of a pseudo-terminal is \fI/dev/ptyxy\fP, +where \fIx\fP and \fIy\fP correspond to the +slave side of the pseudo-terminal. +.PP +In general, the method of obtaining a pair of master and +slave pseudo-terminals is to +find a pseudo-terminal which +is not currently in use. +The master half of a pseudo-terminal is a single-open device; +thus, each master may be opened in turn until an open succeeds. +The slave side of the pseudo-terminal is then opened, +and is set to the proper terminal modes if necessary. +The process then \fIfork\fPs; the child closes +the master side of the pseudo-terminal, and \fIexec\fPs the +appropriate program. Meanwhile, the parent closes the +slave side of the pseudo-terminal and begins reading and +writing from the master side. Sample code making use of +pseudo-terminals is given in Figure 8; this code assumes +that a connection on a socket \fIs\fP exists, connected +to a peer who wants a service of some kind, and that the +process has disassociated itself from any previous controlling terminal. +.KF +.DS +gotpty = 0; +for (c = 'p'; !gotpty && c <= 's'; c++) { + line = "/dev/ptyXX"; + line[sizeof("/dev/pty")-1] = c; + line[sizeof("/dev/ptyp")-1] = '0'; + if (stat(line, &statbuf) < 0) + break; + for (i = 0; i < 16; i++) { + line[sizeof("/dev/ptyp")-1] = "0123456789abcdef"[i]; + master = open(line, O_RDWR); + if (master > 0) { + gotpty = 1; + break; + } + } +} +if (!gotpty) { + syslog(LOG_ERR, "All network ports in use"); + exit(1); +} + +line[sizeof("/dev/")-1] = 't'; +slave = open(line, O_RDWR); /* \fIslave\fP is now slave side */ +if (slave < 0) { + syslog(LOG_ERR, "Cannot open slave pty %s", line); + exit(1); +} + +ioctl(slave, TIOCGETP, &b); /* Set slave tty modes */ +b.sg_flags = CRMOD|XTABS|ANYP; +ioctl(slave, TIOCSETP, &b); + +i = fork(); +if (i < 0) { + syslog(LOG_ERR, "fork: %m"); + exit(1); +} else if (i) { /* Parent */ + close(slave); + ... +} else { /* Child */ + (void) close(s); + (void) close(master); + dup2(slave, 0); + dup2(slave, 1); + dup2(slave, 2); + if (slave > 2) + (void) close(slave); + ... +} +.DE +.ce +Figure 8. Creation and use of a pseudo terminal +.sp +.KE +.NH 2 +Selecting specific protocols +.PP +If the third argument to the \fIsocket\fP call is 0, +\fIsocket\fP will select a default protocol to use with +the returned socket of the type requested. +The default protocol is usually correct, and alternate choices are not +usually available. +However, when using ``raw'' sockets to communicate directly with +lower-level protocols or hardware interfaces, +the protocol argument may be important for setting up demultiplexing. +For example, raw sockets in the Internet family may be used to implement +a new protocol above IP, and the socket will receive packets +only for the protocol specified. +To obtain a particular protocol one determines the protocol number +as defined within the communication domain. For the Internet +domain one may use one of the library routines +discussed in section 3, such as \fIgetprotobyname\fP: +.DS +#include +#include +#include +#include + ... +pp = getprotobyname("newtcp"); +s = socket(AF_INET, SOCK_STREAM, pp->p_proto); +.DE +This would result in a socket \fIs\fP using a stream +based connection, but with protocol type of ``newtcp'' +instead of the default ``tcp.'' +.PP +In the NS domain, the available socket protocols are defined in +<\fInetns/ns.h\fP>. To create a raw socket for Xerox Error Protocol +messages, one might use: +.DS +#include +#include +#include + ... +s = socket(AF_NS, SOCK_RAW, NSPROTO_ERROR); +.DE +.NH 2 +Address binding +.PP +As was mentioned in section 2, +binding addresses to sockets in the Internet and NS domains can be +fairly complex. As a brief reminder, these associations +are composed of local and foreign +addresses, and local and foreign ports. Port numbers are +allocated out of separate spaces, one for each system and one +for each domain on that system. +Through the \fIbind\fP system call, a +process may specify half of an association, the + part, while the +\fIconnect\fP +and \fIaccept\fP +primitives are used to complete a socket's association by +specifying the part. +Since the association is created in two steps the association +uniqueness requirement indicated previously could be violated unless +care is taken. Further, it is unrealistic to expect user +programs to always know proper values to use for the local address +and local port since a host may reside on multiple networks and +the set of allocated port numbers is not directly accessible +to a user. +.PP +To simplify local address binding in the Internet domain the notion of a +\*(lqwildcard\*(rq address has been provided. When an address +is specified as INADDR_ANY (a manifest constant defined in +), the system interprets the address as +\*(lqany valid address\*(rq. For example, to bind a specific +port number to a socket, but leave the local address unspecified, +the following code might be used: +.DS +#include +#include + ... +struct sockaddr_in sin; + ... +s = socket(AF_INET, SOCK_STREAM, 0); +sin.sin_family = AF_INET; +sin.sin_addr.s_addr = htonl(INADDR_ANY); +sin.sin_port = htons(MYPORT); +bind(s, (struct sockaddr *) &sin, sizeof (sin)); +.DE +Sockets with wildcarded local addresses may receive messages +directed to the specified port number, and sent to any +of the possible addresses assigned to a host. For example, +if a host has addresses 128.32.0.4 and 10.0.0.78, and a socket is bound as +above, the process will be +able to accept connection requests which are addressed to +128.32.0.4 or 10.0.0.78. +If a server process wished to only allow hosts on a +given network connect to it, it would bind +the address of the host on the appropriate network. +.PP +In a similar fashion, a local port may be left unspecified +(specified as zero), in which case the system will select an +appropriate port number for it. This shortcut will work +both in the Internet and NS domains. For example, to +bind a specific local address to a socket, but to leave the +local port number unspecified: +.DS +hp = gethostbyname(hostname); +if (hp == NULL) { + ... +} +bcopy(hp->h_addr, (char *) sin.sin_addr, hp->h_length); +sin.sin_port = htons(0); +bind(s, (struct sockaddr *) &sin, sizeof (sin)); +.DE +The system selects the local port number based on two criteria. +The first is that on 4BSD systems, +Internet ports below IPPORT_RESERVED (1024) (for the Xerox domain, +0 through 3000) are reserved +for privileged users (i.e., the super user); +Internet ports above IPPORT_USERRESERVED (50000) are reserved +for non-privileged servers. The second is +that the port number is not currently bound to some other +socket. In order to find a free Internet port number in the privileged +range the \fIrresvport\fP library routine may be used as follows +to return a stream socket in with a privileged port number: +.DS +int lport = IPPORT_RESERVED \- 1; +int s; +... +s = rresvport(&lport); +if (s < 0) { + if (errno == EAGAIN) + fprintf(stderr, "socket: all ports in use\en"); + else + perror("rresvport: socket"); + ... +} +.DE +The restriction on allocating ports was done to allow processes +executing in a \*(lqsecure\*(rq environment to perform authentication +based on the originating address and port number. For example, +the \fIrlogin\fP(1) command allows users to log in across a network +without being asked for a password, if two conditions hold: +First, the name of the system the user +is logging in from is in the file +\fI/etc/hosts.equiv\fP on the system he is logging +in to (or the system name and the user name are in +the user's \fI.rhosts\fP file in the user's home +directory), and second, that the user's rlogin +process is coming from a privileged port on the machine from which he is +logging. The port number and network address of the +machine from which the user is logging in can be determined either +by the \fIfrom\fP result of the \fIaccept\fP call, or +from the \fIgetpeername\fP call. +.PP +In certain cases the algorithm used by the system in selecting +port numbers is unsuitable for an application. This is because +associations are created in a two step process. For example, +the Internet file transfer protocol, FTP, specifies that data +connections must always originate from the same local port. However, +duplicate associations are avoided by connecting to different foreign +ports. In this situation the system would disallow binding the +same local address and port number to a socket if a previous data +connection's socket still existed. To override the default port +selection algorithm, an option call must be performed prior +to address binding: +.DS + ... +int on = 1; + ... +setsockopt(s, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on)); +bind(s, (struct sockaddr *) &sin, sizeof (sin)); +.DE +With the above call, local addresses may be bound which +are already in use. This does not violate the uniqueness +requirement as the system still checks at connect time to +be sure any other sockets with the same local address and +port do not have the same foreign address and port. +If the association already exists, the error EADDRINUSE is returned. +.NH 2 +Broadcasting and determining network configuration +.PP +By using a datagram socket, it is possible to send broadcast +packets on many networks supported by the system. +The network itself must support broadcast; the system +provides no simulation of broadcast in software. +Broadcast messages can place a high load on a network since they force +every host on the network to service them. Consequently, +the ability to send broadcast packets has been limited +to sockets which are explicitly marked as allowing broadcasting. +Broadcast is typically used for one of two reasons: +it is desired to find a resource on a local network without prior +knowledge of its address, +or important functions such as routing require that information +be sent to all accessible neighbors. +.PP +To send a broadcast message, a datagram socket +should be created: +.DS +s = socket(AF_INET, SOCK_DGRAM, 0); +.DE +or +.DS +s = socket(AF_NS, SOCK_DGRAM, 0); +.DE +The socket is marked as allowing broadcasting, +.DS +int on = 1; + +setsockopt(s, SOL_SOCKET, SO_BROADCAST, &on, sizeof (on)); +.DE +and at least a port number should be bound to the socket: +.DS +sin.sin_family = AF_INET; +sin.sin_addr.s_addr = htonl(INADDR_ANY); +sin.sin_port = htons(MYPORT); +bind(s, (struct sockaddr *) &sin, sizeof (sin)); +.DE +or, for the NS domain, +.DS +sns.sns_family = AF_NS; +netnum = htonl(net); +sns.sns_addr.x_net = *(union ns_net *) &netnum; /* insert net number */ +sns.sns_addr.x_port = htons(MYPORT); +bind(s, (struct sockaddr *) &sns, sizeof (sns)); +.DE +The destination address of the message to be broadcast +depends on the network(s) on which the message is to be broadcast. +The Internet domain supports a shorthand notation for broadcast +on the local network, the address INADDR_BROADCAST (defined in +<\fInetinet/in.h\fP>. +To determine the list of addresses for all reachable neighbors +requires knowledge of the networks to which the host is connected. +Since this information should +be obtained in a host-independent fashion and may be impossible +to derive, 4.3BSD provides a method of +retrieving this information from the system data structures. +The SIOCGIFCONF \fIioctl\fP call returns the interface +configuration of a host in the form of a +single \fIifconf\fP structure; this structure contains +a ``data area'' which is made up of an array of +of \fIifreq\fP structures, one for each network interface +to which the host is connected. +These structures are defined in +\fI\fP as follows: +.DS +.if t .ta .5i 1.0i 1.5i 3.5i +.if n .ta .7i 1.4i 2.1i 3.4i +struct ifconf { + int ifc_len; /* size of associated buffer */ + union { + caddr_t ifcu_buf; + struct ifreq *ifcu_req; + } ifc_ifcu; +}; + +#define ifc_buf ifc_ifcu.ifcu_buf /* buffer address */ +#define ifc_req ifc_ifcu.ifcu_req /* array of structures returned */ + +#define IFNAMSIZ 16 + +struct ifreq { + char ifr_name[IFNAMSIZ]; /* if name, e.g. "en0" */ + union { + struct sockaddr ifru_addr; + struct sockaddr ifru_dstaddr; + struct sockaddr ifru_broadaddr; + short ifru_flags; + caddr_t ifru_data; + } ifr_ifru; +}; + +.if t .ta \w' #define'u +\w' ifr_broadaddr'u +\w' ifr_ifru.ifru_broadaddr'u +#define ifr_addr ifr_ifru.ifru_addr /* address */ +#define ifr_dstaddr ifr_ifru.ifru_dstaddr /* other end of p-to-p link */ +#define ifr_broadaddr ifr_ifru.ifru_broadaddr /* broadcast address */ +#define ifr_flags ifr_ifru.ifru_flags /* flags */ +#define ifr_data ifr_ifru.ifru_data /* for use by interface */ +.DE +The actual call which obtains the +interface configuration is +.DS +struct ifconf ifc; +char buf[BUFSIZ]; + +ifc.ifc_len = sizeof (buf); +ifc.ifc_buf = buf; +if (ioctl(s, SIOCGIFCONF, (char *) &ifc) < 0) { + ... +} +.DE +After this call \fIbuf\fP will contain one \fIifreq\fP structure for +each network to which the host is connected, and +\fIifc.ifc_len\fP will have been modified to reflect the number +of bytes used by the \fIifreq\fP structures. +.PP +For each structure +there exists a set of ``interface flags'' which tell +whether the network corresponding to that interface is +up or down, point to point or broadcast, etc. The +SIOCGIFFLAGS \fIioctl\fP retrieves these +flags for an interface specified by an \fIifreq\fP +structure as follows: +.DS +struct ifreq *ifr; + +ifr = ifc.ifc_req; + +for (n = ifc.ifc_len / sizeof (struct ifreq); --n >= 0; ifr++) { + /* + * We must be careful that we don't use an interface + * devoted to an address family other than those intended; + * if we were interested in NS interfaces, the + * AF_INET would be AF_NS. + */ + if (ifr->ifr_addr.sa_family != AF_INET) + continue; + if (ioctl(s, SIOCGIFFLAGS, (char *) ifr) < 0) { + ... + } + /* + * Skip boring cases. + */ + if ((ifr->ifr_flags & IFF_UP) == 0 || + (ifr->ifr_flags & IFF_LOOPBACK) || + (ifr->ifr_flags & (IFF_BROADCAST | IFF_POINTTOPOINT)) == 0) + continue; +.DE +.PP +Once the flags have been obtained, the broadcast address +must be obtained. In the case of broadcast networks this is +done via the SIOCGIFBRDADDR \fIioctl\fP, while for point-to-point networks +the address of the destination host is obtained with SIOCGIFDSTADDR. +.DS +struct sockaddr dst; + +if (ifr->ifr_flags & IFF_POINTTOPOINT) { + if (ioctl(s, SIOCGIFDSTADDR, (char *) ifr) < 0) { + ... + } + bcopy((char *) ifr->ifr_dstaddr, (char *) &dst, sizeof (ifr->ifr_dstaddr)); +} else if (ifr->ifr_flags & IFF_BROADCAST) { + if (ioctl(s, SIOCGIFBRDADDR, (char *) ifr) < 0) { + ... + } + bcopy((char *) ifr->ifr_broadaddr, (char *) &dst, sizeof (ifr->ifr_broadaddr)); +} +.DE +.PP +After the appropriate \fIioctl\fP's have obtained the broadcast +or destination address (now in \fIdst\fP), the \fIsendto\fP call may be +used: +.DS + sendto(s, buf, buflen, 0, (struct sockaddr *)&dst, sizeof (dst)); +} +.DE +In the above loop one \fIsendto\fP occurs for every +interface to which the host is connected that supports the notion of +broadcast or point-to-point addressing. +If a process only wished to send broadcast +messages on a given network, code similar to that outlined above +would be used, but the loop would need to find the +correct destination address. +.PP +Received broadcast messages contain the senders address +and port, as datagram sockets are bound before +a message is allowed to go out. +.NH 2 +Socket Options +.PP +It is possible to set and get a number of options on sockets +via the \fIsetsockopt\fP and \fIgetsockopt\fP system calls. +These options include such things as marking a socket for +broadcasting, not to route, to linger on close, etc. +The general forms of the calls are: +.DS +setsockopt(s, level, optname, optval, optlen); +.DE +and +.DS +getsockopt(s, level, optname, optval, optlen); +.DE +.PP +The parameters to the calls are as follows: \fIs\fP +is the socket on which the option is to be applied. +\fILevel\fP specifies the protocol layer on which the +option is to be applied; in most cases this is +the ``socket level'', indicated by the symbolic constant +SOL_SOCKET, defined in \fI.\fP +The actual option is specified in \fIoptname\fP, and is +a symbolic constant also defined in \fI\fP. +\fIOptval\fP and \fIOptlen\fP point to the value of the +option (in most cases, whether the option is to be turned +on or off), and the length of the value of the option, +respectively. +For \fIgetsockopt\fP, \fIoptlen\fP is +a value-result parameter, initially set to the size of +the storage area pointed to by \fIoptval\fP, and modified +upon return to indicate the actual amount of storage used. +.PP +An example should help clarify things. It is sometimes +useful to determine the type (e.g., stream, datagram, etc.) +of an existing socket; programs +under \fIinetd\fP (described below) may need to perform this +task. This can be accomplished as follows via the +SO_TYPE socket option and the \fIgetsockopt\fP call: +.DS +#include +#include + +int type, size; + +size = sizeof (int); + +if (getsockopt(s, SOL_SOCKET, SO_TYPE, (char *) &type, &size) < 0) { + ... +} +.DE +After the \fIgetsockopt\fP call, \fItype\fP will be set +to the value of the socket type, as defined in +\fI\fP. If, for example, the socket were +a datagram socket, \fItype\fP would have the value +corresponding to SOCK_DGRAM. +.NH 2 +NS Packet Sequences +.PP +The semantics of NS connections demand that +the user both be able to look inside the network header associated +with any incoming packet and be able to specify what should go +in certain fields of an outgoing packet. +Using different calls to \fIsetsockopt\fP, it is possible +to indicate whether prototype headers will be associated by +the user with each outgoing packet (SO_HEADERS_ON_OUTPUT), +to indicate whether the headers received by the system should be +delivered to the user (SO_HEADERS_ON_INPUT), or to indicate +default information that should be associated with all +outgoing packets on a given socket (SO_DEFAULT_HEADERS). +.PP +The contents of a SPP header (minus the IDP header) are: +.DS +.if t .ta \w" #define"u +\w" u_short"u +2.0i +struct sphdr { + u_char sp_cc; /* connection control */ +#define SP_SP 0x80 /* system packet */ +#define SP_SA 0x40 /* send acknowledgement */ +#define SP_OB 0x20 /* attention (out of band data) */ +#define SP_EM 0x10 /* end of message */ + u_char sp_dt; /* datastream type */ + u_short sp_sid; /* source connection identifier */ + u_short sp_did; /* destination connection identifier */ + u_short sp_seq; /* sequence number */ + u_short sp_ack; /* acknowledge number */ + u_short sp_alo; /* allocation number */ +}; +.DE +Here, the items of interest are the \fIdatastream type\fP and +the \fIconnection control\fP fields. The semantics of the +datastream type are defined by the application(s) in question; +the value of this field is, by default, zero, but it can be +used to indicate things such as Xerox's Bulk Data Transfer +Protocol (in which case it is set to one). The connection control +field is a mask of the flags defined just below it. The user may +set or clear the end-of-message bit to indicate +that a given message is the last of a given substream type, +or may set/clear the attention bit as an alternate way to +indicate that a packet should be sent out-of-band. +As an example, to associate prototype headers with outgoing +SPP packets, consider: +.DS +#include +#include +#include +#include + ... +struct sockaddr_ns sns, to; +int s, on = 1; +struct databuf { + struct sphdr proto_spp; /* prototype header */ + char buf[534]; /* max. possible data by Xerox std. */ +} buf; + ... +s = socket(AF_NS, SOCK_SEQPACKET, 0); + ... +bind(s, (struct sockaddr *) &sns, sizeof (sns)); +setsockopt(s, NSPROTO_SPP, SO_HEADERS_ON_OUTPUT, &on, sizeof(on)); + ... +buf.proto_spp.sp_dt = 1; /* bulk data */ +buf.proto_spp.sp_cc = SP_EM; /* end-of-message */ +strcpy(buf.buf, "hello world\en"); +sendto(s, (char *) &buf, sizeof(struct sphdr) + strlen("hello world\en"), + (struct sockaddr *) &to, sizeof(to)); + ... +.DE +Note that one must be careful when writing headers; if the prototype +header is not written with the data with which it is to be associated, +the kernel will treat the first few bytes of the data as the +header, with unpredictable results. +To turn off the above association, and to indicate that packet +headers received by the system should be passed up to the user, +one might use: +.DS +#include +#include +#include +#include + ... +struct sockaddr sns; +int s, on = 1, off = 0; + ... +s = socket(AF_NS, SOCK_SEQPACKET, 0); + ... +bind(s, (struct sockaddr *) &sns, sizeof (sns)); +setsockopt(s, NSPROTO_SPP, SO_HEADERS_ON_OUTPUT, &off, sizeof(off)); +setsockopt(s, NSPROTO_SPP, SO_HEADERS_ON_INPUT, &on, sizeof(on)); + ... +.DE +.PP +Output is handled somewhat differently in the IDP world. +The header of an IDP-level packet looks like: +.DS +.if t .ta \w'struct 'u +\w" struct ns_addr"u +2.0i +struct idp { + u_short idp_sum; /* Checksum */ + u_short idp_len; /* Length, in bytes, including header */ + u_char idp_tc; /* Transport Control (i.e., hop count) */ + u_char idp_pt; /* Packet Type (i.e., level 2 protocol) */ + struct ns_addr idp_dna; /* Destination Network Address */ + struct ns_addr idp_sna; /* Source Network Address */ +}; +.DE +The primary field of interest in an IDP header is the \fIpacket type\fP +field. The standard values for this field are (as defined +in <\fInetns/ns.h\fP>): +.DS +.if t .ta \w" #define"u +\w" NSPROTO_ERROR"u +1.0i +#define NSPROTO_RI 1 /* Routing Information */ +#define NSPROTO_ECHO 2 /* Echo Protocol */ +#define NSPROTO_ERROR 3 /* Error Protocol */ +#define NSPROTO_PE 4 /* Packet Exchange */ +#define NSPROTO_SPP 5 /* Sequenced Packet */ +.DE +For SPP connections, the contents of this field are +automatically set to NSPROTO_SPP; for IDP packets, +this value defaults to zero, which means ``unknown''. +.PP +Setting the value of that field with SO_DEFAULT_HEADERS is +easy: +.DS +#include +#include +#include +#include + ... +struct sockaddr sns; +struct idp proto_idp; /* prototype header */ +int s, on = 1; + ... +s = socket(AF_NS, SOCK_DGRAM, 0); + ... +bind(s, (struct sockaddr *) &sns, sizeof (sns)); +proto_idp.idp_pt = NSPROTO_PE; /* packet exchange */ +setsockopt(s, NSPROTO_IDP, SO_DEFAULT_HEADERS, (char *) &proto_idp, + sizeof(proto_idp)); + ... +.DE +.PP +Using SO_HEADERS_ON_OUTPUT is somewhat more difficult. When +SO_HEADERS_ON_OUTPUT is turned on for an IDP socket, the socket +becomes (for all intents and purposes) a raw socket. In this +case, all the fields of the prototype header (except the +length and checksum fields, which are computed by the kernel) +must be filled in correctly in order for the socket to send and +receive data in a sensible manner. To be more specific, the +source address must be set to that of the host sending the +data; the destination address must be set to that of the +host for whom the data is intended; the packet type must be +set to whatever value is desired; and the hopcount must be +set to some reasonable value (almost always zero). It should +also be noted that simply sending data using \fIwrite\fP +will not work unless a \fIconnect\fP or \fIsendto\fP call +is used, in spite of the fact that it is the destination +address in the prototype header that is used, not the one +given in either of those calls. For almost +all IDP applications , using SO_DEFAULT_HEADERS is easier and +more desirable than writing headers. +.NH 2 +Three-way Handshake +.PP +The semantics of SPP connections indicates that a three-way +handshake, involving changes in the datastream type, should \(em +but is not absolutely required to \(em take place before a SPP +connection is closed. Almost all SPP connections are +``well-behaved'' in this manner; when communicating with +any process, it is best to assume that the three-way handshake +is required unless it is known for certain that it is not +required. In a three-way close, the closing process +indicates that it wishes to close the connection by sending +a zero-length packet with end-of-message set and with +datastream type 254. The other side of the connection +indicates that it is OK to close by sending a zero-length +packet with end-of-message set and datastream type 255. Finally, +the closing process replies with a zero-length packet with +substream type 255; at this point, the connection is considered +closed. The following code fragments are simplified examples +of how one might handle this three-way handshake at the user +level; in the future, support for this type of close will +probably be provided as part of the C library or as part of +the kernel. The first code fragment below illustrates how a process +might handle three-way handshake if it sees that the process it +is communicating with wants to close the connection: +.DS +#include +#include +#include +#include + ... +#ifndef SPPSST_END +#define SPPSST_END 254 +#define SPPSST_ENDREPLY 255 +#endif +struct sphdr proto_sp; +int s; + ... +read(s, buf, BUFSIZE); +if (((struct sphdr *)buf)->sp_dt == SPPSST_END) { + /* + * SPPSST_END indicates that the other side wants to + * close. + */ + proto_sp.sp_dt = SPPSST_ENDREPLY; + proto_sp.sp_cc = SP_EM; + setsockopt(s, NSPROTO_SPP, SO_DEFAULT_HEADERS, (char *)&proto_sp, + sizeof(proto_sp)); + write(s, buf, 0); + /* + * Write a zero-length packet with datastream type = SPPSST_ENDREPLY + * to indicate that the close is OK with us. The packet that we + * don't see (because we don't look for it) is another packet + * from the other side of the connection, with SPPSST_ENDREPLY + * on it it, too. Once that packet is sent, the connection is + * considered closed; note that we really ought to retransmit + * the close for some time if we do not get a reply. + */ + close(s); +} + ... +.DE +To indicate to another process that we would like to close the +connection, the following code would suffice: +.DS +#include +#include +#include +#include + ... +#ifndef SPPSST_END +#define SPPSST_END 254 +#define SPPSST_ENDREPLY 255 +#endif +struct sphdr proto_sp; +int s; + ... +proto_sp.sp_dt = SPPSST_END; +proto_sp.sp_cc = SP_EM; +setsockopt(s, NSPROTO_SPP, SO_DEFAULT_HEADERS, (char *)&proto_sp, + sizeof(proto_sp)); +write(s, buf, 0); /* send the end request */ +proto_sp.sp_dt = SPPSST_ENDREPLY; +setsockopt(s, NSPROTO_SPP, SO_DEFAULT_HEADERS, (char *)&proto_sp, + sizeof(proto_sp)); +/* + * We assume (perhaps unwisely) + * that the other side will send the + * ENDREPLY, so we'll just send our final ENDREPLY + * as if we'd seen theirs already. + */ +write(s, buf, 0); +close(s); + ... +.DE +.NH 2 +Packet Exchange +.PP +The Xerox standard protocols include a protocol that is both +reliable and datagram-oriented. This protocol is known as +Packet Exchange (PEX or PE) and, like SPP, is layered on top +of IDP. PEX is important for a number of things: Courier +remote procedure calls may be expedited through the use +of PEX, and many Xerox servers are located by doing a PEX +``BroadcastForServers'' operation. Although there is no +implementation of PEX in the kernel, +it may be simulated at the user level with some clever coding +and the use of one peculiar \fIgetsockopt\fP. A PEX packet +looks like: +.DS +.if t .ta \w'struct 'u +\w" struct idp"u +2.0i +/* + * The packet-exchange header shown here is not defined + * as part of any of the system include files. + */ +struct pex { + struct idp p_idp; /* idp header */ + u_short ph_id[2]; /* unique transaction ID for pex */ + u_short ph_client; /* client type field for pex */ +}; +.DE +The \fIph_id\fP field is used to hold a ``unique id'' that +is used in duplicate suppression; the \fIph_client\fP +field indicates the PEX client type (similar to the packet +type field in the IDP header). PEX reliability stems from the +fact that it is an idempotent (``I send a packet to you, you +send a packet to me'') protocol. Processes on each side of +the connection may use the unique id to determine if they have +seen a given packet before (the unique id field differs on each +packet sent) so that duplicates may be detected, and to indicate +which message a given packet is in response to. If a packet with +a given unique id is sent and no response is received in a given +amount of time, the packet is retransmitted until it is decided +that no response will ever be received. To simulate PEX, one +must be able to generate unique ids -- something that is hard to +do at the user level with any real guarantee that the id is really +unique. Therefore, a means (via \fIgetsockopt\fP) has been provided +for getting unique ids from the kernel. The following code fragment +indicates how to get a unique id: +.DS +long uniqueid; +int s, idsize = sizeof(uniqueid); + ... +s = socket(AF_NS, SOCK_DGRAM, 0); + ... +/* get id from the kernel -- only on IDP sockets */ +getsockopt(s, NSPROTO_PE, SO_SEQNO, (char *)&uniqueid, &idsize); + ... +.DE +The retransmission and duplicate suppression code required to +simulate PEX fully is left as an exercise for the reader. +.NH 2 +Inetd +.PP +One of the daemons provided with 4.3BSD is \fIinetd\fP, the +so called ``internet super-server.'' \fIInetd\fP is invoked at boot +time, and determines from the file \fI/etc/inetd.conf\fP the +servers for which it is to listen. Once this information has been +read and a pristine environment created, \fIinetd\fP proceeds +to create one socket for each service it is to listen for, +binding the appropriate port number to each socket. +.PP +\fIInetd\fP then performs a \fIselect\fP on all these +sockets for read availability, waiting for somebody wishing +a connection to the service corresponding to +that socket. \fIInetd\fP then performs an \fIaccept\fP on +the socket in question, \fIfork\fPs, \fIdup\fPs the new +socket to file descriptors 0 and 1 (stdin and +stdout), closes other open file +descriptors, and \fIexec\fPs the appropriate server. +.PP +Servers making use of \fIinetd\fP are considerably simplified, +as \fIinetd\fP takes care of the majority of the IPC work +required in establishing a connection. The server invoked +by \fIinetd\fP expects the socket connected to its client +on file descriptors 0 and 1, and may immediately perform +any operations such as \fIread\fP, \fIwrite\fP, \fIsend\fP, +or \fIrecv\fP. Indeed, servers may use +buffered I/O as provided by the ``stdio'' conventions, as +long as as they remember to use \fIfflush\fP when appropriate. +.PP +One call which may be of interest to individuals writing +servers under \fIinetd\fP is the \fIgetpeername\fP call, +which returns the address of the peer (process) connected +on the other end of the socket. For example, to log the +Internet address in ``dot notation'' (e.g., ``128.32.0.4'') +of a client connected to a server under +\fIinetd\fP, the following code might be used: +.DS +struct sockaddr_in name; +int namelen = sizeof (name); + ... +if (getpeername(0, (struct sockaddr *)&name, &namelen) < 0) { + syslog(LOG_ERR, "getpeername: %m"); + exit(1); +} else + syslog(LOG_INFO, "Connection from %s", inet_ntoa(name.sin_addr)); + ... +.DE +While the \fIgetpeername\fP call is especially useful when +writing programs to run with \fIinetd\fP, it can be used +under other circumstances. Be warned, however, that \fIgetpeername\fP will +fail on UNIX domain sockets. diff --git a/doc/ps1/08.ipc/Makefile b/doc/ps1/08.ipc/Makefile new file mode 100644 index 00000000..0c21a9fa --- /dev/null +++ b/doc/ps1/08.ipc/Makefile @@ -0,0 +1,27 @@ +# +# Copyright (c) 1986 Regents of the University of California. +# All rights reserved. The Berkeley software License Agreement +# specifies the terms and conditions for redistribution. +# +# @(#)Makefile 1.2 (Berkeley) 5/2/86 +# +SRCS= 0.t 1.t 2.t 3.t 4.t 5.t +MACROS= -ms +PRINTER=-Pdp +EQN= deqn ${PRINTER} +TBL= dtbl ${PRINTER} +TROFF= ditroff ${PRINTER} + +ipc: ipc.${PRINTER} + lpr ${PRINTER} -n ipc.${PRINTER} + +ipc.${PRINTER}: ${SRCS} + ${TBL} ${SRCS} | ${TROFF} ${MACROS} -t > ipc.${PRINTER} + +clean: + rm -f ipc.-* *.spell errs Errs make.out + +spell: ${SRCS} + @for i in ${SRCS}; do \ + echo $$i; spell $$i | sort | comm -23 - spell.ok > $$i.spell; \ + done diff --git a/doc/ps1/08.ipc/spell.ok b/doc/ps1/08.ipc/spell.ok new file mode 100644 index 00000000..02b45d4d --- /dev/null +++ b/doc/ps1/08.ipc/spell.ok @@ -0,0 +1,347 @@ +4.2bsd +AF +ANYP +BUFSIZ +BUFSIZE +BroadcastForServers +CF +CLR +CRMOD +Clearinghouse +DARPA +DESTPORT +DGRAM +DONTROUTE +Datagram +EADDRINUSE +EADDRNOTAVAIL +EAGAIN +ECONNREFUSED +EHOSTDOWN +EHOSTUNREACH +EINTR +ENDREPLY +ENETDOWN +ENETUNREACH +ENOBUFS +EPROTONOSUPPORT +EPROTOTYPE +ETIMEDOUT +EWOULDBLOCK +Ethernet +FASYNC +FCREATE +FD +FNDELAY +FTP +FTRUNCATE +FWRITE +FWRONLY +Fabry +GETOWN +Gethostybyname +IDP +IFF +IFNAMSIZ +INADDR +INET +INFO +IP +IPC +IPPORT +ISSET +Inetd +LF +LH +LOOPBACK +Lapsley +Leffler +MSG +MYADDRESS +MYPORT +NS +NSPROTO +OB +OOB +OOBINLINE +Optlen +Optval +PE +PEX +POINTTOPOINT +PS1:8 +RDONLY +RDWR +REUSEADDR +RF +RH +RWHODIR +SEQNO +SEQPACKET +SETFL +SETOWN +SETSIZE +SIGALRM +SIGCHLD +SIGIO +SIGURG +SIOCATMARK +SIOCGIFBRDADDR +SIOCGIFCONF +SIOCGIFDSTADDR +SIOCGIFFLAGS +SIOCGPGRP +SIOCSPGRP +SOF +SP +SPP +SPPSST +Science:UofMaryland +TCP +TELNET +TIOCFLUSH +TIOCGETP +TIOCNOTTY +TIOCSETP +TRUNC +Torek +Tutorial''PS1:8 +USERRESERVED +VAX +WNOHANG +WRONLY +XSIS +XTABS +ack +addr +addr.s +addr.sa +addr.sun +addr.x +addrtype +alo +argc +argv +arpa +b.sg +bcmp +bcopy +broadaddr +buf +buf.buf +buf.proto +buflen +bzero +c.f +cad +caddr +calder +daemons +dali +databuf +datagram +datastream +dev +dna +doit +dst +dst.sin +dst.sns +dstaddr +dt +dup2 +en0 +endhostent +endif +ernie +errno +es +esvax +exceptmask +execptfds +fcntl +fcntl.h +fd +fflush +file.h +foo +fprintf +from.sin +fromlen +gethostbyaddr +gethostbyname +gethostbynameandnet +gethostent +gethostname +getnetbyname +getnetbynumber +getnetent +getpeername +getprotobyname +getprotobynumber +getprotoent +getservbyname +getservbyport +getservent +getsockopt +goto +gotpty +gyre +gyre:Computer +hardcoding +hopcount +host.c +hostent +hostname +hostnames +hosts.equiv +htonl +htons +idp +idp.h +idp.idp +idsize +if.h +ifc +ifc.ifc +ifconf +ifcu +ifcu.ifcu +ifndef +ifr +ifreq +ifru +ifru.ifru +in.h +inet +inetd +inetd.conf +ing +ingres +io +ioctl.h +ipc +kim +len +localnet +lport +lq +makeaddr +matisse +medea +miro +monet +name.sin +namelen +nameserver +nb +netdb.h +netent +netinet +netns +netnum +netof +newsock +newtcp +nfds +ns +ns.h +ntoa +ntohl +ntohs +onalrm +oob +optlen +optname +optval +oz +pathname +pathnames +pex +pgrp +ph +pp +proto +protoent +pt +pty +ptyXX +ptyp +ptyxy +queueing +readfds +readmask +recv +recvfrom +recvtime +rem +req +rhosts +rlogin +rlogind +rq +rresvport +ruptime +rwho +rwhod +sendto +servent +server.sin +server.sun +sethostent +setsockopt +sid +sigvec +sin.sin +sizeof +sna +snew +sns +sns.sns +sockaddr +socket.h +sp +sp.h +sp.sp +sphdr +spp +spp.sp +sprintf +statbuf +statvax +std +stderr +stdin +stdio.h +stdout +strcmp +strcpy +strlen +syslog +ta +tcp +telnet +time.h +timeval +tmp +tolen +ttyxy +tuples +types.h +ucbvax +udp +un +un.h +uniqueid +useable +usec +val +wait.h +wait.tv +wd +wd.wd +whod +wildcard +wildcarded +writefds +writemask diff --git a/doc/ps1/09.lint/Makefile b/doc/ps1/09.lint/Makefile new file mode 100644 index 00000000..4ca01ebe --- /dev/null +++ b/doc/ps1/09.lint/Makefile @@ -0,0 +1,26 @@ +# +# Copyright (c) 1986 Regents of the University of California. +# All rights reserved. The Berkeley software License Agreement +# specifies the terms and conditions for redistribution. +# +# @(#)Makefile 6.1 (Berkeley) 5/7/86 +# +SRCS= lint.ms +MACROS= -msU +PRINTER=Pdp +REFER= refer -e -p /usr/doc/run/Ind +TROFF= ditroff -${PRINTER} + +paper: paper.${PRINTER} + lpr -${PRINTER} -n paper.${PRINTER} + +paper.${PRINTER}: ${SRCS} + ${REFER} ${SRCS} | ${TROFF} ${MACROS} -t > paper.${PRINTER} + +clean: + rm -f paper.[PT]* *.spell errs Errs make.out + +spell: ${SRCS} + @for i in ${SRCS}; do \ + echo $$i; spell $$i | sort | comm -23 - spell.ok > $$i.spell; \ + done diff --git a/doc/ps1/09.lint/lint.ms b/doc/ps1/09.lint/lint.ms new file mode 100644 index 00000000..7a02f9f6 --- /dev/null +++ b/doc/ps1/09.lint/lint.ms @@ -0,0 +1,1067 @@ +.\" @(#)lint 6.1 (Berkeley) 5/7/86 +.\" +.EH 'PS1:9-%''Lint, a C Program Checker' +.OH 'Lint, a C Program Checker''PS1:9-%' +.\".RP +.ND "July 26, 1978" +.OK +.\"Program Portability +.\"Strong Type Checking +.TL +Lint, a C Program Checker +.AU "MH 2C-559" 3968 +S. C. Johnson +.AI +.MH +.AB +.PP +.I Lint +is a command which examines C source programs, +detecting +a number of bugs and obscurities. +It enforces the type rules of C more strictly than +the C compilers. +It may also be used to enforce a number of portability +restrictions involved in moving +programs between different machines and/or operating systems. +Another option detects a number of wasteful, or error prone, constructions +which nevertheless are, strictly speaking, legal. +.PP +.I Lint +accepts multiple input files and library specifications, and checks them for consistency. +.PP +The separation of function between +.I lint +and the C compilers has both historical and practical +rationale. +The compilers turn C programs into executable files rapidly +and efficiently. +This is possible in part because the +compilers do not do sophisticated +type checking, especially between +separately compiled programs. +.I Lint +takes a more global, leisurely view of the program, +looking much more carefully at the compatibilities. +.PP +This document discusses the use of +.I lint , +gives an overview of the implementation, and gives some hints on the +writing of machine independent C code. +.AE +.CS 10 2 12 0 0 5 +.SH +Introduction and Usage +.PP +Suppose there are two C +.[ +Kernighan Ritchie Programming Prentice 1978 +.] +source files, +.I file1. c +and +.I file2.c , +which are ordinarily compiled and loaded together. +Then the command +.DS +lint file1.c file2.c +.DE +produces messages describing inconsistencies and inefficiencies +in the programs. +The program enforces the typing rules of C +more strictly than the C compilers +(for both historical and practical reasons) +enforce them. +The command +.DS +lint \-p file1.c file2.c +.DE +will produce, in addition to the above messages, additional messages +which relate to the portability of the programs to other operating +systems and machines. +Replacing the +.B \-p +by +.B \-h +will produce messages about various error-prone or wasteful constructions +which, strictly speaking, are not bugs. +Saying +.B \-hp +gets the whole works. +.PP +The next several sections describe the major messages; +the document closes with sections +discussing the implementation and giving suggestions +for writing portable C. +An appendix gives a summary of the +.I lint +options. +.SH +A Word About Philosophy +.PP +Many of the facts which +.I lint +needs may be impossible to +discover. +For example, whether a given function in a program ever gets called +may depend on the input data. +Deciding whether +.I exit +is ever called is equivalent to solving the famous ``halting problem,'' known to be +recursively undecidable. +.PP +Thus, most of the +.I lint +algorithms are a compromise. +If a function is never mentioned, it can never be called. +If a function is mentioned, +.I lint +assumes it can be called; this is not necessarily so, but in practice is quite reasonable. +.PP +.I Lint +tries to give information with a high degree of relevance. +Messages of the form ``\fIxxx\fR might be a bug'' +are easy to generate, but are acceptable only in proportion +to the fraction of real bugs they uncover. +If this fraction of real bugs is too small, the messages lose their credibility +and serve merely to clutter up the output, +obscuring the more important messages. +.PP +Keeping these issues in mind, we now consider in more detail +the classes of messages which +.I lint +produces. +.SH +Unused Variables and Functions +.PP +As sets of programs evolve and develop, +previously used variables and arguments to +functions may become unused; +it is not uncommon for external variables, or even entire +functions, to become unnecessary, and yet +not be removed from the source. +These ``errors of commission'' rarely cause working programs to fail, but they are a source +of inefficiency, and make programs harder to understand +and change. +Moreover, information about such unused variables and functions can occasionally +serve to discover bugs; if a function does a necessary job, and +is never called, something is wrong! +.PP +.I Lint +complains about variables and functions which are defined but not otherwise +mentioned. +An exception is variables which are declared through explicit +.B extern +statements but are never referenced; thus the statement +.DS +extern float sin(\|); +.DE +will evoke no comment if +.I sin +is never used. +Note that this agrees with the semantics of the C compiler. +In some cases, these unused external declarations might be of some interest; they +can be discovered by adding the +.B \-x +flag to the +.I lint +invocation. +.PP +Certain styles of programming +require many functions to be written with similar interfaces; +frequently, some of the arguments may be unused +in many of the calls. +The +.B \-v +option is available to suppress the printing of +complaints about unused arguments. +When +.B \-v +is in effect, no messages are produced about unused +arguments except for those +arguments which are unused and also declared as +register arguments; this can be considered +an active (and preventable) waste of the register +resources of the machine. +.PP +There is one case where information about unused, or +undefined, variables is more distracting +than helpful. +This is when +.I lint +is applied to some, but not all, files out of a collection +which are to be loaded together. +In this case, many of the functions and variables defined +may not be used, and, conversely, +many functions and variables defined elsewhere may be used. +The +.B \-u +flag may be used to suppress the spurious messages which might otherwise appear. +.SH +Set/Used Information +.PP +.I Lint +attempts to detect cases where a variable is used before it is set. +This is very difficult to do well; +many algorithms take a good deal of time and space, +and still produce messages about perfectly valid programs. +.I Lint +detects local variables (automatic and register storage classes) +whose first use appears physically earlier in the input file than the first assignment to the variable. +It assumes that taking the address of a variable constitutes a ``use,'' since the actual use +may occur at any later time, in a data dependent fashion. +.PP +The restriction to the physical appearance of variables in the file makes the +algorithm very simple and quick to implement, +since the true flow of control need not be discovered. +It does mean that +.I lint +can complain about some programs which are legal, +but these programs would probably be considered bad on stylistic grounds (e.g. might +contain at least two \fBgoto\fR's). +Because static and external variables are initialized to 0, +no meaningful information can be discovered about their uses. +The algorithm deals correctly, however, with initialized automatic variables, and variables +which are used in the expression which first sets them. +.PP +The set/used information also permits recognition of those local variables which are set +and never used; these form a frequent source of inefficiencies, and may also be symptomatic of bugs. +.SH +Flow of Control +.PP +.I Lint +attempts to detect unreachable portions of the programs which it processes. +It will complain about unlabeled statements immediately following +\fBgoto\fR, \fBbreak\fR, \fBcontinue\fR, or \fBreturn\fR statements. +An attempt is made to detect loops which can never be left at the bottom, detecting the +special cases +\fBwhile\fR( 1 ) and \fBfor\fR(;;) as infinite loops. +.I Lint +also complains about loops which cannot be entered at the top; +some valid programs may have such loops, but at best they are bad style, +at worst bugs. +.PP +.I Lint +has an important area of blindness in the flow of control algorithm: +it has no way of detecting functions which are called and never return. +Thus, a call to +.I exit +may cause unreachable code which +.I lint +does not detect; the most serious effects of this are in the +determination of returned function values (see the next section). +.PP +One form of unreachable statement is not usually complained about by +.I lint; +a +.B break +statement that cannot be reached causes no message. +Programs generated by +.I yacc , +.[ +Johnson Yacc 1975 +.] +and especially +.I lex , +.[ +Lesk Lex +.] +may have literally hundreds of unreachable +.B break +statements. +The +.B \-O +flag in the C compiler will often eliminate the resulting object code inefficiency. +Thus, these unreached statements are of little importance, +there is typically nothing the user can do about them, and the +resulting messages would clutter up the +.I lint +output. +If these messages are desired, +.I lint +can be invoked with the +.B \-b +option. +.SH +Function Values +.PP +Sometimes functions return values which are never used; +sometimes programs incorrectly use function ``values'' +which have never been returned. +.I Lint +addresses this problem in a number of ways. +.PP +Locally, within a function definition, +the appearance of both +.DS +return( \fIexpr\fR ); +.DE +and +.DS +return ; +.DE +statements is cause for alarm; +.I lint +will give the message +.DS +function \fIname\fR contains return(e) and return +.DE +The most serious difficulty with this is detecting when a function return is implied +by flow of control reaching the end of the function. +This can be seen with a simple example: +.DS +.ta .5i 1i 1.5i +\fRf ( a ) { + if ( a ) return ( 3 ); + g (\|); + } +.DE +Notice that, if \fIa\fR tests false, \fIf\fR will call \fIg\fR and then return +with no defined return value; this will trigger a complaint from +.I lint . +If \fIg\fR, like \fIexit\fR, never returns, +the message will still be produced when in fact nothing is wrong. +.PP +In practice, some potentially serious bugs have been discovered by this feature; +it also accounts for a substantial fraction of the ``noise'' messages produced +by +.I lint . +.PP +On a global scale, +.I lint +detects cases where a function returns a value, but this value is sometimes, +or always, unused. +When the value is always unused, it may constitute an inefficiency in the function definition. +When the value is sometimes unused, it may represent bad style (e.g., not testing for +error conditions). +.PP +The dual problem, using a function value when the function does not return one, +is also detected. +This is a serious problem. +Amazingly, this bug has been observed on a couple of occasions +in ``working'' programs; the desired function value just happened to have been computed +in the function return register! +.SH +Type Checking +.PP +.I Lint +enforces the type checking rules of C more strictly than the compilers do. +The additional checking is in four major areas: +across certain binary operators and implied assignments, +at the structure selection operators, +between the definition and uses of functions, +and in the use of enumerations. +.PP +There are a number of operators which have an implied balancing between types of the operands. +The assignment, conditional ( ?\|: ), and relational operators +have this property; the argument +of a \fBreturn\fR statement, +and expressions used in initialization also suffer similar conversions. +In these operations, +\fBchar\fR, \fBshort\fR, \fBint\fR, \fBlong\fR, \fBunsigned\fR, \fBfloat\fR, and \fBdouble\fR types may be freely intermixed. +The types of pointers must agree exactly, +except that arrays of \fIx\fR's can, of course, be intermixed with pointers to \fIx\fR's. +.PP +The type checking rules also require that, in structure references, the +left operand of the \(em> be a pointer to structure, the left operand of the \fB.\fR +be a structure, and the right operand of these operators be a member +of the structure implied by the left operand. +Similar checking is done for references to unions. +.PP +Strict rules apply to function argument and return value +matching. +The types \fBfloat\fR and \fBdouble\fR may be freely matched, +as may the types \fBchar\fR, \fBshort\fR, \fBint\fR, and \fBunsigned\fR. +Also, pointers can be matched with the associated arrays. +Aside from this, all actual arguments must agree in type with their declared counterparts. +.PP +With enumerations, checks are made that enumeration variables or members are not mixed +with other types, or other enumerations, +and that the only operations applied are =, initialization, ==, !=, and function arguments and return values. +.SH +Type Casts +.PP +The type cast feature in C was introduced largely as an aid +to producing more portable programs. +Consider the assignment +.DS +p = 1 ; +.DE +where +.I p +is a character pointer. +.I Lint +will quite rightly complain. +Now, consider the assignment +.DS +p = (char \(**)1 ; +.DE +in which a cast has been used to +convert the integer to a character pointer. +The programmer obviously had a strong motivation +for doing this, and has clearly signaled his intentions. +It seems harsh for +.I lint +to continue to complain about this. +On the other hand, if this code is moved to another +machine, such code should be looked at carefully. +The +.B \-c +flag controls the printing of comments about casts. +When +.B \-c +is in effect, casts are treated as though they were assignments +subject to complaint; otherwise, all legal casts are passed without comment, +no matter how strange the type mixing seems to be. +.SH +Nonportable Character Use +.PP +On the PDP-11, characters are signed quantities, with a range +from \-128 to 127. +On most of the other C implementations, characters take on only positive +values. +Thus, +.I lint +will flag certain comparisons and assignments as being +illegal or nonportable. +For example, the fragment +.DS +char c; + ... +if( (c = getchar(\|)) < 0 ) .... +.DE +works on the PDP-11, but +will fail on machines where characters always take +on positive values. +The real solution is to declare +.I c +an integer, since +.I getchar +is actually returning +integer values. +In any case, +.I lint +will say +``nonportable character comparison''. +.PP +A similar issue arises with bitfields; when assignments +of constant values are made to bitfields, the field may +be too small to hold the value. +This is especially true because +on some machines bitfields are considered as signed +quantities. +While it may seem unintuitive to consider +that a two bit field declared of type +.B int +cannot hold the value 3, the problem disappears +if the bitfield is declared to have type +.B unsigned . +.SH +Assignments of longs to ints +.PP +Bugs may arise from the assignment of +.B long +to +an +.B int , +which loses accuracy. +This may happen in programs +which have been incompletely converted to use +.B typedefs . +When a +.B typedef +variable +is changed from \fBint\fR to \fBlong\fR, +the program can stop working because +some intermediate results may be assigned +to \fBints\fR, losing accuracy. +Since there are a number of legitimate reasons for +assigning \fBlongs\fR to \fBints\fR, the detection +of these assignments is enabled +by the +.B \-a +flag. +.SH +Strange Constructions +.PP +Several perfectly legal, but somewhat strange, constructions +are flagged by +.I lint; +the messages hopefully encourage better code quality, clearer style, and +may even point out bugs. +The +.B \-h +flag is used to enable these checks. +For example, in the statement +.DS +\(**p++ ; +.DE +the \(** does nothing; this provokes the message ``null effect'' from +.I lint . +The program fragment +.DS +unsigned x ; +if( x < 0 ) ... +.DE +is clearly somewhat strange; the +test will never succeed. +Similarly, the test +.DS +if( x > 0 ) ... +.DE +is equivalent to +.DS +if( x != 0 ) +.DE +which may not be the intended action. +.I Lint +will say ``degenerate unsigned comparison'' in these cases. +If one says +.DS +if( 1 != 0 ) .... +.DE +.I lint +will report +``constant in conditional context'', since the comparison +of 1 with 0 gives a constant result. +.PP +Another construction +detected by +.I lint +involves +operator precedence. +Bugs which arise from misunderstandings about the precedence +of operators can be accentuated by spacing and formatting, +making such bugs extremely hard to find. +For example, the statements +.DS +if( x&077 == 0 ) ... +.DE +or +.DS +x<\h'-.3m'<2 + 40 +.DE +probably do not do what was intended. +The best solution is to parenthesize such expressions, +and +.I lint +encourages this by an appropriate message. +.PP +Finally, when the +.B \-h +flag is in force +.I lint +complains about variables which are redeclared in inner blocks +in a way that conflicts with their use in outer blocks. +This is legal, but is considered by many (including the author) to +be bad style, usually unnecessary, and frequently a bug. +.SH +Ancient History +.PP +There are several forms of older syntax which are being officially +discouraged. +These fall into two classes, assignment operators and initialization. +.PP +The older forms of assignment operators (e.g., =+, =\-, . . . ) +could cause ambiguous expressions, such as +.DS +a =\-1 ; +.DE +which could be taken as either +.DS +a =\- 1 ; +.DE +or +.DS +a = \-1 ; +.DE +The situation is especially perplexing if this +kind of ambiguity arises as the result of a macro substitution. +The newer, and preferred operators (+=, \-=, etc. ) +have no such ambiguities. +To spur the abandonment of the older forms, +.I lint +complains about these old fashioned operators. +.PP +A similar issue arises with initialization. +The older language allowed +.DS +int x \fR1 ; +.DE +to initialize +.I x +to 1. +This also caused syntactic difficulties: for example, +.DS +int x ( \-1 ) ; +.DE +looks somewhat like the beginning of a function declaration: +.DS +int x ( y ) { . . . +.DE +and the compiler must read a fair ways past +.I x +in order to sure what the declaration really is.. +Again, the problem is even more perplexing when the +initializer involves a macro. +The current syntax places an equals sign between the +variable and the initializer: +.DS +int x = \-1 ; +.DE +This is free of any possible syntactic ambiguity. +.SH +Pointer Alignment +.PP +Certain pointer assignments may be reasonable on some machines, +and illegal on others, due entirely to +alignment restrictions. +For example, on the PDP-11, it is reasonable +to assign integer pointers to double pointers, since +double precision values may begin on any integer boundary. +On the Honeywell 6000, double precision values must begin +on even word boundaries; +thus, not all such assignments make sense. +.I Lint +tries to detect cases where pointers are assigned to other +pointers, and such alignment problems might arise. +The message ``possible pointer alignment problem'' +results from this situation whenever either the +.B \-p +or +.B \-h +flags are in effect. +.SH +Multiple Uses and Side Effects +.PP +In complicated expressions, the best order in which to evaluate +subexpressions may be highly machine dependent. +For example, on machines (like the PDP-11) in which the stack +runs backwards, function arguments will probably be best evaluated +from right-to-left; on machines with a stack running forward, +left-to-right seems most attractive. +Function calls embedded as arguments of other functions +may or may not be treated similarly to ordinary arguments. +Similar issues arise with other operators which have side effects, +such as the assignment operators and the increment and decrement operators. +.PP +In order that the efficiency of C on a particular machine not be +unduly compromised, the C language leaves the order +of evaluation of complicated expressions up to the +local compiler, and, in fact, the various C compilers have considerable +differences in the order in which they will evaluate complicated +expressions. +In particular, if any variable is changed by a side effect, and +also used elsewhere in the same expression, the result is explicitly undefined. +.PP +.I Lint +checks for the important special case where +a simple scalar variable is affected. +For example, the statement +.DS +\fIa\fR[\fIi\|\fR] = \fIb\fR[\fIi\fR++] ; +.DE +will draw the complaint: +.DS +warning: \fIi\fR evaluation order undefined +.DE +.SH +Implementation +.PP +.I Lint +consists of two programs and a driver. +The first program is a version of the +Portable C Compiler +.[ +Johnson Ritchie BSTJ Portability Programs System +.] +.[ +Johnson portable compiler 1978 +.] +which is the basis of the +IBM 370, Honeywell 6000, and Interdata 8/32 C compilers. +This compiler does lexical and syntax analysis on the input text, +constructs and maintains symbol tables, and builds trees for expressions. +Instead of writing an intermediate file which is passed to +a code generator, as the other compilers +do, +.I lint +produces an intermediate file which consists of lines of ascii text. +Each line contains an external variable name, +an encoding of the context in which it was seen (use, definition, declaration, etc.), +a type specifier, and a source file name and line number. +The information about variables local to a function or file +is collected +by accessing the symbol table, and examining the expression trees. +.PP +Comments about local problems are produced as detected. +The information about external names is collected +onto an intermediate file. +After all the source files and library descriptions have +been collected, the intermediate file is sorted +to bring all information collected about a given external +name together. +The second, rather small, program then reads the lines +from the intermediate file and compares all of the +definitions, declarations, and uses for consistency. +.PP +The driver controls this +process, and is also responsible for making the options available +to both passes of +.I lint . +.SH +Portability +.PP +C on the Honeywell and IBM systems is used, in part, to write system code for the host operating system. +This means that the implementation of C tends to follow local conventions rather than +adhere strictly to +.UX +system conventions. +Despite these differences, many C programs have been successfully moved to GCOS and the various IBM +installations with little effort. +This section describes some of the differences between the implementations, and +discusses the +.I lint +features which encourage portability. +.PP +Uninitialized external variables are treated differently in different +implementations of C. +Suppose two files both contain a declaration without initialization, such as +.DS +int a ; +.DE +outside of any function. +The +.UX +loader will resolve these declarations, and cause only a single word of storage +to be set aside for \fIa\fR. +Under the GCOS and IBM implementations, this is not feasible (for various stupid reasons!) +so each such declaration causes a word of storage to be set aside and called \fIa\fR. +When loading or library editing takes place, this causes fatal conflicts which prevent +the proper operation of the program. +If +.I lint +is invoked with the \fB\-p\fR flag, +it will detect such multiple definitions. +.PP +A related difficulty comes from the amount of information retained about external names during the +loading process. +On the +.UX +system, externally known names have seven significant characters, with the upper/lower +case distinction kept. +On the IBM systems, there are eight significant characters, but the case distinction +is lost. +On GCOS, there are only six characters, of a single case. +This leads to situations where programs run on the +.UX +system, but encounter loader +problems on the IBM or GCOS systems. +.I Lint +.B \-p +causes all external symbols to be mapped to one case and truncated to six characters, +providing a worst-case analysis. +.PP +A number of differences arise in the area of character handling: characters in the +.UX +system are eight bit ascii, while they are eight bit ebcdic on the IBM, and +nine bit ascii on GCOS. +Moreover, character strings go from high to low bit positions (``left to right'') +on GCOS and IBM, and low to high (``right to left'') on the PDP-11. +This means that code attempting to construct strings +out of character constants, or attempting to use characters as indices +into arrays, must be looked at with great suspicion. +.I Lint +is of little help here, except to flag multi-character character constants. +.PP +Of course, the word sizes are different! +This causes less trouble than might be expected, at least when +moving from the +.UX +system (16 bit words) to the IBM (32 bits) or GCOS (36 bits). +The main problems are likely to arise in shifting or masking. +C now supports a bit-field facility, which can be used to write much of +this code in a reasonably portable way. +Frequently, portability of such code can be enhanced by +slight rearrangements in coding style. +Many of the incompatibilities seem to have the flavor of writing +.DS +x &= 0177700 ; +.DE +to clear the low order six bits of \fIx\fR. +This suffices on the PDP-11, but fails badly on GCOS and IBM. +If the bit field feature cannot be used, the same effect can be obtained by +writing +.DS +x &= \(ap 077 ; +.DE +which will work on all these machines. +.PP +The right shift operator is arithmetic shift on the PDP-11, and logical shift on most +other machines. +To obtain a logical shift on all machines, the left operand can be +typed \fBunsigned\fR. +Characters are considered signed integers on the PDP-11, and unsigned on the other machines. +This persistence of the sign bit may be reasonably considered a bug in the PDP-11 hardware +which has infiltrated itself into the C language. +If there were a good way to discover the programs which would be affected, C could be changed; +in any case, +.I lint +is no help here. +.PP +The above discussion may have made the problem of portability seem +bigger than it in fact is. +The issues involved here are rarely subtle or mysterious, at least to the +implementor of the program, although they can involve some work to straighten out. +The most serious bar to the portability of +.UX +system utilities has been the inability to mimic +essential +.UX +system functions on the other systems. +The inability to seek to a random character position in a text file, or to establish a pipe +between processes, has involved far more rewriting +and debugging than any of the differences in C compilers. +On the other hand, +.I lint +has been very helpful +in moving the +.UX +operating system and associated +utility programs to other machines. +.SH +Shutting Lint Up +.PP +There are occasions when +the programmer is smarter than +.I lint . +There may be valid reasons for ``illegal'' type casts, +functions with a variable number of arguments, etc. +Moreover, as specified above, the flow of control information +produced by +.I lint +often has blind spots, causing occasional spurious +messages about perfectly reasonable programs. +Thus, some way of communicating with +.I lint , +typically to shut it up, is desirable. +.PP +The form which this mechanism should take is not at all clear. +New keywords would require current and old compilers to +recognize these keywords, if only to ignore them. +This has both philosophical and practical problems. +New preprocessor syntax suffers from similar problems. +.PP +What was finally done was to cause a number of words +to be recognized by +.I lint +when they were embedded in comments. +This required minimal preprocessor changes; +the preprocessor just had to agree to pass comments +through to its output, instead of deleting them +as had been previously done. +Thus, +.I lint +directives are invisible to the compilers, and +the effect on systems with the older preprocessors +is merely that the +.I lint +directives don't work. +.PP +The first directive is concerned with flow of control information; +if a particular place in the program cannot be reached, +but this is not apparent to +.I lint , +this can be asserted by the directive +.DS +/* NOTREACHED */ +.DE +at the appropriate spot in the program. +Similarly, if it is desired to turn off +strict type checking for +the next expression, the directive +.DS +/* NOSTRICT */ +.DE +can be used; the situation reverts to the +previous default after the next expression. +The +.B \-v +flag can be turned on for one function by the directive +.DS +/* ARGSUSED */ +.DE +Complaints about variable number of arguments in calls to a function +can be turned off by the directive +.DS +/* VARARGS */ +.DE +preceding the function definition. +In some cases, it is desirable to check the +first several arguments, and leave the later arguments unchecked. +This can be done by following the VARARGS keyword immediately +with a digit giving the number of arguments which should be checked; thus, +.DS +/* VARARGS2 */ +.DE +will cause the first two arguments to be checked, the others unchecked. +Finally, the directive +.DS +/* LINTLIBRARY */ +.DE +at the head of a file identifies this file as +a library declaration file; this topic is worth a +section by itself. +.SH +Library Declaration Files +.PP +.I Lint +accepts certain library directives, such as +.DS +\-ly +.DE +and tests the source files for compatibility with these libraries. +This is done by accessing library description files whose +names are constructed from the library directives. +These files all begin with the directive +.DS +/* LINTLIBRARY */ +.DE +which is followed by a series of dummy function +definitions. +The critical parts of these definitions +are the declaration of the function return type, +whether the dummy function returns a value, and +the number and types of arguments to the function. +The VARARGS and ARGSUSED directives can +be used to specify features of the library functions. +.PP +.I Lint +library files are processed almost exactly like ordinary +source files. +The only difference is that functions which are defined on a library file, +but are not used on a source file, draw no complaints. +.I Lint +does not simulate a full library search algorithm, +and complains if the source files contain a redefinition of +a library routine (this is a feature!). +.PP +By default, +.I lint +checks the programs it is given against a standard library +file, which contains descriptions of the programs which +are normally loaded when +a C program +is run. +When the +.B -p +flag is in effect, another file is checked containing +descriptions of the standard I/O library routines +which are expected to be portable across various machines. +The +.B -n +flag can be used to suppress all library checking. +.SH +Bugs, etc. +.PP +.I Lint +was a difficult program to write, partially +because it is closely connected with matters of programming style, +and partially because users usually don't notice bugs which cause +.I lint +to miss errors which it should have caught. +(By contrast, if +.I lint +incorrectly complains about something that is correct, the +programmer reports that immediately!) +.PP +A number of areas remain to be further developed. +The checking of structures and arrays is rather inadequate; +size +incompatibilities go unchecked, +and no attempt is made to match up structure and union +declarations across files. +Some stricter checking of the use of the +.B typedef +is clearly desirable, but what checking is appropriate, and how +to carry it out, is still to be determined. +.PP +.I Lint +shares the preprocessor with the C compiler. +At some point it may be appropriate for a +special version of the preprocessor to be constructed +which checks for things such as unused macro definitions, +macro arguments which have side effects which are +not expanded at all, or are expanded more than once, etc. +.PP +The central problem with +.I lint +is the packaging of the information which it collects. +There are many options which +serve only to turn off, or slightly modify, +certain features. +There are pressures to add even more of these options. +.PP +In conclusion, it appears that the general notion of having two +programs is a good one. +The compiler concentrates on quickly and accurately turning the +program text into bits which can be run; +.I lint +concentrates on issues +of portability, style, and efficiency. +.I Lint +can afford to be wrong, since incorrectness and over-conservatism +are merely annoying, not fatal. +The compiler can be fast since it knows that +.I lint +will cover its flanks. +Finally, the programmer can +concentrate at one stage +of the programming process solely on the algorithms, +data structures, and correctness of the +program, and then later retrofit, +with the aid of +.I lint , +the desirable properties of universality and portability. +.SG MH-1273-SCJ-unix +.\".bp +.[ +$LIST$ +.] +.bp +.SH +Appendix: Current Lint Options +.PP +The command currently has the form +.DS +lint\fR [\fB\-\fRoptions ] files... library-descriptors... +.DE +The options are +.IP \fBh\fR +Perform heuristic checks +.IP \fBp\fR +Perform portability checks +.IP \fBv\fR +Don't report unused arguments +.IP \fBu\fR +Don't report unused or undefined externals +.IP \fBb\fR +Report unreachable +.B break +statements. +.IP \fBx\fR +Report unused external declarations +.IP \fBa\fR +Report assignments of +.B long +to +.B int +or shorter. +.IP \fBc\fR +Complain about questionable casts +.IP \fBn\fR +No library checking is done +.IP \fBs\fR +Same as +.B h +(for historical reasons) diff --git a/doc/ps1/10.adb/Makefile b/doc/ps1/10.adb/Makefile new file mode 100644 index 00000000..2050f757 --- /dev/null +++ b/doc/ps1/10.adb/Makefile @@ -0,0 +1,28 @@ +# +# Copyright (c) 1980 Regents of the University of California. +# All rights reserved. The Berkeley software License Agreement +# specifies the terms and conditions for redistribution. +# +# @(#)Makefile 6.1 (Berkeley) 5/7/86 +# +PRINTER=-Pdp +TROFF= ditroff ${PRINTER} +EQN= deqn ${PRINTER} +TBL= dtbl ${PRINTER} +LPR= lpr -n ${PRINTER} + +SRCS= adb.ms + +paper: adb.n + ${LPR} adb.n + +adb.n: ${SRCS} + ${EQN} ${SRCS} | ${TBL} | ${TROFF} -t -ms >adb.n + +clean: + rm -f adb.n + +spell: ${SRCS} + @for i in ${SRCS}; do \ + echo $$i; spell $$i | sort | comm -23 - spell.ok > $$i.spell; \ + done diff --git a/doc/ps1/10.adb/adb.ms b/doc/ps1/10.adb/adb.ms new file mode 100644 index 00000000..7f81862c --- /dev/null +++ b/doc/ps1/10.adb/adb.ms @@ -0,0 +1,2257 @@ +.\" @(#)adb.ms 6.1 (Berkeley) 5/7/86 +.\" +.EH 'PS1:10-%''A Tutorial Introduction to ADB' +.OH 'A Tutorial Introduction to ADB''PS1:10-%' +.de P1 +.sp .5 +.if \\n(.$>0 .ta \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 +.if \\n(.$=0 .ta 1i 1.7i 2.5i +.ft 3 +.nf +.. +.de P2 +.sp .5 +.ft 1 +.fi +.. +.\".RP +.....TM "77-8234-11 77-1273-10" "49170-220 39199" "40952-1 39199-11" +.ND May 5, 1977 +.TL +A Tutorial Introduction to ADB +.AU "MH2F-207" "3816" +J. F. Maranzano +.AU "MH2C-512" 7419 +S. R. Bourne +.AI +.MH +.OK +.\"UNIX +.\"Debugging +.\"C Programming +.AB +.PP +Debugging tools generally provide a wealth of information +about the inner workings of programs. +These tools have been available on +.UX +to allow users to +examine ``core'' files +that result from aborted programs. +A new debugging program, ADB, provides enhanced capabilities +to examine "core" and other program files in a +variety of formats, run programs with embedded breakpoints and patch files. +.PP +ADB is an indispensable but complex tool for debugging crashed systems and/or +programs. +This document provides an introduction to ADB with examples of its use. +It explains the various formatting options, +techniques for debugging C programs, examples of printing +file system information and patching. +.AE +.CS 12 15 27 13 0 5 +.NH +Introduction +.PP +ADB is a new debugging program that is +available on UNIX. +It provides capabilities to look at +``core'' files resulting from aborted programs, print output in a +variety of formats, patch files, and run programs +with embedded breakpoints. +This document provides examples of +the more useful features of ADB. +The reader is expected to be +familiar with the basic commands on +.UX +with the C +language, and with References 1, 2 and 3. +.NH +A Quick Survey +.NH 2 +Invocation +.PP +ADB is invoked as: +.P1 + adb objfile corefile +.P2 +where +.ul +objfile +is an executable UNIX file and +.ul +corefile +is a core image file. +Many times this will look like: +.P1 + adb a.out core +.P2 +or more simply: +.P1 + adb +.P2 +where the defaults are +.ul +a.out +and +.ul +core +respectively. +The filename minus (\-) means ignore this argument as in: +.P1 + adb \- core +.P2 +.PP +ADB has requests for examining locations in either file. +The +\fB?\fP +request examines the contents of +.ul +objfile, +the +\fB/\fP +request examines the +.ul +corefile. +The general form of these requests is: +.P1 + address ? format +.P2 +or +.P1 + address / format +.P2 +.NH 2 +Current Address +.PP +ADB maintains a current address, called dot, +similar in function to the current pointer in the UNIX editor. +When an address is entered, the current address is set to that location, +so that: +.P1 + 0126?i +.P2 +sets dot to octal 126 and prints the instruction +at that address. +The request: +.P1 + .,10/d +.P2 +prints 10 decimal numbers starting at dot. +Dot ends up referring to the address of the last item printed. +When used with the \fB?\fP or \fB/\fP requests, +the current address can be advanced by typing newline; it can be decremented +by typing \fB^\fP. +.PP +Addresses are represented by +expressions. +Expressions are made up from decimal, octal, and hexadecimal integers, +and symbols from the program under test. +These may be combined with the operators +, \-, *, % (integer division), +& (bitwise and), | (bitwise inclusive or), # (round up +to the next multiple), and ~ (not). +(All arithmetic within ADB is 32 bits.) +When typing a symbolic address for a C program, +the user can type +.ul +name +or +.ul +_name; +ADB will recognize both forms. +.NH 2 +Formats +.PP +To print data, a user specifies a collection of letters and characters +that describe the format of the printout. +Formats are "remembered" in the sense that typing a request without one +will cause the new printout to appear in the previous format. +The following are the most commonly used format letters. +.P1 +\fB b \fPone byte in octal +\fB c \fPone byte as a character +\fB o \fPone word in octal +\fB d \fPone word in decimal +\fB f \fPtwo words in floating point +\fB i \fPPDP 11 instruction +\fB s \fPa null terminated character string +\fB a \fPthe value of dot +\fB u \fPone word as unsigned integer +\fB n \fPprint a newline +\fB r \fPprint a blank space +\fB ^ \fPbackup dot +.P2 +(Format letters are also available for "long" values, +for example, `\fBD\fR' for long decimal, and `\fBF\fP' for double floating point.) +For other formats see the ADB manual. +.NH 2 +General Request Meanings +.PP +The general form of a request is: +.P1 + address,count command modifier +.P2 +which sets `dot' to \fIaddress\fP +and executes the command +\fIcount\fR times. +.PP +The following table illustrates some general ADB command meanings: +.P1 + Command Meaning +\fB ? \fPPrint contents from \fIa.out\fP file +\fB / \fPPrint contents from \fIcore\fP file +\fB = \fPPrint value of "dot" +\fB : \fPBreakpoint control +\fB $ \fPMiscellaneous requests +\fB ; \fPRequest separator +\fB ! \fPEscape to shell +.P2 +.PP +ADB catches signals, so a user cannot use a quit signal to exit from ADB. +The request $q or $Q (or cntl-D) must be used +to exit from ADB. +.NH +Debugging C Programs +.NH 2 +Debugging A Core Image +.PP +Consider the C program in Figure 1. +The program is used to illustrate a common error made by +C programmers. +The object of the program is to change the +lower case "t" to upper case in the string pointed to by +.ul +charp +and then write the character string to the file indicated by +argument 1. +The bug shown is that the character "T" +is stored in the pointer +.ul +charp +instead of the string pointed to by +.ul +charp. +Executing the program produces a core file because of an out of bounds memory reference. +.PP +ADB is invoked by: +.P1 + adb a.out core +.P2 +The first debugging request: +.P1 + $c +.P2 +is used to give a C backtrace through the +subroutines called. +As shown in Figure 2 +only one function (\fImain\fR) was called and the +arguments +.ul +argc +and +.ul +argv +have octal values 02 and +0177762 respectively. +Both of these values look +reasonable; 02 = two arguments, 0177762 = address on stack +of parameter vector. +.br +The next request: +.P1 + $C +.P2 +is used to give a C backtrace plus an interpretation +of all the local variables in each function and their +values in octal. +The value of the variable +.ul +cc +looks incorrect +since +.ul +cc +was declared as a character. +.PP +The next request: +.P1 + $r +.P2 +prints out the registers including the program +counter and an interpretation of the instruction at that +location. +.PP +The request: +.P1 + $e +.P2 +prints out the values of all external variables. +.PP +A map exists for each file +handled by +ADB. +The map for the +.ul +a.out +file is referenced by \fB?\fP whereas the map for +.ul +core +file is referenced by \fB/\fP. +Furthermore, a good rule of thumb is to use \fB?\fP for +instructions and \fB/\fP for data when looking at programs. +To print out information about the maps type: +.P1 + $m +.P2 +This produces a report of the contents of the maps. +More about these maps later. +.PP +In our example, it is useful to see the +contents of the string pointed to by +.ul +charp. +This is done by: +.P1 + *charp/s +.P2 +which says use +.ul +charp +as a pointer in the +.ul +core +file +and print the information as a character string. +This printout clearly shows that the character buffer +was incorrectly overwritten and helps identify the error. +Printing the locations around +.ul +charp +shows that the buffer is unchanged +but that the pointer is destroyed. +Using ADB similarly, we could print information about the +arguments to a function. +The request: +.P1 + main.argc/d +.P2 +prints the decimal +.ul +core +image value of the argument +.ul +argc +in the function +.ul +main. +.br +The request: +.P1 + *main.argv,3/o +.P2 +prints the octal values of the three consecutive +cells pointed to by +.ul +argv +in the function +.ul +main. +Note that these values are the addresses of the arguments +to main. +Therefore: +.P1 + 0177770/s +.P2 +prints the ASCII value of the first argument. +Another way to print this value would have been +.P1 + *"/s +.P2 +The " means ditto which remembers the last address +typed, in this case \fImain.argc\fP ; the \fB*\fP instructs ADB to use the address field of the +.ul +core +file as a pointer. +.PP +The request: +.P1 + .=o +.P2 +prints the current address (not its contents) in octal which has been set to the address of the first argument. +The current address, dot, is used by ADB to +"remember" its current location. +It allows the user +to reference locations relative to the current +address, for example: +.P1 + .\-10/d +.P2 +.NH 2 +Multiple Functions +.PP +Consider the C program illustrated in +Figure 3. +This program calls functions +.ul +f, g, +and +.ul +h +until the stack is exhausted and a core image is produced. +.PP +Again you can enter the debugger via: +.P1 + adb +.P2 +which assumes the names +.ul +a.out +and +.ul +core +for the executable +file and core image file respectively. +The request: +.P1 + $c +.P2 +will fill a page of backtrace references to +.ul +f, g, +and +.ul +h. +Figure 4 shows an abbreviated list (typing +.ul +DEL +will terminate the output and bring you back to ADB request level). +.PP +The request: +.P1 + ,5$C +.P2 +prints the five most recent activations. +.PP +Notice that each function +(\fIf,g,h\fP) has a counter +of the number of times it was called. +.PP +The request: +.P1 + fcnt/d +.P2 +prints the decimal value of the counter for the function +.ul +f. +Similarly +.ul +gcnt +and +.ul +hcnt +could be printed. +To print the value of an automatic variable, +for example the decimal value of +.ul +x +in the last call of the function +.ul +h, +type: +.P1 + h.x/d +.P2 +It is currently not possible in the exported version to print stack frames other than the most recent activation of a function. +Therefore, a user can print everything with +\fB$C\fR or the occurrence of a variable in the most recent call of a function. +It is possible with the \fB$C\fR request, however, to print the stack frame +starting at some address as \fBaddress$C.\fR +.NH 2 +Setting Breakpoints +.PP +Consider the C program in Figure 5. +This program, which changes tabs into blanks, is adapted from +.ul +Software Tools +by Kernighan and Plauger, pp. 18-27. +.PP +We will run this program under the control of ADB (see Figure 6a) by: +.P1 + adb a.out \- +.P2 +Breakpoints are set in the program as: +.ul +.P1 + address:b [request] +.P2 +The requests: +.P1 + settab+4:b + fopen+4:b + getc+4:b + tabpos+4:b +.P2 +set breakpoints at the start of these functions. +C does not generate statement labels. +Therefore it is currently not possible to plant breakpoints at locations +other than function entry points without a knowledge of the code +generated by the C compiler. +The above addresses are entered as +.ft B +symbol+4 +.ft R +so that they will appear in any +C backtrace since the first instruction of each function is a call +to the C save routine +(\fIcsv\fR). +Note that some of the functions are from the C library. +.PP +To print the location of breakpoints one types: +.P1 + $b +.P2 +The display indicates a +.ul +count +field. +A breakpoint is bypassed +.ul +count \-1 +times before causing a stop. +The +.ul +command +field indicates the ADB requests to be executed each time the breakpoint is encountered. +In our example no +.ul +command +fields are present. +.PP +By displaying the original instructions at the function +.ul +settab +we see that +the breakpoint is set after the jsr to the C save routine. +We can display the instructions using the ADB request: +.P1 + settab,5?ia +.P2 +This request displays five instructions starting at +.ul +settab +with the addresses of each location displayed. +Another variation is: +.P1 + settab,5?i +.P2 +which displays the instructions with only the starting address. +.PP +Notice that we accessed the addresses from the +.ul +a.out +file with the \fB?\fP command. +In general when asking for a printout of multiple items, +ADB will advance the current address the number of +bytes necessary to satisfy the request; in the above +example five instructions were displayed and the current address was +advanced 18 (decimal) bytes. +.PP +To run the program one simply types: +.P1 + :r +.P2 +To delete a breakpoint, for instance the entry to the function +.ul +settab, +one types: +.P1 + settab+4:d +.P2 +To continue execution of the program from the breakpoint type: +.P1 + :c +.PP +Once the program has stopped (in this case at the breakpoint for +.ul +fopen), +ADB requests can be used to display the contents of memory. +For example: +.P1 + $C +.P2 +to display a stack trace, or: +.P1 + tabs,3/8o +.P2 +to print three lines of 8 locations each from the array called +.ul +tabs. +By this time (at location +.ul +fopen) +in the C program, +.ul +settab +has been called and should have set a one in every eighth location of +.ul +tabs. +.NH 2 +Advanced Breakpoint Usage +.PP +We continue execution of the program with: +.P1 + :c +.P2 +See Figure 6b. +.ul +Getc +is called three times and the contents of the variable +.ul +c +in the function +.ul +main +are displayed +each time. +The single character on the left hand edge is the output from the C program. +On the third occurrence of +.ul +getc +the program stops. +We can look at the full buffer of characters by typing: +.P1 + ibuf+6/20c +.P2 +When we continue the program with: +.P1 + :c +.P2 +we hit our first breakpoint at +.ul +tabpos +since there is a tab following the +"This" word of the data. +.PP +Several breakpoints of +.ul +tabpos +will occur until the program has changed the tab into equivalent blanks. +Since we feel that +.ul +tabpos +is working, +we can remove the breakpoint at that location by: +.P1 + tabpos+4:d +.P2 +If the program is continued with: +.P1 + :c +.P2 +it resumes normal execution after ADB prints +the message +.P1 + a.out:running +.P2 +.PP +The UNIX quit and interrupt signals +act on ADB itself rather than on the program being debugged. +If such a signal occurs then the program being debugged is stopped and control is returned to ADB. +The signal is saved by ADB and is passed on to the test program if: +.P1 + :c +.P2 +is typed. +This can be useful when testing interrupt +handling routines. +The signal is not passed on to the test program if: +.P1 + :c 0 +.P2 +is typed. +.PP +Now let us reset the breakpoint at +.ul +settab +and display the instructions located there when we reach the breakpoint. +This is accomplished by: +.P1 + settab+4:b settab,5?ia \fR* +.P2 +.FS +* Owing to a bug in early versions of ADB (including the +version distributed in Generic 3 UNIX) these statements +must be written as: +.br +.in 1i +\fBsettab+4:b settab,5?ia;0\fR +.ft B +.br +getc+4,3:b main.c?C;0 +.br +settab+4:b settab,5?ia; ptab/o;0 +.br +.ft R +.in -1i +Note that \fB;0\fR will set dot to zero and stop at the breakpoint. +.FE +It is also possible to execute the ADB requests for each occurrence of the breakpoint but +only stop after the third occurrence by typing: +.P1 + getc+4,3:b main.c?C \fR* +.P2 +This request will print the local variable +.ul +c +in the function +.ul +main +at each occurrence of the breakpoint. +The semicolon is used to separate multiple ADB requests on a single line. +.PP +Warning: +setting a breakpoint causes the value of dot to be changed; +executing the program under ADB does not change dot. +Therefore: +.P1 + settab+4:b .,5?ia + fopen+4:b +.P2 +will print the last thing dot was set to +(in the example \fIfopen+4\fP) +.ul +not +the current location (\fIsettab+4\fP) +at which the program is executing. +.PP +A breakpoint can be overwritten without first deleting the old breakpoint. +For example: +.P1 + settab+4:b settab,5?ia; ptab/o \fR* +.P2 +could be entered after typing the above requests. +.PP +Now the display of breakpoints: +.P1 + $b +.P2 +shows the above request for the +.ul +settab +breakpoint. +When the breakpoint at +.ul +settab +is encountered the ADB requests are executed. +Note that the location at +.ul +settab+4 +has been changed to plant the breakpoint; +all the other locations match their original value. +.PP +Using the functions, +.ul +f, g +and +.ul +h +shown in Figure 3, +we can follow the execution of each function by planting non-stopping +breakpoints. +We call ADB with the executable program of Figure 3 as follows: +.P1 + adb ex3 \- +.P2 +Suppose we enter the following breakpoints: +.P1 + h+4:b hcnt/d; h.hi/; h.hr/ + g+4:b gcnt/d; g.gi/; g.gr/ + f+4:b fcnt/d; f.fi/; f.fr/ + :r +.P2 +Each request line indicates that the variables are printed in decimal +(by the specification \fBd\fR). +Since the format is not changed, the \fBd\fR can be left off all but +the first request. +.PP +The output in Figure 7 illustrates two points. +First, the ADB requests in the breakpoint line are not +examined until the program under +test is run. +That means any errors in those ADB requests is not detected until run time. +At the location of the error ADB stops running the program. +.PP +The second point is the way ADB handles register variables. +ADB uses the symbol table to address variables. +Register variables, like \fIf.fr\fR above, have pointers to uninitialized +places on the stack. +Therefore the message "symbol not found". +.PP +Another way of getting at the data in this example is to print +the variables used in the call as: +.P1 + f+4:b fcnt/d; f.a/; f.b/; f.fi/ + g+4:b gcnt/d; g.p/; g.q/; g.gi/ + :c +.P2 +The operator / was used instead of ? +to read values from the \fIcore\fP file. +The output for each function, as shown in Figure 7, has the same format. +For the function \fIf\fP, for example, it shows the name and value of the +.ul +external +variable +.ul +fcnt. +It also shows the address on the stack and value of the +variables +.ul +a, b +and +.ul +fi. +.PP +Notice that the addresses on the stack will continue to decrease +until no address space is left for program execution +at which time (after many pages of output) +the program under test aborts. +A display with names would be produced by requests like the following: +.P1 + f+4:b fcnt/d; f.a/"a="d; f.b/"b="d; f.fi/"fi="d +.P2 +In this format the quoted string is printed literally and the \fBd\fP +produces a decimal display of the variables. +The results are shown in Figure 7. +.NH 2 +Other Breakpoint Facilities +.LP +.IP \(bu 4 +Arguments and change of standard input and output are passed to a program as: +.P1 + :r arg1 arg2 ... outfile +.P2 +This request +kills any existing program under test and +starts the +.ul +a.out +afresh. +.IP \(bu +The program being debugged can be single stepped +by: +.P1 + :s +.P2 +If necessary, this request will start up the program being +debugged and stop after executing +the first instruction. +.IP \(bu +ADB allows a program to be entered at a specific address +by typing: +.P1 + address:r +.P2 +.IP \(bu +The count field can be used to skip the first \fIn\fR breakpoints as: +.P1 + ,n:r +.P2 +The request: +.P1 + ,n:c +.P2 +may also be used for skipping the first \fIn\fR breakpoints +when continuing a program. +.sp +.IP \(bu +A program can be continued at an address different from the breakpoint by: +.P1 + address:c +.P2 +.IP \(bu +The program being debugged runs as a separate process and can be killed by: +.P1 + :k +.P2 +.LP +.NH +Maps +.PP +UNIX supports several executable file formats. These are used to tell +the loader how to load the program file. File type 407 +is the most common and is generated by a C compiler invocation such as +\fBcc pgm.c\fP. +A 410 file is produced by a C compiler command of the form \fBcc -n pgm.c\fP, +whereas a 411 file is produced by \fBcc -i pgm.c\fP. +ADB interprets these different file formats and +provides access to the different segments through a set of maps (see Figure 8). +To print the maps type: +.P1 + $m +.P2 +.PP +In 407 files, both text (instructions) and data are intermixed. +This makes it impossible for ADB to differentiate data from +instructions and some of the printed symbolic addresses look incorrect; +for example, printing data addresses as offsets from routines. +.PP +In 410 files (shared text), the instructions are separated from data and +\fB?*\fR accesses the data part of the \fIa.out\fP file. +The \fB?* \fP request tells ADB to use the second part of the +map in the +.ul +a.out +file. +Accessing data in the \fIcore\fP file shows +the data after it was modified by the execution of the program. +Notice also that the data segment may have grown during +program execution. +.PP +In 411 files (separated I & D space), the +instructions and data are also separated. +However, in this +case, since data is mapped through a separate set of segmentation +registers, the base of the data segment is also relative to address zero. +In this case since the addresses overlap it is necessary to use +the \fB?*\fR operator to access the data space of the \fIa.out\fP file. +In both 410 and 411 files the corresponding +core file does not contain the program text. +.PP +Figure 9 shows the display of three maps +for the same program linked as a 407, 410, 411 respectively. +The b, e, and f fields are used by ADB to map +addresses into file addresses. +The "f1" field is the +length of the header at the beginning of the file (020 bytes +for an \fIa.out\fP file and 02000 bytes for a \fIcore\fP file). +The "f2" field is the displacement from the beginning of the file to the data. +For a 407 file with mixed text and data this is the +same as the length of the header; for 410 and 411 files this +is the length of the header plus the size of the text portion. +.PP +The "b" and "e" fields are the starting and ending locations +for a segment. +Given an address, A, the location in +the file (either \fIa.out\fP or \fIcore\fP) is calculated as: +.P1 + b1\(<=A\(<=e1 =\h'-.5m'> file address = (A\-b1)+f1 + b2\(<=A\(<=e2 =\h'-.5m'> file address = (A\-b2)+f2 +.P2 +A user can access locations by using the ADB defined variables. +The \fB$v\fR request prints the variables initialized by ADB: +.P1 + b base address of data segment + d length of the data segment + s length of the stack + t length of the text + m execution type (407,410,411) +.P2 +.PP +In Figure 9 those variables not present are zero. +Use can be made of these variables by expressions such as: +.P1 + b +.P2 +that sets \fBb\fP to octal 2000. +These variables are useful to know if the file under examination +is an executable or \fIcore\fP image file. +.PP +ADB reads the header of the \fIcore\fP image file to find the +values for these variables. +If the second file specified does not +seem to be a \fIcore\fP file, or if it is missing then the header of +the executable file is used instead. +.NH +Advanced Usage +.PP +It is possible with ADB to combine formatting requests +to provide elaborate displays. +Below are several examples. +.NH 2 +Formatted dump +.PP +The line: +.P1 + b + ?m MAXLINE) + return(YES); + else + return(tabs[col]); +} +.sp .5 +/* Settab - Set initial tab stops */ +settab(tabp) +int *tabp; +{ + int i; +.sp .5 + for(i = 0; i<= MAXLINE; i++) + (i%TABSP) ? (tabs[i] = NO) : (tabs[i] = YES); +} +.P2 +.sp 100 +.SH +Figure 6a: ADB output for C program of Figure 5 +.LP +.P1 +.ft B +adb a.out \(mi +settab+4:b +fopen+4:b +getc+4:b +tabpos+4:b +$b +.ft R +breakpoints +count bkpt command +1 ~tabpos+04 +1 _getc+04 +1 _fopen+04 +1 ~settab+04 +.ft B +settab,5?ia +.ft R +~settab: jsr r5,csv +~settab+04: tst \(mi(sp) +~settab+06: clr 0177770(r5) +~settab+012: cmp $0120,0177770(r5) +~settab+020: blt ~settab+076 +~settab+022: +.ft B +settab,5?i +.ft R +~settab: jsr r5,csv + tst \(mi(sp) + clr 0177770(r5) + cmp $0120,0177770(r5) + blt ~settab+076 +.ft B +:r +.ft R +a.out: running +breakpoint ~settab+04: tst \(mi(sp) +.ft B +settab+4:d +:c +.ft R +a.out: running +breakpoint _fopen+04: mov 04(r5),nulstr+012 +.ft B +$C +.ft R +_fopen(02302,02472) +~main(01,0177770) + col: 01 + c: 0 + ptab: 03500 +.ft B +tabs,3/8o +.ft R +03500: 01 0 0 0 0 0 0 0 + 01 0 0 0 0 0 0 0 + 01 0 0 0 0 0 0 0 +.P2 +.sp 100 +.SH +Figure 6b: ADB output for C program of Figure 5 +.LP +.P1 +.ft B +:c +.ft R +a.out: running +breakpoint _getc+04: mov 04(r5),r1 +.ft B +ibuf+6/20c +.ft R +__cleanu+0202: This is a test of +.ft B +:c +.ft R +a.out: running +breakpoint ~tabpos+04: cmp $0120,04(r5) +.ft B +tabpos+4:d +settab+4:b settab,5?ia +settab+4:b settab,5?ia; 0 +getc+4,3:b main.c?C; 0 +settab+4:b settab,5?ia; ptab/o; 0 +$b +.ft R +breakpoints +count bkpt command +1 ~tabpos+04 +3 _getc+04 main.c?C;0 +1 _fopen+04 +1 ~settab+04 settab,5?ia;ptab?o;0 +~settab: jsr r5,csv +~settab+04: bpt +~settab+06: clr 0177770(r5) +~settab+012: cmp $0120,0177770(r5) +~settab+020: blt ~settab+076 +~settab+022: +0177766: 0177770 +0177744: @\` +T0177744: T +h0177744: h +i0177744: i +s0177744: s +.P2 +.sp 100 +.SH +Figure 7: ADB output for C program with breakpoints +.LP +.in +.5i +.nf +.ps 8 +.vs 9 +.ft B +adb ex3 \(mi +h+4:b hcnt/d; h.hi/; h.hr/ +g+4:b gcnt/d; g.gi/; g.gr/ +f+4:b fcnt/d; f.fi/; f.fr/ +:r +.ft R +ex3: running +_fcnt: 0 +0177732: 214 +symbol not found +.ft B +f+4:b fcnt/d; f.a/; f.b/; f.fi/ +g+4:b gcnt/d; g.p/; g.q/; g.gi/ +h+4:b hcnt/d; h.x/; h.y/; h.hi/ +:c +.ft R +ex3: running +_fcnt: 0 +0177746: 1 +0177750: 1 +0177732: 214 +_gcnt: 0 +0177726: 2 +0177730: 3 +0177712: 214 +_hcnt: 0 +0177706: 2 +0177710: 1 +0177672: 214 +_fcnt: 1 +0177666: 2 +0177670: 3 +0177652: 214 +_gcnt: 1 +0177646: 5 +0177650: 8 +0177632: 214 +.ft B +HIT DEL +f+4:b fcnt/d; f.a/"a = "d; f.b/"b = "d; f.fi/"fi = "d +g+4:b gcnt/d; g.p/"p = "d; g.q/"q = "d; g.gi/"gi = "d +h+4:b hcnt/d; h.x/"x = "d; h.y/"h = "d; h.hi/"hi = "d +:r +.ft R +ex3: running +_fcnt: 0 +0177746: a = 1 +0177750: b = 1 +0177732: fi = 214 +_gcnt: 0 +0177726: p = 2 +0177730: q = 3 +0177712: gi = 214 +_hcnt: 0 +0177706: x = 2 +0177710: y = 1 +0177672: hi = 214 +_fcnt: 1 +0177666: a = 2 +0177670: b = 3 +0177652: fi = 214 +.ft B +HIT DEL +$q +.in -.5i +.sp 100 +.SH +Figure 8: ADB address maps +.LP +.de l1 +.tc +.ta 1.20i +1.6i +2.5i +.. +.de l3 +.tc +.ta 1.6i +2.80i +.2i +1.55i +.. +.de l2 +.tc +.ti 1.0i +.ta +0.5i +3.0i +1.75i +.tc _ +.. +.de l5 +.tc +.ti 1.0i +.ta +0.75i +3.0i +1.5i +.tc _ +.. +.de l6 +.tc +.ti 1.0i +.ta +.8i +2.85i +0.4i +1.1i +.. +.de l8 +.tc +.ti 1.0i +.ta +0.5i +3.0i +1.75i +.tc _ +.. +.de la +.tc +.ta 1.20i +1.25i +1.7i +.. +.de lc +.tc +.ti 1.0i +.ta +.85i +1.6i +.35i +1.1i +.. +.de lb +.tc +.ti 1.0i +.ta +0.75i +1.75i +1.5i +.tc _ +.. +.ul +407 files +.sp +.l1 +a.out hdr text+data +.l2 +| | | +.l3 + 0 D +.sp +.l1 +core hdr text+data stack +.l5 +| | ......| | +.l6 + 0 D S E +.sp 2 +.ul +410 files (shared text) +.sp +.l1 +a.out hdr text data +.l2 +| | | | +.l3 + 0 T B D +.sp +.la +core hdr data stack +.lb +| | ......| | +.lc + B D S E +.sp 2 +.ul +411 files (separated I and D space) +.sp +.l1 +a.out hdr text data +.l2 +| | | | +.l3 + 0 T 0 D +.sp +.la +core hdr data stack +.lb +| | ......| | +.lc + 0 D S E +.sp 2 +The following +.ul +adb +variables are set. +.nf +.ta .75i 1.5i 3.5i 4.5i 5.5i +.sp + 407 410 411 +.sp + b base of data 0 B 0 + d length of data D D\(miB D + s length of stack S S S + t length of text 0 T T +.sp 100 +.SH +Figure 9: ADB output for maps +.LP +.nf +.in +.5i +.ft B +adb map407 core407 +$m +.ft R +text map \`map407\' +b1 = 0 e1 = 0256 f1 = 020 +b2 = 0 e2 = 0256 f2 = 020 +data map \`core407\' +b1 = 0 e1 = 0300 f1 = 02000 +b2 = 0175400 e2 = 0200000 f2 = 02300 +.ft B +$v +.ft R +variables +d = 0300 +m = 0407 +s = 02400 +.ft B +$q +.sp 2 +adb map410 core410 +$m +.ft R +text map \`map410\' +b1 = 0 e1 = 0200 f1 = 020 +b2 = 020000 e2 = 020116 f2 = 0220 +data map \`core410\' +b1 = 020000 e1 = 020200 f1 = 02000 +b2 = 0175400 e2 = 0200000 f2 = 02200 +.ft B +$v +.ft R +variables +b = 020000 +d = 0200 +m = 0410 +s = 02400 +t = 0200 +.ft B +$q +.sp 2 +adb map411 core411 +$m +.ft R +text map \`map411\' +b1 = 0 e1 = 0200 f1 = 020 +b2 = 0 e2 = 0116 f2 = 0220 +data map \`core411\' +b1 = 0 e1 = 0200 f1 = 02000 +b2 = 0175400 e2 = 0200000 f2 = 02200 +.ft B +$v +.ft R +variables +d = 0200 +m = 0411 +s = 02400 +t = 0200 +.ft B +$q +.in -.5i +.sp 100 +.SH +Figure 10: Simple C program for illustrating formatting and patching +.LP +.P1 +char str1[] "This is a character string"; +int one 1; +int number 456; +long lnum 1234; +float fpt 1.25; +char str2[] "This is the second character string"; +main() +{ + one = 2; +} +.P2 +.sp 100 +.SH +Figure 11: ADB output illustrating fancy formats +.LP +.nf +.ps 9 +.vs 11p +.ft B +adb map410 core410 +b +?m\fIname\fR assign dot to variable or register \fIname\fR +.sp 100 +.SH +Format Summary +.LP +.ta .7i +.nf +\fBa \fRthe value of dot +\fBb \fRone byte in octal +\fBc \fRone byte as a character +\fBd \fRone word in decimal +\fBf \fRtwo words in floating point +\fBi \fRPDP 11 instruction +\fBo \fRone word in octal +\fBn \fRprint a newline +\fBr \fRprint a blank space +\fBs \fRa null terminated character string +\fIn\fBt \fRmove to next \fIn\fR space tab +\fBu \fRone word as unsigned integer +\fBx \fRhexadecimal +\fBY \fRdate +\fB^ \fRbackup dot +\fB"..."\fR print string +.LP +.ta .7i +.SH +Expression Summary +.LP +.ta .7i +a) expression components +.LP +.ta .1.1i +.nf +\fBdecimal integer \fRe.g. 256 +\fBoctal integer \fRe.g. 0277 +\fBhexadecimal \fRe.g. #ff +\fBsymbols \fRe.g. flag _main main.argc +\fBvariables \fRe.g. dbx.n + +clean: + rm -f dbx.n + +spell: ${SRCS} + @for i in ${SRCS}; do \ + echo $$i; spell $$i | sort | comm -23 - spell.ok > $$i.spell; \ + done diff --git a/doc/ps1/11.dbx/dbx.ms b/doc/ps1/11.dbx/dbx.ms new file mode 100644 index 00000000..0c3d00d0 --- /dev/null +++ b/doc/ps1/11.dbx/dbx.ms @@ -0,0 +1,455 @@ +.\" @(#)dbx.ms 6.4 (Berkeley) 5/10/86 +.\" +.\" modified by mark seiden in cosmetic ways. +.\" examples VAXinated by Kevin Dunlap +.\" dtbl | ditroff -ms +.OH 'Debugging with dbx''PS1:11-%' +.EH 'PS1:11-%''Debugging with dbx' +.de BE +.DS +.ft CW +.ps -1 +.. +.de EE +.ft P +.ps +1 +.DE +.. +.de UL +\f(CW\s-1\\$1\fP\s0 +.. +.TL +Debugging with dbx +.AU +Bill Tuthill +.AI +Sun Microsystems, Inc. +2550 Garcia Avenue +.AU +Kevin J. Dunlap +.AI +Computer Systems Research Group +University of California +Berkeley, CA 94720 +.SH +Introduction +.PP +This short paper discusses +.I dbx , +a symbolic debugger that is vastly superior to +.I adb . +It may be as good as the debuggers you remember from those +non- +.UX +systems you worked on before. +The advantage of symbolic debuggers is that they allow you +to work with the same names (symbols) as in your source code. +.PP +Like +.I adb , +.I dbx +is interactive and line-oriented, but +.I dbx +is a source-level rather than an assembly-level debugger. +It allows you to determine where a program crashed, +to view the values of variables and expressions, +to set breakpoints in the code, and to run and trace a program. +Source code may be in C, Fortran, or Pascal. +.PP +Mark Linton wrote +.I dbx +as his master's thesis at UC Berkeley. +Along with Eric Schmidt's Berknet, +.I dbx +is among the most successful master's theses done on UNIX. Since +.I dbx +required changes to the symbol tables +generated by the various compilers, +you need to compile programs for debugging with the +.I \-g +flag. For example, +C programs should be compiled as follows: +.DS +% cc \-g \fIprogram\fP.c \-o \fIprogram\fP +.DE +Programs compiled with the +.I \-g +option have good symbol tables, +while programs compiled without +.I \-g +have old-style symbol tables intended for +.I adb . +Stripped programs have no symbol tables at all. +Invoke the debugger as follows, where +.I program +is the pathname of the executable file that dumped core: +.DS +% dbx \fIprogram\fP +.DE +The core image should be in the working directory; +if it isn't, specify its pathname in the argument after the program name. +Among the great advances of +.I dbx +is that it has a help facility; type the +.I help +request to see a list of possible requests. +You can obtain help on any +.I dbx +request by giving its name as an argument to +.I help . +.bp +.SH +Examining Core Dumps +.PP +Much of the time, programmers use +.I dbx +to find out why a program dumped core. +As an example, consider the following program +.I dumpcore.c , +which dereferences a NULL pointer. +This is a legal operation on VAX/UNIX, +but not on VAX/VMS or on MC68000-based UNIX systems, on one of +which this example was run: +.BE +#include +.sp.5 +#define LIMIT 5 +.sp.5 +main() /* print messages and die */ +{ + int i; +.sp.5 + for (i = 1; i <= 10 ; i++) { + printf("Goodbye world! (%d)\en", i); + dumpcore(i); + } + exit(0); +} +.sp.5 +int *ip; +.sp.5 +dumpcore(lim) /* dereference NULL pointer */ +int lim; +{ + if (lim >= LIMIT) + *ip = lim; +} +.EE +The program core dumps because of a +segmentation violation or memory fault \(em +on most machines it is illegal to assign to address zero. +Once the program has produced a core dump, +here's how you can find out why the program died: +.DS +%\c +.UL " dbx dumpcore" +dbx version 3.17 of 4/24/86 15:04 (monet.Berkeley.EDU). +Type 'help' for help. +reading symbolic information ... +[using memory image in core] +(dbx)\c +.UL " where" +dumpcore.dumpcore(lim = 5), line 22 in "dumpcore.c" +main(0x1, 0x7fffe904, 0x7fffe90c), line 11 in "dumpcore.c" +.DE +The +.I where +request yields a stack trace. +As you can see, the +.I dumpcore() +routine was called from line 11 of the program, with the argument +.I lim +equal to 5. +You can look at the +.I dumpcore() +procedure by invoking the +.I list +request as follows: +.DS +(dbx)\c +.UL " list dumpcore" + 18 dumpcore(lim) /* dereference NULL pointer */ + 19 int lim; + 20 { + 21 if (lim >= LIMIT) + 22 *ip = lim; + 23 } +.DE +We immediately suspect that the program's failure had something to do with +.I *ip , +so we use the +.I print +request to retrieve the value of the pointer and what it points to: +.DS +(dbx)\c +.UL " print *ip" +reference through nil pointer +(dbx)\c +.UL " print ip" +(nil) +.DE +This tells us the program has dereferenced a null pointer. +It is possible to run the program again from inside the debugger. +The first line tells you name of the running program, +and successive lines give output from the program: +.DS +(dbx)\c +.UL " run" +Goodbye world! (1) +Goodbye world! (2) +Goodbye world! (3) +Goodbye world! (4) +Goodbye world! (5) +.sp.5 +Bus error in dumpcore.dumpcore at line 22 + 22 *ip = lim; +(dbx)\c +.UL " quit" +.DE +In this example the program dies with a Bus error at line 22. +This method of running the program +does not produce a core dump, but the +.I where +request will still behave properly, +because the debugger is in the same state +as if it had just read the core file. +.SH +Setting Breakpoints +.PP +With +.I dbx +you can set breakpoints before each line of a program, +not just at function and procedure boundaries, as with +.I adb . +The +.I stop +request sets a breakpoint. +After setting a breakpoint, use the +.I run +request to execute the program. The +.I cont +request continues execution from the current stopping point +until the program finishes or another breakpoint is encountered. The +.I step +request executes one source statement, +following any function calls. The +.I next +request executes one source statement, +but does not stop inside any function calls. The +.I status +request lists active breakpoints, while the +.I delete +request removes them if required. +.PP +The +.I stop +request can take a conditional expression +to avoid needless single-stepping. +We will use a conditional in our example to make things simpler. +Of course you can use +.I print +and +.I list +requests at any time during statement stepping +if you want to print the value of variables +or list lines of source code. +This sample session shows a mixture of requests +as we verify that the program fails when it tries to assign to +.I *ip : +.DS +(dbx)\c +.UL " stop at 10 if (i == 5)" +[1] if i = 5 { stop } at 10 +(dbx)\c +.UL " run" +Goodbye world! (1) +Goodbye world! (2) +Goodbye world! (3) +Goodbye world! (4) +[1] stopped in main at line 10 + 10 printf("Goodbye world! (%d)\en", i); +(dbx)\c +.UL " next" +Goodbye world! (5) +stopped in main at line 11 + 11 dumpcore(i); +(dbx)\c +.UL " step" +stopped in dumpcore at line 21 + 21 if (lim >= LIMIT) +(dbx)\c +.UL " step" +stopped in dumpcore at line 22 + 22 *ip = lim; +(dbx)\c +.UL " step" +Bus error in dumpcore.dumpcore at line 22 + 22 *ip = lim; +.DE +Running the program with breakpoints assures us +that our intuition was correct. +We shouldn't be assigning anything to a null pointer \(em +.I ip +should have been initialized to point at an object of the proper type. +To exit from the debugger, use the +.I quit +request. +.PP +It is possible to set variables from inside +.I dbx . +The previous breakpoint session, for example, +could have gone like this: +.DS +%\c +.UL " dbx dumpcore" +dbx version 3.17 of 4/24/86 15:04 (monet.Berkeley.EDU). +Type 'help' for help. +reading symbolic information ... +[using memory image in core] +(dbx)\c +.UL " stop at 10" +[1] stop at 10 +(dbx)\c +.UL " run" +Running: dumpcore +stopped in main at line 10 + 10 printf("Goodbye world! (%d)\en", i); +(dbx)\c +.UL " assign i = 5" +(dbx)\c +.UL " next" +Goodbye world! (5) +stopped in main at line 11 + 11 dumpcore(i); +(dbx)\c +.UL " next" +Bus error in dumpcore.dumpcore at line 22 + 22 *ip = lim; +.DE +It is often useful to assign new values to variables +to draw conclusions about alternative conditions. +We can't fix the bug in this program, however, +because there is no declared variable to which +.I ip +should point. +.SH +Conclusion +.PP +Expressions in +.I dbx +are similar to those in C, +except that there is a distinction between +.I / +(floating-point division) and +.I div +(integer division), as in Pascal. +The table on the following page shows +.I dbx +requests organized by function: +.PP +Like +.I adb , +.I dbx +can disassemble object code. +It can also examine object files +and print output in various formats; but +.I dbx +requires the proper symbol tables, so +.I adb +is more useful to examine arbitrary binary files. +The most important thing +.I adb +can do that +.I dbx +cannot is to patch binary files \(em +.I dbx +has no write option. +Despite these shortcomings, +.I dbx +is much easier to use than +.I adb , +so it contributes much more to individual programmer productivity. +.SH +Acknowledgements +.PP +Material presented in this document was first presented in +``C Advisor'', \fIUnix Review 4\fP, 1, pp 78\-85. +The Regents of the University California expresses their +gratitude to Unix Review +for allowing them to reprint this document. +.PP +This document is a good starting point for a more thorough tutorial. +Those with the ambition to expand on this document are encouraged +to contact the Computer Systems Research Group at ``4bsd-ideas@Berkeley.Edu.'' +.KF +.TS +center box; +cf s. +.sp.2 +\s+2Groups of \&\fIdbx\fP Requests\s-2 +.sp.2 +_ +.T& +l lfI +lp-1fCW l. + execution and tracing +_ +run execute object file +cont continue execution from where it stopped +trace display tracing information at specified place +stop stop execution at specified place +status display active \&\fItrace\fP and \&\fIstop\fP requests +delete delete specific \&\fItrace\fP or \&\fIstop\fP requests +catch start trapping specified signals +ignore stop trapping specified signals +step execute the next source line, stepping into functions +next execute the next source line, even if it's a function +.T& +l lfI +lp-1fCW l. +_ + displaying data +_ +print print the value of an expression +whatis print the declaration of a given identifier or type +which print outer block associated with identifier +whereis print all symbols matching identifier +assign set the value of a variable +.T& +l lfI +lp-1fCW l. +_ + function and procedure handling +_ +where display active procedures and functions on stack +down move down the stack towards stopping point +up move up the stack towards \&\fImain\fP +call call the named function or procedure +dump display names and values of all local variables +.T& +l lfI +lp-1fCW l. +_ + accessing source files and directories +_ +edit invoke an editor on current source file +file change current source file +func change the current function or procedure +list display lines of source code +use set directory list to search for source files +/.../ search down in file to match regular expression +?...? search up in file to match regular expression +.T& +l lfI +lp-1fCW l. +_ + miscellaneous commands +_ +sh pass command line to the shell +alias change \&\fIdbx\fP command name +help explain commands +source read commands from external file +quit exit the debugger +.TE +.KE +.bp diff --git a/doc/ps1/11.dbx/spell.ok b/doc/ps1/11.dbx/spell.ok new file mode 100644 index 00000000..c24d5d46 --- /dev/null +++ b/doc/ps1/11.dbx/spell.ok @@ -0,0 +1,24 @@ +Berkeley.Edu +Berknet +CW +Linton +MC68000 +PS1:11 +Tuthill +UC +VAX +VMS +cont +dbx +dbx''PS1:11 +dbxenv +div +dumpcore +dumpcore.c +dumpcore.dumpcore +func +ip +monet.Berkeley.EDU +pathname +pp +stdio.h diff --git a/doc/ps1/12.make/Makefile b/doc/ps1/12.make/Makefile new file mode 100644 index 00000000..6495837f --- /dev/null +++ b/doc/ps1/12.make/Makefile @@ -0,0 +1,25 @@ +# +# Copyright (c) 1986 Regents of the University of California. +# All rights reserved. The Berkeley software License Agreement +# specifies the terms and conditions for redistribution. +# +# @(#)Makefile 6.1 (Berkeley) 5/4/86 +# +SRCS= make.ms +MACROS= -msU +PRINTER=Pdp +TROFF= ditroff -${PRINTER} + +paper: paper.${PRINTER} + lpr -${PRINTER} -n paper.${PRINTER} + +paper.${PRINTER}: ${SRCS} + ${TROFF} ${MACROS} -t ${SRCS} > paper.${PRINTER} + +clean: + rm -f paper.[PT]* *.spell errs Errs make.out + +spell: ${SRCS} + @for i in ${SRCS}; do \ + echo $$i; spell $$i | sort | comm -23 - spell.ok > $$i.spell; \ + done diff --git a/doc/ps1/12.make/make.ms b/doc/ps1/12.make/make.ms new file mode 100644 index 00000000..f9c01c14 --- /dev/null +++ b/doc/ps1/12.make/make.ms @@ -0,0 +1,817 @@ +.\" @(#)make 6.1 (Berkeley) 5/4/86 +.\" +.EH 'PS1:12-%''Make \(em A Program for Maintaining Computer Programs' +.OH 'Make \(em A Program for Maintaining Computer Programs''PS1:12-%' +.....TR 57 +.\".RP +.de IT +.if n .ul +\&\\$3\f2\\$1\fR\^\&\\$2 +.. +.TL +Make \(em A Program for Maintaining Computer Programs +.AU +S. I. Feldman +.AI +.MH +.AB +.PP +In a programming project, it is easy to lose track of which files need +to be reprocessed or recompiled after a change is made in some part of the source. +.I Make +provides a simple mechanism for maintaining up-to-date versions of programs that result +from many operations on a number of files. +It is possible to tell +.I Make +the sequence of commands that create certain files, +and the list of files that require other files to be current before the operations can be done. +Whenever a change is made in any part of the program, +the +.I Make +command will create the proper files simply, correctly, +and with a minimum amount of effort. +.PP +The basic operation of +.I Make +is to find the name of a needed target in the description, ensure that all of the files on which it depends exist and +are up to date, and then create the target if it has not been modified since its generators were. +The description file really defines the graph of dependencies; +.I Make +does a depth-first search of this graph +to determine what work is really necessary. +.PP +.I Make +also provides a simple macro substitution facility +and the ability to encapsulate commands in a single file +for convenient administration. +.sp 2 +Revised April, 1986 +.AE +.SH +Introduction +.PP +It is common practice to divide large programs into smaller, more manageable pieces. +The pieces may require quite different treatments: +some may need to be run through a macro processor, some may need to be processed by +a sophisticated program generator (e.g., Yacc[1] or Lex[2]). +The outputs of these generators may then have to be compiled with special options and with +certain definitions and declarations. +The code resulting from these transformations may then need to be loaded together with +certain libraries under the control of special options. +Related maintenance activities involve running complicated test scripts +and installing validated modules. +Unfortunately, it is very easy for a programmer to forget which files depend on which others, +which files have been modified recently, and the exact sequence of operations +needed to make or exercise a new version of the program. +After a long editing session, one may easily lose track of which files have been changed +and which object modules are still valid, +since a change to a declaration can obsolete a dozen other files. +Forgetting to compile a routine that has been changed or that uses changed declarations will result in +a program that will not work, and a bug that can be very hard to track down. +On the other hand, recompiling everything in sight just to be safe is very wasteful. +.PP +The program described in this report mechanizes many of the activities of program development +and maintenance. +If the information on inter-file dependences and command sequences is stored in a file, the simple command +.DS +make +.DE +is frequently sufficient to update the interesting files, +regardless of the number that have been edited since the last ``make''. +In most cases, the description file is easy to write and changes infrequently. +It is usually easier to type the +.IT make +command than to issue even one of the needed operations, so the typical cycle of program development operations becomes +.DS +think \(em edit \(em \fImake\fR \(em test . . . +.DE +.PP +.IT Make +is most useful for medium-sized programming projects; +it does not solve the problems of maintaining multiple source versions +or of describing huge programs. +.IT Make +was designed for use on Unix, but a version runs on GCOS. +.SH +Basic Features +.PP +The basic operation of +.IT make +is to update a target file by ensuring +that all of the files on which it depends exist and are up to date, +then creating the target if it has not been modified since its dependents were. +.IT Make +does a depth-first search of the graph of dependences. +The operation of the command depends on the ability to find the date and time +that a file was last modified. +.PP +To illustrate, let us consider a simple example: +A program named +.IT prog +is made by compiling and loading three C-language files +.IT x.c , +.IT y.c , +and +.IT z.c +with the +.IT lS +library. +By convention, the output of the C compilations will be found in files named +.IT x.o , +.IT y.o , +and +.IT z.o . +Assume that the files +.IT x.c +and +.IT y.c +share some declarations in a file named +.IT defs , +but that +.IT z.c +does not. +That is, +.IT x.c +and +.IT y.c +have the line +.DS +#include "defs" +.DE +The following text describes the relationships and operations: +.DS +prog : x.o y.o z.o + cc x.o y.o z.o \-lS \-o prog +.sp .5 +x.o y.o : defs +.DE +If this information were stored in a file named +.IT makefile , +the command +.DS +make +.DE +would perform the operations needed to recreate +.IT prog +after any changes had been made to any of the four source files +.IT x.c , +.IT y.c , +.IT z.c , +or +.IT defs . +.PP +.IT Make +operates using three sources of information: +a user-supplied description file (as above), +file names and ``last-modified'' times from the file system, +and built-in rules to bridge some of the gaps. +In our example, the first line says that +.IT prog +depends on three ``\fI.o\fR'' files. +Once these object files are current, the second line describes how to load them to create +.IT prog . +The third line says that +.IT x.o +and +.IT y.o +depend on the file +.IT defs . +From the file system, +.IT make +discovers that there are three ``\fI.c\fR'' files corresponding to the needed ``\fI.o\fR'' files, +and uses built-in information on how to generate an object from a source file +(\fIi.e.,\fR issue a ``cc\ \-c'' command). +.PP +The following long-winded description file is equivalent to the one above, but +takes no advantage of +.IT make 's +innate knowledge: +.DS +prog : x.o y.o z.o + cc x.o y.o z.o \-lS \-o prog +.sp .3 +x.o : x.c defs + cc \-c x.c +y.o : y.c defs + cc \-c y.c +z.o : z.c + cc \-c z.c +.DE +.PP +If none of the source or object files had changed since the last time +.IT prog +was made, all of the files would be current, and +the command +.DS +make +.DE +would just announce this fact and stop. +If, however, the +.IT defs +file had been edited, +.IT x.c +and +.IT y.c +(but not +.IT z.c ) +would be recompiled, and then +.IT prog +would be created from the new ``\fI.o\fR'' files. +If only the file +.IT y.c +had changed, only it would be recompiled, but it would still be necessary to reload +.IT prog . +.PP +If no target name is given on the +.IT make +command line, the first target mentioned in the description is created; +otherwise the specified targets are made. +The command +.DS +make x.o +.DE +would recompile +.IT x.o +if +.IT x.c +or +.IT defs +had changed. +.PP +If the file exists after the commands are executed, +its time of last modification is used in further decisions; +otherwise the current time is used. +It is often quite useful to include rules with mnemonic names and commands that do not +actually produce a file with that name. +These entries can take advantage of +.IT make 's +ability to generate files and substitute macros. +Thus, an entry +``save'' +might be included to copy a certain set of files, or an entry +``cleanup'' +might be used to throw away unneeded intermediate files. +In other cases one may maintain a zero-length file purely to keep track +of the time at which certain actions were performed. +This technique is useful for maintaining remote archives and listings. +.PP +.IT Make +has a simple macro mechanism for substituting in dependency lines and command strings. +Macros are defined by command arguments or description file lines with embedded equal signs. +A macro is invoked by preceding the name by a dollar sign; +macro names longer than one character must be parenthesized. +The name of the macro is either the single character after the dollar sign or a name inside parentheses. +The following are valid macro invocations: +.DS +$(CFLAGS) +$2 +$(xy) +$Z +$(Z) +.DE +The last two invocations are identical. +$$ is a dollar sign. +All of these macros are assigned values during input, as shown below. +Four special macros change values during the execution of the command: +$\(**, $@, $?, and $<. +They will be discussed later. +The following fragment shows the use: +.DS +OBJECTS = x.o y.o z.o +LIBES = \-lS +prog: $(OBJECTS) + cc $(OBJECTS) $(LIBES) \-o prog + . . . +.DE +The command +.DS +make +.DE +loads the three object files with the +.IT lS +library. The command +.DS +make "LIBES= \-ll \-lS" +.DE +loads them with both the Lex (``\-ll'') and the Standard (``\-lS'') libraries, +since macro definitions on the command line override definitions in the description. +(It is necessary to quote arguments with embedded blanks in +.UX +commands.) +.PP +The following sections detail the form of description files and the command line, +and discuss options and built-in rules in more detail. +.SH +Description Files and Substitutions +.PP +A description file contains three types of information: +macro definitions, +dependency information, +and executable commands. +There is also a comment convention: +all characters after a sharp (#) are ignored, as is the sharp itself. +Blank lines and lines beginning with a sharp are totally ignored. +If a non-comment line is too long, it can be continued using a backslash. +If the last character of a line is a backslash, the backslash, newline, +and following blanks and tabs are replaced by a single blank. +.PP +A macro definition is a line containing an equal sign not preceded by a colon or a tab. +The name (string of letters and digits) to the left of the equal sign +(trailing blanks and tabs are stripped) is assigned the string of characters following the equal sign +(leading blanks and tabs are stripped.) +The following are valid macro definitions: +.DS +2 = xyz +abc = \-ll \-ly \-lS +LIBES = +.DE +The last definition assigns LIBES the null string. +A macro that is never explicitly defined has the null string as value. +Macro definitions may also appear on the +.IT make +command line (see below). +.PP +Other lines give information about target files. +The general form of an entry is: +.DS +target1 [target2 . . .] :[:] [dependent1 . . .] [; commands] [# . . .] +[\fI(tab)\fR commands] [# . . .] + . . . +.DE +Items inside brackets may be omitted. +Targets and dependents are strings of letters, digits, periods, and slashes. +(Shell metacharacters ``\(**'' and ``?'' are expanded.) +A command is any string of characters not including a sharp (except in quotes) +or newline. +Commands may appear either after a semicolon on a dependency line +or on lines beginning with a tab immediately following a dependency line. +.PP +A dependency line may have either a single or a double colon. +A target name may appear on more than one dependency line, but all of those lines must be of the +same (single or double colon) type. +.IP 1. +For the usual single-colon case, +at most one of these dependency lines may have a command sequence associated with it. +If the target is out of date with any of the dependents on any of the lines, +and a command sequence is specified (even a null one following a semicolon or tab), +it is executed; otherwise a default creation rule may be invoked. +.IP 2. +In the double-colon case, a command sequence may be associated with each dependency line; +if the target is out of date with any of the files on a particular line, the associated +commands are executed. +A built-in rule may also be executed. +This detailed form is of particular value in updating archive-type files. +.PP +If a target must be created, the sequence of commands is executed. +Normally, each command line is printed and then +passed to a separate invocation of the Shell after substituting for macros. +(The printing is suppressed in silent mode or if the command line begins with an @ sign). +.IT Make +normally stops if any command signals an error by returning a non-zero error code. +(Errors are ignored if the ``\-i'' flags has been specified on the +.IT make +command line, +if the fake target name ``.IGNORE'' appears in the description file, +or if the command string in the description file begins with a hyphen. +Some +.UX +commands return meaningless status). +Because each command line is passed to a separate invocation of the Shell, +care must be taken with certain commands (e.g., \fIcd\fR and Shell control commands) that have meaning only +within a single Shell process; +the results are forgotten before the next line is executed. +.PP +Before issuing any command, certain macros are set. +$@ is set to the name of the file to be ``made''. +$? is set to the string of names that were found to be younger than the target. +If the command was generated by an implicit rule (see below), +$< is the name of the related file that caused the action, and +$\(** is the prefix shared by the current and the dependent file names. +.PP +If a file must be made but there are no explicit commands or relevant +built-in rules, +the commands associated with the name ``.DEFAULT'' are used. +If there is no such name, +.IT make +prints a message and stops. +.SH +Command Usage +.PP +The +.IT make +command takes four kinds of arguments: +macro definitions, flags, description file names, and target file names. +.DS +make [ flags ] [ macro definitions ] [ targets ] +.DE +The following summary of the operation of the command explains how these arguments are interpreted. +.PP +First, all macro definition arguments (arguments with embedded equal signs) are analyzed +and the assignments made. +Command-line macros override corresponding definitions found in the description files. +.PP +Next, the flag arguments are examined. +The permissible flags are +.IP \-i +Ignore error codes returned by invoked commands. +This mode is entered if the fake target name ``.IGNORE'' appears in the description file. +.IP \-s +Silent mode. Do not print command lines before executing. +This mode is also entered if the fake target name ``.SILENT'' appears in the description file. +.IP \-r +Do not use the built-in rules. +.IP \-n +No execute mode. Print commands, but do not execute them. +Even lines beginning with an ``@'' sign are printed. +.IP \-t +Touch the target files (causing them to be up to date) rather than issue the usual commands. +.IP \-q +Question. +The +.IT make +command returns a zero or non-zero status code depending on whether the target file +is or is not up to date. +.IP \-p +Print out the complete set of macro definitions and target descriptions +.IP \-d +Debug mode. Print out detailed information on files and times examined. +.IP \-f +Description file name. The next argument is assumed to be the name of a description file. +A file name of ``\-'' denotes the standard input. +If there are no ``\-f\|'' arguments, the file named +.IT makefile +or +.IT Makefile +in the current directory is read. +The contents of the description files override the built-in rules if they are present). +.PP +Finally, the remaining arguments are assumed to be the names of targets to be made; +they are done in left to right order. +If there are no such arguments, the first name in the description files that does not +begin with a period is ``made''. +.SH +Implicit Rules +.PP +The +.ul +make +program uses a table of interesting suffixes and a set +of transformation rules to supply default dependency +information and implied commands. +(The Appendix describes these tables and means of overriding +them.) +The default suffix list is: +.KS +.sp +.nf +.ta 0.5i 1.5i + \fI.o\fR Object file + \fI.c\fR C source file + \fI.e\fR Efl source file + \fI.r\fR Ratfor source file + \fI.f\fR Fortran source file + \fI.s\fR Assembler source file + \fI.y\fR Yacc-C source grammar + \fI.yr\fR Yacc-Ratfor source grammar + \fI.ye\fR Yacc-Efl source grammar + \fI.l\fR Lex source grammar +.fi +.sp +.KE +The following diagram summarizes the default transformation paths. +If there are two paths connecting a pair of suffixes, the longer +one is used only if the intermediate file exists or is +named in the description. +.KS +.sp +.ft I +.ta 2i + .o +.sp 2 +.ta 0.75i 1.25i 1.6i 2.1i + .c .r .e .f .s .y .yr .ye .l .d +.sp 2 +.ta 0.6i 1.25i 1.6i + .y .l .yr .ye +.ft R +.sp +.KE +.PP +If the file +.ul +x.o +were needed and there were an +.ul +x.c +in the description or directory, it would be compiled. +If there were also an +.IT x.l , +that grammar would be run through Lex before compiling the result. +However, if there were no +.ul +x.c +but there were an +.IT x.l , +.IT make +would discard the intermediate C-language file and use the +direct link in the graph above. +.PP +It is possible to change the names of some of the compilers used in the +default, or the flag arguments with which they are invoked by knowing +the macro names used. +The compiler names are the macros AS, CC, RC, EC, YACC, YACCR, YACCE, and LEX. +The command +.DS +make CC=newcc +.DE +will cause the ``newcc'' command to be used instead of the +usual C compiler. +The macros CFLAGS, RFLAGS, EFLAGS, YFLAGS, and LFLAGS may be set to +cause these commands to be issued with optional flags. +Thus, +.DS +make "CFLAGS=\|\(miO" +.DE +causes the optimizing C compiler to be used. +.PP +Another special macro is `VPATH'. +The ``VPATH'' macro should be set to a list of directories separated by colons. +When +.I make +searches for a file as a result of a dependency relation, it will +first search the current directory and then each of the directories on the +``VPATH'' list. +If the file is found, the actual path to the file will be used, rather than +just the filename. +If ``VPATH'' is not defined, then only the current directory is searched. +Note that ``VPATH'' is intended to act like the System V ``VPATH'' support, +but there is no guarantee that it functions identically. +.PP +One use for ``VPATH'' is when one has several programs that compile from the +same source. +The source can be kept in one directory and each set of +object files (along with a separate +.IR makefile ) +would be in a separate subdirectory. +The ``VPATH'' macro would point to the source directory in this case. +.SH +Example +.PP +As an example of the use of +.ul +make, +we will present the description file used to maintain +the +.ul +make +command itself. +The code for +.ul +make +is spread over a number of C source files and a Yacc grammar. +The description file contains: +.DS +# Description file for the Make command +.sp .3 +P = und \-3 | opr \-r2 # send to GCOS to be printed +FILES = Makefile version.c defs main.c doname.c misc.c files.c dosys.c\ + gram.y lex.c gcos.c +OBJECTS = version.o main.o doname.o misc.o files.o dosys.o gram.o +LIBES= \-lS +LINT = lint \-p +CFLAGS = \-O +.sp .3 +make: $(OBJECTS) + cc $(CFLAGS) $(OBJECTS) $(LIBES) \-o make + size make +.sp .3 +$(OBJECTS): defs +gram.o: lex.c +.sp .3 +cleanup: + -rm *.o gram.c + -du +.sp .3 +install: + @size make /usr/bin/make + cp make /usr/bin/make ; rm make +.sp .3 +print: $(FILES) # print recently changed files + pr $? | $P + touch print +.sp .3 +test: + make \-dp | grep \-v TIME >1zap + /usr/bin/make \-dp | grep \-v TIME >2zap + diff 1zap 2zap + rm 1zap 2zap +.sp .3 +lint : dosys.c doname.c files.c main.c misc.c version.c gram.c + $(LINT) dosys.c doname.c files.c main.c misc.c version.c gram.c + rm gram.c +.sp .3 +arch: + ar uv /sys/source/s2/make.a $(FILES) +.DE +.IT Make +usually prints out each command before issuing it. +The following output results from typing the simple command +.DS +make +.DE +in a directory containing only the source and description file: +.DS + cc \-c version.c + cc \-c main.c + cc \-c doname.c + cc \-c misc.c + cc \-c files.c + cc \-c dosys.c + yacc gram.y + mv y.tab.c gram.c + cc \-c gram.c + cc version.o main.o doname.o misc.o files.o dosys.o gram.o \-lS \-o make + 13188+3348+3044 = 19580b = 046174b +.DE +Although none of the source files or grammars were mentioned +by name in the description file, +.IT make +found them using its suffix rules and issued the needed commands. +The string of digits results from the ``size make'' +command; the printing of the command line itself was +suppressed by an @ sign. +The @ sign on the +.IT size +command in the description file suppressed the printing of the command, +so only the sizes are written. +.PP +The last few entries in the description file are useful maintenance sequences. +The ``print'' entry prints only the files that have been changed since the last +``make print'' command. +A zero-length file +.IT print +is maintained to keep track of the time of the printing; +the $? macro in the command line then picks up only the names of the files +changed since +.IT print +was touched. +The printed output can be sent to a different printer or to a file by changing the definition of the +.IT P +macro: +.DS +make print "P = opr \-sp" + \fIor\fR +make print "P= cat >zap" +.DE +.SH +Suggestions and Warnings +.PP +The most common difficulties arise from +.IT make 's +specific meaning of dependency. +If file +.IT x.c +has a ``#include "defs"'' +line, then the object file +.IT x.o +depends on +.IT defs ; +the source file +.IT x.c +does not. +(If +.IT defs +is changed, it is not necessary to do anything +to the file +.IT x.c , +while it is necessary to recreate +.IT x.o .) +.PP +To discover what +.IT make +would do, the ``\-n'' option is very useful. +The command +.DS +make \-n +.DE +orders +.IT make +to print out the commands it would issue without actually taking the time to execute them. +If a change to a file is absolutely certain to be benign +(e.g., adding a new definition to an include file), +the ``\-t'' (touch) option +can save a lot of time: +instead of issuing a large number of superfluous recompilations, +.IT make +updates the modification times on the affected file. +Thus, the command +.DS +make \-ts +.DE +(``touch silently'') causes the relevant files to appear up to date. +Obvious care is necessary, since this mode of operation subverts +the intention of +.IT make +and destroys all memory of the previous relationships. +.PP +The debugging flag (``\-d'') causes +.IT make +to print out a very detailed description of what it is doing, including the +file times. The output is verbose, and recommended only as a last resort. +.SH +Acknowledgments +.PP +I would like to thank S. C. Johnson for suggesting this approach +to program maintenance control. +I would like to thank S. C. Johnson and H. Gajewska for being +the prime guinea pigs during development of +.IT make . +.SH +References +.IP 1. +S. C. Johnson, +``Yacc \(em Yet Another Compiler-Compiler'', +Bell Laboratories +Computing Science Technical Report #32, +July 1978. +.IP 2. +M. E. Lesk, +``Lex \(em A Lexical Analyzer Generator'', +Computing Science Technical Report #39, +October 1975. +.bp +.SH +Appendix. Suffixes and Transformation Rules +.PP +The +.ul +make +program itself does not know what file name suffixes are interesting +or how to transform a file with one suffix into a file with another +suffix. +This information is stored in an internal table that has the form of a description file. +If the ``\-r'' flag is used, this table is not used. +.PP +The list of suffixes is actually the dependency list for the name +``.SUFFIXES''; +.ul +make +looks for a file with any of the suffixes on the list. +If such a file exists, and if there is a transformation +rule for that combination, +.ul +make +acts as described earlier. +The transformation rule names are the concatenation of the +two suffixes. +The name of the rule to transform a ``\fI.r\fR'' file to a ``\fI.o\fR'' file +is thus ``\fI.r.o\fR''. +If the rule is present and no explicit command sequence +has been given in the user's description files, the command +sequence for the rule ``.r.o'' is used. +If a command is generated by using one of these suffixing rules, +the macro $\(** is given the value of the stem +(everything but the suffix) of the name of the file to be made, +and the macro $< is the name of the dependent that caused the action. +.PP +The order of the suffix list is significant, since it is scanned from +left to right, and the first name that is formed that has both a file +and a rule associated with it is used. +If new names are to be appended, the user can just add an entry for +``.SUFFIXES'' in his own description file; the dependents will be added to the usual list. +A ``.SUFFIXES'' line without any dependents deletes the current list. +(It is necessary to clear the current list if the order of names is to be changed). +.PP +The following is an excerpt from the default rules file: +.DS +.ta .5i 1i + .SUFFIXES : .o .c .e .r .f .y .yr .ye .l .s + YACC=yacc + YACCR=yacc \-r + YACCE=yacc \-e + YFLAGS= + LEX=lex + LFLAGS= + CC=cc + AS=as \- + CFLAGS= + RC=ec + RFLAGS= + EC=ec + EFLAGS= + FFLAGS= + .c.o : + $(CC) $(CFLAGS) \-c $< + .e.o .r.o .f.o : + $(EC) $(RFLAGS) $(EFLAGS) $(FFLAGS) \-c $< + .s.o : + $(AS) \-o $@ $< + .y.o : + $(YACC) $(YFLAGS) $< + $(CC) $(CFLAGS) \-c y.tab.c + rm y.tab.c + mv y.tab.o $@ + .y.c : + $(YACC) $(YFLAGS) $< + mv y.tab.c $@ +.DE diff --git a/doc/ps1/13.rcs/Makefile b/doc/ps1/13.rcs/Makefile new file mode 100644 index 00000000..ab35c343 --- /dev/null +++ b/doc/ps1/13.rcs/Makefile @@ -0,0 +1,30 @@ +# +# Copyright (c) 1986 Regents of the University of California. +# All rights reserved. The Berkeley software License Agreement +# specifies the terms and conditions for redistribution. +# +# @(#)Makefile 6.1 (Berkeley) 5/7/86 +# +SRCS= rcs.ms +MSRC= rcs.man +MACROS= -msU +PRINTER=Pdp +TROFF= ditroff -${PRINTER} + +paper: paper.${PRINTER} manpg.${PRINTER} + lpr -${PRINTER} -n paper.${PRINTER} + lpr -${PRINTER} -n manpg.${PRINTER} + +paper.${PRINTER}: ${SRCS} + ${TROFF} ${MACROS} -t ${SRCS} > paper.${PRINTER} + +manpg.${PRINTER}: ${MSRC} + ${TROFF} -man -t ${MSRC} > manpg.${PRINTER} + +clean: + rm -f manpg.[PT]* paper.[PT]* *.spell errs Errs make.out + +spell: ${SRCS} + @for i in ${SRCS}; do \ + echo $$i; spell $$i | sort | comm -23 - spell.ok > $$i.spell; \ + done diff --git a/doc/ps1/13.rcs/man/Makefile b/doc/ps1/13.rcs/man/Makefile new file mode 100644 index 00000000..0ecf3c21 --- /dev/null +++ b/doc/ps1/13.rcs/man/Makefile @@ -0,0 +1,34 @@ +DEST = $(DESTDIR)/usr/man/mann + +MAKEFILE = Makefile + +PRINT = vtroff + +SRCS = ci.1 \ + co.1 \ + ident.1 \ + merge.1 \ + rcs.1 \ + rcsdiff.1 \ + rcsintro.1 \ + rcsmerge.1 \ + rlog.1 \ + sccstorcs.1 + +SUFFIX = .1:s + +all:; + +clean:; + +depend:; @mkmf -f $(MAKEFILE) + +install:; @echo Installing $(SRCS) in $(DEST) + @for i in $(SRCS); do cp $$i $(DEST)/`basename $$i .1`.n; done + cp rcsfile.5 $(DEST)/rcsfile.n + +print: $(SRCS) + @$(PRINT) -man $? + @touch print + +update:; diff --git a/doc/ps1/13.rcs/man/ci.1 b/doc/ps1/13.rcs/man/ci.1 new file mode 100644 index 00000000..75e38228 --- /dev/null +++ b/doc/ps1/13.rcs/man/ci.1 @@ -0,0 +1,197 @@ +.TH CI 1 6/29/83 "Purdue University" +.SH NAME +ci \- check in RCS revisions +.SH SYNOPSIS +.B ci +[ options ] +file ... +.SH DESCRIPTION +.I Ci +stores new revisions into RCS files. +Each file name ending in `,v' is taken to be an RCS file, all others +are assumed to be working files containing new revisions. +\fICi\fR deposits the contents of each working file +into the corresponding RCS file. +.PP +Pairs of RCS files and working files may be specified in 3 ways (see also the +example section of \fIco\fR (1)). +.PP +1) Both the RCS file and the working file are given. The RCS file name is of +the form \fIpath1/workfile\fR,v +and the working file name is of the form +\fIpath2/workfile\fR, where +\fIpath1/\fR and +\fIpath2/\fR are (possibly different or empty) paths and +\fIworkfile\fR is a file name. +.PP +2) Only the RCS file is given. +Then the working file is assumed to be in the current +directory and its name is derived from the name of the RCS file +by removing \fIpath1/\fR and the suffix `,v'. +.PP +3) Only the working file is given. +Then the name of the RCS file is derived from the name of the working file +by removing \fIpath2/\fR +and appending the suffix `,v'. +.PP +If the RCS file is omitted or specified without a path, then \fIci\fR +looks for the RCS file first in the directory ./RCS and then in the current +directory. +.PP +For \fIci\fR to work, the caller's login must be on the access list, +except if the access list is empty or the caller is the superuser or the +owner of the file. +To append a new revision to an existing branch, the tip revision on +that branch must be locked by the caller. Otherwise, only a +new branch can be created. This restriction is not enforced +for the owner of the file, unless locking is set to \fIstrict\fR +(see \fIrcs\fR (1)). +A lock held by someone else may be broken with the \fIrcs\fR command. +.PP +Normally, \fIci\fR checks whether the revision to be deposited is different +from the preceding one. If it is not different, \fIci\fR +either aborts the deposit (if \fB-q\fR is given) or asks whether to abort +(if \fB-q\fR is omitted). A deposit can be forced with the \fB-f\fR option. +.PP +For each revision deposited, \fIci\fR prompts for a log message. +The log message should summarize the change and must be terminated with +a line containing a single `.' or a control-D. +If several files are checked in, \fIci\fR asks whether to reuse the +previous log message. +If the std. input is not a terminal, \fIci\fR suppresses the prompt +and uses the same log message for all files. +See also \fB-m\fR. +.PP +The number of the deposited revision can be given by any of the options +\fB-r\fR, \fB-f\fR, \fB-k\fR, \fB-l\fR, \fB-u\fR, or \fB-q\fR (see \fB-r\fR). +.PP +If the RCS file does not exist, \fIci\fR creates it and +deposits the contents of the working file as the initial revision +(default number: 1.1). +The access list is initialized to empty. +Instead of the log message, \fIci\fR requests descriptive text (see +\fB-t\fR below). +.TP 10 +.B \-r\fR[\fIrev\fR] +assigns the revision number \fIrev\fR +to the checked-in revision, releases the corresponding lock, and +deletes the working file. This is also the default. + +If \fIrev\fR is omitted, \fIci\fR derives the new revision number from +the caller's last lock. If the caller has locked the tip revision of a branch, +the new revision is appended to that branch. The new revision number is obtained +by incrementing the tip revision number. +If the caller locked a non-tip revision, a new branch is started at +that revision by incrementing the highest branch number at that revision. +The default initial branch and level numbers are 1. +If the caller holds no lock, but he is the owner of the file and locking +is not set to \fIstrict\fR, then the revision is appended to the trunk. + +If \fIrev\fR indicates a revision number, it must be higher than the latest +one on the branch to which \fIrev\fR belongs, or must start a new branch. + +If \fIrev\fR indicates a branch instead of a revision, +the new revision is appended to that branch. The level number is obtained +by incrementing the tip revision number of that branch. +If \fIrev\fR indicates a non-existing branch, +that branch is created with the initial revision numbered \fIrev.1\fR. + +Exception: On the trunk, revisions can be appended to the end, but +not inserted. +.TP 10 +.B \-f\fR[\fIrev\fR] +forces a deposit; the new revision is deposited even it is not different +from the preceding one. +.TP 10 +.B \-k\fR[\fIrev\fR] +searches the working file for keyword values to determine its revision number, +creation date, author, and state (see \fIco\fR (1)), and assigns these +values to the deposited revision, rather than computing them locally. +A revision number given by a command option overrides the number +in the working file. +This option is useful for software distribution. A revision that is sent to +several sites should be checked in with the \fB-k\fR option at these sites to +preserve its original number, date, author, and state. +.TP 10 +.B \-l\fR[\fIrev\fR] +works like \fB-r\fR, except it performs an additional \fIco -l\fR for the +deposited revision. Thus, the deposited revision is immediately +checked out again and locked. +This is useful for saving a revision although one wants to continue +editing it after the checkin. +.TP 10 +.B \-u\fR[\fIrev\fR] +works like \fB-l\fR, except that the deposited revision is not locked. +This is useful if one wants to process (e.g., compile) the revision +immediately after checkin. +.TP 10 +.B \-q\fR[\fIrev\fR] +quiet mode; diagnostic output is not printed. +A revision that is not different from the preceding one is not deposited, +unless \fB-f\fR is given. +.TP 10 +.BI \-m "msg" +uses the string \fImsg\fR as the log message for all revisions checked in. +.TP 10 +.BI \-n "name" +assigns the symbolic name \fIname\fR to the number of the checked-in revision. +\fICi\fR prints an error message if \fIname\fR is already assigned to another +number. +.TP 10 +.BI \-N "name" +same as \fB-n\fR, except that it overrides a previous assignment of \fIname\fR. +.TP +.BI \-s "state" +sets the state of the checked-in revision to the identifier \fIstate\fR. +The default is \fIExp\fR. +.TP +.B \-t\fR[\fItxtfile\fR] +writes descriptive text into the RCS file (deletes the existing text). +If \fItxtfile\fR is omitted, +\fIci\fR prompts the user for text supplied from the std. input, +terminated with a line containing a single `.' or control-D. +Otherwise, the descriptive text is copied from the file \fItxtfile\fR. +During initialization, descriptive text is requested +even if \fB-t\fR is not given. +The prompt is suppressed if std. input is not a terminal. +.SH DIAGNOSTICS +For each revision, +\fIci\fR prints the RCS file, the working file, and the number +of both the deposited and the preceding revision. +The exit status always refers to the last file checked in, +and is 0 if the operation was successful, 1 otherwise. +.SH "FILE MODES" +An RCS file created by \fIci\fR inherits the read and execute permissions +from the working file. If the RCS file exists already, \fIci\fR +preserves its read and execute permissions. +\fICi\fR always turns off all write permissions of RCS files. +.SH FILES +The caller of the command +must have read/write permission for the directories containing +the RCS file and the working file, and read permission for the RCS file itself. +A number of temporary files are created. +A semaphore file is created in the directory containing the RCS file. +\fICi\fR always creates a new RCS file and unlinks the old one. +This strategy makes links to RCS files useless. +.SH IDENTIFICATION +.de VL +\\$2 +.. +Author: Walter F. Tichy, +Purdue University, West Lafayette, IN, 47907. +.sp 0 +Revision Number: +.VL $Revision: 3.1 $ +; Release Date: +.VL $Date: 83/04/04 15:52:35 $ +\&. +.sp 0 +Copyright \(co 1982 by Walter F. Tichy. +.SH SEE ALSO +co (1), ident(1), rcs (1), rcsdiff (1), rcsintro (1), rcsmerge (1), rlog (1), rcsfile (5), sccstorcs (8). +.sp 0 +Walter F. Tichy, "Design, Implementation, and Evaluation of a Revision Control +System," in \fIProceedings of the 6th International Conference on Software +Engineering\fR, IEEE, Tokyo, Sept. 1982. +.SH BUGS + diff --git a/doc/ps1/13.rcs/man/co.1 b/doc/ps1/13.rcs/man/co.1 new file mode 100644 index 00000000..486527aa --- /dev/null +++ b/doc/ps1/13.rcs/man/co.1 @@ -0,0 +1,267 @@ +.TH CO 1 6/29/83 "Purdue University" +.SH NAME +co \- check out RCS revisions +.SH SYNOPSIS +.B co +[ options ] +file ... +.SH DESCRIPTION +.I Co +retrieves revisions from RCS files. +Each file name ending in `,v' is taken to be an RCS file. +All other files +are assumed to be working files. +\fICo\fR retrieves a revision from each RCS file and stores it into +the corresponding working file. +.PP +Pairs of RCS files and working files may be specified in 3 ways (see also the +example section). +.PP +1) Both the RCS file and the working file are given. The RCS file name is of +the form \fIpath1/workfile\fR,v +and the working file name is of the form +\fIpath2/workfile\fR, where +\fIpath1/\fR and +\fIpath2/\fR are (possibly different or empty) paths and +\fIworkfile\fR is a file name. +.PP +2) Only the RCS file is given. Then the working file is created in the current +directory and its name is derived from the name of the RCS file +by removing \fIpath1/\fR and the suffix `,v'. +.PP +3) Only the working file is given. +Then the name of the RCS file is derived from the name of the working file +by removing \fIpath2/\fR +and appending the suffix `,v'. +.PP +If the RCS file is omitted or specified without a path, then \fIco\fR +looks for the RCS file first in the directory ./RCS and then in the current +directory. +.PP +Revisions of an RCS file may be checked out locked or unlocked. Locking a +revision prevents overlapping updates. A revision checked out for reading or +processing (e.g., compiling) need not be locked. A revision checked out +for editing and later checkin must normally be locked. Locking a revision +currently locked by another user fails. (A lock may be broken with +the \fIrcs\fR (1) command.) +\fICo\fR with locking requires the caller to be on the access list of +the RCS file, unless he is the owner of the +file or the superuser, or the access list is empty. +\fICo\fR without locking is not subject to accesslist restrictions. +.PP +A revision is selected by number, +checkin date/time, +author, or state. If none of these options +are specified, the latest revision +on the trunk is retrieved. +When the options +are applied in combination, the latest revision +that satisfies all of them is retrieved. +The options for date/time, author, and state retrieve a revision on the \fIselected +branch\fR. The selected branch is either derived from the revision number (if given), +or is the highest branch on the trunk. +A revision number may be attached +to one of the options +\fB-l\fR, \fB-p\fR, \fB-q\fR, or \fB-r\fR. +.PP +A \fIco\fR command applied to an RCS +file with no revisions creates a zero-length file. +\fICo\fR always performs keyword substitution (see below). +.PP +.TP 11 +.B \-l\fR[\fIrev\fR] +locks the checked out revision for the caller. +If omitted, the checked out revision is not locked. +See option \fB-r\fR for handling of the revision number \fIrev\fR. +.TP 11 +.B \-p\fR[\fIrev\fR] +prints the retrieved revision on the std. output rather than storing it +in the working file. +This option is useful when \fIco\fR +is part of a pipe. +.TP 11 +.B \-q\fR[\fIrev\fR] +quiet mode; diagnostics are not printed. +.TP 11 +.BI \-d "date" +retrieves the latest revision on the selected branch whose checkin date/time is less than or equal to \fIdate\fR. +The date and time may be given in free format and are converted to local time. +Examples of formats for \fIdate\fR: +.nf + +\fI22-April-1982, 17:20-CDT, +2:25 AM, Dec. 29, 1983, +Tue-PDT, 1981, 4pm Jul 21\fR \fR(free format), +\fIFri, April 16 15:52:25 EST 1982 \fR(output of ctime). +.fi + +Most fields in the date and time may be defaulted. +\fICo\fR determines the defaults in the order year, month, day, +hour, minute, and second (most to least significant). At least one of these +fields must be provided. For omitted fields that are of higher significance +than the highest provided field, +the current values are assumed. For all other omitted fields, +the lowest possible values are assumed. +For example, the date "20, 10:30" defaults to +10:30:00 of the 20th of the current month and current year. +The date/time must be quoted if it contains spaces. +.TP 11 +.B \-r\fR[\fIrev\fR] +retrieves the latest revision whose number is less than or equal to \fIrev\fR. +If \fIrev\fR indicates a branch rather than a revision, +the latest revision on that branch is retrieved. +\fIRev\fR is composed of one or more numeric or symbolic fields +separated by `.'. The numeric equivalent of a symbolic field +is specified with the \fB-n\fR option of the commands \fIci\fR and \fIrcs\fR. +.TP 11 +.BI \-s "state" +retrieves the latest revision on the selected branch whose state is set to \fIstate\fR. +.TP 11 +.B \-w\fR[\fIlogin\fR] +retrieves the latest revision on the selected branch which was checked in +by the user with login name \fIlogin\fR. If the argument \fIlogin\fR is +omitted, the caller's login is assumed. +.TP 11 +.B \-j\fIjoinlist\fR +generates a new revision which is the join of the revisions on \fIjoinlist\fR. +\fIJoinlist\fR is a comma-separated list of pairs of the form +\fIrev2:rev3\fR, where \fIrev2\fR and \fIrev3\fR are (symbolic or numeric) +revision numbers. +For the initial such pair, \fIrev1\fR denotes the revision selected +by the options \fB-l\fR, ..., \fB-w\fR. For all other pairs, \fIrev1\fR +denotes the revision generated by the previous pair. (Thus, the output +of one join becomes the input to the next.) + +For each pair, \fIco\fR joins revisions \fIrev1\fR and \fIrev3\fR +with respect to \fIrev2\fR. +This means that all changes that transform +\fIrev2\fR into \fIrev1\fR are applied to a copy of \fIrev3\fR. +This is particularly useful if \fIrev1\fR +and \fIrev3\fR are the ends of two branches that have \fIrev2\fR as a common +ancestor. If \fIrev1\fR < \fIrev2\fR < \fIrev3\fR on the same branch, +joining generates a new revision which is like \fIrev3\fR, but with all +changes that lead from \fIrev1\fR to \fIrev2\fR undone. +If changes from \fIrev2\fR to \fIrev1\fR overlap with changes from +\fIrev2\fR to \fIrev3\fR, \fIco\fR prints a warning and includes the +overlapping sections, delimited by the lines \fI<<<<<<<\ rev1, +=======\fR, and \fI>>>>>>>\ rev3\fR. + +For the initial pair, \fIrev2\fR may be omitted. The default is the common +ancestor. +If any of the arguments indicate branches, the latest revisions +on those branches are assumed. If the option \fB-l\fR is present, +the initial \fIrev1\fR is locked. +.SH "KEYWORD SUBSTITUTION" +Strings of the form \fI$keyword$\fR and \fI$keyword:...$\fR embedded in +the text are replaced +with strings of the form \fI$keyword:\ value\ $\fR, +where \fIkeyword\fR and \fIvalue\fR are pairs listed below. +Keywords may be embedded in literal strings +or comments to identify a revision. +.PP +Initially, the user enters strings of the form \fI$keyword$\fR. +On checkout, \fIco\fR replaces these strings with strings of the form +\fI$keyword:\ value\ $\fR. If a revision containing strings of the latter form +is checked back in, the value fields will be replaced during the next +checkout. +Thus, the keyword values are automatically updated on checkout. +.PP +Keywords and their corresponding values: +.TP 13 +$\&Author$ +The login name of the user who checked in the revision. +. \.TP +. \$\&Class$ +. \Prog, Def, Doc, or Test, depending on the class assigned to the file +. \with the \fB-c\fR option of the \fIrcs\fR command. +.TP +$\&Date$ +The date and time the revision was checked in. +.TP +$\&Header$ +A standard header containing the RCS file name, the +revision number, the date, the author, and the state. +.TP +$\&Locker$ +The login name of the user who locked the revision (empty if not locked). +.TP +$\&Log$ +The log message supplied during checkin, preceded by a header +containing the RCS file name, the revision number, the author, and the date. +Existing log messages are NOT replaced. +Instead, the new log message is inserted after \fI$\&Log:...$\fR. +This is useful for +accumulating a complete change log in a source file. +.TP +$\&Revision$ +The revision number assigned to the revision. +.TP +$\&Source$ +The full pathname of the RCS file. +.TP +$\&State$ +The state assigned to the revision with \fIrcs -s\fR or \fIci -s\fR. +.SH DIAGNOSTICS +The RCS file name, the working file name, +and the revision number retrieved are +written to the diagnostic output. +The exit status always refers to the last file checked out, +and is 0 if the operation was successful, 1 otherwise. +.SH EXAMPLES +Suppose the current directory contains a subdirectory `RCS' with an RCS file +`io.c,v'. Then all of the following commands retrieve the latest +revision from `RCS/io.c,v' and store it into `io.c'. +.nf +.sp + co io.c; co RCS/io.c,v; co io.c,v; + co io.c RCS/io.c,v; co io.c io.c,v; + co RCS/io.c,v io.c; co io.c,v io.c; +.fi +.SH "FILE MODES" +The working file inherits the read and execute permissions from the RCS +file. In addition, the owner write permission is turned on, unless the file +is checked out unlocked and locking is set to \fIstrict\fR (see +\fIrcs\fR (1)). +.PP +If a file with the name of the working file exists already and has write +permission, \fIco\fR aborts the checkout if \fB-q\fR is given, or asks +whether to abort if \fB-q\fR is not given. If the existing working file is +not writable, it is deleted before the checkout. +.SH FILES +The caller of the command must have write permission in the working +directory, read permission for the RCS file, and either read permission +(for reading) or read/write permission (for locking) in the directory which +contains the RCS file. +.PP +A number of temporary files are created. +A semaphore file is created in the directory of the RCS file +to prevent simultaneous update. +.SH IDENTIFICATION +.de VL +\\$2 +.. +Author: Walter F. Tichy, +Purdue University, West Lafayette, IN, 47907. +.sp 0 +Revision Number: +.VL $Revision: 3.1 $ +; Release Date: +.VL $Date: 83/04/04 15:53:40 $ +\&. +.sp 0 +Copyright \(co 1982 by Walter F. Tichy. +.SH SEE ALSO +ci (1), ident(1), rcs (1), rcsdiff (1), rcsintro (1), rcsmerge (1), rlog (1), rcsfile (5), sccstorcs (8). +.sp 0 +Walter F. Tichy, "Design, Implementation, and Evaluation of a Revision Control +System," in \fIProceedings of the 6th International Conference on Software +Engineering\fR, IEEE, Tokyo, Sept. 1982. +.SH LIMITATIONS +The option \fB-d\fR gets confused in some circumstances, +and accepts no date before 1970. +There is no way to suppress the expansion of keywords, except +by writing them differently. In nroff and troff, this is done by embedding the +null-character `\\&' into the keyword. +.SH BUGS +The option \fB-j\fR does not work for +files that contain lines with a single `.'. diff --git a/doc/ps1/13.rcs/man/ident.1 b/doc/ps1/13.rcs/man/ident.1 new file mode 100644 index 00000000..d747e65a --- /dev/null +++ b/doc/ps1/13.rcs/man/ident.1 @@ -0,0 +1,68 @@ +.TH IDENT 1 6/29/83 "Purdue University" +.SH NAME +ident \- identify files +.SH SYNOPSIS +.B ident +file ... +.SH DESCRIPTION +.I Ident +searches the named files for all occurrences of the pattern +\fI$keyword:...$\fR, where \fIkeyword\fR is one of +.nf + + Author + Date + Header + Locker + Log + Revision + Source + State + +.fi +These patterns are normally inserted automatically by the RCS command \fIco (1)\fR, +but can also be inserted manually. +.PP +\fIIdent\fR works on text files as well as object files. +For example, if the C program in file f.c contains +.nf + + char rcsid[] = "$\&Header: Header information $"; + +.fi +and f.c is compiled into f.o, then the command +.nf + + ident f.c f.o + +will print + + f.c: + $\&Header: Header information $ + f.o: + $\&Header: Header information $ + +.SH IDENTIFICATION +.de VL +\\$2 +.. +Author: Walter F. Tichy, +Purdue University, West Lafayette, IN, 47907. +.sp 0 +Revision Number: +.VL $Revision: 3.0 $ +; Release Date: +.VL $Date: 82/12/04 12:09:59 $ +\&. +.sp 0 +Copyright \(co 1982 by Walter F. Tichy. +.SH SEE ALSO +ci (1), co (1), rcs (1), rcsdiff(1), rcsintro (1), rcsmerge (1), rlog (1), rcsfile (5). +.sp 0 +Walter F. Tichy, "Design, Implementation, and Evaluation of a Revision Control +System," in \fIProceedings of the 6th International Conference on Software +Engineering\fR, IEEE, Tokyo, Sept. 1982. +.SH BUGS + + + diff --git a/doc/ps1/13.rcs/man/merge.1 b/doc/ps1/13.rcs/man/merge.1 new file mode 100644 index 00000000..63526728 --- /dev/null +++ b/doc/ps1/13.rcs/man/merge.1 @@ -0,0 +1,45 @@ +.TH MERGE 1 6/29/83 "Purdue University" +.SH NAME +merge \- three-way file merge +.SH SYNOPSIS +\fBmerge\fR [ \fB-p\fR ] file1 file2 file3 +.SH DESCRIPTION +.I Merge +incorporates all changes that lead from \fIfile2\fR to \fIfile3\fR into +\fIfile1\fR. The result goes to std. output if \fB-p\fR is present, into +\fIfile1\fR otherwise. \fIMerge\fR is useful for combining separate changes +to an original. Suppose \fIfile2\fR is the original, and both \fIfile1\fR +and \fIfile3\fR are modifications of \fIfile2\fR. Then \fImerge\fR +combines both changes. +.PP +An overlap occurs if both \fIfile1\fR and \fIfile3\fR +have changes in a common segment of lines. +\fIMerge\fR prints how many overlaps occurred, and includes both alternatives +in the result. The alternatives are delimited as follows: +.sp +.nf + <<<<<<< file1 + lines in file1 + ======= + lines in file3 + >>>>>>> file3 +.fi +.sp +If there are overlaps, the user should edit the result and delete one of the +alternatives. +.SH IDENTIFICATION +.de VL +\\$2 +.. +Author: Walter F. Tichy, +Purdue University, West Lafayette, IN, 47907. +.sp 0 +Revision Number: +.VL $Revision: 3.0 $ +; Release Date: +.VL $Date: 82/11/25 11:43:41 $ +\&. +.sp 0 +Copyright \(co 1982 by Walter F. Tichy. +.SH SEE ALSO +diff3 (1), diff (1), rcsmerge (1), co (1). diff --git a/doc/ps1/13.rcs/man/rcs.1 b/doc/ps1/13.rcs/man/rcs.1 new file mode 100644 index 00000000..65011c9b --- /dev/null +++ b/doc/ps1/13.rcs/man/rcs.1 @@ -0,0 +1,165 @@ +.TH RCS 1 6/29/83 "Purdue University" +.SH NAME +rcs \- change RCS file attributes +.SH SYNOPSIS +.B rcs +[ options ] +file ... +.SH DESCRIPTION +.I Rcs +creates new RCS files or changes attributes of existing ones. +An RCS file contains multiple revisions of text, +an access list, a change log, +descriptive text, +and some control attributes. +For \fIrcs\fR to work, the caller's login name must be on the access list, +except if the access list is empty, the caller is the owner of the file +or the superuser, or +the \fB-i\fR option is present. +.PP +Files ending in `,v' are RCS files, all others are working files. If +a working file is given, \fIrcs\fR tries to find the corresponding +RCS file first in directory ./RCS and then in the current directory, +as explained in \fIco\fR (1). +.TP 11 +.B \-i +creates and initializes a new RCS file, but does not deposit any revision. +If the RCS file has no path prefix, \fIrcs\fR tries to place it +first into the subdirectory ./RCS, and then into the current directory. +If the RCS file +already exists, an error message is printed. +.TP +.BI \-a "logins" +appends the login names appearing in the comma-separated list \fIlogins\fR +to the access list of the RCS file. +.TP +.BI \-A "oldfile" +appends the access list of \fIoldfile\fR to the access list of the RCS file. +.TP +.B \-e\fR[\fIlogins\fR] +erases the login names appearing in the comma-separated list \fIlogins\fR +from the access list of the RCS file. +If \fIlogins\fR is omitted, the entire access list is erased. +.TP +.BI \-c "string" +sets the comment leader to \fIstring\fR. The comment leader +is printed before every log message line generated by the keyword +$\&Log$ during checkout (see \fIco\fR). This is useful for programming +languages without multi-line comments. During \fIrcs -i\fR or initial +\fIci\fR, the comment leader is guessed from the suffix of the working file. +.TP +.B \-l\fR[\fIrev\fR] +locks the revision with number \fIrev\fR. +If a branch is given, the latest revision on that branch is locked. +If \fIrev\fR is omitted, the latest revision on the trunk is locked. +Locking prevents overlapping changes. +A lock is removed with \fIci\fR or \fIrcs -u\fR (see below). +.TP +.B \-u\fR[\fIrev\fR] +unlocks the revision with number \fIrev\fR. +If a branch is given, the latest revision on that branch is unlocked. +If \fIrev\fR is omitted, the latest lock held by the caller is removed. +Normally, only the locker of a revision may unlock it. +Somebody else unlocking a revision breaks the lock. +This causes a mail message to be sent to the original locker. +The message contains a commentary solicited from the breaker. +The commentary is terminated with a line containing a single `.' or +control-D. +.TP +.B \-L +sets locking to \fIstrict\fR. Strict locking means that the owner +of an RCS file is not exempt from locking for checkin. +This option should be used for files that are shared. +.TP +.B \-U +sets locking to non-strict. Non-strict locking means that the owner of +a file need not lock a revision for checkin. +This option should NOT be used for files that are shared. +The default (\fB-L\fR or \fB-U\fR) is determined by your system administrator. +.TP +.B \-n\fIname\fR[:\fIrev\fR] +associates the symbolic name \fIname\fR with the branch or +revision \fIrev\fR. +\fIRcs\fR prints an error message if \fIname\fR is already associated with +another number. +If \fIrev\fR is omitted, the symbolic name is deleted. +.TP +.B \-N\fIname\fR[:\fIrev\fR] +same as \fB-n\fR, except that it overrides a previous assignment of +\fIname\fR. +.TP +.BI \-o "range" +deletes ("outdates") the revisions given by \fIrange\fR. +A range consisting of a single revision number means that revision. +A range consisting of a branch number means the latest revision on that +branch. +A range of the form \fIrev1\-rev2\fR means +revisions \fIrev1\fR to \fIrev2\fR on the same branch, +\fI\-rev\fR means from the beginning of the branch containing +\fIrev\fR up to and including \fIrev\fR, and \fIrev\-\fR means +from revision \fIrev\fR to the end of the branch containing \fIrev\fR. +None of the outdated revisions may have branches or locks. +.TP +.B \-q +quiet mode; diagnostics are not printed. +.TP +.B \-s\fIstate\fR[:\fIrev\fR] +sets the state attribute of the revision \fIrev\fR to \fIstate\fR. +If \fIrev\fR is omitted, the latest revision on the trunk is assumed; +If \fIrev\fR is a branch number, the latest revision on that branch is +assumed. +Any identifier is acceptable for \fIstate\fR. +A useful set of states +is \fIExp\fR (for experimental), \fIStab\fR (for stable), and \fIRel\fR (for +released). +By default, \fIci\fR sets the state of a revision to \fIExp\fR. +.TP +.B \-t\fR[\fItxtfile\fR] +writes descriptive text into the RCS file (deletes the existing text). +If \fItxtfile\fR is omitted, +\fIrcs\fR prompts the user for text supplied from the std. input, +terminated with a line containing a single `.' or control-D. +Otherwise, the descriptive text is copied from the file \fItxtfile\fR. +If the \fB-i\fR option is present, descriptive text is requested +even if \fB-t\fR is not given. +The prompt is suppressed if the std. input is not a terminal. +.SH DIAGNOSTICS +The RCS file name and the revisions outdated are written to +the diagnostic output. +The exit status always refers to the last RCS file operated upon, +and is 0 if the operation was successful, 1 otherwise. +.SH FILES +The caller of the command +must have read/write permission for the directory containing +the RCS file and read permission for the RCS file itself. +.I Rcs +creates a semaphore file in the same directory as the RCS +file to prevent simultaneous update. +For changes, \fIrcs\fR always creates a new file. On successful completion, +\fIrcs\fR deletes the old one and renames the new one. +This strategy makes links to RCS files useless. +.SH IDENTIFICATION +.de VL +\\$2 +.. +Author: Walter F. Tichy, +Purdue University, West Lafayette, IN, 47907. +.sp 0 +Revision Number: +.VL $Revision: 3.1 $ +; Release Date: +.VL $Date: 83/04/04 15:58:23 $ +\&. +.sp 0 +Copyright \(co 1982 by Walter F. Tichy. +.SH SEE ALSO +co (1), ci (1), ident(1), rcsdiff (1), rcsintro (1), rcsmerge (1), rlog (1), rcsfile (5), sccstorcs (8). +.sp 0 +Walter F. Tichy, "Design, Implementation, and Evaluation of a Revision Control +System," in \fIProceedings of the 6th International Conference on Software +Engineering\fR, IEEE, Tokyo, Sept. 1982. +.SH BUGS + + + + diff --git a/doc/ps1/13.rcs/man/rcsdiff.1 b/doc/ps1/13.rcs/man/rcsdiff.1 new file mode 100644 index 00000000..11e778ae --- /dev/null +++ b/doc/ps1/13.rcs/man/rcsdiff.1 @@ -0,0 +1,61 @@ +.TH RCSDIFF 1 5/19/86 "Purdue University" +.SH NAME +rcsdiff \- compare RCS revisions +.SH SYNOPSIS +\fBrcsdiff\fR [ \fB\-biwt\fR ] [ \fB\-cefhn\fR ] [ \fB\-r\fIrev1\fR ] [ \fB\-r\fIrev2\fR ] file ... +.SH DESCRIPTION +.I Rcsdiff +runs \fIdiff\fR (1) to compare two revisions of each RCS file given. +A file name ending in ',v' is an RCS file name, otherwise a +working file name. \fIRcsdiff\fR derives the working file name from the RCS +file name and vice versa, as explained in \fIco\fR (1). Pairs consisting +of both an RCS and a working file name may also be specified. +.PP +All options except +.B \-r +have the same effect as described in +.IR diff (1). +.PP +If both \fIrev1\fR and \fIrev2\fR +are omitted, \fIrcsdiff\fR compares the latest revision on the trunk +with the contents of the corresponding working file. This is useful +for determining what you changed since the last checkin. +.PP +If \fIrev1\fR is given, but \fIrev2\fR is omitted, +\fIrcsdiff\fR compares revision \fIrev1\fR of the RCS file with +the contents of the corresponding working file. +.PP +If both \fIrev1\fR and \fIrev2\fR are given, +\fIrcsdiff\fR compares revisions \fIrev1\fR and \fIrev2\fR of the RCS file. +.PP +Both \fIrev1\fR and \fIrev2\fR may be given numerically or symbolically. +.SH EXAMPLES +.nf +The command + + rcsdiff f.c + +.fi +runs \fIdiff\fR on the latest trunk revision of RCS file f.c,v +and the contents of working file f.c. +.SH IDENTIFICATION +.de VL +\\$2 +.. +Author: Walter F. Tichy, +Purdue University, West Lafayette, IN, 47907. +.sp 0 +Revision Number: +.VL $Revision: 1.2 $ +; Release Date: +.VL $Date: 86/05/19 02:27:17 $ +\&. +.sp 0 +Copyright \(co 1982 by Walter F. Tichy. +.SH SEE ALSO +ci (1), co (1), diff (1), ident (1), rcs (1), rcsintro (1), rcsmerge (1), rlog (1), rcsfile (5). +.sp 0 +Walter F. Tichy, "Design, Implementation, and Evaluation of a Revision Control +System," in \fIProceedings of the 6th International Conference on Software +Engineering\fR, IEEE, Tokyo, Sept. 1982. +.SH BUGS diff --git a/doc/ps1/13.rcs/man/rcsfile.5 b/doc/ps1/13.rcs/man/rcsfile.5 new file mode 100644 index 00000000..fb567588 --- /dev/null +++ b/doc/ps1/13.rcs/man/rcsfile.5 @@ -0,0 +1,143 @@ +.TH RCSFILE 5 6/29/83 "Purdue University" +.SH NAME +rcsfile \- format of RCS file +.SH DESCRIPTION +An RCS file is an ASCII file. Its contents is described by the grammar +below. The text is free format, i.e., spaces, tabs and new lines have +no significance except in strings. Strings are enclosed by `@'. +If a string contains a `@', it must be doubled. +.PP +The meta syntax uses the following conventions: `|' (bar) separates +alternatives; `{' and `}' enclose optinal phrases; `{' and `}*' enclose +phrases that may be repeated zero or more times; +`{' and '}+' enclose phrases that must appear at least once and may be +repeated; +`<' and `>' enclose nonterminals. +.PP +.ta 1.5i 2.0i 3i +.fc ~ +.nf + + + ~~::=~~ {}* {}* + + ~~::=~~\fBhead\fR ~~{}; + ~~ ~~\fBaccess\fR ~~{}*; + ~~ ~~\fBsymbols\fR ~~{ : }*; + ~~ ~~\fBlocks\fR ~~{ : }*; + ~~ ~~\fBcomment\fR ~~{}; + + ~~::=~~ + ~~ ~~\fBdate\fR ~~; + ~~ ~~\fBauthor\fR ~~; + ~~ ~~\fBstate\fR ~~{}; + ~~ ~~\fBbranches\fR ~~{}*; + ~~ ~~\fBnext\fR ~~{}; + + ~~::=~~\fBdesc\fR ~~ + +~~::=~~ + ~~ ~~\fBlog\fR ~~ + ~~ ~~\fBtext\fR ~~ + + + ~~::=~~{{.}}+ + + ~~::=~~0 | 1 | ... | 9 + + ~~::=~~{}* + + ~~::=~~A | B | ... | Z | a | b | ... | z + + ~~::=~~Any printing ASCII character except space, + ~~ ~~tab, carriage return, new line, and . + + ~~::=~~; | : | , | @ + + ~~::=~~@{any ASCII character, with `@' doubled}*@ + +.fi +.PP +Identifiers are case sensitive. Keywords are in lower case only. +The sets of keywords and identifiers may overlap. +.PP +The nodes form a tree. All nodes whose numbers +consist of a single pair +(e.g., 2.3, 2.1, 1.3, etc.) +are on the "trunk", and are linked through the "next" +field in order of decreasing numbers. The "head" field in the + node points to the head of that sequence (i.e., contains +the highest pair). +.PP +All nodes whose numbers consist of 2n fields (n\(>=2) +(e.g., 3.1.1.1, 2.1.2.2, etc.) +are linked as follows. All nodes whose first (2n)-1 number fields are identical +are linked through the "next" field in order of increasing numbers. +For each such sequence, +the node whose number is identical to the first +2(n-1) number fields of the deltas on that sequence is called the branchpoint. +The "branches" field of a node contains a list of the +numbers of the first nodes of all sequences for which it is a branchpoint. +This list is ordered in increasing numbers. +.PP +Example: +.nf +.vs 12pts +.cs 1 20 + Head + | + | + v + --------- + / \\ / \\ | | / \\ / \\ + / \\ / \\ | 2.1 | / \\ / \\ + / \\ / \\ | | / \\ / \\ + /1.2.1.3\\ /1.3.1.1\\ | | /1.2.2.2\\ /1.2.2.1.1.1\\ + --------- --------- --------- --------- ------------- + ^ ^ | ^ ^ + | | | | | + | | v | | + / \\ | --------- / \\ | + / \\ | \\ 1.3 / / \\ | + / \\ ---------\\ / / \\----------- + /1.2.1.1\\ \\ / /1.2.2.1\\ + --------- \\ / --------- + ^ | ^ + | | | + | v | + | --------- | + | \\ 1.2 / | + ----------------------\\ /--------- + \\ / + \\ / + | + | + v + --------- + \\ 1.1 / + \\ / + \\ / + \\ / + + +.cs 1 +.ce +Fig. 1: A revision tree +.fi +.PP +.SH IDENTIFICATION +.de VL +\\$2 +.. +Author: Walter F. Tichy, +Purdue University, West Lafayette, IN, 47907. +.sp 0 +Revision Number: +.VL $Revision: 3.0 $ +; Release Date: +.VL $Date: 82/11/18 16:36:39 $ +\&. +.sp 0 +Copyright \(co 1982 by Walter F. Tichy. +.SH SEE ALSO +ci (1), co (1), ident (1), rcs (1), rcsdiff (1), rcsintro (1), rcsmerge (1), rlog (1), sccstorcs (8). diff --git a/doc/ps1/13.rcs/man/rcsintro.1 b/doc/ps1/13.rcs/man/rcsintro.1 new file mode 100644 index 00000000..3752ccca --- /dev/null +++ b/doc/ps1/13.rcs/man/rcsintro.1 @@ -0,0 +1,23 @@ +.TH RCSINTRO 1 "June 29, 1983" "Purdue University" +.SH NAME +rcsintro \- introduction to RCS commands +.SH DESCRIPTION +The Revision Control System (RCS) manages multiple revisions of text files. +RCS automates the storing, retrieval, logging, identification, and merging +of revisions. RCS is useful for text that is revised frequently, for example +programs, documentation, graphics, papers, form letters, etc. +.PP +The basic user interface is extremely simple. The novice only needs +to learn two commands: +.I ci +and +.I co. +\fICi\fR, short for "checkin", deposits the contents of a +text file into an archival file called an RCS file. An RCS file +contains all revisions of a particular text file. +\fICo\fR, short for "checkout", retrieves revisions from an RCS file. +.SH SEE ALSO +ci(1), co(1), ident(1), merge(1), rcs(1), rcsdiff(1), rcsmerge(1), rlog(1), rcsfile(5). +.br +Walter F. Tichy, ``An Introduction to the Revision Control System'', +Programmer Supplementary Documents, Volume 1 (PS1), #13 diff --git a/doc/ps1/13.rcs/man/rcsmerge.1 b/doc/ps1/13.rcs/man/rcsmerge.1 new file mode 100644 index 00000000..078380e1 --- /dev/null +++ b/doc/ps1/13.rcs/man/rcsmerge.1 @@ -0,0 +1,71 @@ +.TH RCSMERGE 1 6/29/83 "Purdue University" +.SH NAME +rcsmerge \- merge RCS revisions +.SH SYNOPSIS +\fBrcsmerge\fR \fB-r\fIrev1\fR [ \fB-r\fIrev2\fR ] [ \fB-p\fR ] file +.SH DESCRIPTION +.I Rcsmerge +incorporates the changes between \fIrev1\fR and \fIrev2\fR of an +RCS file into the corresponding working file. If \fB-p\fR is given, the result +is printed on the std. output, otherwise the result overwrites the +working file. +.PP +A file name ending in ',v' is an RCS file name, otherwise a +working file name. \fIMerge\fR derives the working file name from the RCS +file name and vice versa, as explained in \fIco\fR (1). A pair consisting +of both an RCS and a working file name may also be specified. +.PP +\fIRev1\fR may not be omitted. If \fIrev2\fR is omitted, the latest +revision on the trunk is assumed. +Both \fIrev1\fR and \fIrev2\fR may be given numerically or symbolically. +.PP +\fIRcsmerge\fR prints a warning if there are overlaps, and delimits +the overlapping regions as explained in \fIco -j\fR. +The command is useful for incorporating changes into a checked-out revision. +.SH EXAMPLES +Suppose you have released revision 2.8 of f.c. Assume +furthermore that you just completed revision 3.4, when you receive +updates to release 2.8 from someone else. +To combine the updates to 2.8 and your changes between 2.8 and 3.4, +put the updates to 2.8 into file f.c and execute +.sp + rcsmerge -p -r2.8 -r3.4 f.c >f.merged.c +.sp +Then examine f.merged.c. +Alternatively, if you want to save the updates to 2.8 in the RCS file, +check them in as revision 2.8.1.1 and execute \fIco -j\fR: +.sp + ci -r2.8.1.1 f.c + co -r3.4 -j2.8:2.8.1.1 f.c +.sp +As another example, the following command undoes the changes +between revision 2.4 and 2.8 in your currently checked out revision +in f.c. +.sp + rcsmerge -r2.8 -r2.4 f.c +.sp +Note the order of the arguments, and that f.c will be +overwritten. +.SH IDENTIFICATION +.de VL +\\$2 +.. +Author: Walter F. Tichy, +Purdue University, West Lafayette, IN, 47907. +.sp 0 +Revision Number: +.VL $Revision: 3.0 $ +; Release Date: +.VL $Date: 83/01/15 18:55:16 $ +\&. +.sp 0 +Copyright \(co 1982 by Walter F. Tichy. +.SH SEE ALSO +ci (1), co (1), merge (1), ident (1), rcs (1), rcsdiff (1), rlog (1), rcsfile (5). +.sp 0 +Walter F. Tichy, "Design, Implementation, and Evaluation of a Revision Control +System," in \fIProceedings of the 6th International Conference on Software +Engineering\fR, IEEE, Tokyo, Sept. 1982. +.SH BUGS +\fIRcsmerge\fR does not work for +files that contain lines with a single `.'. diff --git a/doc/ps1/13.rcs/man/rlog.1 b/doc/ps1/13.rcs/man/rlog.1 new file mode 100644 index 00000000..09495ae3 --- /dev/null +++ b/doc/ps1/13.rcs/man/rlog.1 @@ -0,0 +1,131 @@ +.TH RLOG 1 6/29/83 "Purdue University" +.SH NAME +rlog \- print log messages and other information about RCS files +.SH SYNOPSIS +.B rlog +[ options ] +file ... +.SH DESCRIPTION +.I Rlog +prints information about RCS files. +Files ending in `,v' are RCS files, all others are working files. If +a working file is given, \fIrlog\fR tries to find the corresponding +RCS file first in directory ./RCS and then in the current directory, +as explained in \fIco\fR (1). +.PP +\fIRlog\fR prints the following information for each +RCS file: RCS file name, working file name, head (i.e., the number +of the latest revision on the trunk), access list, locks, +symbolic names, suffix, total number of revisions, +number of revisions selected for printing, and +descriptive text. This is followed by entries for the selected revisions in +reverse chronological order for each branch. For each revision, +\fIrlog\fR prints revision number, author, date/time, state, number of +lines added/deleted (with respect to the previous revision), +locker of the revision (if any), and log message. +Without options, \fIrlog\fR prints complete information. +The options below restrict this output. +.TP 10 +.B \-L +ignores RCS files that have no locks set; convenient in combination with +\fB-R\fR, \fB-h\fR, or \fB-l\fR. +.TP 10 +.B \-R +only prints the name of the RCS file; convenient for translating a +working file name into an RCS file name. +.TP 10 +.B \-h +prints only RCS file name, working file name, head, +access list, locks, +symbolic names, and suffix. +.TP 10 +.B \-t +prints the same as \fB-h\fR, plus the descriptive text. +.TP 10 +.BI \-d "dates" +prints information about revisions with a checkin date/time in the ranges given by +the semicolon-separated list of \fIdates\fR. +A range of the form \fId1d1\fR +selects the revisions that were deposited between +\fId1\fR and \fId2\fR, (inclusive). +A range of the form \fI\fR selects +all revisions dated +\fId\fR or earlier. +A range of the form \fId<\fR or \fI>d\fR selects +all revisions dated \fId\fR or later. +A range of the form \fId\fR selects the single, latest revision dated \fId\fR or +earlier. +The date/time strings \fId, d1, \fRand \fId2\fR +are in the free format explained in \fIco\fR (1). +Quoting is normally necessary, especially for \fI<\fR and \fI>\fR. Note that the separator is +a semicolon. +.TP 10 +.B \-l\fR[\fIlockers\fR] +prints information about locked revisions. +If the comma-separated list \fIlockers\fR of login names is given, +only the revisions locked by the given login names are printed. +If the list is omitted, all locked revisions are printed. +.TP 10 +.BI \-r "revisions" +prints information about revisions given in the comma-separated list +\fIrevisions\fR of revisions and ranges. A range \fIrev1\-rev2\fR means revisions +\fIrev1\fR to \fIrev2\fR on the same branch, \fI\-rev\fR means revisions +from the beginning of the branch up to and including \fIrev\fR, +and \fIrev\-\fR means revisions starting with \fIrev\fR to the end of the +branch containing \fIrev\fR. An argument that is a branch means all +revisions on that branch. A range of branches means all revisions +on the branches in that range. +.TP 10 +.BI \-s "states" +prints information about revisions whose state attributes match one of the +states given in the comma-separated list \fIstates\fR. +.TP 10 +.B \-w\fR[\fIlogins\fR] +prints information about revisions checked in by users with +login names appearing in the comma-separated list \fIlogins\fR. +If \fIlogins\fR is omitted, the user's login is assumed. +.PP +\fIRlog\fR prints the intersection of the revisions selected with +the options \fB-d\fR, \fB-l\fR, \fB-s\fR, \fB-w\fR, intersected +with the union of the revisions selected by \fB-b\fR and \fB-r\fR. +.SH EXAMPLES +.nf +.sp + rlog -L -R RCS/*,v + rlog -L -h RCS/*,v + rlog -L -l RCS/*,v + rlog RCS/*,v +.sp +.fi +The first command prints the names of all RCS files in the subdirectory `RCS' +which have locks. The second command prints the headers of those files, +and the third prints the headers plus the log messages of the locked revisions. +The last command prints complete information. +.SH DIAGNOSTICS +The exit status always refers to the last RCS file operated upon, +and is 0 if the operation was successful, 1 otherwise. +.SH IDENTIFICATION +.de VL +\\$2 +.. +Author: Walter F. Tichy, +Purdue University, West Lafayette, IN, 47907. +.sp 0 +Revision Number: +.VL $Revision: 3.2 $ +; Release Date: +.VL $Date: 83/05/11 11:11:22 $ +\&. +.sp 0 +Copyright \(co 1982 by Walter F. Tichy. +.SH SEE ALSO +ci (1), co (1), ident(1), rcs (1), rcsdiff (1), rcsintro (1), rcsmerge (1), rcsfile (5), sccstorcs (8). +.sp 0 +Walter F. Tichy, "Design, Implementation, and Evaluation of a Revision Control +System," in \fIProceedings of the 6th International Conference on Software +Engineering\fR, IEEE, Tokyo, Sept. 1982. +.SH BUGS + + + + diff --git a/doc/ps1/13.rcs/man/sccstorcs.1 b/doc/ps1/13.rcs/man/sccstorcs.1 new file mode 100644 index 00000000..a9754919 --- /dev/null +++ b/doc/ps1/13.rcs/man/sccstorcs.1 @@ -0,0 +1,51 @@ +.TH SCCSTORCS 8 "29 June 1983" +.UC 4 +.SH NAME +sccstorcs \- build RCS file from SCCS file +.SH SYNOPSIS +\fBsccstorcs\fR [\fB\-t\fR] [\fB\-v\fR] \fIs.file\fR ... +.SH DESCRIPTION +.I Sccstorcs +builds an RCS file from each SCCS file argument. +The deltas and comments for each delta are preserved and installed into +the new RCS file in order. +Also preserved are +the user access list and descriptive text, if any, +from the SCCS file. +.PP +The following flags are meaningful: +.TP +\fB\-t\fR +Trace only. +Prints detailed information about the SCCS file and lists the +commands that would be executed to produce the RCS file. +No commands are actually executed and no RCS file is made. +.TP +\fB\-v\fR +Verbose. +Prints each command that is run while it is building the RCS file. +.SH FILES +For each s.\fIsomefile\fR, +.I Sccstorcs +writes the files \fIsomefile\fR and \fIsomefile\fR,v +which should not already exist. +.I Sccstorcs +will abort, rather than overwrite those files if they do exist. +.SH SEE ALSO +ci (1), co (1), rcs (1). +.br +Walter F. Tichy, "Design, Implementation, and Evaluation of a Revision +Control System," in \fIProceedings of the 6th International Conference +on Software Engineering\fR, IEEE, Tokyo, Sept. 1982. +.SH DIAGNOSTICS +All diagnostics are written to stderr. +Non-zero exit status on error. +.SH BUGS +.I Sccstorcs +does not preserve all SCCS options specified in the SCCS file. +Most notably, it does not preserve removed deltas, MR numbers, +and cutoff points. +.SH AUTHOR +Ken Greer + +Copyright \(co 1983 by Kenneth L. Greer diff --git a/doc/ps1/13.rcs/rcs.man b/doc/ps1/13.rcs/rcs.man new file mode 100644 index 00000000..d1d64725 --- /dev/null +++ b/doc/ps1/13.rcs/rcs.man @@ -0,0 +1,35 @@ +.\" @(#)rcs.man 6.1 (Berkeley) 5/7/86 +.\" +.TH CHUCK THIS +.rs +.rm }C +.de }F +.bp +.. +.de }H +.ev 1 +'sp .5i +.ft 1 +.ps 10 +.if o .tl '\\*(]H'Introduction to RCS'PS1:13-%' +.if e .tl 'PS1:13-%'Introduction to RCS'\\*(]H' +.sp .5i +.ev +.ns +.. +.de TH +.ds ]H \\$1\|(\|\\$2\|) +.rs +.bp +.. +.pn 5 +.so man/ci.1 +.so man/co.1 +.so man/ident.1 +.so man/merge.1 +.so man/rcs.1 +.so man/rcsdiff.1 +.so man/rcsfile.5 +.so man/rcsmerge.1 +.so man/rlog.1 +.so man/sccstorcs.1 diff --git a/doc/ps1/13.rcs/rcs.ms b/doc/ps1/13.rcs/rcs.ms new file mode 100644 index 00000000..1460313a --- /dev/null +++ b/doc/ps1/13.rcs/rcs.ms @@ -0,0 +1,311 @@ +.\" Copyright (c) 1986 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)rcs.ms 6.1 (Berkeley) 5/7/86 +.\" +.OH 'Introduction to RCS''PS1:13-%' +.EH 'PS1:13-%''Introduction to RCS' +.TL +An Introduction to the Revision Control System +.AU +Walter F. Tichy +.AI +Department of Computer Sciences +Purdue University +West Lafayette, IN 47907 +.AB +The Revision Control System (RCS) manages software libraries. +It greatly increases programmer productivity +by centralizing and cataloging changes to a software project. +This document describes the benefits of using a source code control system. +It then gives a tutorial introduction to the use of RCS. +.AE +.SH +Functions of RCS +.PP +The Revision Control System (RCS) manages multiple revisions of text files. +RCS automates the storing, retrieval, logging, identification, and merging +of revisions. RCS is useful for text that is revised frequently, for example +programs, documentation, graphics, papers, form letters, etc. +It greatly increases programmer productivity +by providing the following functions. +.IP 1. +RCS stores and retrieves multiple revisions of program and other text. +Thus, one can maintain one or more releases while developing the next +release, with a minimum of space overhead. Changes no longer destroy the +original -- previous revisions remain accessible. +.RS +.IP a. +Maintains each module as a tree of revisions. +.IP b. +Project libraries can +be organized centrally, decentralized, or any way you like. +.IP c. +RCS works for any type of text: programs, documentation, memos, papers, +graphics, VLSI layouts, form letters, etc. +.RE +.IP 2. +RCS maintains a complete history of changes. +Thus, one can find out what happened to a module easily +and quickly, without having to compare source listings or +having to track down colleagues. +.RS +.IP a. +RCS performs automatic record keeping. +.IP b. +RCS logs all changes automatically. +.IP c. +RCS guarantees project continuity. +.RE +.IP 3. +RCS manages multiple lines of development. +.IP 4. +RCS can merge multiple lines of development. +Thus, when several parallel lines of development must be consolidated +into one line, the merging of changes is automatic. +.IP 5. +RCS flags coding conflicts. +If two or more lines of development modify the same section of code, +RCS can alert programmers about overlapping changes. +.IP 6. +RCS resolves access conflicts. +When two or more programmers wish to modify the same revision, +RCS alerts the programmers and makes sure that one change will not wipe +out the other one. +.IP 7. +RCS provides high-level retrieval functions. +Revisions can be retrieved according to ranges of revision numbers, +symbolic names, dates, authors, and states. +.IP 8. +RCS provides release and configuration control. +Revisions can be marked as released, stable, experimental, etc. +Configurations of modules can be described simply and directly. +.IP 9. +RCS performs automatic identification of modules with name, revision +number, creation time, author, etc. +Thus, it is always possible to determine which revisions of which +modules make up a given configuration. +.IP 10. +Provides high-level management visibility. +Thus, it is easy to track the status of a software project. +.RS +.IP a. +RCS provides a complete change history. +.IP b. +RCS records who did what when to which revision of which module. +.RE +.IP 11. +RCS is fully compatible with existing software development tools. +RCS is unobtrusive -- its interface to the file system is such that +all your existing software tools can be used as before. +.IP 12. +RCS' basic user interface is extremely simple. The novice only +needs to learn two commands. Its more sophisticated features have been +tuned towards advanced software development environments and the +experienced software professional. +.IP 13. +RCS simplifies software distribution if customers +also maintain sources with RCS. This technique assures proper +identification of versions and configurations, and tracking of customer +changes. Customer changes can be merged into distributed +versions locally or by the development group. +.IP 14. +RCS needs little extra space for the revisions (only the differences). +If intermediate revisions are deleted, the corresponding +differences are compressed into the shortest possible form. +.SH +Getting Started with RCS +.PP +Suppose you have a file f.c that you wish to put under control of RCS. +Invoke the checkin command: +.DS +ci f.c +.DE +This command creates f.c,v, stores f.c into it as revision 1.1, and +deletes f.c. +It also asks you for a description. The description should be +a synopsis of the contents of the file. +All later checkin commands will ask you for a log entry, +which should summarize the changes that you made. +.PP +Files ending in ,v are called RCS files ("v" stands for "versions"), +the others are called working files. +To get back the working file f.c in the previous example, use the checkout +command: +.DS +co f.c +.DE +This command extracts the latest revision from f.c,v and writes +it into f.c. +You can now edit f.c and check it in back in by invoking: +.DS +ci f.c +.DE +\fICi\fR increments the revision number properly. +If \fIci\fR complains with the message +.DS + ci error: no lock set by +.DE +then your system administrator has decided to create all RCS files +with the locking attribute set to ``strict''. +With strict locking, you you must lock the revision during +the previous checkout. +Thus, your last checkout should have been +.DS +co -l f.c +.DE +Locking assures that you, and only you, can check in the next update, and +avoids nasty problems if several people work on the same file. +Of course, it is too late now to do the checkout with locking, because you +probably modified f.c already, and a second checkout would +overwrite your changes. Instead, invoke +.DS +rcs -l f.c +.DE +This command will lock the latest revision for you, unless somebody +else got ahead of you already. +If someone else has the lock you will have to negotiate your changes +with them. +.PP +If your RCS file is private, i.e., if you are the only person who is going +to deposit revisions into it, strict locking is not needed and you +can turn it off. +If strict locking is turned off, +the owner off the RCS file need not have a lock for checkin; all others +still do. Turning strict locking off and on is done with the commands: +.DS +rcs -U f.c and rcs -L f.c +.DE +You can set the locking to strict or non-strict on every RCS file. +.PP +If you do not want to clutter your working directory with RCS files, create +a subdirectory called RCS in your working directory, and move all your RCS +files there. RCS commands will look first into that directory to find +needed files. All the commands discussed above will still work, without any +change*. +.FS +* Pairs of RCS and working files can really be specified in 3 ways: +a) both are given, b) only the working file is given, c) only the +RCS file is given. Both files may have arbitrary path prefixes; +RCS commands pair them up intelligently. +.FE +.PP +To avoid the deletion of the working file during checkin (should you want to +continue editing), invoke +.DS +ci -l f.c +.DE +This command checks in f.c as usual, but performs an additional +checkout with locking. +Thus, it saves you one checkout operation. +There is also an option +\fB-u\fR for \fIci\fR that does a checkin followed by a checkout without +locking. This is useful if you want to compile the file after the checkin. +Both options also update the identification markers in your file (see below). +.PP +You can give \fIci\fR the number you want assigned to a checked in +revision. Assume all your revisions were numbered 1.1, 1.2, 1.3, etc., +and you would like to start release 2. +The command +.DS +ci -r2 f.c or ci -r2.1 f.c +.DE +assigns the number 2.1 to the new revision. +From then on, \fIci\fR will number the subsequent revisions +with 2.2, 2.3, etc. The corresponding \fIco\fR commands +.DS +co -r2 f.c and co -r2.1 f.c +.DE +retrieve the latest revision numbered 2.x and the revision 2.1, +respectively. \fICo\fR without a revision number selects +the latest revision on the "trunk", i.e., the highest +revision with a number consisting of 2 fields. Numbers with more than 2 +fields are needed for branches. +For example, to start a branch at revision 1.3, invoke +.DS + ci -r1.3.1 f.c +.DE +This command starts a branch numbered 1 at revision 1.3, and assigns +the number 1.3.1.1 to the new revision. For more information about +branches, see \fIrcsfile\fR(5). +.SH +Automatic Identification +.PP +RCS can put special strings for identification into your source and object +code. To obtain such identification, place the marker +.DS +$Header$ +.DE +into your text, for instance inside a comment. +RCS will replace this marker with a string of the form +.DS +$Header: filename revisionnumber date time author state $ +.DE +You never need to touch this string, because RCS keeps it +up to date automatically. +To propagate the marker into your object code, simply put +it into a literal character string. In C, this is done as follows: +.DS +static char rcsid[] = "$Header$"; +.DE +The command \fIident\fR extracts such markers from any file, even object code. +Thus, \fIident\fR helps you to find out +which revisions of which modules were used in a given program. +.PP +You may also find it useful to put the marker +.DS +$Log$ +.DE +into your text, inside a comment. This marker accumulates +the log messages that are requested during checkin. +Thus, you can maintain the complete history of your file directly inside it. +There are several additional identification markers; see \fIco\fR (1) for +details. +.SH +How to combine MAKE and RCS +.PP +If your RCS files are in the same directory as your working files, +you can put a default rule into your makefile. Do not use a rule +of the form .c,v.c, because such a rule keeps a copy of every +working file checked out, even those you are not working on. Instead, use this: +.DS + + .SUFFIXES: .c,v + + .c,v.o: + co -q $*.c + cc $(CFLAGS) -c $*.c + rm -f $*.c + + prog: f1.o f2.o ..... + cc f1.o f2.o ..... -o prog +.DE +This rule has the following effect. If a file f.c does not exist, and f.o +is older than f.c,v, MAKE checks out f.c, compiles f.c into f.o, and then +deletes f.c. +From then on, MAKE will use f.o until you change f.c,v. +.PP +If f.c exists (presumably because you are working on it), the default +rule .c.o takes precedence, and f.c is compiled into f.o, but not deleted. +.PP +If you keep your RCS file in the directory ./RCS, all this will not work +and you have to write explicit checkout rules for every file, like +.DS +f1.c: RCS/f1.c,v; co -q f1.c +.DE +Unfortunately, these rules do not +have the property of removing unneeded .c-files. +.SH +Additional Information on RCS +.PP +If you want to know more about RCS, for example how to work +with a tree of revisions and how to use symbolic revision numbers, read +the following paper: +.sp 1 +Walter F. Tichy, ``Design, Implementation, and Evaluation of a +Revision Control System,'' in \fIProceedings of the 6th International +Conference on Software Engineering\fR, IEEE, Tokyo, Sept. 1982. +.PP +Taking a look at the manual page \fIRCSFILE\fP(5) +should also help to understand the revision tree permitted by RCS. diff --git a/doc/ps1/14.sccs/Makefile b/doc/ps1/14.sccs/Makefile new file mode 100644 index 00000000..b7d99743 --- /dev/null +++ b/doc/ps1/14.sccs/Makefile @@ -0,0 +1,25 @@ +# +# Copyright (c) 1986 Regents of the University of California. +# All rights reserved. The Berkeley software License Agreement +# specifies the terms and conditions for redistribution. +# +# @(#)Makefile 6.1 (Berkeley) 4/20/86 +# +SRCS= sccs.me +MACROS= -me +PRINTER=Pdp +TROFF= ditroff -${PRINTER} + +paper: paper.${PRINTER} + lpr -${PRINTER} -n paper.${PRINTER} + +paper.${PRINTER}: ${SRCS} + ${TROFF} ${MACROS} -t ${SRCS} > paper.${PRINTER} + +clean: + rm -f paper.${PRINTER} *.spell errs Errs make.out + +spell: ${SRCS} + @for i in ${SRCS}; do \ + echo $$i; spell $$i | sort | comm -23 - spell.ok > $$i.spell; \ + done diff --git a/doc/ps1/14.sccs/sccs.me b/doc/ps1/14.sccs/sccs.me new file mode 100644 index 00000000..4570e50e --- /dev/null +++ b/doc/ps1/14.sccs/sccs.me @@ -0,0 +1,1581 @@ +.\" Copyright (c) 1980 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)sccs.me 6.3 (Berkeley) 5/30/86 +.\" +.eh '\fRPS1:14-%\fP''\fRAn Introduction to the Source Code Control System\fP' +.oh '\fRAn Introduction to the Source Code Control System\fP''\fRPS1:14-%\fP' +.ds S \s-1SCCS\s0 +.ds I \s-1SID\s0 +.nr bi 8n +.ev 1 \" only for keeps +.ss 16 +.ev +.\".he '\*S Introduction''%' +.+c +.(l C +.sz 14 +.b +An Introduction to the +Source Code Control System +.sz +.r +.sp +Eric Allman +.i "Project Ingres" +.i "University of California at Berkeley" +.)l +.sp 3 +.pp +.(f +This is version 1.21 of this document. +It was last modified on 12/5/80. +.)f +This document gives a quick introduction +to using the Source Code Control System +(\*S). +The presentation is geared to programmers +who are more concerned with +what +to do to get a task done +rather than how it works; +for this reason some of the examples +are not well explained. +For details of what the magic options do, +see the section on +.q "Further Information" . +.(l F +This is a working document. +Please send any comments or suggestions +to eric@Berkeley.Edu. +.)l +.sh 1 "Introduction" +.pp +\*S is a source management system. +Such a system maintains a record of versions of a system; +a record is kept with each set of changes +of what the changes are, +why they were made, +and who made them and when. +Old versions can be recovered, +and different versions can be maintained simultaneously. +In projects with more than one person, +\*S will insure that two people are not +editing the same file at the same time. +.pp +All versions of your program, +plus the log and other information, +is kept in a file called the +.q "s-file" . +There are three major operations +that can be performed on the s-file: +.np +Get a file for compilation (not for editing). +This operation retrieves a version of the file +from the s-file. +By default, the latest version is retrieved. +This file is intended for compilation, printing, or whatever; +it is specifically NOT intended to be edited +or changed in any way; +any changes made to a file retrieved +in this way will probably be lost. +.np +Get a file for editing. +This operation also retrieves a version of the file +from the s-file, +but this file is intended to be edited and then +incorporated back into the s-file. +Only one person may be editing a file at one time. +.np +Merge a file back into the s-file. +This is the companion operation to (2). +A new version number is assigned, +and comments are saved explaining why this change was made. +.sh 1 "Learning the Lingo" +.pp +There are a number of terms that are worth learning +before we go any farther. +.sh 2 "S-file" +.pp +The s-file +is a single file that holds all the different versions +of your file. +The s-file is stored in +differential format; +.i i.e. , +only the differences between versions are stored, +rather than the entire text of the new version. +This saves disk space +and allows selective changes to be removed later. +Also included in the s-file +is some header information for each version, +including the comments given by the person who +created the version explaining why the changes were made. +.sh 2 "Deltas" +.pp +Each set of changes to the s-file +(which is approximately [but not exactly!] equivalent +to a version of the file) +is called a +.i delta . +Although technically a delta only includes the +.i changes +made, +in practice +it is usual for +each delta to be made with respect to +all the deltas that have occurred before\**. +.(f +\**This matches normal usage, where the previous changes are not saved +at all, +so all changes are automatically based on all other changes +that have happened through history. +.)f +However, +it is possible to get a version of the file +that has selected deltas removed out of the middle +of the list of changes \*- +equivalent to removing your changes later. +.sh 2 "\*I's (or, version numbers)" +.pp +A \*I +(\*S Id) +is a number that represents a delta. +This is normally a two-part number +consisting of a +.q release +number and a +.q level +number. +Normally the release number stays the same, +however, +it is possible to move into a new release +if some major change is being made. +.pp +Since all past deltas are normally applied, +the \*I of the final delta applied +can be used to represent a version number of the file +as a whole. +.sh 2 "Id keywords" +.pp +When you get a version of a file +with intent to compile and install it +(\c +.i i.e. , +something other than edit it), +some special keywords are expanded inline +by \*S. +These +.i "Id Keywords" +can be used to include the current version number +or other information into the file. +All id keywords are of the form +.b % \c +.i x \c +.b % , +where +.i x +is an upper case letter. +For example, +.b %\&I\&% +is the \*I of the latest delta applied, +.b %\&W\&% +includes the module name, +\*I, +and a mark that makes it findable by a program, +and +.b %\&G\&% +is the date of the latest delta applied. +There are many others, +most of which are of dubious usefulness. +.pp +When you get a file for editing, +the id keywords are not expanded; +this is so that after you put them back in to the s-file, +they will be expanded automatically on each new version. +But notice: if you were to get them +expanded accidently, +then your file would appear to be the same version +forever more, +which would of course defeat the purpose. +Also, +if you should install a version of the program +without expanding the id keywords, +it will be impossible to tell what version it is +(since all it will have is +.q %\&W\&% +or whatever). +.sh 1 "Creating \*S Files" +.pp +To put source files +into +\*S +format, run the following shell script from csh: +.(b +mkdir SCCS save +foreach i (*.[ch]) + sccs admin \-i$i $i + mv $i save/$i +end +.)b +This will put the named files +into s-files +in the subdirectory +.q SCCS +The files will be removed from the current directory +and hidden away in the directory +.q save , +so the next thing you will probably want to do +is to get all the files +(described below). +When you are convinced that +\*S has correctly created the s-files, +you should remove the directory +.q save . +.pp +If you want to have id keywords in the files, +it is best to put them in before you create the s-files. +If you do not, +.i admin +will print +.q "No Id Keywords (cm7)" , +which is a warning message only. +.sh 1 "Getting Files for Compilation" +.pp +To get a copy of the latest version +of a file, +run +.(b +sccs get prog.c +.)b +\*S will respond: +.(b +1.1 +87 lines +.)b +meaning that version 1.1 was retrieved\** +.(f +\**Actually, +the \*I of the final delta applied was 1.1. +.)f +and that it has 87 lines. +The file +.i prog.c +will be created +in the current directory. +The file will be read-only +to remind you that you are not +supposed to change it. +.pp +This copy of the file +should not be changed, +since \*S is unable +to merge the changes +back into the s-file. +If you do make changes, +they will be lost the next time +someone does a +.i get . +.sh 1 "Changing Files (or, Creating Deltas)" +.sh 2 "Getting a copy to edit" +.pp +To edit a source file, +you must first get it, +requesting permission to edit it\**: +.(f +\**The +.q "edit" +command is equivalent to using the \-e +flag to +.i "get" , +as: +.(l +sccs get \-e prog.c +.)l +Keep this in mind when reading other documentation. +.)f +.(b +sccs edit prog.c +.)b +The response will be the same as with +.i get +except that it will also say: +.(b +New delta 1.2 +.)b +You then edit it, +using a standard text editor: +.(b +vi prog.c +.)b +.sh 2 "Merging the changes back into the s-file" +.pp +When the desired changes are made, +you can put your changes into the +\*S +file using the +.i delta +command: +.(b +sccs delta prog.c +.)b +.pp +Delta will prompt you for +.q "comments?" +before it merges the changes in. +At this prompt you should type a one-line description +of what the changes mean +(more lines can be entered by ending each line +except the last with a backslash\**). +.(f +\**Yes, this is a stupid default. +.)f +.i Delta +will then type: +.(b +1.2 +5 inserted +3 deleted +84 unchanged +.)b +saying that delta 1.2 was created, +and it inserted five lines, +removed three lines, +and left 84 lines unchanged\**. +.(f +\**Changes to a line are counted as a line deleted +and a line inserted. +.)f +The +.i prog.c +file will be removed; +it can be retrieved +using +.i get . +.sh 2 "When to make deltas" +.pp +It is probably unwise to make a delta +before every recompilation or test; +otherwise, +you tend to get a lot of deltas with comments like +.q "fixed compilation problem in previous delta" +or +.q "fixed botch in 1.3" . +However, +it is very important to delta everything +before installing a module for general use. +A good technique is to edit the files you need, +make all necessary changes and tests, +compiling and editing as often as necessary +without making deltas. +When you are satisfied that you have a working version, +delta everything being edited, +re-get them, +and recompile everything. +.sh 2 "What's going on: the info command" +.pp +To find out what files where being edited, +you can use: +.(b +sccs info +.)b +to print out all the files being edited +and other information such as the name of the user +who did the edit. +Also, +the command: +.(b +sccs check +.)b +is nearly equivalent to the +.i info +command, +except that it is silent if nothing is being edited, +and returns non-zero exit status if anything is being edited; +it can be used in an +.q install +entry in a makefile +to abort the install +if anything has not been properly deltaed. +.pp +If you know that everything being edited should be deltaed, +you can use: +.(b +sccs delta \`sccs tell\` +.)b +The +.i tell +command is similar to +.i info +except that only the names of files being edited +are output, +one per line. +.pp +All of these commands take a +.b \-b +flag +to ignore +.q branches +(alternate versions, described later) +and the +.b \-u +flag to only give files being edited by you. +The +.b \-u +flag takes an optional +.i user +argument, +giving only files being edited by that user. +For example, +.(b +sccs info \-ujohn +.)b +gives a listing of files being edited by john. +.sh 2 "ID keywords" +.pp +Id keywords can be inserted into your file +that will be expanded automatically by +.i get . +For example, +a line such as: +.(b +static char SccsId[] = "%\&W\&%\et%\&G\&%"; +.)b +will be replaced with something like: +.(b +static char SccsId[] = "@\&(#)prog.c 1.2 08/29/80"; +.)b +This tells you +the name and version +of the source file +and the time the delta was created. +The string +.q "@\&(#)" +is a special string +which signals the beginning +of an +\*S +Id keyword. +.sh 3 "The what command" +.pp +To find out what version of a program +is being run, +use: +.(b +sccs what prog.c /usr/bin/prog +.)b +which will print all strings +it finds that +begin with +.q "@\&(#)" . +This works on all types of files, +including binaries and libraries. +For example, the above command will output something like: +.(b +prog.c: + prog.c 1.2 08/29/80 +/usr/bin/prog: + prog.c 1.1 02/05/79 +.)b +From this I can see +that the source that I have in prog.c +will not compile into the same version +as the binary in /usr/bin/prog. +.sh 3 "Where to put id keywords" +.pp +ID keywords can be inserted anywhere, +including in comments, +but +Id Keywords that are compiled into the object module +are especially useful, +since it lets you find out what version of +the object is being run, +as well as the source. +However, +there is a cost: +data space is used up to store +the keywords, +and on small address space machines +this may be prohibitive. +.pp +When you put id keywords into header files, +it is important that you assign them to different variables. +For example, you might use: +.(b +static char AccessSid[] = "%\&W\&% %\&G\&%"; +.)b +in the file +.i access.h +and: +.(b +static char OpsysSid[] = "%\&W\&% %\&G\&%"; +.)b +in the file +.i opsys.h . +Otherwise, +you will get compilation errors because +.q SccsId +is redefined. +The problem with this is that if the header file +is included by many modules that are loaded together, +the version number of that header file is included +in the object module many times; +you may find it more to your taste +to put id keywords in header files +in comments. +.sh 2 "Keeping \*I's consistent across files" +.pp +With some care, +it is possible to keep the \*I's consistent +in multi-file systems. +The trick here is to always +.i edit +all files +at once. +The changes can then be made +to whatever files are necessary +and then all files +(even those not changed) +are redeltaed. +This can be done fairly easily +by just specifying the name of the directory +that the \*S files are in: +.(b +sccs edit SCCS +.)b +which will +.i edit +all files in that directory. +To make the delta, use: +.(b +sccs delta SCCS +.)b +You will be prompted for comments only once. +.sh 2 "Creating new releases" +.pp +When you want to create a new release +of a program, +you can specify the release number you want to create +on the +.i edit +command. +For example: +.(b +sccs edit \-r2 prog.c +.)b +will cause the next delta to be in release two +(that is, +it will be numbered 2.1). +Future deltas will automatically be in release two. +To change the release number +of an entire system, +use: +.(b +sccs edit \-r2 SCCS +.)b +.sh 1 "Restoring Old Versions" +.sh 2 "Reverting to old versions" +.pp +Suppose that after delta 1.2 +was stable +you made and released a delta 1.3. +But this introduced a bug, +so you made a delta 1.4 to correct it. +But 1.4 was still buggy, +and you decided you wanted to go back +to the old version. +You could +revert to delta 1.2 +by choosing the \*I in a get: +.(b +sccs get \-r1.2 prog.c +.)b +This will produce a version of +.i prog.c +that is delta 1.2 +that can be reinstalled so that work can proceed. +.pp +In some cases you don't know +what the \*I of the delta you want is. +However, +you can revert to the version of the program +that was running as of a certain date +by using the +.b \-c +(cutoff) flag. +For example, +.(b +sccs get \-c800722120000 prog.c +.)b +will retrieve whatever version was current +as of July 22, 1980 +at 12:00 noon. +Trailing components can be stripped off +(defaulting to their highest legal value), +and punctuation can be inserted in the obvious +places; +for example, +the above line could be equivalently stated: +.(b +sccs get \-c"80/07/22 12:00:00" prog.c +.)b +.sh 2 "Selectively deleting old deltas" +.pp +Suppose that you later decided +that you liked the changes in delta 1.4, +but that delta 1.3 should be removed. +You could do this by +.i excluding +delta 1.3: +.(b +sccs edit \-x1.3 prog.c +.)b +When delta 1.5 is made, +it will include the changes made +in delta 1.4, +but will exclude the changes made +in delta 1.3. +You can exclude a range of deltas +using a dash. +For example, +if you want to get rid of 1.3 and 1.4 +you can use: +.(b +sccs edit \-x1.3\-1.4 prog.c +.)b +which will exclude all deltas from 1.3 to 1.4. +Alternatively, +.(b +sccs edit \-x1.3\-1 prog.c +.)b +will exclude a range of deltas +from 1.3 to the current highest delta in release 1. +.pp +In certain cases when using +.b \-x +(or +.b \-i ; +see below) +there will be conflicts +between versions; +for example, it may be necessary +to both include and delete +a particular line. +If this happens, +\*S always prints out a message +telling the range of lines effected; +these lines should then be examined very carefully +to see if the version \*S got +is ok. +.pp +Since each delta +(in the sense of +.q "a set of changes" ) +can be excluded at will, +that this makes it most useful +to put each semantically distinct change +into its own delta. +.sh 1 "Auditing Changes" +.sh 2 "The prt command" +.pp +When you created a delta, +you presumably gave a reason for the delta +to the +.q "comments?" +prompt. +To print out these comments later, +use: +.(b +sccs prt prog.c +.)b +This will produce +a report +for each delta +of the \*I, +time and date of creation, +user who created the delta, +number of lines inserted, deleted, and unchanged, +and the comments associated with the delta. +For example, the output of the above command might be: +.(b +D 1.2 80/08/29 12:35:31 bill 2 1 00005/00003/00084 +removed "-q" option +.sp \n(psu +D 1.1 79/02/05 00:19:31 eric 1 0 00087/00000/00000 +date and time created 80/06/10 00:19:31 by eric +.)b +.sh 2 "Finding why lines were inserted" +.pp +To find out +why you inserted lines, +you can get a copy of the file +with each line +preceded by the \*I that created it: +.(b +sccs get \-m prog.c +.)b +You can then find out +what this delta did +by printing the comments using +.i prt . +.pp +To find out what lines are associated with a particular delta +(\c +.i e.g. , +1.3), +use: +.(b +sccs get \-m \-p prog.c \(bv grep \'^1.3\' +.)b +The +.b \-p +flag causes \*S to output the generated source +to the standard output rather than to a file. +.sh 2 "Finding what changes you have made" +.pp +When you are editing a file, +you can find out what changes you have made using: +.(b +sccs diffs prog.c +.)b +Most of the ``diff'' flags can be used. +To pass the +.b \-c +flag, +use +.b \-C . +.pp +To compare two versions that are in deltas, +use: +.(b +sccs sccsdiff -r1.3 -r1.6 prog.c +.)b +to see the differences between delta 1.3 and delta 1.6. +.sh 1 "Shorthand Notations" +.pp +There are several sequences of commands that get +executed frequently. +.i Sccs +tries to make it easy to do these. +.sh 2 "Delget" +.pp +A frequent requirement is to make a delta of some file +and then get that file. +This can be done by using: +.(b +sccs delget prog.c +.)b +which is entirely equivalent to using: +.(b +sccs delta prog.c +sccs get prog.c +.)b +The +.q deledit +command is equivalent to +.q delget +except that the +.q edit +command is used +instead of the +.q get +command. +.sh 2 "Fix" +.pp +Frequently, there are small bugs +in deltas, +e.g., compilation errors, +for which there is no reason to maintain an audit trail. +To +.i replace +a delta, use: +.(b +sccs fix \-r1.4 prog.c +.)b +This will get a copy of delta 1.4 of prog.c for you to edit +and then delete delta 1.4 from the \*S file. +When you do a delta of prog.c, +it will be delta 1.4 again. +The \-r flag must be specified, +and the delta that is specified must be a leaf delta, +i.e., no other deltas may have been made subsequent +to the creation of that delta. +.sh 2 "Unedit" +.pp +If you found you edited a file +that you did not want to edit, +you can back out by using: +.(b +sccs unedit prog.c +.)b +.sh 2 "The \-d flag" +.pp +If you are working on a project +where the \*S code is in a directory somewhere, +you may be able to simplify things +by using a shell alias. +For example, +the alias: +.(b +alias syssccs sccs \-d/usr/src +.)b +will allow you to issue commands such as: +.(b +syssccs edit cmd/who.c +.)b +which will look for the file +.q "/usr/src/cmd/SCCS/who.c" . +The file +.q who.c +will always be created in your current directory +regardless of the value of the \-d flag. +.sh 1 "Using \*S on a Project" +.pp +Working on a project with several people +has its own set of special problems. +The main problem occurs when two people +modify a file at the same time. +\*S prevents this by locking an s-file +while it is being edited. +.pp +As a result, +files should not be reserved for editing +unless they are actually being edited at the time, +since this will prevent other people on the project +from making necessary changes. +For example, +a good scenario for working might be: +.(b +sccs edit a.c g.c t.c +vi a.c g.c t.c +# do testing of the (experimental) version +sccs delget a.c g.c t.c +sccs info +# should respond "Nothing being edited" +make install +.)b +.pp +As a general rule, +all source files should be deltaed +before installing the program for general use. +This will insure that it is possible +to restore any version in use at any time. +.sh 1 "Saving Yourself" +.sh 2 "Recovering a munged edit file" +.pp +Sometimes you may find +that you have destroyed or trashed +a file that you were trying to edit\**. +.(f +\**Or given up and decided to start over. +.)f +Unfortunately, +you can't just remove it +and re-\c +.i edit +it; +\*S keeps track +of the fact +that someone is trying to edit it, +so it won't let you do it again. +Neither can you just get it using +.i get , +since that would expand the Id keywords. +Instead, +you can say: +.(b +sccs get \-k prog.c +.)b +This will not expand the Id keywords, +so it is safe to do a delta +with it. +.pp +Alternately, +you can +.i unedit +and +.i edit +the file. +.sh 2 "Restoring the s-file" +.pp +In particularly bad circumstances, +the \*S file itself +may get munged. +The most common way this happens +is that it gets edited. +Since \*S keeps a checksum, +you will get errors every time you read the file. +To fix this checksum, use: +.(b +sccs admin \-z prog.c +.)b +.sh 1 "Using the Admin Command" +.pp +There are a number of parameters that can be set +using the +.i admin +command. +The most interesting of these are flags. +Flags can be added by using the +.b \-f +flag. +For example: +.(b +sccs admin \-fd1 prog.c +.)b +sets the +.q d +flag to the value +.q 1 . +This flag can be deleted by using: +.(b +sccs admin \-dd prog.c +.)b +The most useful flags are: +.nr ii 7n +.ip "b" +Allow branches to be made using the +\-b +flag to +.i edit . +.ip "d\fISID\fP" +Default \*I to be used on a +.i get +or +.i edit . +If this is just a release number +it constrains the +version +to a particular release only. +.ip "i" +Give a fatal error +if there are no Id Keywords in a file. +This is useful to guarantee that a version of the +file does not get merged into the s-file +that has the Id Keywords inserted as constants +instead of internal forms. +.ip "y" +The +.q type +of the module. +Actually, +the value of this flag is unused by \*S +except that it replaces the +.b %\&Y\&% +keyword. +.pp +The +.b \-t\fIfile\fR +flag can be used +to store descriptive text +from +.i file . +This descriptive text might be the documentation +or a design and implementation document. +Using the +.b \-t +flag insures that if the \*S file is sent, +the documentation will be sent also. +If +.i file +is omitted, +the descriptive text is deleted. +To see the descriptive text, +use +.q "prt \-t" . +.pp +The +.i admin +command can be used safely +any number of times on files. +A file need not be gotten +for +.i admin +to work. +.sh 1 "Maintaining Different Versions (Branches)" +.pp +Sometimes it is convenient +to maintain an experimental version of a program +for an extended period +while normal maintenance continues +on the version in production. +This can be done using a +.q branch. +Normally deltas continue in a straight line, +each depending on the delta before. +Creating a branch +.q "forks off" +a version of the program. +.pp +The ability to create branches +must be enabled in advance using: +.(b +sccs admin \-fb prog.c +.)b +The +.b \-fb +flag can be specified when the +\*S file is first created. +.sh 2 "Creating a branch" +.pp +To create a branch, use: +.(b +sccs edit \-b prog.c +.)b +This will create a branch +with (for example) \*I 1.5.1.1. +The deltas for this version +will be numbered +1.5.1.\c +.i n . +.sh 2 "Getting from a branch" +.pp +Deltas in a branch are normally not included +when you do a get. +To get these versions, +you will have to say: +.(b +sccs get \-r1.5.1 prog.c +.)b +.sh 2 "Merging a branch back into the main trunk" +.pp +At some point you will have finished the experiment, +and if it was successful +you will want to incorporate it into the release version. +But in the meantime +someone may have created a delta 1.6 +that you don't want to lose. +The commands: +.(b +sccs edit \-i1.5.1.1\-1.5.1 prog.c +sccs delta prog.c +.)b +will merge all of your changes +into the release system. +If some of the changes conflict, +get will print an error; +the generated result +should be carefully examined +before the delta is made. +.sh 2 "A more detailed example" +.pp +The following technique might be used +to maintain a different version of a program. +First, +create a directory to contain the new version: +.(b +mkdir ../newxyz +cd ../newxyz +.)b +Edit a copy of the program +on a branch: +.(b +sccs \-d../xyz edit prog.c +.)b +When using the old version, +be sure to use the +.b \-b +flag to info, check, tell, and clean +to avoid confusion. +For example, use: +.(b +sccs info \-b +.)b +when in the directory +.q xyz . +.pp +If you want to save a copy of the program +(still on the branch) +back in the s-file, +you can use: +.(b +sccs -d../xyz deledit prog.c +.)b +which will do a delta on the branch +and reedit it for you. +.pp +When the experiment is complete, merge it back into the s-file +using delta: +.(b +sccs -d../xyz delta prog.c +.)b +At this point you must decide whether this version +should be merged back into the trunk +(\c +.i i.e. +the default version), +which may have undergone changes. +If so, it can be merged using the +.b \-i +flag to +.i edit +as described above. +.sh 2 "A warning" +.pp +Branches should be kept to a minimum. +After the first branch from the trunk, +\*I's are assigned rather haphazardly, +and the structure gets complex fast. +.sh 1 "Using \*S with Make" +.pp +\*S and make can be made to work together +with a little care. +A few sample makefiles +for common applications are shown. +.pp +There are a few basic entries that every makefile +ought to have. +These are: +.nr ii 1i +.ip a.out +(or whatever the makefile generates.) +This entry regenerates whatever this makefile is +supposed to regenerate. +If the makefile regenerates many things, +this should be called +.q all +and should in turn +have dependencies on everything +the makefile can generate. +.ip install +Moves the objects to the final +resting place, +doing any special +.i chmod 's +or +.i ranlib 's +as appropriate. +.ip sources +Creates all the source files from \*S files. +.ip clean +Removes all files from the current directory +that can be regenerated from \*S files. +.ip print +Prints the contents of the directory. +.lp +The examples shown below are only partial examples, +and may omit some of these entries +when they are deemed to be obvious. +.pp +The +.i clean +entry should not remove files that can be +regenerated from the \*S files. +It is sufficiently important to have the +source files around at all times +that the only time they should be removed +is when the directory is being mothballed. +To do this, the command: +.(b +sccs clean +.)b +can be used. +This will remove all files for which an s-file +exists, +but which is not being edited. +.sh 2 "To maintain single programs" +.pp +Frequently there are directories with several +largely unrelated programs +(such as simple commands). +These can be put into a single makefile: +.(b +LDFLAGS= \-i \-s +.sp \n(psu +prog: prog.o + $(CC) $(LDFLAGS) \-o prog prog.o +prog.o: prog.c prog.h +.sp \n(psu +example: example.o + $(CC) $(LDFLAGS) \-o example example.o +example.o: example.c +.sp \n(psu +\&.DEFAULT: + sccs get $< +.)b +The trick here +is that the .DEFAULT rule +is called every time +something is needed +that does not exist, +and no other rule exists to make it. +The explicit dependency of the +.b \&.o +file on the +.b \&.c +file is important. +Another way of doing the same thing is: +.(b +SRCS= prog.c prog.h example.c +.sp \n(psu +LDFLAGS= \-i \-s +.sp \n(psu +prog: prog.o + $(CC) $(LDFLAGS) \-o prog prog.o +prog.o: prog.h +.sp \n(psu +example: example.o + $(CC) $(LDFLAGS) \-o example example.o +.sp \n(psu +sources: $(SRCS) +$(SRCS): + sccs get $@ +.)b +There are a couple of advantages to this approach: +(1) the explicit dependencies of the .o on the .c files are +not needed, +(2) there is an entry called "sources" so if you want to get +all the sources you can just say +.q "make sources" , +and +(3) the makefile is less likely to do confusing things +since it won't try to +.i get +things that do not exist. +.sh 2 "To maintain a library" +.pp +Libraries that are largely static +are best updated using explicit commands, +since +.i make +doesn't know about updating them properly. +However, +libraries that are in the process of being developed +can be handled quite adequately. +The problem is that the .o files +have to be kept out of the library +as well as in the library. +.(b +# configuration information +OBJS= a.o b.o c.o d.o +SRCS= a.c b.c c.c d.s x.h y.h z.h +TARG= /usr/lib +.sp \n(psu +# programs +GET= sccs get +REL= +AR= \-ar +RANLIB= ranlib +.sp \n(psu +lib.a: $(OBJS) + $(AR) rvu lib.a $(OBJS) + $(RANLIB) lib.a +.sp \n(psu +install: lib.a + sccs check + cp lib.a $(TARG)/lib.a + $(RANLIB) $(TARG)/lib.a +.sp \n(psu +sources: $(SRCS) +$(SRCS): + $(GET) $(REL) $@ +.sp \n(psu +print: sources + pr *.h *.[cs] +clean: + rm \-f *.o + rm \-f core a.out $(LIB) +.)b +.pp +The +.q "$(REL)" +in the get +can be used to get old versions +easily; for example: +.(b +make b.o REL=\-r1.3 +.)b +.pp +The +.i install +entry includes the line +.q "sccs check" +before anything else. +This guarantees that all the s-files +are up to date +(\c +.i i.e. , +nothing is being edited), +and will abort the +.i make +if this condition is not met. +.sh 2 "To maintain a large program" +.(b +OBJS= a.o b.o c.o d.o +SRCS= a.c b.c c.y d.s x.h y.h z.h +.sp \n(psu +GET= sccs get +REL= +.sp \n(psu +a.out: $(OBJS) + $(CC) $(LDFLAGS) $(OBJS) $(LIBS) +.sp \n(psu +sources: $(SRCS) +$(SRCS): + $(GET) $(REL) $@ +.)b +(The +.i print +and +.i clean +entries are identical to the previous case.) +This makefile requires copies of the source and object files +to be kept during development. +It is probably also wise to include lines of the form: +.(b +a.o: x.h y.h +b.o: z.h +c.o: x.h y.h z.h +z.h: x.h +.)b +so that modules will be recompiled +if header files change. +.pp +Since +.i make +does not do transitive closure on dependencies, +you may find in some makefiles lines like: +.(b +z.h: x.h + touch z.h +.)b +This would be used in cases where file z.h +has a line: +.(b +#include "x.h" +.)b +in order to bring the mod date of z.h in line +with the mod date of x.h. +When you have a makefile such as above, +the +.i touch +command can be removed completely; +the equivalent effect will be achieved +by doing an automatic +.i get +on z.h. +.sh 1 "Further Information" +.pp +The +.i "SCCS/PWB User's Manual" +gives a deeper description +of how to use \*S. +Of particular interest +are the numbering of branches, +the l-file, +which gives a description of what deltas were used on a get, +and certain other \*S commands. +.pp +The \*S manual pages +are a good last resort. +These should be read by software managers +and by people who want to know +everything about everything. +.pp +Both of these documents were written without the +.i sccs +front end in mind, +so most of the examples are slightly different from those +in this document. +.bp +.sz 12 +.ce +.b "Quick Reference" +.sz +.sp 2 +.sh 1 Commands 1 +.pp +The following commands should all be preceded with +.q sccs . +This list is not exhaustive; +for more options see +.i "Further Information" . +.ip get 9n +Gets files for compilation (not for editing). +Id keywords are expanded. +.ba 9n +.nr ii 8n +.ip \-r\fI\*I\fP +Version to get. +.ip \-p +Send to standard output rather than to the actual file. +.ip \-k +Don't expand id keywords. +.ip \-i\fIlist\fP +List of deltas to include. +.ip \-x\fIlist\fP +List of deltas to exclude. +.ip \-m +Precede each line with \*I of creating delta. +.ip \-c\fIdate\fP +Don't apply any deltas created after +.i date. +.ba +.ip edit 9n +Gets files for editing. +Id keywords are not expanded. +Should be matched with a +.i delta +command. +.ba 9n +.nr ii 8n +.ip \-r\fI\*I\fP +Same as +.i get . +If +.i \*I +specifies a release that does not yet exist, +the highest numbered delta is retrieved +and the new delta is numbered with +.i \*I . +.ip \-b +Create a branch. +.ip \-i\fIlist\fP +Same as +.i get . +.ip \-x\fIlist\fP +Same as +.i get . +.ba +.ip delta 9n +Merge a file gotten using +.i edit +back into the s-file. +Collect comments about why this delta was made. +.ip unedit 9n +Remove a file that has been edited previously +without merging the changes into the s-file. +.ip prt 9n +Produce a report of changes. +.ba 9n +.nr ii 5n +.ip \-t +Print the descriptive text. +.ip \-e +Print (nearly) everything. +.ba +.ip info 9n +Give a list of all files being edited. +.ba 9n +.nr ii 5n +.ip \-b +Ignore branches. +.ip \-u[\fIuser\fP] +Ignore files not being edited by +.i user . +.ba +.ip check 9n +Same as +.i info , +except that nothing is printed if nothing is being edited +and exit status is returned. +.ip tell 9n +Same as +.i info , +except that one line is produced per file being edited containing +only the file name. +.ip clean 9n +Remove all files that can be regenerated from the +s-file. +.ip what 9n +Find and print id keywords. +.ip admin 9n +Create or set parameters on s-files. +.ba 9n +.nr ii 8n +.ip \-i\fIfile\fP +Create, using +.i file +as the initial contents. +.ip \-z +Rebuild the checksum in case +the file has been trashed. +.ip \-f\fIflag\fP +Turn on the +.i flag . +.ip \-d\fIflag\fP +Turn off (delete) the +.i flag . +.ip \-t\fIfile\fP +Replace the descriptive text +in the s-file with the contents of +.i file . +If +.i file +is omitted, +the text is deleted. +Useful for storing documentation +or +.q "design & implementation" +documents to insure they get distributed with the +s-file. +.lp +Useful flags are: +.ip b +Allow branches to be made using the \-b flag to +.i edit. +.ip d\fI\*I\fP +Default \*I to be used +on a +.i get +or +.i edit . +.ip i +Cause +.q "No Id Keywords" +error message +to be a fatal error rather than a warning. +.ip t +The module +.q type ; +the value of this flag replaces the +.b %\&Y\&% +keyword. +.ba +.ip fix 9n +Remove a delta and reedit it. +.ip delget 9n +Do a +.i delta +followed by a +.i get . +.ip deledit 9n +Do a +.i delta +followed by an +.i edit . +.sh 1 "Id Keywords" +.nr ii 6n +.ip "%\&Z\&%" +Expands to +.q @\&(#) +for the +.i what +command to find. +.ip "%\&M\&%" +The current module name, +.i e.g., +.q prog.c . +.ip "%\&I\&%" +The highest \*I applied. +.ip "%\&W\&%" +A shorthand for +.q "%\&Z\&%%\&M\&% %\&I\&%" . +.ip "%\&G\&%" +The date of the delta +corresponding to the +.q "%\&I\&%" +keyword. +.ip "%\&R\&%" +The current release number, +.i i.e. , +the first component of the +.q "%\&I\&%" +keyword. +.ip "%\&Y\&%" +Replaced by the value of the +.b t +flag +(set by +.i admin ). diff --git a/doc/ps1/14.sccs/spell.ok b/doc/ps1/14.sccs/spell.ok new file mode 100644 index 00000000..fb2fe247 --- /dev/null +++ b/doc/ps1/14.sccs/spell.ok @@ -0,0 +1,77 @@ +AccessSid +Admin +Allman +Berkeley.Edu +Delget +Ingres +LDFLAGS +LIB +LIBS +OBJS +OpsysSid +PS1:14 +PWB +REL +SCCS +SID +SRCS +Sccs +SccsId +System''PS1:14 +TARG +a.c +a.o +a.out +access.h +admin +b.c +b.o +backslash +bi +c.c +c.o +c.y +ch +cm7 +cmd +cs +d.o +d.s +deledit +delget +eric +example.c +example.o +fb +fd1 +foreach +g.c +info +inline +john +lib +lib.a +makefile +makefiles +mod +mothballed +newxyz +ok +opsys.h +prog +prog.c +prog.h +prog.o +prt +rvu +sccs +sccsdiff +src +syssccs +t.c +ujohn +who.c +x.h +xyz +y.h +z.h diff --git a/doc/ps1/15.yacc/Makefile b/doc/ps1/15.yacc/Makefile new file mode 100644 index 00000000..fcd6e4b3 --- /dev/null +++ b/doc/ps1/15.yacc/Makefile @@ -0,0 +1,26 @@ +# +# Copyright (c) 1986 Regents of the University of California. +# All rights reserved. The Berkeley software License Agreement +# specifies the terms and conditions for redistribution. +# +# @(#)Makefile 6.1 (Berkeley) 5/8/86 +# +SRCS= ss.. ss0 ss1 ss2 ss3 ss4 ss5 ss6 ss7 ss8 ss9 ssA ssB ssa ssb ssc ssd +MACROS= -msU +PRINTER=Pdp +REFER= refer -e -p /usr/doc/run/Ind +TROFF= ditroff -${PRINTER} + +paper: paper.${PRINTER} + lpr -${PRINTER} -n paper.${PRINTER} + +paper.${PRINTER}: ${SRCS} + ${REFER} ${SRCS} | ${TROFF} ${MACROS} -t > paper.${PRINTER} + +clean: + rm -f paper.[PT]* *.spell errs Errs make.out + +spell: ${SRCS} + @for i in ${SRCS}; do \ + echo $$i; spell $$i | sort | comm -23 - spell.ok > $$i.spell; \ + done diff --git a/doc/ps1/15.yacc/ss.. b/doc/ps1/15.yacc/ss.. new file mode 100644 index 00000000..f5e42fb0 --- /dev/null +++ b/doc/ps1/15.yacc/ss.. @@ -0,0 +1,56 @@ +.\" @(#)ss.. 6.1 (Berkeley) 5/8/86 +.\" +.EH 'PS1:15-%''Yacc: Yet Another Compiler-Compiler' +.OH 'Yacc: Yet Another Compiler-Compiler''PS1:15-%' +.\".RP +.ND "July 31, 1978" +.TL +Yacc: +Yet Another Compiler-Compiler +.AU "MH 2C-559" 3968 +Stephen C. Johnson +.AI +.MH +.AB +.PP +Computer program input generally has some structure; +in fact, every computer program that does input can be thought of as defining +an ``input language'' which it accepts. +An input language may be as complex as a programming language, or as simple as +a sequence of numbers. +Unfortunately, usual input facilities +are limited, difficult to use, +and often are lax about checking their inputs for validity. +.PP +Yacc provides a general tool for describing +the input to a computer program. +The Yacc user specifies the structures +of his input, together with code to be invoked as +each such structure is recognized. +Yacc turns such a specification into a subroutine that +handles the input process; +frequently, it is convenient and appropriate to have most +of the flow of control in the user's application +handled by this subroutine. +.PP +The input subroutine produced by Yacc calls a user-supplied routine to +return the next basic input item. +Thus, the user can specify his input in terms of individual input characters, or +in terms of higher level constructs such as names and numbers. +The user-supplied routine may also handle idiomatic features such as +comment and continuation conventions, which typically defy easy grammatical specification. +.PP +Yacc is written in portable C. +The class of specifications accepted is a very general one: LALR(1) +grammars with disambiguating rules. +.PP +In addition to compilers for C, APL, Pascal, RATFOR, etc., Yacc +has also been used for less conventional languages, +including a phototypesetter language, several desk calculator languages, a document retrieval system, +and a Fortran debugging system. +.AE +.OK +.\"Computer Languages +.\"Compilers +.\"Formal Language Theory +.CS 23 11 34 0 0 8 diff --git a/doc/ps1/15.yacc/ss0 b/doc/ps1/15.yacc/ss0 new file mode 100644 index 00000000..332a8861 --- /dev/null +++ b/doc/ps1/15.yacc/ss0 @@ -0,0 +1,201 @@ +.\" @(#)ss0 6.1 (Berkeley) 5/8/86 +.\" +.SH +0: Introduction +.PP +Yacc provides a general tool for imposing structure on the input to a computer program. +The Yacc user prepares a +specification of the input process; this includes rules +describing the input structure, code to be invoked when these +rules are recognized, and a low-level routine to do the +basic input. +Yacc then generates a function to control the input process. +This function, called a +.I parser , +calls the user-supplied low-level input routine +(the +.I "lexical analyzer" ) +to pick up the basic items +(called +.I tokens ) +from the input stream. +These tokens are organized according to the input structure rules, +called +.I "grammar rules" \|; +when one of these rules has been recognized, +then user code supplied for this rule, an +.I action , +is invoked; actions have the ability to return values and +make use of the values of other actions. +.PP +Yacc is written in a portable dialect of C +.[ +Ritchie Kernighan Language Prentice +.] +and the actions, and output subroutine, are in C as well. +Moreover, many of the syntactic conventions of Yacc follow C. +.PP +The heart of the input specification is a collection of grammar rules. +Each rule describes an allowable structure and gives it a name. +For example, one grammar rule might be +.DS +date : month\_name day \',\' year ; +.DE +Here, +.I date , +.I month\_name , +.I day , +and +.I year +represent structures of interest in the input process; +presumably, +.I month\_name , +.I day , +and +.I year +are defined elsewhere. +The comma ``,'' is enclosed in single quotes; this implies that the +comma is to appear literally in the input. +The colon and semicolon merely serve as punctuation in the rule, and have +no significance in controlling the input. +Thus, with proper definitions, the input +.DS +July 4, 1776 +.DE +might be matched by the above rule. +.PP +An important part of the input process is carried out by the +lexical analyzer. +This user routine reads the input stream, recognizing the lower level structures, +and communicates these tokens +to the parser. +For historical reasons, a structure recognized by the lexical analyzer is called a +.I "terminal symbol" , +while the structure recognized by the parser is called a +.I "nonterminal symbol" . +To avoid confusion, terminal symbols will usually be referred to as +.I tokens . +.PP +There is considerable leeway in deciding whether to recognize structures using the lexical +analyzer or grammar rules. +For example, the rules +.DS +month\_name : \'J\' \'a\' \'n\' ; +month\_name : \'F\' \'e\' \'b\' ; + + . . . + +month\_name : \'D\' \'e\' \'c\' ; +.DE +might be used in the above example. +The lexical analyzer would only need to recognize individual letters, and +.I month\_name +would be a nonterminal symbol. +Such low-level rules tend to waste time and space, and may +complicate the specification beyond Yacc's ability to deal with it. +Usually, the lexical analyzer would +recognize the month names, +and return an indication that a +.I month\_name +was seen; in this case, +.I month\_name +would be a token. +.PP +Literal characters such as ``,'' must also be passed through the lexical +analyzer, and are also considered tokens. +.PP +Specification files are very flexible. +It is realively easy to add to the above example the rule +.DS +date : month \'/\' day \'/\' year ; +.DE +allowing +.DS +7 / 4 / 1776 +.DE +as a synonym for +.DS +July 4, 1776 +.DE +In most cases, this new rule could be ``slipped in'' to a working system with minimal effort, +and little danger of disrupting existing input. +.PP +The input being read may not conform to the +specifications. +These input errors are detected as early as is theoretically possible with a +left-to-right scan; +thus, not only is the chance of reading and computing with bad +input data substantially reduced, but the bad data can usually be quickly found. +Error handling, +provided as part of the input specifications, +permits the reentry of bad data, +or the continuation of the input process after skipping over the bad data. +.PP +In some cases, Yacc fails to produce a parser when given a set of +specifications. +For example, the specifications may be self contradictory, or they may +require a more powerful recognition mechanism than that available to Yacc. +The former cases represent design errors; +the latter cases +can often be corrected +by making +the lexical analyzer +more powerful, or by rewriting some of the grammar rules. +While Yacc cannot handle all possible specifications, its power +compares favorably with similar systems; +moreover, the +constructions which are difficult for Yacc to handle are +also frequently difficult for human beings to handle. +Some users have reported that the discipline of formulating valid +Yacc specifications for their input revealed errors of +conception or design early in the program development. +.PP +The theory underlying Yacc has been described elsewhere. +.[ +Aho Johnson Surveys LR Parsing +.] +.[ +Aho Johnson Ullman Ambiguous Grammars +.] +.[ +Aho Ullman Principles Compiler Design +.] +Yacc has been extensively used in numerous practical applications, +including +.I lint , +.[ +Johnson Lint +.] +the Portable C Compiler, +.[ +Johnson Portable Compiler Theory +.] +and a system for typesetting mathematics. +.[ +Kernighan Cherry typesetting system CACM +.] +.PP +The next several sections describe the +basic process of preparing a Yacc specification; +Section 1 describes the preparation of grammar rules, +Section 2 the preparation of the user supplied actions associated with these rules, +and Section 3 the preparation of lexical analyzers. +Section 4 describes the operation of the parser. +Section 5 discusses various reasons why Yacc may be unable to produce a +parser from a specification, and what to do about it. +Section 6 describes a simple mechanism for +handling operator precedences in arithmetic expressions. +Section 7 discusses error detection and recovery. +Section 8 discusses the operating environment and special features +of the parsers Yacc produces. +Section 9 gives some suggestions which should improve the +style and efficiency of the specifications. +Section 10 discusses some advanced topics, and Section 11 gives +acknowledgements. +Appendix A has a brief example, and Appendix B gives a +summary of the Yacc input syntax. +Appendix C gives an example using some of the more advanced +features of Yacc, and, finally, +Appendix D describes mechanisms and syntax +no longer actively supported, but +provided for historical continuity with older versions of Yacc. diff --git a/doc/ps1/15.yacc/ss1 b/doc/ps1/15.yacc/ss1 new file mode 100644 index 00000000..6181b776 --- /dev/null +++ b/doc/ps1/15.yacc/ss1 @@ -0,0 +1,138 @@ +.\" @(#)ss1 6.1 (Berkeley) 5/8/86 +.\" +.tr *\(** +.tr |\(or +.SH +1: Basic Specifications +.PP +Names refer to either tokens or nonterminal symbols. +Yacc requires +token names to be declared as such. +In addition, for reasons discussed in Section 3, it is often desirable +to include the lexical analyzer as part of the specification file; +it may be useful to include other programs as well. +Thus, every specification file consists of three sections: +the +.I declarations , +.I "(grammar) rules" , +and +.I programs . +The sections are separated by double percent ``%%'' marks. +(The percent ``%'' is generally used in Yacc specifications as an escape character.) +.PP +In other words, a full specification file looks like +.DS +declarations +%% +rules +%% +programs +.DE +.PP +The declaration section may be empty. +Moreover, if the programs section is omitted, the second %% mark may be omitted also; +thus, the smallest legal Yacc specification is +.DS +%% +rules +.DE +.PP +Blanks, tabs, and newlines are ignored except +that they may not appear in names or multi-character reserved symbols. +Comments may appear wherever a name is legal; they are enclosed +in /* . . . */, as in C and PL/I. +.PP +The rules section is made up of one or more grammar rules. +A grammar rule has the form: +.DS +A : BODY ; +.DE +A represents a nonterminal name, and BODY represents a sequence of zero or more names and literals. +The colon and the semicolon are Yacc punctuation. +.PP +Names may be of arbitrary length, and may be made up of letters, dot ``.'', underscore ``\_'', and +non-initial digits. +Upper and lower case letters are distinct. +The names used in the body of a grammar rule may represent tokens or nonterminal symbols. +.PP +A literal consists of a character enclosed in single quotes ``\'''. +As in C, the backslash ``\e'' is an escape character within literals, and all the C escapes +are recognized. +Thus +.DS +\'\en\' newline +\'\er\' return +\'\e\'\' single quote ``\''' +\'\e\e\' backslash ``\e'' +\'\et\' tab +\'\eb\' backspace +\'\ef\' form feed +\'\exxx\' ``xxx'' in octal +.DE +For a number of technical reasons, the +\s-2NUL\s0 +character (\'\e0\' or 0) should never +be used in grammar rules. +.PP +If there are several grammar rules with the same left hand side, the vertical bar ``|'' +can be used to avoid rewriting the left hand side. +In addition, +the semicolon at the end of a rule can be dropped before a vertical bar. +Thus the grammar rules +.DS +A : B C D ; +A : E F ; +A : G ; +.DE +can be given to Yacc as +.DS +A : B C D + | E F + | G + ; +.DE +It is not necessary that all grammar rules with the same left side appear together in the grammar rules section, +although it makes the input much more readable, and easier to change. +.PP +If a nonterminal symbol matches the empty string, this can be indicated in the obvious way: +.DS +empty : ; +.DE +.PP +Names representing tokens must be declared; this is most simply done by writing +.DS +%token name1 name2 . . . +.DE +in the declarations section. +(See Sections 3 , 5, and 6 for much more discussion). +Every name not defined in the declarations section is assumed to represent a nonterminal symbol. +Every nonterminal symbol must appear on the left side of at least one rule. +.PP +Of all the nonterminal symbols, one, called the +.I "start symbol" , +has particular importance. +The parser is designed to recognize the start symbol; thus, +this symbol represents the largest, +most general structure described by the grammar rules. +By default, +the start symbol is taken to be the left hand side of the first +grammar rule in the rules section. +It is possible, and in fact desirable, to declare the start +symbol explicitly in the declarations section using the %start keyword: +.DS +%start symbol +.DE +.PP +The end of the input to the parser is signaled by a special token, called the +.I endmarker . +If the tokens up to, but not including, the endmarker form a structure +which matches the start symbol, the parser function returns to its caller +after the endmarker is seen; it +.I accepts +the input. +If the endmarker is seen in any other context, it is an error. +.PP +It is the job of the user-supplied lexical analyzer +to return the endmarker when appropriate; see section 3, below. +Usually the endmarker represents some reasonably obvious +I/O status, such as ``end-of-file'' or ``end-of-record''. diff --git a/doc/ps1/15.yacc/ss2 b/doc/ps1/15.yacc/ss2 new file mode 100644 index 00000000..0306b082 --- /dev/null +++ b/doc/ps1/15.yacc/ss2 @@ -0,0 +1,151 @@ +.\" @(#)ss2 6.1 (Berkeley) 5/8/86 +.\" +.SH +2: Actions +.PP +With each grammar rule, the user may associate actions to be performed each time +the rule is recognized in the input process. +These actions may return values, and may obtain the values returned by previous +actions. +Moreover, the lexical analyzer can return values +for tokens, if desired. +.PP +An action is an arbitrary C statement, and as such can do +input and output, call subprograms, and alter +external vectors and variables. +An action is specified by +one or more statements, enclosed in curly braces ``{'' and ``}''. +For example, +.DS +A : \'(\' B \')\' + { hello( 1, "abc" ); } +.DE +and +.DS +XXX : YYY ZZZ + { printf("a message\en"); + flag = 25; } +.DE +are grammar rules with actions. +.PP +To facilitate easy communication between the actions and the parser, the action statements are altered +slightly. +The symbol ``dollar sign'' ``$'' is used as a signal to Yacc in this context. +.PP +To return a value, the action normally sets the +pseudo-variable ``$$'' to some value. +For example, an action that does nothing but return the value 1 is +.DS + { $$ = 1; } +.DE +.PP +To obtain the values returned by previous actions and the lexical analyzer, the +action may use the pseudo-variables $1, $2, . . ., +which refer to the values returned by the +components of the right side of a rule, reading from left to right. +Thus, if the rule is +.DS +A : B C D ; +.DE +for example, then $2 has the value returned by C, and $3 the value returned by D. +.PP +As a more concrete example, consider the rule +.DS +expr : \'(\' expr \')\' ; +.DE +The value returned by this rule is usually the value of the +.I expr +in parentheses. +This can be indicated by +.DS +expr : \'(\' expr \')\' { $$ = $2 ; } +.DE +.PP +By default, the value of a rule is the value of the first element in it ($1). +Thus, grammar rules of the form +.DS +A : B ; +.DE +frequently need not have an explicit action. +.PP +In the examples above, all the actions came at the end of their rules. +Sometimes, it is desirable to get control before a rule is fully parsed. +Yacc permits an action to be written in the middle of a rule as well +as at the end. +This rule is assumed to return a value, accessible +through the usual \$ mechanism by the actions to +the right of it. +In turn, it may access the values +returned by the symbols to its left. +Thus, in the rule +.DS +A : B + { $$ = 1; } + C + { x = $2; y = $3; } + ; +.DE +the effect is to set +.I x +to 1, and +.I y +to the value returned by C. +.PP +Actions that do not terminate a rule are actually +handled by Yacc by manufacturing a new nonterminal +symbol name, and a new rule matching this +name to the empty string. +The interior action is the action triggered off by recognizing +this added rule. +Yacc actually treats the above example as if +it had been written: +.DS +$ACT : /* empty */ + { $$ = 1; } + ; + +A : B $ACT C + { x = $2; y = $3; } + ; +.DE +.PP +In many applications, output is not done directly by the actions; +rather, a data structure, such as a parse tree, is constructed in memory, +and transformations are applied to it before output is generated. +Parse trees are particularly easy to +construct, given routines to build and maintain the tree +structure desired. +For example, suppose there is a C function +.I node , +written so that the call +.DS +node( L, n1, n2 ) +.DE +creates a node with label L, and descendants n1 and n2, and returns the index of +the newly created node. +Then parse tree can be built by supplying actions such as: +.DS +expr : expr \'+\' expr + { $$ = node( \'+\', $1, $3 ); } +.DE +in the specification. +.PP +The user may define other variables to be used by the actions. +Declarations and definitions can appear in +the declarations section, +enclosed in the marks ``%{'' and ``%}''. +These declarations and definitions have global scope, +so they are known to the action statements and the lexical analyzer. +For example, +.DS +%{ int variable = 0; %} +.DE +could be placed in the declarations section, +making +.I variable +accessible to all of the actions. +The Yacc parser uses only names beginning in ``yy''; +the user should avoid such names. +.PP +In these examples, all the values are integers: a discussion of +values of other types will be found in Section 10. diff --git a/doc/ps1/15.yacc/ss3 b/doc/ps1/15.yacc/ss3 new file mode 100644 index 00000000..3299119c --- /dev/null +++ b/doc/ps1/15.yacc/ss3 @@ -0,0 +1,104 @@ +.\" @(#)ss3 6.1 (Berkeley) 5/8/86 +.\" +.SH +3: Lexical Analysis +.PP +The user must supply a lexical analyzer to read the input stream and communicate tokens +(with values, if desired) to the parser. +The lexical analyzer is an integer-valued function called +.I yylex . +The function returns an integer, the +.I "token number" , +representing the kind of token read. +If there is a value associated with that token, it should be assigned +to the external variable +.I yylval . +.PP +The parser and the lexical analyzer must agree on these token numbers in order for +communication between them to take place. +The numbers may be chosen by Yacc, or chosen by the user. +In either case, the ``# define'' mechanism of C is used to allow the lexical analyzer +to return these numbers symbolically. +For example, suppose that the token name DIGIT has been defined in the declarations section of the +Yacc specification file. +The relevant portion of the lexical analyzer might look like: +.DS +yylex(){ + extern int yylval; + int c; + . . . + c = getchar(); + . . . + switch( c ) { + . . . + case \'0\': + case \'1\': + . . . + case \'9\': + yylval = c\-\'0\'; + return( DIGIT ); + . . . + } + . . . +.DE +.PP +The intent is to return a token number of DIGIT, and a value equal to the numerical value of the +digit. +Provided that the lexical analyzer code is placed in the programs section of the specification file, +the identifier DIGIT will be defined as the token number associated +with the token DIGIT. +.PP +This mechanism leads to clear, +easily modified lexical analyzers; the only pitfall is the need +to avoid using any token names in the grammar that are reserved +or significant in C or the parser; for example, the use of +token names +.I if +or +.I while +will almost certainly cause severe +difficulties when the lexical analyzer is compiled. +The token name +.I error +is reserved for error handling, and should not be used naively +(see Section 7). +.PP +As mentioned above, the token numbers may be chosen by Yacc or by the user. +In the default situation, the numbers are chosen by Yacc. +The default token number for a literal +character is the numerical value of the character in the local character set. +Other names are assigned token numbers +starting at 257. +.PP +To assign a token number to a token (including literals), +the first appearance of the token name or literal +.I +in the declarations section +.R +can be immediately followed by +a nonnegative integer. +This integer is taken to be the token number of the name or literal. +Names and literals not defined by this mechanism retain their default definition. +It is important that all token numbers be distinct. +.PP +For historical reasons, the endmarker must have token +number 0 or negative. +This token number cannot be redefined by the user; thus, all +lexical analyzers should be prepared to return 0 or negative as a token number +upon reaching the end of their input. +.PP +A very useful tool for constructing lexical analyzers is +the +.I Lex +program developed by Mike Lesk. +.[ +Lesk Lex +.] +These lexical analyzers are designed to work in close +harmony with Yacc parsers. +The specifications for these lexical analyzers +use regular expressions instead of grammar rules. +Lex can be easily used to produce quite complicated lexical analyzers, +but there remain some languages (such as FORTRAN) which do not +fit any theoretical framework, and whose lexical analyzers +must be crafted by hand. diff --git a/doc/ps1/15.yacc/ss4 b/doc/ps1/15.yacc/ss4 new file mode 100644 index 00000000..540fdf8b --- /dev/null +++ b/doc/ps1/15.yacc/ss4 @@ -0,0 +1,330 @@ +.\" @(#)ss4 6.1 (Berkeley) 5/8/86 +.\" +.SH +4: How the Parser Works +.PP +Yacc turns the specification file into a C program, which +parses the input according to the specification given. +The algorithm used to go from the +specification to the parser is complex, and will not be discussed +here (see +the references for more information). +The parser itself, however, is relatively simple, +and understanding how it works, while +not strictly necessary, will nevertheless make +treatment of error recovery and ambiguities much more +comprehensible. +.PP +The parser produced by Yacc consists +of a finite state machine with a stack. +The parser is also capable of reading and remembering the next +input token (called the +.I lookahead +token). +The +.I "current state" +is always the one on the top of the stack. +The states of the finite state machine are given +small integer labels; initially, the machine is in state 0, +the stack contains only state 0, and no lookahead token has been read. +.PP +The machine has only four actions available to it, called +.I shift , +.I reduce , +.I accept , +and +.I error . +A move of the parser is done as follows: +.IP 1. +Based on its current state, the parser decides +whether it needs a lookahead token to decide +what action should be done; if it needs one, and does +not have one, it calls +.I yylex +to obtain the next token. +.IP 2. +Using the current state, and the lookahead token +if needed, the parser decides on its next action, and +carries it out. +This may result in states being pushed onto the stack, or popped off of +the stack, and in the lookahead token being processed +or left alone. +.PP +The +.I shift +action is the most common action the parser takes. +Whenever a shift action is taken, there is always +a lookahead token. +For example, in state 56 there may be +an action: +.DS + IF shift 34 +.DE +which says, in state 56, if the lookahead token is IF, +the current state (56) is pushed down on the stack, +and state 34 becomes the current state (on the +top of the stack). +The lookahead token is cleared. +.PP +The +.I reduce +action keeps the stack from growing without +bounds. +Reduce actions are appropriate when the parser has seen +the right hand side of a grammar rule, +and is prepared to announce that it has seen +an instance of the rule, replacing the right hand side +by the left hand side. +It may be necessary to consult the lookahead token +to decide whether to reduce, but +usually it is not; in fact, the default +action (represented by a ``.'') is often a reduce action. +.PP +Reduce actions are associated with individual grammar rules. +Grammar rules are also given small integer +numbers, leading to some confusion. +The action +.DS + \fB.\fR reduce 18 +.DE +refers to +.I "grammar rule" +18, while the action +.DS + IF shift 34 +.DE +refers to +.I state +34. +.PP +Suppose the rule being reduced is +.DS +A \fB:\fR x y z ; +.DE +The reduce action depends on the +left hand symbol (A in this case), and the number of +symbols on the right hand side (three in this case). +To reduce, first pop off the top three states +from the stack +(In general, the number of states popped equals the number of symbols on the +right side of the rule). +In effect, these states were the ones +put on the stack while recognizing +.I x , +.I y , +and +.I z , +and no longer serve any useful purpose. +After popping these states, a state is uncovered +which was the state the parser was in before beginning to +process the rule. +Using this uncovered state, and the symbol +on the left side of the rule, perform what is in +effect a shift of A. +A new state is obtained, pushed onto the stack, and parsing continues. +There are significant differences between the processing of +the left hand symbol and an ordinary shift of a token, +however, so this action is called a +.I goto +action. +In particular, the lookahead token is cleared by a shift, and +is not affected by a goto. +In any case, the uncovered state contains an entry such as: +.DS + A goto 20 +.DE +causing state 20 to be pushed +onto the stack, and become the current state. +.PP +In effect, the reduce action ``turns back the clock'' in the parse, +popping the states off the stack to go back to the +state where the right hand side of the rule was first seen. +The parser then behaves as if it had seen the left side at that time. +If the right hand side of the rule is empty, +no states are popped off of the stack: the uncovered state +is in fact the current state. +.PP +The reduce action is also important in the treatment of user-supplied +actions and values. +When a rule is reduced, the code supplied with the rule is executed +before the stack is adjusted. +In addition to the stack holding the states, another stack, +running in parallel with it, holds the values returned +from the lexical analyzer and the actions. +When a shift takes place, the external variable +.I yylval +is copied onto the value stack. +After the return from the user code, the reduction is carried out. +When the +.I goto +action is done, the external variable +.I yyval +is copied onto the value stack. +The pseudo-variables $1, $2, etc., refer to the value stack. +.PP +The other two parser actions are conceptually much simpler. +The +.I accept +action indicates that the entire input has been seen and +that it matches the specification. +This action appears only when the lookahead token is +the endmarker, and indicates that the parser has successfully +done its job. +The +.I error +action, on the other hand, represents a place where the parser +can no longer continue parsing according to the specification. +The input tokens it has seen, together with the lookahead token, +cannot be followed by anything that would result +in a legal input. +The parser reports an error, and attempts to recover the situation and +resume parsing: the error recovery (as opposed to the detection of error) +will be covered in Section 7. +.PP +It is time for an example! +Consider the specification +.DS +%token DING DONG DELL +%% +rhyme : sound place + ; +sound : DING DONG + ; +place : DELL + ; +.DE +.PP +When Yacc is invoked with the +.B \-v +option, a file called +.I y.output +is produced, with a human-readable description of the parser. +The +.I y.output +file corresponding to the above grammar (with some statistics +stripped off the end) is: +.DS +state 0 + $accept : \_rhyme $end + + DING shift 3 + . error + + rhyme goto 1 + sound goto 2 + +state 1 + $accept : rhyme\_$end + + $end accept + . error + +state 2 + rhyme : sound\_place + + DELL shift 5 + . error + + place goto 4 + +state 3 + sound : DING\_DONG + + DONG shift 6 + . error + +state 4 + rhyme : sound place\_ (1) + + . reduce 1 + +state 5 + place : DELL\_ (3) + + . reduce 3 + +state 6 + sound : DING DONG\_ (2) + + . reduce 2 +.DE +Notice that, in addition to the actions for each state, there is a +description of the parsing rules being processed in each +state. The \_ character is used to indicate +what has been seen, and what is yet to come, in each rule. +Suppose the input is +.DS +DING DONG DELL +.DE +It is instructive to follow the steps of the parser while +processing this input. +.PP +Initially, the current state is state 0. +The parser needs to refer to the input in order to decide +between the actions available in state 0, so +the first token, +.I DING , +is read, becoming the lookahead token. +The action in state 0 on +.I DING +is +is ``shift 3'', so state 3 is pushed onto the stack, +and the lookahead token is cleared. +State 3 becomes the current state. +The next token, +.I DONG , +is read, becoming the lookahead token. +The action in state 3 on the token +.I DONG +is ``shift 6'', +so state 6 is pushed onto the stack, and the lookahead is cleared. +The stack now contains 0, 3, and 6. +In state 6, without even consulting the lookahead, +the parser reduces by rule 2. +.DS + sound : DING DONG +.DE +This rule has two symbols on the right hand side, so +two states, 6 and 3, are popped off of the stack, uncovering state 0. +Consulting the description of state 0, looking for a goto on +.I sound , +.DS + sound goto 2 +.DE +is obtained; thus state 2 is pushed onto the stack, +becoming the current state. +.PP +In state 2, the next token, +.I DELL , +must be read. +The action is ``shift 5'', so state 5 is pushed onto the stack, which now has +0, 2, and 5 on it, and the lookahead token is cleared. +In state 5, the only action is to reduce by rule 3. +This has one symbol on the right hand side, so one state, 5, +is popped off, and state 2 is uncovered. +The goto in state 2 on +.I place , +the left side of rule 3, +is state 4. +Now, the stack contains 0, 2, and 4. +In state 4, the only action is to reduce by rule 1. +There are two symbols on the right, so the top two states are popped off, +uncovering state 0 again. +In state 0, there is a goto on +.I rhyme +causing the parser to enter state 1. +In state 1, the input is read; the endmarker is obtained, +indicated by ``$end'' in the +.I y.output +file. +The action in state 1 when the endmarker is seen is to accept, +successfully ending the parse. +.PP +The reader is urged to consider how the parser works +when confronted with such incorrect strings as +.I "DING DONG DONG" , +.I "DING DONG" , +.I "DING DONG DELL DELL" , +etc. +A few minutes spend with this and other simple examples will +probably be repaid when problems arise in more complicated contexts. diff --git a/doc/ps1/15.yacc/ss5 b/doc/ps1/15.yacc/ss5 new file mode 100644 index 00000000..012c5594 --- /dev/null +++ b/doc/ps1/15.yacc/ss5 @@ -0,0 +1,302 @@ +.\" @(#)ss5 6.1 (Berkeley) 5/8/86 +.\" +.SH +5: Ambiguity and Conflicts +.PP +A set of grammar rules is +.I ambiguous +if there is some input string that can be structured in two or more different ways. +For example, the grammar rule +.DS +expr : expr \'\-\' expr +.DE +is a natural way of expressing the fact that one way of forming an arithmetic expression +is to put two other expressions together with a minus sign between them. +Unfortunately, this grammar rule does not +completely specify the way that all complex inputs +should be structured. +For example, if the input is +.DS +expr \- expr \- expr +.DE +the rule allows this input to be structured as either +.DS +( expr \- expr ) \- expr +.DE +or as +.DS +expr \- ( expr \- expr ) +.DE +(The first is called +.I "left association" , +the second +.I "right association" ). +.PP +Yacc detects such ambiguities when it is attempting to build the parser. +It is instructive to consider the problem that confronts the parser when it is +given an input such as +.DS +expr \- expr \- expr +.DE +When the parser has read the second expr, the input that it has seen: +.DS +expr \- expr +.DE +matches the right side of the grammar rule above. +The parser could +.I reduce +the input by applying this rule; +after applying the rule; +the input is reduced to +.I expr (the +left side of the rule). +The parser would then read the final part of the input: +.DS +\- expr +.DE +and again reduce. +The effect of this is to take the left associative interpretation. +.PP +Alternatively, when the parser has seen +.DS +expr \- expr +.DE +it could defer the immediate application of the rule, and continue reading +the input until it had seen +.DS +expr \- expr \- expr +.DE +It could then apply the rule to the rightmost three symbols, reducing them to +.I expr +and leaving +.DS +expr \- expr +.DE +Now the rule can be reduced once more; the effect is to +take the right associative interpretation. +Thus, having read +.DS +expr \- expr +.DE +the parser can do two legal things, a shift or a reduction, and has no way of +deciding between them. +This is called a +.I "shift / reduce conflict" . +It may also happen that the parser has a choice of two legal reductions; +this is called a +.I "reduce / reduce conflict" . +Note that there are never any ``Shift/shift'' conflicts. +.PP +When there are shift/reduce or reduce/reduce conflicts, Yacc still produces a parser. +It does this by selecting one of the valid steps wherever it has a choice. +A rule describing which choice to make in a given situation is called +a +.I "disambiguating rule" . +.PP +Yacc invokes two disambiguating rules by default: +.IP 1. +In a shift/reduce conflict, the default is to do the shift. +.IP 2. +In a reduce/reduce conflict, the default is to reduce by the +.I earlier +grammar rule (in the input sequence). +.PP +Rule 1 implies that reductions are deferred whenever there is a choice, +in favor of shifts. +Rule 2 gives the user rather crude control over the behavior of the parser +in this situation, but reduce/reduce conflicts should be avoided whenever possible. +.PP +Conflicts may arise because of mistakes in input or logic, or because the grammar rules, while consistent, +require a more complex parser than Yacc can construct. +The use of actions within rules can also cause conflicts, if the action must +be done before the parser can be sure which rule is being recognized. +In these cases, the application of disambiguating rules is inappropriate, +and leads to an incorrect parser. +For this reason, Yacc +always reports the number of shift/reduce and reduce/reduce conflicts resolved by Rule 1 and Rule 2. +.PP +In general, whenever it is possible to apply disambiguating rules to produce a correct parser, it is also +possible to rewrite the grammar rules so that the same inputs are read but there are no +conflicts. +For this reason, most previous parser generators +have considered conflicts to be fatal errors. +Our experience has suggested that this rewriting is somewhat unnatural, +and produces slower parsers; thus, Yacc will produce parsers even in the presence of conflicts. +.PP +As an example of the power of disambiguating rules, consider a fragment from a programming +language involving an ``if-then-else'' construction: +.DS +stat : IF \'(\' cond \')\' stat + | IF \'(\' cond \')\' stat ELSE stat + ; +.DE +In these rules, +.I IF +and +.I ELSE +are tokens, +.I cond +is a nonterminal symbol describing +conditional (logical) expressions, and +.I stat +is a nonterminal symbol describing statements. +The first rule will be called the +.ul +simple-if +rule, and the +second the +.ul +if-else +rule. +.PP +These two rules form an ambiguous construction, since input of the form +.DS +IF ( C1 ) IF ( C2 ) S1 ELSE S2 +.DE +can be structured according to these rules in two ways: +.DS +IF ( C1 ) { + IF ( C2 ) S1 + } +ELSE S2 +.DE +or +.DS +IF ( C1 ) { + IF ( C2 ) S1 + ELSE S2 + } +.DE +The second interpretation is the one given in most programming languages +having this construct. +Each +.I ELSE +is associated with the last preceding +``un-\fIELSE'\fRd'' +.I IF . +In this example, consider the situation where the parser has seen +.DS +IF ( C1 ) IF ( C2 ) S1 +.DE +and is looking at the +.I ELSE . +It can immediately +reduce +by the simple-if rule to get +.DS +IF ( C1 ) stat +.DE +and then read the remaining input, +.DS +ELSE S2 +.DE +and reduce +.DS +IF ( C1 ) stat ELSE S2 +.DE +by the if-else rule. +This leads to the first of the above groupings of the input. +.PP +On the other hand, the +.I ELSE +may be shifted, +.I S2 +read, and then the right hand portion of +.DS +IF ( C1 ) IF ( C2 ) S1 ELSE S2 +.DE +can be reduced by the if-else rule to get +.DS +IF ( C1 ) stat +.DE +which can be reduced by the simple-if rule. +This leads to the second of the above groupings of the input, which +is usually desired. +.PP +Once again the parser can do two valid things \- there is a shift/reduce conflict. +The application of disambiguating rule 1 tells the parser to shift in this case, +which leads to the desired grouping. +.PP +This shift/reduce conflict arises only when there is a particular current input symbol, +.I ELSE , +and particular inputs already seen, such as +.DS +IF ( C1 ) IF ( C2 ) S1 +.DE +In general, there may be many conflicts, and each one +will be associated with an input symbol and +a set of previously read inputs. +The previously read inputs are characterized by the +state +of the parser. +.PP +The conflict messages of Yacc are best understood +by examining the verbose (\fB\-v\fR) option output file. +For example, the output corresponding to the above +conflict state might be: +.DS L +23: shift/reduce conflict (shift 45, reduce 18) on ELSE + +state 23 + + stat : IF ( cond ) stat\_ (18) + stat : IF ( cond ) stat\_ELSE stat + + ELSE shift 45 + . reduce 18 + +.DE +The first line describes the conflict, giving the state and the input symbol. +The ordinary state description follows, giving +the grammar rules active in the state, and the parser actions. +Recall that the underline marks the +portion of the grammar rules which has been seen. +Thus in the example, in state 23 the parser has seen input corresponding +to +.DS +IF ( cond ) stat +.DE +and the two grammar rules shown are active at this time. +The parser can do two possible things. +If the input symbol is +.I ELSE , +it is possible to shift into state +45. +State 45 will have, as part of its description, the line +.DS +stat : IF ( cond ) stat ELSE\_stat +.DE +since the +.I ELSE +will have been shifted in this state. +Back in state 23, the alternative action, described by ``\fB.\fR'', +is to be done if the input symbol is not mentioned explicitly in the above actions; thus, +in this case, if the input symbol is not +.I ELSE , +the parser reduces by grammar rule 18: +.DS +stat : IF \'(\' cond \')\' stat +.DE +Once again, notice that the numbers following ``shift'' commands refer to other states, +while the numbers following ``reduce'' commands refer to grammar +rule numbers. +In the +.I y.output +file, the rule numbers are printed after those rules which can be reduced. +In most one states, there will be at most reduce action possible in the +state, and this will be the default command. +The user who encounters unexpected shift/reduce conflicts will probably want to +look at the verbose output to decide whether the default actions are appropriate. +In really tough cases, the user might need to know more about +the behavior and construction of the parser than can be covered here. +In this case, one of the theoretical references +.[ +Aho Johnson Surveys Parsing +.] +.[ +Aho Johnson Ullman Deterministic Ambiguous +.] +.[ +Aho Ullman Principles Design +.] +might be consulted; the services of a local guru might also be appropriate. diff --git a/doc/ps1/15.yacc/ss6 b/doc/ps1/15.yacc/ss6 new file mode 100644 index 00000000..56be3667 --- /dev/null +++ b/doc/ps1/15.yacc/ss6 @@ -0,0 +1,146 @@ +.\" @(#)ss6 6.1 (Berkeley) 5/8/86 +.\" +.SH +6: Precedence +.PP +There is one common situation +where the rules given above for resolving conflicts are not sufficient; +this is in the parsing of arithmetic expressions. +Most of the commonly used constructions for arithmetic expressions can be naturally +described by the notion of +.I precedence +levels for operators, together with information about left +or right associativity. +It turns out that ambiguous grammars with appropriate disambiguating rules +can be used to create parsers that are faster and easier to +write than parsers constructed from unambiguous grammars. +The basic notion is to write grammar rules +of the form +.DS +expr : expr OP expr +.DE +and +.DS +expr : UNARY expr +.DE +for all binary and unary operators desired. +This creates a very ambiguous grammar, with many parsing conflicts. +As disambiguating rules, the user specifies the precedence, or binding +strength, of all the operators, and the associativity +of the binary operators. +This information is sufficient to allow Yacc to resolve the parsing conflicts +in accordance with these rules, and construct a parser that realizes the desired +precedences and associativities. +.PP +The precedences and associativities are attached to tokens in the declarations section. +This is done by a series of lines beginning with a Yacc keyword: %left, %right, +or %nonassoc, followed by a list of tokens. +All of the tokens on the same line are assumed to have the same precedence level +and associativity; the lines are listed in +order of increasing precedence or binding strength. +Thus, +.DS +%left \'+\' \'\-\' +%left \'*\' \'/\' +.DE +describes the precedence and associativity of the four arithmetic operators. +Plus and minus are left associative, and have lower precedence than +star and slash, which are also left associative. +The keyword %right is used to describe right associative operators, +and the keyword %nonassoc is used to describe operators, like +the operator .LT. in Fortran, that may not associate with themselves; thus, +.DS +A .LT. B .LT. C +.DE +is illegal in Fortran, and such an operator would be described with the keyword +%nonassoc in Yacc. +As an example of the behavior of these declarations, the description +.DS +%right \'=\' +%left \'+\' \'\-\' +%left \'*\' \'/\' + +%% + +expr : expr \'=\' expr + | expr \'+\' expr + | expr \'\-\' expr + | expr \'*\' expr + | expr \'/\' expr + | NAME + ; +.DE +might be used to structure the input +.DS +a = b = c*d \- e \- f*g +.DE +as follows: +.DS +a = ( b = ( ((c*d)\-e) \- (f*g) ) ) +.DE +When this mechanism is used, +unary operators must, in general, be given a precedence. +Sometimes a unary operator and a binary operator +have the same symbolic representation, but different precedences. +An example is unary and binary \'\-\'; unary minus may be given the same +strength as multiplication, or even higher, while binary minus has a lower strength than +multiplication. +The keyword, %prec, changes the precedence level associated with a particular grammar rule. +%prec appears immediately after the body of the grammar rule, before the action or closing semicolon, +and is followed by a token name or literal. +It +causes the precedence of the grammar rule to become that of the following token name or literal. +For example, to make unary minus have the same precedence as multiplication the rules might resemble: +.DS +%left \'+\' \'\-\' +%left \'*\' \'/\' + +%% + +expr : expr \'+\' expr + | expr \'\-\' expr + | expr \'*\' expr + | expr \'/\' expr + | \'\-\' expr %prec \'*\' + | NAME + ; +.DE +.PP +A token declared +by %left, %right, and %nonassoc need not be, but may be, declared by %token as well. +.PP +The precedences and associativities are used by Yacc to +resolve parsing conflicts; they give rise to disambiguating rules. +Formally, the rules work as follows: +.IP 1. +The precedences and associativities are recorded for those tokens and literals +that have them. +.IP 2. +A precedence and associativity is associated with each grammar rule; it is the precedence +and associativity of the last token or literal in the body of the rule. +If the %prec construction is used, it overrides this default. +Some grammar rules may have no precedence and associativity associated with them. +.IP 3. +When there is a reduce/reduce conflict, or there is a shift/reduce conflict +and either the input symbol or the grammar rule has no precedence and associativity, +then the two disambiguating rules given at the beginning of the section are used, +and the conflicts are reported. +.IP 4. +If there is a shift/reduce conflict, and both the grammar rule and the input character +have precedence and associativity associated with them, then the conflict is resolved +in favor of the action (shift or reduce) associated with the higher precedence. +If the precedences are the same, then the associativity is used; left +associative implies reduce, right associative implies shift, and nonassociating +implies error. +.PP +Conflicts resolved by precedence are not counted in the number of shift/reduce and reduce/reduce +conflicts reported by Yacc. +This means that mistakes in the specification of precedences may +disguise errors in the input grammar; it is a good idea to be sparing +with precedences, and use them in an essentially ``cookbook'' fashion, +until some experience has been gained. +The +.I y.output +file +is very useful in deciding whether the parser is actually doing +what was intended. diff --git a/doc/ps1/15.yacc/ss7 b/doc/ps1/15.yacc/ss7 new file mode 100644 index 00000000..6e92c5d3 --- /dev/null +++ b/doc/ps1/15.yacc/ss7 @@ -0,0 +1,124 @@ +.\" @(#)ss7 6.1 (Berkeley) 5/8/86 +.\" +.SH +7: Error Handling +.PP +Error handling is an extremely difficult area, and many of the problems are semantic ones. +When an error is found, for example, it may be necessary to reclaim parse tree storage, +delete or alter symbol table entries, and, typically, set switches to avoid generating any further output. +.PP +It is seldom acceptable to stop all processing when an error is found; it is more useful to continue +scanning the input to find further syntax errors. +This leads to the problem of getting the parser ``restarted'' after an error. +A general class of algorithms to do this involves discarding a number of tokens +from the input string, and attempting to adjust the parser so that input can continue. +.PP +To allow the user some control over this process, +Yacc provides a simple, but reasonably general, feature. +The token name ``error'' is reserved for error handling. +This name can be used in grammar rules; +in effect, it suggests places where errors are expected, and recovery might take place. +The parser pops its stack until it enters a state where the token ``error'' is legal. +It then behaves as if the token ``error'' were the current lookahead token, +and performs the action encountered. +The lookahead token is then reset to the token that caused the error. +If no special error rules have been specified, the processing halts when an error is detected. +.PP +In order to prevent a cascade of error messages, the parser, after +detecting an error, remains in error state until three tokens have been successfully +read and shifted. +If an error is detected when the parser is already in error state, +no message is given, and the input token is quietly deleted. +.PP +As an example, a rule of the form +.DS +stat : error +.DE +would, in effect, mean that on a syntax error the parser would attempt to skip over the statement +in which the error was seen. +More precisely, the parser will +scan ahead, looking for three tokens that might legally follow +a statement, and start processing at the first of these; if +the beginnings of statements are not sufficiently distinctive, it may make a +false start in the middle of a statement, and end up reporting a +second error where there is in fact no error. +.PP +Actions may be used with these special error rules. +These actions might attempt to reinitialize tables, reclaim symbol table space, etc. +.PP +Error rules such as the above are very general, but difficult to control. +Somewhat easier are rules such as +.DS +stat : error \';\' +.DE +Here, when there is an error, the parser attempts to skip over the statement, but +will do so by skipping to the next \';\'. +All tokens after the error and before the next \';\' cannot be shifted, and are discarded. +When the \';\' is seen, this rule will be reduced, and any ``cleanup'' +action associated with it performed. +.PP +Another form of error rule arises in interactive applications, where +it may be desirable to permit a line to be reentered after an error. +A possible error rule might be +.DS +input : error \'\en\' { printf( "Reenter last line: " ); } input + { $$ = $4; } +.DE +There is one potential difficulty with this approach; +the parser must correctly process three input tokens before it +admits that it has correctly resynchronized after the error. +If the reentered line contains an error +in the first two tokens, the parser deletes the offending tokens, +and gives no message; this is clearly unacceptable. +For this reason, there is a mechanism that +can be used to force the parser +to believe that an error has been fully recovered from. +The statement +.DS +yyerrok ; +.DE +in an action +resets the parser to its normal mode. +The last example is better written +.DS +input : error \'\en\' + { yyerrok; + printf( "Reenter last line: " ); } + input + { $$ = $4; } + ; +.DE +.PP +As mentioned above, the token seen immediately +after the ``error'' symbol is the input token at which the +error was discovered. +Sometimes, this is inappropriate; for example, an +error recovery action might +take upon itself the job of finding the correct place to resume input. +In this case, +the previous lookahead token must be cleared. +The statement +.DS +yyclearin ; +.DE +in an action will have this effect. +For example, suppose the action after error +were to call some sophisticated resynchronization routine, +supplied by the user, that attempted to advance the input to the +beginning of the next valid statement. +After this routine was called, the next token returned by yylex would presumably +be the first token in a legal statement; +the old, illegal token must be discarded, and the error state reset. +This could be done by a rule like +.DS +stat : error + { resynch(); + yyerrok ; + yyclearin ; } + ; +.DE +.PP +These mechanisms are admittedly crude, but do allow for a simple, fairly effective recovery of the parser +from many errors; +moreover, the user can get control to deal with +the error actions required by other portions of the program. diff --git a/doc/ps1/15.yacc/ss8 b/doc/ps1/15.yacc/ss8 new file mode 100644 index 00000000..ff96e657 --- /dev/null +++ b/doc/ps1/15.yacc/ss8 @@ -0,0 +1,93 @@ +.\" @(#)ss8 6.1 (Berkeley) 5/8/86 +.\" +.SH +8: The Yacc Environment +.PP +When the user inputs a specification +to Yacc, the output is a file of C programs, called +.I y.tab.c +on most +systems +(due to local file system conventions, the names may differ from +installation to installation). +The function produced by Yacc is called +.I yyparse \|; +it is an integer valued function. +When it is called, it in turn repeatedly calls +.I yylex , +the lexical analyzer +supplied by the user (see Section 3) +to obtain input tokens. +Eventually, either an error is detected, in which case +(if no error recovery is possible) +.I yyparse +returns the value 1, +or the lexical analyzer returns the endmarker token +and the parser accepts. +In this case, +.I yyparse +returns the value 0. +.PP +The user must provide a certain amount of environment for this +parser in order to obtain a working program. +For example, as with every C program, a program called +.I main +must be defined, that eventually calls +.I yyparse . +In addition, a routine called +.I yyerror +prints a message +when a syntax error is detected. +.PP +These two routines must be supplied in one form or another by the +user. +To ease the initial effort of using Yacc, a library has been +provided with default versions of +.I main +and +.I yyerror . +The name of this library is system dependent; +on many systems the library is accessed by a +.B \-ly +argument to the loader. +To show the triviality of these default programs, the source is +given below: +.DS +main(){ + return( yyparse() ); + } +.DE +and +.DS +# include + +yyerror(s) char *s; { + fprintf( stderr, "%s\en", s ); + } +.DE +The argument to +.I yyerror +is a string containing an error message, usually +the string ``syntax error''. +The average application will want to do better than this. +Ordinarily, the program should keep track of the input line number, and print it +along with the message when a syntax error is detected. +The external integer variable +.I yychar +contains the lookahead token number at the time the error was detected; +this may be of some interest in giving better diagnostics. +Since the +.I main +program is probably supplied by the user (to read arguments, etc.) +the Yacc library is useful only in small +projects, or in the earliest stages of larger ones. +.PP +The external integer variable +.I yydebug +is normally set to 0. +If it is set to a nonzero value, the parser will output a +verbose description of its actions, including +a discussion of which input symbols have been read, and +what the parser actions are. +Depending on the operating environment, +it may be possible to set this variable by using a debugging system. diff --git a/doc/ps1/15.yacc/ss9 b/doc/ps1/15.yacc/ss9 new file mode 100644 index 00000000..abf70dc8 --- /dev/null +++ b/doc/ps1/15.yacc/ss9 @@ -0,0 +1,169 @@ +.\" @(#)ss9 6.1 (Berkeley) 5/8/86 +.\" +.SH +9: Hints for Preparing Specifications +.PP +This section contains miscellaneous hints on preparing efficient, easy to change, +and clear specifications. +The individual subsections are more or less +independent. +.SH +Input Style +.PP +It is difficult to +provide rules with substantial actions +and still have a readable specification file. +The following style hints owe much to Brian Kernighan. +.IP a. +Use all capital letters for token names, all lower case letters for +nonterminal names. +This rule comes under the heading of ``knowing who to blame when +things go wrong.'' +.IP b. +Put grammar rules and actions on separate lines. +This allows either to be changed without +an automatic need to change the other. +.IP c. +Put all rules with the same left hand side together. +Put the left hand side in only once, and let all +following rules begin with a vertical bar. +.IP d. +Put a semicolon only after the last rule with a given left hand side, +and put the semicolon on a separate line. +This allows new rules to be easily added. +.IP e. +Indent rule bodies by two tab stops, and action bodies by three +tab stops. +.PP +The example in Appendix A is written following this style, as are +the examples in the text of this paper (where space permits). +The user must make up his own mind about these stylistic questions; +the central problem, however, is to make the rules visible through +the morass of action code. +.SH +Left Recursion +.PP +The algorithm used by the Yacc parser encourages so called ``left recursive'' +grammar rules: rules of the form +.DS +name : name rest_of_rule ; +.DE +These rules frequently arise when +writing specifications of sequences and lists: +.DS +list : item + | list \',\' item + ; +.DE +and +.DS +seq : item + | seq item + ; +.DE +In each of these cases, the first rule +will be reduced for the first item only, and the second rule +will be reduced for the second and all succeeding items. +.PP +With right recursive rules, such as +.DS +seq : item + | item seq + ; +.DE +the parser would be a bit bigger, and the items would be seen, and reduced, +from right to left. +More seriously, an internal stack in the parser +would be in danger of overflowing if a very long sequence were read. +Thus, the user should use left recursion wherever reasonable. +.PP +It is worth considering whether a sequence with zero +elements has any meaning, and if so, consider writing +the sequence specification with an empty rule: +.DS +seq : /* empty */ + | seq item + ; +.DE +Once again, the first rule would always be reduced exactly once, before the +first item was read, +and then the second rule would be reduced once for each item read. +Permitting empty sequences +often leads to increased generality. +However, conflicts might arise if Yacc is asked to decide +which empty sequence it has seen, when it hasn't seen enough to +know! +.SH +Lexical Tie-ins +.PP +Some lexical decisions depend on context. +For example, the lexical analyzer might want to +delete blanks normally, but not within quoted strings. +Or names might be entered into a symbol table in declarations, +but not in expressions. +.PP +One way of handling this situation is +to create a global flag that is +examined by the lexical analyzer, and set by actions. +For example, suppose a program +consists of 0 or more declarations, followed by 0 or more statements. +Consider: +.DS +%{ + int dflag; +%} + ... other declarations ... + +%% + +prog : decls stats + ; + +decls : /* empty */ + { dflag = 1; } + | decls declaration + ; + +stats : /* empty */ + { dflag = 0; } + | stats statement + ; + + ... other rules ... +.DE +The flag +.I dflag +is now 0 when reading statements, and 1 when reading declarations, +.ul +except for the first token in the first statement. +This token must be seen by the parser before it can tell that +the declaration section has ended and the statements have +begun. +In many cases, this single token exception does not +affect the lexical scan. +.PP +This kind of ``backdoor'' approach can be elaborated +to a noxious degree. +Nevertheless, it represents a way of doing some things +that are difficult, if not impossible, to +do otherwise. +.SH +Reserved Words +.PP +Some programming languages +permit the user to +use words like ``if'', which are normally reserved, +as label or variable names, provided that such use does not +conflict with the legal use of these names in the programming language. +This is extremely hard to do in the framework of Yacc; +it is difficult to pass information to the lexical analyzer +telling it ``this instance of `if' is a keyword, and that instance is a variable''. +The user can make a stab at it, using the +mechanism described in the last subsection, +but it is difficult. +.PP +A number of ways of making this easier are under advisement. +Until then, it is better that the keywords be +.I reserved \|; +that is, be forbidden for use as variable names. +There are powerful stylistic reasons for preferring this, anyway. diff --git a/doc/ps1/15.yacc/ssA b/doc/ps1/15.yacc/ssA new file mode 100644 index 00000000..a1295c65 --- /dev/null +++ b/doc/ps1/15.yacc/ssA @@ -0,0 +1,184 @@ +.\" @(#)ssA 6.1 (Berkeley) 5/8/86 +.\" +.SH +10: Advanced Topics +.PP +This section discusses a number of advanced features +of Yacc. +.SH +Simulating Error and Accept in Actions +.PP +The parsing actions of error and accept can be simulated +in an action by use of macros YYACCEPT and YYERROR. +YYACCEPT causes +.I yyparse +to return the value 0; +YYERROR causes +the parser to behave as if the current input symbol +had been a syntax error; +.I yyerror +is called, and error recovery takes place. +These mechanisms can be used to simulate parsers +with multiple endmarkers or context-sensitive syntax checking. +.SH +Accessing Values in Enclosing Rules. +.PP +An action may refer to values +returned by actions to the left of the current rule. +The mechanism is simply the same as with ordinary actions, +a dollar sign followed by a digit, but in this case the +digit may be 0 or negative. +Consider +.DS +sent : adj noun verb adj noun + { \fIlook at the sentence\fR . . . } + ; + +adj : THE { $$ = THE; } + | YOUNG { $$ = YOUNG; } + . . . + ; + +noun : DOG + { $$ = DOG; } + | CRONE + { if( $0 == YOUNG ){ + printf( "what?\en" ); + } + $$ = CRONE; + } + ; + . . . +.DE +In the action following the word CRONE, a check is made that the +preceding token shifted was not YOUNG. +Obviously, this is only possible when a great deal is known about +what might precede the symbol +.I noun +in the input. +There is also a distinctly unstructured flavor about this. +Nevertheless, at times this mechanism will save a great +deal of trouble, especially when a few combinations are to +be excluded from an otherwise regular structure. +.SH +Support for Arbitrary Value Types +.PP +By default, the values returned by actions and the lexical analyzer are integers. +Yacc can also support +values of other types, including structures. +In addition, Yacc keeps track of the types, and inserts +appropriate union member names so that the resulting parser will +be strictly type checked. +The Yacc value stack (see Section 4) +is declared to be a +.I union +of the various types of values desired. +The user declares the union, and associates union member names +to each token and nonterminal symbol having a value. +When the value is referenced through a $$ or $n construction, +Yacc will automatically insert the appropriate union name, so that +no unwanted conversions will take place. +In addition, type checking commands such as +.I Lint\| +.[ +Johnson Lint Checker 1273 +.] +will be far more silent. +.PP +There are three mechanisms used to provide for this typing. +First, there is a way of defining the union; this must be +done by the user since other programs, notably the lexical analyzer, +must know about the union member names. +Second, there is a way of associating a union member name with tokens +and nonterminals. +Finally, there is a mechanism for describing the type of those +few values where Yacc can not easily determine the type. +.PP +To declare the union, the user includes in the declaration section: +.DS +%union { + body of union ... + } +.DE +This declares the Yacc value stack, +and the external variables +.I yylval +and +.I yyval , +to have type equal to this union. +If Yacc was invoked with the +.B \-d +option, the union declaration +is copied onto the +.I y.tab.h +file. +Alternatively, +the union may be declared in a header file, and a typedef +used to define the variable YYSTYPE to represent +this union. +Thus, the header file might also have said: +.DS +typedef union { + body of union ... + } YYSTYPE; +.DE +The header file must be included in the declarations +section, by use of %{ and %}. +.PP +Once YYSTYPE is defined, +the union member names must be associated +with the various terminal and nonterminal names. +The construction +.DS +< name > +.DE +is used to indicate a union member name. +If this follows +one of the +keywords %token, +%left, %right, and %nonassoc, +the union member name is associated with the tokens listed. +Thus, saying +.DS +%left \'+\' \'\-\' +.DE +will cause any reference to values returned by these two tokens to be +tagged with +the union member name +.I optype . +Another keyword, %type, is +used similarly to associate +union member names with nonterminals. +Thus, one might say +.DS +%type expr stat +.DE +.PP +There remain a couple of cases where these mechanisms are insufficient. +If there is an action within a rule, the value returned +by this action has no +.I "a priori" +type. +Similarly, reference to left context values (such as $0 \- see the +previous subsection ) leaves Yacc with no easy way of knowing the type. +In this case, a type can be imposed on the reference by inserting +a union member name, between < and >, immediately after +the first $. +An example of this usage is +.DS +rule : aaa { $$ = 3; } bbb + { fun( $2, $0 ); } + ; +.DE +This syntax has little to recommend it, but the situation arises rarely. +.PP +A sample specification is given in Appendix C. +The facilities in this subsection are not triggered until they are used: +in particular, the use of %type will turn on these mechanisms. +When they are used, there is a fairly strict level of checking. +For example, use of $n or $$ to refer to something with no defined type +is diagnosed. +If these facilities are not triggered, the Yacc value stack is used to +hold +.I int' s, +as was true historically. diff --git a/doc/ps1/15.yacc/ssB b/doc/ps1/15.yacc/ssB new file mode 100644 index 00000000..cd744aa5 --- /dev/null +++ b/doc/ps1/15.yacc/ssB @@ -0,0 +1,26 @@ +.\" @(#)ssB 6.1 (Berkeley) 5/8/86 +.\" +.SH +11: Acknowledgements +.PP +Yacc owes much to a +most stimulating collection of users, who have goaded +me beyond my inclination, and frequently beyond my +ability, in their endless search for ``one more feature''. +Their irritating unwillingness to learn how to +do things my way has usually led to my doing things their way; +most of the time, they have been right. +B. W. Kernighan, P. J. Plauger, S. I. Feldman, C. Imagna, +M. E. Lesk, +and A. Snyder will recognize some of their ideas in the current version +of Yacc. +C. B. Haley contributed to the error recovery algorithm. +D. M. Ritchie, B. W. Kernighan, and M. O. Harris helped translate this document into English. +Al Aho also deserves special credit for bringing +the mountain to Mohammed, and other favors. +.SG "MH-1273-SCJ-unix" +.bp +.[ +$LIST$ +.] +.bp diff --git a/doc/ps1/15.yacc/ssa b/doc/ps1/15.yacc/ssa new file mode 100644 index 00000000..747b2710 --- /dev/null +++ b/doc/ps1/15.yacc/ssa @@ -0,0 +1,113 @@ +.\" @(#)ssa 6.1 (Berkeley) 5/8/86 +.\" +.SH +Appendix A: A Simple Example +.PP +This example gives the complete Yacc specification for a small desk calculator; +the desk calculator has 26 registers, labeled ``a'' through ``z'', and accepts +arithmetic expressions made up of the operators +, \-, *, /, +% (mod operator), & (bitwise and), | (bitwise or), and assignment. +If an expression at the top level is an assignment, the value is not +printed; otherwise it is. +As in C, an integer that begins with 0 (zero) is assumed to be octal; +otherwise, it is assumed to be decimal. +.PP +As an example of a Yacc specification, the desk calculator +does a reasonable job of showing how precedences and ambiguities +are used, and demonstrating simple error recovery. +The major oversimplifications are that the +lexical analysis phase is much simpler than for most applications, and the +output is produced immediately, line by line. +Note the way that decimal and octal integers are read in by the grammar rules; +This job is probably better done by the lexical analyzer. +.sp +.nf +.ta .5i 1i 1.5i 2i 2.5i + +%{ +# include +# include + +int regs[26]; +int base; + +%} + +%start list + +%token DIGIT LETTER + +%left \'|\' +%left \'&\' +%left \'+\' \'\-\' +%left \'*\' \'/\' \'%\' +%left UMINUS /* supplies precedence for unary minus */ + +%% /* beginning of rules section */ + +list : /* empty */ + | list stat \'\en\' + | list error \'\en\' + { yyerrok; } + ; + +stat : expr + { printf( "%d\en", $1 ); } + | LETTER \'=\' expr + { regs[$1] = $3; } + ; + +expr : \'(\' expr \')\' + { $$ = $2; } + | expr \'+\' expr + { $$ = $1 + $3; } + | expr \'\-\' expr + { $$ = $1 \- $3; } + | expr \'*\' expr + { $$ = $1 * $3; } + | expr \'/\' expr + { $$ = $1 / $3; } + | expr \'%\' expr + { $$ = $1 % $3; } + | expr \'&\' expr + { $$ = $1 & $3; } + | expr \'|\' expr + { $$ = $1 | $3; } + | \'\-\' expr %prec UMINUS + { $$ = \- $2; } + | LETTER + { $$ = regs[$1]; } + | number + ; + +number : DIGIT + { $$ = $1; base = ($1==0) ? 8 : 10; } + | number DIGIT + { $$ = base * $1 + $2; } + ; + +%% /* start of programs */ + +yylex() { /* lexical analysis routine */ + /* returns LETTER for a lower case letter, yylval = 0 through 25 */ + /* return DIGIT for a digit, yylval = 0 through 9 */ + /* all other characters are returned immediately */ + + int c; + + while( (c=getchar()) == \' \' ) { /* skip blanks */ } + + /* c is now nonblank */ + + if( islower( c ) ) { + yylval = c \- \'a\'; + return ( LETTER ); + } + if( isdigit( c ) ) { + yylval = c \- \'0\'; + return( DIGIT ); + } + return( c ); + } +.fi +.bp diff --git a/doc/ps1/15.yacc/ssb b/doc/ps1/15.yacc/ssb new file mode 100644 index 00000000..0256e9fa --- /dev/null +++ b/doc/ps1/15.yacc/ssb @@ -0,0 +1,110 @@ +.\" @(#)ssb 6.1 (Berkeley) 5/8/86 +.\" +.SH +Appendix B: Yacc Input Syntax +.PP +This Appendix has a description of the Yacc input syntax, as a Yacc specification. +Context dependencies, etc., are not considered. +Ironically, the Yacc input specification language +is most naturally specified as an LR(2) grammar; the sticky +part comes when an identifier is seen in a rule, immediately +following an action. +If this identifier is followed by a colon, it is the start of the +next rule; otherwise +it is a continuation of the current rule, which just happens to have +an action embedded in it. +As implemented, the lexical analyzer looks +ahead after seeing an identifier, and +decide whether the next token (skipping blanks, newlines, comments, etc.) +is a colon. +If so, it returns the token C_IDENTIFIER. +Otherwise, it returns IDENTIFIER. +Literals (quoted strings) are also returned as IDENTIFIERS, +but never as part of C_IDENTIFIERs. +.sp +.nf +.ta .6i 1.2i 1.8i 2.4i 3i 3.6i + + /* grammar for the input to Yacc */ + + /* basic entities */ +%token IDENTIFIER /* includes identifiers and literals */ +%token C_IDENTIFIER /* identifier (but not literal) followed by colon */ +%token NUMBER /* [0-9]+ */ + + /* reserved words: %type => TYPE, %left => LEFT, etc. */ + +%token LEFT RIGHT NONASSOC TOKEN PREC TYPE START UNION + +%token MARK /* the %% mark */ +%token LCURL /* the %{ mark */ +%token RCURL /* the %} mark */ + + /* ascii character literals stand for themselves */ + +%start spec + +%% + +spec : defs MARK rules tail + ; + +tail : MARK { \fIIn this action, eat up the rest of the file\fR } + | /* empty: the second MARK is optional */ + ; + +defs : /* empty */ + | defs def + ; + +def : START IDENTIFIER + | UNION { \fICopy union definition to output\fR } + | LCURL { \fICopy C code to output file\fR } RCURL + | ndefs rword tag nlist + ; + +rword : TOKEN + | LEFT + | RIGHT + | NONASSOC + | TYPE + ; + +tag : /* empty: union tag is optional */ + | \'<\' IDENTIFIER \'>\' + ; + +nlist : nmno + | nlist nmno + | nlist \',\' nmno + ; + +nmno : IDENTIFIER /* NOTE: literal illegal with %type */ + | IDENTIFIER NUMBER /* NOTE: illegal with %type */ + ; + + /* rules section */ + +rules : C_IDENTIFIER rbody prec + | rules rule + ; + +rule : C_IDENTIFIER rbody prec + | '|' rbody prec + ; + +rbody : /* empty */ + | rbody IDENTIFIER + | rbody act + ; + +act : \'{\' { \fICopy action, translate $$, etc.\fR } \'}\' + ; + +prec : /* empty */ + | PREC IDENTIFIER + | PREC IDENTIFIER act + | prec \';\' + ; +.fi +.bp diff --git a/doc/ps1/15.yacc/ssc b/doc/ps1/15.yacc/ssc new file mode 100644 index 00000000..f207d197 --- /dev/null +++ b/doc/ps1/15.yacc/ssc @@ -0,0 +1,311 @@ +.\" @(#)ssc 6.1 (Berkeley) 5/8/86 +.\" +.SH +Appendix C: An Advanced Example +.PP +This Appendix gives an example of a grammar using some +of the advanced features discussed in Section 10. +The desk calculator example in Appendix A is +modified to provide a desk calculator that +does floating point interval arithmetic. +The calculator understands floating point +constants, the arithmetic operations +, \-, *, /, +unary \-, and = (assignment), and has 26 floating +point variables, ``a'' through ``z''. +Moreover, it also understands +.I intervals , +written +.DS + ( x , y ) +.DE +where +.I x +is less than or equal to +.I y . +There are 26 interval valued variables ``A'' through ``Z'' +that may also be used. +The usage is similar to that in Appendix A; assignments +return no value, and print nothing, while expressions print +the (floating or interval) value. +.PP +This example explores a number of interesting features +of Yacc and C. +Intervals are represented by a structure, consisting of the +left and right endpoint values, stored as +.I double 's. +This structure is given a type name, INTERVAL, by using +.I typedef . +The Yacc value stack can also contain floating point scalars, and +integers (used to index into the arrays holding the variable values). +Notice that this entire strategy depends strongly on being able to +assign structures and unions in C. +In fact, many of the actions call functions that return structures +as well. +.PP +It is also worth noting the use of YYERROR to handle error conditions: +division by an interval containing 0, and an interval presented in +the wrong order. +In effect, the error recovery mechanism of Yacc is used to throw away the +rest of the offending line. +.PP +In addition to the mixing of types on the value stack, +this grammar also demonstrates an interesting use of syntax to +keep track of the type (e.g. scalar or interval) of intermediate +expressions. +Note that a scalar can be automatically promoted to an interval if +the context demands an interval value. +This causes a large number of conflicts when the grammar is run through +Yacc: 18 Shift/Reduce and 26 Reduce/Reduce. +The problem can be seen by looking at the two input lines: +.DS + 2.5 + ( 3.5 \- 4. ) +.DE +and +.DS + 2.5 + ( 3.5 , 4. ) +.DE +Notice that the 2.5 is to be used in an interval valued expression +in the second example, but this fact is not known until +the ``,'' is read; by this time, 2.5 is finished, and the parser cannot go back +and change its mind. +More generally, it might be necessary to look ahead an arbitrary number of +tokens to decide whether to convert a scalar to an interval. +This problem is evaded by having two rules for each binary interval +valued operator: one when the left operand is a scalar, and one when +the left operand is an interval. +In the second case, the right operand must be an interval, +so the conversion will be applied automatically. +Despite this evasion, there are still many cases where the +conversion may be applied or not, leading to the above +conflicts. +They are resolved by listing the rules that yield scalars first +in the specification file; in this way, the conflicts will +be resolved in the direction of keeping scalar +valued expressions scalar valued until they are forced to become +intervals. +.PP +This way of handling multiple types is very instructive, but not very general. +If there were many kinds of expression types, instead of just two, +the number of rules needed would increase dramatically, and the conflicts +even more dramatically. +Thus, while this example is instructive, it is better practice in a +more normal programming language environment to +keep the type information as part of the value, and not as part +of the grammar. +.PP +Finally, a word about the lexical analysis. +The only unusual feature is the treatment of floating point constants. +The C library routine +.I atof +is used to do the actual conversion from a character string +to a double precision value. +If the lexical analyzer detects an error, +it responds by returning a token that +is illegal in the grammar, provoking a syntax error +in the parser, and thence error recovery. +.DS L + +%{ + +# include +# include + +typedef struct interval { + double lo, hi; + } INTERVAL; + +INTERVAL vmul(), vdiv(); + +double atof(); + +double dreg[ 26 ]; +INTERVAL vreg[ 26 ]; + +%} + +%start lines + +%union { + int ival; + double dval; + INTERVAL vval; + } + +%token DREG VREG /* indices into dreg, vreg arrays */ + +%token CONST /* floating point constant */ + +%type dexp /* expression */ + +%type vexp /* interval expression */ + + /* precedence information about the operators */ + +%left \'+\' \'\-\' +%left \'*\' \'/\' +%left UMINUS /* precedence for unary minus */ + +%% + +lines : /* empty */ + | lines line + ; + +line : dexp \'\en\' + { printf( "%15.8f\en", $1 ); } + | vexp \'\en\' + { printf( "(%15.8f , %15.8f )\en", $1.lo, $1.hi ); } + | DREG \'=\' dexp \'\en\' + { dreg[$1] = $3; } + | VREG \'=\' vexp \'\en\' + { vreg[$1] = $3; } + | error \'\en\' + { yyerrok; } + ; + +dexp : CONST + | DREG + { $$ = dreg[$1]; } + | dexp \'+\' dexp + { $$ = $1 + $3; } + | dexp \'\-\' dexp + { $$ = $1 \- $3; } + | dexp \'*\' dexp + { $$ = $1 * $3; } + | dexp \'/\' dexp + { $$ = $1 / $3; } + | \'\-\' dexp %prec UMINUS + { $$ = \- $2; } + | \'(\' dexp \')\' + { $$ = $2; } + ; + +vexp : dexp + { $$.hi = $$.lo = $1; } + | \'(\' dexp \',\' dexp \')\' + { + $$.lo = $2; + $$.hi = $4; + if( $$.lo > $$.hi ){ + printf( "interval out of order\en" ); + YYERROR; + } + } + | VREG + { $$ = vreg[$1]; } + | vexp \'+\' vexp + { $$.hi = $1.hi + $3.hi; + $$.lo = $1.lo + $3.lo; } + | dexp \'+\' vexp + { $$.hi = $1 + $3.hi; + $$.lo = $1 + $3.lo; } + | vexp \'\-\' vexp + { $$.hi = $1.hi \- $3.lo; + $$.lo = $1.lo \- $3.hi; } + | dexp \'\-\' vexp + { $$.hi = $1 \- $3.lo; + $$.lo = $1 \- $3.hi; } + | vexp \'*\' vexp + { $$ = vmul( $1.lo, $1.hi, $3 ); } + | dexp \'*\' vexp + { $$ = vmul( $1, $1, $3 ); } + | vexp \'/\' vexp + { if( dcheck( $3 ) ) YYERROR; + $$ = vdiv( $1.lo, $1.hi, $3 ); } + | dexp \'/\' vexp + { if( dcheck( $3 ) ) YYERROR; + $$ = vdiv( $1, $1, $3 ); } + | \'\-\' vexp %prec UMINUS + { $$.hi = \-$2.lo; $$.lo = \-$2.hi; } + | \'(\' vexp \')\' + { $$ = $2; } + ; + +%% + +# define BSZ 50 /* buffer size for floating point numbers */ + + /* lexical analysis */ + +yylex(){ + register c; + + while( (c=getchar()) == \' \' ){ /* skip over blanks */ } + + if( isupper( c ) ){ + yylval.ival = c \- \'A\'; + return( VREG ); + } + if( islower( c ) ){ + yylval.ival = c \- \'a\'; + return( DREG ); + } + + if( isdigit( c ) || c==\'.\' ){ + /* gobble up digits, points, exponents */ + + char buf[BSZ+1], *cp = buf; + int dot = 0, exp = 0; + + for( ; (cp\-buf)= BSZ ) printf( "constant too long: truncated\en" ); + else ungetc( c, stdin ); /* push back last char read */ + yylval.dval = atof( buf ); + return( CONST ); + } + return( c ); + } + +INTERVAL hilo( a, b, c, d ) double a, b, c, d; { + /* returns the smallest interval containing a, b, c, and d */ + /* used by *, / routines */ + INTERVAL v; + + if( a>b ) { v.hi = a; v.lo = b; } + else { v.hi = b; v.lo = a; } + + if( c>d ) { + if( c>v.hi ) v.hi = c; + if( dv.hi ) v.hi = d; + if( c= 0. && v.lo <= 0. ){ + printf( "divisor interval contains 0.\en" ); + return( 1 ); + } + return( 0 ); + } + +INTERVAL vdiv( a, b, v ) double a, b; INTERVAL v; { + return( hilo( a/v.hi, a/v.lo, b/v.hi, b/v.lo ) ); + } +.DE +.bp diff --git a/doc/ps1/15.yacc/ssd b/doc/ps1/15.yacc/ssd new file mode 100644 index 00000000..e576d9a9 --- /dev/null +++ b/doc/ps1/15.yacc/ssd @@ -0,0 +1,40 @@ +.\" @(#)ssd 6.1 (Berkeley) 5/8/86 +.\" +.SH +Appendix D: Old Features Supported but not Encouraged +.PP +This Appendix mentions synonyms and features which are supported for historical +continuity, but, for various reasons, are not encouraged. +.IP 1. +Literals may also be delimited by double quotes ``"''. +.IP 2. +Literals may be more than one character long. +If all the characters are alphabetic, numeric, or \_, the type number of the literal is defined, +just as if the literal did not have the quotes around it. +Otherwise, it is difficult to find the value for such literals. +.IP +The use of multi-character literals is likely to mislead those unfamiliar with +Yacc, since it suggests that Yacc is doing a job which must be actually done by the lexical analyzer. +.IP 3. +Most places where % is legal, backslash ``\e'' may be used. +In particular, \e\e is the same as %%, \eleft the same as %left, etc. +.IP 4. +There are a number of other synonyms: +.DS +%< is the same as %left +%> is the same as %right +%binary and %2 are the same as %nonassoc +%0 and %term are the same as %token +%= is the same as %prec +.DE +.IP 5. +Actions may also have the form +.DS +={ . . . } +.DE +and the curly braces can be dropped if the action is a +single C statement. +.IP 6. +C code between %{ and %} used to be permitted at the +head of the rules section, as well as in the +declaration section. diff --git a/doc/ps1/16.lex/Makefile b/doc/ps1/16.lex/Makefile new file mode 100644 index 00000000..ded04fa8 --- /dev/null +++ b/doc/ps1/16.lex/Makefile @@ -0,0 +1,26 @@ +# +# Copyright (c) 1986 Regents of the University of California. +# All rights reserved. The Berkeley software License Agreement +# specifies the terms and conditions for redistribution. +# +# @(#)Makefile 6.1 (Berkeley) 4/28/86 +# +SRCS= lex.ms +MACROS= -msU +PRINTER=Pdp +TBL= dtbl -${PRINTER} +TROFF= ditroff -${PRINTER} + +paper: paper.${PRINTER} + lpr -${PRINTER} -n paper.${PRINTER} + +paper.${PRINTER}: ${SRCS} + ${TBL} ${SRCS} | ${TROFF} ${MACROS} -t > paper.${PRINTER} + +clean: + rm -f paper.[PT]* *.spell errs Errs make.out + +spell: ${SRCS} + @for i in ${SRCS}; do \ + echo $$i; spell $$i | sort | comm -23 - spell.ok > $$i.spell; \ + done diff --git a/doc/ps1/16.lex/lex.ms b/doc/ps1/16.lex/lex.ms new file mode 100644 index 00000000..5e690960 --- /dev/null +++ b/doc/ps1/16.lex/lex.ms @@ -0,0 +1,2305 @@ +.\" @(#)lex.ms 6.2 (Berkeley) 5/1/87 +.\" +.EH 'PS1:16-%''Lex \- A Lexical Analyzer Generator' +.OH 'Lex \- A Lexical Analyzer Generator''PS1:16-%' +.hc ~ +.bd I 2 +.de TS +.br +.nf +.SP 1v +.ul 0 +.. +.de TE +.SP 1v +.fi +.. +.\".de PT +.\".if \\n%>1 'tl ''\s7LEX\s0\s9\(mi%\s0'' +.\".if \\n%>1 'sp +.\".. +.ND July 21, 1975 +.\".RP +.\".TM 75-1274-15 39199 39199-11 +.TL +Lex \- A Lexical Analyzer ~Generator~ +.AU ``MH 2C-569'' 6377 +M. E. Lesk and E. Schmidt +.AI +.MH +.AB +.sp +.bd I 2 +.\".nr PS 8 +.\".nr VS 9 +.\".ps 8 +.\".vs 9p +Lex helps write programs whose control flow +is directed by instances of regular +expressions in the input stream. +It is well suited for editor-script type transformations and +for segmenting input in preparation for +a parsing routine. +.PP +Lex source is a table of regular expressions and corresponding program fragments. +The table is translated to a program +which reads an input stream, copying it to an output stream +and partitioning the input +into strings which match the given expressions. +As each such string is recognized the corresponding +program fragment is executed. +The recognition of the expressions +is performed by a deterministic finite automaton +generated by Lex. +The program fragments written by the user are executed in the order in which the +corresponding regular expressions occur in the input stream. +.if n .if \n(tm .ig +.PP +The lexical analysis +programs written with Lex accept ambiguous specifications +and choose the longest +match possible at each input point. +If necessary, substantial look~ahead +is performed on the input, but the +input stream will be backed up to the +end of the current partition, so that the user +has general freedom to manipulate it. +.PP +Lex can generate analyzers in either C or Ratfor, a language +which can be translated automatically to portable Fortran. +It is available on the PDP-11 UNIX, Honeywell GCOS, +and IBM OS systems. +This manual, however, will only discuss generating analyzers +in C on the UNIX system, which is the only supported +form of Lex under UNIX Version 7. +Lex is designed to simplify +interfacing with Yacc, for those +with access to this compiler-compiler system. +.. +.\".nr PS 9 +.\".nr VS 11 +.AE +.2C +.NH +Introduction. +.PP +Lex is a program generator designed for +lexical processing of character input streams. +It accepts a high-level, problem oriented specification +for character string matching, +and +produces a program in a general purpose language which recognizes +regular expressions. +The regular expressions are specified by the user in the +source specifications given to Lex. +The Lex written code recognizes these expressions +in an input stream and partitions the input stream into +strings matching the expressions. At the bound~aries +between strings +program sections +provided by the user are executed. +The Lex source file associates the regular expressions and the +program fragments. +As each expression appears in the input to the program written by Lex, +the corresponding fragment is executed. +.PP +.de MH +Bell Laboratories, Murray Hill, NJ 07974. +.. +The user supplies the additional code +beyond expression matching +needed to complete his tasks, possibly +including code written by other generators. +The program that recognizes the expressions is generated in the +general purpose programming language employed for the +user's program fragments. +Thus, a high level expression +language is provided to write the string expressions to be +matched while the user's freedom to write actions +is unimpaired. +This avoids forcing the user who wishes to use a string manipulation +language for input analysis to write processing programs in the same +and often inappropriate string handling language. +.PP +Lex is not a complete language, but rather a generator representing +a new language feature which can be added to +different programming languages, called ``host languages.'' +Just as general purpose languages +can produce code to run on different computer hardware, +Lex can write code in different host languages. +The host language is used for the output code generated by Lex +and also for the program fragments added by the user. +Compatible run-time libraries for the different host languages +are also provided. +This makes Lex adaptable to different environments and +different users. +Each application +may be directed to the combination of hardware and host language appropriate +to the task, the user's background, and the properties of local +implementations. +At present, the only supported host language is C, +although Fortran (in the form of Ratfor [2] has been available +in the past. +Lex itself exists on UNIX, GCOS, and OS/370; but the +code generated by Lex may be taken anywhere the appropriate +compilers exist. +.PP +Lex turns the user's expressions and actions +(called +.ul +source +in this memo) into the host general-purpose language; +the generated program is named +.ul +yylex. +The +.ul +yylex +program +will recognize expressions +in a stream +(called +.ul +input +in this memo) +and perform the specified actions for each expression as it is detected. +See Figure 1. +.GS +.TS +center; +l _ r +l|c|r +l _ r +l _ r +l|c|r +l _ r +c s s +c s s. + +Source \(-> Lex \(-> yylex + +.sp 2 + +Input \(-> yylex \(-> Output + +.sp +An overview of Lex +Figure 1 +.TE +.GE +.PP +For a trivial example, consider a program to delete +from the input +all blanks or tabs at the ends of lines. +.TS +center; +l l. +%% +[ \et]+$ ; +.TE +is all that is required. +The program +contains a %% delimiter to mark the beginning of the rules, and +one rule. +This rule contains a regular expression +which matches one or more +instances of the characters blank or tab +(written \et for visibility, in accordance with the C language convention) +just prior to the end of a line. +The brackets indicate the character +class made of blank and tab; the + indicates ``one or more ...''; +and the $ indicates ``end of line,'' as in QED. +No action is specified, +so the program generated by Lex (yylex) will ignore these characters. +Everything else will be copied. +To change any remaining +string of blanks or tabs to a single blank, +add another rule: +.TS +center; +l l. +%% +[ \et]+$ ; +[ \et]+ printf(" "); +.TE +The finite automaton generated for this +source will scan for both rules at once, +observing at +the termination of the string of blanks or tabs +whether or not there is a newline character, and executing +the desired rule action. +The first rule matches all strings of blanks or tabs +at the end of lines, and the second +rule all remaining strings of blanks or tabs. +.PP +Lex can be used alone for simple transformations, or +for analysis and statistics gathering on a lexical level. +Lex can also be used with a parser generator +to perform the lexical analysis phase; it is particularly +easy to interface Lex and Yacc [3]. +Lex programs recognize only regular expressions; +Yacc writes parsers that accept a large class of context free grammars, +but require a lower level analyzer to recognize input tokens. +Thus, a combination of Lex and Yacc is often appropriate. +When used as a preprocessor for a later parser generator, +Lex is used to partition the input stream, +and the parser generator assigns structure to +the resulting pieces. +The flow of control +in such a case (which might be the first half of a compiler, +for example) is shown in Figure 2. +Additional programs, +written by other generators +or by hand, can +be added easily to programs written by Lex. +.BS 2 +.ps 9 +.vs 11 +.TS +center; +l c c c l +l c c c l +l c c c l +l _ c _ l +l|c|c|c|l +l _ c _ l +l c c c l +l _ c _ l +l|c|c|c|l +l _ c _ l +l c s s l +l c s s l. + lexical grammar + rules rules + \(da \(da + + Lex Yacc + + \(da \(da + +Input \(-> yylex \(-> yyparse \(-> Parsed input + +.sp + Lex with Yacc + Figure 2 +.TE +.ps 10 +.vs 12 +.BE +Yacc users +will realize that the name +.ul +yylex +is what Yacc expects its lexical analyzer to be named, +so that the use of this name by Lex simplifies +interfacing. +.PP +Lex generates a deterministic finite automaton from the regular expressions +in the source [4]. +The automaton is interpreted, rather than compiled, in order +to save space. +The result is still a fast analyzer. +In particular, the time taken by a Lex program +to recognize and partition an input stream is +proportional to the length of the input. +The number of Lex rules or +the complexity of the rules is +not important in determining speed, +unless rules which include +forward context require a significant amount of re~scanning. +What does increase with the number and complexity of rules +is the size of the finite +automaton, and therefore the size of the program +generated by Lex. +.PP +In the program written by Lex, the user's fragments +(representing the +.ul +actions +to be performed as each regular expression +is found) +are gathered +as cases of a switch. +The automaton interpreter directs the control flow. +Opportunity is provided for the user to insert either +declarations or additional statements in the routine containing +the actions, or to +add subroutines outside this action routine. +.PP +Lex is not limited to source which can +be interpreted on the basis of one character +look~ahead. +For example, +if there are two rules, one looking for +.I ab +and another for +.I abcdefg , +and the input stream is +.I abcdefh , +Lex will recognize +.I ab +and leave +the input pointer just before +.I "cd. . ." +Such backup is more costly +than the processing of simpler languages. +.2C +.NH +Lex Source. +.PP +The general format of Lex source is: +.TS +center; +l. +{definitions} +%% +{rules} +%% +{user subroutines} +.TE +where the definitions and the user subroutines +are often omitted. +The second +.I %% +is optional, but the first is required +to mark the beginning of the rules. +The absolute minimum Lex program is thus +.TS +center; +l. +%% +.TE +(no definitions, no rules) which translates into a program +which copies the input to the output unchanged. +.PP +In the outline of Lex programs shown above, the +.I +rules +.R +represent the user's control +decisions; they are a table, in which the left column +contains +.I +regular expressions +.R +(see section 3) +and the right column contains +.I +actions, +.R +program fragments to be executed when the expressions +are recognized. +Thus an individual rule might appear +.TS +center; +l l. +integer printf("found keyword INT"); +.TE +to look for the string +.I integer +in the input stream and +print the message ``found keyword INT'' whenever it appears. +In this example the host procedural language is C and +the C library function +.I +printf +.R +is used to print the string. +The end +of the expression is indicated by the first blank or tab character. +If the action is merely a single C expression, +it can just be given on the right side of the line; if it is +compound, or takes more than a line, it should be enclosed in +braces. +As a slightly more useful example, suppose it is desired to +change a number of words from British to American spelling. +Lex rules such as +.TS +center; +l l. +colour printf("color"); +mechanise printf("mechanize"); +petrol printf("gas"); +.TE +would be a start. These rules are not quite enough, +since +the word +.I petroleum +would become +.I gaseum ; +a way of dealing +with this will be described later. +.2C +.NH +Lex Regular Expressions. +.PP +The definitions of regular expressions are very similar to those +in QED [5]. +A regular +expression specifies a set of strings to be matched. +It contains text characters (which match the corresponding +characters in the strings being compared) +and operator characters (which specify +repetitions, choices, and other features). +The letters of the alphabet and the digits are +always text characters; thus the regular expression +.TS +center; +l l. +integer +.TE +matches the string +.ul +integer +wherever it appears +and the expression +.TS +center; +l. +a57D +.TE +looks for the string +.ul +a57D. +.PP +.I +Operators. +.R +The operator characters are +.TS +center; +l. +" \e [ ] ^ \- ? . \(** + | ( ) $ / { } % < > +.TE +and if they are to be used as text characters, an escape +should be used. +The quotation mark operator (") +indicates that whatever is contained between a pair of quotes +is to be taken as text characters. +Thus +.TS +center; +l. +xyz"++" +.TE +matches the string +.I xyz++ +when it appears. Note that a part of a string may be quoted. +It is harmless but unnecessary to quote an ordinary +text character; the expression +.TS +center; +l. +"xyz++" +.TE +is the same as the one above. +Thus by quoting every non-alphanumeric character +being used as a text character, the user can avoid remembering +the list above of current +operator characters, and is safe should further extensions to Lex +lengthen the list. +.PP +An operator character may also be turned into a text character +by preceding it with \e as in +.TS +center; +l. +xyz\e+\e+ +.TE +which +is another, less readable, equivalent of the above expressions. +Another use of the quoting mechanism is to get a blank into +an expression; normally, as explained above, blanks or tabs end +a rule. +Any blank character not contained within [\|] (see below) must +be quoted. +Several normal C escapes with \e +are recognized: \en is newline, \et is tab, and \eb is backspace. +To enter \e itself, use \e\e. +Since newline is illegal in an expression, \en must be used; +it is not +required to escape tab and backspace. +Every character but blank, tab, newline and the list above is always +a text character. +.PP +.I +Character classes. +.R +Classes of characters can be specified using the operator pair [\|]. +The construction +.I [abc] +matches a +single character, which may be +.I a , +.I b , +or +.I c . +Within square brackets, +most operator meanings are ignored. +Only three characters are special: +these are \e \(mi and ^. The \(mi character +indicates ranges. For example, +.TS +center; +l. +[a\(miz0\(mi9<>_] +.TE +indicates the character class containing all the lower case letters, +the digits, +the angle brackets, and underline. +Ranges may be given in either order. +Using \(mi between any pair of characters which are +not both upper case letters, both lower case letters, or both digits +is implementation dependent and will get a warning message. +(E.g., [0\-z] in ASCII is many more characters +than it is in EBCDIC). +If it is desired to include the +character \(mi in a character class, it should be first or +last; thus +.TS +center; +l. +[\(mi+0\(mi9] +.TE +matches all the digits and the two signs. +.PP +In character classes, +the ^ operator must appear as the first character +after the left bracket; it indicates that the resulting string +is to be complemented with respect to the computer character set. +Thus +.TS +center; +l. +[^abc] +.TE +matches all characters except a, b, or c, including +all special or control characters; or +.TS +center; +l. +[^a\-zA\-Z] +.TE +is any character which is not a letter. +The \e character provides the usual escapes within +character class brackets. +.PP +.I +Arbitrary character. +.R +To match almost any character, the operator character +.TS +center; +l. +\&. +.TE +is the class of all characters except newline. +Escaping into octal is possible although non-portable: +.TS +center; +l. +[\e40\-\e176] +.TE +matches all printable characters in the ASCII character set, from octal +40 (blank) to octal 176 (tilde). +.PP +.I +Optional expressions. +.R +The operator +.I ? +indicates +an optional element of an expression. +Thus +.TS +center; +l. +ab?c +.TE +matches either +.I ac +or +.I abc . +.PP +.I +Repeated expressions. +.R +Repetitions of classes are indicated by the operators +.I \(** +and +.I + . +.TS +center; +l. +\f2a\(**\f1 +.TE +is any number of consecutive +.I a +characters, including zero; while +.TS +center; +l. +a+ +.TE +is one or more instances of +.I a. +For example, +.TS +center; +l. +[a\-z]+ +.TE +is all strings of lower case letters. +And +.TS +center; +l. +[A\(miZa\(miz][A\(miZa\(miz0\(mi9]\(** +.TE +indicates all alphanumeric strings with a leading +alphabetic character. +This is a typical expression for recognizing identifiers in +computer languages. +.PP +.I +Alternation and Grouping. +.R +The operator | +indicates alternation: +.TS +center; +l. +(ab\||\|cd) +.TE +matches either +.ul +ab +or +.ul +cd. +Note that parentheses are used for grouping, although +they are +not necessary on the outside level; +.TS +center; +l. +ab\||\|cd +.TE +would have sufficed. +Parentheses +can be used for more complex expressions: +.TS +center; +l. +(ab\||\|cd+)?(ef)\(** +.TE +matches such strings as +.I abefef , +.I efefef , +.I cdef , +or +.I cddd\| ; +but not +.I abc , +.I abcd , +or +.I abcdef . +.PP +.I +Context sensitivity. +.R +Lex will recognize a small amount of surrounding +context. The two simplest operators for this are +.I ^ +and +.I $ . +If the first character of an expression is +.I ^ , +the expression will only be matched at the beginning +of a line (after a newline character, or at the beginning of +the input stream). +This can never conflict with the other meaning of +.I ^ , +complementation +of character classes, since that only applies within +the [\|] operators. +If the very last character is +.I $ , +the expression will only be matched at the end of a line (when +immediately followed by newline). +The latter operator is a special case of the +.I / +operator character, +which indicates trailing context. +The expression +.TS +center; +l. +ab/cd +.TE +matches the string +.I ab , +but only if followed by +.ul +cd. +Thus +.TS +center; +l. +ab$ +.TE +is the same as +.TS +center; +l. +ab/\en +.TE +Left context is handled in Lex by +.I +start conditions +.R +as explained in section 10. If a rule is only to be executed +when the Lex automaton interpreter is in start condition +.I +x, +.R +the rule should be prefixed by +.TS +center; +l. + +.TE +using the angle bracket operator characters. +If we considered ``being at the beginning of a line'' to be +start condition +.I ONE , +then the ^ operator +would be equivalent to +.TS +center; +l. + +.TE +Start conditions are explained more fully later. +.PP +.I +Repetitions and Definitions. +.R +The operators {} specify +either repetitions (if they enclose numbers) +or +definition expansion (if they enclose a name). For example +.TS +center; +l. +{digit} +.TE +looks for a predefined string named +.I digit +and inserts it +at that point in the expression. +The definitions are given in the first part of the Lex +input, before the rules. +In contrast, +.TS +center; +l. +a{1,5} +.TE +looks for 1 to 5 occurrences of +.I a . +.PP +Finally, initial +.I % +is special, being the separator +for Lex source segments. +.2C +.NH +Lex Actions. +.PP +When an expression written as above is matched, Lex +executes the corresponding action. This section describes +some features of Lex which aid in writing actions. Note +that there is a default action, which +consists of copying the input to the output. This +is performed on all strings not otherwise matched. Thus +the Lex user who wishes to absorb the entire input, without +producing any output, must provide rules to match everything. +When Lex is being used with Yacc, this is the normal +situation. +One may consider that actions are what is done instead of +copying the input to the output; thus, in general, +a rule which merely copies can be omitted. +Also, a character combination +which is omitted from the rules +and which appears as input +is likely to be printed on the output, thus calling +attention to the gap in the rules. +.PP +One of the simplest things that can be done is to ignore +the input. Specifying a C null statement, \fI;\fR as an action +causes this result. A frequent rule is +.TS +center; +l l. +[ \et\en] ; +.TE +which causes the three spacing characters (blank, tab, and newline) +to be ignored. +.PP +Another easy way to avoid writing actions is the action character +|, which indicates that the action for this rule is the action +for the next rule. +The previous example could also have been written +.TS +center; +l l. +" " | +"\et" | +"\en" ; +.TE +with the same result, although in different style. +The quotes around \en and \et are not required. +.PP +In more complex actions, the user +will +often want to know the actual text that matched some expression +like +.I [a\(miz]+ . +Lex leaves this text in an external character +array named +.I +yytext. +.R +Thus, to print the name found, +a rule like +.TS +center; +l l. +[a\-z]+ printf("%s", yytext); +.TE +will print +the string in +.I +yytext. +.R +The C function +.I +printf +.R +accepts a format argument and data to be printed; +in this case, the format is ``print string'' (% indicating +data conversion, and +.I s +indicating string type), +and the data are the characters +in +.I +yytext. +.R +So this just places +the matched string +on the output. +This action +is so common that +it may be written as ECHO: +.TS +center; +l l. +[a\-z]+ ECHO; +.TE +is the same as the above. +Since the default action is just to +print the characters found, one might ask why +give a rule, like this one, which merely specifies +the default action? +Such rules are often required +to avoid matching some other rule +which is not desired. For example, if there is a rule +which matches +.I read +it will normally match the instances of +.I read +contained in +.I bread +or +.I readjust ; +to avoid +this, +a rule +of the form +.I [a\(miz]+ +is needed. +This is explained further below. +.PP +Sometimes it is more convenient to know the end of what +has been found; hence Lex also provides a count +.I +yyleng +.R +of the number of characters matched. +To count both the number +of words and the number of characters in words in the input, the user might write +.TS +center; +l l. +[a\-zA\-Z]+ {words++; chars += yyleng;} +.TE +which accumulates in +.ul +chars +the number +of characters in the words recognized. +The last character in the string matched can +be accessed by +.TS +center; +l. +yytext[yyleng\-1] +.TE +.PP +Occasionally, a Lex +action may decide that a rule has not recognized the correct +span of characters. +Two routines are provided to aid with this situation. +First, +.I +yymore() +.R +can be called to indicate that the next input expression recognized is to be +tacked on to the end of this input. Normally, +the next input string would overwrite the current +entry in +.I +yytext. +.R +Second, +.I +yyless (n) +.R +may be called to indicate that not all the characters matched +by the currently successful expression are wanted right now. +The argument +.I +n +.R +indicates the number of characters +in +.I +yytext +.R +to be retained. +Further characters previously matched +are +returned to the input. This provides the same sort of +look~ahead offered by the / operator, +but in a different form. +.PP +.I +Example: +.R +Consider a language which defines +a string as a set of characters between quotation (") marks, and provides that +to include a " in a string it must be preceded by a \e. The +regular expression which matches that is somewhat confusing, +so that it might be preferable to write +.TS +center; +l l. +\e"[^"]\(** { + if (yytext[yyleng\-1] == \(fm\e\e\(fm) + yymore(); + else + ... normal user processing + } +.TE +which will, when faced with a string such as +.I +"abc\e"def\|" +.R +first match +the five characters +\fI"abc\e\|\fR; +then +the call to +.I yymore() +will +cause the next part of the string, +\fI"def\|\fR, +to be tacked on the end. +Note that the final quote terminating the string should be picked +up in the code labeled ``normal processing''. +.PP +The function +.I +yyless() +.R +might be used to reprocess +text in various circumstances. Consider the C problem of distinguishing +the ambiguity of ``=\(mia''. +Suppose it is desired to treat this as ``=\(mi a'' +but print a message. A rule might be +.ps 9 +.vs 11 +.TS +center; +l l. +=\(mi[a\-zA\-Z] { + printf("Op (=\(mi) ambiguous\en"); + yyless(yyleng\-1); + ... action for =\(mi ... + } +.TE +.ps 10 +.vs 12 +which prints a message, returns the letter after the +operator to the input stream, and treats the operator as ``=\(mi''. +Alternatively it might be desired to treat this as ``= \(mia''. +To do this, just return the minus +sign as well as the letter to the input: +.ps 9 +.vs 11 +.TS +center; +l l. +=\(mi[a\-zA\-Z] { + printf("Op (=\(mi) ambiguous\en"); + yyless(yyleng\-2); + ... action for = ... + } +.TE +.ps 10 +.vs 12 +will perform the other interpretation. +Note that the expressions for the two cases might more easily +be written +.TS +center; +l l. +=\(mi/[A\-Za\-z] +.TE +in the first case and +.TS +center; +l. +=/\-[A\-Za\-z] +.TE +in the second; +no backup would be required in the rule action. +It is not necessary to recognize the whole identifier +to observe the ambiguity. +The +possibility of ``=\(mi3'', however, makes +.TS +center; +l. +=\(mi/[^ \et\en] +.TE +a still better rule. +.PP +In addition to these routines, Lex also permits +access to the I/O routines +it uses. +They are: +.IP 1) +.I +input() +.R +which returns the next input character; +.IP 2) +.I +output(c) +.R +which writes the character +.I +c +.R +on the output; and +.IP 3) +.I +unput(c) +.R +pushes the character +.I +c +.R +back onto the input stream to be read later by +.I +input(). +.R +.LP +By default these routines are provided as macro definitions, +but the user can override them and supply private versions. +These routines +define the relationship between external files and +internal characters, and must all be retained +or modified consistently. +They may be redefined, to +cause input or output to be transmitted to or from strange +places, including other programs or internal memory; +but the character set used must be consistent in all routines; +a value of zero returned by +.I +input +.R +must mean end of file; and +the relationship between +.I +unput +.R +and +.I +input +.R +must be retained +or the Lex look~ahead will not work. +Lex does not look ahead at all if it does not have to, +but every rule ending in +.ft I ++ \(** ? +.ft R +or +.ft I +$ +.ft R +or containing +.ft I +/ +.ft R +implies look~ahead. +Look~ahead is also necessary to match an expression that is a prefix +of another expression. +See below for a discussion of the character set used by Lex. +The standard Lex library imposes +a 100 character limit on backup. +.PP +Another Lex library routine that the user will sometimes want +to redefine is +.I +yywrap() +.R +which is called whenever Lex reaches an end-of-file. +If +.I +yywrap +.R +returns a 1, Lex continues with the normal wrapup on end of input. +Sometimes, however, it is convenient to arrange for more +input to arrive +from a new source. +In this case, the user should provide +a +.I +yywrap +.R +which +arranges for new input and +returns 0. This instructs Lex to continue processing. +The default +.I +yywrap +.R +always returns 1. +.PP +This routine is also a convenient place +to print tables, summaries, etc. at the end +of a program. Note that it is not +possible to write a normal rule which recognizes +end-of-file; the only access to this condition is +through +.I +yywrap. +.R +In fact, unless a private version of +.I +input() +.R +is supplied +a file containing nulls +cannot be handled, +since a value of 0 returned by +.I +input +.R +is taken to be end-of-file. +.PP +.2C +.NH +Ambiguous Source Rules. +.PP +Lex can handle ambiguous specifications. +When more than one expression can match the +current input, Lex chooses as follows: +.IP 1) +The longest match is preferred. +.IP 2) +Among rules which matched the same number of characters, +the rule given first is preferred. +.LP +Thus, suppose the rules +.TS +center; +l l. +integer keyword action ...; +[a\-z]+ identifier action ...; +.TE +to be given in that order. If the input is +.I integers , +it is taken as an identifier, because +.I [a\-z]+ +matches 8 characters while +.I integer +matches only 7. +If the input is +.I integer , +both rules match 7 characters, and +the keyword rule is selected because it was given first. +Anything shorter (e.g. \fIint\fR\|) will +not match the expression +.I integer +and so the identifier interpretation is used. +.PP +The principle of preferring the longest +match makes rules containing +expressions like +.I \&.\(** +dangerous. +For example, +.TS +center; +l. +\&\(fm.\(**\(fm +.TE +might seem a good way of recognizing +a string in single quotes. +But it is an invitation for the program to read far +ahead, looking for a distant +single quote. +Presented with the input +.TS +center; +l l. +\&\(fmfirst\(fm quoted string here, \(fmsecond\(fm here +.TE +the above expression will match +.TS +center; +l l. +\&\(fmfirst\(fm quoted string here, \(fmsecond\(fm +.TE +which is probably not what was wanted. +A better rule is of the form +.TS +center; +l. +\&\(fm[^\(fm\en]\(**\(fm +.TE +which, on the above input, will stop +after +.I \(fmfirst\(fm . +The consequences +of errors like this are mitigated by the fact +that the +.I \&. +operator will not match newline. +Thus expressions like +.I \&.\(** +stop on the +current line. +Don't try to defeat this with expressions like +.I (.|\en)+ +or +equivalents; +the Lex generated program will try to read +the entire input file, causing +internal buffer overflows. +.PP +Note that Lex is normally partitioning +the input stream, not searching for all possible matches +of each expression. +This means that each character is accounted for +once and only once. +For example, suppose it is desired to +count occurrences of both \fIshe\fR and \fIhe\fR in an input text. +Some Lex rules to do this might be +.TS +center; +l l. +she s++; +he h++; +\en | +\&. ; +.TE +where the last two rules ignore everything besides \fIhe\fR and \fIshe\fR. +Remember that . does not include newline. +Since \fIshe\fR includes \fIhe\fR, Lex will normally +.I +not +.R +recognize +the instances of \fIhe\fR included in \fIshe\fR, +since once it has passed a \fIshe\fR those characters are gone. +.PP +Sometimes the user would like to override this choice. The action +REJECT +means ``go do the next alternative.'' +It causes whatever rule was second choice after the current +rule to be executed. +The position of the input pointer is adjusted accordingly. +Suppose the user really wants to count the included instances of \fIhe\fR: +.TS +center; +l l. +she {s++; REJECT;} +he {h++; REJECT;} +\en | +\&. ; +.TE +these rules are one way of changing the previous example +to do just that. +After counting each expression, it is rejected; whenever appropriate, +the other expression will then be counted. In this example, of course, +the user could note that \fIshe\fR includes \fIhe\fR but not +vice versa, and omit the REJECT action on \fIhe\fR; +in other cases, however, it +would not be possible a priori to tell +which input characters +were in both classes. +.PP +Consider the two rules +.TS +center; +l l. +a[bc]+ { ... ; REJECT;} +a[cd]+ { ... ; REJECT;} +.TE +If the input is +.I ab , +only the first rule matches, +and on +.I ad +only the second matches. +The input string +.I accb +matches the first rule for four characters +and then the second rule for three characters. +In contrast, the input +.I accd +agrees with +the second rule for four characters and then the first +rule for three. +.PP +In general, REJECT is useful whenever +the purpose of Lex is not to partition the input +stream but to detect all examples of some items +in the input, and the instances of these items +may overlap or include each other. +Suppose a digram table of the input is desired; +normally the digrams overlap, that is the word +.I the +is considered to contain +both +.I th +and +.I he . +Assuming a two-dimensional array named +.ul +digram +to be incremented, the appropriate +source is +.TS +center; +l l. +%% +[a\-z][a\-z] { + digram[yytext[0]][yytext[1]]++; + REJECT; + } +\. ; +\en ; +.TE +where the REJECT is necessary to pick up +a letter pair beginning at every character, rather than at every +other character. +.2C +.NH +Lex Source Definitions. +.PP +Remember the format of the Lex +source: +.TS +center; +l. +{definitions} +%% +{rules} +%% +{user routines} +.TE +So far only the rules have been described. The user needs +additional options, +though, to define variables for use in his program and for use +by Lex. +These can go either in the definitions section +or in the rules section. +.PP +Remember that Lex is turning the rules into a program. +Any source not intercepted by Lex is copied +into the generated program. There are three classes +of such things. +.IP 1) +Any line which is not part of a Lex rule or action +which begins with a blank or tab is copied into +the Lex generated program. +Such source input prior to the first %% delimiter will be external +to any function in the code; if it appears immediately after the first +%%, +it appears in an appropriate place for declarations +in the function written by Lex which contains the actions. +This material must look like program fragments, +and should precede the first Lex rule. +.IP +As a side effect of the above, lines which begin with a blank +or tab, and which contain a comment, +are passed through to the generated program. +This can be used to include comments in either the Lex source or +the generated code. The comments should follow the host +language convention. +.IP 2) +Anything included between lines containing +only +.I %{ +and +.I %} +is +copied out as above. The delimiters are discarded. +This format permits entering text like preprocessor statements that +must begin in column 1, +or copying lines that do not look like programs. +.IP 3) +Anything after the third %% delimiter, regardless of formats, etc., +is copied out after the Lex output. +.PP +Definitions intended for Lex are given +before the first %% delimiter. Any line in this section +not contained between %{ and %}, and begining +in column 1, is assumed to define Lex substitution strings. +The format of such lines is +.TS +center; +l l. +name translation +.TE +and it +causes the string given as a translation to +be associated with the name. +The name and translation +must be separated by at least one blank or tab, and the name must begin with a letter. +The translation can then be called out +by the {name} syntax in a rule. +Using {D} for the digits and {E} for an exponent field, +for example, might abbreviate rules to recognize numbers: +.TS +center; +l l. +D [0\-9] +E [DEde][\-+]?{D}+ +%% +{D}+ printf("integer"); +{D}+"."{D}\(**({E})? | +{D}\(**"."{D}+({E})? | +{D}+{E} printf("real"); +.TE +Note the first two rules for real numbers; +both require a decimal point and contain +an optional exponent field, +but the first requires at least one digit before the +decimal point and the second requires at least one +digit after the decimal point. +To correctly handle the problem +posed by a Fortran expression such as +.I 35.EQ.I , +which does not contain a real number, a context-sensitive +rule such as +.TS +center; +l l. +[0\-9]+/"."EQ printf("integer"); +.TE +could be used in addition to the normal rule for integers. +.PP +The definitions +section may also contain other commands, including the +selection of a host language, a character set table, +a list of start conditions, or adjustments to the default +size of arrays within Lex itself for larger source programs. +These possibilities +are discussed below under ``Summary of Source Format,'' +section 12. +.2C +.NH +Usage. +.PP +There are two steps in +compiling a Lex source program. +First, the Lex source must be turned into a generated program +in the host general purpose language. +Then this program must be compiled and loaded, usually with +a library of Lex subroutines. +The generated program +is on a file named +.I lex.yy.c . +The I/O library is defined in terms of the C standard +library [6]. +.PP +The C programs generated by Lex are slightly different +on OS/370, because the +OS compiler is less powerful than the UNIX or GCOS compilers, +and does less at compile time. +C programs generated on GCOS and UNIX are the same. +.PP +.I +UNIX. +.R +The library is accessed by the loader flag +.I \-ll . +So an appropriate +set of commands is +.KS +.in 5 +lex source +cc lex.yy.c \-ll +.in 0 +.KE +The resulting program is placed on the usual file +.I +a.out +.R +for later execution. +To use Lex with Yacc see below. +Although the default Lex I/O routines use the C standard library, +the Lex automata themselves do not do so; +if private versions of +.I +input, +output +.R +and +.I unput +are given, the library can be avoided. +.PP +.2C +.NH +Lex and Yacc. +.PP +If you want to use Lex with Yacc, note that what Lex writes is a program +named +.I +yylex(), +.R +the name required by Yacc for its analyzer. +Normally, the default main program on the Lex library +calls this routine, but if Yacc is loaded, and its main +program is used, Yacc will call +.I +yylex(). +.R +In this case each Lex rule should end with +.TS +center; +l. +return(token); +.TE +where the appropriate token value is returned. +An easy way to get access +to Yacc's names for tokens is to +compile the Lex output file as part of +the Yacc output file by placing the line +.TS +center; +l. +# include "lex.yy.c" +.TE +in the last section of Yacc input. +Supposing the grammar to be +named ``good'' and the lexical rules to be named ``better'' +the UNIX command sequence can just be: +.TS +center; +l. +yacc good +lex better +cc y.tab.c \-ly \-ll +.TE +The Yacc library (\-ly) should be loaded before the Lex library, +to obtain a main program which invokes the Yacc parser. +The generations of Lex and Yacc programs can be done in +either order. +.2C +.NH +Examples. +.PP +As a trivial problem, consider copying an input file while +adding 3 to every positive number divisible by 7. +Here is a suitable Lex source program +.TS +center; +l l. +%% + int k; +[0\-9]+ { + k = atoi(yytext); + if (k%7 == 0) + printf("%d", k+3); + else + printf("%d",k); + } +.TE +to do just that. +The rule [0\-9]+ recognizes strings of digits; +.I +atoi +.R +converts the digits to binary +and stores the result in +.ul +k. +The operator % (remainder) is used to check whether +.ul +k +is divisible by 7; if it is, +it is incremented by 3 as it is written out. +It may be objected that this program will alter such +input items as +.I 49.63 +or +.I X7 . +Furthermore, it increments the absolute value +of all negative numbers divisible by 7. +To avoid this, just add a few more rules after the active one, +as here: +.TS +center; +l l. +%% + int k; +\-?[0\-9]+ { + k = atoi(yytext); + printf("%d", + k%7 == 0 ? k+3 : k); + } +\-?[0\-9.]+ ECHO; +[A-Za-z][A-Za-z0-9]+ ECHO; +.TE +Numerical strings containing +a ``.'' or preceded by a letter will be picked up by +one of the last two rules, and not changed. +The +.I if\-else +has been replaced by +a C conditional expression to save space; +the form +.ul +a?b:c +means ``if +.I a +then +.I b +else +.I c ''. +.PP +For an example of statistics gathering, here +is a program which histograms the lengths +of words, where a word is defined as a string of letters. +.TS +center; +l l. + int lengs[100]; +%% +[a\-z]+ lengs[yyleng]++; +\&. | +\en ; +%% +.T& +l s. +yywrap() +{ +int i; +printf("Length No. words\en"); +for(i=0; i<100; i++) + if (lengs[i] > 0) + printf("%5d%10d\en",i,lengs[i]); +return(1); +} +.TE +This program +accumulates the histogram, while producing no output. At the end +of the input it prints the table. +The final statement +.I +return(1); +.R +indicates that Lex is to perform wrapup. If +.I +yywrap +.R +returns zero (false) +it implies that further input is available +and the program is +to continue reading and processing. +To provide a +.I +yywrap +.R +that never +returns true causes an infinite loop. +.PP +As a larger example, +here are some parts of a program written by N. L. Schryer +to convert double precision Fortran to single precision Fortran. +Because Fortran does not distinguish upper and lower case letters, +this routine begins by defining a set of classes including +both cases of each letter: +.TS +center; +l l. +a [aA] +b [bB] +c [cC] +\&... +z [zZ] +.TE +An additional class recognizes white space: +.TS +center; +l l. +W [ \et]\(** +.TE +The first rule changes +``double precision'' to ``real'', or ``DOUBLE PRECISION'' to ``REAL''. +.TS +center; +l. +{d}{o}{u}{b}{l}{e}{W}{p}{r}{e}{c}{i}{s}{i}{o}{n} { + printf(yytext[0]==\(fmd\(fm? "real" : "REAL"); + } +.TE +Care is taken throughout this program to preserve the case +(upper or lower) +of the original program. +The conditional operator is used to +select the proper form of the keyword. +The next rule copies continuation card indications to +avoid confusing them with constants: +.TS +center; +l l. +^" "[^ 0] ECHO; +.TE +In the regular expression, the quotes surround the +blanks. +It is interpreted as +``beginning of line, then five blanks, then +anything but blank or zero.'' +Note the two different meanings of +.I ^ . +There follow some rules to change double precision +constants to ordinary floating constants. +.TS +center; +l. +[0\-9]+{W}{d}{W}[+\-]?{W}[0\-9]+ | +[0\-9]+{W}"."{W}{d}{W}[+\-]?{W}[0\-9]+ | +"."{W}[0\-9]+{W}{d}{W}[+\-]?{W}[0\-9]+ { + /\(** convert constants \(**/ + for(p=yytext; \(**p != 0; p++) + { + if (\(**p == \(fmd\(fm || \(**p == \(fmD\(fm) + \(**p=+ \(fme\(fm\- \(fmd\(fm; + ECHO; + } +.TE +After the floating point constant is recognized, it is +scanned by the +.ul +for +loop +to find the letter +.I d +or +.I D . +The program than adds +.c +.I \(fme\(fm\-\(fmd\(fm , +which converts +it to the next letter of the alphabet. +The modified constant, now single-precision, +is written out again. +There follow a series of names which must be respelled to remove +their initial \fId\fR. +By using the +array +.I +yytext +.R +the same action suffices for all the names (only a sample of +a rather long list is given here). +.TS +center; +l l. +{d}{s}{i}{n} | +{d}{c}{o}{s} | +{d}{s}{q}{r}{t} | +{d}{a}{t}{a}{n} | +\&... +{d}{f}{l}{o}{a}{t} printf("%s",yytext+1); +.TE +Another list of names must have initial \fId\fR changed to initial \fIa\fR: +.TS +center; +l l. +{d}{l}{o}{g} | +{d}{l}{o}{g}10 | +{d}{m}{i}{n}1 | +{d}{m}{a}{x}1 { + yytext[0] =+ \(fma\(fm \- \(fmd\(fm; + ECHO; + } +.TE +And one routine +must have initial \fId\fR changed to initial \fIr\fR: +.TS +center; +l l. +{d}1{m}{a}{c}{h} {yytext[0] =+ \(fmr\(fm \- \(fmd\(fm; + ECHO; + } +.TE +To avoid such names as \fIdsinx\fR being detected as instances +of \fIdsin\fR, some final rules pick up longer words as identifiers +and copy some surviving characters: +.TS +center; +l l. +[A\-Za\-z][A\-Za\-z0\-9]\(** | +[0\-9]+ | +\en | +\&. ECHO; +.TE +Note that this program is not complete; it +does not deal with the spacing problems in Fortran or +with the use of keywords as identifiers. +.br +.2C +.NH +Left Context Sensitivity. +.PP +Sometimes +it is desirable to have several sets of lexical rules +to be applied at different times in the input. +For example, a compiler preprocessor might distinguish +preprocessor statements and analyze them differently +from ordinary statements. +This requires +sensitivity +to prior context, and there are several ways of handling +such problems. +The \fI^\fR operator, for example, is a prior context operator, +recognizing immediately preceding left context just as \fI$\fR recognizes +immediately following right context. +Adjacent left context could be extended, to produce a facility similar to +that for adjacent right context, but it is unlikely +to be as useful, since often the relevant left context +appeared some time earlier, such as at the beginning of a line. +.PP +This section describes three means of dealing +with different environments: a simple use of flags, +when only a few rules change from one environment to another, +the use of +.I +start conditions +.R +on rules, +and the possibility of making multiple lexical analyzers all run +together. +In each case, there are rules which recognize the need to change the +environment in which the +following input text is analyzed, and set some parameter +to reflect the change. This may be a flag explicitly tested by +the user's action code; such a flag is the simplest way of dealing +with the problem, since Lex is not involved at all. +It may be more convenient, +however, +to have Lex remember the flags as initial conditions on the rules. +Any rule may be associated with a start condition. It will only +be recognized when Lex is in +that start condition. +The current start condition may be changed at any time. +Finally, if the sets of rules for the different environments +are very dissimilar, +clarity may be best achieved by writing several distinct lexical +analyzers, and switching from one to another as desired. +.PP +Consider the following problem: copy the input to the output, +changing the word \fImagic\fR to \fIfirst\fR on every line which began +with the letter \fIa\fR, changing \fImagic\fR to \fIsecond\fR on every line +which began with the letter \fIb\fR, and changing +\fImagic\fR to \fIthird\fR on every line which began +with the letter \fIc\fR. All other words and all other lines +are left unchanged. +.PP +These rules are so simple that the easiest way +to do this job is with a flag: +.TS +center; +l l. + int flag; +%% +^a {flag = \(fma\(fm; ECHO;} +^b {flag = \(fmb\(fm; ECHO;} +^c {flag = \(fmc\(fm; ECHO;} +\en {flag = 0 ; ECHO;} +magic { + switch (flag) + { + case \(fma\(fm: printf("first"); break; + case \(fmb\(fm: printf("second"); break; + case \(fmc\(fm: printf("third"); break; + default: ECHO; break; + } + } +.TE +should be adequate. +.PP +To handle the same problem with start conditions, each +start condition must be introduced to Lex in the definitions section +with a line reading +.TS +center; +l l. +%Start name1 name2 ... +.TE +where the conditions may be named in any order. +The word \fIStart\fR may be abbreviated to \fIs\fR or \fIS\fR. +The conditions may be referenced at the +head of a rule with the <> brackets: +.TS +center; +l. +expression +.TE +is a rule which is only recognized when Lex is in the +start condition \fIname1\fR. +To enter a start condition, +execute the action statement +.TS +center; +l. +BEGIN name1; +.TE +which changes the start condition to \fIname1\fR. +To resume the normal state, +.TS +center; +l. +BEGIN 0; +.TE +resets the initial condition +of the Lex automaton interpreter. +A rule may be active in several +start conditions: +.TS +center; +l. + +.TE +is a legal prefix. Any rule not beginning with the +<> prefix operator is always active. +.PP +The same example as before can be written: +.TS +center; +l l. +%START AA BB CC +%% +^a {ECHO; BEGIN AA;} +^b {ECHO; BEGIN BB;} +^c {ECHO; BEGIN CC;} +\en {ECHO; BEGIN 0;} +magic printf("first"); +magic printf("second"); +magic printf("third"); +.TE +where the logic is exactly the same as in the previous +method of handling the problem, but Lex does the work +rather than the user's code. +.2C +.NH +Character Set. +.PP +The programs generated by Lex handle +character I/O only through the routines +.I +input, +output, +.R +and +.I +unput. +.R +Thus the character representation +provided in these routines +is accepted by Lex and employed to return +values in +.I +yytext. +.R +For internal use +a character is represented as a small integer +which, if the standard library is used, +has a value equal to the integer value of the bit +pattern representing the character on the host computer. +Normally, the letter +.I a +is represented as the same form as the character constant +.I \(fma\(fm . +If this interpretation is changed, by providing I/O +routines which translate the characters, +Lex must be told about +it, by giving a translation table. +This table must be in the definitions section, +and must be bracketed by lines containing only +``%T''. +The table contains lines of the form +.TS +center; +l. +{integer} {character string} +.TE +which indicate the value associated with each character. +Thus the next example +.GS 2 +.TS +center; +l l. +%T + 1 Aa + 2 Bb +\&... +26 Zz +27 \en +28 + +29 \- +30 0 +31 1 +\&... +39 9 +%T +.TE +.sp +.ce 1 +Sample character table. +.GE +maps the lower and upper case letters together into the integers 1 through 26, +newline into 27, + and \- into 28 and 29, and the +digits into 30 through 39. +Note the escape for newline. +If a table is supplied, every character that is to appear either +in the rules or in any valid input must be included +in the table. +No character +may be assigned the number 0, and no character may be +assigned a bigger number than the size of the hardware character set. +.2C +.NH +Summary of Source Format. +.PP +The general form of a Lex source file is: +.TS +center; +l. +{definitions} +%% +{rules} +%% +{user subroutines} +.TE +The definitions section contains +a combination of +.IP 1) +Definitions, in the form ``name space translation''. +.IP 2) +Included code, in the form ``space code''. +.IP 3) +Included code, in the form +.TS +center; +l. +%{ +code +%} +.TE +.ns +.IP 4) +Start conditions, given in the form +.TS +center; +l. +%S name1 name2 ... +.TE +.ns +.IP 5) +Character set tables, in the form +.TS +center; +l. +%T +number space character-string +\&... +%T +.TE +.ns +.IP 6) +Changes to internal array sizes, in the form +.TS +center; +l. +%\fIx\fR\0\0\fInnn\fR +.TE +where \fInnn\fR is a decimal integer representing an array size +and \fIx\fR selects the parameter as follows: +.TS +center; +c c +c l. +Letter Parameter +p positions +n states +e tree nodes +a transitions +k packed character classes +o output array size +.TE +.LP +Lines in the rules section have the form ``expression action'' +where the action may be continued on succeeding +lines by using braces to delimit it. +.PP +Regular expressions in Lex use the following +operators: +.br +.TS +center; +l l. +x the character "x" +"x" an "x", even if x is an operator. +\ex an "x", even if x is an operator. +[xy] the character x or y. +[x\-z] the characters x, y or z. +[^x] any character but x. +\&. any character but newline. +^x an x at the beginning of a line. +x an x when Lex is in start condition y. +x$ an x at the end of a line. +x? an optional x. +x\(** 0,1,2, ... instances of x. +x+ 1,2,3, ... instances of x. +x|y an x or a y. +(x) an x. +x/y an x but only if followed by y. +{xx} the translation of xx from the + definitions section. +x{m,n} \fIm\fR through \fIn\fR occurrences of x +.TE +.NH +Caveats and Bugs. +.PP +There are pathological expressions which +produce exponential growth of the tables when +converted to deterministic machines; +fortunately, they are rare. +.PP +REJECT does not rescan the input; instead it remembers the results of the previous +scan. This means that if a rule with trailing context is found, and +REJECT executed, the user +must not have used +.ul +unput +to change the characters forthcoming +from the input stream. +This is the only restriction on the user's ability to manipulate +the not-yet-processed input. +.PP +.2C +.NH +Acknowledgments. +.PP +As should +be obvious from the above, the outside of Lex +is patterned +on Yacc and the inside on Aho's string matching routines. +Therefore, both S. C. Johnson and A. V. Aho +are really originators +of much of Lex, +as well as debuggers of it. +Many thanks are due to both. +.PP +The code of the current version of Lex was designed, written, +and debugged by Eric Schmidt. +.SG MH-1274-MEL-unix +.sp 1 +.2C +.NH +References. +.SP 1v +.IP 1. +B. W. Kernighan and D. M. Ritchie, +.I +The C Programming Language, +.R +Prentice-Hall, N. J. (1978). +.IP 2. +B. W. Kernighan, +.I +Ratfor: A Preprocessor for a Rational Fortran, +.R +Software \- Practice and Experience, +\fB5\fR, pp. 395-496 (1975). +.IP 3. +S. C. Johnson, +.I +Yacc: Yet Another Compiler Compiler, +.R +Computing Science Technical Report No. 32, +1975, +.MH +.if \n(tm (also TM 75-1273-6) +.IP 4. +A. V. Aho and M. J. Corasick, +.I +Efficient String Matching: An Aid to Bibliographic Search, +.R +Comm. ACM +.B +18, +.R +333-340 (1975). +.IP 5. +B. W. Kernighan, D. M. Ritchie and K. L. Thompson, +.I +QED Text Editor, +.R +Computing Science Technical Report No. 5, +1972, +.MH +.IP 6. +D. M. Ritchie, +private communication. +See also +M. E. Lesk, +.I +The Portable C Library, +.R +Computing Science Technical Report No. 31, +.MH +.if \n(tm (also TM 75-1274-11) diff --git a/doc/ps1/17.m4/Makefile b/doc/ps1/17.m4/Makefile new file mode 100644 index 00000000..d90bbc91 --- /dev/null +++ b/doc/ps1/17.m4/Makefile @@ -0,0 +1,25 @@ +# +# Copyright (c) 1986 Regents of the University of California. +# All rights reserved. The Berkeley software License Agreement +# specifies the terms and conditions for redistribution. +# +# @(#)Makefile 6.1 (Berkeley) 5/8/86 +# +SRCS= m4.ms +MACROS= -msU +PRINTER=Pdp +TROFF= ditroff -${PRINTER} + +paper: paper.${PRINTER} + lpr -${PRINTER} -n paper.${PRINTER} + +paper.${PRINTER}: ${SRCS} + ${TROFF} ${MACROS} -t ${SRCS} > paper.${PRINTER} + +clean: + rm -f paper.[PT]* *.spell errs Errs make.out + +spell: ${SRCS} + @for i in ${SRCS}; do \ + echo $$i; spell $$i | sort | comm -23 - spell.ok > $$i.spell; \ + done diff --git a/doc/ps1/17.m4/m4.ms b/doc/ps1/17.m4/m4.ms new file mode 100644 index 00000000..1450e7bc --- /dev/null +++ b/doc/ps1/17.m4/m4.ms @@ -0,0 +1,933 @@ +.\" @(#)m4 6.1 (Berkeley) 5/8/86 +.\" +.EH 'PS1:17-%''The M4 Macro Processor' +.OH 'The M4 Macro Processor''PS1:17-%' +.if n .ls 2 +.tr _\(em +.tr *\(** +.de UC +\&\\$3\s-1\\$1\\s0\&\\$2 +.. +.de IT +.if n .ul +\&\\$3\f2\\$1\fP\&\\$2 +.. +.de UL +.if n .ul +\&\\$3\f3\\$1\fP\&\\$2 +.. +.de P1 +.DS I 3n +.if n .ls 2 +.nf +.if n .ta 5 10 15 20 25 30 35 40 45 50 55 60 +.if t .ta .4i .8i 1.2i 1.6i 2i 2.4i 2.8i 3.2i 3.6i 4i 4.4i 4.8i 5.2i 5.6i +.if t .tr -\(mi|\(bv'\(fm^\(no*\(** +.tr `\(ga'\(aa +.if t .tr _\(ul +.ft 3 +.lg 0 +.. +.de P2 +.ps \\n(PS +.vs \\n(VSp +.ft R +.if n .ls 2 +.tr --||''^^!! +.if t .tr _\(em +.fi +.lg +.DE +.if t .tr _\(em +.. +.hw semi-colon +.hw estab-lished +.hy 14 +. \"2=not last lines; 4= no -xx; 8=no xx- +. \"special chars in programs +. \" start of text +.\".RP +.....TR 59 +.....TM 77-1273-6 39199 39199-11 +.ND "July 1, 1977" +.TL +The M4 Macro Processor +.AU "MH 2C-518" 6021 +Brian W. Kernighan +.AU "MH 2C-517" 3770 +Dennis M. Ritchie +.AI +.MH +.AB +.PP +M4 is a macro processor available on +.UX +and +.UC GCOS . +Its primary use has been as a +front end for Ratfor for those +cases where parameterless macros +are not adequately powerful. +It has also been used for languages as disparate as C and Cobol. +M4 is particularly suited for functional languages like Fortran, PL/I and C +since macros are specified in a functional notation. +.PP +M4 provides features seldom found even in much larger +macro processors, +including +.IP " \(bu" +arguments +.IP " \(bu" +condition testing +.IP " \(bu" +arithmetic capabilities +.IP " \(bu" +string and substring functions +.IP " \(bu" +file manipulation +.LP +.PP +This paper is a user's manual for M4. +.AE +.CS 6 0 6 0 0 1 +.if t .2C +.SH +Introduction +.PP +A macro processor is a useful way to enhance a programming language, +to make it more palatable +or more readable, +or to tailor it to a particular application. +The +.UL #define +statement in C +and the analogous +.UL define +in Ratfor +are examples of the basic facility provided by +any macro processor _ +replacement of text by other text. +.PP +The M4 macro processor is an extension of a macro processor called M3 +which was written by D. M. Ritchie +for the AP-3 minicomputer; +M3 was in turn based on a macro processor implemented for [1]. +Readers unfamiliar with the basic ideas of macro processing +may wish to read some of the discussion there. +.PP +M4 is a suitable front end for Ratfor and C, +and has also been used successfully with Cobol. +Besides the straightforward replacement of one string of text by another, +it provides +macros with arguments, +conditional macro expansion, +arithmetic, +file manipulation, +and some specialized string processing functions. +.PP +The basic operation of M4 +is to copy its input to its output. +As the input is read, however, each alphanumeric ``token'' +(that is, string of letters and digits) is checked. +If it is the name of a macro, +then the name of the macro is replaced by its defining text, +and the resulting string is pushed back onto the +input to be rescanned. +Macros may be called with arguments, in which case the arguments are collected +and substituted into the right places in the defining text +before it is rescanned. +.PP +M4 provides a collection of about twenty built-in +macros +which perform various useful operations; +in addition, the user can define new macros. +Built-ins and user-defined macros work exactly the same way, except that +some of the built-in macros have side effects +on the state of the process. +.SH +Usage +.PP +On +.UC UNIX , +use +.P1 +m4 [files] +.P2 +Each argument file is processed in order; +if there are no arguments, or if an argument +is `\-', +the standard input is read at that point. +The processed text is written on the standard output, +which may be captured for subsequent processing with +.P1 +m4 [files] >outputfile +.P2 +On +.UC GCOS , +usage is identical, but the program is called +.UL \&./m4 . +.SH +Defining Macros +.PP +The primary built-in function of M4 +is +.UL define , +which is used to define new macros. +The input +.P1 +define(name, stuff) +.P2 +causes the string +.UL name +to be defined as +.UL stuff . +All subsequent occurrences of +.UL name +will be replaced by +.UL stuff . +.UL name +must be alphanumeric and must begin with a letter +(the underscore \(ul counts as a letter). +.UL stuff +is any text that contains balanced parentheses; +it may stretch over multiple lines. +.PP +Thus, as a typical example, +.P1 +define(N, 100) + ... +if (i > N) +.P2 +defines +.UL N +to be 100, and uses this ``symbolic constant'' in a later +.UL if +statement. +.PP +The left parenthesis must immediately follow the word +.UL define , +to signal that +.UL define +has arguments. +If a macro or built-in name is not followed immediately by `(', +it is assumed to have no arguments. +This is the situation for +.UL N +above; +it is actually a macro with no arguments, +and thus when it is used there need be no (...) following it. +.PP +You should also notice that a macro name is only recognized as such +if it appears surrounded by non-alphanumerics. +For example, in +.P1 +define(N, 100) + ... +if (NNN > 100) +.P2 +the variable +.UL NNN +is absolutely unrelated to the defined macro +.UL N , +even though it contains a lot of +.UL N 's. +.PP +Things may be defined in terms of other things. +For example, +.P1 +define(N, 100) +define(M, N) +.P2 +defines both M and N to be 100. +.PP +What happens if +.UL N +is redefined? +Or, to say it another way, is +.UL M +defined as +.UL N +or as 100? +In M4, +the latter is true _ +.UL M +is 100, so even if +.UL N +subsequently changes, +.UL M +does not. +.PP +This behavior arises because +M4 expands macro names into their defining text as soon as it possibly can. +Here, that means that when the string +.UL N +is seen as the arguments of +.UL define +are being collected, it is immediately replaced by 100; +it's just as if you had said +.P1 +define(M, 100) +.P2 +in the first place. +.PP +If this isn't what you really want, there are two ways out of it. +The first, which is specific to this situation, +is to interchange the order of the definitions: +.P1 +define(M, N) +define(N, 100) +.P2 +Now +.UL M +is defined to be the string +.UL N , +so when you ask for +.UL M +later, you'll always get the value of +.UL N +at that time +(because the +.UL M +will be replaced by +.UL N +which will be replaced by 100). +.SH +Quoting +.PP +The more general solution is to delay the expansion of +the arguments of +.UL define +by +.ul +quoting +them. +Any text surrounded by the single quotes \(ga and \(aa +is not expanded immediately, but has the quotes stripped off. +If you say +.P1 +define(N, 100) +define(M, `N') +.P2 +the quotes around the +.UL N +are stripped off as the argument is being collected, +but they have served their purpose, and +.UL M +is defined as +the string +.UL N , +not 100. +The general rule is that M4 always strips off +one level of single quotes whenever it evaluates +something. +This is true even outside of +macros. +If you want the word +.UL define +to appear in the output, +you have to quote it in the input, +as in +.P1 + `define' = 1; +.P2 +.PP +As another instance of the same thing, which is a bit more surprising, +consider redefining +.UL N : +.P1 +define(N, 100) + ... +define(N, 200) +.P2 +Perhaps regrettably, the +.UL N +in the second definition is +evaluated as soon as it's seen; +that is, it is +replaced by +100, so it's as if you had written +.P1 +define(100, 200) +.P2 +This statement is ignored by M4, since you can only define things that look +like names, but it obviously doesn't have the effect you wanted. +To really redefine +.UL N , +you must delay the evaluation by quoting: +.P1 +define(N, 100) + ... +define(`N', 200) +.P2 +In M4, +it is often wise to quote the first argument of a macro. +.PP +If \` and \' are not convenient for some reason, +the quote characters can be changed with the built-in +.UL changequote : +.P1 +changequote([, ]) +.P2 +makes the new quote characters the left and right brackets. +You can restore the original characters with just +.P1 +changequote +.P2 +.PP +There are two additional built-ins related to +.UL define . +.UL undefine +removes the definition of some macro or built-in: +.P1 +undefine(`N') +.P2 +removes the definition of +.UL N . +(Why are the quotes absolutely necessary?) +Built-ins can be removed with +.UL undefine , +as in +.P1 +undefine(`define') +.P2 +but once you remove one, you can never get it back. +.PP +The built-in +.UL ifdef +provides a way to determine if a macro is currently defined. +In particular, M4 has pre-defined the names +.UL unix +and +.UL gcos +on the corresponding systems, so you can +tell which one you're using: +.P1 +ifdef(`unix', `define(wordsize,16)' ) +ifdef(`gcos', `define(wordsize,36)' ) +.P2 +makes a definition appropriate for the particular machine. +Don't forget the quotes! +.PP +.UL ifdef +actually permits three arguments; +if the name is undefined, the value of +.UL ifdef +is then the third argument, as in +.P1 +ifdef(`unix', on UNIX, not on UNIX) +.P2 +.SH +Arguments +.PP +So far we have discussed the simplest form of macro processing _ +replacing one string by another (fixed) string. +User-defined macros may also have arguments, so different invocations +can have different results. +Within the replacement text for a macro +(the second argument of its +.UL define ) +any occurrence of +.UL $n +will be replaced by the +.UL n th +argument when the macro +is actually used. +Thus, the macro +.UL bump , +defined as +.P1 +define(bump, $1 = $1 + 1) +.P2 +generates code to increment its argument by 1: +.P1 +bump(x) +.P2 +is +.P1 +x = x + 1 +.P2 +.PP +A macro can have as many arguments as you want, +but only the first nine are accessible, +through +.UL $1 +to +.UL $9 . +(The macro name itself is +.UL $0 , +although that is less commonly used.) +Arguments that are not supplied are replaced by null strings, +so +we can define a macro +.UL cat +which simply concatenates its arguments, like this: +.P1 +define(cat, $1$2$3$4$5$6$7$8$9) +.P2 +Thus +.P1 +cat(x, y, z) +.P2 +is equivalent to +.P1 +xyz +.P2 +.UL $4 +through +.UL $9 +are null, since no corresponding arguments were provided. +.PP +.PP +Leading unquoted blanks, tabs, or newlines that occur during argument collection +are discarded. +All other white space is retained. +Thus +.P1 +define(a, b c) +.P2 +defines +.UL a +to be +.UL b\ \ \ c . +.PP +Arguments are separated by commas, but parentheses are counted properly, +so a comma ``protected'' by parentheses does not terminate an argument. +That is, in +.P1 +define(a, (b,c)) +.P2 +there are only two arguments; +the second is literally +.UL (b,c) . +And of course a bare comma or parenthesis can be inserted by quoting it. +.SH +Arithmetic Built-ins +.PP +M4 provides two built-in functions for doing arithmetic +on integers (only). +The simplest is +.UL incr , +which increments its numeric argument by 1. +Thus to handle the common programming situation +where you want a variable to be defined as ``one more than N'', +write +.P1 +define(N, 100) +define(N1, `incr(N)') +.P2 +Then +.UL N1 +is defined as one more than the current value of +.UL N . +.PP +The more general mechanism for arithmetic is a built-in +called +.UL eval , +which is capable of arbitrary arithmetic on integers. +It provides the operators +(in decreasing order of precedence) +.DS +unary + and \(mi +** or ^ (exponentiation) +* / % (modulus) ++ \(mi +== != < <= > >= +! (not) +& or && (logical and) +\(or or \(or\(or (logical or) +.DE +Parentheses may be used to group operations where needed. +All the operands of +an expression given to +.UL eval +must ultimately be numeric. +The numeric value of a true relation +(like 1>0) +is 1, and false is 0. +The precision in +.UL eval +is +32 bits on +.UC UNIX +and 36 bits on +.UC GCOS . +.PP +As a simple example, suppose we want +.UL M +to be +.UL 2**N+1 . +Then +.P1 +define(N, 3) +define(M, `eval(2**N+1)') +.P2 +As a matter of principle, it is advisable +to quote the defining text for a macro +unless it is very simple indeed +(say just a number); +it usually gives the result you want, +and is a good habit to get into. +.SH +File Manipulation +.PP +You can include a new file in the input at any time by +the built-in function +.UL include : +.P1 +include(filename) +.P2 +inserts the contents of +.UL filename +in place of the +.UL include +command. +The contents of the file is often a set of definitions. +The value +of +.UL include +(that is, its replacement text) +is the contents of the file; +this can be captured in definitions, etc. +.PP +It is a fatal error if the file named in +.UL include +cannot be accessed. +To get some control over this situation, the alternate form +.UL sinclude +can be used; +.UL sinclude +(``silent include'') +says nothing and continues if it can't access the file. +.PP +It is also possible to divert the output of M4 to temporary files during processing, +and output the collected material upon command. +M4 maintains nine of these diversions, numbered 1 through 9. +If you say +.P1 +divert(n) +.P2 +all subsequent output is put onto the end of a temporary file +referred to as +.UL n . +Diverting to this file is stopped by another +.UL divert +command; +in particular, +.UL divert +or +.UL divert(0) +resumes the normal output process. +.PP +Diverted text is normally output all at once +at the end of processing, +with the diversions output in numeric order. +It is possible, however, to bring back diversions +at any time, +that is, to append them to the current diversion. +.P1 +undivert +.P2 +brings back all diversions in numeric order, and +.UL undivert +with arguments brings back the selected diversions +in the order given. +The act of undiverting discards the diverted stuff, +as does diverting into a diversion +whose number is not between 0 and 9 inclusive. +.PP +The value of +.UL undivert +is +.ul +not +the diverted stuff. +Furthermore, the diverted material is +.ul +not +rescanned for macros. +.PP +The built-in +.UL divnum +returns the number of the currently active diversion. +This is zero during normal processing. +.SH +System Command +.PP +You can run any program in the local operating system +with the +.UL syscmd +built-in. +For example, +.P1 +syscmd(date) +.P2 +on +.UC UNIX +runs the +.UL date +command. +Normally +.UL syscmd +would be used to create a file +for a subsequent +.UL include . +.PP +To facilitate making unique file names, the built-in +.UL maketemp +is provided, with specifications identical to the system function +.ul +mktemp: +a string of XXXXX in the argument is replaced +by the process id of the current process. +.SH +Conditionals +.PP +There is a built-in called +.UL ifelse +which enables you to perform arbitrary conditional testing. +In the simplest form, +.P1 +ifelse(a, b, c, d) +.P2 +compares the two strings +.UL a +and +.UL b . +If these are identical, +.UL ifelse +returns +the string +.UL c ; +otherwise it returns +.UL d . +Thus we might define a macro called +.UL compare +which compares two strings and returns ``yes'' or ``no'' +if they are the same or different. +.P1 +define(compare, `ifelse($1, $2, yes, no)') +.P2 +Note the quotes, +which prevent too-early evaluation of +.UL ifelse . +.PP +If the fourth argument is missing, it is treated as empty. +.PP +.UL ifelse +can actually have any number of arguments, +and thus provides a limited form of multi-way decision capability. +In the input +.P1 +ifelse(a, b, c, d, e, f, g) +.P2 +if the string +.UL a +matches the string +.UL b , +the result is +.UL c . +Otherwise, if +.UL d +is the same as +.UL e , +the result is +.UL f . +Otherwise the result is +.UL g . +If the final argument +is omitted, the result is null, +so +.P1 +ifelse(a, b, c) +.P2 +is +.UL c +if +.UL a +matches +.UL b , +and null otherwise. +.SH +String Manipulation +.PP +The built-in +.UL len +returns the length of the string that makes up its argument. +Thus +.P1 +len(abcdef) +.P2 +is 6, and +.UL len((a,b)) +is 5. +.PP +The built-in +.UL substr +can be used to produce substrings of strings. +.UL substr(s,\ i,\ n) +returns the substring of +.UL s +that starts at the +.UL i th +position +(origin zero), +and is +.UL n +characters long. +If +.UL n +is omitted, the rest of the string is returned, +so +.P1 +substr(`now is the time', 1) +.P2 +is +.P1 +ow is the time +.P2 +If +.UL i +or +.UL n +are out of range, various sensible things happen. +.PP +.UL index(s1,\ s2) +returns the index (position) in +.UL s1 +where the string +.UL s2 +occurs, or \-1 +if it doesn't occur. +As with +.UL substr , +the origin for strings is 0. +.PP +The built-in +.UL translit +performs character transliteration. +.P1 +translit(s, f, t) +.P2 +modifies +.UL s +by replacing any character found in +.UL f +by the corresponding character of +.UL t . +That is, +.P1 +translit(s, aeiou, 12345) +.P2 +replaces the vowels by the corresponding digits. +If +.UL t +is shorter than +.UL f , +characters which don't have an entry in +.UL t +are deleted; as a limiting case, +if +.UL t +is not present at all, +characters from +.UL f +are deleted from +.UL s . +So +.P1 +translit(s, aeiou) +.P2 +deletes vowels from +.UL s . +.PP +There is also a built-in called +.UL dnl +which deletes all characters that follow it up to +and including the next newline; +it is useful mainly for throwing away +empty lines that otherwise tend to clutter up M4 output. +For example, if you say +.P1 +define(N, 100) +define(M, 200) +define(L, 300) +.P2 +the newline at the end of each line is not part of the definition, +so it is copied into the output, where it may not be wanted. +If you add +.UL dnl +to each of these lines, the newlines will disappear. +.PP +Another way to achieve this, due to J. E. Weythman, +is +.P1 +divert(-1) + define(...) + ... +divert +.P2 +.SH +Printing +.PP +The built-in +.UL errprint +writes its arguments out on the standard error file. +Thus you can say +.P1 +errprint(`fatal error') +.P2 +.PP +.UL dumpdef +is a debugging aid which +dumps the current definitions of defined terms. +If there are no arguments, you get everything; +otherwise you get the ones you name as arguments. +Don't forget to quote the names! +.SH +Summary of Built-ins +.PP +Each entry is preceded by the +page number where it is described. +.DS +.tr '\'`\` +.ta .25i +3 changequote(L, R) +1 define(name, replacement) +4 divert(number) +4 divnum +5 dnl +5 dumpdef(`name', `name', ...) +5 errprint(s, s, ...) +4 eval(numeric expression) +3 ifdef(`name', this if true, this if false) +5 ifelse(a, b, c, d) +4 include(file) +3 incr(number) +5 index(s1, s2) +5 len(string) +4 maketemp(...XXXXX...) +4 sinclude(file) +5 substr(string, position, number) +4 syscmd(s) +5 translit(str, from, to) +3 undefine(`name') +4 undivert(number,number,...) +.DE +.SH +Acknowledgements +.PP +We are indebted to Rick Becker, John Chambers, +Doug McIlroy, +and especially Jim Weythman, +whose pioneering use of M4 has led to several valuable improvements. +We are also deeply grateful to Weythman for several substantial contributions +to the code. +.SG +.SH +References +.LP +.IP [1] +B. W. Kernighan and P. J. Plauger, +.ul +Software Tools, +Addison-Wesley, Inc., 1976. diff --git a/doc/ps1/18.curses/Makefile b/doc/ps1/18.curses/Makefile new file mode 100644 index 00000000..6c879c4d --- /dev/null +++ b/doc/ps1/18.curses/Makefile @@ -0,0 +1,77 @@ +# +# Copyright (c) 1980 Regents of the University of California. +# All rights reserved. The Berkeley software License Agreement +# specifies the terms and conditions for redistribution. +# +# @(#)Makefile 6.2 (Berkeley) 4/28/86 +# +# makefile for screen package documentation +# +NROFF= nroff +TROFF= ditroff +TBL= dtbl -Pdp +VFONT= /usr/lib/vfontedpr +NFLAGS= -Tcrt +TFLAGS= -Pdp +CFLAGS= -O -n -s +BINDIR= /usr/doc/ps1/18.curses + +DOCS= doc.I doc.II doc.III doc.IV +RAW= macros c_macros appen.B appen.A appen.C intro.0 intro.1 \ + intro.2 intro.3 intro.4 intro.5 ${DOCS} curses.3x + +CRAW= win_st.c twinkle1.c twinkle2.c life.c +CSOURCE=win_st.gr twinkle1.gr twinkle2.gr life.gr +SOURCE= macros appen.A.tbl appen.B appen.C intro.0 intro.1 \ + intro.2.tbl intro.3 intro.4 intro.5 + +.SUFFIXES: +.SUFFIXES: .c .gr + +# +# this section formats C input source into nice troffable (or nroffable) +# versions. It uses the capabilites of "vgrind", which sets keywords in +# bold font, and comments in italics. +# + +# Don't re-run vgrind unless you want to patch the output files. +.c.gr: + ${VFONT} $*.c | grep -v "^'wh" > $*.gr + +troff: Master macros ${SOURCE} + ${TROFF} -me ${TFLAGS} Master ; + +Curses.doc: ${VFONT} Master macros ${SOURCE} + ${NROFF} -me ${NFLAGS} Master > Curses.doc + +${CSOURCE}: ${VFONT} + +intro.5: ${DOCS} +appen.B: win_st.gr +appen.C: twinkle1.gr life.gr twinkle2.gr + +intro.2.tbl: intro.2 + ${TBL} intro.2 > intro.2.tbl + +appen.A.tbl: appen.A + ${TBL} appen.A > appen.A.tbl + +vfontedpr: vfontedpr.c + ${CC} ${CFLAGS} -o vfontedpr vfontedpr.c + +spell: ${SOURCE} + /bin/csh ./Spellit ${SOURCE} ${DOCS} + +install: + cp Makefile ${RAW} ${BINDIR} + +ar: + ar crv curdoc.ar Master ${RAW} ${CRAW} Makefile + +lpr: Curses + -lpr Curses ; lpq + -lpq + +clean: + rm -f ${CSOURCE} appen.A.tbl intro.2.tbl curses.tar vfontedpr \ + Curses.doc errs Errs diff --git a/doc/ps1/18.curses/Master b/doc/ps1/18.curses/Master new file mode 100644 index 00000000..cb084cf8 --- /dev/null +++ b/doc/ps1/18.curses/Master @@ -0,0 +1,27 @@ +.\" Copyright (c) 1980 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)Master 6.2 (Berkeley) 4/28/86 +.\" +.ds Ln Screen Package +.so macros +.so intro.0 +.pn 3 +.bp +.so intro.1 +.so intro.2.tbl +.so intro.3 +.so intro.4 +.so intro.5 +.so appen.A.tbl +.so c_macros +.so appen.B +.so appen.C +.pn 2 +.oh '\*(Ln''PS1:18-%' +.eh 'PS1:18-%''\*(Ln' +.bp +.bi Contents +.sp +.xp diff --git a/doc/ps1/18.curses/appen.A b/doc/ps1/18.curses/appen.A new file mode 100644 index 00000000..76186493 --- /dev/null +++ b/doc/ps1/18.curses/appen.A @@ -0,0 +1,164 @@ +.\" Copyright (c) 1980 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)appen.A 6.1 (Berkeley) 4/23/86 +.\" +.ie t .oh '\*(Ln Appendix A''PS1:18-%' +.eh 'PS1:18-%''\*(Ln Appendix A' +.el .he ''\fIAppendix A\fR'' +.bp +.(x +.sp 2 +.in 0 +.bi Appendixes +.sp +.b "Appendix A" +.)x +.nr * 1 +.sh 1 "Capabilities from termcap" 1 +.sh 2 Disclaimer +.pp +The description of terminals is a difficult business, +and we only attempt to summarize the capabilities here: +for a full description see +.b termcap (5). +.sh 2 Overview +.pp +Capabilities from +.b termcap +are of three kinds: +string valued options, +numeric valued options, +and boolean options. +The string valued options are the most complicated, +since they may include padding information, +which we describe now. +.pp +Intelligent terminals often require padding on intelligent operations +at high (and sometimes even low) speed. +This is specified by a number before the string in the capability, +and has meaning for the capabilities which have a +.b P +at the front of their comment. +This normally is a number of milliseconds to pad the operation. +In the current system which has no true programmable delays, +we do this by sending a sequence of pad characters +(normally nulls, but can be changed +(specified by +.i PC )). +In some cases, the pad is better computed as some number of milliseconds +times the number of affected lines +(to the bottom of the screen usually, +except when terminals have insert modes which will shift several lines.) +This is specified as, +i e.g. , +.b 12* . +before the capability, +to say 12 milliseconds per affected whatever +(currently always line). +Capabilities where this makes sense say +.b P* . +.sp +.sh 2 "Variables Set By setterm()" +.TS H +c s s s +l l l l. +variables set by \fIsetterm()\fR + +Type Name Pad Description +_ +.TH +char * AL P* Add new blank Line +bool AM Automatic Margins +char * BC Back Cursor movement +bool BS BackSpace works +char * BT P Back Tab +bool CA Cursor Addressable +char * CD P* Clear to end of Display +char * CE P Clear to End of line +char * CL P* CLear screen +char * CM P Cursor Motion +char * DC P* Delete Character +char * DL P* Delete Line sequence +char * DM Delete Mode (enter) +char * DO DOwn line sequence +char * ED End Delete mode +bool EO can Erase Overstrikes with \' \' +char * EI End Insert mode +char * HO HOme cursor +bool HZ HaZeltine ~ braindamage +char * IC P Insert Character +bool IN Insert-Null blessing +char * IM enter Insert Mode (IC usually set, too) +char * IP P* Pad after char Inserted using IM+IE +char * LL quick to Last Line, column 0 +char * MA ctrl character MAp for cmd mode +bool MI can Move in Insert mode +bool NC No Cr: \er sends \er\en then eats \en +char * ND Non-Destructive space +bool OS OverStrike works +char PC Pad Character +char * SE Standout End (may leave space) +char * SF P Scroll Forwards +char * SO Stand Out begin (may leave space) +char * SR P Scroll in Reverse +char * TA P TAb (not ^I or with padding) +char * TE Terminal address enable Ending sequence +char * TI Terminal address enable Initialization +char * UC Underline a single Character +char * UE Underline Ending sequence +bool UL UnderLining works even though !OS +char * UP UPline +char * US Underline Starting sequence +char * VB Visible Bell +char * VE Visual End sequence +char * VS Visual Start sequence +bool XN a Newline gets eaten after wrap +.TE +Names starting with +.bi X +are reserved for severely nauseous glitches +.pp +For purposes of +.Fn standout , +if +.Fn SG +is not 0, +.Fn SO +is set to +.Fn NULL , +and if +.Fn UG +is not +.Fn 0 , +.Fn US +is set to +.Fn NULL . +If, after this, +.Fn SO +is +.Fn NULL , +and +.Fn US +is not, +.Fn SO +is set to be +.Fn US , +and +.Fn SE +is set to be +.Fn UE . +.sh 2 "Variables Set By gettmode()" +.TS H +c s s +l l l. +variables set by \fIgettmode()\fR + +type name description +_ +.TH +bool NONL Term can't hack linefeeds doing a CR +bool GT Gtty indicates Tabs +bool UPPERCASE Terminal generates only uppercase letters +.TE diff --git a/doc/ps1/18.curses/appen.B b/doc/ps1/18.curses/appen.B new file mode 100644 index 00000000..ba151d1b --- /dev/null +++ b/doc/ps1/18.curses/appen.B @@ -0,0 +1,174 @@ +.\" Copyright (c) 1980 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)appen.B 6.1 (Berkeley) 4/23/86 +.\" +.ie t .oh '\*(Ln Appendix B''PS1:18-%' +.eh 'PS1:18-%''\*(Ln Appendix B' +.el .he ''\fIAppendix B\fR'' +.bp +.(x +.ti 0 +.b "Appendix B" +.)x +.nr $1 0 +.sh 1 "The WINDOW structure" +.pp +The WINDOW structure is defined as follows: +.(l I +.so win_st.gr +.)l +.pp +.Vn \*_cury \\* +.(f +\** +All variables not normally accessed directly by the user +are named with an initial +.Bq \*_ +to avoid conflicts with the user's variables. +.)f +and +.Vn \*_curx +are the current \*y for the window. +New characters added to the screen +are added at this point. +.Vn \*_maxy +and +.Vn \*_maxx +are the maximum values allowed for +.Vn \*_cury\*,\*_curx ). ( +.Vn \*_begy +and +.Vn \*_begx +are the starting \*y on the terminal for the window, +.i i.e. , +the window's home. +.Vn \*_cury , +.Vn \*_curx , +.Vn \*_maxy , +and +.Vn \*_maxx +are measured relative to +.Vn \*_begy\*,\*_begx ), ( +not the terminal's home. +.pp +.Vn \*_clear +tells if a clear-screen sequence is to be generated +on the next +.Fn refresh +call. +This is only meaningful for screens. +The initial clear-screen for the first +.Fn refresh +call is generated by initially setting clear to be TRUE for +.Vn curscr , +which always generates a clear-screen if set, +irrelevant of the dimensions of the window involved. +.Vn \*_leave +is TRUE if the current \*y and the cursor +are to be left after the last character changed on the terminal, +or not moved if there is no change. +.Vn \*_scroll +is TRUE +if scrolling is allowed. +.pp +.Vn \*_y +is a pointer to an array of lines which describe the terminal. +Thus: +.(l +\*_y[i] +.)l +.lp +is a pointer to the +.Vn i th +line, and +.(l +\*_y[i][j] +.)l +.lp +is the +.Vn j th +character on the +.Vn i th +line. +.Vn \*_flags +can have one or more values +or'd into it. +.pp +For windows that are not subwindows, +.Vn \*_orig +is +NULL . +For subwindows, +it points to the main window +to which the window is subsidiary. +.Vn \*_nextp +is a pointer in a circularly linked list +of all the windows which are subwindows of the same main window, +plus the main window itself. +.pp +.Vn \*_firstch +and +.Vn \*_lastch +are +.Fn malloc ed +arrays which contain the index of the +first and last changed characters +on the line. +.Vn \*_ch\*_off +is the x offset for the window +in the +.Vn \*_firstch +and +.Vn \*_lastch +arrays for this window. +For main windows, +this is always 0; +for subwindows +it is the difference between the starting point of the main window +and that of the subindow, +so that change markers can be set relative to the main window. +This makes these markers global in scope. +.pp +All subwindows share the appropriate portions of +.Vn _y , +.Vn _firstch , +.Vn _lastch , +and +.Vn _insdel +with their main window. +.pp +.b \*_ENDLINE +says that the end of the line for this window +is also the end of a screen. +.b \*_FULLWIN +says that this window is a screen. +.b \*_SCROLLWIN +indicates that the last character of this screen +is at the lower right-hand corner of the terminal; +.i i.e. , +if a character was put there, +the terminal would scroll. +.b \*_FULLLINE +says that the width of a line is the same as the width of the terminal. +If +.b \*_FLUSH +is set, +it says that +.Fn fflush "" "" stdout +should be called at the end of each +.Fn refresh +.b \*_STANDOUT +says that all characters added to the screen +are in standout mode. +.b \*_INSDEL +is reserved for future use, +and is set by +.Fn idlok . +.Vn \*_firstch +is set to +.b \*_NOCHANGE +for lines on which there has been no change +since the last +.Fn refresh . diff --git a/doc/ps1/18.curses/appen.C b/doc/ps1/18.curses/appen.C new file mode 100644 index 00000000..e78b0721 --- /dev/null +++ b/doc/ps1/18.curses/appen.C @@ -0,0 +1,83 @@ +.\" Copyright (c) 1980 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)appen.C 6.1 (Berkeley) 4/23/86 +.\" +.ie t .oh '\*(Ln Appendix C''PS1:18-%' +.eh 'PS1:18-%''\*(Ln Appendix C' +.el .he ''\fIAppendix C\fR'' +.bp +.(x +.ti 0 +.b "Appendix C" +.)x +.sh 1 "Examples" 1 +.pp +Here we present a few examples +of how to use the package. +They attempt to be representative, +though not comprehensive. +.sh 1 "Screen Updating" +.pp +The following examples are intended to demonstrate +the basic structure of a program +using the screen updating sections of the package. +Several of the programs require calculational sections +which are irrelevant of to the example, +and are therefore usually not included. +It is hoped that the data structure definitions +give enough of an idea to allow understanding +of what the relevant portions do. +The rest is left as an exercise to the reader, +and will not be on the final. +.sh 2 "Twinkle" +.pp +This is a moderately simple program which prints +pretty patterns on the screen +that might even hold your interest for 30 seconds or more. +It switches between patterns of asterisks, +putting them on one by one in random order, +and then taking them off in the same fashion. +It is more efficient to write this +using only the motion optimization, +as is demonstrated below. +.(l I +.so twinkle1.gr +.)l +.sh 2 "Life" +.pp +This program fragment models the famous computer pattern game of life +(Scientific American, May, 1974). +The calculational routines create a linked list of structures +defining where each piece is. +Nothing here claims to be optimal, +merely demonstrative. +This code, however, +is a very good place to use the screen updating routines, +as it allows them to worry about what the last position looked like, +so you don't have to. +It also demonstrates some of the input routines. +.(l I +.so life.gr +.)l +.sh 1 "Motion optimization" +.pp +The following example shows how motion optimization +is written on its own. +Programs which flit from one place to another without +regard for what is already there +usually do not need the overhead of both space and time +associated with screen updating. +They should instead use motion optimization. +.sh 2 "Twinkle" +.pp +The +.b twinkle +program +is a good candidate for simple motion optimization. +Here is how it could be written +(only the routines that have been changed are shown): +.(l +.so twinkle2.gr +.)l diff --git a/doc/ps1/18.curses/c_macros b/doc/ps1/18.curses/c_macros new file mode 100644 index 00000000..5e69fae7 --- /dev/null +++ b/doc/ps1/18.curses/c_macros @@ -0,0 +1,43 @@ +.\" Copyright (c) 1980 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)c_macros 6.1 (Berkeley) 4/23/86 +.\" +'ie t 'ds _ \d\(mi\u +'el 'ds _ _ +'tr *\(** +'ps 9p +'vs 10p +'ds - \(mi +'ds /* \\h'\\w' 'u-\\w'/'u'/* +'bd B 3 +'bd S B 3 +'nr cm 0 +'nf +'de () +'pn 1 +.. +'de +C +'nr cm 1 +'ft 2 +'ds +K +'ds -K +.. +'de -C +'nr cm 0 +'ft 1 +.ie t 'ds +K \f3 +.el 'ds +K \fI +'ds -K \fP +.. +'+C +'-C +'am +C +'ne 3 +.. +'de -F +'rm =f +.. +'ft 1 +'lg 0 diff --git a/doc/ps1/18.curses/doc.I b/doc/ps1/18.curses/doc.I new file mode 100644 index 00000000..17854226 --- /dev/null +++ b/doc/ps1/18.curses/doc.I @@ -0,0 +1,322 @@ +.\" Copyright (c) 1980 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)doc.I 6.1 (Berkeley) 4/23/86 +.\" +.Ds +.Fd addch ch \*m +char ch; +.Fd waddch win\*,ch +WINDOW *win; +char ch; +.De +Add the character +.Vn ch +on the window +at the current \*y. +If the character is a newline +(\'\en\') +the line will be cleared to the end, +and the current \*y will be changed to the +beginning off the next line +if newline mapping is on, +or to the next line at the same x co-ordinate +if it is off. +A return +(\'\er\') +will move to the beginning of the line on the window. +Tabs +(\'\et\') +will be expanded into spaces +in the normal tabstop positions of +every eight characters. +\*(Es +.Ds +.Fd addstr str \*m +char *str; +.Fd waddstr win\*,str +WINDOW *win; +char *str; +.De +Add the string pointed to by +.Vn str +on the window at the current \*y. +\*(Es +In this case, it will put on as much as it can. +.Ds +.Fd box win\*,vert\*,hor +WINDOW *win; +char vert\*,hor; +.De +.Pp +Draws a box around the window using +.Vn vert +as the character for drawing the vertical sides, and +.Vn hor +for drawing the horizontal lines. +If scrolling is not allowed, +and the window encompasses the lower right-hand corner of the terminal, +the corners are left blank to avoid a scroll. +.Ds +.Fd clear "" \*m +.Fd wclear win +WINDOW *win; +.De +Resets the entire window to blanks. +If +.Vn win +is a screen, +this sets the clear flag, +which will cause a clear-screen sequence to be sent +on the next +.Fn refresh +call. +This also moves the current \*y +to (0\*,0). +.Ds +.Fd clearok scr\*,boolf \*m +WINDOW *scr; +bool boolf; +.De +Sets the clear flag for the screen +.Vn scr . +If +.Vn boolf +is TRUE, +this will force a clear-screen to be printed on the next +.Fn refresh , +or stop it from doing so if +.Vn boolf +is FALSE. +This only works on screens, +and, +unlike +.Fn clear , +does not alter the contents of the screen. +If +.Vn scr +is +.Vn curscr , +the next +.Fn refresh +call will cause a clear-screen, +even if the window passed to +.Fn refresh +is not a screen. +.Ds +.Fd clrtobot "" \*m +.Fd wclrtobot win +WINDOW *win; +.De +Wipes the window clear from the current \*y to the bottom. +This does not force a clear-screen sequence on the next refresh +under any circumstances. +\*(Nm +.Ds +.Fd clrtoeol "" \*m +.Fd wclrtoeol win +WINDOW *win; +.De +Wipes the window clear from the current \*y to the end of the line. +\*(Nm +.Ds +.Fd delch +.Fd wdelch win +WINDOW *win; +.De +Delete the character at the current \*y. +Each character after it on the line shifts to the left, +and the last character becomes blank. +.Ds +.Fd deleteln +.Fd wdeleteln win +WINDOW *win; +.De +Delete the current line. +Every line below the current one will move up, +and the bottom line will become blank. +The current \*y will remain unchanged. +.Ds +.Fd erase "" \*m +.Fd werase win +WINDOW *win; +.De +Erases the window to blanks without setting the clear flag. +This is analagous to +.Fn clear , +except that it never causes a clear-screen sequence to be generated +on a +.Fn refresh . +\*(Nm +.Ds +.Fd flushok win\*,boolf \*m +WINDOW *win; +bool boolf; +.De +Normally, +.Fn refresh +.Fn fflush 's +.Vn stdout +when it is finished. +.Fn flushok +allows you to control this. +if +.Vn boolf +is TRUE +(\c +.i i.e. , +non-zero) +it will do the +.Fn fflush ; +if it is FALSE. +it will not. +.Ds +.Fd idlok win\*,boolf +WINDOW *win; +bool boolf; +.De +Reserved for future use. +This will eventually signal to +.Fn refresh +that it is all right to use the insert and delete line sequences +when updating the window. +.Ds +.Fd insch c +char c; +.Fd winsch win\*,c +WINDOW *win; +char c; +.De +Insert +.Vn c +at the current \*y +Each character after it shifts to the right, +and the last character disappears. +\*(Es +.Ds +.Fd insertln +.Fd winsertln win +WINDOW *win; +.De +Insert a line above the current one. +Every line below the current line +will be shifted down, +and the bottom line will disappear. +The current line will become blank, +and the current \*y will remain unchanged. +.Ds +.Fd move y\*,x \*m +int y\*,x; +.Fd wmove win\*,y\*,x +WINDOW *win; +int y\*,x; +.De +Change the current \*y of the window to +.Vn y\*,x ). ( +\*(Es +.Ds +.Fd overlay win1\*,win2 +WINDOW *win1\*,*win2; +.De +Overlay +.Vn win1 +on +.Vn win2 . +The contents of +.Vn win1 , +insofar as they fit, +are placed on +.Vn win2 +at their starting \*y. +This is done non-destructively, +i.e., blanks on +.Vn win1 +leave the contents of the space on +.Vn win2 +untouched. +.Ds +.Fd overwrite win1\*,win2 +WINDOW *win1\*,*win2; +.De +Overwrite +.Vn win1 +on +.Vn win2 . +The contents of +.Vn win1 , +insofar as they fit, +are placed on +.Vn win2 +at their starting \*y. +This is done destructively, +.i i.e. , +blanks on +.Vn win1 +become blank on +.Vn win2 . +.Ds +.Fd printw fmt\*,arg1\*,arg2\*,... +char *fmt; +.Fd wprintw win\*,fmt\*,arg1\*,arg2\*,... +WINDOW *win; +char *fmt; +.De +Performs a +.Fn printf +on the window starting at the current \*y. +It uses +.Fn addstr +to add the string on the window. +It is often advisable to use the field width options of +.Fn printf +to avoid leaving things on the window from earlier calls. +\*(Es +.Ds +.Fd refresh "" \*m +.Fd wrefresh win +WINDOW *win; +.De +Synchronize the terminal screen with the desired window. +If the window is not a screen, +only that part covered by it is updated. +\*(Es +In this case, it will update whatever it can +without causing the scroll. +.sp +As a special case, +if +.Fn wrefresh +is called with the window +.Vn curscr +the screen is cleared +and repainted as it is currently. +This is very useful for allowing the redrawing of the screen +when the user has garbage dumped on his terminal. +.Ds +.Fd standout "" \*m +.Fd wstandout win +WINDOW *win; +.Fd standend "" \*m +.Fd wstandend win +WINDOW *win; +.De +Start and stop putting characters onto +.i win +in standout mode. +.Fn standout +causes any characters added to the window +to be put in standout mode on the terminal +(if it has that capability). +.Fn standend +stops this. +The sequences +.Vn SO +and +.Vn SE +(or +.Vn US +and +.Vn UE +if they are not defined) +are used (see Appendix A). diff --git a/doc/ps1/18.curses/doc.II b/doc/ps1/18.curses/doc.II new file mode 100644 index 00000000..f65c196b --- /dev/null +++ b/doc/ps1/18.curses/doc.II @@ -0,0 +1,115 @@ +.\" Copyright (c) 1980 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)doc.II 6.1 (Berkeley) 4/23/86 +.\" +.Ds +.Fd cbreak "" \*m +.Fd nocbreak "" \*m +.Fd crmode "" \*m +.Fd nocrmode "" \*m +.De +Set or unset the terminal to/from cbreak mode. +The misnamed macros +.Fn crmode +and +.Fn nocrmode +are retained for backwards compatibility +with ealier versions of the library. +.Ds +.Fd echo "" \*m +.Fd noecho "" \*m +.De +Sets the terminal to echo or not echo characters. +.Ds +.Fd getch "" \*m +.Fd wgetch win +WINDOW *win; +.De +Gets a character from the terminal and (if necessary) +echos it on the window. +\*(Es +Otherwise, the character gotten is returned. +If +.i noecho +has been set, then the window is left unaltered. +In order to retain control of the terminal, +it is necessary to have one of +.i noecho , +.i cbreak , +or +.i rawmode +set. +If you do not set one, +whatever routine you call to read characters will set +.i cbreak +for you, +and then reset to the original mode when finished. +.Ds +.Fd getstr str \*m +char *str; +.Fd wgetstr win\*,str +WINDOW *win; +char *str; +.De +Get a string through the window +and put it in the location pointed to by +.Vn str , +which is assumed to be large enough to handle it. +It sets tty modes if necessary, +and then calls +.Fn getch +(or +.Fn wgetch ) "" win +to get the characters needed to fill in the string +until a newline or EOF is encountered. +The newline stripped off the string. +\*(Es +.Ds +.Fd \*_putchar c +char c; +.De +Put out a character using the +.Fn putchar +macro. +This function is used to output every character +that +.b curses +generates. +Thus, +it can be redefined by the user who wants to do non-standard things +with the output. +It is named with an initial \*(lq\*_\*(rq +because it usually should be invisible to the programmer. +.Ds +.Fd raw "" \*m +.Fd noraw "" \*m +.De +Set or unset the terminal to/from raw mode. +On version 7 +.Un \** +.(f +\** +.Un +is a trademark of Bell Laboratories. +.)f +this also turns of newline mapping +(see +.Fn nl ). +.Ds +.Fd scanw fmt\*,arg1\*,arg2\*,... +char *fmt; +.Fd wscanw win\*,fmt\*,arg1\*,arg2\*,... +WINDOW *win; +char *fmt; +.De +Perform a +.Fn scanf +through the window using +.Vn fmt . +It does this using consecutive +.Fn getch 's +(or +.Fn wgetch 's). "" win +\*(Es diff --git a/doc/ps1/18.curses/doc.III b/doc/ps1/18.curses/doc.III new file mode 100644 index 00000000..324d8e34 --- /dev/null +++ b/doc/ps1/18.curses/doc.III @@ -0,0 +1,316 @@ +.\" Copyright (c) 1980 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)doc.III 6.1 (Berkeley) 4/23/86 +.\" +.Ds +.Fd baudrate "" \*m +.De +Returns the output baud rate of the terminal. +This is a system dependent constant +(defined in +.b +on BSD systems, +which is included by +.b ). +.Ds +.Fd delwin win +WINDOW *win; +.De +Deletes the window from existence. +All resources are freed for future use by +.b calloc (3). +If a window has a +.Fn subwin +allocated window inside of it, +deleting the outer window +the subwindow is not affected, +even though this does invalidate it. +Therefore, +subwindows should be deleted before their +outer windows are. +.Ds +.Fd endwin +.De +Finish up window routines before exit. +This restores the terminal to the state it was before +.Fn initscr +(or +.Fn gettmode +and +.Fn setterm ) +was called. +It should always be called before exiting. +It does not exit. +This is especially useful for resetting tty stats +when trapping rubouts via +.b signal (2). +.Ds +.Fd erasechar "" \*m +.De +Returns the erase character +for the terminal, +.i i.e. , +the character used by the user to erase a single character from the input. +.Ds +.Fd getcap str "" "char *" +char *str; +.De +Return a pointer to the +.b termcap +capability described by +.Vn str +(see +.b termcap (5) +for details). +.Ds +.Fd getyx win\*,y\*,x \*m +WINDOW *win; +int y\*,x; +.De +Puts the current \*y of +.Vn win +in the variables +.Vn y +and +.Vn x . +Since it is a macro, +not a function, +you do not pass the address +of +.Vn y +and +.Vn x . +.Ds +.Fd inch "" \*m +.Fd winch win \*m +WINDOW *win; +.De +Returns the character at the current \*(y +on the given window. +This does not make any changes to the window. +.Ds +.Fd initscr +.De +Initialize the screen routines. +This must be called before any of the screen routines are used. +It initializes the terminal-type data and such, +and without it none of the routines can operate. +If standard input is not a tty, +it sets the specifications to the terminal +whose name is pointed to by +.Vn Def\*_term +(initialy "dumb"). +If the boolean +.Vn My\*_term +is true, +.Vn Def\*_term +is always used. +If the system supports the +.b TIOCGWINSZ +.Fn ioctl "" "" 2 +call, +it is used to get the number of lines and columns for the terminal, +otherwise it is taken from the +.b termcap +description. +.Ds +.Fd killchar "" \*m +.De +Returns the line kill character +for the terminal, +.i i.e. , +the character used by the user to erase an entire line from the input. +.Ds +.Fd leaveok win\*,boolf \*m +WINDOW *win; +bool boolf; +.De +Sets the boolean flag for leaving the cursor after the last change. +If +.Vn boolf +is TRUE, +the cursor will be left after the last update on the terminal, +and the current \*y for +.Vn win +will be changed accordingly. +If it is FALSE, +it will be moved to the current \*y. +This flag +(initialy FALSE) +retains its value until changed by the user. +.Ds +.Fd longname termbuf\*,name +char *termbuf\*,*name; +.Fd fullname termbuf\*,name +char *termbuf\*,*name; +.De +.Fn longname +fills in +.Vn name +with the long name of the terminal described by the +.b termcap +entry in +.Vn termbuf . +It is generally of little use, +but is nice for telling the user in a readable format what terminal +we think he has. +This is available in the global variable +.Vn ttytype . +.Vn termbuf +is usually set via the termlib routine +.Fn tgetent . +.Fn fullname +is the same as +.Fn longname , +except that it gives the fullest name given in the entry, +which can be quite verbose. +.Ds +.Fd mvwin win\*,y\*,x +WINDOW *win; +int y, x; +.De +Move the home position of the window +.Vn win +from its current starting coordinates +to +.Vn y\*,x ). ( +If that would put part or all of the window +off the edge of the terminal screen, +.Fn mvwin +returns ERR and does not change anything. +For subwindows, +.Fn mvwin +also returns ERR if you attempt to move it off its main window. +If you move a main window, +all subwindows are moved along with it. +.Ds +.Fd newwin lines\*,cols\*,begin\*_y\*,begin\*_x "" "WINDOW *" +int lines\*,cols\*,begin\*_y\*,begin\*_x; +.De +Create a new window with +.Vn lines +lines and +.Vn cols +columns starting at position +.Vn begin\*_y\*,begin\*_x ). ( +If either +.Vn lines +or +.Vn cols +is 0 (zero), +that dimension will be set to +.Vn "LINES \- begin\*_y" ) ( +or +.Vn "COLS \- begin\*_x" ) ( +respectively. +Thus, to get a new window of dimensions +.Vn LINES +\(mu +.Vn COLS , +use +.Fn newwin . "" 0\*,0\*,0\*,0 +.Ds +.Fd nl "" \*m +.Fd nonl "" \*m +.De +Set or unset the terminal to/from nl mode, +.i i.e. , +start/stop the system from mapping +.b +to +.b . +If the mapping is not done, +.Fn refresh +can do more optimization, +so it is recommended, but not required, to turn it off. +.Ds +.Fd scrollok win\*,boolf \*m +WINDOW *win; +bool boolf; +.De +Set the scroll flag for the given window. +If +.Vn boolf +is FALSE, scrolling is not allowed. +This is its default setting. +.Ds +.Fd touchline win\*,y\*,startx\*,endx +WINDOW *win; +int y\*,startx\*,endx; +.De +This function performs a function similar to +.Fn touchwin +on a single line. +It marks the first change for the given line +to be +.Vn startx , +if it is before the current first change mark, +and +the last change mark is set to be +.Vn endx +if it is currently less than +.Vn endx . +.Ds +.Fd touchoverlap win1\*,win2 +WINDOW *win1, *win2; +.De +Touch the window +.Vn win2 +in the area which overlaps with +.Vn win1 . +If they do not overlap, +no changes are made. +.Ds +.Fd touchwin win +WINDOW *win; +.De +Make it appear that the every location on the window +has been changed. +This is usually only needed for refreshes with overlapping windows. +.Ds +.Fd subwin win\*,lines\*,cols\*,begin\*_y\*,begin\*_x "" "WINDOW *" +WINDOW *win; +int lines\*,cols\*,begin\*_y\*,begin\*_x; +.De +Create a new window with +.Vn lines +lines and +.Vn cols +columns starting at position +.Vn begin\*_y\*,begin\*_x ) ( +inside the window +.i win . +This means that any change made to either window +in the area covered +by the subwindow will be made on both windows. +.Vn begin\*_y\*,begin\*_x +are specified relative to the overall screen, +not the relative (0\*,0) of +.Vn win . +If either +.Vn lines +or +.Vn cols +is 0 (zero), +that dimension will be set to +.Vn "LINES \- begin\*_y" ) ( +or +.Vn "COLS \- begin\*_x" ) ( +respectively. +.Ds +.Fd unctrl ch \*m +char ch; +.De +This is actually a debug function for the library, +but it is of general usefulness. +It returns a string which is a representation of +.Vn ch . +Control characters become their upper-case equivalents preceded by a "^". +Other letters stay just as they are. +To use +.Fn unctrl , +you may have to have +.b #include\ +in your file. diff --git a/doc/ps1/18.curses/doc.IV b/doc/ps1/18.curses/doc.IV new file mode 100644 index 00000000..089ee0ab --- /dev/null +++ b/doc/ps1/18.curses/doc.IV @@ -0,0 +1,83 @@ +.\" Copyright (c) 1980 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)doc.IV 6.1 (Berkeley) 4/23/86 +.\" +.Ds +.Fd gettmode +.De +Get the tty stats. +This is normally called by +.Fn initscr . +.Ds +.Fd mvcur lasty\*,lastx\*,newy\*,newx +int lasty\*,lastx\*,newy\*,newx; +.De +Moves the terminal's cursor from +.Vn lasty\*,lastx ) ( +to +.Vn newy\*,newx ) ( +in an approximation of optimal fashion. +This routine uses the functions borrowed from +.i ex +version 2.6. +It is possible to use this optimization +without the benefit of the screen routines. +With the screen routines, this should not be called by the user. +.Fn move +and +.Fn refresh +should be used to move the cursor position, +so that the routines know what's going on. +.Ds +.Fd scroll win +WINDOW *win; +.De +Scroll the window upward one line. +This is normally not used by the user. +.Ds +.Fd savetty "" \*m +.Fd resetty "" \*m +.De +.Fn savetty +saves the current tty characteristic flags. +.Fn resetty +restores them to what +.Fn savetty +stored. +These functions are performed automatically by +.Fn initscr +and +.Fn endwin . +.Ds +.Fd setterm name +char *name; +.De +Set the terminal characteristics to be those of the terminal named +.Vn name , +getting the terminal size from the +.b TIOCGWINSZ +.Fn ioctl "" "" 2 +if it exists, +otherwise from the environment. +This is normally called by +.Fn initscr . +.Ds +.Fd tstp +.De +If the new +.b tty (4) +driver is in use, +this function +will save the current tty state +and then put the process to sleep. +When the process gets restarted, +it restores the tty state +and then calls +.Fn wrefresh "" "" curscr +to redraw the screen. +.Fn initscr +sets the signal +SIGTSTP +to trap to this routine. diff --git a/doc/ps1/18.curses/intro.0 b/doc/ps1/18.curses/intro.0 new file mode 100644 index 00000000..7e7ea40d --- /dev/null +++ b/doc/ps1/18.curses/intro.0 @@ -0,0 +1,69 @@ +.\" Copyright (c) 1980 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)intro.0 6.1 (Berkeley) 4/23/86 +.\" +.tp +.(l C +.ps 12 +.ft B +Screen Updating and Cursor Movement Optimization: +.fl +A Library Package +.ft +.ps +.sp +.i "Kenneth C. R. C. Arnold" +.sp +Computer Science Division +Department of Electrical Engineering and Computer Science +University of California, Berkeley +Berkeley, California 94720 +.sp 3 +.bi ABSTRACT +.sp 2 +.)l +.(q +.pp +This document describes a package of C library functions +which allow the user to: +.ie t .ip \ \ \ \(bu +.el .ip 1) +update a screen with reasonable optimization, +.ie t .ip \ \ \ \(bu +.el .ip 2) +get input from the terminal +in a screen-oriented fashion, +and +.ie t .ip \ \ \ \(bu +.el .ip 3) +independent from the above, move the cursor optimally +from one point to another. +.pp +These routines all use the +\*(tc \*(db to describe the capabilities of the terminal. +.)q +.b Acknowledgements +.pp +This package would not exist +without the work of Bill Joy, +who, +in writing his editor, +created the capability to generally describe terminals, +wrote the routines which read this \*(db, +and, most importantly, +those which implement optimal cursor movement, +which routines I have simply lifted nearly intact. +Doug Merritt and Kurt Shoens also were extremely important, +as were both willing to waste time listening to me rant and rave. +The help and/or support of +Ken Abrams, +Alan Char, +Mark Horton, +and +Joe Kalash, +was, and is, +also greatly appreciated. +.sp 2 +Revised 16 April 1986 diff --git a/doc/ps1/18.curses/intro.1 b/doc/ps1/18.curses/intro.1 new file mode 100644 index 00000000..a1f368cb --- /dev/null +++ b/doc/ps1/18.curses/intro.1 @@ -0,0 +1,254 @@ +.\" Copyright (c) 1980 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)intro.1 6.1 (Berkeley) 4/23/86 +.\" +.bp +.sh 1 Overview +.pp +In making available the generalized terminal descriptions in \*(tc, +much information was made available to the programmer, +but little work was taken out of one's hands. +The purpose of this package is to allow the C programmer +to do the most common type of terminal dependent functions, +those of movement optimization and optimal screen updating, +without doing any of the dirty work, +and (hopefully) with nearly as much ease as is necessary to simply print +or read things. +.pp +The package is split into three parts: +(1) Screen updating; +(2) Screen updating with user input; +and +(3) Cursor motion optimization. +.pp +It is possible to use the motion optimization +without using either of the other two, +and screen updating and input can be done +without any programmer knowledge of the motion optimization, +or indeed the \*(et \*(db itself. +.sh 2 "Terminology (or, Words You Can Say to Sound Brilliant)" +.pp +In this document, +the following terminology is kept to with reasonable consistency: +.de Ip +.sp +.in 5n +.ti 0n +.bi "\\$1" : +.. +.Ip window +An internal representation +containing an image of what a section of the terminal screen may look like +at some point in time. +This subsection can either encompass the entire terminal screen, +or any smaller portion down to a single character within that screen. +.Ip "terminal" +Sometimes called +.bi terminal +.bi screen . +The package's idea of what the terminal's screen currently looks like, +.i i.e. , +what the user sees now. +This is a special +.i screen : +.Ip screen +This is a subset of windows which are as large as the terminal screen, +.i i.e. , +they start at the upper left hand corner +and encompass the lower right hand corner. +One of these, +.Vn stdscr , +is automatically provided for the programmer. +.rm Ip +.sh 2 "Compiling Things" +.pp +In order to use the library, +it is necessary to have certain types and variables defined. +Therefore, the programmer must have a line: +.(l +.b "#include " +.)l +at the top of the program source. +The header file +.b +needs to include +.b , +so the one should not do so oneself\**. +.(f +\** +The screen package also uses the Standard I/O library, +so +.b +includes +.b . +It is redundant +(but harmless) +for the programmer to do it, too. +.)f +Also, +compilations should have the following form: +.(l +.ie t \fBcc\fR [ \fIflags\fR ] file ... \fB\-lcurses \-ltermcap\fR +.el \fIcc\fR [ flags ] file ... \fI\-lcurses \-ltermcap\fR +.)l +.sh 2 "Screen Updating" +.pp +In order to update the screen optimally, +it is necessary for the routines to know what the screen currently looks like +and what the programmer wants it to look like next. +For this purpose, +a data type +(structure) +named +.Vn WINDOW +is defined +which describes a window image to the routines, +including its starting position on the screen +(the \*y of the upper left hand corner) +and its size. +One of these +(called +.Vn curscr +for +.i "current screen" ) +is a screen image of what the terminal currently looks like. +Another screen +(called +.Vn stdscr , +for +.i "standard screen" ) +is provided +by default +to make changes on. +.pp +A window is a purely internal representation. +It is used to build and store +a potential image of a portion of the terminal. +It doesn't bear any necessary relation +to what is really on the terminal screen. +It is more like an array of characters on which to make changes. +.pp +When one has a window which describes +what some part the terminal should look like, +the routine +.Fn refresh +(or +.Fn wrefresh +if the window is not +.Vn stdscr ) +is called. +.Fn refresh +makes the terminal, +in the area covered by the window, +look like that window. +Note, therefore, that changing something on a window +.i does +.bi not +.i "change the terminal" . +Actual updates to the terminal screen +are made only by calling +.Fn refresh +or +.Fn wrefresh . +This allows the programmer to maintain several different ideas +of what a portion of the terminal screen should look like. +Also, changes can be made to windows in any order, +without regard to motion efficiency. +Then, at will, +the programmer can effectively say +.q "make it look like this" , +and let the package worry about the best way to do this. +.sh 2 "Naming Conventions" +.pp +As hinted above, +the routines can use several windows, +but two are automatically given: +.Vn curscr , +which knows what the terminal looks like, +and +.Vn stdscr , +which is what the programmer wants the terminal to look like next. +The user should never really access +.Vn curscr +directly. +Changes should be made to +the appropriate screen, +and then the routine +.Fn refresh +(or +.Fn wrefresh ) +should be called. +.pp +Many functions are set up to deal with +.Vn stdscr +as a default screen. +For example, to add a character to +.Vn stdscr , +one calls +.Fn addch +with the desired character. +If a different window is to be used, +the routine +.Fn waddch +(for +.b w indow-specific +.Fn addch ) +is provided\**. +.(f +\** +Actually, +.Fn addch +is really a +.q #define +macro with arguments, +as are most of the "functions" which deal with +.Vn stdscr +as a default. +.)f +This convention of prepending function names with a +.Bq w +when they are to be applied to specific windows +is consistent. +The only routines which do +.i not +do this are those +to which a window must always be specified. +.pp +In order to move the current \*y from one point to another, +the routines +.Fn move +and +.Fn wmove +are provided. +However, +it is often desirable to first move and then perform some I/O operation. +In order to avoid clumsyness, +most I/O routines can be preceded by the prefix +.Bq mv +and the desired \*y then can be added to the arguments to the function. +For example, +the calls +.(l +move(y\*,x); +addch(ch); +.)l +can be replaced by +.(l +mvaddch(y\*,x\*,ch); +.)l +and +.(l +wmove(win\*,y\*,x); +waddch(win\*,ch); +.)l +can be replaced by +.(l +mvwaddch(win\*,y\*,x\*,ch); +.)l +Note that the window description pointer +.Vn win ) ( +comes before the added \*y. +If such pointers are need, +they are always the first parameters passed. diff --git a/doc/ps1/18.curses/intro.2 b/doc/ps1/18.curses/intro.2 new file mode 100644 index 00000000..3fb1e871 --- /dev/null +++ b/doc/ps1/18.curses/intro.2 @@ -0,0 +1,63 @@ +.\" Copyright (c) 1980 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)intro.2 6.1 (Berkeley) 4/23/86 +.\" +.sh 1 Variables +.pp +Many variables which are used to describe the terminal environment +are available to the programmer. They are: +.TS +expand; +lw(6m) lw(8n) lw(50n). +type name description +_ +WINDOW * curscr T{ +.fi +current version of the screen (terminal screen). +T} +WINDOW * stdscr T{ +standard screen. Most updates are usually done here. +T} +char * Def\*_term T{ +default terminal type if type cannot be determined +T} +bool My\*_term T{ +use the terminal specification in \fIDef\*_term\fR as terminal, +irrelevant of real terminal type +T} +char * ttytype T{ +full name of the current terminal. +T} +int LINES T{ +number of lines on the terminal +T} +int COLS T{ +number of columns on the terminal +T} +int ERR T{ +error flag returned by routines on a fail. +T} +int OK T{ +error flag returned by routines when things go right. +T} +.TE +.pp +There are also several +.q #define +constants and types +which are of general usefulness: +.sp +.ev 1 +.ta 11n +.(b L +.nf +reg storage class ``register'' (\fIe.g.\fP, \fIreg int i;\fR\|) +bool boolean type, actually a ``char'' (\fIe.g.\fP, \fIbool doneit;\fR\|) +TRUE boolean ``true'' flag (1). +FALSE boolean ``false'' flag (0). +.fi +.ev +.)b +.lp diff --git a/doc/ps1/18.curses/intro.3 b/doc/ps1/18.curses/intro.3 new file mode 100644 index 00000000..a36ee731 --- /dev/null +++ b/doc/ps1/18.curses/intro.3 @@ -0,0 +1,203 @@ +.\" Copyright (c) 1980 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)intro.3 6.1 (Berkeley) 4/23/86 +.\" +.sh 1 Usage +.pp +This is a description of how to actually use the screen package. +In it, we assume all updating, reading, etc. +is applied to +.Vn stdscr . +All instructions will work on any window, +with changing the function name and parameters as mentioned above. +.sh 2 "Starting up" +.pp +In order to use the screen package, +the routines must know about terminal characteristics, +and the space for +.Vn curscr +and +.Vn stdscr +must be allocated. +These functions are performed by +.Fn initscr . +Since it must allocate space for the windows, +it can overflow core when attempting to do so. +On this rather rare occasion, +.Fn initscr +returns ERR. +.Fn initscr +must +.bi always +be called before any of the routines which affect windows are used. +If it is not, +the program will core dump as soon as either +.Vn curscr +or +.Vn stdscr +are referenced. +However, it is usually best to wait to call it +until after you are sure you will need it, +like after checking for startup errors. +Terminal status changing routines +like +.Fn nl +and +.Fn cbreak +should be called after +.Fn initscr . +.pp +Now that the screen windows have been allocated, +you can set them up for the run. +If you want to, say, allow the window to scroll, +use +.Fn scrollok . +If you want the cursor to be left after the last change, use +.Fn leaveok . +If this isn't done, +.Fn refresh +will move the cursor to the window's current \*y after updating it. +New windows of your own can be created, too, by using the functions +.Fn newwin +and +.Fn subwin . +.Fn delwin +will allow you to get rid of old windows. +If you wish to change the official size of the terminal by hand, +just set the variables +.Vn LINES +and +.Vn COLS +to be what you want, +and then call +.Fn initscr . +This is best done before, +but can be done either before or after, +the first call to +.Fn initscr , +as it will always delete any existing +.Vn stdscr +and/or +.Vn curscr +before creating new ones. +.pp +.sh 2 "The Nitty-Gritty" +.sh 3 Output +.pp +Now that we have set things up, +we will want to actually update the terminal. +The basic functions +used to change what will go on a window are +.Fn addch +and +.Fn move . +.Fn addch +adds a character at the current \*y, +returning ERR if it would cause the window to illegally scroll, +.i i.e. , +printing a character in the lower right-hand corner +of a terminal which automatically scrolls +if scrolling is not allowed. +.Fn move +changes the current \*y to whatever you want them to be. +It returns ERR if you try to move off the window when scrolling is not allowed. +As mentioned above, you can combine the two into +.Fn mvaddch +to do both things in one fell swoop. +.pp +The other output functions, +such as +.Fn addstr +and +.Fn printw , +all call +.Fn addch +to add characters to the window. +.pp +After you have put on the window what you want there, +when you want the portion of the terminal covered by the window +to be made to look like it, +you must call +.Fn refresh . +In order to optimize finding changes, +.Fn refresh +assumes that any part of the window not changed +since the last +.Fn refresh +of that window has not been changed on the terminal, +.i i.e. , +that you have not refreshed a portion of the terminal +with an overlapping window. +If this is not the case, +the routines +.Fn touchwin , +.Fn touchline , +and +.Fn touchoverlap +are provided to make it look like a desired part of window has been changed, +thus forcing +.Fn refresh +check that whole subsection of the terminal for changes. +.pp +If you call +.Fn wrefresh +with +.Vn curscr , +it will make the screen look like +.Vn curscr +thinks it looks like. +This is useful for implementing a command +which would redraw the screen in case it get messed up. +.sh 3 Input +.pp +Input is essentially a mirror image of output. +The complementary function to +.Fn addch +is +.Fn getch +which, +if echo is set, +will call +.Fn addch +to echo the character. +Since the screen package needs to know what is on the terminal at all times, +if characters are to be echoed, +the tty must be in raw or cbreak mode. +If it is not, +.Fn getch +sets it to be cbreak, +and then reads in the character. +.sh 3 Miscellaneous +.pp +All sorts of fun functions exists for maintaining and changing information +about the windows. +For the most part, +the descriptions in section 5.4. should suffice. +.sh 2 "Finishing up" +.pp +In order to do certain optimizations, +and, +on some terminals, +to work at all, +some things must be done +before the screen routines start up. +These functions are performed in +.Fn getttmode +and +.Fn setterm , +which are called by +.Fn initscr . +In order to clean up after the routines, +the routine +.Fn endwin +is provided. +It restores tty modes to what they were +when +.Fn initscr +was first called. +Thus, +anytime after the call to initscr, +.Fn endwin +should be called before exiting. diff --git a/doc/ps1/18.curses/intro.4 b/doc/ps1/18.curses/intro.4 new file mode 100644 index 00000000..121bf278 --- /dev/null +++ b/doc/ps1/18.curses/intro.4 @@ -0,0 +1,222 @@ +.\" Copyright (c) 1980 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)intro.4 6.1 (Berkeley) 4/23/86 +.\" +.sh 1 "Cursor Motion Optimization: Standing Alone" +.pp +It is possible to use the cursor optimization functions of this screen package +without the overhead and additional size of the screen updating functions. +The screen updating functions are designed for uses +where parts of the screen are changed, +but the overall image remains the same. +This includes such programs as +.b rogue +and +.b vi \**. +.(f +\** +.b rogue +actually uses these functions, +.b vi +does not. +.)f +Certain other programs +will find it difficult to use these functions in this manner +without considerable unnecessary program overhead. +For such applications, +such as some +.q "\fIcrt hacks\fR\|" \** +.(f +\** +Graphics programs designed to run on character-oriented terminals. +I could name many, +but they come and go, +so the list would be quickly out of date. +Recently, there have been programs such as +.b rain , +.b rocket , +and +.b gun . +.)f +and optimizing +.b more (1)-type +programs, +all that is needed is the motion optimizations. +This, therefore, is a description +of what some of what goes on at the lower levels of this screen package. +The descriptions assume a certain amount of familiarity +with programming problems and some finer points of C. +None of it is terribly difficult, +but you should be forewarned. +.sh 2 "Terminal Information" +.pp +In order to use a terminal's +features to the best of a program's abilities, +it must first know what they are\**. +.(f +\** +If this comes as any surprise to you, +there's this tower in Paris they're thinking of junking +that I can let you have for a song. +.)f +The \*(tc \*(db describes these, +but a certain amount of decoding is necessary, +and there are, of course, +both efficient and inefficient ways of reading them in. +The algorithm that the uses is taken from +.b vi +and is hideously efficient. +It reads them +in a tight loop +into a set of variables +whose names are two uppercase letters with some mnemonic value. +For example, +.Vn HO +is a string which moves the cursor to the "home" position\**. +.(f +\** +These names are identical to those variables +used in the +.b termcap (5) +\*(db to describe each capability. +See Appendix A for a complete list of those read, +and the +.b termcap (5) +manual page +for a full description. +.)f +As there are two types of variables involving ttys, +there are two routines. +The first, +.Fn gettmode , +sets some variables based upon the tty modes accessed by +.b gtty (2) +and +.b stty (2) . +The second, +.Fn setterm , +a larger task by reading in the descriptions from the \*(tc \*(db. +This is the way these routines are used by +.Fn initscr : +.(b +.(l I +\*fif\fP (isatty(0)) { + gettmode(); + \*fif\fP ((sp=getenv("TERM")) != NULL) + setterm(sp); + \*felse\fP + setterm(Def\*_term); +} +\*felse\fP + setterm(Def\*_term); +\*_puts(TI); +\*_puts(VS); +.)l +.)b +.pp +.Fn isatty +checks to see if file descriptor 0 is a terminal\**. +.(f +\** +.Fn isatty +is defined in the default C library function routines. +It does a +.b gtty (2) +on the descriptor and checks the return value. +.)f +If it is, +.Fn gettmode +sets the terminal description modes from a +.b gtty (2) . +.Fn getenv +is then called to get the name of the terminal, +and that value (if there is one) is passed to +.Fn setterm , +which reads in the variables from \*(tc +associated with that terminal. +.Fn getenv "" ( +returns a pointer to a string containing the name of the terminal, +which we save in the character pointer +.Vn sp .) +If +.Fn isatty +returns false, +the default terminal +.Vn Def\*_term +is used. +The +.Vn TI +and +.Vn VS +sequences initialize the terminal +.Fn \*_puts "" ( +is a macro which uses +.Fn tputs +(see +.b termcap (3)) +and +.Fn \*_putchar "" +to put out a string). +.Fn endwin +undoes these things. +.sh 2 "Movement Optimizations, or, Getting Over Yonder" +.pp +Now that we have all this useful information, +it would be nice to do something with it\**. +.(f +\** +Actually, +it +.i can +be emotionally fulfilling just to get the information. +This is usually only true, however, +if you have the social life of a kumquat. +.)f +The most difficult thing to do properly is motion optimization. +When you consider how many different features various terminals have +(tabs, backtabs, non-destructive space, home sequences, absolute tabs, .....) +you can see that deciding how to get from here to there +can be a decidedly non-trivial task. +The editor +.b vi +uses many of these features, +and the routines it uses to do this take up many pages of code. +Fortunately, I was able to liberate them with the author's permission, +and use them here. +.pp +After using +.Fn gettmode +and +.Fn setterm +to get the terminal descriptions, +the function +.Fn mvcur +deals with this task. +It usage is simple: +you simply tell it where you are now and where you want to go. +For example +.(l +mvcur(0\*,0\*,LINES/2\*,COLS/2) +.)l +.lp +would move the cursor from the home position (0\*,0) +to the middle of the screen. +If you wish to force absolute addressing, +you can use the function +.Fn tgoto +from the +.b termlib (7) +routines, +or you can tell +.Fn mvcur +that you are impossibly far away, +like Cleveland. +For example, +to absolutely address the lower left hand corner of the screen +from anywhere +just claim that you are in the upper right hand corner: +.(l +mvcur(0\*,COLS\-1\*,LINES\-1\*,0) +.)l diff --git a/doc/ps1/18.curses/intro.5 b/doc/ps1/18.curses/intro.5 new file mode 100644 index 00000000..81ccdf98 --- /dev/null +++ b/doc/ps1/18.curses/intro.5 @@ -0,0 +1,33 @@ +.\" Copyright (c) 1980 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)intro.5 6.1 (Berkeley) 4/23/86 +.\" +.sh 1 "The Functions" +.pp +In the following definitions, +.q \*m +means that the +.q function +is really a +.q #define +macro with arguments. +This means that it will not show up in stack traces in the debugger, +or, in the case of such functions as +.Fn addch , +it will show up as it's +.Bq w +counterpart. +The arguments are given to show the order and type of each. +Their names are not mandatory, +just suggestive. +.ta 11m,17m,25m,33m,41m,49m,57m,65m,73m +.sh 2 "Output Functions" +.so doc.I +.sh 2 "Input Functions" +.so doc.II +.sh 2 "Miscellaneous Functions" +.so doc.III +.sh 2 Details +.so doc.IV diff --git a/doc/ps1/18.curses/life.c b/doc/ps1/18.curses/life.c new file mode 100644 index 00000000..ef56328c --- /dev/null +++ b/doc/ps1/18.curses/life.c @@ -0,0 +1,140 @@ +/* + * Copyright (c) 1980 Regents of the University of California. + * All rights reserved. The Berkeley software License Agreement + * specifies the terms and conditions for redistribution. + */ + +#ifndef lint +static char sccsid[] = "@(#)life.c 6.1 (Berkeley) 4/23/86"; +#endif not lint + +# include +# include + +/* + * Run a life game. This is a demonstration program for + * the Screen Updating section of the -lcurses cursor package. + */ + +typedef struct lst_st { /* linked list element */ + int y, x; /* (y, x) position of piece */ + struct lst_st *next, *last; /* doubly linked */ +} LIST; + +LIST *Head; /* head of linked list */ + +int die(); + +main(ac, av) +int ac; +char *av[]; +{ + evalargs(ac, av); /* evaluate arguments */ + + initscr(); /* initialize screen package */ + signal(SIGINT, die); /* set to restore tty stats */ + cbreak(); /* set for char-by-char */ + noecho(); /* input */ + nonl(); /* for optimization */ + + getstart(); /* get starting position */ + for (;;) { + prboard(); /* print out current board */ + update(); /* update board position */ + } +} + +/* + * This is the routine which is called when rubout is hit. + * It resets the tty stats to their original values. This + * is the normal way of leaving the program. + */ +die() +{ + signal(SIGINT, SIG_IGN); /* ignore rubouts */ + mvcur(0, COLS - 1, LINES - 1, 0); /* go to bottom of screen */ + endwin(); /* set terminal to good state */ + exit(0); +} + +/* + * Get the starting position from the user. They keys u, i, o, j, l, + * m, ,, and . are used for moving their relative directions from the + * k key. Thus, u move diagonally up to the left, , moves directly down, + * etc. x places a piece at the current position, " " takes it away. + * The input can also be from a file. The list is built after the + * board setup is ready. + */ +getstart() +{ + reg char c; + reg int x, y; + auto char buf[100]; + + box(stdscr, '|', '_'); /* box in the screen */ + move(1, 1); /* move to upper left corner */ + + for (;;) { + refresh(); /* print current position */ + if ((c = getch()) == 'q') + break; + switch (c) { + case 'u': + case 'i': + case 'o': + case 'j': + case 'l': + case 'm': + case ',': + case '.': + adjustyx(c); + break; + case 'f': + mvaddstr(0, 0, "File name: "); + getstr(buf); + readfile(buf); + break; + case 'x': + addch('X'); + break; + case ' ': + addch(' '); + break; + } + } + + if (Head != NULL) /* start new list */ + dellist(Head); + Head = malloc(sizeof (LIST)); + + /* + * loop through the screen looking for 'x's, and add a list + * element for each one + */ + for (y = 1; y < LINES - 1; y++) + for (x = 1; x < COLS - 1; x++) { + move(y, x); + if (inch() == 'x') + addlist(y, x); + } +} + +/* + * Print out the current board position from the linked list + */ +prboard() { + + reg LIST *hp; + + erase(); /* clear out last position */ + box(stdscr, '|', '_'); /* box in the screen */ + + /* + * go through the list adding each piece to the newly + * blank board + */ + for (hp = Head; hp; hp = hp->next) + mvaddch(hp->y, hp->x, 'X'); + + refresh(); +} diff --git a/doc/ps1/18.curses/macros b/doc/ps1/18.curses/macros new file mode 100644 index 00000000..f6fb501c --- /dev/null +++ b/doc/ps1/18.curses/macros @@ -0,0 +1,83 @@ +.\" Copyright (c) 1980 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)macros 6.1 (Berkeley) 4/23/86 +.\" +.\" this is the uncommented version. The commented one is in "macros.coms" +.ie t .ds _ \d\(mi\u +.el .ds _ _ +.ds , ,\ +.ds y (y\*,x) co-ordinates +.ds db database +.ie n .ds f \fI +.el .ds f \fB +.ds tc \*ftermcap\fP(5) +.ds Es This returns ERR if it would cause the screen to scroll illegally. +.ds Nm This has no associated \*(lq\fBmv\fP\*(rq command. +.ie t .ds m \fB\s-2\(dg\s+2\fP +.el .ds m [*] +.hy WINDOW +.\".he ''\*(Ln'' +.\".fo ''\- % \-'' +.oh '\*(Ln''PS1:18-%' +.eh 'PS1:18-%''\*(Ln' +.de Un +.b +\s-2\\$2UNIX\\$1\s+2 +.ft +.. +.de Ds +.sp +.lp +.ev 1 +.nf +.ft I +.in 0 +.di Df +.. +.de De +.di +.ne \n(dn+2 +.Df +.ev +.ip +.. +.de Fd +.br +\&\\$4 +.fi +.b +\&\\$1(\\$2) +.ft +\&\\$3 +.br +.nf +.. +.de Vn +\&\\$3\c +.i "\\$1" \\$2 +.. +.de Fn +\&\\$3\c +.i "\\$1(\\$4)" \\$2 +.. +.de Bq +.ie t \&\*(lq\fB\\$1\fP\*(rq +.el \&\*(lq\fI\\$1\fP\*(rq +.. +.de $0 +.(x +.in \\n(Xs +\\*($n \\$1 +.)x +.. +.de $1 +.nr Xs 0 +.. +.de $2 +.nr Xs 3 +.. +.de $3 +.nr Xs 6 +.. diff --git a/doc/ps1/18.curses/twinkle1.c b/doc/ps1/18.curses/twinkle1.c new file mode 100644 index 00000000..346f8863 --- /dev/null +++ b/doc/ps1/18.curses/twinkle1.c @@ -0,0 +1,134 @@ +/* + * Copyright (c) 1980 Regents of the University of California. + * All rights reserved. The Berkeley software License Agreement + * specifies the terms and conditions for redistribution. + */ + +#ifndef lint +static char sccsid[] = "@(#)twinkle1.c 6.1 (Berkeley) 4/24/86"; +#endif not lint + +# include +# include + +/* + * the idea for this program was a product of the imagination of + * Kurt Schoens. Not responsible for minds lost or stolen. + */ + +# define NCOLS 80 +# define NLINES 24 +# define MAXPATTERNS 4 + +typedef struct { + int y, x; +} LOCS; + +LOCS Layout[NCOLS * NLINES]; /* current board layout */ + +int Pattern, /* current pattern number */ + Numstars; /* number of stars in pattern */ + +char *getenv(); + +int die(); + +main() +{ + srand(getpid()); /* initialize random sequence */ + + initscr(); + signal(SIGINT, die); + noecho(); + nonl(); + leaveok(stdscr, TRUE); + scrollok(stdscr, FALSE); + + for (;;) { + makeboard(); /* make the board setup */ + puton('*'); /* put on '*'s */ + puton(' '); /* cover up with ' 's */ + } +} + +/* + * On program exit, move the cursor to the lower left corner by + * direct addressing, since current location is not guaranteed. + * We lie and say we used to be at the upper right corner to guarantee + * absolute addressing. + */ +die() +{ + signal(SIGINT, SIG_IGN); + mvcur(0, COLS - 1, LINES - 1, 0); + endwin(); + exit(0); +} + + +/* + * Make the current board setup. It picks a random pattern and + * calls ison() to determine if the character is on that pattern + * or not. + */ +makeboard() +{ + reg int y, x; + reg LOCS *lp; + + Pattern = rand() % MAXPATTERNS; + lp = Layout; + for (y = 0; y < NLINES; y++) + for (x = 0; x < NCOLS; x++) + if (ison(y, x)) { + lp->y = y; + lp->x = x; + lp++; + } + Numstars = lp - Layout; +} + +/* + * Return TRUE if (y, x) is on the current pattern. + */ +ison(y, x) +reg int y, x; { + + switch (Pattern) { + case 0: /* alternating lines */ + return !(y & 01); + case 1: /* box */ + if (x >= LINES && y >= NCOLS) + return FALSE; + if (y < 3 || y >= NLINES - 3) + return TRUE; + return (x < 3 || x >= NCOLS - 3); + case 2: /* holy pattern! */ + return ((x + y) & 01); + case 3: /* bar across center */ + return (y >= 9 && y <= 15); + } + /* NOTREACHED */ +} + +puton(ch) +reg char ch; +{ + reg LOCS *lp; + reg int r; + reg LOCS *end; + LOCS temp; + + end = &Layout[Numstars]; + for (lp = Layout; lp < end; lp++) { + r = rand() % Numstars; + temp = *lp; + *lp = Layout[r]; + Layout[r] = temp; + } + + for (lp = Layout; lp < end; lp++) { + mvaddch(lp->y, lp->x, ch); + refresh(); + } +} diff --git a/doc/ps1/18.curses/twinkle2.c b/doc/ps1/18.curses/twinkle2.c new file mode 100644 index 00000000..90121a6f --- /dev/null +++ b/doc/ps1/18.curses/twinkle2.c @@ -0,0 +1,73 @@ +/* + * Copyright (c) 1980 Regents of the University of California. + * All rights reserved. The Berkeley software License Agreement + * specifies the terms and conditions for redistribution. + */ + +#ifndef lint +static char sccsid[] = "@(#)twinkle2.c 6.1 (Berkeley) 4/24/86"; +#endif not lint + +extern int _putchar(); + +main() +{ + reg char *sp; + + srand(getpid()); /* initialize random sequence */ + + if (isatty(0)) { + gettmode(); + if ((sp = getenv("TERM")) != NULL) + setterm(sp); + signal(SIGINT, die); + } + else { + printf("Need a terminal on %d\n", _tty_ch); + exit(1); + } + _puts(TI); + _puts(VS); + + noecho(); + nonl(); + tputs(CL, NLINES, _putchar); + for (;;) { + makeboard(); /* make the board setup */ + puton('*'); /* put on '*'s */ + puton(' '); /* cover up with ' 's */ + } +} + +puton(ch) +char ch; +{ + reg LOCS *lp; + reg int r; + reg LOCS *end; + LOCS temp; + static int lasty, lastx; + + end = &Layout[Numstars]; + for (lp = Layout; lp < end; lp++) { + r = rand() % Numstars; + temp = *lp; + *lp = Layout[r]; + Layout[r] = temp; + } + + for (lp = Layout; lp < end; lp++) + /* prevent scrolling */ + if (!AM || (lp->y < NLINES - 1 || lp->x < NCOLS - 1)) { + mvcur(lasty, lastx, lp->y, lp->x); + putchar(ch); + lasty = lp->y; + if ((lastx = lp->x + 1) >= NCOLS) + if (AM) { + lastx = 0; + lasty++; + } + else + lastx = NCOLS - 1; + } +} diff --git a/doc/ps1/18.curses/win_st.c b/doc/ps1/18.curses/win_st.c new file mode 100644 index 00000000..0be7650c --- /dev/null +++ b/doc/ps1/18.curses/win_st.c @@ -0,0 +1,33 @@ +/* + * Copyright (c) 1980 Regents of the University of California. + * All rights reserved. The Berkeley software License Agreement + * specifies the terms and conditions for redistribution. + * + * @(#)win_st.c 6.1 (Berkeley) 4/24/86"; + */ + +# define WINDOW struct _win_st + +struct _win_st { + short _cury, _curx; + short _maxy, _maxx; + short _begy, _begx; + short _flags; + short _ch_off; + bool _clear; + bool _leave; + bool _scroll; + char **_y; + short *_firstch; + short *_lastch; + struct _win_st *_nextp, *_orig; +}; + +# define _ENDLINE 001 +# define _FULLWIN 002 +# define _SCROLLWIN 004 +# define _FLUSH 010 +# define _FULLLINE 020 +# define _IDLINE 040 +# define _STANDOUT 0200 +# define _NOCHANGE -1 diff --git a/doc/ps1/Title b/doc/ps1/Title new file mode 100644 index 00000000..2b039520 --- /dev/null +++ b/doc/ps1/Title @@ -0,0 +1,71 @@ +.\" Copyright (c) 1986 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)Title 6.1 (Berkeley) 5/14/86 +.\" +.ps 18 +.vs 22 +.sp 2.75i +.ft B +.ce 3 +UNIX Programmer's Supplementary Documents +Volume 1 +(PS1) +.ps 14 +.vs 16 +.sp |4i +.ce 2 +4.3 Berkeley Software Distribution +Virtual VAX\-11 Version +.sp |5.75i +.ft R +.pt 12 +.vs 16 +.ce +April, 1986 +.sp |8.2i +.ce 5 +Computer Systems Research Group +Computer Science Division +Department of Electrical Engineering and Computer Science +University of California +Berkeley, California 94720 +.bp +.ll 5.3i +.in 1.25i +.hy 0 +.ps 10 +.vs 12p +.sp |2.5i +Copyright 1979, 1980, 1983, 1986 Regents of the University of California. +Permission to copy these documents or any portion thereof as necessary +for licensed use of the software is granted to licensees of this +software, provided this copyright notice and statement of permission +are included. +.sp 2 +Documents PS1:1, 9, 10, 12, 15, 16, and 17 +are copyright 1979, AT&T Bell Laboratories, Incorporated. +Documents PS1:2, and 5 are modifications of earlier documents that +are copyrighted 1979 by AT&T Bell Laboratories, Incorporated. +Holders of \x'-1p'UNIX\v'-4p'\s-3TM\s0\v'4p'/32V, +System III, or System V software licenses are +permitted to copy these documents, or any portion of them, +as necessary for licensed use of the software, +provided this copyright notice and statement of permission +are included. +.sp 2 +Document PS1:13 is part of the user contributed software and is +copyright 1983 by Walter F. Tichy. +Permission to copy the RCS documentation or any portion thereof as +necessary for licensed use of the software is granted to licensees +of this software, provided this copyright notice is included. +.sp 2 +This manual reflects system enhancements made at Berkeley and sponsored +in part by the Defense Advanced Research Projects Agency +(DoD), Arpa Order No. 4871 monitored by the Naval Electronics Systems +Command under contract No. N00039-84-C-0089. +The views and conclusions contained in these documents are those of the +authors and should not be interpreted as representing official policies, +either expressed or implied, of the Defense Research Projects Agency +or of the US Government. diff --git a/doc/ps2/00.contents b/doc/ps2/00.contents new file mode 100644 index 00000000..6481b2f3 --- /dev/null +++ b/doc/ps2/00.contents @@ -0,0 +1,88 @@ +.\" Copyright (c) 1986 Regents of the University of California. +.\" All rights reserved. The Berkeley software License Agreement +.\" specifies the terms and conditions for redistribution. +.\" +.\" @(#)00.contents 5.2 (Berkeley) 5/10/86 +.\" +.OH '''PS2 Contents' +.EH 'PS2 Contents''' +.TL +UNIX Programmer's Supplementary Documents, Volume 2 (PS2) +.sp +\s-24.3 Berkeley Software Distribution, Virtual \s-2VAX\s+2\-11 Version\s+2 +.sp +\fRApril, 1986\fR +.PP +These two volumes contain documents that supplement the manual pages in +.I +The Unix Programmer's Reference Manual +.R +for the Virtual \s-2VAX\s0-11 version of the system as distributed by U.C. +Berkeley. +.SH +Documents of Historical Interest +.IP +.tl 'The Unix Time\-Sharing System''PS2:1' +.QP +Dennis Ritchie and Ken Thompson's original paper about UNIX, reprinted +from Communications of the ACM. + +.IP +.tl 'UNIX 32/V \- Summary''PS2:2' +.QP +A concise summary of the facilities in UNIX Version 32/V, the basis for 4BSD. + +.IP +.tl 'Unix Programming \- Second Edition ''PS2:3' +.QP +Describes the programming interface to the UNIX version 7 operating +system and the standard I/O library. Should be supplemented by +Kernighan and Pike, ``The UNIX Programming Environment'', +Prentice-Hall, 1984 and especially by the Programmer Reference Manual +section 2 (system calls) and 3 (library routines). + +.IP +.tl 'Unix Implementation''PS2:4' +.QP +Ken Thompson's description of the implementation of the Version 7 +kernel and file system. + +.IP +.tl 'The Unix I/O System''PS2:5' +.QP +Dennis Ritchie's overview of the I/O System of Version 7; still helpful for +those writing device drivers. + +.SH +Other Languages +.IP +.tl 'The Programming Language EFL''PS2:6' +.QP +An introduction to a powerful FORTRAN preprocessor providing access +to a language with structures much like C. + +.IP +.tl 'Berkeley FP User\'s Manual''PS2:7' +.QP +A description of the Berkeley implementation of Backus' +Functional Programming Language, FP. + +.IP +.tl 'Ratfor \- A Preprocessor for a Rational FORTRAN''PS2:8' +.QP +Converts a FORTRAN with C\-like control structures and cosmetics into real, +ugly, compilable FORTRAN. + +.IP +.tl 'The F\s-2RANZ\s0 L\s-2ISP\s0 Manual''PS2:9' +.QP +A dialect of \s-2LISP\s0, largely compatible with \s-2MACLISP\s0. + +.SH +Database Management +.IP +.tl 'Ingres (Version 8) Reference Manual''PS2:10' +.QP +A terse reference manual (in the style of ``man'' pages) for the Ingres +database system. +.IP diff --git a/doc/ps2/01.cacm/Makefile b/doc/ps2/01.cacm/Makefile new file mode 100644 index 00000000..60860960 --- /dev/null +++ b/doc/ps2/01.cacm/Makefile @@ -0,0 +1,27 @@ +# +# Copyright (c) 1986 Regents of the University of California. +# All rights reserved. The Berkeley software License Agreement +# specifies the terms and conditions for redistribution. +# +# @(#)Makefile 6.2 (Berkeley) 4/25/86 +# +SRCS= p.mac p1 p2 p3 p4 p5 p6 +MACROS= -msU +PRINTER=Pdp +TBL= dtbl -${PRINTER} +TROFF= ditroff -${PRINTER} +REFER= refer -e + +paper: paper.${PRINTER} + lpr -${PRINTER} -n paper.${PRINTER} + +paper.${PRINTER}: ${SRCS} + ${REFER} ${SRCS} | ${TBL} | ${TROFF} ${MACROS} -t > paper.${PRINTER} + +clean: + rm -f paper.[PT]* *.spell errs Errs make.out + +spell: ${SRCS} + @for i in ${SRCS}; do \ + echo $$i; spell $$i | sort | comm -23 - spell.ok > $$i.spell; \ + done diff --git a/doc/ps2/01.cacm/p.mac b/doc/ps2/01.cacm/p.mac new file mode 100644 index 00000000..b5d6f228 --- /dev/null +++ b/doc/ps2/01.cacm/p.mac @@ -0,0 +1,26 @@ +.\" @(#)p.mac 6.1 (Berkeley) 4/24/86 +.\" +.de P1 +.DS +.. +.de P2 +.DE +.. +.de UL +.lg 0 +.if n .ul +\%\&\\$3\f3\\$1\fR\&\\$2 +.lg +.. +.de UC +\&\\$3\s-1\\$1\\s0\&\\$2 +.. +.de IT +.lg 0 +.if n .ul +\%\&\\$3\f2\\$1\fR\&\\$2 +.lg +.. +.de SP +.sp \\$1 +.. diff --git a/doc/ps2/01.cacm/p1 b/doc/ps2/01.cacm/p1 new file mode 100644 index 00000000..45547948 --- /dev/null +++ b/doc/ps2/01.cacm/p1 @@ -0,0 +1,562 @@ +.\" @(#)p1 6.2 (Berkeley) 4/25/86 +.\" +.OH 'The UNIX Time-Sharing System''PS2:1-%' +.EH 'PS2:1-%''The UNIX Time-Sharing System' +.ds n \s+2 +.hw above-mentioned +.ds s \s-2 +.ds m \v'-.3'.\v'.3' +.TL +The UNIX +Time-Sharing System\f1\s10\v'-.2n'*\v'.2n'\s0\fP +.AU +D. M. Ritchie and K. Thompson +.AB +.FS +* Copyright 1974, +Association for Computing Machinery, Inc., +reprinted by permission. +This is a revised version of an article +that appeared in Communications of the \*sACM\*n, +.IT 17 , +No. 7 (July 1974), pp. 365-375. +That article was a +revised version of a paper presented +at the Fourth \*sACM\*n Symposium on Operating +Systems Principles, +\*sIBM\*n Thomas J. Watson Research Center, +Yorktown Heights, +New York, +October 15-17, 1973. +.FE +.UX +is a general-purpose, multi-user, interactive +operating system for the larger Digital Equipment Corporation +\*sPDP\*n-11 and +the Interdata 8/32 computers. +It offers a number of features +seldom found even in larger operating +systems, including +.IP i +A hierarchical file system incorporating +demountable volumes, +.IP ii +Compatible file, device, and inter-process I/O, +.IP iii +The ability to initiate asynchronous processes, +.IP iv +System command language selectable on a per-user basis, +.IP v +Over 100 subsystems including a dozen languages, +.IP vi +High degree of portability. +.LP +This paper discusses the nature +and implementation of the file system +and of the user command interface. +.AE +.NH +INTRODUCTION +.PP +There have been four versions of +the +.UX +time-sharing system. +.hy 12 +The earliest (circa 1969-70) ran on +the Digital Equipment Corporation \*sPDP\*n-7 and -9 computers. +The second version ran on the unprotected +\*sPDP\*n-11/20 computer. +The third incorporated multiprogramming and ran +on the \*sPDP\*n-11/34, /40, /45, /60, and /70 computers; +it is the one described in the previously published version +of this paper, and is also the most widely used today. +.hy 14 +This paper describes only the +fourth, current +system that runs on the \*sPDP\*n-11/70 and the +Interdata 8/32 computers. +In fact, the differences among the various systems is +rather small; +most of the revisions made to the originally published version of this +paper, +aside from those concerned with style, +had to do with details of the implementation of the file system. +.PP +Since +\*sPDP\*n-11 +.UX +became operational +in February, 1971, +over 600 installations have been put into service. +Most of them are engaged in applications such as +computer science education, +the preparation and formatting of documents +and other textual material, +the collection and processing of trouble data +from various switching machines within the Bell System, +and recording and checking telephone service +orders. +Our own installation is used mainly for research +in operating systems, languages, +computer networks, +and other topics in computer science, and also for +document preparation. +.PP +Perhaps the most important achievement of +.UX +is to demonstrate +that +a powerful operating system for interactive use +need not be expensive either in equipment or in human +effort: +it +can run on hardware costing as little as $40,000, and +less than two man-years were spent on the main system +software. +We hope, however, that users find +that the +most important characteristics of the system +are its simplicity, elegance, and ease of use. +.PP +Besides the operating system proper, some major programs +available under +.UX +are +.DS +.nf +C compiler +Text editor based on \*sQED\*n +.[ +qed lampson +.] +Assembler, linking loader, symbolic debugger +Phototypesetting and equation setting programs +.[ +cherry kernighan typesetting mathematics cacm +.] +.[ +kernighan lesk ossanna document preparation bstj +%Q This issue +.] +.fi +.in +3n +.ll -5n +.ti -3n +Dozens of languages including +Fortran 77, Basic, Snobol, \*sAPL\*n, Algol 68, M6, \*sTMG\*n, Pascal +.in +.ll +.DE +There is a host of maintenance, utility, recreation and novelty programs, +all written locally. +The +.UX +user community, which numbers in the thousands, +has contributed many more programs and languages. +It is worth noting that the system is totally self-supporting. +All +.UX +software is maintained on +the +system; +likewise, this paper and all other +documents +in this issue +were generated and formatted by the +.UX +editor and text formatting +programs. +.SH +II. HARDWARE AND SOFTWARE ENVIRONMENT +.PP +The \*sPDP\*n-11/70 on which the Research +.UX +system is installed is a 16-bit +word (8-bit byte) computer with 768K bytes of core memory; +the system kernel +occupies 90K bytes +about equally divided between code +and data tables. +This system, however, includes a very large number of +device drivers +and enjoys a generous allotment +of space for I/O buffers and system tables; +a minimal system capable of running the software +mentioned above can +require as little as 96K bytes +of core altogether. +There are even larger installations; +see the description of the +\*sPWB/UNIX\*n systems, +.[ +dolotta mashey workbench software engineering +.] +.[ +dolotta haight mashey workbench bstj +%Q This issue +.] +for example. +There are also much smaller, though somewhat restricted, +versions of the system. +.[ +lycklama microprocessor bstj +%Q This issue +.] +.PP +Our own \*sPDP\*n-11 has two +200-Mb moving-head disks +for file system storage and swapping. +There are 20 variable-speed +communications interfaces +attached to 300- and 1200-baud data sets, +and an additional 12 communication lines +hard-wired to 9600-baud terminals and +satellite computers. +There are also several 2400- and 4800-baud +synchronous communication interfaces +used for machine-to-machine file transfer. +Finally, there is a variety +of miscellaneous +devices including +nine-track magnetic tape, +a line printer, +a voice synthesizer, +a phototypesetter, +a digital switching network, +and a chess machine. +.PP +The preponderance of +.UX +software is written in the +abovementioned C language. +.[ +c programming language kernighan ritchie prentice-hall +.] +Early versions of the operating system were written in assembly language, +but during the summer of 1973, it was rewritten in C. +The size of the new system was about one-third greater +than that of the old. +Since the new system not only became much easier to +understand and to modify but also +included +many functional improvements, +including multiprogramming and the ability to +share reentrant code among several user programs, +we consider this increase in size quite acceptable. +.SH +III. THE FILE SYSTEM +.PP +The most important role of +the system +is to provide +a file system. +From the point of view of the user, there +are three kinds of files: ordinary disk files, +directories, and special files. +.SH +3.1 Ordinary files +.PP +A file +contains whatever information the user places on it, +for example, symbolic or binary +(object) programs. +No particular structuring is expected by the system. +A file of text consists simply of a string +of characters, with lines demarcated by the newline character. +Binary programs are sequences of words as +they will appear in core memory when the program +starts executing. +A few user programs manipulate files with more +structure; +for example, the assembler generates, and the loader +expects, an object file in a particular format. +However, +the structure of files is controlled by +the programs that use them, not by the system. +.SH +3.2 Directories +.PP +Directories provide +the mapping between the names of files +and the files themselves, and thus +induce a structure on the file system as a whole. +Each user has a directory of his own files; +he may also create subdirectories to contain +groups of files conveniently treated together. +A directory behaves exactly like an ordinary file except that it +cannot be written on by unprivileged programs, so that the system +controls the contents of directories. +However, anyone with +appropriate permission may read a directory just like any other file. +.PP +The system maintains several directories +for its own use. +One of these is the +.UL root +directory. +All files in the system can be found by tracing +a path through a chain of directories +until the desired file is reached. +The starting point for such searches is often the +.UL root . +Other system directories contain all the programs provided +for general use; that is, all the +.IT commands . +As will be seen, however, it is by no means necessary +that a program reside in one of these directories for it +to be executed. +.PP +Files are named by sequences of 14 or +fewer characters. +When the name of a file is specified to the +system, it may be in the form of a +.IT path +.IT name , +which +is a sequence of directory names separated by slashes, ``/\^'', +and ending in a file name. +If the sequence begins with a slash, the search begins in the +root directory. +The name +.UL /alpha/beta/gamma +causes the system to search +the root for directory +.UL alpha , +then to search +.UL alpha +for +.UL beta , +finally to find +.UL gamma +in +.UL beta . +.UL \&gamma +may be an ordinary file, a directory, or a special +file. +As a limiting case, the name ``/\^'' refers to the root itself. +.PP +A path name not starting with ``/\^'' causes the system to begin the +search in the user's current directory. +Thus, the name +.UL alpha/beta +specifies the file named +.UL beta +in +subdirectory +.UL alpha +of the current +directory. +The simplest kind of name, for example, +.UL alpha , +refers to a file that itself is found in the current +directory. +As another limiting case, the null file name refers +to the current directory. +.PP +The same non-directory file may appear in several directories under +possibly different names. +This feature is called +.IT linking ; +a directory entry for a file is sometimes called a link. +The +.UX +system +differs from other systems in which linking is permitted +in that all links to a file have equal status. +That is, a file does not exist within a particular directory; +the directory entry for a file consists merely +of its name and a pointer to the information actually +describing the file. +Thus a file exists independently of any +directory entry, although in practice a file is made to +disappear along with the last link to it. +.PP +Each directory always has at least two entries. +The name +``\|\fB.\|\fP'' in each directory refers to the directory itself. +Thus a program +may read the current directory under the name ``\fB\|.\|\fP'' without knowing +its complete path name. +The name ``\fB\|.\|.\|\fP'' by convention refers to the parent of the +directory in which it appears, that is, to the directory in which +it was created. +.PP +The directory structure is constrained to have the form +of a rooted tree. +Except for the special entries ``\|\fB\|.\|\fP'' and ``\fB\|.\|.\|\fP'', each directory +must appear as an entry in exactly one other directory, which is its +parent. +The reason for this is to simplify the writing of programs +that visit subtrees of the directory structure, and more +important, to avoid the separation of portions of the hierarchy. +If arbitrary links to directories were permitted, it would +be quite difficult to detect when the last connection from +the root to a directory was severed. +.SH +3.3 Special files +.PP +Special files constitute the most unusual feature of the +.UX +file system. +Each supported I/O device +is associated with at least one such file. +Special files are read and written just like ordinary +disk files, but requests to read or write result in activation of the associated +device. +An entry for each special file resides in directory +.UL /dev , +although a link may be made to one of these files +just as it may to an ordinary file. +Thus, for example, +to write on a magnetic tape +one may write on the file +.UL /dev/mt . +Special files exist for each communication line, each disk, +each tape drive, +and for physical main memory. +Of course, +the active disks +and the memory special file are protected from +indiscriminate access. +.PP +There is a threefold advantage in treating +I/O devices this way: +file and device I/O +are as similar as possible; +file and device names have the same +syntax and meaning, so that +a program expecting a file name +as a parameter can be passed a device +name; finally, +special files are subject to the same +protection mechanism as regular files. +.SH +3.4 Removable file systems +.PP +Although the root of the file system is always stored on the same +device, +it is not necessary that the entire file system hierarchy +reside on this device. +There is a +.UL mount +system request with two arguments: +the name of an existing ordinary file, and the name of a special +file whose associated +storage volume (e.g., a disk pack) should have the structure +of an independent file system +containing its own directory hierarchy. +The effect of +.UL mount +is to cause +references to the heretofore ordinary file +to refer instead to the root directory +of the file system on the removable volume. +In effect, +.UL mount +replaces a leaf of the hierarchy tree (the ordinary file) +by a whole new subtree (the hierarchy stored on the +removable volume). +After the +.UL mount , +there is virtually no distinction +between files on the removable volume and those in the +permanent file system. +In our installation, for example, +the root directory resides +on a small partition of one of +our disk drives, +while the other drive, +which contains the user's files, +is mounted by the system initialization +sequence. +A mountable file system is generated by +writing on its corresponding special file. +A utility program is available to create +an empty file system, +or one may simply copy an existing file system. +.PP +There is only one exception to the rule of identical +treatment of files on different devices: +no link may exist between one file system hierarchy and +another. +This restriction is enforced so as to avoid +the elaborate bookkeeping +that would otherwise be required to assure removal of the links +whenever the removable volume is dismounted. +.SH +3.5 Protection +.PP +Although the access control scheme +is quite simple, it has some unusual features. +Each user of the system is assigned a unique +user identification number. +When a file is created, it is marked with +the user \*sID\*n of its owner. +Also given for new files +is a set of ten protection bits. +Nine of these specify +independently read, write, and execute permission +for the +owner of the file, +for other members of his group, +and for all remaining users. +.PP +If the tenth bit is on, the system +will temporarily change the user identification +(hereafter, user \*sID\*n) +of the current user to that of the creator of the file whenever +the file is executed as a program. +This change in user \*sID\*n is effective only +during the execution of the program that calls for it. +The set-user-\*sID\*n feature provides +for privileged programs that may use files +inaccessible to other users. +For example, a program may keep an accounting file +that should neither be read nor changed +except by the program itself. +If the set-user-\*sID\*n bit is on for the +program, it may access the file although +this access might be forbidden to other programs +invoked by the given program's user. +Since the actual user \*sID\*n +of the invoker of any program +is always available, +set-user-\*sID\*n programs +may take any measures desired to satisfy themselves +as to their invoker's credentials. +This mechanism is used to allow users to execute +the carefully written +commands +that call privileged system entries. +For example, there is a system entry +invokable only by the ``super-user'' (below) +that creates +an empty directory. +As indicated above, directories are expected to +have entries for ``\fB\|.\|\fP'' and ``\fB\|.\|.\|\fP''. +The command which creates a directory +is owned by the super-user +and has the set-user-\*sID\*n bit set. +After it checks its invoker's authorization to +create the specified directory, +it creates it and makes the entries +for ``\fB\|.\|\fP'' and ``\fB\|.\|.\|\fP''. +.PP +Because anyone may set the set-user-\*sID\*n +bit on one of his own files, +this mechanism is generally +available without administrative intervention. +For example, +this protection scheme easily solves the \*sMOO\*n +accounting problem posed by ``Aleph-null.'' +.[ +aleph null software practice +.] +.PP +The system recognizes one particular user \*sID\*n (that of the ``super-user'') as +exempt from the usual constraints on file access; thus (for example), +programs may be written to dump and reload the file +system without +unwanted interference from the protection +system. diff --git a/doc/ps2/01.cacm/p2 b/doc/ps2/01.cacm/p2 new file mode 100644 index 00000000..7fdbd921 --- /dev/null +++ b/doc/ps2/01.cacm/p2 @@ -0,0 +1,443 @@ +.\" @(#)p2 6.1 (Berkeley) 4/24/86 +.\" +.SH +3.6 I/O calls +.PP +The system calls to do I/O are designed to eliminate +the differences between the various devices and styles of +access. +There is no distinction between ``random'' +and ``sequential'' I/O, nor is any logical record size imposed +by the system. +The size of an ordinary file is determined +by the number of bytes written on it; +no predetermination of the size of a file is necessary +or possible. +.PP +To illustrate the essentials of I/O, +some of the basic calls are +summarized below +in an anonymous language that will +indicate the required parameters without getting into the +underlying +complexities. +Each call to the system may potentially result in an error +return, which for simplicity is not represented +in the calling sequence. +.PP +To read or write a file assumed to exist already, it must +be opened by the following call: +.P1 +filep = open\|(\|name, flag\|) +.P2 +where +.UL name +indicates the name of the file. +An arbitrary path name may be given. +The +.UL flag +argument indicates whether the file is to be read, written, +or ``updated,'' that is, read and written simultaneously. +.PP +The returned value +.UL filep +is called a +.IT "file descriptor" . +It is a small integer used to identify the file +in subsequent calls to read, write, +or otherwise manipulate the file. +.PP +To create a new file or completely rewrite an old one, +there is a +.UL create +system call that +creates the given file if it does not exist, +or truncates it to zero length +if it does exist; +.UL create +also opens the new file for writing +and, like +.UL open , +returns a file descriptor. +.PP +The file system maintains no locks visible to the user, nor is there any +restriction on the number of users who may have a file +open for reading or writing. +Although it is possible for the contents of a file +to become scrambled when two users write on it simultaneously, +in practice difficulties do not arise. +We take the view that locks are neither +necessary nor sufficient, in our environment, +to prevent interference between users of the same file. +They are unnecessary because we are not +faced with large, single-file data bases +maintained by independent processes. +They are insufficient because +locks in the ordinary sense, whereby +one user is prevented from writing on a file that another +user is reading, +cannot prevent confusion +when, for example, both users are editing +a file with an editor that makes +a copy of the file being edited. +.PP +There are, however, +sufficient internal interlocks to maintain +the logical consistency of the file system +when two users engage simultaneously in +activities such as writing on +the same file, +creating files in the same directory, +or deleting each other's open files. +.PP +Except as indicated below, reading and writing +are sequential. +This means that if a particular +byte in the file was the last byte written (or read), +the next I/O call implicitly refers to the +immediately following byte. +For each open file there is a pointer, maintained +inside the system, +that indicates the next byte to be read +or written. +If +.IT n +bytes are read or written, the pointer advances +by +.IT n +bytes. +.PP +Once a file is open, the following calls +may be used: +.P1 +n = read\|(\|filep, buffer, count\|) +n = write\|(\|filep, buffer, count\|) +.P2 +Up to +.UL count +bytes are transmitted between the file specified +by +.UL filep +and the byte array +specified by +.UL buffer . +The returned value +.UL n +is the number of bytes actually transmitted. +In the +.UL write +case, +.UL n +is the same as +.UL count +except under exceptional conditions, such as I/O errors or +end of physical medium on special files; +in a +.UL read , +however, +.UL n +may without error be less than +.UL count . +If the read pointer is so near the end of the +file that reading +.UL count +characters +would cause reading beyond the end, only sufficient +bytes are transmitted to reach the end of the +file; +also, typewriter-like terminals +never return more than one line of input. +When a +.UL read +call returns with +.UL n +equal +to zero, the end of the file has been reached. +For disk files this occurs when the read pointer +becomes equal to the current +size of the file. +It is possible to generate an end-of-file +from a terminal by use of an escape +sequence that depends on the device used. +.PP +Bytes written affect only those parts of a file implied by +the position of the write pointer and the +count; no other part of the file +is changed. +If the last byte lies beyond the end of the file, the +file is made to grow as needed. +.PP +To do random (direct-access) I/O +it is only necessary to move the read or write pointer +to the appropriate location in the file. +.P1 +location = lseek\|(\|filep, offset, base\|) +.P2 +The pointer +associated with +.UL filep +is moved to a position +.UL offset +bytes from the beginning of the file, from the current position +of the pointer, or from the end of the file, +depending on +.UL base. +.UL \&offset +may be negative. +For some devices (e.g., paper +tape and +terminals) seek calls are +ignored. +The actual offset from the beginning of the file +to which the pointer was moved is returned +in +.UL location . +.PP +There are several additional system entries +having to do with I/O and with the file +system that will not be discussed. +For example: +close a file, +get the status of a file, +change the protection mode or the owner +of a file, +create a directory, +make a link to an existing file, +delete a file. +.SH +IV. IMPLEMENTATION OF THE FILE SYSTEM +.PP +As mentioned in Section 3.2 above, a directory entry contains +only a name for the associated file and a pointer to the +file itself. +This pointer is an integer called the +.IT i-number +(for index number) +of the file. +When the file is accessed, +its i-number is used as an index into +a system table (the +.IT i-list \|) +stored in a known +part of the device on which +the directory resides. +The entry found thereby (the file's +.IT i-node \|) +contains +the description of the file: +.IP i +the user and group-\*sID\*n of its owner +.IP ii +its protection bits +.IP iii +the physical disk or tape addresses for the file contents +.IP iv +its size +.IP v +time of creation, last use, and last modification +.IP vi +the number of links to the file, that is, the number of times it appears in a directory +.IP vii +a code indicating whether the file is a directory, an ordinary file, or a special file. +.LP +The purpose of an +.UL open +or +.UL create +system call is to turn the path name given by the user +into an i-number +by searching the explicitly or implicitly named directories. +Once a file is open, +its device, i-number, and read/write pointer are stored in a system table +indexed by the file descriptor returned by the +.UL open +or +.UL create . +Thus, during a subsequent +call to read or write the +file, +the descriptor +may be easily related to the information necessary to access the file. +.PP +When a new file is created, +an i-node is allocated for it and a directory entry is made +that contains the name of the file and the i-node +number. +Making a link to an existing file involves +creating a directory entry with the new name, +copying the i-number from the original file entry, +and incrementing the link-count field of the i-node. +Removing (deleting) a file is done by +decrementing the +link-count of the i-node specified by its directory entry +and erasing the directory entry. +If the link-count drops to 0, +any disk blocks in the file +are freed and the i-node is de-allocated. +.PP +The space on all disks that +contain a file system is divided into a number of +512-byte +blocks logically addressed from 0 up to a limit that +depends on the device. +There is space in the i-node of each file for 13 device addresses. +For nonspecial files, +the first 10 device addresses point at the first +10 blocks of the file. +If the file is larger than 10 blocks, +the 11 device address points to an +indirect block containing up to 128 addresses +of additional blocks in the file. +Still larger files use the twelfth device address +of the i-node to point to +a double-indirect block naming +128 indirect blocks, +each +pointing to 128 blocks of the file. +If required, +the thirteenth device address is +a triple-indirect block. +Thus files may conceptually grow to +[\|(10+128+128\u\s62\s0\d+128\u\s63\s0\d)\*m512\|] bytes. +Once opened, +bytes numbered below 5120 can be read with a single +disk access; +bytes in the range 5120 to 70,656 +require two accesses; +bytes in the range 70,656 +to 8,459,264 +require three accesses; +bytes from there to the +largest file +(1,082,201,088) +require four accesses. +In practice, +a device cache mechanism +(see below) +proves effective in eliminating +most of the indirect fetches. +.PP +The foregoing discussion applies to ordinary files. +When an I/O request is made to a file whose i-node indicates that it +is special, +the last 12 device address words are immaterial, +and the first specifies +an internal +.IT "device name" , +which is interpreted as a pair of numbers +representing, +respectively, a device type +and subdevice number. +The device type indicates which +system routine will deal with I/O on that device; +the subdevice number selects, for example, a disk drive +attached to a particular controller or one of several +similar terminal interfaces. +.PP +In this environment, the implementation of the +.UL mount +system call (Section 3.4) is quite straightforward. +.UL \&mount +maintains a system table whose +argument is the i-number and device name of the +ordinary file specified +during the +.UL mount , +and whose corresponding value is the +device name of the indicated special file. +This table is searched for each i-number/device pair +that turns up while a path name is being scanned +during an +.UL open +or +.UL create ; +if a match is found, +the i-number is replaced by the i-number of the root +directory +and the device name is replaced by the table value. +.PP +To the user, both reading and writing of files appear to +be synchronous and unbuffered. +That is, immediately after +return from a +.UL read +call the data are available; conversely, +after a +.UL write +the user's workspace may be reused. +In fact, the system maintains a rather complicated +buffering mechanism that reduces greatly the number +of I/O operations required to access a file. +Suppose a +.UL write +call is made specifying transmission +of a single byte. +The system +will search its buffers to see +whether the affected disk block currently resides in main memory; +if not, it will be read in from the device. +Then the affected byte is replaced in the buffer and an +entry is made in a list of blocks to be written. +The return from the +.UL write +call may then take place, +although the actual I/O may not be completed until a later time. +Conversely, if a single byte is read, the system determines +whether the secondary storage block in which the byte is located is already +in one of the system's buffers; if so, the byte can be returned immediately. +If not, the block is read into a buffer and the byte picked out. +.PP +The system recognizes when +a program has +made accesses to +sequential blocks of a file, +and asynchronously +pre-reads the next block. +This significantly reduces +the running time of most programs +while adding little to +system overhead. +.PP +A program that reads or writes files in units of 512 bytes +has an advantage over a program that reads or writes +a single byte at a time, but the gain is not immense; +it comes mainly from the avoidance of system overhead. +If a program is used rarely or does +no great volume of I/O, it may quite reasonably +read and write in units as small as it wishes. +.PP +The notion of the i-list is an unusual feature +of +.UX . +In practice, this method of organizing the file system +has proved quite reliable and easy to deal with. +To the system itself, one of its strengths is +the fact that each file has a short, unambiguous name +related in a simple way to the protection, addressing, +and other information needed to access the file. +It also permits a quite simple and rapid +algorithm for checking the consistency of a file system, +for example, verification +that the portions of each device containing useful information +and those free to be allocated are disjoint and together +exhaust the space on the device. +This algorithm is independent +of the directory hierarchy, because it need only scan +the linearly organized i-list. +At the same time the notion of the i-list induces certain +peculiarities not found in other file system organizations. +For example, there is the question of who is to be charged +for the space a file occupies, +because all directory entries for a file have equal status. +Charging the owner of a file is unfair in general, +for one user may create a file, another may link to +it, and the first user may delete the file. +The first user is still the owner of the +file, but it should be charged +to the second user. +The simplest reasonably fair algorithm +seems to be to spread the charges +equally among users who have links to a file. +Many installations +avoid the +issue by not charging any fees at all. diff --git a/doc/ps2/01.cacm/p3 b/doc/ps2/01.cacm/p3 new file mode 100644 index 00000000..f2d2d0fa --- /dev/null +++ b/doc/ps2/01.cacm/p3 @@ -0,0 +1,185 @@ +.\" @(#)p3 6.1 (Berkeley) 4/24/86 +.\" +.SH +V. PROCESSES AND IMAGES +.PP +An +.IT image +is a computer execution environment. +It includes a memory image, +general register values, +status of open files, +current directory and the like. +An image is the current state of a pseudo-computer. +.PP +A +.IT process +is the execution of an image. +While the processor is executing on behalf of a process, +the image must reside in main memory; +during the execution of other processes it remains in main memory +unless the appearance of an active, higher-priority +process +forces it to be swapped out to the disk. +.PP +The user-memory part of an image is divided into three logical segments. +The program text segment begins at location 0 in the virtual address space. +During execution, this segment is write-protected +and a single copy of it is shared among +all processes executing the same program. +At the first hardware protection byte boundary above the program text segment in the +virtual address space begins a non-shared, writable data segment, +the size of which may be extended by a system call. +Starting at the highest +address in the virtual address space is a stack segment, +which automatically grows downward +as the stack pointer fluctuates. +.SH +5.1 Processes +.PP +Except while +the system +is bootstrapping itself into operation, a new +process can come into existence only +by use of the +.UL fork +system call: +.P1 +processid = fork\|(\|\|)\| +.P2 +When +.UL fork +is executed, the process +splits into two independently executing processes. +The two processes have independent +copies of the original memory image, +and share all open files. +The new processes differ only in that one is considered +the parent process: +in the parent, +the returned +.UL processid +actually identifies the child process +and is never 0, +while in the child, +the returned value is always 0. +.PP +Because the values returned by +.UL fork +in the parent and child process are distinguishable, +each process may determine whether +it is the parent or child. +.SH +5.2 Pipes +.PP +Processes may communicate +with related processes using the same system +.UL read +and +.UL write +calls that are used for file-system I/O. +The call: +.P1 +filep = pipe\|(\|\|)\| +.P2 +returns a file descriptor +.UL filep +and +creates an inter-process channel called a +.IT pipe . +This channel, like other open files, is passed from parent to child process in +the image by the +.UL fork +call. +A +.UL read +using a pipe file descriptor +waits until another process writes using the +file descriptor for the same pipe. +At this point, data are passed between the images of the +two processes. +Neither process need know that a pipe, +rather than an ordinary file, +is involved. +.PP +Although +inter-process communication +via pipes is a quite valuable tool +(see Section 6.2), +it is not a completely general +mechanism, +because the pipe must be set up by a common ancestor +of the processes involved. +.SH +5.3 Execution of programs +.PP +Another major system primitive +is invoked by +.P1 +execute\|(\|file, arg\*s\d1\u\*n, arg\*s\d2\u\*n, .\|.\|. , arg\*s\dn\u\*n\|)\| +.P2 +which requests the system to read in and execute the program +named by +.UL file , +passing it string arguments +.UL arg\v'.3'\*s1\*n\v'-.3'\| , +.UL arg\v'.3'\*s2\*n\v'-.3'\| , +.UL .\|.\|.\|\| , +.UL arg\v'.3'\*sn\*n\v'-.3' . +All the code and data in the process invoking +.UL execute +is replaced from the +.UL file , +but +open files, current directory, and +inter-process relationships are unaltered. +Only if the call fails, for example +because +.UL file +could not be found or because +its execute-permission bit was not set, does a return +take place from the +.UL execute +primitive; +it resembles a ``jump'' machine instruction +rather than a subroutine call. +.SH +5.4 Process synchronization +.PP +Another process control system call: +.P1 +processid = wait\|(\|status\|)\| +.P2 +causes its caller to suspend +execution until one of its children has completed execution. +Then +.UL wait +returns the +.UL processid +of the terminated process. +An error return is taken if the calling process has no +descendants. +Certain status from the child process +is also available. +.SH +5.5 Termination +.PP +Lastly: +.P1 +exit\|(\|status\|)\| +.P2 +terminates a process, +destroys its image, +closes its open files, +and generally obliterates it. +The parent is notified through +the +.UL wait +primitive, +and +.UL status +is made available +to it. +Processes may also terminate as a result of +various illegal actions or user-generated signals +(Section VII below). diff --git a/doc/ps2/01.cacm/p4 b/doc/ps2/01.cacm/p4 new file mode 100644 index 00000000..bb42269c --- /dev/null +++ b/doc/ps2/01.cacm/p4 @@ -0,0 +1,519 @@ +.\" @(#)p4 6.1 (Berkeley) 4/24/86 +.\" +.SH +VI. THE SHELL +.PP +For most users, +communication with +the system +is carried on with the +aid of a program called the \&shell. +The \&shell is a +command-line interpreter: it reads lines typed by the user and +interprets them as requests to execute +other programs. +(The \&shell is described fully elsewhere, +.[ +bourne shell bstj +%Q This issue +.] +so this section will discuss only the theory of its operation.) +In simplest form, a command line consists of the command +name followed by arguments to the command, all separated +by spaces: +.P1 +command arg\*s\d1\u\*n arg\*s\d2\u\*n .\|.\|. arg\*s\dn\u\*n +.P2 +The \&shell splits up the command name and the arguments into +separate strings. +Then a file with name +.UL command +is sought; +.UL command +may be a path name including the ``/'' character to +specify any file in the system. +If +.UL command +is found, it is brought into +memory and executed. +The arguments +collected by the \&shell are accessible +to the command. +When the command is finished, the \&shell +resumes its own execution, and indicates its readiness +to accept another command by typing a prompt character. +.PP +If file +.UL command +cannot be found, +the \&shell generally prefixes a string +such as +.UL /\|bin\|/ +to +.UL command +and +attempts again to find the file. +Directory +.UL /\|bin +contains commands +intended to be generally used. +(The sequence of directories to be searched +may be changed by user request.) +.SH +6.1 Standard I/O +.PP +The discussion of I/O in Section III above seems to imply that +every file used by a program must be opened or created by the program in +order to get a file descriptor for the file. +Programs executed by the \&shell, however, start off with +three open files with file descriptors +0, 1, and 2. +As such a program begins execution, file 1 is open for writing, +and is best understood as the standard output file. +Except under circumstances indicated below, this file +is the user's terminal. +Thus programs that wish to write informative +information ordinarily use file descriptor 1. +Conversely, file 0 starts off open for reading, and programs that +wish to read messages typed by the user +read this file. +.PP +The \&shell is able to change the standard assignments of +these file descriptors from the +user's terminal printer and keyboard. +If one of the +arguments to a command is prefixed by ``>'', file descriptor +1 will, for the duration of the command, refer to the +file named after the ``>''. +For example: +.P1 +ls +.P2 +ordinarily lists, on the typewriter, the names of the files in the current +directory. +The command: +.P1 +ls >there +.P2 +creates a file called +.UL there +and places the listing there. +Thus the argument +.UL >there +means +``place output on +.UL there .'' +On the other hand: +.P1 +ed +.P2 +ordinarily enters the editor, which takes requests from the +user via his keyboard. +The command +.P1 +ed