I am using FatFS library with an LPC2368 MCU to store data 8 times per second on an industrial grade 2GB microSD card. I use f_write to store the data with ocassional f_sync every 30 minutes. The file is closed using f_close when the user stops logging. Everything works normally. My question is on the working of f_write. I have read that fwrite (the normal linux equivalent) writes data to a buffer, and only writes to a disk on fsync or fclose. I can understand that model because computer have large amounts of ram and fwrite probably saves data to a buffer in memory and when an fsync is done it stores that data to the harddrive/ssd. But how does this model work with microcontrollers?. Using Elm Chan FatFS library if I keep on writing using f_write, and never f_sync, the file on the sdcard never gets updated with the latest data. Where is the data going in this case?. The MCU don't really have large amounts of RAM to buffer this data. Is it still writing to the sdcard, but not updating the file system to reflect the change?, and only updaing it on f_sync/f_close?. I set up a test where the data being written was also being sent to the terminal, and after recording 200MB of data I stopped but did not f_sync or f_close. The file on the SD card was empty. Where did the 200MB of data go?. Clearly the MCU doesn't have 200MB or ram to buffer it.