I'm calling the _Rread() C function from RPG (thus the cross-posting).
_RIOFB_T *_Rreadn (_RFILE *fp, void *buf, size_t size, int opts)
I'm trying to use the "locate mode" of the function by not passing the
void *buf parameter as I want to move the buffer myself ( via
fp->in_buf) in a later procedure.
However, my question: how can I determine if an error occurred?
According to the manual:
"If attempts are made to read beyond the last record in the file, the
num_bytes field is set to EOF. If it is unsuccessful, the num_bytes
field is set to a value less than size, and errno is changed. If you
are using device files and specify zero as the size, check errno to
determine if the function was successful."
But when in "locate mode" the manual says:
"size Specifies the number of bytes that are to be read and stored in
buf. If locate mode is used, this parameter is ignored."
So I can still detect EOF, but what about other errors?