std:: fopen
|
Défini dans l'en-tête
<cstdio>
|
||
|
std::
FILE
*
fopen
(
const
char
*
filename,
const
char
*
mode
)
;
|
||
Ouvre un fichier indiqué par filename et retourne un flux de fichier associé à ce fichier. mode est utilisé pour déterminer le mode d'accès au fichier.
Table des matières |
Paramètres
| filename | - | nom du fichier à associer au flux de fichier |
| mode | - | chaîne de caractères terminée par un caractère nul déterminant le mode d'accès au fichier |
Indicateurs d'accès aux fichiers
|
Chaîne de mode d'accès
au fichier |
Signification | Explication |
Action si le fichier
existe déjà |
Action si le fichier
n'existe pas |
|---|---|---|---|---|
| "r" | lecture | Ouvrir un fichier en lecture | lire depuis le début | retourne NULL et définit une erreur |
| "w" | écriture | Créer un fichier pour l'écriture | détruit le contenu | crée un nouveau |
| "a" | ajout | Ajouter à un fichier | écrit à la fin | crée un nouveau |
| "r+" | lecture étendue | Ouvrir un fichier en lecture/écriture | lire depuis le début | retourne NULL et définit une erreur |
| "w+" | écriture étendue | Créer un fichier pour lecture/écriture | détruit le contenu | crée un nouveau |
| "a+" | ajout étendu | Ouvrir un fichier pour lecture/écriture | écrit à la fin | crée un nouveau |
|
Le drapeau de mode d'accès
"b"
peut être spécifié optionnellement pour ouvrir un fichier
en mode binaire
. Ce drapeau n'a aucun effet sur les systèmes POSIX, mais sous Windows par exemple, il désactive le traitement spécial de
'
\n
'
et
'
\x1A
'
.
Dans les modes d'accès en ajout, les données sont écrites à la fin du fichier indépendamment de la position actuelle de l'indicateur de position du fichier. |
||||
| Le drapeau de mode d'accès "x" peut être ajouté optionnellement aux spécificateurs "w" ou "w+" . Ce drapeau force la fonction à échouer si le fichier existe, au lieu de l'écraser. (C++17) | ||||
| Le comportement est indéfini si le mode n'est pas l'une des chaînes listées ci-dessus. Certaines implémentations définissent des modes supplémentaires pris en charge (par exemple Windows ). | ||||
Valeur de retour
En cas de succès, retourne un pointeur vers l'objet qui contrôle le flux de fichier ouvert, avec les bits eof et error effacés. Le flux est entièrement tamponné à moins que filename ne fasse référence à un dispositif interactif.
En cas d'erreur, retourne un pointeur nul. POSIX requiert que errno soit défini dans ce cas.
Notes
Le format de filename est défini par l'implémentation, et ne fait pas nécessairement référence à un fichier (par exemple, il peut s'agir de la console ou d'un autre périphérique accessible via l'API du système de fichiers). Sur les plateformes qui les prennent en charge, filename peut inclure un chemin absolu ou relatif du système de fichiers.
Pour la dénomination portable des répertoires et fichiers, consultez la bibliothèque C++ filesystem ou boost.filesystem .
Exemple
#include <cstdio> #include <cstdlib> int main() { int is_ok = EXIT_FAILURE; FILE* fp = std::fopen("/tmp/test.txt", "w+"); if (!fp) { std::perror("File opening failed"); return is_ok; } int c; // Note: int, not char, required to handle EOF while ((c = std::fgetc(fp)) != EOF) // Standard C I/O file reading loop std::putchar(c); if (std::ferror(fp)) std::puts("I/O error when reading"); else if (std::feof(fp)) { std::puts("End of file reached successfully"); is_ok = EXIT_SUCCESS; } std::fclose(fp); return is_ok; }
Sortie :
End of file reached successfully
Voir aussi
|
ferme un fichier
(fonction) |
|
|
synchronise un flux de sortie avec le fichier actuel
(fonction) |
|
|
ouvre un flux existant avec un nom différent
(fonction) |
|
|
Documentation C
pour
fopen
|
|