linux: getting umask of an already running process?

后端 未结 5 845
广开言路
广开言路 2021-02-01 17:04

How can I check the umask of a program which is currently running?

[update: another process, not the current process.]

5条回答
  •  说谎
    说谎 (楼主)
    2021-02-01 17:43

    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.

提交回复
热议问题