140 lines
6.1 KiB
HTML
140 lines
6.1 KiB
HTML
<head>
|
|
<title>proto(3) - Plan 9 from User Space</title>
|
|
<meta content="text/html; charset=utf-8" http-equiv=Content-Type>
|
|
</head>
|
|
<body bgcolor=#ffffff>
|
|
<table border=0 cellpadding=0 cellspacing=0 width=100%>
|
|
<tr height=10><td>
|
|
<tr><td width=20><td>
|
|
<tr><td width=20><td><b>PROTO(3)</b><td align=right><b>PROTO(3)</b>
|
|
<tr><td width=20><td colspan=2>
|
|
<br>
|
|
<p><font size=+1><b>NAME </b></font><br>
|
|
|
|
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
|
|
|
|
rdproto – parse and process a proto file listing<br>
|
|
|
|
</table>
|
|
<p><font size=+1><b>SYNOPSIS </b></font><br>
|
|
|
|
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
|
|
|
|
<tt><font size=+1>#include <u.h><br>
|
|
#include <libc.h><br>
|
|
#include <disk.h><br>
|
|
|
|
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
|
|
</font></tt>
|
|
<tt><font size=+1>typedef void Protoenum(char *new, char *old, Dir *d, void *a)<br>
|
|
|
|
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
|
|
</font></tt>
|
|
<tt><font size=+1>typedef void Protowarn(char *msg, void *a)<br>
|
|
|
|
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
|
|
</font></tt>
|
|
<tt><font size=+1>int rdproto(char *proto, char *root, Protoenum *enm,<br>
|
|
|
|
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
|
|
|
|
|
|
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
|
|
|
|
Protowarn *warn, void *a)<br>
|
|
|
|
</table>
|
|
|
|
</table>
|
|
</font></tt>
|
|
</table>
|
|
<p><font size=+1><b>DESCRIPTION </b></font><br>
|
|
|
|
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
|
|
|
|
<i>Rdproto</i> reads and interprets the named <i>proto</i> file relative to
|
|
the root directory <i>root</i>.
|
|
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
|
|
|
|
Each line of the <i>proto</i> file specifies a file to copy. Blank lines
|
|
and lines beginning with <tt><font size=+1>#</font></tt> are ignored. Indentation (usually tabs)
|
|
is significant, with each level of indentation corresponding to
|
|
a level in the file tree. Fields within a line are separated by
|
|
white space. The first field is the last path element in the destination
|
|
file tree. The second field specifies the permissions. The third
|
|
field is the owner of the file, and the fourth is the group owning
|
|
the file. The fifth field is the name of the file from which to
|
|
copy; this file is read from the current name space, not the source
|
|
file tree. All fields except the first are optional. Specifying
|
|
<tt><font size=+1>−</font></tt> for
|
|
permissions, owner, or group causes <i>rdproto</i> to fetch the corresponding
|
|
information from the file rather than override it. (This is the
|
|
default behavior when the fields are not present; explicitly specifying
|
|
<tt><font size=+1>−</font></tt> is useful when one wishes to set, say, the file owner without
|
|
setting the permissions.)
|
|
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
|
|
|
|
Names beginning with a <tt><font size=+1>$</font></tt> are expanded as environment variables.
|
|
If the first file specified in a directory is <tt><font size=+1>*</font></tt>, all of the files
|
|
in that directory are considered listed. If the first file is
|
|
<tt><font size=+1>+</font></tt>, all of the files are copied, and all subdirectories are recursively
|
|
considered listed. All files are considered relative to <i>root</i>.
|
|
|
|
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
|
|
|
|
For each file named by the <i>proto</i>, <i>enm</i> is called with <i>new</i> pointing
|
|
at the name of the file (without the root prefix), <i>old</i> pointing
|
|
at the name of the source file (with the root prefix, when applicable),
|
|
and <i>Dir</i> at the desired directory information for the new file.
|
|
Only the <tt><font size=+1>name</font></tt>, <tt><font size=+1>uid</font></tt>, <tt><font size=+1>gid</font></tt>, <tt><font size=+1>mode</font></tt>, <tt><font size=+1>mtime</font></tt>, and <tt><font size=+1>length</font></tt> fields
|
|
are guaranteed to be valid. The argument <i>a</i> is the same argument
|
|
passed to <i>rdproto</i>; typically it points at some extra state used
|
|
by the enumeration function.
|
|
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
|
|
|
|
When files or directories do not exist or cannot be read by <i>rdproto</i>,
|
|
it formats a warning message, calls <i>warn</i>, and continues processing;
|
|
if <i>warn</i> is nil, <i>rdproto</i> prints the warning message to standard
|
|
error.
|
|
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
|
|
|
|
<i>Rdproto</i> returns zero if <i>proto</i> was processed, –1 if it could not
|
|
be opened.<br>
|
|
|
|
</table>
|
|
<p><font size=+1><b>FILES </b></font><br>
|
|
|
|
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
|
|
|
|
<tt><font size=+1>/sys/lib/sysconfig/proto/</font></tt> directory of prototype files.<br>
|
|
<tt><font size=+1>/sys/lib/sysconfig/proto/portproto</font></tt> generic prototype file.<br>
|
|
|
|
</table>
|
|
<p><font size=+1><b>SOURCE </b></font><br>
|
|
|
|
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
|
|
|
|
<tt><font size=+1>/usr/local/plan9/src/libdisk/proto.c<br>
|
|
</font></tt>
|
|
</table>
|
|
<p><font size=+1><b>SEE ALSO </b></font><br>
|
|
|
|
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
|
|
|
|
<a href="../man8/mk9660.html"><i>mk9660</i>(8)</a>, Plan 9’s <i>mkfs</i>(8)<br>
|
|
|
|
</table>
|
|
|
|
<td width=20>
|
|
<tr height=20><td>
|
|
</table>
|
|
<!-- TRAILER -->
|
|
<table border=0 cellpadding=0 cellspacing=0 width=100%>
|
|
<tr height=15><td width=10><td><td width=10>
|
|
<tr><td><td>
|
|
<center>
|
|
<a href="../../"><img src="../../dist/spaceglenda100.png" alt="Space Glenda" border=1></a>
|
|
</center>
|
|
</table>
|
|
<!-- TRAILER -->
|
|
</body></html>
|