Область | Windows | UNIX | Примечания |
---|---|---|---|
Безопасность | AddAccessAllowedAce | chmod, fchmod | Средства защиты объектов библиотекой С не поддерживаются |
Безопасность | AddAccessDeniedAce | chmod, fchmod | |
Безопасность | AddAuditAce | - | |
Безопасность | CreatePrivateObjectSecurity | - | |
Безопасность | DeleteAce | chmod, fchmod | ↓ |
Безопасность | DestroyPrivateObjectSecurity | - | |
Безопасность | GetAce | ||
Безопасность | GetAclInformation | ||
Безопасность | GetFileSecurity | ||
Безопасность | GetPrivateObjectSecurity | ||
Безопасность | GetSecurityDescriptorDacl | ||
Безопасность | GetUserName | getlogin | |
Безопасность | InitializeAcl | - | |
Безопасность | InitializeSecurityDescriptor | umask | |
Безопасность | LookupAccountName | getpwnam, getgrnam | |
Безопасность | LookupAccountSid | getpwuid, getuid, geteuid | |
Безопасность | - | getpwend, setpwent, endpwent | |
Безопасность | - | getgrent, setgrent, endgrent | |
Безопасность | - | setuid, seteuid, setreuid | |
Безопасность | - | setgid, setegid, setregid | |
Безопасность | OpenProcessToken | getgroups, setgroups, initgroups | |
Безопасность | SetFileSecurity | ||
Безопасность | SetPrivateObjectSecurity | ||
Безопасность | SetSecurityDescriptorDacl | ||
Безопасность | SetSecurityDescriptorGroup | chown, fchown, lchown | |
Безопасность | SetSecurityDescriptorOwner | chown, fchown, lchown | |
Безопасность | SetSecurityDescriptorSacl | - |
ПРИЛОЖЕНИЕ В
Результаты измерения производительности
В примерах программ представлено широкое разнообразие альтернативных методик решения одних и тех же задач, как это было, например, при рассмотрении копирования файлов или преобразования текстовых файлов из кодировки ASCII в Unicode, и поэтому рассуждения о сравнительных преимуществах этих методик в отношении производительности являются вполне уместными. Однако в процессе создания приложений одних рассуждений подобного рода мало, и требуется точное знание количественных характеристик, позволяющих судить о влиянии того или иного выбора варианта реализации на производительность, а также о том, каковы в этом смысле потенциальные преимущества той или иной версии Windows, конфигурации оборудования или средств Windows, таких как потоки или асинхронный ввод/вывод. Программа timep (программа 6.2) позволяет измерять реальное (истекшее), пользовательское и системное (затраченное функциями ядра) время, необходимое для выполнения программ, и предоставляет удобный способ измерения производительности и определения ее зависимости от выбора методик и принципов программирования.
Тестовые конфигурации
Тестирование производилось путем выполнения на ряде хост-систем репрезентативного набора приложений из числа приведенных в данной книге примеров программ.
Приложения
В приведенных ниже таблицах приведены временные характеристики, полученные с использованием программы timep при выполнении тестовых программ на нескольких различных системах. Для этой цели были выбраны следующие функциональные области:
1. Копирование файлов. Показатели производительности определялись для нескольких различных методик, с помощью которых выполнялась эта операция, включая использование библиотеки С и Windows-функции CopyFile. Копирование файлов позволяет сосредоточить внимание на операциях ввода/вывода, не сопровождаемых обработкой данных.
2. Преобразование символов из кодировки ASCII в кодировку Unicode. В этой серии тестов выяснялась зависимость производительности от использования отображения файлов, буферов большого размера, флагов Windows, задающих последовательный режим обработки, и операций асинхронного ввода/вывода. Преобразование символов позволяет сосредоточить внимание на операциях ввода/вывода, сопровождаемых незначительной обработкой данных в процессе их перемещения из одного буфера в другой.