Программа для определения размера любого файла

CCBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом практическом занятии мы научимся определять размер любого файла с использованием языка программирования C. Для этого мы будем использовать функции fseek() и ftell().

Примечание: вам нужно самостоятельно создать файл ~/project/main.c, чтобы практиковать программирование и узнать, как компилировать и запускать его с использованием gcc.

cd ~/project
## создать main.c
touch main.c
## скомпилировать main.c
gcc main.c -o main
## запустить main
./main

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL c(("C")) -.-> c/BasicsGroup(["Basics"]) c(("C")) -.-> c/ControlFlowGroup(["Control Flow"]) c(("C")) -.-> c/PointersandMemoryGroup(["Pointers and Memory"]) c(("C")) -.-> c/FunctionsGroup(["Functions"]) c(("C")) -.-> c/UserInteractionGroup(["User Interaction"]) c(("C")) -.-> c/FileHandlingGroup(["File Handling"]) c/BasicsGroup -.-> c/variables("Variables") c/ControlFlowGroup -.-> c/if_else("If...Else") c/PointersandMemoryGroup -.-> c/pointers("Pointers") c/PointersandMemoryGroup -.-> c/memory_address("Memory Address") c/FunctionsGroup -.-> c/function_declaration("Function Declaration") c/FileHandlingGroup -.-> c/write_to_files("Write To Files") c/FileHandlingGroup -.-> c/create_files("Create Files") c/FileHandlingGroup -.-> c/read_files("Read Files") c/UserInteractionGroup -.-> c/output("Output") subgraph Lab Skills c/variables -.-> lab-123313{{"Программа для определения размера любого файла"}} c/if_else -.-> lab-123313{{"Программа для определения размера любого файла"}} c/pointers -.-> lab-123313{{"Программа для определения размера любого файла"}} c/memory_address -.-> lab-123313{{"Программа для определения размера любого файла"}} c/function_declaration -.-> lab-123313{{"Программа для определения размера любого файла"}} c/write_to_files -.-> lab-123313{{"Программа для определения размера любого файла"}} c/create_files -.-> lab-123313{{"Программа для определения размера любого файла"}} c/read_files -.-> lab-123313{{"Программа для определения размера любого файла"}} c/output -.-> lab-123313{{"Программа для определения размера любого файла"}} end

Подключение заголовочных файлов

Начнем с подключения необходимых заголовочных файлов stdio.h и stdlib.h.

#include<stdio.h>
#include<stdlib.h>

Создание функции main()

Далее мы создадим функцию main(), которая является точкой входа в наш C-программу.

int main()
{
    return 0;
}

Определение переменных

Теперь мы определим необходимые переменные. Нам нужен указатель FILE для хранения файла. Также нам нужна переменная char для хранения текущего символа при чтении файла. Наконец, нам нужна целая переменная size для хранения размера файла.

FILE *fp;
char ch;
int size = 0;

Открытие файла

Теперь мы откроем файл с использованием функции fopen() и проверим, открылся ли файл успешно.

fp = fopen("MyFile.txt", "r");

if (fp == NULL)
{
    printf("\nFile unable to open...\n");
    return 1;
}
else
{
    printf("\nFile opened...\n");
}

Перемещение указателя файла

Теперь мы переместим указатель файла в конец файла с использованием функции fseek().

fseek(fp, 0, 2);

Получение размера файла

Далее мы получим текущую позицию указателя файла с использованием функции ftell() и сохраним ее в переменную size.

size = ftell(fp);

Вывод размера файла

Наконец, мы выведем размер файла с использованием функции printf().

printf("The size of given file is: %d bytes\n", size);

Закрытие файла

Теперь мы закончили с файлом, поэтому мы закроем его с использованием функции fclose().

fclose(fp);

Полный код программы

Вот полный код на C для определения размера любого файла.

#include <stdio.h>
#include <stdlib.h>

int main()
{
    FILE *fp;
    char ch;
    int size = 0;

    fp = fopen("MyFile.txt", "r");

    if (fp == NULL)
    {
        printf("\nFile unable to open...\n");
        return 1;
    }
    else
    {
        printf("\nFile opened...\n");
    }

    fseek(fp, 0, 2);
    size = ftell(fp);

    printf("The size of given file is: %d bytes\n", size);

    fclose(fp);

    return 0;
}

Резюме

В этом практическом занятии мы узнали, как определить размер любого файла в языке программирования C с использованием функций fseek() и ftell(). Мы рассмотрели следующие темы:

  • Подключение заголовочных файлов
  • Создание функции main()
  • Определение переменных
  • Открытие файла
  • Перемещение указателя файла
  • Получение размера файла
  • Вывод размера файла
  • Закрытие файла

Лучшим практическим подходом является всегда закрытие файла после его чтения или записи.