Джонсон Харт - Системное программирование в среде Windows
На нашем сайте KnigaRead.com Вы можете абсолютно бесплатно читать книгу онлайн Джонсон Харт, "Системное программирование в среде Windows" бесплатно, без регистрации.
Примечание. Будучи частью всех современных систем UNIX, потоки Pthreads доступны также в системах, отличных от UNIX.
Главы 8-10: синхронизация потоков Область Windows UNIX/Pthreads Примечания Синхронизация: критические разделы DeleteCriticalSection Для эмуляции объектов критических разделов используйте мьютексы. Библиотека С в данном случае не применима Синхронизация: критические разделы EnterCriticalSection Некоторые системы предоставляют собственные эквиваленты. Библиотека С в данном случае не применима Синхронизация: критические разделы InitializeCriticalSection ↓ Синхронизация: критические разделы LeaveCriticalSection Синхронизация: события CloseHandle (в данном случае закрытие дескриптора события) pthread_cond_destroy Синхронизация: события CreateEvent pthread_cond_init Синхронизация: события PulseEvent pthread_cond_signal Вручную сбрасываемое событие Синхронизация: события ResetEvent - Синхронизация: события SetEvent pthread_cond_broadcast Автоматически сбрасываемое событие Синхронизация: события WaitForSingleObject (в данном случае ожидание дескриптора события) pthread_cond_wait Синхронизация: события WaitForSingleObject (в данном случае ожидание дескриптора события) pthread_timed_wait Синхронизация: мьютексы CloseHandle (в данном случае закрытие дескриптора мьютекса) pthread_mutex_destroy Синхронизация: мьютексы CreateMutex pthread_mutex_init Синхронизация: мьютексы ReleaseMutex pthread_mutex_unlock Синхронизация: мьютексы WaitForSingleObject(в данном случае ожидание дескриптора мьютекса) pthread_mutex_lock Синхронизация: семафоры CreateSemaphore semget Синхронизация: семафоры - semctl Непосредственная поддержка всех опций в Windows отсутствует Синхронизация: семафоры OpenSemaphore semget Синхронизация: семафоры ReleaseSemaphore semop (+) Синхронизация: семафоры WaitForSingleObject (в данном случае закрытие дескриптора семафора) semop (-) Windows может выполнять ожидание только одного счетчика Глава 11: Взаимодействие между процессами Область Windows UNIX Библиотека С Примечания IPC CallNamedPipe - - CreateFile, WriteFile, ReadFile, CloseHandle IPC CloseHandle (pipe handle) close, msgctl pclose IPC ConnectNamedPipe - - IPC CreateMailslot - - IPC CreateNamedPipe mkfifo, msgget - IPC CreatePipe pipe popen He является частью стандартной библиотеки С — см. [40] IPC DuplicateHandle dup, dup2, or fcntl - Или используйте стандартные имена файлов CONIN$, CONOUT$ IPC GetNamedPipeHandleState stat, fstat, lstat64 - IPC GetNamedPipeInfo stat, fstat, lstat - IPC ImpersonateNamedPipeClient - - IPC PeekNamedPipe - - IPC ReadFile (в данном случае используется дескриптор именованного канала) read (fifo), msgsnd - IPC RevertToSelf - - IPC SetNamedPipeHandleState - - IPC TransactNamedPipe - - WriteFile; ReadFile IPC WriteFile (в данном случае используется дескриптор именованного канала) write (fifo), msgrcv - Разное GetComputerName uname - Разное SetComputerName - - Безопасность SetNamedPipeIdentity Используйте второй промежуточный бит каталога - Глава 14: асинхронный ввод/вывод Область Windows UNIX Библиотека С Примечания Асинхронный ввод/вывод GetOverlappedResult - - Асинхронный ввод/вывод ReadFileEx - - Расширенный ввод/ вывод с процедурой завершения Асинхронный ввод/вывод SleepEx - - Ожидание в дежурном режиме Асинхронный ввод/вывод WaitForMultipleObjects (в данном случае ожидание дескрипторов файлов) poll, select - Асинхронный ввод/вывод WaitForMultipleObjectsEx - - Ожидание в дежурном режиме Асинхронный ввод/вывод WriteFileEx - - Расширенный ввод/ вывод с процедурой завершения Асинхронный ввод/вывод WaitForSingleObjectEx waitpid - Ожидание в дежурном режиме Глава 15: Безопасность объектов Windows Область Windows UNIX Примечания Безопасность AddAccessAllowedAce chmod, fchmod Средства защиты объектов библиотекой С не поддерживаются Безопасность AddAccessDeniedAce chmod, fchmod Безопасность AddAuditAce - Безопасность CreatePrivateObjectSecurity - Безопасность DeleteAce chmod, fchmod ↓ Безопасность DestroyPrivateObjectSecurity - Безопасность GetAce stat*, fstat*, lstat Безопасность GetAclInformation stat*, fstat*, lstat Безопасность GetFileSecurity stat*, fstat*, lstat Безопасность GetPrivateObjectSecurity - Безопасность GetSecurityDescriptorDacl stat*, fstat*, lstat Безопасность 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 chmod*, fchmod Безопасность SetPrivateObjectSecurity - Безопасность SetSecurityDescriptorDacl umask Безопасность SetSecurityDescriptorGroup chown, fchown, lchown Безопасность SetSecurityDescriptorOwner chown, fchown, lchown Безопасность SetSecurityDescriptorSacl -ПРИЛОЖЕНИЕ В