read
Diferenças
Aqui você vê as diferenças entre duas revisões dessa página.
| — | read [2023/09/12 16:14] (atual) – criada - edição externa 127.0.0.1 | ||
|---|---|---|---|
| Linha 1: | Linha 1: | ||
| + | ====== Função read ====== | ||
| + | |||
| + | Sintaxe: | ||
| + | |||
| + | '' | ||
| + | |||
| + | ---- | ||
| + | |||
| + | |||
| + | A função **read** realiza a leitura de dados do arquivo para a memória. Deve-se informar de qual descritor devem ser lidos os bytes. O descritor deve estar aberto com opção **O_RDONLY** ou **O_RDWR**. Os dados serão lidos a partir da posição corrente. | ||
| + | |||
| + | Deve-se informar o endereço onde a informação lida será armazenada. Também se informa para a função a quantidade de bytes que devem ser lidos do arquivo. É responsabilidade do programador reservar o espaço necessário para que a função não invada memória. | ||
| + | |||
| + | A função irá retornar a quantidade de bytes realmente lidos do arquivo. Caso ocorra algum erro na leitura do arquivo a função irá retornar -1 indicando erro. A descrição do erro estará disponível na variável [[errno]]. | ||
| + | |||
| + | Veja o exemplo: | ||
| + | |||
| + | <code c> | ||
| + | #include < | ||
| + | #include < | ||
| + | #include < | ||
| + | #include < | ||
| + | #include < | ||
| + | |||
| + | int main(int argc, char *argv[]) | ||
| + | { | ||
| + | int iFileDescriptor; | ||
| + | |||
| + | /* A constante _POSIX_PATH_MAX] indica o tamanho (de caracteres incluindo diretórios e subdiretórios) que um arquivo pode possuir. | ||
| + | Esta definido no arquivo limits.h */ | ||
| + | char sNome [_POSIX_PATH_MAX]; | ||
| + | | ||
| + | char aBuffer[100]; | ||
| + | |||
| + | | ||
| + | gets (sNome); | ||
| + | |||
| + | | ||
| + | if (iFileDescriptor < 0) | ||
| + | { | ||
| + | perror (argv[0]); | ||
| + | exit (errno); | ||
| + | } | ||
| + | | ||
| + | |||
| + | | ||
| + | |||
| + | /* deve-se passar sempre o endereço de memória da variável que vai receber os bytes lidos */ | ||
| + | | ||
| + | |||
| + | if (iQtdeLida < 0) | ||
| + | { | ||
| + | perror (argv[0]); | ||
| + | exit (errno); | ||
| + | } | ||
| + | |||
| + | | ||
| + | close (iFileDescriptor); | ||
| + | | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | --- // | ||