代码之家  ›  专栏  ›  技术社区  ›  PR_01

如何使用C计算文件中的字节数?

  •  1
  • PR_01  · 技术社区  · 12 年前

    如何使用C计算文件的字节数?

    假设下面的文件包含一些代码(数据)。单词计数(wc)程序如何计算指定文件的确切字节数?

    例如,如果我们有以下文件:

    #include<stdio.h>
    
    int main(void) {
        printf("helloworld!");
    }
    

    我想知道如何创建一个可以计算文件中字节数的程序。

    使用Linux单词计数(wc),此文件的字节数为64

    cat helloworld.cpp | wc -c
    64
    
    1 回复  |  直到 12 年前
        1
  •  8
  •   πάντα ῥεῖ    12 年前

    摘自 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);