Reads a line from the stream `f', storing it at location pointed to by `p'. Stops when a linefeed is
encountered, or `max' bytes have been read. The end of line is handled by detecting the right
combination of characters for the platform. This supports CR-LF (DOS/Windows), LF (Unix), and CR (Mac)
formats. However, the trailing carriage return is not included in the returned string, in order to
provide easy code portability across platforms. If you need the carriage return, use pack_fread() and/or
pack_getc() instead.
Note: This function internally may make calls to pack_ungetc, so you cannot use pack_ungetc directly
afterwards.
Example:
char buf[256];
...
while (pack_fgets(buf, sizeof(buf), input_file)) {
/* Process input line. */
}
fclose(input_file);