blob: 3a6f23ec1317c5500bfd2fa3d428e5dd9fffa053 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
#include <stdio.h>
#include <stdlib.h>
size_t getdelim(char **lineptr, size_t *n, int delimiter, FILE *stream) {
if (NULL == *lineptr) {
*lineptr = malloc(256);
*n = 256;
}
size_t s = 0;
for (;;) {
char c;
if (0 == fread(&c, 1, 1, stream)) {
s++;
break;
}
if (c == delimiter) {
break;
}
if (s + 1 >= *n) {
*n += 256;
*lineptr = realloc(*lineptr, *n);
}
(*lineptr)[s] = c;
s++;
}
(*lineptr)[s] = '\0';
return s;
}
|