michael_x:
Ausserdem wird physikalisch erst auf die Karte geschrieben, wenn ein 512 byte Block voll ist.
Aber nur wenn man nicht nach jedem einzelnem Schreibvorgang close() macht. close() schreibt automatisch den Puffer auf die Karte.
Beim Speichern im RAM musst du übrigens aufpassen, dass nicht viel RAM da ist. Ein unsigned long als Zeitstempel mit der Unix-Zeit und zwei ints sind 4 + 2 + 2 = 8 Bytes. Der UNO hat nur 2500 Bytes RAM. Davon gehen bei der SD Klasse schon mal 512 Bytes für einen internen Puffer drauf. Dann brauchst du noch Speicher für andere Sachen. Da bietet es sich an mit einer Funktion zu testen was noch frei ist.
Oder du verwendest wie gesagt genau diesen Puffer als Zwischenspeicher. Wird vielleicht vernünftiger sein als die Daten nochmal extra zu speichern.