1#include "pwf.h" 2#include <pthread.h> 3 4struct spwd *fgetspent(FILE *f) 5{ 6 static char *line; 7 static struct spwd sp; 8 size_t size = 0; 9 struct spwd *res = 0; 10 int cs; 11 pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, &cs); 12 if (getline(&line, &size, f) >= 0 && __parsespent(line, &sp) >= 0) res = &sp; 13 pthread_setcancelstate(cs, 0); 14 return res; 15} 16