umask(...)
public
Returns the current umask value for
this process. If the optional argument is given, set the umask to that value and return the
previous value. Umask values are subtracted from the default
permissions, so a umask of
0222 would make a file read-only for everyone.
File.umask(0006)
File.umask
Show source
/*
* call-seq:
* File.umask() => integer
* File.umask(integer) => integer
*
* Returns the current umask value for this process. If the optional
* argument is given, set the umask to that value and return the
* previous value. Umask values are <em>subtracted</em> from the
* default permissions, so a umask of <code>0222</code> would make a
* file read-only for everyone.
*
* File.umask(0006) #=> 18
* File.umask #=> 6
*/
static VALUE
rb_file_s_umask(argc, argv)
int argc;
VALUE *argv;
{
int omask = 0;
rb_secure(2);
if (argc == 0) {
omask = umask(0);
umask(omask);
}
else if (argc == 1) {
omask = umask(NUM2INT(argv[0]));
}
else {
rb_raise(rb_eArgError, "wrong number of arguments");
}
return INT2FIX(omask);
}