1

我需要计算文件中的行数,但是,我必须在没有“简单”函数(例如:fopen、、fscanf...fgets等)的情况下进行计算。

意思是我不能这样做:

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;
 }

为此,我只能使用系统调用read, write, close, open& fork

从我到目前为止所做的事情来看,我认为:

  • 打开文件opensomeResult = wrapper_open(argv[1],O_RDONLY,0);
  • 逐行阅读read:我可以以某种方式操纵阅读以逐行阅读吗?我试图检查它的教程但是空手而归。
4

1 回答 1

2

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

于 2012-04-22T23:06:25.827 回答