Из руководства библиотеки GNU C:
Вот пример, показывающий, как читать маску с помощью umask
без постоянного изменения:
mode_t
read_umask (void)
{
mode_t mask = umask (0);
umask (mask);
return mask;
}
Тем не менее, лучше использовать getumask
, если вы просто хотите прочитать
значение маски, потому что оно реентерабельное (по крайней мере, если вы используете
Операционная система GNU).
getumask
, однако, зависит от glibc. Так что, если вы цените мобильность, то решение, не входящее в систему, является единственным.
Редактировать: Я только что нашел ->umask
во всем исходном коде Linux. Нет нигде, что принесло бы вам маску другого процесса. Также нет getumask
; по-видимому, это только для Херда.