fwide: stream orientation
buffering types: full buffered, line buffered, unbuffered
most implementation: stderr is unbuffered, terminal devices are linue buffered, others are full buffered
setbuf, setvbuf: let the system choose the buffer size and auto allocate the buffer
fflush
fopen, freopen, fdopen: r, r+, w, w+, a, a+
ferror, feof, clearerr
getc, fgetc, getchar, ungetc, putc, fputc, putchar: character-at-a-time I/O
fgets, gets, fputs, puts: line-at-a-time I/O (always use fgets and fputs)
fread, fwrite: direct I/O (won't work when across different systems, p146)
ftell, fseek, rewind, fgetpos, fsetpos
printf, fprintf, sprintf, snprintf, vprintf, vfprintf, vsprintf, vsnprintf (p149)
%[flags][fldwidth][precision][lenmodifier]convtype
scanf, fscanf, sscanf, vscanf, vfscanf, vsscanf (p151)
%[*][fldwidth][lenmodifier]convtype
fileno
tmpnam, tmpfile, tempnam, mkstemp (don't use mkstemp)