UNIX — универсальная среда программирования
UNIX — универсальная среда программирования читать книгу онлайн
В книге американских авторов — разработчиков операционной системы UNIX — блестяще решена проблема автоматизации деятельности программиста, системной поддержки его творчества, выходящей за рамки языков программирования. Профессионалам открыт богатый "встроенный" арсенал системы UNIX. Многочисленными примерами иллюстрировано использование языка управления заданиями
shell.
Для программистов-пользователей операционной системы UNIX.
Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних чтение данного контента СТРОГО ЗАПРЕЩЕНО! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту [email protected] для удаления материала
Время (пользователь+система, в сек.)
Размер | PDP-11/40 | VAX-11/750 |
---|---|---|
1 | 271.0 | 188.8 |
10 | 29.9 | 19.3 |
100 | 3.8 | 2.6 |
512 | 1.3 | 1.0 |
1024 | 1.2 | 0.6 |
5120 | 1.0 | 0.6 |
Размер блока на диске для системы на PDP-11 составляет 512 байт и 1024 байта — для VAX.
Доступ нескольких процессоров к одному и тому же файлу в одно и то же время является совершенно законным: в самом деле, один процесс может писать, в то время как другой читает. Это обескураживает, если не входит в ваши планы, но иногда оказывается полезным. Даже несмотря на то, что при одном обращении к функции
read
read
readslow
readslow
$ slowprog >temp &
5213
$ readslow <temp | grep something
Иными словами, медленная программа выполняет вывод в файл;
readslow
По составу
readslow
readslow
EOF
/* readslow: keep reading, waiting for more */
#define SIZE 512 /* arbitrary */
main() {
char buf[SIZE];
int n;
for (;;) {
while ((n = read(0, buf, sizeof buf)) > 0)
write(1, buf, n);
sleep(10);
}
}
Функция
sleep
sleep(3)
readslow
read
Добавьте
readslow
n
n
-f
tail
tail
readslow
Что происходит с
readslow
fstat
open
creat
close
unlink
Все стандартные файлы, кроме установленных по умолчанию, — входной, выходной и файл диагностики вы должны явно открыть для чтения или записи. Это можно сделать с помощью двух системных вызовов — открыть и создать [14].
Функция
open
int
char *name;
int fd, rwmode;
fd = open(name, rwmode);
Как и для
fopen
name
rwmode
open
Попытка открыть несуществующий файл является ошибкой. Системный вызов
creat
int perms;
fd = creat(name, perms);
Вызов
creat
creat
perms
creat
creat
creat
Как известно из второй главы, с файлом связаны девять битов информации о защите, контролирующих разрешение на чтение, запись или выполнение, так что число из трех восьмеричных цифр удобно для спецификации этой информации. Например, 0755 дает разрешение владельцу файла читать, писать и выполнять его, а чтение и выполнение файла доступно любому пользователю. Не забывайте о первом нуле, который определяет восьмеричные числа в языке Си.