[cc]mc |
.hd sprot$ "set protection attributes for a file" 07/04/83
[cc]mc
integer function sprot$ (name, attr)
character name (ARB), attr (ARB)
.sp
Library:  vswtlb (standard Subsystem library)
.fs
'Sprot$' is used to set the protection attributes (read, write, truncate)
for a given file.
Both owner and nonowner attributes, specified in convenient notation,
may be set on a single call.
.sp
The first argument is the full pathname of the file whose protection
attributes are to be changed.
The name must be in the usual Subsystem format in an EOS-terminated
string.
.sp
The second argument is a protection attribute specification string.
Each attribute (read, write, truncate) is represented by a single
letter ("r", "w", and "t", respectively).
In addition, the letter "a" indicates all attributes;
it is equivalent to "twr".
In the specification string, owner protection attributes appear
first, followed by a slash and nonowner protection attributes.
[cc]mc |
If no permissions are to be confered to nonowners, the slash
[cc]mc
may be omitted.
If all attributes are omitted, neither owners nor nonowners may
access the named file in any way.
Examples: "a/r" confers all permissions for owners, read-only for
nonowners; "rw/rw" confers read/write permission for everyone,
"/w" confers write permission for nonowners and no permission
for owners.
.sp
The function return is OK if the attempt to set protection attributes
succeeded, ERR otherwise.
The error condition is returned if (1) the 'attr' string contains an
illegal protection key; (2) the named file could not be reached;
(3) Primos returns an error code during the attempt to set the
file's attributes.
.im
Protection keys in the form of two three-bit strings in the
UFD entry for a file are maintained by the Primos routine
SATR$$.
'Sprot$' first scans the protection attributes string, building
a bit-string representation of the attributes as it goes.
A call to 'getto' then sets the current directory to the parent
of the named file.
SATR$$ is then invoked to set the file's protection attributes.
[cc]mc |
Finally, the Primos routine AT$HOM is used to attach back
[cc]mc
to the home directory.
.ca
[cc]mc |
getto, index, Primos at$hom, Primos satr$$
[cc]mc
.sa
follow (2), getto (2), chat (1), lf (1)