2014-09-01 46 views
0

如何計算使用C的文件的字節數?如何使用C來計算文件中的字節數?

假設下面的文件包含一些代碼(數據)。字數(wc)程序如何計算指定文件的確切字節數?

因此,舉例來說,如果我們有如下的文件:

#include<stdio.h> 

int main(void) { 
    printf("helloworld!"); 
} 

我想知道如何創建一個程序,可以計算在該文件的字節數。

字節的該文件的數量是64使用Linux字計數(WC)

cat helloworld.cpp | wc -c 
64 
+0

看看stat()和家人。 – PurpleAlien 2014-09-01 23:01:13

+4

'getchar()'函數(宏)從標準輸入中讀取一個字節。計算在獲取EOF之前可以調用多少次,並告訴您標準輸入流中有多少個字節。更通用的代碼版本會有一個函數'int byte_count(FILE * fp)'來完成這項工作。注意非常大的文件(2 GiB或更多);您可能需要與「int」不同的類型作爲計數的返回值。如果你知道文件名,你可以考慮使用['stat()'](http://pubs.opengroup.org/onlinepubs/9699919799/functions/stat.html)。 – 2014-09-01 23:08:45

回答

5

作爲摘自stat(2)樣品

char filename[] = "helloworld.cpp"; 
struct stat sb; 

if (stat(filename, &sb) == -1) { 
    perror("stat"); 
} 
else { 
    printf("File size:    %lld bytes\n", 
      (long long) sb.st_size); 
} 

備選地可以使用getc()功能

int bytes; 
for(bytes = 0; getc(stdin) != EOF; ++bytes); 
printf("File size:    %d bytes\n",bytes); 
相關問題