Системное программирование в среде 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) | – |