
Convert or print integers in octal format, with as many digits as are needed to display the largest, using leading zeroes as necessary.
as.octmode(x)# S3 method for octmode
as.character(x, …)
# S3 method for octmode
format(x, width = NULL, …)
# S3 method for octmode
print(x, …)
An object, for the methods inheriting from class "octmode"
.
NULL
or a positive integer specifying the minimum
field width to be used, with padding by leading zeroes.
further arguments passed to or from other methods.
Class "octmode"
consists of integer vectors with that class
attribute, used merely to ensure that they are printed in octal
notation, specifically for Unix-like file permissions such as
755
. Subsetting ([
) works too.
If width = NULL
(the default), the output is padded with
leading zeroes to the smallest width needed for all the non-missing
elements.
as.octmode
can convert integers (of type "integer"
or
"double"
) and character vectors whose elements contain only
digits 0-7
(or are NA
) to class "octmode"
.
There is a !
method and methods for |
and
&
:
these recycle their arguments to the length of the longer and then
apply the operators bitwise to each element.
These are auxiliary functions for file.info
.
hexmode
, sprintf
for other options in
converting integers to octal, strtoi
to convert octal
strings to integers.
# NOT RUN {
(on <- as.octmode(c(16, 32, 127:129))) # "020" "040" "177" "200" "201"
unclass(on[3:4]) # subsetting
## manipulate file modes
fmode <- as.octmode("170")
(fmode | "644") & "755"
# }
# NOT RUN {
umask <- Sys.umask(NA) # depends on platform
c(fmode, "666", "755") & !umask
# }
Run the code above in your browser using DataLab