Linux学习常用函数笔记

进程篇:

//功能:创建子线程获取进程编号

pid_t fork(void);

pid_t getpid(void);

pid_t getppid(void);

 

//功能:完全替换当前线程的内容

extern char **environ;

int execl(const char *path, const char *arg, .../* (char *) NULL */);
int execlp(const char *file, const char *arg, .../* (char *) NULL */);
int execle(const char *path, const char *arg, .../*, (char *) NULL, char * const envp[] */);
int execv(const char *path, char *const argv[]);
int execvp(const char *file, char *const argv[]);
int execvpe(const char *file, char *const argv[],char *const envp[]);

 

//功能:等待子线程结束

pid_t wait(int *status);

pid_t waitpid(pid_t pid, int *status, int options);

int waitid(idtype_t idtype, id_t id, siginfo_t *infop, int options); /* This is the glibc and POSIX interface; see NOTES for information on the raw system call. */

//功能:创建守护进程

pid_t setsid(void);

//功能:创建系统日志

void openlog(const char *ident, int option, int facility);
void syslog(int priority, const char *format, ...);
void closelog(void);

 

信号篇:

//功能:信号集函数

int sigemptyset(sigset_t *set);

int sigfillset(sigset_t *set);

int sigaddset(sigset_t *set, int signum);

int sigdelset(sigset_t *set, int signum);

int sigismember(const sigset_t *set, int signum);

 

//功能:原子化信号等待操作(替换pause())

int sigsuspend(const sigset_t *mask);(mask 为 sigprocmask备份的oldset)

//功能:信号屏蔽字

int sigprocmask(int how, const sigset_t *set, sigset_t *oldset);

//功能:信号处理函数(替换signal())

int sigaction(int signum, const struct sigaction *act,struct sigaction *oldact);

//功能:定时时间函数(替换alarm())

int getitimer(int which, struct itimerval *curr_value);
int setitimer(int which, const struct itimerval *new_value, struct itimerval *old_value);

//功能:向指定进程或进程组发送指定信号

int kill(pid_t pid, int sig);

 

线程篇:

Compile and link with -pthread. //编译、链接时需要加-pthread

 

//功能:创建线程

int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine) (void *), void *arg);

//功能:等待线程执行完成并收尸

int pthread_join(pthread_t thread, void **retval);

//功能:线程退出

void pthread_exit(void *retval);

//功能:线程压栈钩子函数

void pthread_cleanup_push(void (*routine)(void *), void *arg);

//功能:线程出栈钩子函数
void pthread_cleanup_pop(int execute);

//功能:获取当前线程标识

pthread_t pthread_self(void);

//功能:判断两个线程是否为同一个线程

int pthread_equal(pthread_t t1, pthread_t t2);

//功能:取消线程

int pthread_cancel(pthread_t thread);

//功能:设置取消点

void pthread_testcancel(void);

//功能:线程分离

int pthread_detach(pthread_t thread);

//功能:创建互斥量(可设置属性)
int pthread_mutex_init(pthread_mutex_t *restrict mutex, const pthread_mutexattr_t *restrict attr);

//功能:创建互斥量
pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;

//功能:销毁互斥量

int pthread_mutex_destroy(pthread_mutex_t *mutex);

//功能:给互斥量加锁

int pthread_mutex_lock(pthread_mutex_t *mutex);

//功能:尝试给互斥量加锁
int pthread_mutex_trylock(pthread_mutex_t *mutex);

//功能:给互斥量解锁
int pthread_mutex_unlock(pthread_mutex_t *mutex);

//功能:创建信号(可设置属性)

int pthread_cond_init(pthread_cond_t *restrict cond, const pthread_condattr_t *restrict attr);

//功能:创建信号
pthread_cond_t cond = PTHREAD_COND_INITIALIZER;

//功能:销毁信号

int pthread_cond_destroy(pthread_cond_t *cond);

//功能:广播信号(所有线程都可收到)

int pthread_cond_broadcast(pthread_cond_t *cond);

//功能:发送信号(只有一个线程可收到,但不确定是那个线程)
int pthread_cond_signal(pthread_cond_t *cond);

 

高级IO篇:

 

//功能:事件驱动的文件集

int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout);

void FD_CLR(int fd, fd_set *set);
int FD_ISSET(int fd, fd_set *set);
void FD_SET(int fd, fd_set *set);
void FD_ZERO(fd_set *set);

//功能:对文件即设置监控事件

int poll(struct pollfd *fds, nfds_t nfds, int timeout);

//功能:创建epoll文件

int epoll_create(int size);

//功能:设置epoll监测事件

int epoll_ctl(int epfd, int op, int fd, struct epoll_event *event);

//功能:启动epoll监测

int epoll_wait(int epfd, struct epoll_event *events, int maxevents, int timeout);

//功能:内存映射

void *mmap(void *addr, size_t length, int prot, int flags,int fd, off_t offset);

//功能:取消功能映射
int munmap(void *addr, size_t length);

//功能:文件锁

int lockf(int fd, int cmd, off_t len);

int flock(int fd, int operation);

 

多进程通讯

//功能:创建匿名管道

int pipe(int pipefd[2]);

//功能:创建命名管道

int mkfifo(const char *pathname, mode_t mode);

//功能:系统IPC键值

key_t ftok(const char *pathname, int proj_id);

//功能:获取消息队列ID

int msgget(key_t key, int msgflg);

//功能:通过队列发送消息

int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg);

//功能:通过队列接收消息

ssize_t msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp,int msgflg);

//功能:获取、设置消息队列

 int msgctl(int msqid, int cmd, struct msqid_ds *buf);

 //功能:获取信号量ID注册信号量个数

int semget(key_t key, int nsems, int semflg);

//功能:信号量设置主要是P、V操作

int semop(int semid, struct sembuf *sops, size_t nsops);

//功能:信号量设置等

int semctl(int semid, int semnum, int cmd, ...);

//功能:获取共享内存ID

int shmget(key_t key, size_t size, int shmflg);

//功能:共享内存映射

void *shmat(int shmid, const void *shmaddr, int shmflg);

//功能:取消共享内存映射

int shmdt(const void *shmaddr);

//功能:设置共享内存等

int shmctl(int shmid, int cmd, struct shmid_ds *buf);

 

socket通讯

//功能:将网络IP转为点分式

const char *inet_ntop(int af, const void *src, char *dst, socklen_t size);

//功能:将点分式IP转为大整数

int inet_pton(int af, const char *src, void *dst);

//功能:将主机32位数据转为网络字节序

uint32_t htonl(uint32_t hostlong);

//功能:将主机16位数据转为网络字节序

uint16_t htons(uint16_t hostshort);

//功能:将网络32位数据转为主机字节序

uint32_t ntohl(uint32_t netlong);

//功能:将网络16位数据转为主机字节序

uint16_t ntohs(uint16_t netshort);

//功能:创建socket文件描述符

int socket(int domain, int type, int protocol);

//功能:绑定IP和端口

int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen);

//功能:监听socket及监听最大监听数

int listen(int sockfd, int backlog);

//功能:连接服务器

int connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen);

//功能:接收客户端连接

int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);

//功能:接收网络流数据

ssize_t recv(int sockfd, void *buf, size_t len, int flags);

//功能:接收网络数据报数据

ssize_t recvfrom(int sockfd, void *buf, size_t len, int flags, struct sockaddr *src_addr, socklen_t *addrlen);

//功能:发送网络流数据

ssize_t send(int sockfd, const void *buf, size_t len, int flags);

//功能:发送网络数据报数据

ssize_t sendto(int sockfd, const void *buf, size_t len, int flags,const struct sockaddr *dest_addr, socklen_t addrlen);

//功能:获取socket属性

int getsockopt(int sockfd, int level, int optname, void *optval, socklen_t *optlen);

//功能:设置socket属性
int setsockopt(int sockfd, int level, int optname, const void *optval, socklen_t optlen);

 

posted @ 2022-07-21 08:58  *^VV^*  阅读(39)  评论(0编辑  收藏  举报