blob: b12f7409cc3de34c49089d031e8e46bcee81dc97 (
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
|
#define i_implement
#include <stc/cstr.h>
#include <stc/algo/raii.h>
#define i_key_str
#include <stc/cvec.h>
#include <errno.h>
cvec_str read_file(const char* name)
{
cvec_str vec = cvec_str_init();
c_with (FILE* f = fopen(name, "r"), fclose(f))
c_with (cstr line = cstr_null, cstr_drop(&line))
while (cstr_getline(&line, f))
cvec_str_push(&vec, cstr_clone(line));
return vec;
}
int main(void)
{
int n = 0;
c_with (cvec_str vec = read_file(__FILE__), cvec_str_drop(&vec))
c_foreach (i, cvec_str, vec)
printf("%5d: %s\n", ++n, cstr_str(i.ref));
if (errno)
printf("error: read_file(" __FILE__ "). errno: %d\n", errno);
}
|