da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.fp 5 CW
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.de Af
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.ds ;G \\*(;G\\f\\$1\\$3\\f\\$2
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.if !\\$4 .Af \\$2 \\$1 "\\$4" "\\$5" "\\$6" "\\$7" "\\$8" "\\$9"
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin..
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.de aF
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.ie \\$3 .ft \\$1
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.el \{\
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.ds ;G \&
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.nr ;G \\n(.f
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.Af "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" "\\$7" "\\$8" "\\$9"
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin\\*(;G
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.ft \\n(;G \}
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin..
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.de L
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.aF 5 \\n(.f "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" "\\$7"
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin..
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.de LR
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.aF 5 1 "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" "\\$7"
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin..
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.de RL
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.aF 1 5 "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" "\\$7"
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin..
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.de EX \" start example
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.ta 1i 2i 3i 4i 5i 6i
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.PP
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.RS
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.PD 0
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.ft 5
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.nf
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin..
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.de EE \" end example
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.fi
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.ft
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.PD
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.RE
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.PP
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin..
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.TH STRPERM 3
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.SH NAME
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinstrperm \- evaluate file permission expression
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.SH SYNOPSIS
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.L "int strperm(char* s, char** e, int p)"
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.SH DESCRIPTION
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.I strperm
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinapplies a file permission expression in the nul-terminated string
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.I s
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinto the initial file permission mask
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.IR p .
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinThe new permission mask is returned.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinIf
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.I e
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinnot 0 then
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.I *e
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinis set to point to the first unrecognized character in
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.IR s .
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.PP
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinA tape device specification is composed of one or more
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.I who-op-permission
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinterms separated by
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.BR , .
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.I who
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinselects portions of the permission bits and may be any combination of:
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.TP 3
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.B u
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinthe user permission bits;
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.TP
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.B g
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinthe group permission bits;
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.TP
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.B o
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinthe `other' permission bits;
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.TP
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.B a
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinall permission bits.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.PP
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinIf omitted, all permission bits are selected.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.I op
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinspecifies how the original permission
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.I p
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinis to be modified:
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.TP 3
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.B +
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.br
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.ns
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.B |
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinthe new bits are set in
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.IR p ;
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.TP 3
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.B \-
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinthe new bits are cleared in
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.IR p ;
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.TP
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.B &
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinthe new bits are and'd with
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.IR p ;
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.TP
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.B =
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinthe select bits in
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.I p
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinare set equal to the new bits
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.PP
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinA permission expression term may also be an octal number.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinOctal specifications are inherently non-portable.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinRefer to
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.IR chmod (1)
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinfor an explanation of this form.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin.SH "SEE ALSO"
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinchmod(1), ls(1), strmode(3)