Linux下系统函数

Linux下系统函数

rand()函数

获取02147483647(0RAND_MAX)之间的随机数。真随机需要srand()设置种子。一般用时间作为srand()的参数

#include<unistd.h>
int rand(void)
void srand(unsigned int seed)

字符函数

头文件<ctype.h>

函数名 功能
isalnum 测试字符是否为英文或数字
isalpha 测试是否为英文字母
isascii 测试是否为ascii字符
iscntrl 测试是否为ascii控制字符
isdigit 测试是否为阿拉伯数字
islower 测试是否为小写字母
isprint 测试是否可打印字符
isspace 测试是否空格字符
ispunct 测试是否为标点或特殊符号
isupper 测试是否大写字母
isxdigit 测试是否16进制数字

系统时间和日期函数

函数名 功能
asctime 将时间和日期以字符串的格式表示
ctime 将时间和日期以字符串的格式表示
gettimeofday 获得当前时间
gmtime 把时间或日期转为GTM时间
localtime 获得目前当地的时间和日期
mktime 将时间结构数据转换为经过的秒数
settimeofday 设置当前时间
time 取得系统当前时间
#include<time.h>
//成功返回秒数,并将结果存入t,失败返回-1。错误原因存在errno中
time_t time(time_t *t)

//传入时间戳,返回tm结构体
struct tm* gmtime(const time_t *timep)
/***
struct tm
{
    int tm_sec;//秒0~59
    int tm_min;//分0~59
    int tm_hour;//小时0~23
    int tm_mday;//当前月份的日数 0~31
    int tm_mon;//当前月份0~11
    int tm_year;//从1900年到现在的年数
    int tm_wday;//星期,星期一算起0~6
    int tm_yday;//从1月1日起到今天的天数0~365
    int tm_isdst;//夏时制时间
}
**/
//传入tm结构体时间,返回字符串时间
char * asctime(const struct tm *timeptr)
//传入时间戳,返回tm结构的时间
struct tm * localtime(const time_t *timep)

#include<sys/time.h>
#include<unistd.h>
//
int gettimeofday(struct timeval *tv,struct timezone *tz)
/****
struct timeval{
    long tv_sec;//秒
    long tv_usec;//微秒
}
struct timezone{
    int tz_minuteswest;//和GTM时间差了几分钟
    int tz_dsttime;//日光节约时间的状态
}
***/
环境控制函数
函数名 功能
getenv 取得环境变量的内容
pushenv/setenv 改变或增加环境变量
unsetenv 取消已经改变的环境变量
#include<stdlib.h>
//成功返回环境变量内容,失败返回NULL
char *getenv(const char * name)
//成功返回0,出错返回-1。 overwrite  0:忽略value 1:改变成参数value的内容
int setenv(const char *name, const char *value, int overwrite)

内存分配函数
函数名 功能
calloc/malloc 分配存储空间
getpagesize 获取操作系统中内存分页大小
mmap 建立内存映射
munmap 解除内存映射
free 释放分配的内存
#include<stdlib.h>
//分配内存size块大小为nmemb的内存。失败返回NULL。calloc会将内存初始化为0;
void * calloc(size_t nmemb, size_t size)
//分配size大小的内存,失败返回NULL
void * malloc(size_t size)
#include<unistd.h>
size_t getpagesize(void)
//成功返回映射区的起始地址,失败返回-1 (MAP_FAILED)
#include<unistd.h>
#include<sys/mman.h>
void *mmap(void *start, size_t length, int prot, int flags, int fd, off_t offsize)
mmap函数参数:
start:指向对应内存的起始地址。通常设为NULL
length:代表文件中多大的部分对应到内存
prot:映射区域的保护方式
    PROT_EXEC:映射区域可被执行
    PROT_READ:映射区域可被读
    PROT_WRITE:映射区域可被写
    PROT_NONE:映射区域不能存取
flags:映射区域的特性
    PROT_EXEC:映射区域可被执行
    PROT_READ:映射区域可被读
    PROT_WRITE:映射区域可被写
    PROT_NONE:映射区域不能存取
    MAP_FIXED:start所指向的地址无法成功建立映射时,则放弃映射,不对地址做修正。
    MAP_SHARED:映射区域的写入数据复制回文件,则允许其他映射该文件的进程共享
    MAP_PRIVATE:与shared相反,多个进程不共享。
fd:open()返回的文件描述符
offsize:文件映射偏移量,0代表从文件头开始
注意:调用mmap时必须指定MAP_SHARED或MAP_PRIVATE
数据结构中常用函数
函数名 功能
bsearch 二分法搜索
lfind/lsearch 线性搜索
qsort 快速排序排列数组
#include<stdlib.h>
void qsort(void *base,size_t nmemb,size_t size, int (*compar)(const void *,const void *))

void *lfind(const void *key,const void *base,size_t *nmemb, size_t size,int (*compar)(const void *,const void *))

void *bsearch(const void *key,const void *base,size_t nmemb, size_t size,int (*compar)(const void *,const void *))
qsort()函数:
base:数组的起始地址
nmemb:数组元素的数量
size:每个元素的大小
compar:函数指针。数据相同返回0,返回1时两个数据交换,返回-1时两个数据不交换。

lfind()/lsearch()/bsearch()函数:
key:指向要查找的数据的指针
base:数组的起始地址
nmemb:数组元素的数量
size:每个元素的大小
compar:函数指针。
lfind()和lsearch()不同点在于:当找不到数据时lfind()仅会返回N
  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值