Delen via


Tekst- en binaire stromen

Een tekststroom bestaat uit een of meer regels tekst die naar een tekstgeoriënteerde weergave kunnen worden geschreven, zodat ze kunnen worden gelezen. Wanneer het uit een tekststroom leest, leest het programma een nieuwe regel aan het einde van elke regel. Wanneer het naar een tekststroom schrijft, schrijft het programma een nieuwe regel om het einde van een regel aan te geven. De bibliotheekfuncties kunnen het aantal en de weergaven van tekens die tussen het programma en een tekststroom worden verzonden, wijzigen om te voldoen aan verschillende conventies tussen doelomgevingen voor het weergeven van tekst in bestanden.

De plaatsing binnen een tekststroom is beperkt. U kunt de huidige bestandspositieindicator verkrijgen door aan te roepen fgetpos of ftell. U kunt een tekststroom op een op deze manier verkregen positie of aan het begin of einde van de stream plaatsen door aan te roepen fsetpos of fseek. Elke andere positiewijziging wordt mogelijk niet ondersteund.

Voor maximale draagbaarheid mag het programma niet schrijven:

  • Lege bestanden.
  • Spatietekens aan het einde van een regel.
  • Gedeeltelijke regels (door de nieuwe regel aan het einde van een bestand weg te laten).
  • Andere tekens dan de afdrukbare tekens, nieuwe regels en horizontale tabs.

Als u deze regels volgt, komt de reeks tekens die u uit een tekststroom leest overeen met de reeks tekens die u hebt geschreven, of u nu schrijft als bytes of als meervoudige bytetekens. Anders kunnen de bibliotheekfuncties een bestand verwijderen dat u maakt als het bestand leeg is wanneer u het sluit. Ze kunnen ook tekens wijzigen of verwijderen die u naar het bestand schrijft.

Een binaire stroom bestaat uit een of meer bytes aan willekeurige informatie. U kunt de waarde die is opgeslagen in een willekeurig object naar een binaire stroom (bytegeoriënteerd) schrijven en precies lezen wat er in het object is opgeslagen toen u het schreef. De bibliotheekfuncties wijzigen niet de bytes die u verzendt tussen het programma en een binaire stream. Ze kunnen echter een willekeurig aantal NULL bytes toevoegen aan het bestand dat u schrijft met een binaire stroom. Het programma moet deze extra NULL bytes aan het einde van de binaire stroom verwerken.

Plaatsing binnen een binaire stroom is goed gedefinieerd, met uitzondering van plaatsing ten opzichte van het einde van de stroom. U kunt de huidige bestandspositieindicator op dezelfde manier verkrijgen en wijzigen als voor een tekststroom. De offsets die door ftell en fseek worden gebruikt, tellen bytes vanaf het begin van de stroom (byte nul), zodat bewerkingen met gehele getallen op deze offsets voorspelbare resultaten opleveren.

Een bytestroom behandelt een bestand als een reeks bytes. Binnen het programma ziet de stroom eruit als dezelfde reeks bytes, met uitzondering van de mogelijke wijzigingen die hierboven worden beschreven.

Zie ook

Bestanden en streams