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

时间:2015-11-06 16:22:07

标签: c linux printf

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

你能告诉我一些这方面的例子吗?

流程如下:

  1. fd = open(file , 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);
    

1 个答案:

答案 0 :(得分:1)

如果你想回读你刚才写的数据,那么你可以使用ftell获取你在文件中的位置然后写,然后fseek重新定位到同一个点并读取