Инвертировать файл не используя дополнительные файлы - 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(), поэтому здесь нечего объяснять.