Linux x86_64Arquivos & E/S#85
creat
Cria um novo arquivo (ou trunca um existente) e o abre para escrita — equivalente a open com O_CREAT|O_WRONLY|O_TRUNC.
Descrição
Mantida por compatibilidade histórica; código novo tipicamente usa `open`/`openat` diretamente com as flags explícitas, que é igualmente eficiente e mais expressivo.
Header:
fcntl.hman 2Assinatura
int creat(const char * pathname, mode_t mode);Parâmetros
| Parâmetro | Tipo | Descrição |
|---|---|---|
| pathname | const char * | Caminho do arquivo a criar/truncar. |
| mode | mode_t | Permissões do arquivo, se criado. |
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 |
Valor de retorno
Um novo descritor de arquivo em sucesso; -1 em erro, com errno definido.
Códigos de erro (errno)
- EACCES(13)
- Permissão negada.
- EEXIST(17)
- Arquivo já existe.
- EISDIR(21)
- É um diretório (operação exige um arquivo comum).
- ENOSPC(28)
- Sem espaço livre no dispositivo.
- EROFS(30)
- Sistema de arquivos somente leitura.