C函數庫介紹:dos.h、alloc.h、malloc.h、stdlib.h、process.h

來源:互聯網
上載者:User
存貯分配子程式,所在函數庫為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所返回的時間)
寫入電腦中.

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.