c程序使用系统调用计算文件中的行数

0 c

我正在编写一个 C 程序来使用系统调用(如 open()、read()、write() close() 来计算文件中的行数。我使用库调用 fopen()、fread()、fwrite() 所做的同一个程序运行良好,但仅使用系统调用,我就卡住了。

int fd1;    // file descriptor
fd1=open("f1.txt",O_RDONLY);   // opening file
read(fd1, buffer , 1);   // reading 1 byte from file
// now comparing
if (buffer == '\n')
line++;
Run Code Online (Sandbox Code Playgroud)

我的问题在这里:

如果 (myb == '\n')

我不知道如何比较缓冲区中的数据。我正在尝试使用缓冲区,但没有成功。请帮助!

MBy*_*ByD 5

您将指针 ( buffer) 与 char ( '\n') 进行了比较

您应该取消引用指针,例如:

if (*buffer == '\n')
Run Code Online (Sandbox Code Playgroud)

或者

if (buffer[0] == '\n')
Run Code Online (Sandbox Code Playgroud)