Fast line-by-line file reader
posix_fadvise conveniently provides a POSIX_FADV_SEQUENTIAL macro. Use it instead of a magic 1 and a comment.
The client doesn't know in advance whether the file is malformed or not. Better detect a malformed text file in run time:

    if (begin != buf_end)

A Bugs section of posix_fadvise man page says that


  In kernels before 2.6.6, if len was specified as 0, then this was interpreted literally as "zero bytes", rather than as meaning "all bytes through to the end of the file".


Since you already know the file size, better be safe and call it with fs.st_size instead of 0.
Move #include &lt;iosfwd&gt; to the cpp file. The client code doesn't need it. 
fastLineParser can be used in C code; just declare it as extern "C"
I see no reason to use C++ here at all. However, if you do so, do not use namespace std.
Finally, do you have any evidence that this is faster than fgets?