C/fopen
< C
Esta función utilízase para abrir ficheiros. A chamada á función segue a sintaxe:
FILE * fopen(const char *ficheiro, const char *modo);
Onde:
ficheiro
é a ruta ao ficheiro, emodo
é o método de apertura escollido.
Modos
editarr
- Abrir un ficheiro en modo de só lectura. En caso de que non exista o ficheiro, a función devolverá un erro.
w
- Abrir un ficheiro en modo de só escritura. En caso de que o ficheiro non exista, crearase un ficheiro novo, e en caso de que exista substituirase o seu contido ─é dicir, bórrase a información existente─.
a
- Abrir un ficheiro de texto para amplialo dende o final do mesmo. Se o ficheiro non existe créase un novo. Se existe o punteiro, sitúase na marca de fin de ficheiro, para escribir a partir de aí.
r+
- Abrir un ficheiro en modo de lectura e escritura. O ficheiro ten que existir previamente.
w+
- Abrir un ficheiro en modo de lectura e escritura. En caso de que o ficheiro non exista, crearase un novo, e se existe substituirase o seu contido.
a+
- Abrir un ficheiro para amplialo a partires do final do mesmo, e para lelo. En caso de que o ficheiro non exista, créase un novo.
Control de erros
editarEn caso de ocorrer un erro durante o proceso de apertura dun ficheiro, a función devolverá NULL
. No seguinte exemplo pódese observar como se controla o posible caso de que haxa un erro durante a apertura dun ficheiro:
#include <stdio.h>
signed int main(void)
{
FILE * ficheiro = NULL;
ficheiro = fopen("exemplo", "r");
if(ficheiro == NULL)
{
perror("Non se puido abrir o ficheiro «exemplo»");
return -1; // Saída con erro.
}
printf("Tratábase de non ter ningún ficheiro chamado «exemplo»...\n");
printf("Veña, bórrao e volve executar o programa.\n");
fclose(ficheiro); // Dado que o programa remata aquí, pouco nos importa que falle o fclose().
return 0; // Saída correcta.
}
Supoñendo que no directorio en que se executa o ficheiro ─unha vez compilado, evidentemente─ non existe ningún ficheiro co nome «exemplo», o programa debería rematar coa mensaxe seguinte:
Non se puido abrir o ficheiro «exemplo»: non hai tal ficheiro ou directorio.
Véxase tamén
editar