Системное программирование в среде Windows - [213]

Шрифт
Интервал

• Многочисленные прочерки, особенно, когда они относятся к библиотеке С, встречаются в тех случаях, когда сопоставимые функции или наборы функций отсутствуют. Именно такая ситуация наблюдается, например, для функций управления каталогами.

• В таблицах к главам 7—10 в качестве функций UNIX фигурируют функции потоков POSIX (Pthreads), хотя они и не являются частью UNIX. Кроме того, хотя во многих реализациях UNIX имеются собственные объекты синхронизации, аналогичные событиям, мьютексам и семафорам, мы не пытались отразить их в таблицах.

Как правило, более точная совместимость наблюдается для функций, фигурирующих в начальных главах книги, особенно для функций управления файлами. С переходом к более развитым функциональным возможностям различия между системами становятся все более ощутимыми, и во многих случаях эквивалентные функции библиотеки С отсутствуют. Так, модели безопасности в UNIX и Windows существенно отличаются друг от друга, и поэтому отображенные соотношения между ними являются, в лучшем случае, приближенными.

Указанные функциональные соответствия не являются точными. Между всеми тремя системами имеется множество отличий, как существенных, так и незначительных. Поэтому данные таблицы могут служить лишь ориентиром. Многие из отмеченных отличий отдельно обсуждаются в главах книги.

Главы 2 и 3: управление файлами и каталогами
ОбластьWindowsUNIXБиблиотека СПримечания
Консольный ввод/выводAllocConsoleТерминальный ввод/вывод-
Консольный ввод/выводFreeConsoleТерминальный ввод/вывод-
Консольный ввод/выводReadConsolereadgetc, scanf, gets
Консольный ввод/выводSetConsoleModeioctl-
Консольный ввод/выводWriteConsolewriteputc, printf, puts
Управление каталогамиCreateDirectory mkdir*-Создание нового каталога
Управление каталогамиFindCloseclosedir* - Закрытие дескриптора поиска
Управление каталогами FindFirstFile opendir*, readdir*-Поиск первого файла, соответствующего шаблону
Управление каталогамиFindNextFile readdir* -Поиск следующих файлов, соответствующих шаблону
Управление каталогами GetCurrentDirectory getcwd* -
Управление каталогами GetFullPathName - -
Управление каталогами GetSystemDirectory Известные пути доступа -
Управление каталогами RemoveDirectory rmdir, unlink* remove
Управление каталогами SearchPath Используйте opendir, readdir -Поиск указанного файла по указанному пути
Управление каталогами SetCurrentDirectory chdir*, fchdir - Смена рабочего каталога
Обработка ошибок FormatMessage strerror perror
Обработка ошибок GetLastError errno errno Глобальная переменная
Обработка ошибок SetLastError errno errno Глобальная переменная
Блокирование файлов LockFile fcntl(cmd=F_GETLK,…) -
Блокирование файлов LockFileExfcntl(cmd=F_GETLK,…) -
Блокирование файловUnlockFilefcntl(cmd=F_GETLK,…) -
Блокирование файлов UnlockFileEx fcntl(cmd=F_GETLK,…) -
Файловая система CloseHandle (в данном случае закрытие дескриптора файла) close* fclose CloseHandle не ограничивается файлами
Файловая система CopyFile open; read; write; close fopen; fread; fwrite; fclose Дублирование файла
Файловая системаCreateFileopen*, creat*fopenОткрытие/ создание файла
Файловая системаDeleteFileunlink*removeУдаление файла
Файловая системаFlushFileBuffersfsynchfflushЗапись буферизованных данных в файл
Файловая системаGetFileAttributes stat*, fstat*, lstat -
Файловая система GetFileInformationByHandle stat*, fstat*, lstat - Заполнение структуры информацией о файле
Файловая система GetFileSize stat*, fstat*, lstat ftell, fseek Получение размера файла в байтах
Файловая система GetFileTime stat*, fstat*, lstat -
Файловая система GetFileType stat*, fstat*, lstat-Определение типа устройства или файла
Файловая система GetStdHandle Используйте файловые дескрипторы 0, 1 или 2 Используйте stdin, stdout, stderr
Файловая система GetTempFileNameИспользуйте библиотеку Сtmpnam Создание уникального имени файла
Файловая система GetTempFileName, CreateFile Используйте библиотеку С tmpfile Создание временного файла
Файловая система GetTempPath /temp path - Получение пути к каталогу для временных файлов
Файловая системаMoveFile, MoveFileExИспользуйте библиотеку СrenameПереименование файла или каталога
Файловая система CreateHardLink link, unlink* -Windows не поддерживает ссылки
Файловая система - symlink - Создание символической ссылки
Файловая система - readlink - Чтение имени в символической ссылке
Файловая система Отсутствует; ReadFile возвращает 0 байт Отсутствует; read возвращает 0 байт feof Количество оставшихся до конца файла байтов
Файловая система Отсутствует; используйте многократные вызовы ReadFile readv Отсутствует; используйте многократные вызовы freads Фрагментированное чтение
Файловая система Отсутствует; используйте многократные вызовы WriteFile writev Отсутствует; используйте многократные вызовы fwrites Запись со слиянием
Файловая система ReadFile read fread Чтение данных из файла
Файловая система SetEndOfFile chsize* -
Файловая система SetFileAttributes fcntl -
Файловая система SetFilePointer lseekfseek Установка указателя файла
Файловая система SetFilePointer (установка в 0) lseek(0) rewind
Файловая система

Рекомендуем почитать
Сценарии командной оболочки. Linux, OS X и Unix. 2-е издание

Сценарии командной оболочки помогают системным администраторам и программистам автоматизировать рутинные задачи с тех самых пор, как появились первые компьютеры. С момента выхода первого издания этой книги в 2004 году многое изменилось, однако командная оболочка bash только упрочила свои лидирующие позиции. Поэтому умение использовать все ее возможности становится насущной необходимостью для системных администраторов, инженеров и энтузиастов. В этой книге описываются типичные проблемы, с которыми можно столкнуться, например, при сборке программного обеспечения или координации действий других программ.


Безопасность информационных систем

В пособии излагаются основные тенденции развития организационного обеспечения безопасности информационных систем, а также подходы к анализу информационной инфраструктуры организационных систем и решению задач обеспечения безопасности компьютерных систем.Для студентов по направлению подготовки 230400 – Информационные системы и технологии (квалификация «бакалавр»).


UNIX — универсальная среда программирования

В книге американских авторов — разработчиков операционной системы UNIX — блестяще решена проблема автоматизации деятельности программиста, системной поддержки его творчества, выходящей за рамки языков программирования. Профессионалам открыт богатый "встроенный" арсенал системы UNIX. Многочисленными примерами иллюстрировано использование языка управления заданиями shell.Для программистов-пользователей операционной системы UNIX.


QNX/UNIX: Анатомия параллелизма

Книга адресована программистам, работающим в самых разнообразных ОС UNIX. Авторы предлагают шире взглянуть на возможности параллельной организации вычислительного процесса в традиционном программировании. Особый акцент делается на потоках (threads), а именно на тех возможностях и сложностях, которые были привнесены в технику параллельных вычислений этой относительно новой парадигмой программирования. На примерах реальных кодов показываются приемы и преимущества параллельной организации вычислительного процесса.


Виртуальные  машины: несколько компьютеров в  одном

Применение виртуальных машин дает различным категориям пользователей — от начинающих до IT-специалистов — множество преимуществ. Это и повышенная безопасность работы, и простота развертывания новых платформ, и снижение стоимости владения. И потому не случайно сегодня виртуальные машины переживают второе рождение.В книге рассмотрены три наиболее популярных на сегодняшний день инструмента, предназначенных для создания виртуальных машин и управления ими: Virtual PC 2004 компании Microsoft, VMware Workstation от компании VMware и относительно «свежий» продукт — Parallels Workstation, созданный в компании Parallels.


Недокументированные и малоизвестные возможности Windows XP

Книга содержит подробные сведения о таких недокументированных или малоизвестных возможностях Windows XP, как принципы работы с программами rundll32.exe и regsvr32.exe, написание скриптов сервера сценариев Windows и создание INF-файлов. В ней приведено описание оснасток, изложены принципы работы с консолью управления mmc.exe и параметрами реестра, которые изменяются с ее помощью. Кроме того, рассмотрено большое количество средств, позволяющих выполнить тонкую настройку Windows XP.Эта книга предназначена для опытных пользователей и администраторов, которым интересно узнать о нестандартных возможностях Windows.