读取文件中的行数

时间:2012-04-22 22:59:18

标签: c linux file io

我需要计算文件中的行数,但是,我必须这样做 “简单”功能,例如:fopenfscanffgets ......等等。

意思是我不能这样做:

int calculateLines(char *filename)
 {
     FILE *myFile;
     char c;
     int myLines = 0;

     myFile = fopen(filename, "r");

     if(myFile == NULL)
         return 0;

     while ((c = fgetc(f)) != EOF)
         if(c == '\n')
             myLines++;

     fclose(f);

     if(c != '\n')
         myLines++;

     return myLines;
 }

为此,我只能使用系统调用readwritecloseopen& fork

到目前为止,我认为:

  • 使用opensomeResult = wrapper_open(argv[1],O_RDONLY,0);
  • 打开文件
  • read一行一行读取:我可以以某种方式操纵读取一行一行吗?我试过检查它的教程然而空手而归。

1 个答案:

答案 0 :(得分:2)

你无法真正与read一起阅读。相反,您将读入数据的(可能包含任意数量的行,可能包含一些部分行)。计算该块中的换行符,然后重复读取/计数过程,直到到达文件末尾。