ТОР 5 статей: Методические подходы к анализу финансового состояния предприятия Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века Характеристика шлифовальных кругов и ее маркировка Служебные части речи. Предлог. Союз. Частицы КАТЕГОРИИ:
|
Использование системных вызовов.Для выполнения данной практической работы требуется установленный дистрибутив Linux или Unix. Порядок выполнения работы: 1. Изучить состав и назначение библиотеки <fcntl.h>. 2. Создать 2 файла с именами source и log 3. Записать в файл source текст. 4. Написать программу, которая будет выполнять следующие действия: · Используя функцию fchmod, обрабатывающую файловые дескрипторы, изменить права доступа к файлам так, чтобы source был доступен только для чтения, а log – только для записи. Примечание: реализовать возможность проверки на соответствующие атрибуты файлов и, в случае их наличия, не выполнять команду их изменения. · При помощи системного вызова read считать из созданного файла source текст и вывести его на экран с указанием количества считанных байт. · При помощи системного вызова write записать в файл log сведения о количестве считанных байт выполненной операции чтения в формате: Считано из файла <Имя файла>: <Число байт> байт · Аналогичным образом дописать следующей строкой в файл log считанный текст из файла source, но с обратный порядком слов и без знаков препинания. 5. Модернизировать программу таким образом, чтобы название файла со считываемым текстом можно было задавать вручную. Пример 1: #include <stdio.h> #include <fcntl.h> #include <string.h> int main(int argc, char *argv[]) { int input_file = 0; //Файловая переменная input_file = open("input.txt", O_RDONLY); //Открытие файла для чтения char buff[64]; //Буфер для чтения memset(buff, 0, 64); //Заполнение буфера нулями int count = 0; //Переменная для хранения количества байт count = read(input_file, buff, 64); //Чтение из файла close(input_file); //Закрытие файловый дескриптор printf("Содержимое файла: %s. Всего прочитано: %i", buff, count); return 0; } Пример 2: #include <stdio.h> #include <fcntl.h> #include <string.h> int main(int argc, char *argv[]) { char buff[2048]; int file = open("1.txt", O_RDWR); //Открытие файла read(file, buff, 2048); //Вывод содержимого printf("Содержимое файла:rn%s", buff); memset(buff, 0, 2048); //Обнуление буфера printf("Введите строку, которую следует дописать в файл"); scanf("%s", buff); //Считывание строки write(file, buff, strlen(buff)); //Запись в файл close(file); } В отчёте необходимо предоставить текст программы из пункта 5, содержимое файлов source и log. Не нашли, что искали? Воспользуйтесь поиском:
|