Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
PROTO(3)		   Library Functions Manual		      PROTO(3)

NAME
       rdproto - parse and process a proto file	listing

SYNOPSIS
       #include	<u.h>
       #include	<libc.h>
       #include	<disk.h>

       typedef void Protoenum(char *new, char *old, Dir	*d, void *a)

       typedef void Protowarn(char *msg, void *a)

       int rdproto(char	*proto,	char *root, Protoenum *enm,
				Protowarn *warn, void *a)

DESCRIPTION
       Rdproto	reads and interprets the named proto file relative to the root
       directory root.

       Each line of the	proto file specifies a file to copy.  Blank lines  and
       lines beginning with # are ignored.  Indentation	(usually tabs) is sig-
       nificant,  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 ex-
       cept the	first are optional.  Specifying	- for permissions,  owner,  or
       group  causes  rdproto  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 - is useful when one
       wishes to set, say, the file owner without setting the permissions.)

       Names beginning with a are expanded as environment variables.   If  the
       first  file specified in	a directory is all of the files	in that	direc-
       tory are	considered listed.  If the first file is all of	the files  are
       copied,	and all	subdirectories are recursively considered listed.  All
       files are considered relative to	root.

       For each	file named by the proto, enm is	called with  new  pointing  at
       the  name  of  the  file	(without the root prefix), old pointing	at the
       name of the source file (with the root prefix,  when  applicable),  and
       Dir  at	the  desired directory information for the new file.  Only the
       name, uid, gid, mode, mtime, and	length fields  are  guaranteed	to  be
       valid.	The  argument  a is the	same argument passed to	rdproto; typi-
       cally it	points at some extra state used	by the enumeration function.

       When files or directories do not	exist or cannot	be read	by rdproto, it
       formats a warning message, calls	warn,  and  continues  processing;  if
       warn is nil, rdproto prints the warning message to standard error.

       Rdproto	returns	 zero  if  proto  was processed, -1 if it could	not be
       opened.

FILES
       /sys/lib/sysconfig/proto/
	      directory	of prototype files.

       /sys/lib/sysconfig/proto/portproto
	      generic prototype	file.

SOURCE
       /src/libdisk/proto.c

SEE ALSO
       mk9660((1)), Plan 9's mkfs(8)

								      PROTO(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=proto&sektion=3&manpath=FreeBSD+Ports+15.0.quarterly>

home | help