What is the max buff size “int read(int fd, void* buf, size_t count)” will handle at single read operation.
It should be limited to available RAM.
I believe actual reads from SPI flash will occur at sector boundaries (4096 bytes) but internally it should just loop to fill your buffer no matter how many sectors it takes. It needs to be able to do this because reads that cross sector boundaries can also occur for small reads if the starting position is right before a sector boundary.
Thanks for the clarification