Linux C
一些函数
所属的头文件
在编写程序时,有时总是不记得所使用的函数在哪个库函数中。现在先把自己以前经常
用到的函数头文件总结一下。
有不对的地方还请指教。
1
,系统调用
文件的操作函数
#inlclude
int open(char *name,int how)
第二个参数,
O_RDONLY O_WRONL
Y O_RDWR O_CREAT
#include
int close(int fd)
size_t read(int fd,void *buf, size_t count)
size_t write(int fd,const void *buf,size_t count)
sleep(1)
系统睡眠一秒钟,最小单位为一秒。
#define msleep(x) usleep(x*1000)
msleep(500);
系统睡眠
0.5
秒
#include
perror("
会出现错误的函数名
")
#include
char *strerror(int errnum)
依据错误代码
errnum
来查找错误原因字符串
char *strcpy(char *dest,const char *src)
int strcmp(char *s1,const char *s2) s1
若等于
s2
的值则返回
0
值
int strncmp(char *s1,const char *s2,int n)
前
n
个字符串比较
2,
进程控制函数
#include
pid_t fork(void)
子进程中返回
0
父进程中返回子进程
ID
出错返回
-1
pid_t getpid(void)
pid_t getppid(void)
pid_t vfork(void)
exec
函数族
进程
pid
的类型为
pid_t
类型,它包含于
#include
若定义一个进程
pid
变量,
则需要包含此头文件
exit(n)
结束进程
父进程可以由
wait
函数来获得子进程结束装状态。
在进程结束的时候,会关闭文件描述符号,做一些清理工作,只保留进程返回状态等信息
调用
exit()
,子进程会关闭所有打开的进程描述符
exit
会作清理工作,比如说,释放内存
(在
C++
里面会主动的调用析构函数,
)
,关闭文件句柄的工作,包括刷新
IO
流。
_exit(n)
直接退出,不会做一些清理工作,也不会关闭文件描述符。
#include
pid_t wait(int *status)
等待任意子进程结束。子进程结束状态值由
status
返回。
如
WEXITSTATUS(status)
可以获得
exit(2)
中返回的值,
status=2
,这样就可以知道所等待的
为哪个进程。如果不用这个宏转换,则
status=512.