我正在编写一个 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++;
我的问题是:
if (myb == '\n')
我不知道如何比较缓冲区中的数据。我正在尝试使用缓冲区,但没有成功。请帮忙!
最佳答案
您将指针 (buffer
) 与 char ('\n'
) 进行了比较
你应该解引用指针,例如:
if (*buffer == '\n')
或
if (buffer[0] == '\n')
关于c程序使用系统调用计算文件中的行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9962068/