unistd.h read()函数:如何逐行读取文件?

Wil*_*ill 8 c unix

我需要做的是使用unistd.h中的read函数逐行读取文件.我现在有这个:

n = read(fd, str, size);
Run Code Online (Sandbox Code Playgroud)

但是,这将读取到文件的末尾,或最大为字节数.有没有办法让我一次读一行,停在新行?这些线都是可变长度的.

我只允许这两个头文件:

#include <unistd.h>
#include <fcntl.h>
Run Code Online (Sandbox Code Playgroud)

练习的目的是逐行读取文件,并在读入时输出每一行.基本上,模仿fgets()和fputs()函数.

Ott*_*ger 7

您可以逐个字符地读取缓冲区并检查换行符号(\r\n对于Windows和\nUnix系统).