ITEEDU

十、存贮分配子程序,所在函数库为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所返回的时间)写入计算机中.