Many small edits.

This commit is contained in:
rsc 2005-01-13 04:49:19 +00:00
parent 741f510ce7
commit c8b6342d3c
160 changed files with 2204 additions and 864 deletions

13
bin/9l
View file

@ -91,6 +91,7 @@ then
do
eval "have$i() { false; }"
done
havethread() { false; }
# now find correct order
libsl=""
@ -129,6 +130,12 @@ then
fi
libsl="$libsl -l9"
# cycle: lib9 expects p9main, which is defined in libthread. oops.
if $havethread
then
libsl="$libsl -lthread"
fi
if [ "x$needdraw" = xtrue ]
then
if [ "x$X11" = "x" ]
@ -194,9 +201,11 @@ if $verbose
then
echo $ld -L$PLAN9/lib "$@" $libsl $extralibs
fi
if ! $ld -L$PLAN9/lib "$@" $libsl $extralibs
if $ld -L$PLAN9/lib "$@" $libsl $extralibs
then
exit 0
else
rm -f $target
exit 1
fi
exit 0

View file

@ -24,7 +24,7 @@ ifs='
'{
files=`{echo $*}
}
9grep -h '\$LIST|\|reference|^\.(EQ|TS|\[|PS|IS|GS|G1|GD|PP|BM|LP|BP|PI|cstart|begin|TH...)|^\.P$' $* |
9 grep -h '\$LIST|\|reference|^\.(EQ|TS|\[|PS|IS|GS|G1|GD|PP|BM|LP|BP|PI|cstart|begin|TH...)|^\.P$' $* |
sort -u |
awk '
BEGIN { files = "'$files'" }

2
bin/g
View file

@ -34,4 +34,4 @@ case $# in
files="$@"
esac
exec grep -n $flags -- "$pattern" $files /dev/null
exec 9 grep -n $flags -- "$pattern" $files /dev/null

2
bin/lc
View file

@ -1,3 +1,3 @@
#!/bin/sh
ls "$@" | mc
9 ls "$@" | mc

12
bin/man
View file

@ -60,11 +60,11 @@ if(~ $#sec 0) {
}
ix=$S/man$sec/INDEX
if(~ $#* 1) pat='^'^$1^' '
if not pat='^('^`{echo $* | 9sed 's/ /|/g'}^') '
if not pat='^('^`{echo $* | 9 sed 's/ /|/g'}^') '
fils=()
for(i in $S/man$sec){
if(/bin/test -f $i/INDEX){
try=`{grep $pat $i/INDEX | 9sed 's/^[^ ]* //'}
if(test -f $i/INDEX){
try=`{grep $pat $i/INDEX | 9 sed 's/^[^ ]* //'}
if(! ~ $#try 0)
fils=($fils $i/$try)
}
@ -75,7 +75,7 @@ if(~ $#fils 0) {
for(i) {
for(n in $sec) {
try=$S/man$n/$i.$n*
if (/bin/test -f $try)
if (test -f $try)
fils=($fils $try)
}
}
@ -85,7 +85,7 @@ if(~ $#fils 0) {
}
}
for(i in $fils) {
if(! /bin/test -f $i)
if(! test -f $i)
echo need $i >[1=2]
if not {
switch($cmd) {
@ -99,7 +99,7 @@ for(i in $fils) {
roff t $i |tr2post |psfonts |page
case n
roff n $i | 9sed '
roff n $i | 9 sed '
${
/^$/p
}

View file

@ -5,3 +5,9 @@
wget -O- http://pdos.lcs.mit.edu/~rsc/software/plan9/pgw.tar.bz2|
bunzip2|
tar xf -
# This is the Project Gutenberg original Roget's thesaurus
wget -O- http://pdos.lcs.mit.edu/~rsc/software/plan9/roget.tar.bz2|
bunzip2|
tar xf -

153
dist/checkman.awk vendored
View file

@ -41,8 +41,10 @@ BEGIN {
Omitman["nm(1)"] = 1
Omitman["prof(1)"] = 1
Omitman["pwd(1)"] = 1
Omitman["qiv(1)"] = 1
Omitman["sh(1)"] = 1
Omitman["ssh(1)"] = 1
Omitman["stty(1)"] = 1
Omitman["tar(1)"] = 1
Omitman["tex(1)"] = 1
Omitman["unutf(1)"] = 1
@ -50,6 +52,7 @@ BEGIN {
Omitman["access(2)"] = 1
Omitman["brk(2)"] = 1
Omitman["chdir(2)"] = 1
Omitman["close(2)"] = 1
Omitman["connect(2)"] = 1
Omitman["fork(2)"] = 1
@ -90,10 +93,10 @@ BEGIN {
# don't need documentation for these in bin
Omitted[".cvsignore"] = 1
Omitted["Getdir"] = 1
Omitted["9grep"] = 1 # is in grep(1)
Omitted["9sed"] = 1 # is in sed(1)
Omitted["9lex"] = 1 # is in lex(1)
Omitted["9yacc"] = 1 # is in yacc(1)
Omitted["tcolors"] = 1
Omitted["tref"] = 1
Omitted["unutf"] = 1
Omitted["vtdump"] = 1
# not for users
Omittedlib["creadimage"] = 1
@ -198,56 +201,66 @@ BEGIN {
Renamelib["regsub9"] = "regsub"
Renamelib["rregexec9"] = "rregexec"
Renamelib["rregsub9"] = "rregsub"
lastline = "XXX";
lastfile = FILENAME;
}
FNR==1 {
n = length(FILENAME)
nam = FILENAME
if(nam ~ /\.html$/)
next
if(nam !~ /^man\/man(.*)\/(.*)\.(.*)$/){
print "nam", nam, "not of form [0-9][0-9]?/*"
next
}
nam = substr(nam, 8)
gsub("[/.]", " ", nam);
n = split(nam, a)
sec = a[1]
name = a[2]
section = a[3]
if($1 != ".TH" || NF != 3)
print "First line of", FILENAME, "not a proper .TH"
else if(($2 != toupper(name) || substr($3, 1, length(sec)) != sec || $3 != toupper(section)) \
&& ($2!="INTRO" || name!="0intro") \
&& (name !~ /^9/ || $2!=toupper(substr(name, 2)))){
print ".TH of", FILENAME, "doesn't match filename"
}else
Pages[tolower($2) "(" tolower($3) ")"] = 1
Sh = 0
if(lastline == ""){
# screws up troff headers
print lastfile ":$ is a blank line"
}
n = length(FILENAME)
nam = FILENAME
if(nam ~ /\.html$/)
next
if(nam !~ /^man\/man(.*)\/(.*)\.(.*)$/){
print "nam", nam, "not of form [0-9][0-9]?/*"
next
}
nam = substr(nam, 8)
gsub("[/.]", " ", nam);
n = split(nam, a)
sec = a[1]
name = a[2]
section = a[3]
if($1 != ".TH" || NF != 3)
print "First line of", FILENAME, "not a proper .TH"
else if(($2 != toupper(name) || substr($3, 1, length(sec)) != sec || $3 != toupper(section)) \
&& ($2!="INTRO" || name!="0intro") \
&& (name !~ /^9/ || $2!=toupper(substr(name, 2)))){
print ".TH of", FILENAME, "doesn't match filename"
}else
Pages[tolower($2) "(" tolower($3) ")"] = 1
Sh = 0
}
{ lastline=$0; lastfile=FILENAME; }
$1 == ".SH" {
if(inex)
print "Unterminated .EX in", FILENAME, ":", $0
inex = 0;
if (substr($2, 1, 1) == "\"") {
if (NF == 2) {
print "Unneeded quote in", FILENAME, ":", $0
$2 = substr($2, 2, length($2)-2)
} else if (NF == 3) {
$2 = substr($2, 2) substr($3, 1, length($3)-1)
NF = 2
}
if(inex)
print "Unterminated .EX in", FILENAME, ":", $0
inex = 0;
if (substr($2, 1, 1) == "\"") {
if (NF == 2) {
print "Unneeded quote in", FILENAME, ":", $0
$2 = substr($2, 2, length($2)-2)
} else if (NF == 3) {
$2 = substr($2, 2) substr($3, 1, length($3)-1)
NF = 2
}
if(Sh == 0 && $2 != "NAME")
print FILENAME, "has no .SH NAME"
w = Weight[$2]
if (w) {
if (w < Sh)
print "Heading", $2, "out of order in", FILENAME
Sh += w
}
sh = $2
}
if(Sh == 0 && $2 != "NAME")
print FILENAME, "has no .SH NAME"
w = Weight[$2]
if (w) {
if (w < Sh)
print "Heading", $2, "out of order in", FILENAME
Sh += w
}
sh = $2
}
$1 == ".EX" {
@ -257,43 +270,53 @@ $1 == ".EX" {
}
$1 == ".EE" {
if(!inex)
print "Bad .EE in", FILENAME ":" FNR ":", $0
inex = 0;
if(!inex)
print "Bad .EE in", FILENAME ":" FNR ":", $0
inex = 0;
}
$1 == ".TF" {
smallspace = 1
smallspace = 1
}
$1 == ".PD" || $1 == ".SH" || $1 == ".SS" || $1 == ".TH" {
smallspace = 0
smallspace = 0
}
$1 == ".RE" {
lastre = 1
lastre = 1
}
$1 == ".PP" {
if(smallspace && !lastre)
print "Possible missing .PD at " FILENAME ":" FNR
smallspace = 0
if(smallspace && !lastre)
print "Possible missing .PD at " FILENAME ":" FNR
smallspace = 0
}
$1 != ".RE" {
lastre = 0
lastre = 0
}
sh == "BUGS" && $1 == ".br" {
print FILENAME ":" FNR ": .br in BUGS"
}
sh == "SOURCE" && $1 ~ /^\\\*9\// {
s = ENVIRON["PLAN9"] substr($1, 4)
Sources[s] = 1
}
sh == "SOURCE" && $2 ~ /^\\\*9\// {
s = ENVIRON["PLAN9"] substr($2, 4)
Sources[s] = 1
}
sh == "SOURCE" && $1 ~ /^\// {
s = $1
sub("\\\*9", ENVIRON["PLAN9"], s)
Sources[s] = 1
Sources[$1] = 1
}
sh == "SOURCE" && $2 ~ /^\// {
s = $2
sub("\\\*9", ENVIRON["PLAN9"], s)
Sources[s] = 1
Sources[$2] = 1
}
$0 ~ /^\.[A-Z].*\([1-9]\)/ {
@ -319,6 +342,10 @@ $0 ~ /^\.[A-Z].*\([1-9]\)/ {
}
END {
if(lastline == ""){
print lastfile ":$ is a blank line"
}
print "Checking Source References"
cmd = "xargs -n 100 ls -d 2>&1 >/dev/null | sed 's/^ls: / /; s/: .*//'"
for (i in Sources) {

View file

@ -358,10 +358,8 @@ extern double atof(char*); <stdlib.h>
extern int p9atoi(char*);
extern long p9atol(char*);
extern vlong p9atoll(char*);
extern double charstod(int(*)(void*), void*);
extern double fmtcharstod(int(*)(void*), void*);
extern char* cleanname(char*);
extern int p9decrypt(void*, void*, int);
extern int p9encrypt(void*, void*, int);
extern int dec64(uchar*, int, char*, int);
extern int enc64(char*, int, uchar*, int);
extern int dec32(uchar*, int, char*, int);
@ -386,7 +384,6 @@ extern void p9longjmp(p9jmp_buf, int);
extern char* mktemp(char*);
extern int opentemp(char*);
/* extern double modf(double, double*); <math.h> */
extern int netcrypt(void*, void*);
extern void p9notejmp(void*, p9jmp_buf, int);
extern void perror(const char*);
extern int postnote(int, int, char *);
@ -397,14 +394,12 @@ extern double p9pow10(int);
#define p9setjmp(b) sigsetjmp((void*)(b), 1)
/*
* <stdlib.h>
extern double strtod(char*, char**);
extern long strtol(char*, char**, int);
extern ulong strtoul(char*, char**, int);
extern vlong strtoll(char*, char**, int);
extern uvlong strtoull(char*, char**, int);
*/
extern void sysfatal(char*, ...);
extern void p9syslog(int, char*, char*, ...);
extern long p9time(long*);
/* extern int tolower(int); <ctype.h> */
/* extern int toupper(int); <ctype.h> */
@ -426,9 +421,10 @@ extern void needstack(int);
#define putenv p9putenv
#define notejmp p9notejmp
#define jmp_buf p9jmp_buf
#define syslog p9syslog
#define time p9time
#define pow10 p9pow10
#define strtod fmtstrtod
#define charstod fmtcharstod
#endif
/*
@ -527,7 +523,6 @@ extern int p9announce(char*, char*);
extern int p9dial(char*, char*, char*, int*);
extern int p9dialparse(char *ds, char **net, char **unixa, u32int *ip, int *port);
extern void p9setnetmtpt(char*, int, char*);
extern int p9hangup(int);
extern int p9listen(char*, char*);
extern char* p9netmkaddr(char*, char*, char*);
extern int p9reject(int, char*, char*);
@ -537,7 +532,6 @@ extern int p9reject(int, char*, char*);
#define announce p9announce
#define dial p9dial
#define setnetmtpt p9setnetmtpt
#define hangup p9hangup
#define listen p9listen
#define netmkaddr p9netmkaddr
#define reject p9reject
@ -614,6 +608,7 @@ extern void freenetconninfo(NetConnInfo*);
#define QTEXCL 0x20 /* type bit for exclusive use files */
#define QTMOUNT 0x10 /* type bit for mounted channel */
#define QTAUTH 0x08 /* type bit for authentication file */
#define QTLINK 0x04 /* symbolic link */
#define QTFILE 0x00 /* plain file */
/* bits in Dir.mode */
@ -622,6 +617,7 @@ extern void freenetconninfo(NetConnInfo*);
#define DMEXCL 0x20000000 /* mode bit for exclusive use files */
#define DMMOUNT 0x10000000 /* mode bit for mounted channel */
#define DMAUTH 0x08000000 /* mode bit for authentication file */
#define DMLINK 0x04000000 /* mode bit for symbolic link */
#define DMREAD 0x4 /* mode bit for read permission */
#define DMWRITE 0x2 /* mode bit for write permission */
#define DMEXEC 0x1 /* mode bit for execute permission */

View file

@ -34,11 +34,6 @@ void threadnotify(int(*f)(void*,char*), int);
void threaddaemonize(void);
*/
/*
* clumsy linker hack
*/
void threadlinklibrary(void);
/*
* per proc and thread data
*/

View file

@ -4005,3 +4005,41 @@ object-oriented design is the roman numerals of computing. - rob
Java is the f*cking COBOL of the 90s, and future generations of geeks are going to fly back from Mars to piss on our graves for inflicting it on them. - rasputnik@hellooperator.net
httpd_server* httpd_initialize(char* hostname, httpd_sockaddr* sa4P, httpd_sockaddr* sa6P, unsigned short port, char* cgi_pattern, int cgi_limit, char* charset, char* p3p, int max_age, char* cwd, int no_log, FILE* logfp, int no_symlink_check, int vhost, int global_passwd, char* url_pattern, char* local_pattern, int no_empty_referers )
it's easier to post to 9fans than to think. - boyd
We assume familiarity with Rubik's Cube, the delights of which cannot be presented adequately in a textual description! - an algorithms textbook
If you are idle for more than 1000 hours, the system will log you out. Please save reviews frequently.
We lead by following standards. - sape
-bash: /home/r/.bash_logout: Permission denied
I am he as you are he as you are me and we are all together. - forsyth after Lennon on authentication
Network services at the Murray Hill, NJ, location (100001) will be unavailable due to UPS (Uninterrupted Power Supply) maintenance from 8:00 p.m. EDT on Saturday, June 26, to 4:00 a.m. EDT on Sunday, June 27.
Don't show this message again.
Service error -27.
Beauty is more important in computing than anywhere else in technology because software is so complicated. Beauty is the ultimate defence against complexity. - David Gelernter
Zatoichi: in theaters December 31, 1969.
recordio.h:992: type `__true_type' is not a base type for type `__false_type'
Telephone number has to be 10 numbers. For example, enter '8002158482'. Please contact us at 1-800-215-8482 for any assitance.
No one but a theorist believes his theory; everyone puts faith in a laboratory result but the experimenter himself. - Einstein
(Okay, Plan 9 isn't Linux, but it's a close relative).
Tux is not cute. Tux has the expression of someone right after knitting needles have been used to scramble the front side of their cerebral cortex. Tux scares me. - Ron Minnich
Setting up your SIP account will allow you to call both other SIP users as well as pstn phones. - Wim Sweldens
ntifs.c(202) : error C2064: term does not evaluate to a function taking 25732904 arguments
There's no "I" in team, but there's both a "me" and an "I" in media.
Oh, I'm sorry, sir, go ahead. I didn't realize you were root.
C++ is to C as lung cancer is to lung.
Warning: bad syntax, perhaps a bogus '-'? See http://procps.sf.net/faq.html
Those days [of "one tool doing one job well"] are dead and gone and the eulogy was delivered by Perl. - rob
We have found that the Real Player plugin, which is used by the BBC Radio Player, may or may not function fully depending on a combination of what flavour of unix/linux you are using, which browser you are using, which version of browser you are using, and which version of GCC built the plugin during installation.
Sheer [program] size is often an illusion, reflecting only a need for improvement. - Kernighan and Plauger
bootsplash: silent mode.
Trusting every aspect of our lives to a giant computer was the smartest thing we ever did! - Homer
Courts are not equipped to execute the law. - John Ashcroft
The Ken Thompson school of thought on expert systems: there's table lookup, fraud, and grand fraud. - Andrew Hume, quoted in ;login:
I am Davros, my Daleks are my servers and plan9 is my control board mwahahaha - Matt
What's grey? A melted penguin.
Why don't cannibals eat clowns? Because they taste funny.
Two goldfish are in a tank. One turns to the other and says, "Do you know how to drive one of these things?"
What do software pirates say? CD-Arrrrrrr!
Select only drivers expected to compile cleanly. - Linux kernel configuration option
usage: tar [-][{ruxXtcC}acdefhlm{o|S}pqvwLUBDRV{O|K}fb] [dir] [tapefile] [blocksize] file ...
/opt/exp/lib/firefox/bin/run-mozilla.sh: line 451: 16207 Segmentation fault "$prog" ${1+"$@"}
LoadPlugin: failed to initialize shared library /opt/net/exp/lib/mozilla/bin/plugins/j2re1.4.2/plugin/i386/ns610-gcc32/libjavaplugin_oji.so [/opt/net/exp/lib/mozilla/bin/plugins/j2re1.4.2/plugin/i386/ns610-gcc32/libjavaplugin_oji.so: undefined symbol: _ZdlPv]
This 43 minute video FEATURES the 22 year-old, 6'6" (6'11" in heels) 300+ pound, size 14 shoe size Blythe

View file

@ -5,5 +5,6 @@ bin/Getdir
bin/adict
bin/doctype
bin/lookman
bin/sig
bin/spell
bin/src

10
man/fonts Executable file
View file

@ -0,0 +1,10 @@
# mkfile rules to get fonts in Lucida Sans.
# if you want to use Times, change these next lines to
# MAN=mantimes
# FONTS=''
MAN=man
FONTS='.fp 1 R LucidaSans
.fp 2 I LucidaSansI
.fp 3 B LucidaSansB
.fp 5 L LucidaCW
'

300
man/man1/0intro.1 Normal file
View file

@ -0,0 +1,300 @@
.TH INTRO 1
.SH NAME
intro \- introduction to Plan 9 from User Space
.SH DESCRIPTION
Plan 9 is a distributed computing environment built
at Bell Labs starting in the late 1980s.
The system can be obtained from Bell Labs at
.B http://plan9.bell-labs.com/plan9
and runs on PCs and a variety of other platforms.
Plan 9 became a convenient platform for experimenting
with new ideas, applications, and services.
.PP
Plan 9 from User Space provides many of the ideas,
applications, and services from Plan 9
on Unix-like systems.
It runs on
FreeBSD (x86),
Linux (x86 and PowerPC),
Mac OS X (PowerPC),
OpenBSD (x86),
and
SunOS (Sparc).
.SS Commands
Plan 9 from User Space expects its own directory tree,
conventionally
.BR /usr/local/plan9 .
When programs need to access files in the tree,
they expect the
.B $PLAN9
environment variable
to contain the name of the root of the tree.
See
.IR install (8)
for details about installation.
.PP
Many of the familiar Unix commands,
for example
.IR cat (1),
.IR ls (1),
and
.IR wc (1),
are present, but in their Plan 9 forms:
.I cat
takes no arguments,
.I ls
does not columnate its output when printing to a terminal,
and
.I wc
counts UTF characters.
In some cases, the differences are quite noticeable:
.IR grep (1)
and
.IR sed (1)
expect Plan 9 regular expressions
(see
.IR regexp (7)),
which are closest to what Unix calls extended regular expressions.
Because of these differences, it is not recommended to put
.B $PLAN9/bin
before the usual system
.B bin
directories in your search path.
Instead, put it at the end of your path and use the
.IR 9 (1)
script when you want to invoke the Plan 9 version of a
traditional Unix command.
.PP
Occasionally the Plan 9 programs have been
changed to adapt to Unix.
.IR Mk (1)
now allows mkfiles to choose their own shell,
and
.IR rc (1)
has a
.I ulimit
builtin and manages
.BR $PATH .
.PP
Many of the graphical programs from Plan 9 are present,
including
.IR sam (1)
and
.IR acme (1).
An X11 window manager
.IR rio (1)
mimics Plan 9's window system, with command windows
implemented by the external program
.IR 9term (1).
Following the style of X Windows, these programs run in new
windows rather than the one in which they are invoked.
They all take a
.B -W
option to specify the size and placement of the new window.
The argument is one of
\fIwidth\^\^\fLx\fI\^\^height\fR,
\fIwidth\^\^\fLx\fI\^\^height\^\^\fL@\fI\^\^xmin\fL,\fIxmax\fR,
\fL'\fIxmin ymin xmax ymax\fL'\fR,
\fRor
\fIxmin\fL,\fIymin\fL,\fIxmax\fL,\fIymax\fR.
.PP
The
.IR plumber (4)
helps to connect the various Plan 9 programs together,
and fittings like
.IR web (1)
connect it to external programs such as web browsers;
one can click on a URL in
.I acme
and see the page load in
.IR Firefox .
.SS User-level file servers
In Plan 9, user-level file servers present file trees via the Plan 9 file protocol, 9P.
Processes can mount arbitrary file servers and customize their own name spaces.
These facilities are used to connect programs. Clients interact
with file servers by reading and writing files.
.PP
This cannot be done directly on Unix.
Instead the servers listen for 9P connections on Unix domain sockets;
clients connect to these sockets and speak 9P directly using the
.IR 9pclient (3)
library.
.IR Intro (4)
tells more of the story.
The effect is not as clean as on Plan 9, but it gets the job done
and still provides a uniform and easy-to-understand mechanism.
The
.IR 9p (1)
client can be used in shell scripts or by hand to carry out
simple interactions with servers.
.SS Programming
The shell scripts
.I 9c
and
.I 9l
(see
.IR 9c (1))
provide a simple interface to the underlying system compiler and linker,
similar to the
.I 2c
and
.I 2l
families on Plan 9.
.I 9c
compiles source files, and
.I 9l
links object files into executables.
When using Plan 9 libraries,
.I 9l
infers the correct set of libraries from the object files,
so that no
.B -l
options are needed.
.PP
The only way to write multithreaded programs is to use the
.IR thread (3)
library.
.IR Rfork (3)
exists but is not as capable as on Plan 9.
There are many unfortunate by necessary preprocessor
diversions to make Plan 9 and Unix libraries coexist.
See
.IR intro (3)
for details.
.PP
The debuggers
.IR acid (1)
and
.IR db (1)
and the debugging library
.IR mach (3)
are works in progress.
They are platform-independent, so that x86 Linux core dumps
can be inspected on PowerPC Mac OS X machines,
but they are also fairly incomplete.
The x86 target is the most mature; initial PowerPC support
exists; and other targets are unimplemented.
The debuggers can only inspect, not manipulate, target processes.
Support for operating system threads and for 64-bit architectures
needs to be rethought.
On x86 Linux systems,
.I acid
and
.I db
can be relied upon to produce reasonable stack traces
(often in cases when GNU
.I gdb
cannot)
and dump data structures,
but that it is the extent to which they have been developed and exercised.
.SS External databases
Some programs rely on large databases that would be
cumbersome to include in every release.
Scripts are provided that download these databases separately.
These databases can be downloaded separately.
See
.B $PLAN9/dict/README
and
.BR $PLAN9/sky/README .
.SS Porting programs
The vast majority of the familiar Plan 9 programs
have been ported, including the Unicode-aware
.IR troff (1).
.PP
Of the more recent additions to Plan 9,
the
.IR secstore (1)
client has been ported, though
.I secstored
has not.
.IR Vac (1)
has been ported, though
.I vacfs
has not.
.IR Factotum
and
.IR venti
are in progress.
.PP
A backup system providing a dump file system built atop Venti
is also in progress.
.SS Porting to new systems
Porting the tree to new operating systems or architectures
should be straightforward, as system-specific code has been
kept to a minimum.
The largest pieces of system-specific code are
.BR <u.h> ,
which must include the right system files and
set up the right integer type definitions,
and
.IR libthread ,
which must implement spin locks, operating system thread
creation, and context switching routines.
Portable implementations of these using
.B <pthread.h>
and
.B <ucontext.h>
already exist. If your system supports them, you may not
need to write any system specific code at all.
.PP
There are other smaller system dependencies,
such as the terminal handling code in
.IR 9term (1)
and the implementation of
.IR getcallerpc (3),
but these are usually simple and are not on the critical
path for getting the system up and running.
.SS SEE ALSO
The system's documentation is these manual pages.
Many of the man pages have been brought from Plan 9,
but they have been updated, and others have been written from scratch.
.PP
The manual pages are in a Unix style tree, with names like
.B $PLAN9/man/man1/cat.1
instead of Plan 9's simpler
.BR $PLAN9/man/1/cat ,
so that the Unix
.IR man (1)
utility can handle it.
Some systems, for example Debian Linux,
deduce the man page locations from the search path, so that
adding
.B $PLAN9/bin
to your path is sufficient to cause
.B $PLAN9/man
to be consulted for manual pages using the system
.IR man .
On other systems, or to look at manual pages with the
same name as a system page,
invoke the Plan 9
.I man
directly, as in
.B 9
.B man
.BR cat .
.PP
The manual sections follow the Unix numbering conventions,
not the Plan 9 ones.
.PP
Section (1) describes general publicly accessible commands.
.PP
Section (3) describes C library functions.
.PP
Section (4) describes user-level file servers.
.PP
Section (7) describes file formats and protocols.
(On Unix, section (5) is technically for file formats but
seems now to be used for describing specific files.)
.PP
Section (8) describes commands used for system administration.
.PP
Section (9p) describes the Plan 9 file protocol 9P.
.SH DIAGNOSTICS
In Plan 9, a program's exit status is an arbitrary text string,
while on Unix it is an integer.
Section (1) of this manual describes commands as though they
exit with string statuses. In fact, exiting with an empty status
corresponds to exiting with status 0,
and exiting with any non-empty string corresponds to exiting with status 1.
See
.IR exits (3).

View file

@ -3,6 +3,14 @@
9c, 9a, 9l, 9ar \- C compiler, assembler, linker, archiver
.SH SYNOPSIS
.B 9c
[
.B -I
.I path
]
[
.B -D
.I name
]
.I file
\&...
.PP
@ -26,7 +34,7 @@
\&...
]
[
.BI -l library
.BI -l name
\&...
]
.PP
@ -49,12 +57,24 @@ One can use them to write portable recipes for mkfiles.
compiles the named C
.I files
into object files for the current system.
The system C compiler is invoked with warnings enabled,
with the symbol
The system C compiler is invoked with warnings enabled.
The
.B -I
option adds
.I path
to the include path,
and the
.B -D
option defines
.I name
in the C preprocessor.
.I 9c
always
defines the symbol
.B PLAN9PORT
is defined in the C preprocessor, and with
defined in the C preprocessor and adds
.B $PLAN9/include
on the include path.
to the include path.
.PP
.I 9c
also defines
@ -74,7 +94,7 @@ links the named object files and libraries to create the target executable.
Each
.B -l
option specifies that a library named
.BI lib library .a
.BI lib name .a
be found and linked.
The
.B -L
@ -84,6 +104,30 @@ invokes the system linker with
.B $PLAN9/lib
already on the library search path.
.PP
.I 9l
searches the named objects and libraries for symbols of the form
.BI __p9l_autolib_ name \fR,
which it takes as indication that it should link
.BI $PLAN9/lib/lib name .a
as well.
It also examines such libraries to find their own dependencies.
A single
.B -l
option at the beginning of the command line disables this behavior.
The symbol
.BI __p9l_autolib_ name
is added to an object file by the macro
.B AUTOLIB( name )\fR,
defined in
.B <u.h>.
Header files associated with libraries contain
.B AUTOLIB
annotations; ordinary programs need not use them.
Due to shortcomings in the implementation, a source file may not
contain the same
.B AUTOLIB
statement multiple times.
.PP
.I 9ar
maintains object file archives called libraries.
The exact set of valid command keys varies from system to system,
@ -154,7 +198,7 @@ inserts a table of contents, required by the linker, at
the front of the library.
The table of contents is
rebuilt whenever the archive is modified.
.SH EXAMPLE
.SH EXAMPLES
.TP
.L
9c file1.c file2.c file3.c
@ -167,6 +211,7 @@ Assemble one assembler source file.
.L
9ar rvc lib.a file[12].o
Archive the first two object files into a library.
.TP
.L
9l -o prog file3.o file4.o lib.a
Link the final two object files and any necessary objects from the library

View file

@ -110,9 +110,7 @@ cat $HOME/lib/plumbing | 9p write plumb/rules
.PP
To display the contents of the current
.IR acme (4)
window (specified by the environment variable
.BR $winid )
on standard output:
window:
.IP
.EX
9p read acme/$winid/body

View file

@ -1,6 +1,6 @@
.TH 9TERM 1
.SH NAME
9term, label \- terminal windows
9term \- terminal windows
.SH SYNOPSIS
.B 9term
[
@ -14,14 +14,11 @@
.I cmd
\&...
]
.PP
.B label
.I name
.SH DESCRIPTION
.I 9term
is a terminal window program for the X Window System,
providing an interface similar to that used on Plan 9.
.SS Commands
.SS Command
The
.I 9term
command starts a new window.
@ -59,15 +56,6 @@ if set; otherwise it uses the graphics system default.
runs the given command in the window, or
.B $SHELL
if no command is given.
.PP
The
.I label
command changes a window's identifying name by
echoing a special control code that both
.I 9term
and
.IR xterm (1)
understand.
.SS Text windows
Characters typed on the keyboard
collect in the window to form
@ -152,7 +140,7 @@ An EOT character (control-D) behaves exactly like newline except
that it is not delivered to a program when read.
Thus on an empty line an EOT serves to deliver an end-of-file indication:
the read will return zero characters.
Like newlines, unread EOTs may be successfully edited out of the text.
.\" Like newlines, unread EOTs may be successfully edited out of the text.
The BS character (control-H) erases the character before the selected text.
The ETB character (control-W) erases any nonalphanumeric characters, then
the alphanumeric word just before the selected text.
@ -202,6 +190,10 @@ before (after) the current selection.
relies on the kernel's terminal processing to handle
EOT and DEL, so the terminal must be set up with EOT
as the ``eof'' character and DEL as the ``intr'' character.
.I 9term
runs
.IR stty (1)
to establish this when the terminal is created.
.PP
Normally, written output to a window blocks when
the text reaches the end of the screen and the terminal
@ -214,7 +206,7 @@ the terminal settings of the running programs.
Most programs run with echo enabled.
In this mode,
.I 9term
display and allows editing of the input.
displays and allows editing of the input.
Some programs, typically those reading passwords,
run with echo disabled.
In this mode,
@ -279,9 +271,23 @@ If the selection is empty, it sends the white-space-delimited text
containing the selection (typing cursor).
A typical use of this feature is to tell the editor to find the source of an error
by plumbing the file and line information in a compiler's diagnostic.
.PP
Each
.I 9term
listens for connections on a Unix socket.
When a client connects, the
.I 9term
writes the window contents to the client and then hangs up.
.I 9term
installs the name of this socket in the environment as
.B $text9term
before running
.IR cmd .
.SH SOURCE
.B \*9/src/cmd/9term
.SH BUGS
There should be a program to toggle the current window's hold mode.
.PP
Unix makes everything harder.
.SH SEE ALSO
.IR wintext (1)

View file

@ -1,10 +1,12 @@
0intro 0intro.1
intro 0intro.1
9 9.1
9a 9c.1
9ar 9c.1
9c 9c.1
9l 9c.1
9p 9p.1
9term 9term.1
label 9term.1
acid acid.1
acidtypes acid.1
acme acme.1
@ -27,13 +29,12 @@ cleanname cleanname.1
auxclog clog.1
clog clog.1
cmp cmp.1
cmapcube colors.1
colors colors.1
getmap colors.1
comm comm.1
core core.1
crop crop.1
iconv crop.1
clock date.1
date date.1
db db.1
dc dc.1
@ -93,6 +94,7 @@ lc ls.1
ls ls.1
lookman man.1
man man.1
sig man.1
map map.1
mapd map.1
mapdemo map.1
@ -142,7 +144,6 @@ scat scat.1
aescbc secstore.1
ipso secstore.1
secstore secstore.1
9sed sed.1
sed sed.1
seq seq.1
sleep sleep.1

View file

@ -4,7 +4,7 @@ acid, acidtypes \- debugger
.SH SYNOPSIS
.B acid
[
.BI -l " libfile
.BI -l " library
]
[
.B -wq
@ -49,7 +49,7 @@ It can inspect one or more processes that share an address space.
A program to be debugged may be specified by the process id of
a running or defunct process,
or by the name of the program's text file
.RB ( 8.out
.RB ( a.out
by default).
At the prompt,
.I acid
@ -514,13 +514,13 @@ for processes that are still active.
.SH BUGS
There is no way to redirect the standard input and standard output
of a new process.
.br
.PP
Source line selection near the beginning of a file may pick
an adjacent file.
.br
.PP
With the extant stepping commands, one cannot step through instructions
outside the text segment and it is hard to debug across process forks.
.br
.PP
Breakpoints do not work yet.
Therefore, commands such as
.BR step ,

View file

@ -71,7 +71,7 @@ The
.RB ( -F )
option sets the main font, usually variable-pitch (alternate, usually fixed-pitch);
the default is
.B /lib/font/bit/lucidasans/euro.8.font
.B /usr/local/plan9/font/lucidasans/euro.8.font
.RB ( \&.../lucm/unicode.9.font ).
Tab intervals are set to the width of 4 (or the value of
.BR $tabstop )
@ -140,7 +140,7 @@ temporarily hiding other windows in the column.
if any of them needs attention.)
The layout box in a window is normally white; when it is black in the center,
it records that the file is `dirty':
.I Acme
.I acme
believes it is modified from its original
contents.
.PP
@ -455,26 +455,31 @@ and error outputs of commands are sent to the error window associated with
the directory from which the command was run, which will be created if
necessary.
For example, in a window
.B /adm/users
.B /etc/passwd
executing
.B pwd
will produce the output
.B /adm
.B /etc
in a (possibly newly-created) window labeled
.BR /adm/+Errors ;
.BR /etc/+Errors ;
in a window containing
.B \*9/src/cmd/sam/sam.c
.B /home/rob/sam/sam.c
executing
.B mk
will run
.IR mk (1)
in
.BR \*9/src/cmd/sam ,
.BR /home/rob/sam ,
producing output in a window labeled
.BR \*9/src/cmd/sam/+Errors .
.BR /home/rob/sam/+Errors .
The environment of such commands contains the variable
.B $%
with value set to the filename of the window in which the command is run.
with value set to the filename of the window in which the command is run,
and
.B $winid
set to the window's id number
(see
.IR acme (4)).
.SS "Mouse button 3
Pointing at text with button 3 instructs
.I acme
@ -586,7 +591,7 @@ creates a new
window and runs a
.I command
(default
.BR /bin/rc )
.BR $SHELL )
in it, turning the window into something analogous to an
.IR rio (1)
window.

View file

@ -132,32 +132,92 @@ and
a button 2 action in the tag
.RB ( x ).
.TP
.I q0
.I q0\fR, \fPq1
The character addresses of the action.
.TP
.I eq0\fR, \fPq1
The expanded character addresses of the action.
If the text indicated by
.IR q0 ,
.I q1
.TP
.I eq0
.TP
is a null string that has a non-null expansion,
.IR eq0 ,
.I eq1
are the addresses of the expansion.
Otherwise they are the same as
.IR q0 ,
.IR q1 .
.TP
.I flag
.I Flag
is a bitwise OR (reported decimally) of the following:
1 if the text indicated is recognized as an
.I acme
built-in command;
2 if the text indicated is a null string that has a non-null expansion
(see
.IR eq0 ,
.I eq1
above);
8 if the command has an extra (chorded) argument
(see
.I chordarg
below).
.I Flag
remains from the
.IR acme (4)
event format.
Because
.IR eq0 ,
.IR eq1 ,
and
.I chordarg
are explicit in each event
(unlike in
.IR acme (4)
events),
.I flag
can usually be ignored.
.TP
.I textlen
The length of the action text (or its expansion) for button 2 and button 3 events in characters.
.TP
.I text
If
.I textlen
is less than 256 chracters,
.I text
is the action text itself.
Otherwise it is an empty string and must be read from the
.B data
file.
.TP
.I chordarg
The chorded argument for an action.
.TP
.I chordorigin
If the chord argument is in the body of a named window,
.I chordorigin
specifies the full address of the argument,
as in
.BR /etc/group:#123,#234 .
.PD
.PP
To experiment with
.IR acmeevent ,
create an empty window in
.I acme
(using
.IR New ), type
.IP
.EX
9p read acme/$winid/event | acmeevent
.EE
.LP
inside it, and execute it.
Actions performed on the window will be printed as events in the
.B +Errors
window.
.PP
.I Acme.rc
is a library of

View file

@ -39,7 +39,7 @@ ascii, unicode \- interpret ASCII, Unicode characters
.PP
.B look
.I hex
.B /lib/unicode
.B \*9/lib/unicode
.SH DESCRIPTION
.I Ascii
prints the
@ -122,7 +122,7 @@ and
may be unhelpful if the characters printed are not available in the current font.
.PP
The file
.B /lib/unicode
.B \*9/lib/unicode
contains a
table of characters and descriptions, sorted in hexadecimal order,
suitable for
@ -143,19 +143,18 @@ Print the hex value of `p'.
.B "unicode 2200-22f1"
Print a table of miscellaneous mathematical symbols.
.TP
.B "look 039 /lib/unicode"
.B "look 039 \*9/lib/unicode"
See the start of the Greek alphabet's encoding in the Unicode Standard.
.SH FILES
.TF /lib/unicode
.TP
.B /lib/unicode
.B \*9/lib/unicode
table of characters and descriptions.
.SH SOURCE
.B \*9/src/cmd/ascii.c
.br
.B \*9/src/cmd/unicode.c
.SH "SEE ALSO"
.IR look (1)
.IR look (1),
.IR tcs (1),
.IR utf (7),
.IR font (7)

View file

@ -35,7 +35,7 @@ A prompt gives the input format.
If
.B l
is missing, the initial position is read from the file
.BR /lib/sky/here .
.BR \*9/sky/here .
.TP
.B c
Report for
@ -105,12 +105,11 @@ This is modified (in the source) to refer to an approaching comet
but in steady state
usually refers to the last interesting comet (currently Hale-Bopp, C/1995 O1).
.SH FILES
.TF /lib/sky/estartab
.TP
.B /lib/sky/estartab
.B \*9/sky/estartab
ecliptic star data
.TP
.B /lib/sky/here
.B \*9/sky/here
default latitude (N), longitude (W), and elevation (meters)
.SH SOURCE
.B \*9/src/cmd/astro

View file

@ -267,7 +267,7 @@ define e(x) {
for(i=1; i<=10; i++) print e(i)
.EE
.SH FILES
.B /sys/lib/bclib
.B \*9/lib/bclib
mathematical library
.SH SOURCE
.B \*9/src/cmd/bc.y
@ -281,12 +281,12 @@ No
or
.L !
operators.
.br
.PP
A
.L for
statement must have all three
.LR E s.
.br
.PP
A
.L quit
is interpreted when read, not when executed.

View file

@ -41,7 +41,7 @@ say in
then do
.TP
.L
cd gift; rc horse; mk
cd gift; sh horse; mk
.SH SOURCE
.B \*9/bin/bundle
.SH SEE ALSO
@ -53,5 +53,5 @@ cd gift; rc horse; mk
.SH BUGS
.I Bundle
will not create directories and is unsatisfactory for non-text files.
.br
.PP
Beware of gift horses.

View file

@ -39,7 +39,7 @@ Try
.SH BUGS
The year is always considered to start in January even though this
is historically naive.
.br
.PP
Beware that
.L "cal 90"
refers to the early Christian era,

View file

@ -15,7 +15,7 @@ calendar \- print upcoming events
.SH DESCRIPTION
.I Calendar
reads the named files, default
.BR /usr/$user/lib/calendar ,
.BR $HOME/lib/calendar ,
and writes to standard output any lines
containing today's or tomorrow's date.
Examples of recognized date formats are
@ -45,9 +45,9 @@ On Friday and Saturday, events through Monday are printed.
To have your calendar mailed to you every day, use
.IR cron (8).
.SH FILES
.TF /usr/$user/lib/calendar
.TF $HOME/lib/calendar
.TP
.B /usr/$user/lib/calendar
.B $HOME/lib/calendar
personal calendar
.SH SOURCE
.B \*9/src/cmd/calendar.c

View file

@ -17,7 +17,7 @@ cat, read, nobs \- catenate files
.I file ...
]
.br
nobs
.B nobs
[
.I file ...
]

View file

@ -1,6 +1,6 @@
.TH COLORS 1
.SH NAME
getmap, colors \- display color map
colors, cmapcube \- display color map
.SH SYNOPSIS
.PP
.B colors
@ -9,16 +9,13 @@ getmap, colors \- display color map
.B -x
]
.PP
.B getmap
.B cmapcube
[
.I colormap
.B -nbw
]
.SH DESCRIPTION
.I Colors
presents a grid showing the colors in the current color map.
If the display is true color,
.I colors
shows a grid of the RGBV color map
presents a grid showing the colors in the RGBV color map
(see
.IR color (7)).
.PP
@ -37,36 +34,22 @@ option instead shows, in the same form, a grey-scale ramp.
.PP
A menu on mouse button 3 contains a single entry, to exit the program.
.PP
On 8-bit color-mapped displays,
.I getmap
loads the display's color map (default
.BR rgbv ).
The named
.I colormap
can be a file in the current directory or in the standard repository
.BR /lib/cmap .
It can also be a string of the form
.B gamma
or
.BI gamma N\f1 ,
where
.I N
is a floating point value for the gamma, defining the contrast for a monochrome map.
Similarly,
.B rgamma
.I Cmapcube
presents the same colors but in a 3-dimensional cube.
Dragging with button 1 rotates the cube.
Clicking on a color with button 2
displays the map index for that color.
Clicking button 3 exits.
.PP
The
.B -n
option disables drawing of the color squares.
The
.B -b
and
.BI rgamma N
define a reverse-video monochrome map.
Finally, the names
.B screen
or
.B display
or
.B vga
are taken as synonyms for the current color map stored in the display hardware.
.SH FILES
.B /lib/cmap
directory of color map files
.B -w
options set the background (default grey)
to black or white.
.SH SOURCE
.B \*9/src/cmd/draw/colors.c
.SH SEE ALSO

View file

@ -44,3 +44,6 @@ searches the current directory.
.IR acid (1),
.IR db (1),
.IR core (5)
.SH BUGS
.I Core
has not been written.

View file

@ -1,6 +1,6 @@
.TH DATE 1
.SH NAME
date, clock \- date and time
date \- date and time
.SH SYNOPSIS
.B date
[

View file

@ -912,14 +912,6 @@ To set a breakpoint at the beginning of
.B write()
in extant process 27:
.IP
.de EX
.RS
.ft B
.nf
..
.de EE
.RE
..
.EX
% db 27
:h

View file

@ -223,15 +223,15 @@ results are truncated to the following scales.
\fLv\fR max(\fIs,sa\fR)
.fi
.SH EXAMPLES
.LP
Print the first ten values of
.IR n !
.IP
.EX
[la1+dsa*pla10>y]sy
0sa1
lyx
.EE
.ns
.IP
Print the first ten values of
.IR n !
.SH SOURCE
.B \*9/src/cmd/dc.c
.SH "SEE ALSO"

View file

@ -112,6 +112,6 @@ when the popular
delimiters for
.I eqn
are in effect.
.br
.PP
Text inside macros is emitted at place of
definition, not place of call.

View file

@ -182,12 +182,10 @@ it starts with the
.BI /adict/ dict /
window.
.SH FILES
.B /lib/dict/oed2
.br
.B /lib/dict/oed2index
.br
Other files in
.BR /lib .
.TP
.B \*9/dict
dictionaries
.PD
.SH "SEE ALSO"
.IR regexp (7)
.SH SOURCE

View file

@ -148,7 +148,7 @@ Editing scripts produced under the
.BR -e " or"
.BR -f " option are naive about"
creating lines consisting of a single `\fB.\fR'.
.br
.PP
When running
.I diff
on directories, the notion of what is a text

View file

@ -4,8 +4,13 @@ doctype \- intuit command line for formatting a document
.SH SYNOPSIS
.B doctype
[
.I option ...
] [
.B -n
]
[
.B -T
.I dev
]
[
.I file
]
\&...
@ -32,7 +37,9 @@ invokes
.I nroff
instead of
.IR troff .
Other options are passed to
The
.B -T
option is passed to
.IR troff .
.SH EXAMPLES
.TP

View file

@ -49,7 +49,7 @@ commands.
If no
.I file
is given, make
.B /fd/1
.B /dev/stdout
the remembered file; see the
.L e
command below.

View file

@ -13,11 +13,11 @@ If a
.I file
is specified, the saying is taken from that file;
otherwise it is selected from
.BR /sys/games/lib/fortunes .
.BR \*9/lib/fortunes .
.SH FILES
.B /sys/games/lib/fortunes
.B \*9/lib/fortunes
.br
.B /sys/games/lib/fortunes.index
.B \*9/lib/fortunes.index
\ \ fast lookup table, maintained automatically
.SH SOURCE
.B \*9/src/cmd/fortune.c

View file

@ -254,7 +254,7 @@ symbols like
.BR star ,
.BR plus ,
etc., in
.BR /sys/lib/grap.defines ,
.BR \*9/lib/grap.defines ,
which is included if it exists.
.PP
.I var
@ -399,9 +399,9 @@ copy thru / circle at $1,$2 /
.vs
.EE
.SH FILES
.TF /sys/lib/grap.defines
.TF \*9/lib/grap.defines
.TP
.B /sys/lib/grap.defines
.B \*9/lib/grap.defines
definitions of standard plotting characters, e.g., bullet
.SH SOURCE
.B \*9/src/cmd/grap

View file

@ -10,6 +10,7 @@ grep, g \- search a file for a pattern
[
.I file ...
]
.PP
.B g
[
.I option ...

View file

@ -14,7 +14,8 @@ interactively
merges
.I file1
and
.IR file2 .
.I file2
onto standard output.
Wherever
.I file1
and
@ -23,7 +24,8 @@ differ,
.I idiff
displays the differences in the style of
.RB `` diff
.RB -n ''
.BR -n ''
on standard error
and prompts the user to select a chunk.
Valid responses are:
.TP
@ -54,9 +56,10 @@ The
.B -b
and
.B -w
flags
are simply
passed through to
flags,
if passed,
are
passed to
.IR diff .
.SH FILES
.B /tmp/idiff.*
@ -68,5 +71,3 @@ passed through to
Kernighan and Pike,
.IR "The Unix Programming Environment" ,
Prentice-Hall, 1984.
.SH BUGS
This is a poorly-written manual page.

View file

@ -143,5 +143,5 @@ with
the sequence is that of
.BI "sort -t" x
.BI -k y , y\f1.
.br
.PP
One of the files must be randomly accessible.

View file

@ -13,11 +13,6 @@ kill, slay, start, stop \- print commands to manipulate processes
.PP
.B stop
.I name ...
.PP
.B broke
[
.I user
]
.SH DESCRIPTION
.I Kill
prints commands that will cause all processes with
@ -67,3 +62,8 @@ signal.
.SH "SEE ALSO"
.IR ps (1),
.IR notify (3)
.SH BUGS
.I Stop
and
.I start
should limit themselves to currently running or stopped processes.

View file

@ -77,5 +77,5 @@ Tenth Edition, Volume 2.
.SH BUGS
Cannot handle
.SM UTF.
.br
.PP
The asteroid to kill this dinosaur is still in orbit.

View file

@ -77,10 +77,9 @@ is assumed, with collating sequence
.IR grep (1)
.SH DIAGNOSTICS
The exit status is
.B \&"not found"
.RB `` "not found" ''
if no match is found, and
.B \&"no dictionary"
.RB `` "no dictionary" ''
if
.I file
or the default dictionary cannot be opened.

View file

@ -157,6 +157,5 @@ if none of the above permissions is granted.
.br
.B \*9/bin/lc
.SH SEE ALSO
.IR stat (3)
.IR stat (3),
.IR mc (1)

View file

@ -1,6 +1,6 @@
.TH MAN 1
.SH NAME
man, lookman \- print or find pages of this manual
man, lookman, sig \- print or find pages of this manual
.SH SYNOPSIS
.B man
[
@ -88,17 +88,20 @@ command to make an index for a given section
index for
.I lookman
.SH SOURCE
.B \*9/bin/9man
.B \*9/bin/man
.br
.B \*9/bin/lookman
.SH "SEE ALSO"
.IR page (1),
.IR proof (1)
.SH BUGS
The manual was intended to be typeset; some detail is sacrificed on text terminals.
.PP
There is no automatic mechanism to keep the indices up to date.
.PP
Except for special cases, it doesn't recognize things that should be run through
Except for special cases,
.I man
doesn't recognize things that should be run through
.I tbl
and/or
.IR eqn .

View file

@ -634,7 +634,7 @@ maps for
.B /lib/map/*.x
map indexes
.TP
.B /bin/aux/mapd
.B mapd
Map driver program
.SH SOURCE
.B \*9/src/cmd/map

View file

@ -1,21 +1,4 @@
.TH MK 1
.de EX
.nf
.ft B
..
.de EE
.fi
.ft R
..
.de LR
.if t .BR \\$1 \\$2
.if n .RB ` \\$1 '\\$2
..
.de L
.nh
.if t .B \\$1
.if n .RB ` \\$1 '
..
.SH NAME
mk, membername \- maintain (make) related files
.SH SYNOPSIS
@ -313,6 +296,7 @@ and any command line assignment as an argument to
.IR mk .
A variable assignment argument overrides the first (but not any subsequent)
assignment to that variable.
.PP
The variable
.B MKFLAGS
contains all the option arguments (arguments starting with
@ -324,6 +308,45 @@ and
contains all the targets in the call to
.IR mk .
.PP
The variable
.B MKSHELL
contains the shell command line
.I mk
uses to run recipes.
If the first word of the command ends in
.B rc
or
.BR rcsh ,
.I mk
uses
.IR rc (1)'s
quoting rules; otherwise it uses
.IR sh (1)'s.
The
.B MKSHELL
variable is consulted when the mkfile is read, not when it is executed,
so that different shells can be used within a single mkfile:
.IP
.EX
MKSHELL=$PLAN9/bin/rc
use-rc:V:
for(i in a b c) echo $i
MKSHELL=sh
use-sh:V:
for i in a b c; do echo $i; done
.EE
.LP
Mkfiles included via
.B <
or
.B <|
.RI ( q.v. )
see their own private copy of
.BR MKSHELL ,
which always starts set to
.B sh .
.PP
Dynamic information may be included in the mkfile by using a line of the form
.IP
\fR<|\fIcommand\fR \fIargs\fR
@ -510,6 +533,7 @@ archives.
.I Membername
echoes just the member names of a list of aggregate names.
It is useful in recipes like:
.IP
.EX
OFILES=a.o b.o
libc.a(%):N: %
@ -647,7 +671,7 @@ x.tab.h:Pcmp -s: y.tab.h
.EE
.SH SEE ALSO
.IR sh (1),
.IR regexp9 (7)
.IR regexp (7)
.PP
A. Hume,
``Mk: a Successor to Make''
@ -664,19 +688,18 @@ It was later ported to Plan 9.
This software is a port of the Plan 9 version back to Unix.
.SH BUGS
Identical recipes for regular expression meta-rules only have one target.
.br
.PP
Seemingly appropriate input like
.B CFLAGS=-DHZ=60
is parsed as an erroneous attribute; correct it by inserting
a space after the first
.LR = .
.br
.PP
The recipes printed by
.I mk
before being passed to
.I sh
the shell
for execution are sometimes erroneously expanded
for printing. Don't trust what's printed; rely
on what
.I sh
on what the shell
does.

View file

@ -11,4 +11,5 @@ See
.SH SOURCE
.B \*9/src/cmd/namespace.c
.SH SEE ALSO
.IR getns (3)
.IR getns (3),
.IR intro (4)

View file

@ -35,13 +35,13 @@ Other arguments
select particular news items.
.PP
To post a news item, create a file in
.BR /lib/news .
.PP
You may arrange to receive news automatically by
registering your mail address in
.BR /sys/lib/subscribers .
A daemon mails recent news
to all addresses on the list.
.BR \*9/news .
.\" .PP
.\" You may arrange to receive news automatically by
.\" registering your mail address in
.\" .BR /sys/lib/subscribers .
.\" A daemon mails recent news
.\" to all addresses on the list.
.PP
Empty news items, and news items named
.B core
@ -49,15 +49,14 @@ or
.B dead.letter
are ignored.
.SH FILES
.TF /sys/lib/subscribers
.TP
.B /lib/news/*
.B \*9/news/*
articles
.TP
.B $HOME/lib/newstime
modify time is time news was last read
.TP
.B /sys/lib/subscribers
.\" .TP
.\" .B /sys/lib/subscribers
who gets news mailed to them
.SH SOURCE
.B \*9/src/cmd/news.c

View file

@ -49,7 +49,7 @@ To view troff output, use
.IR proof (1).
.SH "SEE ALSO
.IR gs (1),
.IR gv (1)
.IR gv (1),
.IR jpg (1),
.IR proof (1),
.IR tex (1),
@ -64,3 +64,11 @@ When using Preview on Mac OS X,
leaves temporary files in
.BR /var/tmp ,
since it has no way to know when the viewer has exited.
.PP
.I Page
does not handle
Plan 9
.IR image (7)
files; use
.I img
explicitly.

View file

@ -76,14 +76,10 @@ will add an
.B action=showdata
attribute to the message.
.SH FILES
.TF /usr/$user/lib/plumbing
.TF $HOME/lib/plumbing
.TP
.B /usr/$user/lib/plumbing
.B $HOME/lib/plumbing
default rules file
.TP
.B /mnt/plumb
mount point for
.IR plumber (4).
.SH SOURCE
.B \*9/src/cmd/plumb
.SH "SEE ALSO"

View file

@ -115,12 +115,11 @@ and
.B d
commands are also available as command line options.
.SH FILES
.TF /lib/font/bit/MAP
.TP
.B /lib/font/bit/*
.B \*9/font/*
fonts
.TP
.B /lib/font/bit/MAP
.B \*9/font/MAP
how to convert troff output fonts and character names
into screen fonts and character numbers
.SH SOURCE

View file

@ -81,7 +81,7 @@ performing the named system call.
waiting for more of a critical
.IR resource .
.TP
.BI wchan
.I wchan
waiting on the named wait channel
(on a Unix kernel).
.PD

View file

@ -765,8 +765,7 @@ The string for a variable entry has the variable's name followed by
.B =
and its value.
If the value has more than one component, these
are separated by SOH
.RB ( '\e001' )
are separated by SOH (001)
characters.
The string for a function is just the
.I rc

View file

@ -19,6 +19,9 @@ sam, B, E, sam.save, samterm, samsave \- screen editor with structural regular e
.B B
.IB file \fR[\fP: line \fR]
\&...
.PP
.B E
.I file
.SH DESCRIPTION
.I Sam
is a multi-file editor.
@ -845,7 +848,7 @@ It runs
.I B
on
.I file
and then waits to exit until
and then does not exit until
.I file
is changed, which is taken as a signal that
.I file
@ -858,22 +861,22 @@ terminates other than by a
command (by hangup, deleting its window, etc.), modified
files are saved in an
executable file,
.BR $home/sam.save .
.BR $HOME/sam.save .
This program, when executed, asks whether to write
each file back to a external file.
The answer
.L y
causes writing; anything else skips the file.
.SH FILES
.TF \*9/src/cmd/samterm
.TF $HOME/sam.save
.TP
.B $home/sam.save
.B $HOME/sam.save
.TP
.B $home/sam.err
.B $HOME/sam.err
.TP
.B \*9/bin/samsave
the program called to unpack
.BR $home/sam.save .
.BR $HOME/sam.save .
.SH SOURCE
.TF \*9/src/cmd/samterm
.TP
@ -886,6 +889,8 @@ itself
source for the separate terminal part
.TP
.B \*9/bin/B
.TP
.B \*9/bin/E
.SH SEE ALSO
.IR ed (1),
.IR sed (1),

View file

@ -124,7 +124,7 @@ The output is the planet's name, right ascension and declination, azimuth and al
for the moon and sun, as shown by
.BR astro .
The positions are current at the start of
.I scat 's
.IR scat 's
execution; see the
.B astro
command in the next section for more information.
@ -313,20 +313,20 @@ Draw a map of the Pleiades.
expand 1
plot
.EE
.PP
Show a pretty galaxy.
.EX
ngc1300
plate 10'
.EE
.\" .PP
.\" Show a pretty galaxy.
.\" .EX
.\" ngc1300
.\" plate 10'
.\" .EE
.SH FILES
.B /lib/sky/*.scat
.B \*9/sky/*.scat
.SH SOURCE
.B \*9/src/cmd/scat
.SH SEE ALSO
.IR astro (1)
.br
.B /lib/sky/constelnames\ \
.B \*9/sky/constelnames\ \
the three-letter abbreviations of the constellation names.
.PP
The data was provided by the Astronomical Data Center at the NASA Goddard

View file

@ -127,70 +127,70 @@ The next three commands fetch the persistent copy of the secrets,
append a new secret,
and save the updated file back to secstore.
The final command loads the new secret into the running factotum.
.PP
The
.I ipso
command packages this sequence into a convenient script to simplify editing of
.I files
stored on a secure store.
It copies the named
.I files
into a local
.IR ramfs (4)
and invokes
.IR acme (1)
on them. When the editor exits,
.I ipso
prompts the user to confirm copying modifed or newly created files back to
.I secstore.
If no
.I file
is mentioned,
.I ipso
grabs all the user's files from
.I secstore
for editing.
.PP
By default, ipso will edit the
.I secstore
files and, if
one of them is named
.BR factotum ,
flush your current keys from factotum and load
the new ones from the file.
If you supply any of the
.BR -e ,
.BR -f ,
or
.BR -l
options,
.I ipso
will just perform the operations you requested, i.e.,
edit, flush, and/or load.
.PP
The
.B -s
option of
.I ipso
invokes
.IR sam (1)
as the editor insted of
.BR acme ;
the
.B -a
option provides a similar service for files encrypted by
.I aescbc
.RI ( q.v. ).
With the
.B -a
option, the full rooted pathname of the
.I file
must be specified and all
.I files
must be encrypted with the same key.
Also with
.BR -a ,
newly created files are ignored.
.\" .PP
.\" The
.\" .I ipso
.\" command packages this sequence into a convenient script to simplify editing of
.\" .I files
.\" stored on a secure store.
.\" It copies the named
.\" .I files
.\" into a local
.\" .IR ramfs (4)
.\" and invokes
.\" .IR acme (1)
.\" on them. When the editor exits,
.\" .I ipso
.\" prompts the user to confirm copying modifed or newly created files back to
.\" .I secstore.
.\" If no
.\" .I file
.\" is mentioned,
.\" .I ipso
.\" grabs all the user's files from
.\" .I secstore
.\" for editing.
.\" .PP
.\" By default, ipso will edit the
.\" .I secstore
.\" files and, if
.\" one of them is named
.\" .BR factotum ,
.\" flush your current keys from factotum and load
.\" the new ones from the file.
.\" If you supply any of the
.\" .BR -e ,
.\" .BR -f ,
.\" or
.\" .BR -l
.\" options,
.\" .I ipso
.\" will just perform the operations you requested, i.e.,
.\" edit, flush, and/or load.
.\" .PP
.\" The
.\" .B -s
.\" option of
.\" .I ipso
.\" invokes
.\" .IR sam (1)
.\" as the editor insted of
.\" .BR acme ;
.\" the
.\" .B -a
.\" option provides a similar service for files encrypted by
.\" .I aescbc
.\" .RI ( q.v. ).
.\" With the
.\" .B -a
.\" option, the full rooted pathname of the
.\" .I file
.\" must be specified and all
.\" .I files
.\" must be encrypted with the same key.
.\" Also with
.\" .BR -a ,
.\" newly created files are ignored.
.PP
.I Aescbc
encrypts and decrypts using AES (Rijndael) in cipher
@ -205,8 +205,8 @@ There is deliberately no backup of files on the secstore, so
.B -r
(or a disk crash) is irrevocable. You are advised to store
important secrets in a second location.
.PP
When using
.IR ipso ,
secrets will appear as plain text in the editor window,
so use the command in private.
.\" .PP
.\" When using
.\" .IR ipso ,
.\" secrets will appear as plain text in the editor window,
.\" so use the command in private.

View file

@ -1,8 +1,8 @@
.TH SED 1
.SH NAME
9sed \- stream editor
sed \- stream editor
.SH SYNOPSIS
.B 9sed
.B sed
[
.B -n
]
@ -366,7 +366,7 @@ ${
Delete all but one of each group of empty lines from a
formatted manuscript.
.SH SOURCE
.B \*9/src/cmd/9sed.c
.B \*9/src/cmd/sed.c
.SH SEE ALSO
.IR ed (1),
.IR grep (1),

View file

@ -19,6 +19,8 @@ sort \- sort and/or merge files
.I ,pos2
]
] ...
.br
\h'0.5in'
[
.B -o
.I output
@ -210,7 +212,7 @@ This file may be the same as one of the inputs.
Put temporary files in
.I dir
rather than in
.BR /tmp .
.BR /var/tmp .
.ne 4
.SH EXAMPLES
.TP
@ -236,7 +238,7 @@ grep -n '^' input | sort -t: +1f +0n | sed 's/[0-9]*://'
A stable sort: input lines that compare equal will
come out in their original order.
.SH FILES
.BI /tmp/sort. <pid>.<ordinal>
.BI /var/tmp/sort. <pid>.<ordinal>
.SH SOURCE
.B \*9/src/cmd/sort.c
.SH SEE ALSO

View file

@ -67,7 +67,7 @@ American spelling list
.B \*9/lib/brspell
British spelling list
.TP
.B /bin/aux/sprog
.B \*9/bin/sprog
The actual spelling checker.
It expects one word per line on standard input,
and takes the same arguments as
@ -87,7 +87,7 @@ source for
The heuristics of
.IR deroff (1)
used to excise formatting information are imperfect.
.br
.PP
The spelling list's coverage is uneven;
in particular biology, medicine, and chemistry, and
perforce proper names,

View file

@ -167,13 +167,21 @@ to exit.
.PD
.SH EXAMPLE
Show the load, memory, interrupts, system calls, context switches,
and ethernet packets for the local machine, a remote Linux machine
.BR tux ,
and a remote BSD machine
.BR daemon .
and ethernet packets for the local machine,
a remote BSD machine
.IR daemon ,
and
a remote Linux machine
.IR tux .
.I Auxstats
is not in
.IR tux 's
path, so the full path must be given.
.IP
.B
stats -lmisce `hostname` tux:\*9/bin/auxstats daemon
.EX
stats -lmisce `hostname` daemon \e
tux:\*9/bin/auxstats
.EE
.SH SOURCE
.B \*9/src/cmd/draw/stats.c
.PP

View file

@ -77,11 +77,11 @@ Print the first 10 lines of a file.
Tails relative to the end of the file
are treasured up in a buffer, and thus
are limited in length.
.br
.PP
According to custom, option
.BI + number
counts lines from 1, and counts
blocks and bytes from 0.
.br
.PP
.I Tail
is ignorant of UTF.

View file

@ -158,19 +158,19 @@ to speed output and reduce output character count.
Tab settings are assumed to be every
8 nominal character widths.
.SH FILES
.TF /sys/lib/troff/term/*
.TF \*9/troff/term/*
.TP
.B /tmp/trtmp*
temporary file
.TP
.B /sys/lib/tmac/tmac.*
.B \*9/tmac/tmac.*
standard macro files
.TP
.B /sys/lib/troff/term/*
.B \*9/troff/term/*
terminal driving tables for
.I nroff
.TP
.B /sys/lib/troff/font/*
.B \*9/troff/font/*
font width tables for
.I troff
.SH SOURCE

View file

@ -73,13 +73,13 @@ Currency is denoted
etc.
.PP
The complete list of units can be found in
.BR /lib/units .
.BR \*9/lib/units .
A
.I file
argument to
.I units
specifies a file to be used instead of
.BR /lib/units.
.BR \*9/lib/units.
The
.B -v
flag causes
@ -93,7 +93,7 @@ you want: atm
/ .97973
.EE
.SH FILES
.B /lib/units
.B \*9/lib/units
.SH SOURCE
.B \*9/src/cmd/units.y
.SH BUGS
@ -102,7 +102,6 @@ Since
does only multiplicative scale changes,
it can convert Kelvin to Rankine but not Centigrade to
Fahrenheit.
.br
.PP
Currency conversions are only as accurate as the last time someone
updated
.BR /lib/units .
updated the database.

View file

@ -127,4 +127,3 @@ and the vac archives that are expanded and merged.
.B \*9/src/cmd/vac
.SH "SEE ALSO"
Plan 9's \fIvacfs\fR(4) and \fIventi\fR(8)

View file

@ -43,7 +43,7 @@ but
looks for only
.SM ASCII
space, tab and newline.
.br
.PP
.I Wc
should have options to count suboptimal
.SM UTF

View file

@ -31,6 +31,8 @@ The choice of browser is determined by the
.B $BROWSER
environment variable, which should be the name of
the executable for your choice of web browser.
The default is
.BR firefox .
Since the various browsers all use different syntaxes
in their
.B -remote
@ -41,6 +43,23 @@ When possible,
.I web
opens each URL in a new tab rather than a new window.
.PP
When run under Mac OS X,
.B $BROWSER
should be set to the string
.B safari
or
.BR firefox .
.I Web
uses AppleScript to talk to the browser.
If
.B $BROWSER
is not set,
.I web
looks for Firefox in
.BR /Applications/Firefox.app
and uses it if found;
otherwise it uses Safari.
.PP
.I Wmail
starts the composition of a new mail message to
.IR address .
@ -49,7 +68,8 @@ The choice of mailer is determined by the
.B $MAILER
environment variable.
The supported mailers are:
.TP browser
.TP
.B browser
invoke the mailer via a
.B mailto://
URL passed to

View file

@ -1,15 +1,19 @@
.TH WINTEXT 1
.SH NAME
wintext, ", "" \- access text in current window
.ds x \C'"'
.ds xx \C'"'\^\^\^\^\C'"'
.ds y \*x\
.ds yy \*(xx\
.SH SYNOPSIS
.B wintext
.br
.B \C'"'\
.B \*x\
[
.I prefix
]
.br
.B \C'"'\C'"'\
.B \*(xx\
[
.I prefix
]
@ -23,7 +27,7 @@ or
.IR 9term (1)
window to standard output.
.PP
.I \C'"'
.I \*y
searches the window text for commands typed with a particular prefix
and prints them, indented, to standard output.
.I Prefix
@ -31,18 +35,18 @@ is a regular expression that is matched against the beginning of the command-lin
If
.I prefix
is omitted,
.I \C'"'
.I \*y
prints the last command executed.
.I \C'"'\C'"'
.I \*(yy
prints the last command that
.I \C'"'
.I \*y
would print and then executes it by piping it into
.IR rc (1).
.PP
Both
.I \C'"'
.I \*y
and
.I \C'"'\C'"'
.I \*(yy
identify commands in the window text by looking for lines
beginning with a shell prompt.
Prompts are assumed to be an unindented sequence of
@ -62,7 +66,7 @@ commands executed in this window:
.IP
.EX
.ta +4n
% \C'"' 'l[sc]'
% \*x 'l[sc]'
% ls -l /tmp/qq*
# ls -lrt /etc
% lc r*
@ -75,7 +79,7 @@ command again:
.IP
.EX
.ta +4n
% \C'"'\C'"' lc
% \*(xx lc
% lc r*
ramfs rc read rio rm
%
@ -86,13 +90,9 @@ ramfs rc read rio rm
.SH SOURCE
.B \*9/bin
.SH BUGS
.I \C'"'
.I \*y
and
.I \C'"'\C'"'
.I \*(yy
are hard to type in shells other than
.IR rc (1).
.\" and in troff!
.PP
Don't run
.I \C'"'\C'"'
twice in a row.

View file

@ -145,7 +145,7 @@ parser prototype
.B \*9/lib/yaccpars
parser prototype using stdio
.SH SOURCE
.B \*9/src/cmd/9yacc.c
.B \*9/src/cmd/yacc.c
.SH "SEE ALSO"
.IR lex (1)
.br

395
man/man3/0intro.3 Normal file
View file

@ -0,0 +1,395 @@
.TH INTRO 3
.SH NAME
intro \- introduction to library functions
.SH SYNOPSIS
.nf
.B #include <u.h>
.PP
.B #include \fIany Unix headers\fR
.PP
.B #include <libc.h>
.PP
.B #include <auth.h>
.PP
.B #include <bio.h>
.PP
.B #include <draw.h>
.PP
.B #include <fcall.h>
.PP
.B #include <frame.h>
.PP
.B #include <mach.h>
.PP
.B #include <regexp.h>
.PP
.B #include <thread.h>
.fi
.SH DESCRIPTION
This section describes functions
in various libraries.
For the most part, each library is defined by a single C include
file, such as those listed above, and a single archive file containing
the library proper. The name of the archive is
.BI \*9/lib/lib x .a \f1,
where
.I x
is the base of the include file name, stripped of a leading
.B lib
if present.
For example,
.B <draw.h>
defines the contents of library
.BR \*9/lib/libdraw.a ,
which may be abbreviated when named to the loader as
.BR -ldraw .
In practice, each include file contains a magic pragma
that directs the loader to pick up the associated archive
automatically, so it is rarely necessary to tell the loader
which
libraries a program needs;
see
.IR 9c (1).
.PP
The library to which a function belongs is defined by the
header file that defines its interface.
The `C library',
.IR libc ,
contains most of the basic subroutines such
as
.IR strlen .
Declarations for all of these functions are
in
.BR <libc.h> ,
which must be preceded by
.RI ( needs )
an include of
.BR <u.h> .
The graphics library,
.IR draw ,
is defined by
.BR <draw.h> ,
which needs
.B <libc.h>
and
.BR <u.h> .
The Buffered I/O library,
.IR libbio ,
is defined by
.BR <bio.h> ,
which needs
.B <libc.h>
and
.BR <u.h> .
The ANSI C Standard I/O library,
.IR libstdio ,
is defined by
.BR <stdio.h> ,
which needs
.BR <u.h> .
There are a few other, less commonly used libraries defined on
individual pages of this section.
.PP
The include file
.BR <u.h> ,
a prerequisite of several other include files,
declares the architecture-dependent and -independent types, including:
.IR uchar ,
.IR ushort ,
and
.IR ulong ,
the unsigned integer types;
.IR schar ,
the signed char type;
.I vlong
and
.IR uvlong ,
the signed and unsigned very long integral types;
.IR Rune ,
the Unicode character type;
.IR u8int ,
.IR u16int ,
.IR u32int ,
and
.IR u64int ,
the unsigned integral types with specific widths;
.IR jmp_buf ,
the type of the argument to
.I setjmp
and
.IR longjmp ,
plus macros that define the layout of
.IR jmp_buf
(see
.IR setjmp (3));
.\" definitions of the bits in the floating-point control register
.\" as used by
.\" .IR getfcr (2);
and
the macros
.B va_arg
and friends for accessing arguments of variadic functions (identical to the
macros defined in
.B <stdarg.h>
in ANSI C).
.PP
Plan 9 and Unix use many similarly-named functions for different purposes:
for example, Plan 9's
.I dup
is closer to (but not exactly) Unix's
.IR dup2 .
To avoid name conflicts,
.B <libc.h>
defines many of these names as preprocessor macros to add a
.I p9
prefix,
so that
.I dup
becomes
.IR p9dup .
To disable this renaming,
.B #define
.B NOPLAN9DEFINES
before including
.BR <libc.h> .
If Unix headers must be included in a program,
they should be included after
.BR <u.h> ,
which sets important preprocessor directives
(for example, to enable 64-bit file offsets),
but before
.BR <libc.h> ,
to avoid renaming problems.
.SS "Name space
Files are collected into a hierarchical organization called a
.I "file tree
starting in a
.I directory
called the
.IR root .
File names, also called
.IR paths ,
consist of a number of
.BR / -separated
.I "path elements"
with the slashes corresponding to directories.
A path element must contain only printable
characters (those outside the control spaces of
.SM ASCII
and Latin-1).
A path element cannot contain a slash.
.PP
When a process presents a file name to Plan 9, it is
.I evaluated
by the following algorithm.
Start with a directory that depends on the first
character of the path:
.L /
means the root of the main hierarchy,
and anything else means the process's current working directory.
Then for each path element, look up the element
in the directory, advance to that directory,
do a possible translation (see below), and repeat.
The last step may yield a directory or regular file.
.SS "File I/O"
Files are opened for input or output
by
.I open
or
.I create
(see
.IR open (3)).
These calls return an integer called a
.IR "file descriptor"
which identifies the file
to subsequent I/O calls,
notably
.IR read (3)
and
.IR write .
The system allocates the numbers by selecting the lowest unused descriptor.
They are allocated dynamically; there is no visible limit to the number of file
descriptors a process may have open.
They may be reassigned using
.IR dup (3).
File descriptors are indices into a
kernel resident
.IR "file descriptor table" .
Each process has an associated file descriptor table.
In threaded programs
(see
.IR thread (3)),
the file descriptor table is shared by all the procs.
.PP
By convention,
file descriptor 0 is the standard input,
1 is the standard output,
and 2 is the standard error output.
With one exception, the operating system is unaware of these conventions;
it is permissible to close file 0,
or even to replace it by a file open only for writing,
but many programs will be confused by such chicanery.
The exception is that the system prints messages about broken processes
to file descriptor 2.
.PP
Files are normally read or written in sequential order.
The I/O position in the file is called the
.IR "file offset"
and may be set arbitrarily using the
.IR seek (3)
system call.
.PP
Directories may be opened like regular files.
Instead of reading them with
.IR read (3),
use the
.B Dir
structure-based
routines described in
.IR dirread (3).
The entry
corresponding to an arbitrary file can be retrieved by
.IR dirstat
(see
.IR stat (3))
or
.IR dirfstat ;
.I dirwstat
and
.I dirfwstat
write back entries, thus changing the properties of a file.
.PP
New files are made with
.I create
(see
.IR open (3))
and deleted with
.IR remove (3).
Directories may not directly be written;
.IR create ,
.IR remove ,
.IR wstat ,
and
.I fwstat
alter them.
.PP
.IR Pipe (3)
creates a connected pair of file descriptors,
useful for bidirectional local communication.
.SS "Process execution and control"
A new process is created
when an existing one calls
.IR fork (2).
The new (child) process starts out with
copies of the address space and most other attributes
of the old (parent) process.
In particular,
the child starts out running
the same program as the parent;
.IR exec (3)
will bring in a different one.
.PP
Each process has a unique integer process id;
a set of open files, indexed by file descriptor;
and a current working directory
(changed by
.IR chdir (2)).
.PP
Each process has a set of attributes \(em memory, open files,
name space, etc. \(em that may be shared or unique.
Flags to
.IR rfork
control the sharing of these attributes.
.PP
A process terminates by calling
.IR exits (3).
A parent process may call
.IR wait (3)
to wait for some child to terminate.
A bit of status information
may be passed from
.I exits
to
.IR wait .
On Plan 9, the status information is an arbitrary text string,
but on Unix it is a single integer.
The Plan 9 interface persists here, although the functionality does not.
Instead, empty strings are converted to exit status 0 and non-empty strings to 1.
.PP
A process can go to sleep for a specified time by calling
.IR sleep (3).
.PP
There is a
.I notification
mechanism for telling a process about events such as address faults,
floating point faults, and messages from other processes.
A process uses
.IR notify (3)
to register the function to be called (the
.IR "notification handler" )
when such events occur.
.SS Multithreading
Where possible according to the ANSI C standard,
the main C library works properly in multiprocess programs;
.IR malloc ,
.IR print ,
and the other routines use locks (see
.IR lock (3))
to synchronize access to their data structures.
The graphics library defined in
.B <draw.h>
is also multi-process capable; details are in
.IR graphics (3).
In general, though, multiprocess programs should use some form of synchronization
to protect shared data.
.PP
The thread library, defined in
.BR <thread.h> ,
provides support for multiprocess programs.
It includes a data structure called a
.B Channel
that can be used to send messages between processes,
and coroutine-like
.IR threads ,
which enable multiple threads of control within a single process.
The threads within a process are scheduled by the library, but there is
no pre-emptive scheduling within a process; thread switching occurs
only at communication or synchronization points.
.PP
Most programs using the thread library
comprise multiple processes
communicating over channels, and within some processes,
multiple threads. Since I/O calls may block, a system
call may block all the threads in a process.
Therefore, a program that shouldn't block unexpectedly will use a process
to serve the I/O request, passing the result to the main processes
over a channel when the request completes.
For examples of this design, see
.IR ioproc (3)
or
.IR mouse (3).
.SH SEE ALSO
.IR nm (1),
.IR 9c (1)
.SH DIAGNOSTICS
Math functions in
.I libc
return
special values when the function is undefined for the
given arguments or when the value is not representable
(see
.IR nan (3)).
.PP
Some of the functions in
.I libc
are system calls and many others employ system calls in their implementation.
All system calls return integers,
with \-1 indicating that an error occurred;
.IR errstr (3)
recovers a string describing the error.
Some user-level library functions also use the
.I errstr
mechanism to report errors.
Functions that may affect the value of the error string are said to ``set
.IR errstr '';
it is understood that the error string is altered only if an error occurs.

View file

@ -109,13 +109,13 @@ and
.B Fid
structures are allocated one-to-one with uncompleted
requests and active fids, and are described in
.IR 9pfid (3).
.IR 9p-fid (3).
.PP
The behavior of
.I srv
depends on whether there is a file tree
(see
.IR 9pfile (3))
.IR 9p-file (3))
associated with the server, that is,
whether the
.B tree
@ -717,8 +717,8 @@ accept the
option to increment
.BR chatty9p .
.SH EXAMPLES
\*9/src/lib9p/ramfs.c
is an example of simple single-threaded file servers.
.B \*9/src/lib9p/ramfs.c
is an example of a simple single-threaded file server.
On Plan 9, see
.IR archfs ,
.IR cdfs ,
@ -744,6 +744,6 @@ or is maintained elsewhere.
.SH SOURCE
.B \*9/src/lib9p
.SH SEE ALSO
.IR 9pfid (3),
.IR 9pfile (3),
.IR 9p-fid (3),
.IR 9p-file (3),
.IR intro (9p)

View file

@ -9,8 +9,8 @@ CFid, CFsys, fsinit, fsmount, fsroot, fssetroot, fsunmount, nsmount, fsversion,
.B #include <fcall.h>
.PP
.B #include <9pclient.h>
.ta +\w'\fLCFsys* 'u
.PP
.ta +'\fLCFsys* 'u
.B
CFsys* fsmount(int fd, char *aname)
.PP
@ -214,7 +214,7 @@ The path is parsed as a slash-separated sequence of path elements,
as on Unix and Plan 9.
Elements that are empty or
dot
.B ( . )
.RB ( . )
are ignored.
.PP
Once opened, these fids can be read and written using

View file

@ -1,3 +1,48 @@
0intro 0intro.3
intro 0intro.3
9p-cmdbuf 9p-cmdbuf.3
Cmdbuf 9p-cmdbuf.3
lookupcmd 9p-cmdbuf.3
parsecmd 9p-cmdbuf.3
respondcmderror 9p-cmdbuf.3
9p-fid 9p-fid.3
Fid 9p-fid.3
Fidpool 9p-fid.3
Req 9p-fid.3
Reqpool 9p-fid.3
allocfid 9p-fid.3
allocfidpool 9p-fid.3
allocreq 9p-fid.3
allocreqpool 9p-fid.3
closefid 9p-fid.3
closereq 9p-fid.3
freefidpool 9p-fid.3
freereqpool 9p-fid.3
lookupfid 9p-fid.3
lookupreq 9p-fid.3
removefid 9p-fid.3
removereq 9p-fid.3
9p-file 9p-file.3
File 9p-file.3
Tree 9p-file.3
alloctree 9p-file.3
closedirfile 9p-file.3
closefile 9p-file.3
createfile 9p-file.3
freetree 9p-file.3
hasperm 9p-file.3
opendirfile 9p-file.3
readdirfile 9p-file.3
removefile 9p-file.3
walkfile 9p-file.3
9p-intmap 9p-intmap.3
Intmap 9p-intmap.3
allocmap 9p-intmap.3
caninsertkey 9p-intmap.3
deletekey 9p-intmap.3
freemap 9p-intmap.3
insertkey 9p-intmap.3
lookupkey 9p-intmap.3
9p 9p.3
Srv 9p.3
dirread9p 9p.3
@ -39,41 +84,6 @@ fsunmount 9pclient.3
fsversion 9pclient.3
fswrite 9pclient.3
nsmount 9pclient.3
9pcmdbuf 9pcmdbuf.3
Cmdbuf 9pcmdbuf.3
lookupcmd 9pcmdbuf.3
parsecmd 9pcmdbuf.3
respondcmderror 9pcmdbuf.3
9pfid 9pfid.3
Fid 9pfid.3
Fidpool 9pfid.3
Req 9pfid.3
Reqpool 9pfid.3
allocfid 9pfid.3
allocfidpool 9pfid.3
allocreq 9pfid.3
allocreqpool 9pfid.3
closefid 9pfid.3
closereq 9pfid.3
freefidpool 9pfid.3
freereqpool 9pfid.3
lookupfid 9pfid.3
lookupreq 9pfid.3
removefid 9pfid.3
removereq 9pfid.3
9pfile 9pfile.3
File 9pfile.3
Tree 9pfile.3
alloctree 9pfile.3
closedirfile 9pfile.3
closefile 9pfile.3
createfile 9pfile.3
freetree 9pfile.3
hasperm 9pfile.3
opendirfile 9pfile.3
readdirfile 9pfile.3
removefile 9pfile.3
walkfile 9pfile.3
Dx addpt.3
Dy addpt.3
Pt addpt.3
@ -233,15 +243,11 @@ accept dial.3
announce dial.3
dial dial.3
dialparse dial.3
hangup dial.3
listen dial.3
netmkaddr dial.3
reject dial.3
dirread dirread.3
dirreadall dirread.3
Disk disk.3
disk disk.3
opendisk disk.3
ARROW draw.3
Image draw.3
_string draw.3
@ -473,14 +479,6 @@ targetid html.3
targetname html.3
toStr html.3
validitems html.3
Intmap intmap.3
allocmap intmap.3
caninsertkey intmap.3
deletekey intmap.3
freemap intmap.3
insertkey intmap.3
intmap intmap.3
lookupkey intmap.3
closeioproc ioproc.3
iocall ioproc.3
ioclose ioproc.3
@ -927,9 +925,6 @@ pwrite read.3
read read.3
readn read.3
write read.3
RGB readcolmap.3
readcolmap readcolmap.3
writecolmap readcolmap.3
regcomp regexp.3
regcomplit regexp.3
regcompnl regexp.3
@ -939,15 +934,6 @@ regexp regexp.3
regsub regexp.3
rregexec regexp.3
rregsub regexp.3
regcomp regexp9.3
regcomplit regexp9.3
regcompnl regexp9.3
regerror regexp9.3
regexec regexp9.3
regexp9 regexp9.3
regsub regexp9.3
rregexec regexp9.3
rregsub regexp9.3
rfork rfork.3
X509dump rsa.3
@ -993,11 +979,6 @@ runestrncmp runestrcat.3
runestrncpy runestrcat.3
runestrrchr runestrcat.3
runestrstr runestrcat.3
openscsi scsi.3
scsi scsi.3
scsicmd scsi.3
scsierror scsi.3
scsiready scsi.3
hmac_md5 sechash.3
hmac_sha1 sechash.3
md4 sechash.3
@ -1125,7 +1106,6 @@ threadint thread.3
threadintgrp thread.3
threadkill thread.3
threadkillgrp thread.3
threadlinklibrary thread.3
threadmain thread.3
threadnotify thread.3
threadpid thread.3

View file

@ -144,3 +144,35 @@ and
.I atol
accept octal and hexadecimal numbers in the style of C,
contrary to the ANSI specification.
.PP
.IR Atof ,
.IR strtod ,
.IR strtol ,
.IR strtoul ,
.IR strtoll ,
and
.IR strtoull
are not provided:
they are expected to be provided by the underlying system.
.PP
Because they are implemented in the fmt library,
.I charstod
and
.I strtod
are preprocessor macros defined as
.I fmtcharstod
and
.IR fmtstrtod .
.PP
To avoid name conflicts with the underlying system,
.IR atoi ,
.IR atol ,
and
.I atoll
are preprocessor macros defined as
.IR p9atoi ,
.IR p9atol ,
and
.IR p9atoll ;
see
.IR intro (3).

View file

@ -20,7 +20,7 @@ void *binalloc(Bin **bp, ulong size, int clr);
void *bingrow(Bin **bp, void *op, ulong osize,
.br
.B
ulong size, int clr);
ulong size, int clr);
.PP
.B
void binfree(Bin **bp);

View file

@ -2,7 +2,7 @@
.SH NAME
Bopen, Bfdopen, Binit, Binits, Brdline, Brdstr, Bgetc, Bgetrune, Bgetd, Bungetc, Bungetrune, Bread, Bseek, Boffset, Bfildes, Blinelen, Bputc, Bputrune, Bprint, Bvprint, Bwrite, Bflush, Bterm, Bbuffered \- buffered input/output
.SH SYNOPSIS
.ta \w'Biobuf* 'u
.ta \w'\fLBiobuf* 'u
.B #include <u.h>
.br
.B #include <libc.h>

View file

@ -13,12 +13,12 @@ complete, freecompletion \- file name completion
.ta \w' 'u +\w' 'u +\w' 'u +\w' 'u +\w' 'u
typedef struct Completion Completion;
struct Completion{
uchar advance; /* whether forward progress has been made */
uchar complete; /* whether the completion now represents a file or directory */
char *string; /* the string to advance, suffixed " " or "/" for file or directory */
int nmatch; /* number of files that matched */
int nfile; /* number of files returned */
char **filename; /* their names */
uchar advance;
uchar complete;
char *string;
int nmatch;
int nfile;
char **filename;
};
.fi

View file

@ -90,9 +90,26 @@ is not
.SH BUGS
The return values point to static data
whose content is overwritten by each call.
.br
.PP
Daylight Savings Time is ``normal'' in the Southern hemisphere.
.br
.PP
These routines are not equipped to handle non-\c
.SM ASCII
text, and are provincial anyway.
.PP
To avoid name conflicts with the underlying system,
.IR ctime ,
.IR localtime ,
.IR gmtime ,
.IR asctime ,
and
.I tm2sec
are preprocessor macros defined as
.IR p9ctime ,
.IR p9localtime ,
.IR p9gmtime ,
.IR p9asctime ,
and
.IR p9tm2sec ;
see
.IR intro (3).

View file

@ -1,6 +1,6 @@
.TH DIAL 3
.SH NAME
dial, hangup, announce, listen, accept, reject, netmkaddr, dialparse \- make and break network connections
dial, announce, listen, accept, reject, netmkaddr, dialparse \- make and break network connections
.SH SYNOPSIS
.B #include <u.h>
.br
@ -34,7 +34,10 @@ char* netmkaddr(char *addr, char *defnet, char *defservice)
.\" void freenetconninfo(NetConnINfo*)
.PP
.B
int dialparse(char *addr, char **net, char **unix, u32int *host, int *port)
int dialparse(char *addr, char **net, char **unix,
.br
.B
u32int *host, int *port)
.SH DESCRIPTION
For these routines,
.I addr
@ -310,3 +313,17 @@ bekremvax(void)
and
.I listen
return \-1 if they fail.
.SH BUGS
To avoid name conflicts with the underlying system,
.IR dial ,
.IR announce ,
.IR listen ,
.IR netmkaddr ,
and
.I reject
are preprocessor macros defined as
.IR p9dial ,
.IR p9announce ,
and so on;
see
.IR intro (3).

View file

@ -31,8 +31,9 @@ for the new file descriptor
Sets
.IR errstr .
.SH BUGS
.I Dup
is a macro for
.I p9dup
to avoid name conflicts with the Unix function; see
To avoid name conflicts with the underlying system,
.I dup
is a preprocessor macro defined as
.IR p9dup ;
see
.IR intro (3).

View file

@ -382,3 +382,8 @@ is nil, it restores the image to the default arrow.
.IR plumb (3),
.\" .IR cons (3),
.IR draw (3)
.SH BUGS
.I Etimer
and
.I estart
are unimplemented.

View file

@ -128,3 +128,14 @@ use the user's current path to locate
This is a clumsy way to deal with Unix's lack of
a union directory for
.BR /bin .
.PP
To avoid name conflicts with the underlying system,
.I exec
and
.I execl
are preprocessor macros defined as
.I p9exec
and
.IR p9execl ;
see
.IR intro (3).

View file

@ -93,3 +93,14 @@ non-empty messages.
Exit codes 97 through 99 are used by the thread library to signal
internal synchronization errors between the main program
and a proxy process that implements backgrounding.
.PP
To avoid name conflicts with the underlying system,
.I atexit
and
.I atexitdont
are preprocessor macros defined as
.I p9atexit
and
.IR p9atexitdont ;
see
.IR intro (3).

View file

@ -8,7 +8,7 @@ deflateinit, deflate, deflatezlib, deflateblock, deflatezlibblock, inflateinit,
.br
.B #include <flate.h>
.PP
.ta \w'ulongmm'u
.ta \w'\fLulongmm'u +\w'\fL 'u
.PP
.B
int deflateinit(void)
@ -17,37 +17,37 @@ int deflateinit(void)
int deflate(void *wr, int (*w)(void*,void*,int),
.br
.B
void *rr, int (*r)(void*,void*,int),
void *rr, int (*r)(void*,void*,int),
.br
.B
int level, int debug)
int level, int debug)
.PP
.B
int deflatezlib(void *wr, int (*w)(void*,void*,int),
.br
.B
void *rr, int (*r)(void*,void*,int),
void *rr, int (*r)(void*,void*,int),
.br
.B
int level, int debug)
int level, int debug)
.PP
.B
int deflateblock(uchar *dst, int dsize,
.br
.B
uchar *src, int ssize,
uchar *src, int ssize,
.br
.B
int level, int debug)
int level, int debug)
.PP
.B
int deflatezlibblock(uchar *dst, int dsize,
.br
.B
uchar *src, int ssize,
uchar *src, int ssize,
.br
.B
int level, int debug)
int level, int debug)
.PP
.B
int inflateinit(void)
@ -56,25 +56,25 @@ int inflateinit(void)
int inflate(void *wr, int (*w)(void*, void*, int),
.br
.B
void *getr, int (*get)(void*))
void *getr, int (*get)(void*))
.PP
.B
int inflatezlib(void *wr, int (*w)(void*, void*, int),
.br
.B
void *getr, int (*get)(void*))
void *getr, int (*get)(void*))
.PP
.B
int inflateblock(uchar *dst, int dsize,
.br
.B
uchar *src, int ssize)
uchar *src, int ssize)
.PP
.B
int inflatezlibblock(uchar *dst, int dsize,
.br
.B
uchar *src, int ssize)
uchar *src, int ssize)
.PP
.B
char *flateerr(int error)

View file

@ -370,4 +370,3 @@ main(...)
.SH DIAGNOSTICS
These routines return negative numbers or nil for errors and set
.IR errstr .
.SH BUGS

View file

@ -75,7 +75,7 @@ This library supports
of editable text in a single font on raster displays, such as in
.IR sam (1)
and
.IR rio (1).
.IR 9term (1).
Frames may hold any character except NUL (0).
Long lines are folded and tabs are at fixed intervals.
.PP

View file

@ -22,8 +22,10 @@ very least, unguessable numbers.
.I Genrandom
fills a buffer with bytes from the X9.17 pseudo-random
number generator. The X9.17 generator is seeded by 24
truly random bytes read from
.BR /dev/random .
truly random bytes read via
.I truerand
(see
.IR rand (3)).
.PP
.I Prng
uses the native

View file

@ -35,8 +35,13 @@ to
Sets
.IR errstr .
.SH BUGS
Defined as macros for
To avoid name conflicts with the underlying system,
.I getenv
and
.I putenv
are preprocessor macros defined as
.I p9getenv
and
.I p9putenv
to avoid name conflicts with Unix library calls.
.IR p9putenv ;
see
.IR intro (3).

View file

@ -23,8 +23,15 @@ bytes in the buffer provided.
.SH SOURCE
.B \*9/src/lib9/getwd.c
.SH "SEE ALSO"
.IR pwd (1),
.IR pwd (1)
.SH DIAGNOSTICS
On error, zero is returned.
.IR Errstr (3)
may be consulted for more information.
.SH BUGS
To avoid name conflicts with the underlying system,
.I getwd
is a preprocessor macro defined as
.IR p9getwd ;
see
.IR intro (3).

View file

@ -615,7 +615,7 @@ if(gengetwindow(display, "/tmp/winname",
\&...
.EE
.SH FILES
.BR /lib/font/bit " directory of fonts
.BR \*9/font/bit " directory of fonts
.SH SOURCE
.B \*9/src/libdraw
.SH "SEE ALSO"
@ -649,3 +649,7 @@ and might be more appropriately called
.B white
and
.BR black .
.PP
These manual pages contain many references to
the now-fictitious
.BR /dev/draw .

View file

@ -168,3 +168,18 @@ When
and
.I free
detect such corruption, they abort.
.PP
To avoid name conflicts with the system versions of these functions,
.IR malloc ,
.IR realloc ,
.IR calloc ,
and
.I free
are preprocessor macros defined as
.IR p9malloc ,
.IR p9realloc ,
.IR p9calloc ,
and
.IR p9free ;
see
.IR intro (3).

View file

@ -449,7 +449,6 @@ prints to a serial line rather than the screen, for obvious reasons.
is unusual in using a subfont rather than a font,
and in having no parameter to align the source.
.PP
.I Libmemdraw
is archived into
These functions are
archived into
.IR libdraw .

View file

@ -304,6 +304,6 @@ are in compressed image format
.IR window (3),
.IR draw (3)
.SH BUGS
.I Libmemlayer
is archived into
These functions
are archived into
.IR libdraw .

View file

@ -1,6 +1,6 @@
.TH MP 3
.SH NAME
mpsetminbits, mpnew, mpfree, mpbits, mpnorm, mpcopy, mpassign, mprand, strtomp, mpfmt,mptoa, betomp, mptobe, letomp, mptole, mptoui, uitomp, mptoi, itomp, uvtomp, mptouv, vtomp, mptov, mpdigdiv, mpadd, mpsub, mpleft, mpright, mpmul, mpexp, mpmod, mpdiv, mpcmp, mpextendedgcd, mpinvert, mpsignif, mplowbits0, mpvecdigmuladd, mpvecdigmulsub, mpvecadd, mpvecsub, mpveccmp, mpvecmul, mpmagcmp, mpmagadd, mpmagsub, crtpre, crtin, crtout, crtprefree, crtresfree, mpfactorial \- extended precision arithmetic
mpsetminbits, mpnew, mpfree, mpbits, mpnorm, mpcopy, mpassign, mprand, strtomp, mpfmt,mptoa, betomp, mptobe, letomp, mptole, mptoui, uitomp, mptoi, itomp, uvtomp, mptouv, vtomp, mptov, mpdigdiv, mpadd, mpsub, mpleft, mpright, mpmul, mpexp, mpmod, mpdiv, mpfactorial, mpcmp, mpextendedgcd, mpinvert, mpsignif, mplowbits0, mpvecdigmuladd, mpvecdigmulsub, mpvecadd, mpvecsub, mpveccmp, mpvecmul, mpmagcmp, mpmagadd, mpmagsub, crtpre, crtin, crtout, crtprefree, crtresfree \- extended precision arithmetic
.SH SYNOPSIS
.B #include <u.h>
.br
@ -108,6 +108,9 @@ void mpmod(mpint *b, mpint *m, mpint *remainder)
void mpdiv(mpint *dividend, mpint *divisor, mpint *quotient, mpint *remainder)
.PP
.B
mpint* mpfactorial(ulong n)
.PP
.B
int mpcmp(mpint *b1, mpint *b2)
.PP
.B
@ -162,9 +165,6 @@ void crtprefree(CRTpre *cre)
void crtresfree(CRTres *res)
.PP
.B
mpint* mpfactorial(ulong n)
.PP
.B
mpint *mpzero, *mpone, *mptwo
.SH DESCRIPTION
.PP
@ -441,6 +441,10 @@ Otherwise,
.BR "quotient = dividend/divisor" .
.BR "remainder = dividend % divisor" .
.TP
.I mpfactorial
returns factorial of
.IR n .
.TP
.I mpcmp
returns -1, 0, or +1 as
.I b1
@ -575,9 +579,5 @@ free
and
.I CRTres
structures respectively.
.PP
.I Mpfactorial
returns the factorial of
.IR n .
.SH SOURCE
.B \*9/src/libmp

View file

@ -7,7 +7,7 @@ muldiv, umuldiv \- high-precision multiplication and division
.B #include <libc.h>
.PP
.B
long muldiv(long a, long b, long c)
long muldiv(long a, long b, long c)
.PP
.B
ulong umuldiv(ulong a, ulong b, ulong c)

View file

@ -7,6 +7,7 @@ Mux, muxinit, muxrpc, muxthreads \- protocol multiplexor
.nf
.B
.ta +4n
.ft B
struct Mux
{
uint mintag;

View file

@ -207,7 +207,7 @@ is a common set that includes:
.PP
.RS 3n
.nf
.ta \w'\fLsys: write on closed pipe \fP'u \w'system call address argument out of range 'u
.ta \w'\fLsys: segmentation violation \fP'u +\w'process requested to exit 'u
\fINote\fP \fIMeaning\fP \fIUnix signal\fP
\fLinterrupt\fP user interrupt (DEL key) SIGINTR
\fLhangup\fP I/O connection closed SIGHUP
@ -217,6 +217,8 @@ is a common set that includes:
\fLsys: kill\fP process forced to exit SIGKILL
\fLsys: bus error\fP bus error SIGBUS
\fLsys: segmentation violation\fP segmentation violation SIGSEGV
\fLsys: write on closed pipe\fP write on closed pipe SIGPIPE
\fLsys: child\fP child wait status change SIGCHLD
.fi
.RE
.PP

View file

@ -1,18 +1,10 @@
.TH PRINT 3
.de EX
.nf
.ft B
..
.de EE
.fi
.ft R
..
.SH NAME
print, fprint, sprint, snprint, seprint, smprint, runesprint, runesnprint, runeseprint, runesmprint, vfprint, vsnprint, vseprint, vsmprint, runevsnprint, runevseprint, runevsmprint \- print formatted output
.SH SYNOPSIS
.B #include <utf.h>
.B #include <u.h>
.PP
.B #include <fmt.h>
.B #include <libc.h>
.PP
.ta \w'\fLchar* 'u
.B
@ -72,7 +64,10 @@ Rune* runevsmprint(Rune *format, va_list v)
writes text to the standard output.
.I Fprint
writes to the named output
file descriptor.
file descriptor:
a buffered form
is described in
.IR bio (3).
.I Sprint
places text
followed by the NUL character
@ -96,7 +91,7 @@ but will not place more than
bytes in
.IR s .
Its result is always NUL-terminated and holds the maximal
number of characters that can fit.
number of complete UTF-8 characters that can fit.
.I Seprint
is like
.IR snprint ,
@ -191,27 +186,26 @@ described below.
.PP
The numeric verbs
.BR d ,
.BR i ,
.BR u ,
.BR o ,
.BR b ,
.BR x ,
and
.B X
format their arguments in decimal, decimal,
unsigned decimal, octal, binary, hexadecimal, and upper case hexadecimal.
format their arguments in decimal,
octal, binary, hexadecimal, and upper case hexadecimal.
Each interprets the flags
.BR 0 ,
.BR h ,
.BR hh ,
.BR l ,
.BR u ,
.BR + ,
.BR - ,
.BR , ,
and
.B #
to mean pad with zeros,
short, byte, long, always print a sign, left justified, commas every three digits,
short, byte, long, unsigned, always print a sign, left justified, commas every three digits,
and alternate format.
Also, a space character in the flag
position is like
@ -221,12 +215,9 @@ If neither
short nor long is specified,
then the argument is an
.BR int .
If an unsigned verb is specified,
If unsigned is specified,
then the argument is interpreted as a
positive number and no sign is output;
space and
.B +
flags are ignored for unsigned verbs.
positive number and no sign is output.
If two
.B l
flags are given,
@ -249,8 +240,8 @@ for
.B o
conversion, the number is preceded by a
.B 0
if it doesn't already begin with one.
For non-zero numbers and
if it doesn't already begin with one;
for
.B x
conversion, the number is preceded by
.BR 0x ;
@ -345,7 +336,7 @@ conversions, trailing zeros are not removed.
.PP
The
.B s
verb copies a string
verb copies a NUL-terminated string
(pointer to
.BR char )
to the output.
@ -397,9 +388,7 @@ but that will change if pointers and integers are different sizes.
The
.B r
verb takes no arguments; it copies the error string returned by a call to
.IR strerror (3)
with an argument of
.IR errno.
.IR errstr (3).
.PP
Custom verbs may be installed using
.IR fmtinstall (3).
@ -414,12 +403,12 @@ void fatal(char *msg, ...)
char buf[1024], *out;
va_list arg;
out = vseprint(buf, buf+sizeof buf, "Fatal error: ");
out = seprint(buf, buf+sizeof buf, "Fatal error: ");
va_start(arg, msg);
out = vseprint(out, buf+sizeof buf, msg, arg);
va_end(arg);
write(2, buf, out-buf);
exit(1);
exits("fatal error");
}
.EE
.SH SEE ALSO
@ -438,9 +427,9 @@ the main difference is that
.B b
and
.B r
are not in ANSI and some
.B C9X
verbs are missing.
are not in ANSI and
.B u
is a flag here instead of a verb.
Also, and distinctly not a bug,
.I print
and friends generate
@ -449,8 +438,8 @@ rather than
.SM ASCII.
.PP
There is no
.BR runeprint ,
.BR runefprint ,
.IR runeprint ,
.IR runefprint ,
etc. because runes are byte-order dependent and should not be written directly to a file; use the
UTF output of
.I print

Some files were not shown because too many files have changed in this diff Show more