- •Исследование системных вызовов для работы с файлами
- •Содержание
- •1. Цель работы
- •2. Краткие теоретические сведения
- •2.1. Cистемные вызовы
- •2.1.1. Открытие файла, системный вызов open
- •2.1.2. Чтение файла, системный вызов read
- •2.1.2. Запись в файл, системный вызов write
- •2.1.3. Закрытие файла, системный вызов close
- •2.1.4. Создание файла, системный вызов creat
- •2.2. Ошибки при выполнении системных вызовов
- •2.3. Генерация случайных чисел
- •2.4. Пример программы
- •3. Задания на лабораторную работу
- •4. ТехническиЕ средствА для выполнения работы
- •5. Порядок выполнения лабораторной работы
- •6. Содержание отчета о выполнении лабораторной работы
- •7. Порядок защиты работы
- •8. Контрольные вопросы
- •Библиографический список
- •Приложение а (справочное) Текст программы
- •Приложение б (справочное) Результат работы программы
Министерство образования и науки Российской Федерации
Севастопольский государственный университет
Исследование системных вызовов для работы с файлами
Методические указания к выполнению лабораторной работы
по дисциплине «Информационные технологии»
для студентов дневной и заочной формы обучения
направления подготовки № 27.03.04 –
«Управление в технических системах»
по профилю № 27.03.04
«Управление и информатика в технических системах»
Севастополь
2015
УДК 681.5
Исследование системных вызовов для работы с файлами. Методические указания к выполнению лабораторной работы по дисциплине «Информационные технологии» /сост. А.Е. Осадченко – Севастополь: Изд-во СевГУ, 2015. – 16 с.
Методические указания служат для освоения системных вызовов, предназначенных для работы с двоичными файлами. Методические указания предназначены для студентов дневной и заочной формы обучения направления подготовки
№ 27.03.04 – «Управление в технических системах».
Методические указания рассмотрены и утверждены
(протокол № от __.__.2015 г.)
Допущено учебно-методическим центром СевГУ в качестве методических указаний.
Содержание
1. Цель работы 3
2. Краткие теоретические сведения 3
2.1. Cистемные вызовы 3
2.1.1. Открытие файла, системный вызов open 3
2.1.2. Чтение файла, системный вызов read 4
2.1.2. Запись в файл, системный вызов write 4
2.1.3. Закрытие файла, системный вызов close 5
2.1.4. Создание файла, системный вызов creat 5
2.2. Ошибки при выполнении системных вызовов 6
2.3. Генерация случайных чисел 6
2.4. Пример программы 7
3. задания на лабораторную работу 7
4. техническиЕ средствА ДЛЯ выполнения работы 9
5. Порядок выполнения лабораторной работы 9
6. Содержание отчета о выполнении лабораторной работы 10
7. Порядок защиты работы 10
8. Контрольные вопросы 10
Библиографический список 10
приложение а 12
приложение Б 15
1. Цель работы
Изучение системных вызовов для работы с файлами.
2. Краткие теоретические сведения
2.1. Cистемные вызовы
2.1.1. Открытие файла, системный вызов open
Системный вызов open создает связь между процессом и файлом. Эта связь называется дескриптором файла.
В самом общем случае, прежде чем читать или писать, вы должны проинформировать систему о действиях, которые вы намереваетесь выполнять в отношении файла; эта процедура называется открытием файла. Если вы собираетесь писать в файл, то, возможно, его потребуется создать заново или очистить от хранимой информации.
Система проверяет ваши права на эти действия и, если все в порядке, возвращает программе небольшое неотрицательное целое, называемое дескриптором файла. Всякий раз, когда осуществляется ввод-вывод, идентификация файла выполняется по его дескриптору, а не по имени. Дескриптор файла аналогичен файловому указателю, используемому в стандартной библиотеке.
Вся информация об открытом файле хранится и обрабатывается операционной системой. Программа пользователя обращается к файлу только через его дескриптор как показано на рисунке 1. Для открытия файла необходимо определить имя файла и тип соединения.
#include
<fcntl.h>
int fd =
open(char *name, int how);
Рисунок 1– Системный вызов open
Аргумент name - это строка, содержащая имя файла. Второй аргумент, flags, имеет тип int и специфицирует, каким образом должен быть открыт файл. Его основными значениями являются:
O_RDONLY - открыть только на чтение;
O_WRONLY - открыть только на запись;
O_RDWR - открыть и на чтение, и на запись.
Открытие файлов – это служба ядра. Системный вызов open – это требование, которое выдает ваша программа ядру. Если ядро обнаружит ошибку при обращении к нему, то оно вернет код возврата, равный 1.
Ввод с клавиатуры и вывод на экран применяются настолько часто, что для удобства работы с ними предусмотрены специальные соглашения. При запуске программы командный интерпретатор (shell) открывает три файла с дескрипторами 0, 1 и 2, которые называются соответственно стандартным вводом, стандартным выводом и стандартным файлом ошибок.
Если программа читает из файла 0, а пишет в файлы 1 и 2 (здесь цифры - дескрипторы файлов), то она может осуществлять ввод и вывод, не заботясь об их открытии.