При выполнении ввода-вывода с использованием open () (не буферизуется библиотека, как fopen ()), вы хотите прочитать все данные в ОЗУ и затем обработать их.файл:
char *ptr = data;
while (*ptr) {
char *end = strchr(ptr, '\n');
if (!end) {
end = ptr + strlen(ptr);
}
*end = 0;
if (*ptr != '%') { /* a valid line */
int a, b, c, d;
if (4 != sscanf(ptr, " %d %d %d %d", &a, &b, &c, &d)) {
error();
}
/* do something with the values */
}
ptr = end + 1;
}