Eles só fazem "sentido" em octal. Aqui está a primeira linha usando um dos meus programas para converter:
$ hex 33204
33204: 33204 0100664 0x81b4 text "14" utf8 064
O 0100664
significa que é um arquivo normal com leitura / gravação (usuário), leitura / gravação (grupo) e somente leitura (outro). As páginas de manual chmod
devem mencionar isso, mas o primeiro bit (o valor S_IFREG
) não é mencionado - mesmo por POSIX - com a mesma freqüência que os outros sinalizadores. Aqui está um exemplo de um cabeçalho:
#define S_IFMT 00170000
#define S_IFSOCK 0140000
#define S_IFLNK 0120000
#define S_IFREG 0100000
#define S_IFBLK 0060000
#define S_IFDIR 0040000
#define S_IFCHR 0020000
#define S_IFIFO 0010000
#define S_ISUID 0004000
#define S_ISGID 0002000
#define S_ISVTX 0001000
Leitura adicional: