1、函数汇总一、系统函数1.函数原型 int rand(void);功能 产生随机数头文件 #include参数 void返回值 0RAND_MAX 间一个整数( RAND_MAX=2147483647)2.函数原型 void srand(unsigned int seed);功能 设置随机数种子头文件 #include参数 一个无符号整型数,通常利用 geypid()或 time(0)的返回值返回值 无3.函数原型 int isxdigit(int c);功能 测试字符是否为 16 进制数字头文件 #include参数 字符返回值 bool 型:true(传入参数为 16 进制数);false(
2、传入参数不是 16 进制数)4.函数原型 time_t time(time_t *t);功能 取得当前时间头文件 #include参数 time_t 型的指针 t返回值 成功则返回秒数,失败返回-1;返回值存到参数 t 所指的内存5.函数原型 struct tm* gmtime(const time_t* timep);功能 将时间转换为格林威治所使用的时间头文件 #include参数 需转换的时间,time_t*类型返回值 转换结果由结构体 tm 返回6.函数原型 char* asctime(const struct tm* timeptr); 功能 将时间和日期以字符串格式表示头文件 #i
3、nclude参数 结构体 tm 指针返回值 返回一字符串表示目前当地的时间日期7.函数原型 struct tm* localtime(const time_t* timep); 功能 取得目前当地的时间和日期头文件 #include参数 time_t 结构中指针变量返回值 返回 tm 表示目前的当地时间8.函数原型 Int gettimeofday(struct timeval *tv,struct timezone *tz);功能 取得当前时间头文件 #include#include 参数 time_t 结构中指针变量返回值 返回 tm 表示目前的当地时间9.函数原型 char* geten
4、v(const char* name); 功能 取得环境变量的内容头文件 #include参数 系统变量返回值 执行成功返回指向该内容的指针;否则返回 NULL10.函数原型 int setenv(const char *name,char* value,int overwrite);功能 改变或增加环境变量头文件 #include参数 Name 为环境变量指针;value 为变量内容;overwrite 为 0 表示 value 会被忽略,为 1 表示该为 value 所指的变量内容返回值 执行成功返回 0,有错误发生返回 -111.函数原型 void* calloc(size_t nmem
5、b,size_t size); 功能 用来分配字节为 nmemb*size 的内存块头文件 #include参数 nmemb 为内存块大小; size 为内存块数量返回值 若配置成功则返回一指针,否则返回 NULL12.函数原型 void* malloc(size_t size); 功能 配置内存空间头文件 #include参数 size 表示配置内存空间的大小返回值 若配置成功则返回一指针,否则返回 NULL13.函数原型 size_t getpagesize(void) 功能 取得内存分页大小头文件 #include参数 void返回值 内存分页大小14.函数原型 void* mmap(v
6、oid * start,size_t length,int prot,int flags,int fd,off_t offsize); 功能 用来将某个文件内容映射到内存中,对该内存区域的存取即是直接对该文件内容的读写头文件 #include参数 Start 指向对应内存起始地址,通常设为 NULL;length 表示将文件中多大部分对应到内存;prot 映射区域的保护方式;flags 映射区域的特性;fd 为文件描述符;offsize 为文件映射偏移量,0 代表从文件头开始返回值 映射成功返回映射区内存起始地址,否则返回 MAP_FAILED(-1)15.函数原型 void qsort(vo
7、id *base,size_t nmemb,size_t size,int (*compar)(const void *,const void *); 功能 利用快速排序法排列数组头文件 #include参数 Base 指向要被搜索的数组开头地址;nmemb 代表数组中的元素数量; size为每一个元素的大小;compar 为一函数指针,数据相同时返回 0,不相同时返回非 0 值,返回 1 时两数据交换,返回-1 时两数据不交换返回值 void16.函数原型 Void *lfind(const void *key,const void* base,size_t *nmemb,size_t si
8、ze,int(*compar)(const void*,const void*); 功能 线性搜索:利用线性搜索在数组中从头至尾一项项查找数据头文件 #include参数 Key 指向与查找的关键数据的指针;base 指向要被搜索的数组开头地址;nmemb 代表数组中的元素数量;size 为每一个元素的大小; compar 为一函数指针,数据相同时则返回 0,不相同则返回非 0 值返回值 找到关键数据则返回找到的该笔元素地址,如果在数组中找不到关键数据则返回 NULL17.函数原型 void* bsearch(const void* key,const void *base,size_t nm
9、emb,size_tsize,int(*compar)(const void*,const void*); 功能 利用二分搜索法从排序好的数组中查找数据头文件 #include参数 Key 指向预查找的关键数据的指针;base 指向要被搜索的数组开头地址;nmemb 代表数组中的元素数量;size 为每一个元素的大小; compar 为一函数指针,数据相同时则返回 0,不相同时则返回非 0 值返回值 无二、有关文件 I/O 操作函数1.函数原型 Int system(const char* string); 功能 在进程中开始另一个进程头文件 #include参数 系统变量返回值 执行成功返回
10、执行 shell 命令的返回值;调用 /bin/sh 失败则返回 127;其他失败原因返回-1;参数 string 为空(NULL)则返回非零值2.函数原型 Int chmod(const char*path,mode_t mode);功能 改变文件权限头文件 #include#include 参数 依参数 mode 的权限来更改 path 指定文件的权限返回值 权限改变成功返回 0,失败返回 -1,错误原因存于 error3.函数原型 Mode_t umask(mode_t mask); 功能 设置建立新文件时的权限掩码头文件 #include#include 参数 4 位八进制数返回值 返
11、回值为原先系统的 umask 值4.函数原型 Int stat(const char* file_name,struct stat* buf);功能 取得文件属性头文件 #include#include 参数 将参数 file_name 所指的文件状态复制到参数 buf 所指的结构中返回值 执行成功返回 0,失败返回-1,错误代码存于 error5.函数原型 Int creat (const char*pathname,mode_t mode);功能 创建文件头文件 #include#include #include 参数 建立文件的访问路径,用来设置新增文件的权限;Mode 表示需设置的文件
12、的权限返回值 成功由内核返回一最小可用的文件描述符;若有错误发生则会返回-16.函数原型 Int open(const char* pathname,int flags);Int open(const char* pathname,int flags,mode_t mode); 功能 打开或创建文件头文件 #include#include #include 参数 打开或建立文件的访问路径,指定访问文件的命令模式,创建文件时设置文件的权限返回值 成功由内核返回一最小可用的文件描述符;若有错误发生则会返回-17.函数原型 Int close(int fd);功能 关闭文件头文件 #include参
13、数 一整型,表示文件描述符返回值 文件顺利关闭返回 0,否则返回 -18.函数原型 Size_t read(int fd,void *buf,size_t count);功能 读取文件头文件 #include参数 Fd 文件描述符Buf 存数内容的内存空间Count 读取的字节数返回值 有错误发生返回-19.函数原型 Size_t write(int fd,const void *buf,size_t count);功能 写入文件头文件 #include参数 Fd 文件描述符Buf 存数内容的内存空间Count 读取的字节数返回值 有错误发生返回-110.函数原型 Int flock (int
14、 fd,int operation);功能 锁定文件或解除锁定(用于文件加建议性锁)头文件 #include参数 Fd 文件描述符Operation 操作类型,有四种:LOCK_SH,LOCK_EX,LOCK_UN,LOCK_NB返回值 成功返回 0,否则返回-1,错误代码存于 errno11.函数原型 Int fcntl(int fd,int cmd);Int fcntl(int fd,int cmd,long arg);Int fcntl(int fd,int cmd,struct flock*lock);功能 文件描述符操作(用于文件加强制性锁)头文件 #include#include
15、参数 Fd 文件描述符Cmd 表示欲操作的类型Lock 为记录锁的具体状态返回值 成功返回 0,否则返回-1,错误代码存于 errno12.函数原型 FILE* fopen(const char*path,const char*mode);功能 打开或创建文件头文件 #include参数 Path 表示欲打开或创建的文件路径Mode 表示流状态返回值 成功则返回指向 FILE 的指针;否则返回 NULL13.函数原型 Int fclose(FILE* stream);功能 关闭文件头文件 #include参数 一个文件流返回值 成功返回 0,否则返回 EOF14.函数原型 Int fgetc(
16、FILE* stream);功能 从文件中读取一个字符头文件 #include参数 一个文件流返回值 成功返回读取字符,否则返回 EOF15.函数原型 Int fputc(int c,FILE* stream);功能 将一指定字符写入文件流头文件 #include参数 待写入的字符和一个文件流返回值 成功返回写入的字符,否则返回 EOF16.函数原型 Char* fgets(char* s,int size,FILE* stream);功能 从文件中读取一字符串头文件 #include参数 S:内存地址Size:字符串长度Stream:一个文件流返回值 成功返回 s 指针,否则返回 EOF17
17、.函数原型 Int fputs(const char*s,FILE* stream);功能 向文件中写入一字符串头文件 #include参数 待写入的字符串和一文件流返回值 成功返回写入字符个数,否则返回 EOF18.函数原型 Size_t fwrite(const void* ptr,size_t size,size_t nmemb,FILE*stream);功能 将数据写入文件流头文件 #include参数 Ptr:欲写入的数据地址Size:字符串长度Nmemb:字符串数目Stream:一个文件流返回值 成功返回实际写入的 nmemb 数目,否则返回 EOF19.函数原型 Size_t f
18、read( void* ptr,size_t size,size_t nmemb,FILE*stream);功能 从文件流中读取数字头文件 #include参数 Ptr:从文件读取的内容存放到 ptr 所指的内存首地址Size:字符串长度Nmemb:字符串数目Stream:一个文件流返回值 成功返回实际读取的 nmemb 数目,否则返回 EOF20.函数原型 Int fseek(FILE* stream,long offset,int whence);功能 移动文件流的读写位置头文件 #include参数 Stream:已打开的文件指针Whence:SEEK_SET 从距离文件开头 offse
19、t 位移量为新的读写位置SEEK_CUR 以目前的读写位置往后增加 offset 个位移量SEEK_END 将读写位置指向文件尾后再增加 offset 个位移量当 whence 为 SEEK_CUR 或 SEEK_END 时,参数 offset 允许负值出现返回值 成功返回 0,否则返回-121.函数原型 Long ftell(FILE* stream);功能 取得文件流的读取位置头文件 #include参数 一文件流返回值 成功则返回目前读写位置,否则返回-122.函数原型 Void rewind(FILE*stream);功能 重设文件流的读写位置为文件开头头文件 #include参数 一
20、文件流返回值 void23.函数原型 DIR *opendir(const char*name);功能 打开目录文件头文件 #include#include 参数 指定的目录返回值 成功则返回 DIR*形态的目录流,否则返回 NULL24.函数原型 Struct dirent* readdir(DIR*dir);功能 读取目录文件头文件 #include#include #include 参数 指定目录返回值 成功则返回下一目录进入点,否则返回 NULL25.函数原型 Int closedir(DIR*dir);功能 关闭目录文件头文件 #include#include 参数 指定目录返回值
21、成功则返回 0,否则返回-126.函数原型 Int symlink(const char*oldpath,const char* newpath);功能 建立软链接头文件 #include参数 已存在的文件路径及名称和链接的名称返回值 成功则返回 0,否则返回-127.函数原型 Int link(const char*oldpath,const char* newpath);功能 建立硬链接头文件 #include参数 已存在的文件路径及名称和链接的名称返回值 成功则返回 0,否则返回-1三、有关进程控制函数1.函数原型 Pid_t getpid(void);功能 取得当前进程的进程号头文件
22、#include参数 void返回值 执行成功则返回当前进程的进程标识符2.函数原型 Pid_t getppid(void);功能 取得当前进程的父进程号头文件 #include参数 void返回值 执行成功则返回当前进程的父进程标识符3.函数原型 Unsigned int sleep (unsigned int seconds);功能 让进程暂停执行一段时间头文件 #include参数 暂停时间(秒)返回值 执行成功返回 0,否则返回剩余秒数4.函数原型 Pid_t fork(void);功能 建立一个新进程头文件 #include参数 void返回值 执行成功则在子进程中返回 0,父进程中
23、返回新建子进程的进程号;失败返回-15.函数原型 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 ch
24、ar*file, char* const argv);功能 在调用进程内部执行一可执行文件头文件 #include参数 Path 表示完整的路径File 表示文件名Arg.表示列表传递方式传递命令Argv表示字符指针数组传递方式传递命令Envp表示环境变量返回值 失败返回-16.函数原型 Void exit(int status);功能 正常终止进程头文件 #include参数 整数 status返回值 无7.函数原型 Void _exit(int status);功能 终止进程执行头文件 #include参数 整数 status返回值 无8.函数原型 Pid_t wait(int* stat
25、us);功能 等待子进程中断或结束头文件 #include#include 参数 Status 子进程状态返回值 执行成功则返回子进程进程号,否则返回-19.函数原型 Pid_t waitpid(pid_t pid,int *status,int options);功能 建立一个新进程头文件 #include#include 参数 pid 子进程号status 子进程状态Options 可为 0 或后面的 or 组合:WNOHANG 如果没有任何已终止的子进程则马上返回,不予等待WUNTRACED 如果子进程进入暂停执行则马上返回,但对终止状态不予理会返回值 执行成功则返回子进程进程号,否则返
26、回-110.函数原型 Pid_t setsid(void);功能 建立一个新进程头文件 #include#include 参数 无返回值 执行成功则返回进程组号,失败则返回-111.函数原型 Void syslog (int priority,char*format,)功能 建立一个新进程头文件 #include参数 Priority 指定信息的种类或等级, format 参数和 Printf 函数相同返回值 无4、 有关进程通信函数1.函数原型 Int kill(pid_t pid,int sig);功能 建立一个新进程头文件 #include#include 参数 发送参数 sig 指定的
27、信号给参数 pid 指定的进程返回值 执行成功返回 0,否则返回-12.函数原型 Int raise(int sig);功能 发送信号给当前进程头文件 #include 参数 Sig 指定信号返回值 执行成功返回 0,否则返回-13.函数原型 Void (*signal(int signum,void(*handler)(int)(int);功能 设置信号处理方式头文件 #include 参数 Signal()会依参数 signum 指定的信号编号来设置该信号的处理函数。当指定的信号到达时就会跳转到参数 handler 指定的函数执行。如果参数 handler不是函数指针,则必须是下列两个常数
28、之一:SIG_IGN 忽略参数 signum 指定的信号SIG_DFL 将参数 signum 指定的信号重设为核心预设的信号处理方式返回值 返回先前的信号处理函数指针,如果有错误则返回 SIG_ERR(-1)4.函数原型 Int sigemptyset(sigset_t *set);功能 初始化信号集头文件 #include 参数 Set 信号集返回值 执行成功返回 0,否则返回-15.函数原型 Int sigaddset(sigset_t *set,int signum);功能 增加一个信号至信号集头文件 #include 参数 将 signum 代表的信号加入至参数 set 信号集中返回值
29、 执行成功返回 0,否则返回-16.函数原型 Int sigprocmask(int how,const sigset_t *set,sigset_t *oldset);功能 查询或设置信号掩码头文件 #include 参数 用来改变目前的信号掩码,参数 how 有以下几种:SIG_BLOCk 新的信号掩码由目前的信号掩码和参数 set 指定的信号掩码作联机SIG_UNBLOCK 将目前信号掩码删除掉参数 set 指定的信号掩码SIG_SETMASK 将目前的信号掩码设成参数 set 指定的信号掩码返回值 执行成功返回 0,否则返回-17.函数原型 Int pipe(int filedes2)
30、;功能 建立管道头文件 #include 参数 Filedes0管道读取端, filedes1管道写入端返回值 执行成功返回 0,否则返回-18.函数原型 Void *memset(void *s,int c,size_t n);功能 将一段内存空间填入某值头文件 #include 参数 将参数 s 所指的内存区域内前 n 个字节以参数 c 填入,然后返回指向 s 的指针。参数 c 虽声明为 int,但必须是 unsigned char,所以范围在 0255 之间返回值 返回指向 s 的指针9.函数原型 Int mkfifo(const char*pathname,mode_t mode);功
31、能 建立命名管道头文件 #include #include 参数 依参数 pathname 建立特殊 FIFO 文件,该文件必须不存在,mode 为该文件的权限返回值 成功返回 0,否则返回-110.函数原型 FILE* popen(const char*command,const char*type);功能 建立管道 I/O头文件 #include 参数 调用 fork()产生子进程,然后从子进程中调用/bin/sh -c 来执行参数command 的指令。参数 type 可使用“r”代表读取, “w”代表写入, “r”和“w”是相对 command 的管道而言的, “r”则文件指针连接到
32、command的标准输出, “w”则文件指针连接到 command 的标准输入返回值 若成功返回管道的文件流指针,否则返回 NULL11.函数原型 Key_ftok(char *pathname,char proj);功能 通过函数 ftok 建立一个用于 IPC 通信的 ID 值头文件 #include #include 参数 Pathname:文件路径Proj:工程 ID返回值 若成功返回 key_t 值,否则返回 -112.函数原型 Int msgget(key_t key,int msgflg);功能 建立消息队列头文件 #include #include #include 参数 Ke
33、y 为 IPC_PRIVATE 则建立新的消息队列Msgflg 用来决定消息队列的存取权限返回值 若成功返回消息队列识别号,否则返回-113.函数原型 Int msgsnd(int msqid,struct msgbuf*msgp,int msgsz,int msgflg);功能 将消息送入消息队列头文件 #include #include #include 参数 Msqid:消息队列的识别码Msgp:指向消息缓冲区的指针Msgsz:消息大小Msgflg:用来指明核心程序在队列没有数据的情况下应采取的行动返回值 若成功返回 0,否则返回-114.函数原型 Int msgrcv(int msqi
34、d,struct msgbuf*msgp,int msgsz,long msgtyp,int msgflg);功能 从消息队列读取信息头文件 #include #include #include 参数 Msqid:消息队列的识别码Msgp:指向消息缓冲区的指针Msgsz:消息大小Msgtyp:用来指定所要读取的消息种类Msgflg:用来指明核心程序在队列没有数据的情况下应采取的行动返回值 若成功返回实际读取的消息数据长度,否则返回-115.函数原型 Void *mmap(void* start,size_t length,int prot,int flags,int fd,off_t offs
35、ize);功能 建立内存映射头文件 #include #include 参数 Prot 代表映射区域的保护方式Flags 会影响映射区域的各种特性返回值 若成功返回营社区的内存起始地址,否则返回 MAP_FAILED(-1)16.函数原型 Int munmap(void *start,size_t length);功能 解除内存映射头文件 #include #include 参数 Length 表示欲取消的内存大小返回值 若成功返回 0,否则返回-117.函数原型 Int shmget(key_t key,int size,int shmflg);功能 获取共享内存区域的 ID头文件 #include #include 参数 Key 为 IPC_PRIVATE 则建立新的共享内存,其大小有 size 决定返回值 若成功返回共享内存识别号,否则返回-118.函数原型 Int shmdt(const void*shmaddr);功能 解除共享内存映射头文件 #include #include 参数 Shmaddr 为 shmat 函数返回的共享内存地址返回值 若成功返回 0,否则返回-1