#define DATA_SIZE 1014 char oscgram[DATA_SIZE]; char *buf = oscgram; int brem = DATA_SIZE; /* number of bytes to read */ int r; /* osc is file descriptor, open()'ing is omitted */ while (1) { r = read(osc, buf, brem); if (-1 == r) { perror("read()"); break; } if (!r) { printf("something went wrong...\n"); break; } brem -= r; if (!brem) break; buf += r; }