# usually behave like "head -n 1" a ret: 0 # never consume more than one line 1 2 ret: 0 # add a newline abc ret: 1 # print one newline on empty input ret: 1 # add a newline, return 1 when EOF xyz ret: 1 # print one newline on empty input, return 1 when EOF ret: 1 # large line of zero bytes 00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00100000 0a |.| 00100001 ret: 0