How can I check the umask of a program which is currently running?
[update: another process, not the current process.]
From the GNU C Library manual:
Here is an example showing how to read the mask with
umask
without changing it permanently:mode_t read_umask (void) { mode_t mask = umask (0); umask (mask); return mask; }
However, it is better to use
getumask
if you just want to read the mask value, because it is reentrant (at least if you use the GNU operating system).
getumask
is glibc-specific, though. So if you value portability, then the non-reentrant solution is the only one there is.
Edit: I've just grepped for ->umask
all through the Linux source code. There is nowhere that will get you the umask of a different process. Also, there is no getumask
; apparently that's a Hurd-only thing.