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

标签 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++;

我的问题是:

if (myb == '\n')

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

最佳答案

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

你应该解引用指针,例如:

if (*buffer == '\n')

if (buffer[0] == '\n')

关于c程序使用系统调用计算文件中的行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9962068/

相关文章:

c - 而不是打印二进制数,我如何将它存储为变量?

c - 将可执行文件链接到可加载模块的可移植性如何?

c - 不同的语言如何在其标准库中实现排序?

比较 C 中具有任意位数的两个值

c - 状态功能栏-C

c - 显示该程序中相邻对的总数

c - xlib 将窗口推到其他窗口的后面

c - *使用指针反转数组的计数器*不起作用

不使用cmake编译源码

c - 当我在 int 中输入任何字符时,它会使其等于 8