C語言庫函數

C語言庫函數

程序設計的入門語言
庫函數:顧名思義是把函數放到庫裡,是别人把一些常用到的函數編完放到一個文件裡,供程序員使用,[1]程序員用的時候把它所在的文件名用#include加到裡面就可以了(尖括号内填寫文件名),例如#include。C語言庫函數與用戶程序之間進行信息通信時要使用的數據和變量,在使用某一庫函數時,都要在程序中嵌入(用#include)該函數對應的頭文件,用戶使用時應查閱有關版本的C的庫函數參考手冊。函數庫是由系統建立的具有一定功能的函數的集合。
    中文名:C語言庫函數 外文名: 适用領域:計算機程序 所屬學科:

簡介

C語言是一種程序設計的入門語言。由于C語言的語句中沒有提供直接計算sin或cos函數的語句,會造成編寫程序困難;但是函數庫提供了sin和cos函數,可以拿來直接調用。顯示一段文字,我們在C語言中找不到顯示語句,隻能使用庫函數printf。

C語言的庫函數并不是C語言本身的一部分,它是由編譯程序根據一般用戶的需要,編制并提供用戶使用的一組程序。C的庫函數極大地方便了用戶,同時也補充了C語言本身的不足。在編寫C語言程序時,使用庫函數,既可以提高程序的運行效率,又可以提高編程的質量。

相關概念

函數庫

函數庫是由系統建立的具有一定功能的函數的集合。庫中存放函數的名稱和對應的目标代碼,以及連接過程中所需的重定位信息。用戶也可以根據自己的需要建立自己的用戶函數庫。

庫函數

存放在函數庫中的函數。庫函數具有明确的功能、入口調用參數和返回值。

連接程序

将編譯程序生成的目标文件連接在一起生成一個可執行文件。

頭文件

有時也稱為包含文件。C語言庫函數與用戶程序之間進行信息通信時要使用的數據和變量,在使用某一庫函數時,都要在程序中嵌入(用#include)該函數對應的頭文件,用戶使用時應查閱有關版本的C的庫函數參考手冊。

常用的庫函數

abort

函數名:abort

功能:異常終止一個進程

函數與形參類型:

voi abort(void);

程序例:

#include

#include int main(void)

{

printf("Calling abort()n");

abort();

return 0; /* This is never reached */

}

abs

函數名:abs

功能:計算整數num的值。返回整數num的絕對值

函數與參數類型:

int abs(num)

int num;

程序例:

#include

#include int main(void)

{

int number = -1234; printf("number: %d absolute value: %dn", number, abs(number));

return 0;

}

absread,abswirte

函數名 absread, abswirte

功能:絕對磁盤扇區讀、寫數據

函數與形參類型:

int absread(int drive, int nsects, int sectno, void *buffer);

int abswrite(int drive, int nsects, in tsectno, void *buffer);

程序例:

/* absread example */ #include

#include

#include

#include int main(void)

{

int i, strt, ch_out, sector;

char buf; printf("Insert a diskette into drive A and press any keyn");

getch();

sector = 0;

if (absread(0, 1, sector, &buf) != 0)

{

perror("Disk problem");

exit(1);

}

printf("Read OKn");

strt = 3;

for (i=0; i<80; i++)

{

ch_out = buf[strt+i];

putchar(ch_out);

}

printf("n");

return(0);

}

access

函數名:access

功能:确定文件的訪問權限

函數與形參類型:

int access(const char *filename, int amode);

程序例:

#include

#include int file_exists(char *filename); int main(void)

{

printf("Does NOTEXIST.FIL exist: %sn",

file_exists("NOTEXISTS.FIL") ? "YES" : "NO");

return 0;

} int file_exists(char *filename)

{

return (access(filename, 0) == 0);

}

acos

函數名:acos

功能:計算并返回arccos(x)值、要求-1<=X<=1

函數與形參類型:

double acos(x)

double x;

程序例:

#include

#include int main(void)

{

double result;

double x = 0.5; result = acos(x);

printf("The arc cosine of %lf is %lfn", x, result);

return 0;

}

allocmem

函數名:allocmem

功能:分配DOS存儲段

函數與形參類型:

int allocmem(unsigned size, unsigned *seg);

程序例:

#include

#include

#include int main(void)

{

unsigned int size, segp;

int stat; size = 64; /* (64 x 16) = 1024 bytes */

stat = allocmem(size, &segp);

if (stat == -1)

printf("Allocated memory at segment: %xn", segp);

else

printf("Failed: maximum number of paragraphs available is %un",

stat); return 0;

}

arc

函數名:arc

功能:畫一弧線

函數與形參類型:

void far arc(int x, int y, int stangle, int endangle, int radius);

程序例:

#include

#include

#include

#include

int main(void)

{

/* request auto detection */

int gdriver = DETECT, gmode, errorcode;

int midx, midy;

int stangle = 45, endangle = 135;

int radius = 100; /* initialize graphics and local variables */

initgraph(&gdriver, &gmode, ""); /* read result of initialization */

errorcode = graphresult(); /* an error occurred */

if (errorcode != grOk)

{

printf("Graphics error: %sn", grapherrormsg(errorcode));

printf("Press any key to halt:");

getch(); exit(1); /* terminate with an error code */

} midx = getmaxx() / 2;

midy = getmaxy() / 2;

setcolor(getmaxcolor()); /* draw arc */

arc(midx, midy, stangle, endangle, radius); /* clean up */

getch();

closegraph();

return 0;

}

asctime

函數名:asctime

功能:轉換日期和時間為ASCII碼

函數與形參類型:

char *asctime(const struct tm *tblock);

程序例:

#include

#include

#include int main(void)

{

struct tm t;

char str; /* sample loading of tm structure */ t. tm_sec = 1; /* Seconds */

t. tm_min = 30; /* Minutes */

t. tm_hour = 9; /* Hour */

t. tm_mday = 22; /* Day of the Month */

t. tm_mon = 11; /* Month */

t. tm_year = 56; /* Year - does not include century */

t. tm_wday = 4; /* Day of the week */

t. tm_yday = 0; /* Does not show in asctime */

t. tm_isdst = 0; /* Is Daylight SavTime; does not show in asctime */ /* converts structure to null terminated

string */ strcpy(str, asctime(&t));

printf("%sn", str); return 0;

}

asin

函數名::asin

功能::計算并返回arcsin(x)值、要求-1<=X<=1

函數與形參類型:

double asin(x)

double x;

程序例:

#include

#include int main(void)

{

double result;

double x = 0.5; result = asin(x);

printf("The arc sin of %lf is %lfn", x, result);

return(0);

}

assert

函數名:assert

功能:測試一個條件并可能使程序終止

函數與形參類型:

void assert(int test);

程序例:

#include

#include

#include struct ITEM {

int key;

int value;

}; /* add item to list, make sure list is not null */

void additem(struct ITEM *itemptr) {

assert(itemptr != NULL);

/* add item to list */

} int main(void)

{

additem(NULL);

return 0;

}

atan

函數名:atan

功能:計算并返回arctan(x)的值

函數與形參類型:

double atan(double x);

程序例:

#include

#include int main(void)

{

double result;

double x = 0.5; result = atan(x);

printf("The arc tangent of %lf is %lfn", x, result);

return(0);

}

atan2

函數名: atan2

功 能:計算并返回arctan(x/y)值

函數與形參類型:

double atan2(double y, double x);

程序例:

#include

#include int main(void)

{

double result;

double x = 90.0, y = 45.0; result = atan2(y, x);

printf("The arc tangent ratio of %lf is %lfn", (y / x), result);

return 0;

}

atexit

函數名:atexit

功能:注冊終止函數

函數與形參類型:

int atexit(atexit_t func);

程序例:

#include

#include void exit_fn1(void)

{

printf("Exit function #1 calledn");

} void exit_fn2(void)

{

printf("Exit function #2 calledn");

} int main(void)

{

/* post exit function #1 */

atexit(exit_fn1);

/* post exit function #2 */

atexit(exit_fn2);

return 0;

}

atof

函數名:atof

功能:把str指向的ASCⅡ字符串轉換成一個double型整數返回雙精度的結果

函數與形參類型:

double atof(str)

char*str;

程序例:

#include

#include int main(void)

{

float f;

char *str = "12345.67"; f = atof(str);

printf("string = %s float = %fn", str, f);

return 0;

}

atoi

函數名:atoi

功能:

把str指向的ASCⅡz字符串轉換成一個整數。返回整數結果

函數與參數類型:

double atoi(str )

char *str;

程序例:

#include

#include int main(void)

{

int n;

char *str = "12345.67"; n = atoi(str);

printf("string = %s integer = %dn", str, n);

return 0;

}

atol

函數名:atol

功能:

把字符串轉換成長整型數。返回長整數結果

函數與參數類型:

long atol(str )

char *str;

程序例:

#include

#include int main(void)

{

long l;

char *str = "98765432"; l = atol(lstr);

printf("string = %s integer = %ldn", str, l);

return(0);

}

mkdir

函數名:mkdir

功能:建立一個目錄

用法:

int mkdir(char *pathname);

程序例:

#include

#include

#include

#include

int main(void)

{

int status;

clrscr();

status = mkdir("asdfjklm");

(!status) ? (printf("Directory createdn")) :

(printf("Unable to create directoryn"));

getch();

system("dir");

getch();

status = rmdir("asdfjklm");

(!status) ? (printf("Directory deletedn")) :

(perror("Unable to delete directory"));

return 0;

}

mktemp

函數名 mktemp

功能:建立唯一的文件名

用法:

char *mktemp(char *template);

程序例:

#include

#include

int main(void)

{

/* fname defines the template for the

temporary file. */

char *fname = "TXXXXXX", *ptr;

ptr = mktemp(fname);

printf("%sn",ptr);

return 0;

}

MK_FP

函數名:MK_FP

功能:設置一個遠指針

用法:

void far *MK_FP(unsigned seg, unsigned off);

程序例:

#include

#include

int main(void)

{

int gd, gm, i;

unsigned int far *screen;

detectgraph(&gd, &gm);

if (gd == HERCMONO)

screen = MK_FP(0xB000, 0);

else

screen = MK_FP(0xB800, 0);

for (i=0; i<26; i++)

screen[i] = 0x0700 + ('a' + i);

return 0;

}

modf

函數名:modf

功能:把數分為整數和尾數

用法:

double modf(double value, double *iptr);

程序例:

#include

#include

int main(void)

{

double fraction, integer;

double number = 100000.567;

fraction = modf(number, &integer);

printf("The whole and fractional parts of %lf are %lf and %lfn",

number, integer, fraction);

return 0;

}

movedata

函數名:movedata

功能:拷貝字節

用法:

void movedata(int segsrc, int offsrc, int segdest,

int offdest, unsigned numbytes);

程序例:

#include

#define MONO_BASE 0xB000

/* saves the contents of the monochrome screen in buffer */

void save_mono_screen(char near *buffer)

{

movedata(MONO_BASE, 0, _DS, (unsigned)buffer, 80*25*2);

}

int main(void)

{

char buf[80*25*2];

save_mono_screen(buf);

}

moverel

函數名:moverel

功能:将當前位置(CP)移動一相對距離

用法:

void far moverel(int dx, int dy);

程序例:

#include

#include

#include

#include

int main(void)

{

/* request auto detection */

int gdriver = DETECT, gmode, errorcode;

char msg;

/* initialize graphics and local variables */

initgraph(&gdriver, &gmode, "");

/* read result of initialization */

errorcode = graphresult();

if (errorcode != grOk) /* an error occurred */

{

printf("Graphics error: %sn", grapherrormsg(errorcode));

printf("Press any key to halt:");

getch();

exit(1); /* terminate with an error code */

}

/* move the C.P. to location (20, 30) */

moveto(20, 30);

/* plot a pixel at the C.P. */

putpixel(getx(), gety(), getmaxcolor());

/* create and output a message at (20, 30) */

sprintf(msg, " (%d, %d)", getx(), gety());

outtextxy(20, 30, msg);

/* move to a point a relative distance */

/* away from the current value of C.P. */

moverel(100, 100);

/* plot a pixel at the C.P. */

putpixel(getx(), gety(), getmaxcolor());

/* create and output a message at C.P. */

sprintf(msg, " (%d, %d)", getx(), gety());

outtext(msg);

/* clean up */

getch();

closegraph();

return 0;

}

movetext

函數名:movetext

功能:将屏幕文本從一個矩形區域拷貝到另一個矩形區域

用法:

int movetext(int left, int top, int right, int bottom,

int newleft, int newtop);

程序例:

#include

#include

int main(void)

{

char *str = "This is a test string";

clrscr();

cputs(str);

getch();

movetext(1, 1, strlen(str), 2, 10, 10);

getch();

return 0;

}

moveto

函數名 moveto

功能:将CP移到(x, y)

用法:

void far moveto(int x, int y);

程序例:

#include

#include

#include

#include

int main(void)

{

/* request auto detection */

int gdriver = DETECT, gmode, errorcode;

char msg;

/* initialize graphics and local variables */

initgraph(&gdriver, &gmode, "");

/* read result of initialization */

errorcode = graphresult();

if (errorcode != grOk) /* an error occurred */

{

printf("Graphics error: %sn", grapherrormsg(errorcode));

printf("Press any key to halt:");

getch();

exit(1); /* terminate with an error code */

}

/* move the C.P. to location (20, 30) */

moveto(20, 30);

/* plot a pixel at the C.P. */

putpixel(getx(), gety(), getmaxcolor());

/* create and output a message at (20, 30) */

sprintf(msg, " (%d, %d)", getx(), gety());

outtextxy(20, 30, msg);

/* move to (100, 100) */

moveto(100, 100);

/* plot a pixel at the C.P. */

putpixel(getx(), gety(), getmaxcolor());

/* create and output a message at C.P. */

sprintf(msg, " (%d, %d)", getx(), gety());

outtext(msg);

/* clean up */

getch();

closegraph();

return 0;

}

movemem

函數名:movemem

功能:移動一塊字節

用法:

void movemem(void *source, void *destin, unsigned len);

程序例:

#include

#include

#include

#include

int main(void)

{

char *source = "Borland International";

char *destination;

int length;

length = strlen(source);

destination = malloc(length + 1);

movmem(source,destination,length);

printf("%sn",destination);

return 0;

}

normvideo

函數名:normvideo

功能:選擇正常亮度字符

用法:

void normvideo(void);

程序例:

#include

int main(void

{

normvideo();

cprintf("NORMAL Intensity Textrn");

return 0;

}

nosound

函數名:nosound

功能:關閉PC揚聲器

用法:

void nosound(void);

程序例:

/* Emits a 7-Hz tone for 10 seconds.

True story: 7 Hz is the resonant frequency of a chicken's skull cavity.

This was determined empirically in Australia, where a new factory

generating 7-Hz tones was located too close to a chicken ranch:

When the factory started up, all the chickens died.

Your PC may not be able to emit a 7-Hz tone.

*/

int main(void)

{

sound(7);

delay(10000);

nosound();

}

相關詞條

相關搜索

其它詞條