Упражнения


1. Разработать программу для Linux, которая открывает файл для записи, вводит со стандартного ввода несколько десятков различных символов и запоминает их в файле, открытом программой.

2. Разработать программу для MS Windows, которая открывает файл для записи, вводит со стандартного ввода несколько десятков различных символов и запоминает их в открытом программой файле.

3. Разработать программу для Linux, которая открывает для чтения файл, созданный в упр. 1, получая значение хэндла. Затем по этому первому хэндлу функцией dup() строится его дубликат – второй хэндл этой программы. Далее выполняется еще одно открытие того же исходного файла для чтения, причем получается третий хэндл. Функцией lseek выполняется позиционирование на 10-й байт открытого файла, используя для этого первый из полученных ранее хэндлов. Затем выполняются три чтения из файла по 7 байтов, используя по очереди все три ранее полученных хэндла и выводя полученные от файла данные через стандартный вывод. Каждый такой вывод следует завершать дополнительным выводом символа перевода на новую строку. В заключение требуется вывести числовые значения всех трех используемых хэндлов и выполнить их закрытие. Результаты вывода объяснить.

4. Разработать программу для MS Windows, которая открывает для чтения файл, созданный в упр. 1, получая значение хэндла. Затем по этому первому хэндлу функцией DuplicateHandle() строится его дубликат – второй хэндл этой программы. Далее выполняется еще одно открытие того же исходного файла для чтения, причем получается третий хэндл. Функцией SetFilePointer выполняется позиционирование на 12-й байт открытого файла, используя для этого первый из полученных ранее хэндлов. Затем выполняются три чтения из файла по 8 байтов, используя по очереди все три ранее полученныѕ0хэндла и выводя полученные от єайла данные через стандартный вывод. Каждый такой вћвод следует завершать дополнительным вћводом0символа перевода на новую строку. В заключение требуется вывести числовые значения всех трех используемых хэндлов и выполнить их закрытие. Результаты вывода объяснить.

5. Разработать программу для MS Windows, осуществляющую вывод на "стандартный файл вывода" содержимого некоторого текстового файла, с запретом совместного чтения другими процессами и организованной задержкой перед прекращением запрета на несколько секунд. Перед открытием файла и после попытки его открытия и анализа ситуации выдавать поясняющие сообщения на экран, отражающие существо происходящего. Запустить в двух экземплярах программу на выполнение, используя для этого либо различные экземпляры командных оболочек, либо системную программу Проводника (Explorer) и пронаблюдать поведение программы. При запущенной на выполнение программе попытаться открыть используемый текстовый файл с помощью системной программы просмотра содержимого файлов (из командной оболочки или иным способом). Результаты объяснить.

6. Разработать программу для Linux, осуществляющую вывод на "стандартный файл вывода" содержимого некоторого текстового файла, с запретом совместного чтения другими процессами и организованной задержкой перед прекращением запрета на несколько секунд. Перед открытием файла и после попытки его открытия и анализа ситуации выдавать поясняющие сообщения на экран, отражающие существо происходящего. Запустить в двух экземплярах программу на выполнение, используя для этого различные виртуальные консоли. Переключение между консолями выполнять нажатием комбинаций клавиш Alt-Fn, где n – номер консоли (находится в пределах от 1 до 6). Пронаблюдать поведение программы. Результаты объяснить.