Системное программирование в среде Windows
Шрифт:
Глава 4: обработка исключений
| Область | Windows | UNIX | Библиотека С |
|---|---|---|---|
| SEH | __try–__except | Используйте сигналы библиотеки С | Используйте сигналы библиотеки С |
| SEH | __try–__finally | Используйте сигналы библиотеки С | Используйте сигналы библиотеки С |
| SEH | AbnormalTermination | Используйте сигналы библиотеки С | Используйте сигналы библиотеки С |
| SEH | GetExceptionCode | Используйте сигналы библиотеки С | Используйте сигналы библиотеки С |
| SEH | RaiseException | Используйте сигналы библиотеки С | signal, raise |
| Сигналы | Используйте блок __finally | Используйте библиотеку С | atexit |
| Сигналы | Используйте библиотеку С или TerminateProcess | kill | raise |
| Сигналы | Используйте библиотеку С | Используйте библиотеку С | signal |
| Сигналы | Используйте SEH, VEH | sigemptyset | – |
| Сигналы | Используйте SEH, VEH | sigfillset | – |
| Сигналы | Используйте SEH, VEH | sigaddset | – |
| Сигналы | Используйте SEH, VEH | sigdelset | – |
| Сигналы | Используйте SEH, VEH | sigismember | – |
| Сигналы | Используйте SEH, VEH | sigprocmask | – |
| Сигналы | Используйте SEH, VEH | sigpending | – |
| Сигналы | Используйте SEH, VEH | sigaction | – |
| Сигналы | Используйте SEH, VEH | sigsetjmp | – |
| Сигналы | Используйте SEH, VEH | siglongjmp | – |
| Сигналы | Используйте SEH, VEH | sigsuspendf | – |
| Сигналы | Используйте SEH, VEH | psignal | – |
| Сигналы | Используйте SEH, VEH или библиотеку С | Используйте библиотеку С | abort |
Примечание. Многие поставщики систем UNIX предоставляют собственные средства обработки исключений.
Глава 5: управление памятью, отображение файлов и библиотеки DLL
| Область | Windows | UNIX | Библиотека С |
|---|---|---|---|
| Отображение файлов | CreateFileMapping | shmget | – |
| Отображение файлов | MapViewOfFile | mmap, shmat | – |
| Отображение файлов | MapViewOfFileEx | mmap, shmat | – |
| Отображение файлов | OpenFileMapping | shmget | – |
| Отображение файлов | UnmapViewOfFile | munmap, shmdt, shmctl | – |
| Управление памятью | GetProcessHeap | – | – |
| Управление памятью | GetSystemInfo | – | – |
| Управление памятью | HeapAlloc | sbrk, brk или библиотека С | malloc, calloc |
| Управление памятью | HeapCreate | – | – |
| Управление памятью | HeapDestroy | – | – |
| Управление памятью | HeapFree | Используйте библиотеку С | free |
| Управление памятью | HeapReAlloc | Используйте библиотеку С | realloc |
| Управление памятью | HeapSize | – | – |
| Разделяемая память | CloseHandle (в данном случае закрытие дескриптора объекта отображения файла) | shmctl | – |
| Разделяемая память | CreateFileMapping, OpenFileMapping | shmget | – |
| Разделяемая память | MapViewOfFile | shmat | – |
| Разделяемая память | UnmapViewOfFile | shmdt | – |
| Библиотеки DLL | LoadLibrary | dlopen | – |
| Библиотеки DLL | FreeLibrary | dlclose | – |
| Библиотеки DLL | GetProcAddress | dlsyn | – |
| Библиотеки DLL | DllMain | pthread_once | – |
Глава 6: управление процессами
| Область | Windows | UNIX | Библиотека С | Примечания |
|---|---|---|---|---|
| Управление процессами | CreateProcess | fork; execl*, system | – | Существует 6 функций ехесхх |
| Управление процессами | ExitProcess | _exit | exit | |
| Управление процессами | GetCommandLine | argv[] | argv[] | |
| Управление процессами | GetCurrentProcess | getpid* | – | |
| Управление процессами | GetCurrentProcessId | getpid* | – | |
| Управление процессами | GetEnvironmentStrings | – | getenv | |
| Управление процессами | GetEnvironmentVariable | – | getenv | |
| Управление процессами | GetExitCodeProcess | wait, waitpid | – | |
| Управление процессами | GetProcessTimes | times, wait3, wait4 | – | |
| Управление процессами | GetProcessWorkingSetSize | wait3, wait4 | – | |
| Управление процессами | – | execl*,execv*,execle*,execve*,execlp*,execvp* | – | В Windows прямой эквивалент отсутствует |
| Управление процессами | – | fork, vfork | – | В Windows прямой эквивалент отсутствует |
| Управление процессами | – | getppid | – | Отношения "предок/потомок" в Windows отсутствуют |
| Управление процессами | – | getgid, getegid | – | Понятие группы процессов в Windows отсутствует |
| Управление процессами | – | getpgrp | – | |
| Управление процессами | – | setpgid | – | |
| Управление процессами | – | setsid | – | |
| Управление процессами | – | tcgetpgrp | – | |
| Управление процессами | – | tcsetpgrp | – | |
| Управление процессами | OpenProcess | – | – | |
| Управление процессами | SetEnvironmentVariable | putenv | – | putenv не включена в стандартную библиотеку С |
| Управление процессами | TerminateProcess | kill | – | |
| Синхронизация: процесс | WaitForMultipleObjects (в данном случае ожидание дескрипторов процесса) | waitpid | – | |
| Синхронизация: процесс | WaitForSingleObject (в данном случае ожидание дескриптора процесса) | wait, waitpid | – | |
| Таймеры | KillTimer | alarm(0) | – |