Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
IT3.doc
Скачиваний:
10
Добавлен:
03.03.2016
Размер:
343.04 Кб
Скачать

0

Министерство образования и науки Российской Федерации

Севастопольский государственный университет

Исследование системных вызовов для работы с файлами

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

по дисциплине «Информационные технологии»

для студентов дневной и заочной формы обучения

направления подготовки № 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 (здесь цифры - дескрипторы файлов), то она может осуществлять ввод и вывод, не заботясь об их открытии.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]