Diferenças
Aqui você vê as diferenças entre duas revisões dessa página.
pua:operacoes_em_meta-dados [2008/08/13 23:06] – created maziero | pua:operacoes_em_meta-dados [2008/08/13 23:15] (atual) – maziero | ||
---|---|---|---|
Linha 1: | Linha 1: | ||
+ | ====== Operações em meta-dados ====== | ||
+ | |||
+ | Nesta seção são apresentadas as principais funções para manipular meta-dados do sistema de arquivos, como: renomear arquivos, remover arquivos, consultar/ | ||
+ | |||
+ | ===== Renomear e remover ===== | ||
+ | |||
+ | <code c> | ||
+ | #include < | ||
+ | int rename (const char *oldname, const char *newname) | ||
+ | </ | ||
+ | |||
+ | Renomeia um arquivo do nome antigo '' | ||
+ | |||
+ | <code c> | ||
+ | #include < | ||
+ | int unlink (const char *filename) | ||
+ | |||
+ | #include < | ||
+ | int remove (const char *filename) | ||
+ | </ | ||
+ | |||
+ | Removem o arquivo indicado. | ||
+ | |||
+ | ===== Consultar atributos ===== | ||
+ | |||
+ | As funções abaixo servem para consultar os atributos de um arquivo. Todas elas retornam os atributos em um buffer de tipo '' | ||
+ | |||
+ | <code c> | ||
+ | #include < | ||
+ | #include < | ||
+ | #include < | ||
+ | int stat (const char *filename, struct stat *buf) | ||
+ | </ | ||
+ | |||
+ | Consulta os atributos de um arquivo indicado por '' | ||
+ | |||
+ | <code c> | ||
+ | #include < | ||
+ | #include < | ||
+ | #include < | ||
+ | int fstat (int filedes, struct stat *buf) | ||
+ | </ | ||
+ | |||
+ | Idem, para o arquivo indicado pelo descritor filedes. | ||
+ | |||
+ | <code c> | ||
+ | #include < | ||
+ | #include < | ||
+ | #include < | ||
+ | int lstat (const char *filename, struct stat *buf) | ||
+ | </ | ||
+ | |||
+ | Idem, mas não segue links simbólicos (se '' | ||
+ | |||
+ | Todas as funções acima retornam um buffer do tipo '' | ||
+ | |||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | As seguintes macros permitem verificar o tipo do arquivo, com base no campo '' | ||
+ | |||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | As constantes a seguir, definidas em '' | ||
+ | |||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | Para testar as permissões de um arquivo, basta realizar um '' | ||
+ | |||
+ | <code c> | ||
+ | if (buf.st_mode & S_IRUSR) | ||
+ | | ||
+ | </ | ||
+ | |||
+ | Obs: usar permissões em octal (0644) nos programas não é portável e prejudica sua legibilidade. Sempre que possível, devem ser usadas as permissões simbólicas. | ||
+ | |||
+ | ===== Alterar permissões ===== | ||
+ | |||
+ | <code c> | ||
+ | #include < | ||
+ | #include < | ||
+ | int chmod (const char *filename, mode_t mode) | ||
+ | </ | ||
+ | |||
+ | Ajusta as permissões do arquivo '' | ||
+ | |||
+ | <code c> | ||
+ | #include < | ||
+ | #include < | ||
+ | int fchmod (int filedes, int mode) | ||
+ | </ | ||
+ | |||
+ | Idem, sobre o arquivo aberto indicado pelo descritor '' | ||
+ | |||
+ | ===== Links físicos e simbólicos ===== | ||
+ | |||
+ | <code c> | ||
+ | #include < | ||
+ | int link (const char *oldname, const char *newname) | ||
+ | </ | ||
+ | |||
+ | Cria um link físico (//hard link//) para '' | ||
+ | |||
+ | <code c> | ||
+ | #include < | ||
+ | int symlink (const char *oldname, const char *newname) | ||
+ | </ | ||
+ | |||
+ | Cria um link simbólico (//symbolic link//) para '' | ||
+ | |||
+ | <code c> | ||
+ | #include < | ||
+ | int readlink (const char *filename, char *buffer, size_t size) | ||
+ | </ | ||
+ | |||
+ | Obtém o nome apontado pelo link simbólico '' | ||