Chapters 2 and 3: File and Directory Management
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 |
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, Program 3-2 | 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, Program 3-3 | 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 |