49418 (572335), страница 2
Текст из файла (страница 2)
sleep(1);
if(p3)
{
file_obmen(a2, a1);
printf("Write file 2 >>> file 1\n");
printf ("\n");
printf ("Obmen zachonchen!\n");
exit(0);
}
sleep(1);
exit(0);
}
Файл file_obmen.h:
void file_obmen(char *a4, char *a3)
{
FILE *f[3];
char *c=(char*)malloc(sizeof(char));
int p1, p2;
f[1] = fopen(a3, "rb");
f[0] = fopen(a4, "rb");
f[2] = fopen("buf", "wb");
while(!feof(f[0]))
{
c[0] = fgetc(f[0]);
fputc(c[0],f[2]);
}
fclose(f[0]);
f[0] = fopen(a4, "wb");
while(!feof(f[1]))
{
c[0] = fgetc(f[1]);
fputc(c[0], f[0]);
}
fclose(f[0]);
fclose(f[2]);
f[2] = fopen("buf", "rb");
f[1] = fopen(a3, "wb");
while(!feof(f[2]))
{
c[0] = fgetc(f[2]);
fputc(c[0], f[1]);
}
fclose(f[2]);
fclose(f[1]);
}
4. Тестирование
Результат выполнения программы в консоле:
Содержимое файлов при первом проходе:
Содержимое файлов при втором проходе:
Программа проверена и работает корректно.
Выводы
В данной работе частично описана структура системы UNIX, взаимоотношения между процессами, выполняющимися в режиме задачи и в режиме ядра. Процессы выполняются в режиме задачи или в режиме ядра, в котором они пользуются услугами системы благодаря наличию набора обращений к операционной системе. Архитектура системы поддерживает такой стиль программирования, при котором из небольших программ, выполняющих только отдельные функции, но хорошо, составляются более сложные программы, использующие механизм каналов и переназначение ввода-вывода.
Обращения к операционной системе позволяют процессам производить операции, которые иначе не выполняются. В дополнение к обработке подобных обращений ядро операционной системы осуществляет общие учетные операции, управляет планированием процессов, распределением памяти и защитой процессов в оперативной памяти, обслуживает прерывания, управляет файлами и устройствами и обрабатывает особые ситуации, возникающие в системе. В функции ядра системы UNIX намеренно не включены многие функции, являющиеся частью других операционных систем, поскольку набор обращений к системе позволяет процессам выполнять все необходимые операции на пользовательском уровне.
Литература
-
Дж. Такет (мл.), С.Барнет. Использование Linux/ Специальное издание.: 5-е изд.: Пер. с англ.: Уч.пос. – М.: Издательский дом «Вильямс», 2000. – 784 с.
-
Максимальная защита Linux. Искусство настройки.: Пер. с англ./ под.ред. Дж.Рея – СПб.: ООО «ДиаСофтЮП», 2002. – 752 с.
-
Браун С. Операционная система UNIX - М.: Мир, 1986 - 463 с.
















