hpux man page for setbootpent

Query: setbootpent

OS: hpux

Section: 3x

Format: Original Unix Latex Style Formatted with HTML and a Horizontal Scroll Bar

getbootpent(3X) 														   getbootpent(3X)

NAME
getbootpent(), putbootpent(), setbootpent(), endbootpent(), parse_bp_htype(), parse_bp_haddr(), parse_bp_iaddr() - get or put bootptab entry
SYNOPSIS
Remarks These functions reside in libdc.a, and are linked using the option to the or command.
DESCRIPTION
These functions help a program read or modify a bootptab control) file one entry at a time. locates an entry in the file, or an alternate file specified to and returns a pointer to an array of objects of type that breaks the entry into separate data fields with preceding, or embedded, comment (text) lines. The structure is defined in and includes the following members: The file also defines the following data type and constants: The fields are described in the section below. The purpose of each function is as follows. When first called, returns a pointer to, and the number of elements in, an array of structures. The array holds the first entry in the file (or from an alternate file specified by a call to including leading, or embedded, comment lines. Each subsequent call returns a pointer to the next entry in the file so that successive calls can be used to search the entire file. If no file is currently in memory, reads the file prior to doing its work. The returned array exists in static space (malloc'd memory) overwritten by the next call (so previously returned pointers become invalid). However, each array element's pointer points to text in an in-memory copy of the file. This text is not altered by the next call (nor by changes to the file itself). Hence, it is possible to copy an entry's array in order to save it, as illustrated in below. The data remains valid until the next call of or If there are comments after the last entry, they are returned as a separate entry with no data parts. Opens the specified file for reading by reads a copy into memory, and closes the file (which as a side-effect releases any locks on the file; see lockf(2)). If the given path is a null pointer or a null string, opens and reads If the last file opened by (or implicitly by was a subsequent call to for the same file rewinds the file to the beginning, making visible any recent changes to the file, without first requiring a call to Frees the in-memory copy of the last file opened by or Writes (to the current location in the stream specified by bootpfile) the ASCII equivalent of the specified array of structures containing one file entry, and its leading, or embedded, comments (a total of numfields array elements). Entries are written in canonical form, meaning the entry name and each data field are on separate lines, data fields are preceded by one tab each, and each line except the last ends with ``:''. If numfields is less than or equal to zero, nothing is written. Converts a host address type from string to numeric format in the same manner as Converts a host (hardware, link level) address from string to binary format in the same manner as given a host address type The calling program's result, which must be an array containing at least elements, is modified to hold the host address binary value, and is modified to indicate the length in bytes of the resulting address. This can be used to compare two host addresses, independent of string representations. source is modified to point to the first char after the parsed address. Converts an internet address from string to binary format in the same manner as This can be used to compare two internet addresses, independent of string representations. The calling program's result is modified to hold the internet address binary value. source is modified to point to the first char after the parsed address. Field Definitions If is the associated text is one field from the current entry, either the name field or one of the tag fields. Null tag fields (two colons in a row) are ignored, not returned. If is or the associated text is one comment line or blank line from the file, either preceding the current entry or embedded in it follow- ing a data line that was continued with a backslash. The text is exactly as it appears in the file, including any whitespace appearing on a blank line, and there is no trailing newline. The returned array elements are in the same order as data fields and comment lines appear in the file. Entry field strings are of the form: with surrounding whitespace, if any, removed (see bootpd(1M) for the full description). Double quotes, and backslashes, can appear any- where in the field strings. Template entries (those referred to by other entries using fields) are not special. They can be managed like other entries. It is the calling program's responsibility to correctly manage the order of fields, fields, and ``@'' fields that override earlier field values.
RETURN VALUE
returns the number of valid array elements (one or more) upon successful completion. At the end of the input file it returns zero. If it cannot open or close the file it returns -1. If it encounters a memory allocation or map error, or a read error, it returns -2. returns zero if successful opening and reading the specified or default file. If it cannot open or close the file it returns -1. If it encounters a memory allocation or map error or a read error it returns -2. returns zero if successful freeing the memory for the current open file. If there is no current file it returns -1. If it cannot free the memory for the current file it returns -2. returns zero if successful writing an entry to the specified file, with the indication clear (see ferror(3S)). Otherwise it returns non- zero with set. In all cases above, if a failure is due to a failed system call, the value from the system is valid on return from the called function. returns if the hardware type string is unrecognized. returns zero if successful, otherwise non-zero in case of parsing error, invalid htype, or a host address type for which the address length is unknown; source is modified to point to the first illegal char (a NUL if the string is too short). The caller's bytes value is unmodi- fied, but result might be changed. returns zero if successful, otherwise non-zero, and source is modified to point to the first illegal char (a NUL if the string is null).
EXAMPLES
The following code fragment copies all data and comments from to a temporary copy of the file. It converts data entries to canonical form as a side effect, and prints to standard output the first field of each entry copied (should be the field name, assuming the entry doesn't start with a continuation line). #include <bootpent.h> FILE *newfilep; /* to write temp file */ bpp_t bp; /* read from file */ int field; /* current field number */ int fields; /* total in array for one entry */ if ((newfilep = fopen ("/tmp/bootptab", "w")) == (FILE *) NULL) { (handle error) } while ((fields = getbootpent (&bp)) > 0) { for (field = 0; field < fields; ++field) { if ((bp[field].bp_type) == BP_DATA) { (void) puts (bp[field].bp_text); break; } } if (putbootpent (bp, fields, newfilep)) { (handle error) } } if (fields < 0) /* error reading file */ { (handle error) } if (endbootpent()) { (handle error) } if (fclose (newfilep)) { (handle error) } The following code fragment saves a copy of a bootptab entry returned by #include <malloc.h> #include <string.h> #include <bootpent.h> bpp_t bpnew; unsigned size; size = fields *BP_SIZE; if ((bpnew = (bpp_t) malloc (size)) == BP_NULLP) { (handle error) } (void) memcpy ((void *)bpnew, (void *)bp, size);
WARNINGS
These functions are unsafe in multi-thread applications. Calling releases any locks on the file it opens.
AUTHOR
These functions were developed by HP.
FILES
control file for
SEE ALSO
bootpd(1M), errno(2), lockf(2), ferror(3S), fopen(3S), malloc(3C). getbootpent(3X)