Is there any way to read larger chunks with read()? Normally, it will return any number of bytes it pleases less than or equal to the number provided. Currently, when reading from a serial port at 38400 baud, that means I'm only reading five or fewer bytes at a time.

I'd prefer to read() less often. I've checked the read and fcntl man pages, but I couldn't find anything to do this.

I know it's possible when recv()ing from a socket, but I don't have a socket. Or is there some way to open up a serial port as a socket?