c - 如何在Linux C编程中读取文件中的某些特定行并在控制台中打印它们

标签 c linux printf

我在文件中写入了两行新行。新行将附加到该文件中。如何将这两行新行打印到控制台。

您能给我一些关于这方面的例子吗?

流程如下:

  1. fd = open(文件, O_WRONLY | O_APPEND, 0666);
  2. ret = read(0, buf, 100);
  3. write(file, buf, strlen(buf));

  4. 问题是第四个进程。如何读取刚刚写入文件的新行,而不是该文件中的旧内容。下面是我打印全部内容的代码。

    FILE *fptr;
    char chr;
    fptr = fopen(file, "r");
    if (fptr == NULL)
    {
        perror("open");
        exit(1);
    }
    chr = fgetc(fptr);
    while(chr != EOF) {
        printf("%c", chr);
        chr = fgetc(fptr);
    }
    clearerr (fptr);
    fclose(fptr);
    

最佳答案

如果你想读回刚刚写入的数据,那么你可以使用ftell来获取你在文件中的位置然后写入,然后fseek重新定位到相同的位置指向并阅读

关于c - 如何在Linux C编程中读取文件中的某些特定行并在控制台中打印它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33571172/

相关文章:

c - 如何读取文本文件

c++ - 如何用 clang 构建 clang?

c - 如果 SIGSEGV 则转储核心(在 C 中)?

c - 地址的值(value)。给出异常(exception)

c - 我的二进制文件中的这些额外字节是什么?

c++ - cuda 将用户定义的结构传递给内核失败

linux - 是否可以覆盖您正在处理的文件?

regex - Shell 脚本 Sed - 如何仅在第一次出现字符串时读取文件并写入另一个文件?

c - 程序在NetBeans中运行时无法输入数据

printf - 如何使用 printf 在字符串末尾附加空格?