Da müssen die betreffenden Blöcke zunächst mal per ioctl-Aufruf gelöscht werden, bevor sie neu "programmiert" werden können. Ansonsten erhält man eine "Überlagerung" von altem und neuem Inhalt, die natürlich NICHT mit dem gewünschten Inhalt übereinstimmt. Da gelöschte Blöcke in aller Regel alle Bits gesetzt haben, kann man derartige Schreibvorgänge zwar auch gezielt zur Änderung bestehender Inhalte benutzen, aber auch das ist heutzutage eher selten (weil bei NAND-Flash auch mit defekten Blöcken zu rechnen ist und beim Schreiben Wear-Leveling verwendet werden sollte, wo die neuen Inhalte dann an ganz anderen Stellen im physikalischen Speicher landen und eine weitere Abstraktionsschicht die Verbindung zwischen physischen und logischen Blöcken herstellt). Man kann bei noch nicht geschriebenen Bits diese zwar von logisch 1 auf 0 bringen, aber nicht umgekehrt. Nur dann, wenn da noch irgendein zusätzlicher Dateisystem-Treiber über den Flash-Speicher wacht (wie das z.B. beim UBIFS der Fall wäre), muß man sich nicht selbst um das Löschen kümmern.