....
#include <sys/ioctl.h>
....
int get_osc_2(int fd, unsigned char *buf, int len)
{
int l;
int r;
char *cmd = "acquire1:point\n";
r = write(fd, cmd, strlen(cmd));
if (-1 == r) {
perror(" __ write()");
exit(1);
}
l = 0;
do {
r = ioctl(fd, FIONREAD, &l);
if (-1 == r) {
perror("ioctl(FIONREAD)\n");
exit(1);
}
} while (l != len);
r = read(fd, buf, l);
if (-1 == r) {
perror("read()");
exit(1);
}
if (!r) {
printf("something went wrong...\n");
exit(1);
}
printf("%d read\n", r);
return 0;
}