stat(2) 和 chmod(2) 中模式掩码名称的含义是什么?

Lek*_*eyn 6 permissions chmod stat history

stat 调用对于模式字段中的各个位具有一系列符号名称。从stat(2)手册页:

The following mask values are defined for the file mode component of
the st_mode field:

    S_ISUID     04000   set-user-ID bit
    S_ISGID     02000   set-group-ID bit (see below)
    S_ISVTX     01000   sticky bit (see below)

    S_IRWXU     00700   owner has read, write, and execute permission
    S_IRUSR     00400   owner has read permission
    S_IWUSR     00200   owner has write permission
    S_IXUSR     00100   owner has execute permission

    S_IRWXG     00070   group has read, write, and execute permission
    S_IRGRP     00040   group has read permission
    S_IWGRP     00020   group has write permission
    S_IXGRP     00010   group has execute permission

    S_IRWXO     00007   others (not in group) have read,  write,  and
                        execute permission
    S_IROTH     00004   others have read permission
    S_IWOTH     00002   others have write permission
    S_IXOTH     00001   others have execute permission
Run Code Online (Sandbox Code Playgroud)

我可以看到这S_IRWXUrwxu(用户的读取、写入和执行权限)的S_IRUSR组合,R以及和usr(用户的读取权限)的组合。同样适用于 Write 和 eXecute,以及 GRouP 和 OTHers。

S部分可能以stat功能命名。

但是那I部分呢,它是什么意思呢?它是否以各种S_ISDIR(“是目录”)宏为模型?

什么是VTX从部分S_ISVTX?我无法将这个缩写与“粘滞位”联系起来。

thr*_*rig 7

孩子们,这是历史时刻!史蒂文斯,“APUE”,第 4 章,第 10 节如此引用:

“S_ISVTX 位有一个有趣的历史......如果它被设置......程序文本的副本被保存在交换区......这导致程序下次更快地加载到内存......更高版本Unix 将此称为保存文本位,因此称为常量 S_ISVTX。”