Основы программирования в Linux
Шрифт:
В последние годы ОС Linux продемонстрировала огромные успехи в повышении производительности системных вызовов и файловой системы. Для сравнения аналогичный тест с применением ядра 2.6 занял чуть менее 14 секунд:
Вы можете добиться лучших результатов, копируя блоки большего размера. Взгляните на модифицированную программу copy_block.c, которая копирует файл блоками в 1 Кбайт и снова использует системные вызовы.
Теперь испытайте программу, но сначала удалите старый выходной файл.
Как это работает
Теперь программа выполняется только сотые доли секунды, поскольку ей требуется около 2000 системных вызовов. Конечно, это время очень зависит от системы, но оно показывает, что системные вызовы сопряжены с поддающимися измерению издержками, поэтому их применение стоит оптимизировать.
Другие системные вызовы для управления файлами
Существует ряд других системных вызовов, оперирующих низкоуровневыми дескрипторами файлов. Они позволяют программе контролировать использование файла, возвращая информацию о его состоянии,
Системный вызов
Параметр
Вызов
Системный вызов
Далее приведена синтаксическая запись вызовов.
Учтите, что включение файла sys/types.h не обязательное, но мы рекомендуем включать его при использовании системных вызовов, поскольку некоторые из их определений применяют для стандартных типов псевдонимы, которые могут измениться когда-нибудь.
Родственные функции
Элементы вызываемой структуры stat могут меняться в разных UNIX-подобных системах, но обязательно включают перечисленные в табл. 3.4 элементы.
Таблица 3.4
| Элемент структуры stat | Описание |
|---|---|
| st_mode | Права доступа к файлу и сведения о типе файла |
| st_ino | Индекс, ассоциированный с файлом |
| st_dev | Устройство, на котором размещен файл |
| st_uid | Идентификатор (user identity) владельца файла |
| st_gid | Идентификатор группы (group identity) владельца файла |
| st_atime | Время последнего обращения |
| st_ctime | Время последнего изменения прав доступа, владельца, группы или объема |
| st_mtime | Время последней модификации содержимого |
| st_nlink | Количество жестких ссылок на файл |
Собрание сочинений. Том 4
Проза:
классическая проза
рейтинг книги
Дикарка Жасмин
6. Сага о Скай О`Малли
Любовные романы:
исторические любовные романы
рейтинг книги
Алексей Михайлович
4. Романовы. Династия в романах
Проза:
историческая проза
рейтинг книги
Книга 16. Каббалистический форум (старое издание)
Научно-образовательная:
прочая научная литература
религиоведение
рейтинг книги
Возлюби болезнь свою
Научно-образовательная:
психология
рейтинг книги
Беседы
Документальная литература:
биографии и мемуары
публицистика
рейтинг книги
Том 12. Из 'Автобиографии'. Из записных книжек 1865-1905. Избранные письма
Проза:
классическая проза
рейтинг книги
Паладин из прошлого тысячелетия
1. Соприкосновение миров
Фантастика:
боевая фантастика
попаданцы
рейтинг книги
Бессонница
17. Темная Башня
Фантастика:
ужасы и мистика
рейтинг книги
UNIX: взаимодействие процессов
Компьютеры и Интернет:
программирование
рейтинг книги
Наномашины, "Шива"! Том 7
7. Первый среди карапузов
Фантастика:
городское фэнтези
попаданцы
аниме
фэнтези
рейтинг книги
Неучтенный элемент. Том 3
3. Антимаг. Вне системы
Фантастика:
фэнтези
рейтинг книги
Травник
1. Травник
Фантастика:
фэнтези
рейтинг книги
Война Цветов
10. Мастера меча и магии
Фантастика:
фэнтези
рейтинг книги