/* *pg_get_line_buf() * *Thishassimilarbehaviortopg_get_line(),andthencetofgets(), *exceptthatthecollecteddataisreturnedinacaller-supplied *StringInfobuffer.ThisisaconvenientAPIforcodethatjust *wantstoreadandprocessonelineatatime,withoutanyartificial *limitonlinelength. * *Returnstrueifalinewassuccessfullycollected(includingthe *caseofanon-newline-terminatedlineatEOF).Returnsfalseif *therewasanI/OerrorornodatawasavailablebeforeEOF. *(Checkferror(stream)todistinguishthesecases.) * *Inthefalse-resultcase,bufisresettoempty.
*/ bool
pg_get_line_buf(FILE *stream, StringInfo buf)
{ /* We just need to drop any data from the previous call */
resetStringInfo(buf); return pg_get_line_append(stream, buf, NULL);
}
/* Done if we have collected a newline */ if (buf->len > orig_len && buf->data[buf->len - 1] == '\n') returntrue;
/* Make some more room in the buffer, and loop to read more data */
enlargeStringInfo(buf, 128);
}
/* Check for I/O errors and EOF */ if (ferror(stream) || buf->len == orig_len)
{ /* Discard any data we collected before detecting error */
buf->len = orig_len;
buf->data[orig_len] = '\0'; returnfalse;
}
/* No newline at EOF, but we did collect some data */ returntrue;
}
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.10 Sekunden
(vorverarbeitet am 2026-08-06)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.