It would be nice if there was another buffered pipe type, or just another call in the API that would only transfer valid data in the FIFO. In the API one could request up to a number of bytes, but the function would only return the number of bytes that is in the FIFO.
For example, in the API, one could request 128 bytes of data from the pipe. However, there is are only 98 bytes in the pipe FIFO. Therefore, the API only returns 98 bytes, not the whole 128.
If this functionality is already available please advise. If there is a way for this functionality to be “faked” please advise.