svcadm(8)을 검색하려면 섹션에서 8 을 선택하고, 맨 페이지 이름에 svcadm을 입력하고 검색을 누른다.
reparse_add(3reparse)
Reparse Point Library Functions reparse_add(3REPARSE)
NAME
reparse_add, reparse_create, reparse_delete, reparse_deref,
reparse_free, reparse_init, reparse_parse, reparse_remove,
reparse_unparse, reparse_validate, rp_plugin_init - reparse point oper‐
ations
SYNOPSIS
cc [ flag ... ] file... -lreparse [ library ... ]
#include <sys/fs_reparse.h>
#include <rp_plugin.h>
int reparse_add(nvlist_t *list, const char *svc_type,
const char *string);
int reparse_create(const char *path, const char *string);
int reparse_delete(const char *path);
int reparse_deref(const char *svc_type, const char *svc_data,
const char *svc_data);
void reparse_free(nvlist_t *list);
nvlist_t *reparse_init(void);
int reparse_parse(const char *string, nvlist *list);
int reparse_remove(nvlist_t *list, const char *svc_type);
int reparse_unparse(const nvlist_t *list, char **stringp);
int reparse_validate(const char *string);
int rp_plugin_init(void);
DESCRIPTION
The reparse_add() function adds a service type entry to an nvlist with
a copy of string, replacing one of the same type if already present.
This routine will allocate and free memory as needed. It will fail with
a non-zero value from </usr/include/sys/errno.h> if it is unsuccessful.
The reparse_create() function create a reparse point at a given path‐
name; the string format is validated. This function will fail if path
refers to an existing file system object or an object named string
already exists at the given path. It will fail with a non-zero value
from </usr/include/sys/errno.h> if it is unsuccessful.
The reparse_delete() function delete a reparse point at a given path‐
name. It will fail if the pathname is not a symlink. It will fail with
a non-zero value from </usr/include/sys/errno.h> if it is unsuccessful.
The reparse_deref() function accepts and parses the symlink data, and
returns a type-specific piece of data in buf. The caller specifies the
size of the buffer provided via *bufsize; the routine will fail with
EOVERFLOW if the results will not fit in the buffer, in which case,
*bufsize will contain the number of bytes needed to hold the results.
It can fail with other non-zero values from </usr/include/sys/errno.h>
if it is unsuccessful.
The reparse_free() function frees all of the resources in the nvlist.
The reparse_init() function allocates an empty nvlist_t suitable for
libreparse.so routines to manipulate. This routine will allocate mem‐
ory, which must be freed by reparse_free(). It will return NULL on
failure.
The reparse_parse() function parses the specified string and populates
the nvlist with the svc_types and data from the string. The string
could be read from the reparse point symlink body. Existing or dupli‐
cate svc_type entries in the nvlist will be replaced. This routine will
allocate memory that must be freed by reparse_free(). It will fail with
a non-zero value from </usr/include/sys/errno.h> if it is unsuccessful.
The reparse_remove() function removes a service type entry from the
nvlist, if present. This routine will free memory that is no longer
needed. It will fail with a non-zero value from
</usr/include/sys/errno.h> if it is unsuccessful.
The reparse_unparse() function converts an nvlist back to a string for‐
mat suitable to write to the reparse point symlink body. The string
returned is in allocated memory and must be freed by the caller. It
will fail with a non-zero value from </usr/include/sys/errno.h> if it
is unsuccessful.
The reparse_validate() function checks the syntax of a reparse point as
it would be read from or written to the symlink body. It will fail with
a non-zero value from </usr/include/sys/errno.h> if it is unsuccessful.
The rp_plugin_init() function loads reparse point "plugins" from
/usr/lib/reparse to permit reparse point manipulation to start. It will
fail with a non-zero value from </usr/include/sys/errno.h> if it is
unsuccessful.
EXAMPLES
Example 1 Set up a reparse point.
A service would set up a reparse point this way:
nvlist_t *nvp;
char *text;
int rc;
nvp = reparse_init();
rc = reparse_add(nvp, "smb-ad", smb_ad_data);
rc = reparse_unparse(nvp, &text);
rc = reparse_create(path, text);
reparse_free(nvp);
free(text);
ATTRIBUTES
See attributes(7) for descriptions of the following attributes:
tab() box; cw(2.75i) |cw(2.75i) lw(2.75i) |lw(2.75i) ATTRIBUTE TYPEAT‐
TRIBUTE VALUE _ Interface StabilityCommitted _ MT-LevelSafe
SEE ALSO
libreparse(3LIB), attributes(7), reparsed(8)
Oracle Solaris 11.4 28 Jul 2020 reparse_add(3REPARSE)