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')
我不知道如何比较缓冲区中的数据。我正在尝试使用缓冲区,但没有成功。请帮助!
您将指针 ( buffer) 与 char ( '\n') 进行了比较
您应该取消引用指针,例如:
if (*buffer == '\n')
Run Code Online (Sandbox Code Playgroud)
或者
if (buffer[0] == '\n')
Run Code Online (Sandbox Code Playgroud)