reading line by line from file descriptor Project had those requirments: total of 10 functions used is the maximum each function has at maximum 25 lines reading as little data as possible with each call for reading using the BUFFER_SIZE that can be changed each returned line contains the newline character no memory leaks or undefined behaviour no matter the usage