进程管理函数
pid_t getpid();返回当前进程的标识号PID
pid_t fork();创建一个进程。
pid_t vfork();与fork()相似,vfork保证子进程先运行,在它调用exec或exit之后父进程才可能被调用。
exec函数族:用于把一个新程序载入调用进程的内存空间,来改变进程的执行代码,从而形成新进程。execve才是真正意义上的系统调
用,其他的都是在此基础上的库函数。
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[]);
pid_t wait(int *status);为了实现进程间的同步,让进程进入休眠状态,知道被唤醒。
pid_t waitpid(pid_t pid,int *status,int options);与wait相似,但区别是它要等待指定的pid进程退出。
options:WNOHANG,要求如果没有子进程退出就立即返回。
WUNTRACED,对已经停止但本不用报告状态的子进程,该调用也从等待中返回并报告状态。
unsigned int sleep(unsigned int seconds);使进程挂起指定的时间。
clock_k times(struct tms *buf);获取当前进程的时间信息。
exit()和_exit()
void _exit(int status);直接使进程停止运行,清除其在使用的内存空间,并销毁其在内核中的各种数据结构
exit在此基础上加了其他一些工序:检查文件打开情况,把文件缓冲区中的内容写回文件。
文件操作函数
int open(const char *pathname,int flags);
int open(const char *pathname,int flags,...,mode_t mode);
int create(const char *pathname,mode_t mode);
int close(int filedes);
size_t read(int filedes,void *buff,size_t nbytes);
ssize_t write(int filedes,void *buff,size_t nbytes);
off_t lseek(int filedes,off_t offset,int whence);
int dup(int oldfd);复制一个现存的文件描述符
int dup2(int oldfd,int newfd);同上
int ioctl(int d,int request,...);用来控制设备
文件属性
int access(const char *pathname,int mode);获得用户对文件的访问许可
int stat(const char *file_name,struct stat *buf);获取文件状态信息
int fstat(int filedes,struct stat *buf);
int lstat(const char *file_name,struct stat *buf);
目录文件操作
void rewinddir(DIR *dir);
void seekdir(DIR *dir,off_t offset);
off_t telldir(DIR *dir):
DIR *opendir(const char *name);
struct dirent *readdir(DIR *dir);
int closedir(DIR *dir);
int mkdir(const char *path,mode_t mode);
int rmdir(const char *path,mode_t mode);
管道文件
int pipe(int filedes[2]);
int mkfifo(const char *pathname,mode_t mode);
时间函数
time_t time(time_t *t);
int gettimeofday(struct timeval *tv,struct timezone *tz);
int getitimer(int which,struct itimerval *value);
int setitimer(int which,struct itimerval *newvalue);
信号处理函数
int kill(pid_t pid,int sig);
int raise(int sig);
void abort(void);
unsigned int alarm(unsigned int seconds);
int setitmer(int which,const struct itimerval *value,struct itimerval *ovalue);
int sigqueue(pid_t pid,int sig,const union sigval val);
int pause(void);
void (*signal (int signum,void (*handle)(int)))(int);
int sigaction(int signum,const struct sigaction *act,struct sigaction *oldact);