Linux x86_64Sistema de arquivos#133
mknod
Cria um arquivo especial (dispositivo de bloco/caractere), FIFO, ou arquivo comum, com um inode 'em branco'.
Descrição
Criar dispositivos de bloco/caractere exige CAP_MKNOD; criar FIFOs (S_IFIFO) não exige privilégio especial e é a base da função `mkfifo(3)`.
Header:
sys/stat.hman 2Assinatura
int mknod(const char * pathname, mode_t mode, dev_t dev);Parâmetros
| Parâmetro | Tipo | Descrição |
|---|---|---|
| pathname | const char * | Caminho do novo arquivo especial. |
| mode | mode_t | Tipo de arquivo (S_IFCHR, S_IFBLK, S_IFIFO, S_IFSOCK) combinado com permissões. |
| dev | dev_t | Número de dispositivo (major/minor), relevante apenas para S_IFCHR/S_IFBLK. |
Registradores (x86_64)
| Registrador | Papel | Argumento |
|---|---|---|
| rax | número da syscall (chamada) / valor de retorno (após SYSCALL) | — |
| rdi | argumento 1 | pathnameconst char * |
| rsi | argumento 2 | modemode_t |
| rdx | argumento 3 | devdev_t |
Valor de retorno
0 em sucesso; -1 em erro, com errno definido.
Códigos de erro (errno)
- EACCES(13)
- Permissão negada.
- EEXIST(17)
- Arquivo já existe.
- ENOENT(2)
- Arquivo ou diretório inexistente.
- ENOTDIR(20)
- Não é um diretório.
- EPERM(1)
- Operação não permitida (falta de privilégio).
- EROFS(30)
- Sistema de arquivos somente leitura.