HPlogo HP-UX Reference Volume 4 of 5 > a

acltostr(3C)

» 

Technical documentation

Complete book in PDF

 » Table of Contents

 » Index

NAME

acltostr() — convert access control list (ACL) structure to string form (HFS File Systems only)

SYNOPSIS

#include <acllib.h>

char *acltostr(int nentries, const struct acl_entry acl[], int form);

Obsolescent Interface

int acltostr_r( int nentries, const struct acl_entry acl[], int form, char *strbuf, int length);

Remarks:

To ensure continued conformance with emerging industry standards, features described in this manual entry are likely to change in a future release.

DESCRIPTION

acltostr() converts an access control list from structure form to string representation. acltostr() takes a pointer to the first element of an array of ACL entries (acl), containing the indicated number (nentries) of valid entries (zero or more), and the output form desired (FORM_SHORT or FORM_LONG). It returns a pointer to a static string (overwritten by the next call), which is a symbolic representation of the ACL, ending in a null character. The output forms are described in acl(5). In long form, the string returned contains newline characters.

A user ID of ACL_NSUSER and a group ID of ACL_NSGROUP are both represented by %. As with the ls command (see ls(1)), if an entry contains any other user ID or group ID value not listed in /etc/passwd or /etc/group, acltostr() returns a string equivalent of the ID number instead.

Just as in routines that manage the /etc/passwd file, acltostr() truncates user and group names to eight characters.

Note: acltostr() is complementary in function to strtoacl().

Obsolescent Interface

acltostr_r() converts access control list (ACL) structure to string form.

APPLICATION USAGE

acltostr() is thread-safe. It is not async-cancel-safe.

RETURN VALUE

If acltostr() succeeds, it returns a pointer to a null-terminated string. If nentries is zero or less, the string is of zero length. If nentries is greater than NACLENTRIES (defined in <sys/acl.h>), or if form is an invalid value, the call returns (char *) NULL .

If acltostr_r() succeeds, it returns 0. If it fails, it returns -1 and sets errno. If nentries is zero or less, the string is of zero length.

ERRORS

[EINVAL]

strbuf equals to NULL, or nentries is greater than NACLENTRIES (defined in <sys/acl.h>), or form is not one of the valid forms, or length of strbuf is too short.

[ERANGE]

length is less than or equal zero.

EXAMPLES

The following code fragment reads the ACL on file /users/ggd/test and prints its short-form representation.

#include <stdio.h> #include <acllib.h> int nentries; struct acl_entry acl [NACLENTRIES]; if ((nentries = getacl ("/users/ggd/test", NACLENTRIES, acl)) < 0) error (...); fputs (acltostr (nentries, acl, FORM_SHORT), stdout);

WARNINGS

The value returned by acltostr() is a pointer into a buffer, the contents of which are overwritten by subsequent calls to acltostr() by the same thread.

acltostr_r() is an obsolescent interface supported only for compatibility with existing DCE applications. New multithreaded applications should use acltostr().

DEPENDENCIES

acltostr() is only supported on HFS file system on standard HP-UX operating system.

AUTHOR

acltostr() was developed by HP.

FILES

/etc/passwd /etc/group

© Hewlett-Packard Development Company, L.P.