1、open()

头文件:#include <unistd.h>

函数原型:int open(const char *pathname, int flags);

 int open(const char *pathname, int flags, mode_

t mode);

函数说明:flags打开文件方式

 mode创建文件夹的权限

返回值:成功返回文件描述符,失败返回-1

2、close()

头文件:#include <unistd.h>

函数原型:int close(int fd);

返回值:成功返回0,失败返回-1.

3、read()

头文件:#include <unistd.h>

函数原型:size_t read(int fd, void *buf, size_t count);

返回值:成功返回读取的字节数,返回0则读取结束。

4、write()

头文件:#include <unistd.h>

函数原型:size_t write(int fd, const void *buf, size_t

count);

返回值:成功返回写入的字节数,失败返回-1。

5、ioctl()

头文件:#include <sys/ioctl.h>

函数原型:int ioctl(int fd, int request);

函数说明:ioctl()提供了一个用于控制设备及其描述符的和配置底层服务的接口。

返回值:成功返回0,失败返回-1。

6、fork()

头文件:#include <unistd.h>

函数原型:pid_t fork();

返回值:成功,父进程返回子进程pid,子进程返回0,失败-1。

7、getpid()

头文件:#include <unistd.h>

函数原型:pid_t getpid();

函数说明:获得调用进程的ID。

8、getppid()

头文件:#include <unistd.h>

函数原型:pid_t getppid();

函数说明:获得父进程的ID。

9、exit()

头文件:#include <stdlib.h>

函数原型:void exit(int status);

10、_exit()

头文件:#include <unistd.h>

函数原型:void _exit(int status);

函数说明:status 返回的状态。

11、wait()和waitpid()

头文件:#include <sys/wait.h>

函数原型:pid_t wait(int *status);

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

12、exec函数族

头文件:#include <unistd.h>

函数原型:

int execl(const char *path, const char *arg, ...);

int execv(const char *path, char *const argv[]);

int execle(const char *path, const char *arg, ..., char   *const envp[]);

int execve(const char *path, char *const argv[], char *const

 envp[]);

int execlp(const char *file, const char *arg, ...);

int execvp(const char *file, char *const argv[]);

函数说明:

(1)前4个取路径名作为参数,后两个取文件名作为参数。

(2)与参数传递有关(l表示list,v表示vector)。execl、execlp 以及execle要求将新程序的每个命令行参数(command-line arguments )都指定为一个单独的参数,以NULL指针表明参数的 结束。另外三个函数(execv、execvp和execve),首先须要建立 一个指向各参数的指针数组,然后将该数组的地址作为这三个函 数的参数。

(3)与向新程序传递环境变量表有关。以e结尾的两个函数 (execle和execve)可以传递一个指向环境字符串指针数组的指 针。其它四个函数则使用调用进程中的environ变量为新进程复 制现有的环境。

13、kill() //发送信号

头文件:#include <signal.h>

函数原型:int kill(pid_t pid, int sig);

函数说明:pid 发送信号的目标进程

 sig 信号的类型

返回值:成功 0,失败 -1.。

14、raise()//进程给自己发信号

头文件:#include <signal.h>

函数原型:int raise(int sig);

15、alarm()//一段时间后给自己发送SIGALRM信号

头文件:#include <unistd.h>

函数原型:unsigned int alarm(unsigned int seconds);

16、signal()//信号处理

头文件:#include <signal.h>

函数原型:sighandler_t signal(int signum, sighandler_t   handler);

17、sigaction()//POSIX标准

头文件:#include <signal.h>

函数原型:int sigaction(int signum, const struct sigaction    *act,struct sigaction *oldact);

函数说明:act表示要设置的对信号的新处理方式。

 oldact表示原来对信号的处理方式。

返回值:函数执行成功返回0,失败返回-1。

18、pipe()//普通管道

头文件:#include <unistd.h>

函数原型:int pipe(int filedes[2]);

函数说明:写到filedes[1]的所有数据都可以从filedes[0]读回来。

19、mkfifo()//命名管道

头文件:#include <unistd.h>

函数原型:int mkfifo(const char *pathname, mode_t mode);

  1. semget() (System V信号量)

头文件:#include <sys/types.h>

  #include <sys/ipc.h>

        #include <sys/sem.h>

函数原型:int semget(key_t key, int nsems, int semflg);

函数说明:该函数的作用是创建一个新信号量或取得一个已有信  号量的键。参数key是一个整数值,不相关的进程可  以通过它访问同一个信号量。程序对所有信号量的访  问都是间接的,它先提供一个键,再由系统生成一个  相应的信号量标识符。只有 semget函数才能直接使  用信号量键,所有其他的信号量函数都是使用 semget  函数返回的信号量标识符。

21、semop()

头文件:#include <sys/types.h>

  #include <sys/ipc.h>

  #include <sys/sem.h>

函数原型:int semop(int semid, struct sembuf *sops, unsigned     nsops);

函数说明:该函数用于改变信号量的值。

22、semctl()

头文件:#include <sys/types.h>

  #include <sys/ipc.h>

  #include <sys/sem.h>

函数原型:int semctl(int semid, int semnum, int cmd, ...);

函数说明:该函数用来控制信号量信息。

23、shmget()

头文件:#include <sys/ipc.h>

  #include <sys/shm.h>

函数原型:int shmget(key_t key, size_t size, int shmflg);

函数说明:与信号量一样,程序需要提供一个参数key,它有效 地为共享内存命名。shmget函数返回一个共享内存标识符, 该标识符用于后续的共享内存函数。参数size以字节为单 位指定需要共享的内存容量。参数 shmflg包含9个比特 的权限标志,它们的作用与创建文件时使用的 mode标志 一样。

24、shmat()

头文件:#include <sys/ipc.h>

    #include <sys/shm.h>

函数原型:void *shmat(int shmid, const void *shmaddr, int   shmflg);

函数说明:第一次创建共享内存段时,它不能被任何进程访问。 要想启用对该共享内存的访问,必须将其连接到一个进程的地址 空间中,这项工作由shmat函数完成。

shmid是由shmget返回的共享内存标识符。

shmaddr指定共享内存连接到当前进程中的地址位置。它通常

是一个空指针,表示让系统来选择共享内存出现的地址。

shmflg是一组位标志。

25、shmdt()

头文件:#include <sys/ipc.h>

    #include <sys/shm.h>

函数原型:int shmdt(const void *shmaddr);

函数说明:shmdt函数的作用是将共享内存从当前进程中分离。

26、shmctl()

头文件:#include <sys/ipc.h>

    #include <sys/shm.h>

   函数原型:int shmctl(int shmid, int cmd, struct shmid_ds    *buf);

函数说明:该函数是共享内存的控制函数shmid是shmget返回的 共享内存标识符。cmd是要采取的动作,有三个取值。

27、msgget()

头文件:#include <sys/types.h>

  #include <sys/ipc.h>

  #include <sys/msg.h>

函数原型:int msgget(key_t key, int msgflg);

函数说明:msgget函数的作用是创建和访问一个消息队列。key 用来命名某个特定的消息队列。msgflg由9个权限标志组成。

28、msgsnd()

头文件:#include <sys/types.h>

  #include <sys/ipc.h>

     #include <sys/msg.h>

函数原型:int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg);

函数说明:msgsnd函数用来把消息添加到消息队列中。

29、msgrcv()

头文件:#include <sys/types.h>

  #include <sys/ipc.h>

     #include <sys/msg.h>

函数原型:ssize_t msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg);

函数说明:msgrcv函数从一个消息队列中获取消息。

30、msgctl()

头文件:#include <sys/types.h>

  #include <sys/ipc.h>

     #include <sys/msg.h>

函数原型:int msgctl(int msqid, int cmd, struct msqid_ds * buf);

函数说明:msgctl函数的作用与共享内存的控制函数非常类似。

31、pthread_create()

头文件:include <pthread.h>

函数原型:int pthread_create(pthread_t *thread, const pthread_attr_t *attr,void *(*start_routine)(void*), void *arg);

函数说明:thread指向一个pthread_t型变量,用于返回线程ID。

attr:用于定制各种不同的线程属性,一般设为NULL。

start_routine:新线程的工作函数。

arg:传递给执行函数的参数。

32、pthread_self()

头文件:#include <pthread.h>

函数原型:pthread_t pthread_self(void);

函数说明:线程ID的获取方式有两种:通过pthread_create()返 回给调用者;通过pthread_self()获得其自身的ID。

33、pthread_equal()

头文件:#include <pthread.h>

函数原型:int pthread_equal(pthread_t t1, pthread_t t2);

函数说明:可以使用pthread_equal()函数检查两个线程ID是否  相同

34、pthread_exit()

头文件:#include <pthread.h>

函数原型:void pthread_exit(void *value_ptr);

函数说明:调用pthread_exit()等价于在工作函数中执行 return,区别是pthread_exit()可以在工作函数调用的任何函数 中被调用。

35、pthread_join()

头文件:#include <pthread.h>

函数原型:int pthread_join(pthread_t thread, void  **value_ptr);

返回值:成功返回0。

36、pthread_detach()

头文件:#include <pthread.h>

函数原型:int pthread_detach(pthread_t thread);

函数说明:线程分离。

10-03 13:58