U hebt een handvat nodig om gegevens op schijf aan te raken. In C is die handle een pointer die wordt geretourneerd door fopen. U specificeert een modus, krijgt een aanwijzer terug en gebruikt deze om gegevens in of uit te streamen. De meest voorkomende modi zijn r voor lezen, w voor schrijven en a voor toevoegen. Als u ze verkeerd begrijpt, kunt u gegevens kwijtraken of uw programma laten crashen.
Overweeg een eenvoudige taak: de cijfers 1 tot en met 10 naar een bestand schrijven.
Deze code opent een bestand met de naam out in de w -modus. Dit is een destructieve schrijfwijze. Als out niet bestaat, maakt het systeem het aan. Als het bestaat, wordt de oude inhoud schoongeveegd en vervangen. De variabele f bevat de bestandsaanwijzer. U gebruikt deze aanwijzer voor alle volgende bewerkingen. Als het bestand niet kan worden geopend – er zijn problemen met de rechten, de schijf is vol of het pad bestaat niet – wordt f NULL`.
De uitvoerfunctie hier is fprintf. Het werkt precies hetzelfde als printf, maar u geeft de bestandsaanwijzer als eerste argument door. Zodra u klaar bent, geeft fclose de bron vrij.
Bestandsfouten afhandelen in Main
Dit fragment is het eerste in de serie dat een foutcode van main retourneert. Wanneer fopen mislukt, bevat f een nulwaarde. In C resulteert nul in false. Al het andere is waar. De ! -operator keert die Booleaanse logica om.
if (!f) controleert of de pointer nul is. Het is gelijk aan ‘if (f == 0)’, maar het eerste is het standaardidioom. Als de voorwaarde waar is, retourneert het programma 1.
Op UNIX-systemen kunt u deze afsluitstatus rechtstreeks vanaf de opdrachtregel controleren. Het vertelt u of het script of programma succesvol is uitgevoerd of tegen een muur is gelopen. Als u weet hoe u deze fouten vroegtijdig kunt onderkennen, bespaart u later urenlang foutopsporing.
Waarom maken we ons druk over retourcodes als we gewoon kunnen crashen? Omdat gecontroleerd falen beter is dan ongedefinieerd gedrag. U kunt de fout registreren, de gebruiker op de hoogte stellen of het opnieuw proberen. Het programma stilletjes laten sterven is luie techniek.
De schoonheid van deze aanpak schuilt in de eenvoud ervan. Jij opent. Jij controleert. Jij schrijft. Jij sluit. Geen magie. Geen verborgen staat. Gewoon een pointer en een bestand.
Maar wat als u moet lezen wat u zojuist hebt geschreven? Of toevoegen aan een bestaand logboek zonder de geschiedenis te vernietigen? De modestring verandert alles. r laat het bestand met rust. a voegt toe aan het einde. ‘w’ blaast het weg. Kies zorgvuldig.

















