Работа с функцией fseek

Команда fseek в языке программирования C используется для установки позиции в файле. Можно сказать, что эта команда позволяет переместить "указатель" на определенное место в файле. Затем можно выполнять дальнейшие операции чтения или записи в заданную позицию.

Синтаксис команды fseek выглядит следующим образом:

<code>int fseek(FILE *stream, long int offset, int origin);
</code>

Аргументы, передаваемые в fseek:

  1. stream - указатель на объект типа FILE, представляющий открытый файл.
  2. offset - смещение, на которое нужно переместить файловый указатель. Оно может быть положительным или отрицательным числом.
  3. origin - начальная точка, с которой производится смещение указателя. Возможные значения этой переменной:
    1. SEEK_SET - начало файла
    2. SEEK_CUR - текущая позиция указателя
    3. SEEK_END - конец файла

Возвращаемое значение функции fseek:

Функция fseek возвращает 0 в случае успеха и ненулевое значение в случае ошибки.

Давайте рассмотрим несколько примеров использования команды fseek:

Пример 1: Перемещение указателя в начало файла

<pre class="hljs language-c">
#include <stdio.h>

int main()
{
    FILE *file = fopen("example.txt", "r");
    if (file == NULL)
    {
        printf("Не удалось открыть файл\n");
        return 1;
    }
    
    fseek(file, 0, SEEK_SET); // перемещение указателя в начало файла
    
    fclose(file);
    return 0;
}
</pre>

Пример 2: Перемещение указателя на заданное смещение относительно текущей позиции

<pre class="hljs language-c">
#include <stdio.h>

int main()
{
    FILE *file = fopen("example.txt", "r");
    if (file == NULL)
    {
        printf("Не удалось открыть файл\n");
        return 1;
    }
    
    fseek(file, 10, SEEK_CUR); // перемещение указателя на 10 байт вперед от текущей позиции
    
    fclose(file);
    return 0;
}
</pre>

Пример 3: Перемещение указателя на заданное смещение относительно конца файла

<pre class="hljs language-c">
#include <stdio.h>

int main()
{
    FILE *file = fopen("example.txt", "r");
    if (file == NULL)
    {
        printf("Не удалось открыть файл\n");
        return 1;
    }
    
    fseek(file, -5, SEEK_END); // перемещение указателя на 5 байт назад от конца файла
    
    fclose(file);
    return 0;
}
</pre>

В этих примерах мы открываем файл с помощью функции fopen и затем выполняем перемещение указателя при помощи функции fseek. Обратите внимание, что перед использованием функции fseek необходимо открыть файл в соответствующем режиме - для чтения или записи.

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

Похожие вопросы на: "fseek "