POSIX Compatibility List
Version 0.1 (Draft), 2007/08/07
File and Directories - <unistd.h>
Name |
Synopsis |
Description |
Support? |
getcwd |
char *getcwd(char *buf, size_t size); |
get current working directory |
|
mkdir |
int mkdir(const char *pathname, mode_t mode); |
create a directory |
|
rmdir |
int rmdir(const char *pathname); |
delete a directory |
|
chdir |
int chdir(const char *path); |
change working directory |
|
link |
int link(const char *oldpath, const char *newpath); |
make a new name for a file |
X |
unlink |
int unlink(const char *pathname); |
delete a name and possibly the file it refers to |
|
rename |
int rename(const char *oldpath, const char *newpath); |
change the name or location of a file |
|
stat |
int stat(const char *file_name, struct stat *buf); |
get file status |
|
chmod |
int chmod(const char *path, mode_t mode); |
change permissions of a file |
No |
chown |
int chown(const char *path, uid_t owner, gid_t group); |
change ownership of a file |
No |
utime |
int utime(const char *filename, struct utimbuf *buf); |
change access and/or modification times of an inode |
X |
opendir |
DIR *opendir(const char *name); |
open a directory |
|
readdir |
struct dirent *readdir(DIR *dir); |
read directory entry |
|
closedir |
int closedir(DIR *dir); |
close a directory |
|
rewinddir |
void rewinddir(DIR *dir); |
reset directory stream |
|
Advanced File Operations - <unistd.h>
Name |
Synopsis |
Description |
Support? |
access |
int access(const char *pathname, int mode); |
check user's permissions for a file |
|
open |
int open(const char *pathname, int flags); |
open and possibly create a file or device |
|
creat |
int creat(const char *pathname, mode_t mode); |
open and possibly create a file or device |
|
close |
int close(int fd); |
close a file descriptor |
|
read |
ssize_t read(int fd, void *buf, size_t count); |
read from a file descriptor |
|
write |
ssize_t write(int fd, const void *buf, size_t count); |
write to a file descriptor |
|
fcntl |
int fcntl(int fd, int cmd); |
manipulate file descriptor |
X |
fstat |
int fstat(int filedes, struct stat *buf); |
get file status |
|
lseek |
off_t lseek(int fildes, off_t offset, int whence); |
reposition read/write file offset |
|
dup |
int dup(int oldfd); |
duplicate a file descriptor |
|
dup2 |
int dup2(int oldfd, int newfd); |
duplicate a file descriptor |
|
pipe |
int pipe(int filedes[2]); |
create pipe |
X |
mkfifo |
int mkfifo(const char *pathname, mode_t mode); |
make a FIFO special file (a named pipe) |
X |
umask |
mode_t umask(mode_t mask); |
set file creation mask |
Not Support |
fdopen |
FILE *fdopen(int fildes, const char *mode); |
associate a stream with an existing file descriptor |
|
fileno |
int fileno(FILE *stream); |
return file descriptor of stream |
|
Processes - <unistd.h>
Name |
Synopsis |
Description |
Support? |
fork |
pid_t fork(void); |
create a child process |
|
execl |
int execl(const char *path, const char *arg, ...); |
execute a file |
X |
execle |
int execle(const char *path, const char *arg, ...) |
execute a file |
X |
execlp |
int execlp(const char *file, const char *arg, ...); |
execute a file |
X |
execv |
int execv(const char *path, char *const argv[]); |
execute a file |
X |
execve |
int execve(const char *path, char *const argv[], char *const envp[])) |
execute program |
|
execvp |
int execvp(const char *file, char *const argv[]); |
execute a file |
X |
wait |
pid_t wait(int *status); |
wait for process termination |
|
waitpid |
pid_t waitpid(pid_t pid, int *status, int options); |
wait for process termination |
|
_exit |
void _exit(int status); |
terminate the current process |
|
kill |
int kill(pid_t pid, int sig); |
send signal to a process |
|
sleep |
unsigned int sleep(unsigned int seconds); |
Sleep for the specified number of seconds |
|
pause |
int pause(void); |
wait for signal |
|
alarm |
unsigned int alarm(unsigned int seconds); |
set an alarm clock for delivery of a signal |
|
setuid |
int setuid(uid_t uid); |
set user identity |
Limited Support |
setgid |
int setgid(gid_t gid); |
set group identity |
Limited Support |
Long Jumps - <setjmp.h>
Name |
Synopsis |
Description |
Support? |
setjmp |
int setjmp(jmp_buf env); |
save stack context for non-local goto |
|
sigsetjmp |
int sigsetjmp(sigjmp_buf env, int savesigs); |
save stack context for non-local goto |
X |
longjmp |
void longjmp(jmp_buf env, int val); |
non-local jump to a saved stack context |
|
siglongjmp |
void siglongjmp(sigjmp_buf env, int val); |
non-local jump to a saved stack context |
X |
Signal Handling - <signal.h>
Name |
Synopsis |
Description |
Support? |
sigaction |
int sigaction(int sig, const struct sigaction *act, struct sigaction *oldact); |
examine and change signal action |
|
sigemptyset |
int sigemptyset(sigset_t *set); |
create an empty signal set |
X |
sigfillset |
int sigfillset(sigset_t *set); |
create a full set of signals |
X |
sigaddset |
int sigaddset(sigset_t *set, int signum); |
add a signal to a signal set |
X |
sigdelset |
int sigdelset(sigset_t *set, int signum); |
remove a signal from a signal set |
X |
sigismember |
int sigismember(const sigset_t *set, int signum); |
test a signal set for a selected member |
X |
sigprocmask |
int sigprocmask(int how, const sigset_t *set, sigset_t *oset); |
examine and change blocked signals |
|
sigpending |
int sigpending(sigset_t *set); |
examine pending signals |
|
sigsuspend |
int sigsuspend(const sigset_t *mask); |
wait for a signal |
|
Obtaining Information at Runtime - <unistd.h><pwd.h><grp.h>
Name |
Synopsis |
Description |
Support? |
getpid |
pid_t getpid(void); |
get process identification |
|
getppid |
pid_t getppid(void); |
get parent process identification |
|
getlogin |
char * getlogin(void); |
get user name |
X |
getuid |
uid_t getuid(void); |
get user identity |
Limited Support |
geteuid |
uid_t geteuid(void); |
get effective user identity |
Limited Support |
cuserrid |
char * cuserid(char *string); |
get user name |
X |
getgid |
gid_t getgid(void); |
get group identity |
Limited Support |
getegid |
gid_t getegid(void); |
get effective group identity |
Limited Support |
getpwuid |
struct passwd *getpwuid(uid_t uid); |
get password file entry based on user id |
X |
getpwnam |
struct passwd *getpwnam(const char * name); |
get password file entry based on user name |
X |
getgrgid |
struct group *getgrgid(gid_t gid); |
get group file entry based on group id |
X |
getgrnam |
struct group *getgrnam(const char *name); |
get group file entry baes on group name |
X |
getgroups |
int getgroups(int size, gid_t list[]); |
get list of supplementary group IDs |
X |
ctermid |
char *ctermid(char *s); |
get controlling terminal name |
X |
uname |
int uname(struct utsname *buf); |
get name and information about current kernel |
|
getenv |
char *getenv(const char *name); |
get an environment variable |
X |
sysconf |
long sysconf(int name); |
get configuration information at runtime |
X |
fpathconf |
long fpathconf(int filedes, int name); |
get configuration values for files |
X |
isatty |
int isatty(int desc); |
does this descriptor refer to a terminal |
X |
ttyname |
char *ttyname(int desc); |
return name of a terminal |
X |
times |
clock_t times(struct tms *buf); |
get process times |
X |
tzset |
void tzset(void); |
initialize time conversion information |
X |
Terminal I/O - <termios.h>
Name |
Synopsis |
Description |
Support? |
getpid |
pid_t getpid(void); |
get process identification |
X |
tcgetattr |
int tcgetattr(int fd, struct termios *termios_p); |
get terminal attributes |
X |
tcsetattr |
int tcsetattr(int fd, int optional_actions, struct termios *termios_p); |
set terminal attributes |
X |
tcdrain |
int tcdrain(int fd); |
wait for all output to be transmitted to the terminal |
X |
tcflow |
int tcflow(int fd, int action); |
suspend/restart terminal output |
X |
tcflush |
int tcflush(int fd, int queue_selector); |
discard terminal data |
X |
tcsendbreak |
int tcsendbreak(int fd, int duration); |
send a break to a terminal |
X |
cfgetispeed |
speed_t cfgetispeed(struct termios *termios_p); |
get input baud rate |
X |
cfgetospeed |
speed_t cfgetospeed(struct termios *termios_p); |
get output baud rate |
X |
cfsetispeed |
int cfsetispeed(struct termios *termios_p, speed_t speed); |
set input baud rate |
X |
cfsetospeed |
speed_t cfsetospeed(const struct termios *termios_p); |
set output baud rate |
X |
tcgetpgrp |
pid_t tcgetpgrp(int fd); |
get terminal foreground process group ID |
X |
tcsetpgrp |
int tcsetpgrp(int fd, pid_t pgrpid); |
set terminal foreground process group ID |
|
Process Groups and Job Control - <unistd.h>
Name |
Synopsis |
Description |
Support? |
setsid |
pid_t setsid(void); |
creates a session and sets the process group ID |
X |
setpgid |
int setpgid(pid_t pid, pid_t pgid); |
set process group |
|
getpgrp |
pid_t getpgrp(void); |
get process group |
|
|