C言語では、ファイルのサイズをどのように判断しますか?

C言語では、fseekとftell関数を使用して、ファイルのサイズを判断することができます。

最初に、ファイルを開くためにfopen関数を使用し、ファイルポインタをファイルの末尾に移動させ、その後ftell関数を使用してファイルポインタの現在位置(つまりファイルサイズ)を取得し、最後にfclose関数を使用してファイルを閉じます。

以下のコードはサンプルです。

#include <stdio.h>

int main() {
    FILE *file;
    long size;

    // 打开文件
    file = fopen("test.txt", "rb");
    if (file == NULL) {
        printf("无法打开文件\n");
        return 1;
    }

    // 定位到文件末尾
    fseek(file, 0, SEEK_END);

    // 获取文件大小
    size = ftell(file);
    printf("文件大小为 %ld 字节\n", size);

    // 关闭文件
    fclose(file);

    return 0;
}

fseek関数の第2引数はオフセットであり、現在位置からのバイト数を表します。この例では、オフセットを0に設定し、現在位置から移動しないことを示します。第3引数のSEEK_ENDはファイルの末尾からオフセットを計算することを示します。

また、ファイルのサイズを取得するにはstat関数を使用することもできます。以下はstat関数を使用したサンプルコードです:

#include <stdio.h>
#include <sys/stat.h>

int main() {
    struct stat st;
    long size;

    // 获取文件状态
    if (stat("test.txt", &st) != 0) {
        printf("无法获取文件状态\n");
        return 1;
    }

    // 获取文件大小
    size = st.st_size;
    printf("文件大小为 %ld 字节\n", size);

    return 0;
}

この例では、まず、struct stat構造体変数stを定義し、その後、stat関数を使用してファイルの状態を取得し、その結果をstに保存します。最後に、ファイルのサイズを取得するためにst.st_sizeにアクセスできます。この方法には、sys/stat.hヘッダーファイルを含める必要があります。

bannerAds