14.03.2015 Views

Apostila C da UFMG - Universidade do Minho

Apostila C da UFMG - Universidade do Minho

Apostila C da UFMG - Universidade do Minho

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

operação ou não. Com ferror() podemos ter acesso ao conteú<strong>do</strong> desta variável: ela retorna não zero se houve algum<br />

erro na última função de acesso ao arquivo.<br />

9.7.2 - rewind<br />

A função rewind() de protótipo<br />

void rewind (FILE *fp);<br />

retorna a posição corrente <strong>do</strong> arquivo para o início.<br />

9.7.3 - getw<br />

getw() lê no arquivo um inteiro. Seu protótipo é:<br />

int getw (FILE *fp);<br />

9.7.4 - putw<br />

putw() escreve um inteiro num arquivo. Protótipo:<br />

int putw (int i,FILE *fp);<br />

9.7.5 - fgets<br />

Para se ler uma string num arquivo podemos usar fgets() cujo protótipo é:<br />

char *fgets (char *str,int tamanho,FILE *fp);<br />

A string str li<strong>da</strong> deve ter seu tamanho determina<strong>do</strong> pelo programa<strong>do</strong>r.<br />

9.7.6 - fputs<br />

Protótipo:<br />

char *fputs (char *str,FILE *fp);<br />

Escreve uma string num arquivo.<br />

9.7.7 - fread<br />

Podemos escrever e ler blocos de <strong>da</strong><strong>do</strong>s. Para tanto temos as funções fread() e fwrite(). O protótipo de fread() é:<br />

unsigned fread (void *buffer,int numero_de_bytes,int count,FILE *fp);<br />

O buffer é a região de memória na qual serão armazena<strong>do</strong>s os <strong>da</strong><strong>do</strong>s li<strong>do</strong>s. O número de bytes é o tamanho <strong>da</strong> uni<strong>da</strong>de<br />

a ser li<strong>da</strong>. O conta<strong>do</strong>r indica quantas uni<strong>da</strong>des devem ser li<strong>da</strong>s. Isto significa que o número total de bytes li<strong>do</strong>s é:<br />

numero_de_bytes*count<br />

A função retorna o número de uni<strong>da</strong>des efetivamente li<strong>da</strong>s. Este número pode ser menor que o valor requis ita<strong>do</strong><br />

quan<strong>do</strong> o fim <strong>do</strong> arquivo for encontra<strong>do</strong>.<br />

9.7.8 - fwrite<br />

A função fwrite() funciona como a sua companheira fread(). Seu protótipo é:<br />

unsigned fwrite(void *buffer,int numero_de_bytes,int count,FILE *fp);<br />

9.7.9 - fseek<br />

Para se fazer procuras e acessos randômicos usa-se a função fseek(). Esta move o cursor no arquivo de um valor<br />

especifica<strong>do</strong>, a partir de um ponto especifica<strong>do</strong>. Seu protótipo é:<br />

int fseek (FILE *fp,long numbytes,int origem);<br />

O parâmetro de origem determina a partir de onde é que os bytes de movimentação serão conta<strong>do</strong>s. Os valores<br />

possíveis são defini<strong>do</strong>s por macros no arquivo cabeçalho e são:<br />

Nome Valor Significa<strong>do</strong><br />

SEEK_SET 0 Início <strong>do</strong> arquivo<br />

SEEK_CUR 1 Ponto corrente no arquivo<br />

SEEK_END 2 Fim <strong>do</strong> arquivo<br />

Ten<strong>do</strong>-se defini<strong>do</strong> a partir de onde irá se contar numbytes determina quantos bytes de deslocamento será <strong>da</strong><strong>do</strong> na<br />

posição atual.<br />

9.7.10 - remove<br />

Protótipo:<br />

int remove (char *nome_<strong>do</strong>_arquivo);<br />

Desmancha um arquivo especifica<strong>do</strong>.<br />

Pág. 66

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!