Sie sind auf Seite 1von 1

Referência C POSIX

Basic I/O Mutex


Int open(const char *filename, int flags[, mode_t mode]); int pthread_mutex_init (pthread_mutex_t *restrict mutex,
ssize_t read(int filedes, void *buffer, size_t size); const pthread_mutexattr_t *restrict attr);
ssize_t write(int filedes, const void *buffer, size_t size); int pthread_mutex_destroy (pthread_mutex_t *mutex);
off_t lseek(int filedes, off_t offset, int whence); int pthread_mutexattr_init (pthread_mutexattr_t *attr);
int close(int fd); int pthread_mutexattr_destroy (pthread_mutexattr_t *attr);
int dup(int oldfd);
int dup2(int oldfd, int newfd); int pthread_mutex_lock (pthread_mutex_t *mutex);
int pthread_mutex_trylock (pthread_mutex_t *mutex);
Pipe int pthread_mutex_unlock (pthread_mutex_t *mutex);
int pipe(int filedes[2]);
ssize_t read(int filedes, void *buffer, size_t size); Semaphore
ssize_t write(int filedes, const void *buffer, size_t size); int sem_init(sem_t *sem, int pshared, unsigned int value);
int sem_wait(sem_t *sem);
Named Pipe (FIFO) int sem_post(sem_t *sem);
int mkfifo(const char *filename, mode_t mode); int sem_getvalue(sem_t *sem, int *valp);
ssize_t read(int filedes, void *buffer, size_t size); int sem_destroy(sem_t *sem);
ssize_t write(int filedes, const void *buffer, size_t size);
Condition Variables
Sockets int pthread_cond_init(pthread_cond_t *restrict cond,
#define UNIX_PATH_MAX 108 const pthread_condattr_t *restrict attr);
struct sockaddr_in { struct sockaddr_un { int pthread_cond_destroy(pthread_cond_t *cond);
short sin_family; sa_family_t sun_family; int pthread_condattr_init(pthread_condattr_t *attr);
u_short sin_port; char sun_path[UNIX_PATH_MAX]; int pthread_condattr_destroy(pthread_condattr_t *attr);
struct in_addr };
sin_addr; int pthread_cond_wait(pthread_cond_t *restrict cond,
char sin_zero[8]; pthread_mutex_t *restrict mutex);
} int pthread_cond_signal(pthread_cond_t *cond);
int socket(int domain, int type, int protocol); int pthread_cond_broadcast(pthread_cond_t *cond);
int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen);
int listen(int sockfd, int backlog); Spin Lock
int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen); int pthread_spin_init(pthread_spinlock_t *lock, int pshared);
int connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen); int pthread_spin_destroy(pthread_spinlock_t *lock);
ssize_t read(int fd, void *buf, size_t count); int pthread_spin_lock(pthread_spinlock_t *lock);
ssize_t write(int fd, const void *buf, size_t count); int pthread_spin_trylock(pthread_spinlock_t *lock);

Processes Read Write Lock


pid_t fork(void); int pthread_rwlock_init(pthread_rwlock_t *restrict rwlock,
pid_t wait(int *status); const pthread_rwlockattr_t *restrict attr);
pid_t waitpid(pid_t pid, int *status, int options); int pthread_rwlock_destroy(pthread_rwlock_t *rwlock);
int pthread_rwlock_rdlock(pthread_rwlock_t *rwlock);
WIFEXITED(status) (TRUE se terminação normal) int pthread_rwlock_tryrdlock(pthread_rwlock_t *rwlock);
WEXITSTATUS(status) int pthread_rwlock_trywrlock(pthread_rwlock_t *rwlock);
int pthread_rwlock_wrlock(pthread_rwlock_t *rwlock);
WIFSIGNALED(status) (TRUE se terminação anormal) int pthread_rwlock_unlock(pthread_rwlock_t *rwlock);
WTERMSIG(status)
Signals
WIFSTOPPED(status) (TRUE se o processo foi parado) struct sigaction {
WSTOPSIG(status) void (*sa_handler)(int); // addr da função, SIG_IGN ou SIG_DFL
sigset_t sa_mask;
void exit(int status) int sa_flags;
};
int execl(const char *path, const char *arg0, ... /*, (char *)0 */); int sigaction(int signum, const struct sigaction *act,
int execle(const char *path, const char *arg0, ... /*, (char *)0, struct sigaction *oldact);
char *const envp[]*/); int sigemtyset(sigset_t *set);
int execlp(const char *file, const char *arg0, ... /*, (char *)0 */); int sigfillset(sigset_t *set);
int execv(const char *path, char *const argv[]); int sigaddset(sigset_t *set, int signo);
int execve(const char *path, char *const argv[], char *const envp[]); int sigdelset(sigset_t *set, int signo);
int execvp(const char *file, char *const argv[]); int sigismember(sigset_t *set, int signo);
int sigprocmask(int how, const sigset_t *set, sigset_t *oset);
Threads
int pthread_create(pthread_t *restrict thread, const pthread_attr_t * attr,
void *(*start_routine)(void*), void *restrict arg);
void pthread_exit (void *value_ptr);
int pthread_attr_destroy (pthread_attr_t *attr);
int pthread_attr_init (pthread_attr_t *attr);
int pthread_join (pthread_t thread, void **value_ptr);
int pthread_detach (pthread_t thread);
int pthread_attr_getdetachstate (const pthread_attr_t *attr, int *detachstate);
int pthread_attr_setdetachstate (pthread_attr_t *attr, int detachstate);

Das könnte Ihnen auch gefallen