Работа с интерфейсом прикладного программирования операционной системы Linux. Шашков Б.Д. - 7 стр.

UptoLike

Составители: 

7
}
if((fdOut=open(OutName, O_WRONLY|O_CREAT,644))==-1){
perror("Ошибка открытия выходного файла");
close(fdIn);
_exit(-2);
}
// Цикл копирования
while((nRd=read(fdIn, buf, 256))>0){
if(write(fdOut, buf, nRd)<nRd){
perror("Ошибка записи");
close(fdIn);
close(fdOut);
_exit(-3);
}
}
close(fdIn);
close(fdOut);
printf("Завершение программы\n");
_exit(0);
}
При открытии входного файла задается ключ режима работы с файлом
"только для чтения" (O_RDONLY). Функция возвращает дескриптор открытого
файла. В случае ошибки возвращается -1. Для вывода сообщения об ошибке ис-
пользуется функция perror(). Эта функция выводит задаваемый ей
в качестве
аргумента текст. Кроме того, функция обрабатывает системный номер ошибки
(errno) и добавляет в выводимую строку системное сообщение об ошибке.
Функция, открывающая выходной файл возвращает дескриптор выходного
файла. Эта функция выполняется с режимами "только для записи" (O_WRONLY)
и с ключом создания нового файла (O_CREAT). Кроме этого, при вызове функ-
ции используется
третий параметр (644), определяющий права доступа к созда-
ваемому файлу (чтение и запись для владельца и только чтение для остальных
пользователей).
Лабораторные задания
В соответствии с вариантом задания разработать и отладить программу.
Исходные данные вводятся с клавиатуры и записываются в текстовый файл.
Программа читает эти данные, после обработки результаты также помещаются в
файле.
Варианты заданий
1. Из текста удалить четвертое слово.
2. Сформировать файл, содержащий записи по результатам сдачи очередного эк-
замена студентами группы. Из файла выбрать записи для студентов, получив-
ших отличные оценки и записать их в новый файл.
      }
      if((fdOut=open(OutName, O_WRONLY|O_CREAT,644))==-1){
           perror("Ошибка открытия выходного файла");
           close(fdIn);
           _exit(-2);
      }
// Цикл копирования
      while((nRd=read(fdIn, buf, 256))>0){
           if(write(fdOut, buf, nRd)