Инвертировать файл не используя дополнительные файлы - C (СИ)
Формулировка задачи:
По идее это так:
но почему то всегда зацикливается. В чем ошибка? В определении "курсора" в файле?
#include <stdio.h> #include <stdlib.h> #include <unistd.h> int main(void) { int file = open("1.txt", 0666); char a, b; int i = 0; while (read(file, &a, 1) != 0) { printf("ololo"); lseek(file, i*sizeof(int), SEEK_END); read(file, &b, 1); write(file, &a, 1); lseek(file, i*sizeof(int), SEEK_SET); write(file, &b, 1); } close(file); return 0; }
Решение задачи: «Инвертировать файл не используя дополнительные файлы»
textual
Листинг программы
sizeFile = filelength(fileno(pFile));
Объяснение кода листинга программы
- В первой строке кода определяется переменная
sizeFile
, которая содержит размер файла в байтах. Для этого используется функцияfilelength()
, которая принимает в качестве аргумента файловый дескрипторfileno(pFile)
. Файловый дескрипторpFile
открывает файл, с которым будет работать программа. - Вторая строка кода не приведена, поэтому здесь нечего объяснять.
- В третьей строке кода также не приведена переменная
pFile
, поэтому здесь нечего объяснять. - В четвертой строке кода не приведена функция
fileno()
, поэтому здесь нечего объяснять. - В пятой строке кода не приведена функция
close()
, поэтому здесь нечего объяснять.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д