Форум программистов, компьютерный форум CyberForum.ru

С под Linux

Войти
Регистрация
Восстановить пароль
 
Wladua
0 / 0 / 0
Регистрация: 05.10.2015
Сообщений: 23
#1

Поменять в файле местами группы байт - C Linux

16.12.2016, 13:34. Просмотров 394. Ответов 4
Метки нет (Все метки)

Всем добрый день,не могу сделать одну лабораторную работу
Цель работы:

Изучение принципов и средств управления файлами в Linux-приложениях.

Для выполнения лабораторной работы необходимо написать и отладить

программу на языке С согласно варианту задания.

2. Задание к лабораторной работе

Выполнение работы заключается в написании и отладке программы по одному

из вариантов задания. Ввод текста программы и его редактирование

производится с помощью любого текстового редактора LINUX (vi, ed и др.).

Компиляция программы осуществляется с помощью следующего вызова:

$ gcc имя_программы

На выходе получается исполняемый файл "a.out" или список сообщений об

ошибках.

Задание:
Написать программу, меняющую в файле местами группы байт с 21-го по 28-й и с 33-

го по 40-й. Имя файла вводится в командной строке.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.12.2016, 13:34     Поменять в файле местами группы байт
Посмотрите здесь:

C Linux Дан текстовый файл. Поменять четные и нечетные строки местами
Вывести информацию о файле C Linux
Поменять местами первое слово со вторым C Linux
C Linux Вывести из файла указанный диапазон байт на std вывод
Группы в линуксе C Linux
C Linux Замена букв в файле
C Linux Поиск строки в файле
Количество слов в файле C Linux
Что такое null-байт? C Linux
C Linux Процесс 1 открывает файл и порождает потомка 2, после этого пишет в файл N байт, закрывает его и завершается
C Linux Файл, длина которого 8 блоков по 512 байт каждый
C Linux Поменять местами наибольший и наименьший элементы массива

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nimazzzy
Заблокирован
16.12.2016, 13:53     Поменять в файле местами группы байт #2
Цитата Сообщение от Wladua Посмотреть сообщение
не могу сделать одну лабораторную работу
Что именно не получается?
Это задание очень легко делается с помощью функций open, lseek, read, write, close.
Evg
Эксперт CАвтор FAQ
17385 / 5623 / 350
Регистрация: 30.03.2009
Сообщений: 15,402
Записей в блоге: 26
16.12.2016, 16:07     Поменять в файле местами группы байт #3
Цитата Сообщение от Wladua Посмотреть сообщение
Задание:
Написать программу, меняющую в файле местами группы байт с 21-го по 28-й и с 33-
го по 40-й
Алгоритм примерно такой же, как и в детских загадках
1. Открываем холодильник
2. Вытаскиваем слона
3. Кладём жирафа
4. Закрываем холодильник
Wladua
0 / 0 / 0
Регистрация: 05.10.2015
Сообщений: 23
18.12.2016, 21:23  [ТС]     Поменять в файле местами группы байт #4
В общем такая проблема,я не знаю как написать
Humanoid
Почетный модератор
9818 / 3816 / 162
Регистрация: 12.06.2008
Сообщений: 11,425
18.12.2016, 22:32     Поменять в файле местами группы байт #5
Цитата Сообщение от Wladua Посмотреть сообщение
В общем такая проблема,я не знаю как написать
Вам выше уже написали, что нужно делать.
Функция open() открывает файл.
Функция lseek() переходит в файле на указанную вами позицию.
Функция read() читает кусок данных из файла.
Функция write() записывает кусок данных в файл.
Функция close() закрывает файл.

Могу предложить вместо lseek/read и lseek/write использовать pread() и pwrite().
Функция pread() читает кусок данных из файла по указанному смещению.
Функция pwrite() записывает кусок данных в файл по указанному смещению.

Порядок действий вам тоже подсказали. Проще говоря: заводите два буфера, открываете файл, читаете в каждый из буферов свою группу байт, записываете первый буфер на место второго, а второй на место первого. Закрываете файл.
Yandex
Объявления
18.12.2016, 22:32     Поменять в файле местами группы байт
Ответ Создать тему
Опции темы

Текущее время: 13:07. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru