English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Biblioteca padrão do C - <stdio.h>
Função da biblioteca C FILE *freopen(const char *filename, const char *modo, FILE *(stream) com um novo nome de arquivo filename com o fluxo aberto fornecido fluxo Associar, ao mesmo tempo, fechar o arquivo antigo no fluxo.
Aqui está a declaração da função freopen().
FILE *freopen(const char *filename, const char *modo, FILE *(stream)
Modo | Descrição |
---|---|
"r" | Abre um arquivo para leitura. O arquivo deve existir. |
"w" | Cria um arquivo vazio para escrita. Se o nome do arquivo for o mesmo que um arquivo existente, o conteúdo existente será excluído e o arquivo será tratado como um novo arquivo vazio. |
"a" | Anexa a um arquivo. As operações de escrita adicionam dados ao final do arquivo. Se o arquivo não existir, ele será criado. |
"r+" | Abre um arquivo para atualização, que pode ser lido e escrito. O arquivo deve existir. |
"w+" | Cria um arquivo vazio para leitura e escrita. |
"a+" | Abre um arquivo para leitura e escrita. |
Se o arquivo for aberto com sucesso, a função retorna um ponteiro que aponta para o objeto que identifica o fluxo. Caso contrário, retorna um ponteiro nulo.
O exemplo a seguir demonstra o uso da função freopen().
#include <stdio.h> int main () { FILE *fp; printf("O texto é redirecionado para stdout\n"); fp = freopen("file.txt", "w+", stdout); printf("O texto é redirecionado para file.txt\n"); fclose(fp); return(0); }
Vamos compilar e executar o programa acima, isso enviará as seguintes linhas para a saída padrão STDOUT, porque inicialmente não abrimos a saída padrão:
O texto é redirecionado para stdout
ao chamar freopen() Depois, ele associará a saída padrão STDOUT ao arquivo file.txtqualquer coisa que escrevamos na saída padrão STDOUT será escrita no file.txt, então o arquivo file.txt terá o seguinte conteúdo:
O texto é redirecionado para file.txt
Agora vamos usar o seguinte programa para visualizar o conteúdo do arquivo acima:
#include <stdio.h> int main () { FILE *fp; int c; fp = fopen("file.txt","r"); while(1) { c = fgetc(fp); if( feof(fp) ) { break ; } printf("%c", c); } fclose(fp); return(0); }