in sample_app/onvif_camera_mock/artifacts/wsdd/src/file_utils.c [209:250]
int read_loop(int fd, char *buf, size_t buf_len, int timeout_in_usec, int count_loop)
{
int n, len;
if( !buf || !buf_len )
{
errno = EINVAL;
return -1;
}
len = buf_len;
while( (len > 0) && (count_loop-- > 0) )
{
n = read(fd, buf, len);
if( (n == -1) && (errno != EAGAIN) )
return -1; // error reading
if( n > 0 )
{
buf += n;
len -= n;
}
if(len <= 0)
break;
usleep(timeout_in_usec);
}
return (buf_len - len); //return length of data reading
}