Poking through the example code of SDFS, I saw the following:
static ArduinoOutStream cout(Serial); // F stores strings in flash to save RAM cout << F("\ntype any character to start\n");
What exactly is << doing in this case? Moreover, F seems to never be defined prior to this. This seems like a useful trick, but I don't understand how it works.
full code available here: https://github.com/greiman/SdFs/blob/master/examples/SdInfo/SdInfo.ino