Язык программирования C



         

Открытие, создание, закрытие и расцепление (UNLINK) - часть 2


#define null 0 #define bufsize 512 #define pmode 0644/*rw for owner,r for group,others*/ main(argc,argv) /*cp: copy f1 to f2*/ int argc; char *argv[]; { int f1, f2, n; char buf[bufsize];

if (argc ! = 3) error("usage:cp from to", null); if ((f1=open(argv[1],0))== -1) error("cp:can't open %s", argv[1]); if ((f2=creat(argv[2],pmode))== -1) error("cp: can't create %s", argv[2]); while ((n=read(f1,buf,bufsize))>0) if (write(f2,buf,n) !=n) error("cp: write error", null); exit(0); } error(s1,s2) /*print error message and die*/ char *s1, s2; { printf(s1,s2); printf("\n"); exit(1); }

Существует ограничение (обычно 15 - 25) на количество файлов, которые программа может иметь открытыми одновременно. В соответствии с этим любая программа, собирающаяся работать со многими файлами, должна быть подготовлена к повторному использованию дескрипторов файлов. процедура close прерывает связь между дескриптором файла и открытым файлом и освобождает дескриптор файла для использования с некоторым другим файлом. Завершение выполнения программы через exit или в результате возврата из ведущей программы приводит к закрытию всех открытых файлов.

функция расцепления unlink (filename) удаляет из системы файлов файл с именем filename ( из данного справочного файла. Файл может быть сцеплен с другим справочником, возможно, под другим именем - примеч. переводчика).

Упражнение 8-1

Перепишите программу cat из лекции №7, используя функции read, write, open и close вместо их эквивалентов из стандартной библиотеки. Проведите эксперименты для определения относительной скорости работы этих двух вариантов.

on_load_lecture()

Дальше »

  Если Вы заметили ошибку - сообщите нам.  

Страницы:

« |

1

|

2

|

3

|

4

|

5

|

6

|

7

|

вопросы | »

|

для печати и PDA

Курсы | Учебные программы | Учебники | Новости | Форум | Помощь



Телефон: +7 (495) 253-9312, 253-9313, факс: +7 (495) 253-9310, email: info@intuit.ru

© 2003-2007, INTUIT.ru::Интернет-Университет Информационных Технологий - дистанционное образование




Содержание  Назад  Вперед