Статья: Теория вычислительных процессов и структур

int stat (const char *pathname, struct stat *buf);

int fstat (int filedes, struct stat *buf);

Системный вызов stat имеет два аргумента: pathname – полное имя файла, buf – указатель на структуру stat, которая после успешного вызова будет содержать связанную с файлом информацию.

Системный вызов fstat функционально идентичен системному вызову stat. Отличие состоит в интерфейсе: вместо полного имени файла вызов fstat ожидает дескриптор файла, поэтому он может использоваться только для открытых файлов.

Определение структуры stat находится в системном заголовочном файле <sys/stat.h> и включает следующие элементы:

st_dev – описывает логическое устройство, на котором находится файл,

st_ino – задает номер индексного дескриптора,

st_mode – задает режим доступа к файлу,

st_nlink – определяет число ссылок, указывающих на файл,

st_uid, st_gid - соответственно идентификаторы пользователя и группы файла,

st_size – текущий логический размер файла в байтах,

st_atime – время последнего чтения из файла,

st_mtime – время последней модификации,

st_ctime – время последнего изменения информации, возвращаемой в структуре stat,

st_blksize – размер блока ввода/вывода,

st_blocks – число физических блоков, занимаемых файлом.

Для изменения прав доступа к файлу используется вызов:

int chmod(const char *pathname, mode_t mode);

Пример:

if(chmod(“myfile.c”, 0604)==-1) perror(“ошибка вызова chmod\n”);

где 0604 – новые права доступа к файлу.

Порядок выполнения работы

1. Изучить теоретическую часть лабораторной работы.

2. Написать программу ввода символов с клавиатуры и записи их в файл (в качестве аргумента при запуске программы вводится имя файла). Для чтения или записи файла использовать функции посимвольного ввода-вывода getc(),putc() или им подобные. Предусмотреть выход после ввода определённого символа (например: ctrl-F). После запуска и отработки программы просмотреть файл. Предусмотреть контроль ошибок открытия/закрытия/чтения файла.

3. Написать программу просмотра текстового файла и вывода его содержимого на экран (в качестве аргумента при запуске программы передаётся имя файла, второй аргумент (N) устанавливает вывод по группам строк (по N –строк) или сплошным текстом (N=0)). Для чтения или записи файла использовать функции посимвольного ввода-вывода getc(),putc() или им подобные. Предусмотреть контроль ошибок открытия/закрытия/чтения/записи файла.

4. Написать программу копирования одного файла в другой. В качестве параметров при вызове программы передаются имена первого и второго файлов. Для чтения или записи файла использовать функции посимвольного ввода-вывода getc(),putc() или им подобные. Предусмотреть копирование прав доступа к файлу и контроль ошибок открытия/закрытия/чтения/записи файла.

5. Написать программу вывода на экран содержимого текущего каталога.

Вывести с использованием данной программы содержимое корневого каталога. Предусмотреть контроль ошибок открытия/закрытия/чтения каталога.

6. Написать программу подсчёта числа отображаемых символов в строках текстового файла и формирование из полученных значений другого текстового файла, в котором будут расположены строки, каждая из которых представляет собой символьное изображение числа символов в данной строке из первого файла. Для чтения или записи файла использовать функции посимвольного ввода-вывода getc(),putc() или им подобные. Имена файлов передаются в программу в качестве аргументов. Пример вывода программы для текстового файла:

К-во Просмотров: 571
Бесплатно скачать Статья: Теория вычислительных процессов и структур