Apostila C da UFMG - Universidade do Minho
Apostila C da UFMG - Universidade do Minho
Apostila C da UFMG - Universidade do Minho
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