Read one line of data
#include <getln.h>
int getln2(&ss,&sa,&cont,&clen,sep);
substdio ss;
stralloc sa;
char *cont;
unsigned int clen;
int sep;
getln2 reads a line of characters, terminated by a sep character, from ss.
The line is returned in two pieces. The first piece is stored in sa. The second piece is cont, a pointer to clen characters inside the ss buffer. The second piece must be copied somewhere else before ss is used again.
If getln2 sees end-of-input before it sees sep, it sets clen to 0 and does not set cont. It puts the partial line into sa.
getln2 normally returns 0. If it runs out of memory, or encounters an error from ss, it returns -1, setting errno appropriately.
stralloc(3), substdio(3), getln(3)