아래내용 원본 링크 - http://blogs.msdn.com/b/csliu/archive/2009/03/20/windows-unix-and-ansi-c-api-comparison.aspx

Unix to Windows Porting Dictionary for HPC 링크 - http://66.165.136.43/dictionary/index.php

 

1. I/O
1. 1 File & Directory

Subject Windows UNIX C Library Comments
Console I/O AllocConsole terminal I/O N/A
Console I/O FreeConsole terminal I/O N/A
Console I/O ReadConsole read getc, scanf, gets
Console I/O SetConsoleMode ioctl N/A
Console I/O WriteConsole write putc, printf, puts
Directory Mgt CreateDirectory mkdir* N/A Make a new directory
Directory Mgt FindClose closedir* N/A Close a directory search handle
Directory Mgt FindFirstFile opendir*, readdir* N/A Find first file matching a pattern
Directory Mgt FindNextFile readdir* N/A Find subsequent files
Directory Mgt GetCurrentDirectory getcwd* N/A
Directory Mgt GetFullPathName N/A N/A
Directory Mgt GetSystemDirectory Well-known pathnames N/A
Directory Mgt RemoveDirectory rmdir, unlink* remove
Directory Mgt SearchPath Use opendir, readdir N/A Search for a file on a specified path
Directory Mgt SetCurrentDirectory chdir*, fchdir N/A Change the working directory
Error Handling FormatMessage strerror perror
Error Handling GetLastError errno errno Global variable
Error Handling SetLastError errno errno Global variable
File Locking LockFile fcntl (cmd=F_GETLK, ..) N/A
File Locking LockFileEx fcntl (cmd=F_GETLK, ..) N/A
File Locking UnlockFile fcntl (cmd=F_GETLK, ..) N/A
File Locking UnlockFileEx fcntl (cmd=F_GETLK, ..) N/A
File System CloseHandle (file handle) close* fclose CloseHandle is not limited to files
File System CopyFile open; read; write; close fopen; fread; fwrite; fclose Duplicate a file
File System CreateFile open*, creat* fopen Open/create a file
File System DeleteFile unlink* remove Delete a file
File System FlushFileBuffers fsynch fflush Write file buffers
File System GetFileAttributes stat*, fstat*, lstat N/A
File System GetFileInformationByHandle stat*, fstat*, lstat N/A Fill structure with file info
File System GetFileSize stat*, fstat*, lstat ftell, fseek Get length of file in bytes
File System GetFileTime stat*, fstat*, lstat N/A
File System GetFileType stat*, fstat*, lstat N/A Check for character stream device or file
File System GetStdHandle Use file desc 0, 1, or 2 Use stdin, stdout, stderr
File System GetTempFileName Use C library tmpnam Create a unique file name
File System GetTempFileName, CreateFile Use C library tmpfile Create a temporary file
File System GetTempPath /temp path N/A Directory for temp files
File System MoveFile, MoveFileEx Use C library rename Rename a file or directory
File System CreateHardLink link, unlink* N/A Windows does not support links
File System N/A symlink N/A Create a symbolic link
File System N/A readlink N/A Read name in a symbolic link
File System N/A, ReadFile returns 0 bytes N/A, read returns 0 bytes feof Rest for end of file
File System N/A, use multiple ReadFiles readv N/A, use multiple freads Scatter read
File System N/A, use multiple WriteFiles writev N/A, use multiple fwrites Gather write
File System ReadFile read fread Read data from a file
File System SetEndOfFile chsize* N/A
File System SetFileAttributes fcntl N/A
File System SetFilePointer lseek fseek Set file pointer
FileSystem SetFilePointer (to 0) lseek (0) rewind
File System SetFileTime utime* N/A
File System SetStdHandle close, dup*, dup2*, or fcntl freopen dup2 or fcntl
File System WriteFile write fwrite Write data to a file

1.2 Async I/O
Subject Windows UNIX C Library Comments
Asynch I/O GetOverlappedResult N/A N/A
Asynch I/O ReadFileEx N/A N/A Extended I/O with completion routine
Asynch I/O SleepEx N/A N/A Alertable wait
Asynch I/O WaitForMultipleObjects (file handles) poll, select N/A
Asynch I/O WaitForMultipleObjectsEx N/A N/A Alertable wait
Asynch I/O WriteFileEx N/A N/A Extended I/O with completion routine
Asynch I/O WaitForSingleObjectEx waitpid N/A Alertable wait

2. Memory & DLL
Subject Windows UNIX C Library
Mapped Files CreateFileMapping shmget N/A
Mapped Files MapViewOfFile mmap, shmat N/A
Mapped Files MapViewOfFileEx mmap, shmat N/A
Mapped Files OpenFileMapping shmget N/A
Mapped Files UnmapViewOfFile munmap, shmdt, shmctl N/A
Memory Mgt GetProcessHeap N/A N/A
Memory Mgt GetSystemInfo N/A N/A
Memory Mgt HeapAlloc sbrk, brk, or C library malloc, calloc
Memory Mgt HeapCreate N/A N/A
Memory Mgt HeapDestroy N/A N/A
Memory Mgt HeapFree Use C library free
Memory Mgt HeapReAlloc Use C library realloc
Memory Mgt HeapSize N/A N/A
Shared Memory CloseHandle (map handle) shmctl N/A
Shared Memory CreateFileMapping, OpenFileMapping shmget N/A
Shared Memory MapViewOfFile shmat N/A
Shared Memory UnmapViewOfFile shmdt N/A
DLLs LoadLibrary dlopen N/A
DLLs FreeLibrary dlclose N/A
DLLs GetProcAddress dlsyn N/A
DLLs DllMain pthread_once N/A

3. Process & Thread
3.1 Process

Subject Windows UNIX C Library Comments
Process Mgt CreateProcess fork (); execl ()*, system() N/A There are 6 execxx functions
Process Mgt ExitProcess _exit exit
Process Mgt GetCommandLine argv [] argv []
Process Mgt GetCurrentProcess getpid* N/A
Process Mgt GetCurrentProcessId getpid* N/A
Process Mgt GetEnvironmentStrings N/A getenv
Process Mgt GetEnvironmentVariable N/A getenv
Process Mgt GetExitCodeProcess wait, waitpid N/A
Process Mgt GetProcessTimes times, wait3, wait4 N/A
Process Mgt GetProcessWorkingSetSize wait3, wait4 N/A
Process Mgt N/A execl*, execv*, execle*, execve*, execlp*, execvp* N/A Windows does not have a direct equivalent
Process Mgt N/A fork, vfork N/A Windows does not have a direct equivalent
Process Mgt N/A getppid N/A No parent/child relationships in Windows
Process Mgt N/A getgid, getegid N/A No process groups in Windows
Process Mgt N/A getpgrp N/A
Process Mgt N/A setpgid N/A
Process Mgt N/A setsid N/A
Process Mgt N/A tcgetpgrp N/A
Process Mgt N/A tcsetpgrp N/A
Process Mgt OpenProcess N/A N/A
Process Mgt SetEnvironmentVariable putenv N/A putenv is not part of the Standard C library
Process Mgt TerminateProcess kill N/A
Synch: Process WaitForMultipleObjects (process handles) waitpid N/A
Synch: Process WaitForSingleObject (process handle) wait, waitpid N/A
Timers KillTimer alarm (0) N/A
Timers SetTimer alarm N/A
Timers Sleep sleep N/A
Timers Sleep poll or select, no file descriptor N/A

3.2 Thread
Subject Windows UNIX/Pthreads Comments
Thread Mgt CreateRemoteThread N/A
TLS TlsAlloc pthread_key_alloc
TLS TlsFree pthread_key_delete
TLS TlsGetValue pthread_getspecific
TLS TlsSetValue pthread_setspecific
Thread Mgt CreateThread, _beginthreadex pthread_create
Thread Mgt ExitThread, _endthreadex pthread_exit
Thread Mgt GetCurrentThread pthread_self
Thread Mgt GetCurrentThreadId N/A
Thread Mgt GetExitCodeThread pthread_yield
Thread Mgt ResumeThread N/A
Thread Mgt SuspendThread N/A
Thread Mgt TerminateThread pthread_cancel pthread_cancel is safer
Thread Mgt WaitForSingleObject(thread handle) pthread_join
Thread Priority GetPriorityClass pthread_attr_getschedpolicy, getpriority
Thread Priority GetThreadPriority pthread_attr_getschedparam
Thread Priority SetPriorityClass pthread_attr_setschedpolicy, setpriority, nice
Thread Priority SetThreadPriority pthread_attr_setschedparam
Note: Pthreads, while a part of all modern UNIX offerings, are available on non-UNIX systems as well.

3.3 Synchronization
Subject Windows UNIX/Pthreads Comments
Synch: CritSec DeleteCriticalSection Use mutexes to emulate critical sections. Some systems provide proprietary equivalents. C library is not applicable
Synch: CritSec EnterCriticalSection C library is not applicable
Synch: CritSec InitializeCriticalSection
Synch: CritSec LeaveCriticalSection
Synch: Event CloseHandle (event handle) pthread_cond_destroy
Synch: Event CreateEvent pthread_cond_init
Synch: Event PulseEvent pthread_cond_signal Manual-reset event
Synch: Event ResetEvent N/A
Synch: Event SetEvent pthread_cond_broadcast Auto-reset event
Synch: Event WaitForSingleObject (event handle) pthread_cond_wait
Synch: Event WaitForSingleObject (event handle) pthread_timed_wait
Synch: Mutex CloseHandle (mutex handle) pthread_mutex_destroy
Synch: Mutex CreateMutex pthread_mutex_init
Synch: Mutex ReleaseMutex pthread_mutex_unlock
Synch: Mutex WaitForSingleObject (mutex handle) pthread_mutex_lock
Synch: Sem CreateSemaphore semget
Synch: Sem N/A semctl Windows does not directly support all these options
Synch: Sem OpenSemaphore semget
Synch: Sem ReleaseSemaphore semop (+)
Synch: Sem WaitForSingleObject (semaphore handle) semop (-) Windows can wait for only one count

3.4 IPC
Subject Windows UNIX C Library Comments
IPC CallNamedPipe N/A N/A CreateFile, WriteFile, ReadFile, CloseHandle
IPC CloseHandle (pipe handle) close, msgctl pclose Not part of the Standard C library—see Stevens
IPC ConnectNamedPipe N/A N/A
IPC CreateMailslot N/A N/A
IPC CreateNamedPipe mkfifo, msgget N/A
IPC CreatePipe pipe popen Not part of the Standard C library—see Stevens
IPC DuplicateHandle dup, dup2, or fcntl N/A Or use file names CONIN$, CONOUT$
IPC GetNamedPipeHandleState stat, fstat, lstat64 N/A
IPC GetNamedPipeInfo stat, fstat, lstat N/A
IPC ImpersonateNamedPipeClient N/A N/A
IPC PeekNamedPipe N/A N/A
IPC ReadFile (named pipe handle) read (fifo), msgsnd N/A
IPC RevertToSelf N/A N/A
IPC SetNamedPipeHandleState N/A N/A
IPC TransactNamedPipe N/A N/A WriteFile; ReadFile
IPC WriteFile (named pipe handle) write (fifo), msgrcv N/A
Misc. GetComputerName uname N/A
Misc. SetComputerName N/A N/A
Security SetNamedPipeIdentity Use directory sticky bit N/A

4. Misc
4.1 Security
Subject Windows UNIX Comments
Security AddAccessAllowedAce chmod, fchmod C library does not support security
 
Security AddAccessDeniedAce chmod, fchmod
Security AddAuditAce N/A
Security CreatePrivateObjectSecurity N/A
Security DeleteAce chmod, fchmod
Security DestroyPrivateObjectSecurity N/A
Security GetAce stat*, fstat*, lstat
Security GetAclInformation stat*, fstat*, lstat
Security GetFileSecurity stat*, fstat*, lstat
Security GetPrivateObjectSecurity N/A
Security GetSecurityDescriptorDacl stat*, fstat*, lstat
Security GetUserName getlogin
Security InitializeAcl N/A
Security InitializeSecurityDescriptor Umask
Security LookupAccountName getpwnam, getgrnam
Security LookupAccountSid getpwuid, getuid, geteuid
Security N/A getpwend, setpwent, endpwent
Security N/A getgrent, setgrent, endgrent
Security N/A Setuid, seteuid, setreuid
Security N/A Setgid, setegid, setregid
Security OpenProcessToken getgroups, setgroups, initgroups
Security SetFileSecurity chmod*, fchmod
Security SetPrivateObjectSecurity N/A
Security SetSecurityDescriptorDacl Umask
Security SetSecurityDescriptorGroup chown, fchown, lchown
Security SetSecurityDescriptorOwner chown, fchown, lchown
Security SetSecurityDescriptorSacl N/A

4.2 Exception Handling
Subject Windows UNIX C Library
SEH _try – _except Use C library signals Use C library signals
SEH _try – _finally Use C library signals Use C library signals
SEH AbnormalTermination Use C library signals Use C library signals
SEH GetExceptionCode Use C library signals Use C library signals
SEH RaiseException Use C library signals signal, raise
Signals Use _finally block Use C library atexit
Signals Use C library or terminate process kill raise
Signals Use C library Use C library signal
Signals Use SEH, VEH sigemptyset N/A
Signals Use SEH, VEH sigfillset N/A
Signals Use SEH, VEH sigaddset N/A
Signals Use SEH, VEH sigdelset N/A
Signals Use SEH, VEH sigismember N/A
Signals Use SEH, VEH sigprocmask N/A
Signals Use SEH, VEH sigpending N/A
Signals Use SEH, VEH sigaction N/A
Signals Use SEH, VEH sigsetjmp N/A
Signals Use SEH, VEH siglongjmp N/A
Signals Use SEH, VEH sigsuspendf N/A
Signals Use SEH, VEH psignal N/A
Signals Use SEH, VEH, or C library Use C library abort
Note: Many UNIX vendors provide proprietary exception handling capabilities.

4.3 System Information & Time
Subject Windows
UNIX C Library Comments
System Info GetDiskFreeSpace N/A N/A
System Info GetSystemInfo getrusage N/A
System Info GetVersion uname N/A
System Info GetVolumeInformation N/A N/A
System Info GlobalMemoryStatus getrlimit N/A
System Info Various defined constants sysconf, pathconf, fpathconf N/A
Time GetSystemTime Use C library time, gmtime
Time See ls program,
Use C library asctime
Time CompareFileTime Use C library difftime Compare "calendar" times
Time FileTimeToLocalFileTime, FileTimeToSystemTime Use C library localtime
Time FileTimeToSystemTime Use C library gmtime
Time GetLocalTime Use C library time, localtime
Time See touch program,
Use C library strftime
Time SetLocalTime N/A N/A
Time SetSystemTime N/A N/A
Time Subtract file times Use C library difftime
Time SystemTimeToFileTime Use C library mktime

 

'Programing > C' 카테고리의 다른 글

bzero와 bcopy 윈도우에서 쓰기  (0) 2015.05.22
unix의 drand48()와 srand48() windows에서 사용하기  (0) 2015.05.22
Posted by duehd88
,