⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 c库函数.txt

📁 c语言库函数
💻 TXT
📖 第 1 页 / 共 4 页
字号:
第11位 RS232端口号 
第 8位 未使用 
第 7位 软磁盘号 
第 6位 软磁盘号, 
00为1号驱动器,01为2号驱动器,10为3号驱动器,11为4号驱动器 
第 5位 初始化 
第 4位 显示器模式 
00为未使用,01为40x25BW彩色显示卡 
10为80x25BW彩色显示卡,11为80x25BW单色显示卡 
第 3位 母扦件 
第 2位 随机存贮器容量,00为16K,01为32K,10为48K,11为64K 
第 1位 浮点共用处理器 
第 0位 从软磁盘引导 

int bioskey(int cmd)本函数用来执行各种键盘操作,由cmd确定操作。 
cmd可为以下值: 
0 返回敲键盘上的下一个键。若低8位为非0,即为ASCII字符;若低8位为0, 
则返回扩充了的键盘代码。 
1 测试键盘是否可用于读。返回0表示没有键可用;否则返回下一次敲键之值。 
敲键本身一直保持由下次调用具的cmd值为0的bioskey所返回的值。 
2 返回当前的键盘状态,由返回整数的每一个位表示,见下表: 
┌──┬───────────┬───────────┐ 
│ 位 │为0时意义 │为1时意义 │ 
├──┼───────────┼───────────┤ 
│ 7 │插入状态 │改写状态 │ 
│ 6 │大写状态 │小写状态 │ 
│ 5 │数字状态,NumLock灯亮 │光标状态,NumLock灯熄 │ 
│ 4 │ScrollLock灯亮 │ScrollLock灯熄 │ 
│ 3 │Alt按下 │Alt未按下 │ 
│ 2 │Ctrl按下 │Ctrl未按下 │ 
│ 1 │左Shift按下 │左Shift未按下 │ 
│ 0 │右Shift按下 │右Shift未按下 │ 
└──┴───────────┴───────────┘ 
int biosmemory()返回内存大小,以K为单位. 

int biosprint(int cmd,int byte,int port)控制打印机的输入/输出. 
port为打印机号,0为LPT1,1为LPT2,2为LPT3等 
cmd可以为以下值: 
0 打印字符,将字符byte送到打印机 
1 打印机端口初始化 
2 读打印机状态 
函数返回值由以下位值组成表示当前打印机状态 
0x01 设备时间超时 
0x08 输入/输出错误 
0x10 选择的 
0x20 走纸 
0x40 认可 
0x80 不忙碌 

int biostime(int cmd,long newtime)计时器控制,cmd为功能号,可为以下值 
0 函数返回计时器的当前值 
1 将计时器设为新值newtime 

struct country *country(int countrycmode,struct country *countryp) 
本函数用来控制某一国家的相关信息,如日期,时间,货币等. 
若countryp=-1时,当前的国家置为countrycode值(必须为非0).否则,由countryp 
所指向的country结构用下列的国家相关信息填充: 
(1)当前的国家(若countrycode为0或2)由countrycode所给定的国家. 
结构country定义如下: 
┌────────────────────┐ 
│struct country │ 
│{ │ 
│ int co_date; /*日期格式*/ │ 
│ char co_curr[5]; /*货币符号*/ │ 
│ char co_thsep[2]; /*数字分隔符*/ │ 
│ char co_desep[2]; /*小数点*/ │ 
│ char co_dtsep[2]; /*日期分隔符*/ │ 
│ char co_tmsep[2]; /*时间分隔符*/ │ 
│ char co_currstyle; /*货币形式*/ │ 
│ char co_digits; /*有效数字*/ │ 
│ int (far *co_case)(); /*事件处理函数*/ │ 
│ char co_dasep; /*数据分隔符*/ │ 
│ char co_fill[10]; /*补充字符*/ │ 
│} │ 
└────────────────────┘ 
co_date的值所代表的日期格式是: 
0 月日年 1 日月年 2 年月日 
co_currstrle的值所代表的货币显示方式是 
0 货币符号在数值前,中间无空格 
1 货币符号在数值后,中间无空格 
2 货币符号在数值前,中间有空格 
3 货币符号在数值后,中间有空格 

操作函数,所在函数库为string.h、mem.h 

mem…操作存贮数组 
void *memccpy(void *destin,void *source,unsigned char ch,unsigned n) 
void *memchr(void *s,char ch,unsigned n) 
void *memcmp(void *s1,void *s2,unsigned n) 
int memicmp(void *s1,void *s2,unsigned n) 
void *memmove(void *destin,void *source,unsigned n) 
void *memcpy(void *destin,void *source,unsigned n) 
void *memset(void *s,char ch,unsigned n) 
这些函数,mem…系列的所有成员均操作存贮数组.在所有这些函数中,数组是n字节长. 
memcpy从source复制一个n字节的块到destin.如果源块和目标块重迭,则选择复制方向, 
以例正确地复制覆盖的字节. 

memmove与memcpy相同. 

memset将s的所有字节置于字节ch中.s数组的长度由n给出. 


memcmp比较正好是n字节长的两个字符串s1和s2.些函数按无符号字符比较字节,因此, 

memcmp("0xFF","\x7F",1)返回值大于0. 


memicmp比较s1和s2的前n个字节,不管字符大写或小写. 

memccpy从source复制字节到destin.复制一结束就发生下列任一情况: 
(1)字符ch首选复制到destin. 
(2)n个字节已复制到destin. 
memchr对字符ch检索s数组的前n个字节. 
返回值:memmove和memcpy返回destin 
memset返回s的值 
memcmp和memicmp─┬─若s1 
├─若s1=s2返回值等于0 
└─若s1>s2返回值大于0 
memccpy若复制了ch,则返回直接跟随ch的在destin中的字节的一个指针; 
否则返回NULL 
memchr返回在s中首先出现ch的一个指针;如果在s数组中不出现ch,就返回NULL. 

void movedata(int segsrc,int offsrc,int segdest,int offdest,unsigned numbytes) 
本函数将源地址(segsrc:offsrc)处的numbytes个字节复制到目标地址(segdest:offdest) 

void movemem(void *source,void *destin,unsigned len)本函数从source处复制一块长len字节的数据到destin.若源地址和目标地址字符串重迭,则选择复制方向,以便正确的复制数据. 

void setmem(void *addr,int len,char value)本函数把addr所指的块的第一个字节置于字节value中. 

str…字符串操作函数 

char stpcpy(char *dest,const char *src)将字符串src复制到dest 

char strcat(char *dest,const char *src)将字符串src添加到dest末尾 

char strchr(const char *s,int c)检索并返回字符c在字符串s中第一次出现的位置 

int strcmp(const char *s1,const char *s2)比较字符串s1与s2的大小,并返回s1-s2 

char strcpy(char *dest,const char *src)将字符串src复制到dest 

size_t strcspn(const char *s1,const char *s2)扫描s1,返回在s1中有,在s2中也有的字符个数 

char strdup(const char *s)将字符串s复制到最近建立的单元 

int stricmp(const char *s1,const char *s2)比较字符串s1和s2,并返回s1-s2 

size_t strlen(const char *s)返回字符串s的长度 

char strlwr(char *s)将字符串s中的大写字母全部转换成小写字母,并返回转换后的字符串 

char strncat(char *dest,const char *src,size_t maxlen)将字符串src中最多maxlen个字符复制到字符串dest中 

int strncmp(const char *s1,const char *s2,size_t maxlen)比较字符串s1与s2中的前maxlen个字符 

char strncpy(char *dest,const char *src,size_t maxlen)复制src中的前maxlen个字符到dest中 

int strnicmp(const char *s1,const char *s2,size_t maxlen)比较字符串s1与s2中的前maxlen个字符 


char strnset(char *s,int ch,size_t n)将字符串s的前n个字符置于ch中 

char strpbrk(const char *s1,const char *s2)扫描字符串s1,并返回在s1和s2中均有的字符个数 

char strrchr(const char *s,int c)扫描最后出现一个给定字符c的一个字符串s 

char strrev(char *s)将字符串s中的字符全部颠倒顺序重新排列,并返回排列后的字符串 

char strset(char *s,int ch)将一个字符串s中的所有字符置于一个给定的字符ch 

size_t strspn(const char *s1,const char *s2)扫描字符串s1,并返回在s1和s2中均有的字符个数 

char strstr(const char *s1,const char *s2)扫描字符串s2,并返回第一次出现s1的位置 

char strtok(char *s1,const char *s2)检索字符串s1,该字符串s1是由字符串s2中定义的定界符所分隔 

char strupr(char *s)将字符串s中的小写字母全部转换成大写字母,并返回转换后的字符串 

存贮分配子程序,所在函数库为dos.h、alloc.h、malloc.h、stdlib.h、process.h 

int allocmem(unsigned size,unsigned *seg)利用DOS分配空闲的内存, 

size为分配内存大小,seg为分配后的内存指针 

int freemem(unsigned seg)释放先前由allocmem分配的内存,seg为指定的内存指针 

int setblock(int seg,int newsize)本函数用来修改所分配的内存长度,seg为已分配内存的内存指针,newsize为新的长度 

int brk(void *endds)本函数用来改变分配给调用程序的数据段的空间数量,新的空间结束地址为endds 

char *sbrk(int incr)本函数用来增加分配给调用程序的数据段的空间数量,增加incr个字节的空间 

unsigned long coreleft() 本函数返回未用的存储区的长度,以字节为单位 

void *calloc(unsigned nelem,unsigned elsize)分配nelem个长度为elsize的内存空间并返回所分配内存的指针 

void *malloc(unsigned size)分配size个字节的内存空间,并返回所分配内存的指针 

void free(void *ptr)释放先前所分配的内存,所要释放的内存的指针为ptr 

void *realloc(void *ptr,unsigned newsize)改变已分配内存的大小,ptr为已分配有内存区域的指针,newsize为新的长度,返回分配好的内存指针. 

long farcoreleft() 本函数返回远堆中未用的存储区的长度,以字节为单位 

void far *farcalloc(unsigned long units,unsigned long unitsz)从远堆分配units个长度为unitsz的内存空间,并返回所分配内存的指针 

void *farmalloc(unsigned long size)分配size个字节的内存空间,并返回分配的内存指针 

void farfree(void far *block)释放先前从远堆分配的内存空间,所要释放的远堆内存的指针为block 

void far *farrealloc(void far *block,unsigned long newsize)改变已分配的远堆内存的大小,block为已分配有内存区域的指针,newzie为新的长度,返回分配好的内存指针 

时间日期函数,函数库为time.h、dos.h 

在时间日期函数里,主要用到的结构有以下几个: 
总时间日期贮存结构tm 
┌──────────────────────┐ 
│struct tm │ 
│{ │ 
│ int tm_sec; /*秒,0-59*/ │ 
│ int tm_min; /*分,0-59*/ │ 
│ int tm_hour; /*时,0-23*/ │ 
│ int tm_mday; /*天数,1-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; /*是否采用夏时制,采用为正数*/│ 
│} │ 
└──────────────────────┘ 
日期贮存结构date 
┌───────────────┐ 
│struct date │ 
│{ │ 
│ int da_year; /*自1900的年数*/│ 
│ char da_day; /*天数*/ │ 
│ char da_mon; /*月数 1=Jan*/ │ 
│} │ 
└───────────────┘ 
时间贮存结构time 
┌────────────────┐ 
│struct time │ 
│{ │ 
│ unsigned char ti_min; /*分钟*/│ 
│ unsigned char ti_hour; /*小时*/│ 
│ unsigned char ti_hund; │ 
│ unsigned char ti_sec; /*秒*/ │ 
│ │ 
└────────────────┘ 

char *ctime(long *clock)本函数把clock所指的时间(如由函数time返回的时间)转换成下列格式的 
字符串:Mon Nov 21 11:31:54 1983\n\0 

char *asctime(struct tm *tm)本函数把指定的tm结构类的时间转换成下列格式的字符串: 
Mon Nov 21 11:31:54 1983\n\0 

double difftime(time_t time2,time_t time1)计算结构time2和time1之间的时间差距(以秒为单位) 

struct tm *gmtime(long *clock)本函数把clock所指的时间(如由函数time返回的时间)转换成格林威治时间,并以tm结构形式返回 

struct tm *localtime(long *clock)本函数把clock所指的时间(如函数time返回的时间)转换成当地标准时间,并以tm结构形式返回 

void tzset()本函数提供了对UNIX操作系统的兼容性 

long dostounix(struct date *dateptr,struct time *timeptr)本函数将dateptr所指的日期,timeptr所指的时间转换成UNIX格式,并返回 
自格林威治时间1970年1月1日凌晨起到现在的秒数 

void unixtodos(long utime,struct date *dateptr,struct time *timeptr)本函数将自格林威治时间1970年1月1日凌晨起到现在的秒数utime转换成DOS格式并保存于用户所指的结构dateptr和timeptr中 

void getdate(struct date *dateblk)本函数将计算机内的日期写入结构dateblk中以供用户使用 

void setdate(struct date *dateblk)本函数将计算机内的日期改成由结构dateblk所指定的日期 

void gettime(struct time *timep)本函数将计算机内的时间写入结构timep中,以供用户使用 

void settime(struct time *timep)本函数将计算机内的时间改为由结构timep所指的时间 

long time(long *tloc)本函数给出自格林威治时间1970年1月1日凌晨至现在所经过的秒数,并将该值存于tloc所指的单元中. 

int stime(long *tp)本函数将tp所指的时间(例如由time所返回的时间)写入计算机中. 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -