getln2(3) 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.