int f1, f2, n; char
#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::Интернет-Университет Информационных Технологий - дистанционное образование
|
Содержание Назад Вперед
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий