Bufferoverloop: verschil tussen versies

Verwijderde inhoud Toegevoegde inhoud
PimTH (overleg | bijdragen)
k Zwevende start van zin verwijderd.
Haakje toegevoegd
 
Regel 4:
*Er worden data geschreven in een [[buffer (geheugen)|buffer]] die daarvoor te klein is. Dit veroorzaakt doorgaans onvoorspelbare problemen in de werking van het programma, tenzij de bufferoverloop nauwkeurig wordt ontworpen om een bepaald effect te bereiken.
 
Het eerste probleem kan zich voordoen wanneer een apparaat (bijvoorbeeld een computer) gegevens stuurt naar een ander apparaat (bijvoorbeeld een printer). De printer kan de ontvangen gegevens misschien bufferen voordat ze geprint worden, maar de grootte van de buffer is beperkt. Bij seriële communicatie is het gebruikelijk dat de ontvanger met ^Q en ^S aan de zender laat weten dat het zenden gepauzeerd moet worden.
 
Het tweede probleem doet zich voor als er een buffer van beperkte grootte gedeclareerd is, waarin gegevens regel voor regel gelezen worden, wanneer een regel langer blijkt te zijn dan de buffer. Een goed geschreven programma zorgt er in zo'n geval voor dat de regel bij ontvangst wordt opgesplitst.