Основы программирования в 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 | Количество жестких ссылок на файл |
Кодекс Охотника. Книга XII
12. Кодекс Охотника
Фантастика:
боевая фантастика
городское фэнтези
аниме
рейтинг книги
Шайтан Иван 3
3. Шайтан Иван
Фантастика:
попаданцы
альтернативная история
рейтинг книги
Тринадцатый
Фантастика:
фэнтези
рпг
рейтинг книги
Травница Его Драконейшества
Любовные романы:
любовно-фантастические романы
рейтинг книги
Двойник Короля 4
4. Двойник Короля
Фантастика:
аниме
фэнтези
фантастика: прочее
попаданцы
рейтинг книги
Черный Маг Императора 19
19. Черный маг императора
Фантастика:
аниме
фэнтези
попаданцы
рейтинг книги
Я Гордый часть 6
6. Стальные яйца
Фантастика:
фэнтези
городское фэнтези
попаданцы
аниме
рейтинг книги
Наследник, скрывающий свой Род
2. Десять Принцев Российской Империи
Фантастика:
попаданцы
альтернативная история
аниме
рейтинг книги
Цикл романов "Целитель". Компиляция. Книги 1-17
Целитель
Фантастика:
попаданцы
альтернативная история
рейтинг книги
Уникум
1. Уникум
Фантастика:
альтернативная история
рейтинг книги
Кодекс Охотника. Книга XXII
22. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
рейтинг книги
Я - истребитель
1. Я - истребитель
Фантастика:
альтернативная история
рейтинг книги