请输入您要查询的百科知识:

 

词条 C语言库函数
释义

定义

库函数:顾名思义是把函数放到库里,是别人把一些常用到的函数编完放到一个文件里,供编程人使用,编程人用的时候把它所在的文件名用#include<>加到里面就可以了(尖括号内填写文件名),例如#include<math.h>。

一般是指编译器提供的可在c源程序中调用的函数。可分为两类,一类是c语言标准规定的库函数,一类是编译器特定的库函数。

由于版权原因,库函数的源代码一般是不可见的,但在头文件中你可以看到它对外的接口。

简介

C语言是一种非常优秀的程序设计的入门语言。它比其他大部分语言都简洁易学,所以在开始使用C语言编写真正的应用程序之前并不需要学习太多语法,这是由于C语言提供了函数库的原因。例如要直接使用C语言的语句计算sin或cos,由于C语言的语句中没有提供直接计算sin或cos函数的语句。所以会造成编写程序困难,但是函数库提供了sin和cos函数,所以编程就方便多了,又如为了显示一段文字,我们在C语言中也找不到显示语句,只能使用库函数printf。

C语言的库函数并不是C语言本身的一部分,它是由编译程序根据一般用户的需要编制并提供用户使用的一组程序。C的库函数极大地方便了用户,同时也补充了C语言本身的不足。事实上,在编写C语言程序时,应当尽可能多地使用库函数,这样既可以提高程序的运行效率,又可以提高编程的质量。

相关概念

函数库:

函数库是由系统建立的具有一定功能的函数的集合。库中存放函数的名称和对应的目标代码,以及连接过程中所需的重定位信息。用户也可以根据自己的需要建立自己的用户函数库。

库函数:

存放在函数库中的函数。库函数具有明确的功能、入口调用参数和返回值。

连接程序:

将编译程序生成的目标文件连接在一起生成一个可执行文件。

头文件:

有时也称为包含文件。C语言库函数与用户程序之间进行信息通信时要使用的数据和变量,在使用某一库函数时,都要在程序中嵌入(用#include)该函数对应的头文件。

由于C语言编译系统应提供的函数库目前尚无国际标准。不同版本的C语言具有不同的库函数,用户使用时应查阅有关版本的C的库函数参考手册。

常用的库函数

函数名: abort

功 能

异常终止一个进程

函数与形参类型

void abort(void);

程序例

:

#include <stdio.h>

#include <stdlib.h> int main(void)

{

printf("Calling abort()\");

abort();

return 0; /* This is never reached */

}

函数名: ab

功 能

计算整数num的值。返回整数num的绝对值

函数与参数类型

int abs(num)

int num;

程序例

#include <stdio.h>

#include <math.h> int main(void)

{

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

return 0;

}

函数名: 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 <stdio.h>

#include <conio.h>

#include <process.h>

#include <dos.h> int main(void)

{

int i, strt, ch_out, sector;

char buf[512]; printf("Insert a diskette into drive A and press any key\");

getch();

sector = 0;

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

{

perror("Disk problem");

exit(1);

}

printf("Read OK\");

strt = 3;

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

{

ch_out = buf[strt+i];

putchar(ch_out);

}

printf("\");

return(0);

}

函数名: acce

功 能

确定文件的访问权限

函数与形参类型

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

程序例

#include <stdio.h>

#include <io.h> int file_exists(char *filename); int main(void)

{

printf("Does NOTEXIST.FIL exist: %s\",

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

return 0;

} int file_exists(char *filename)

{

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

}

函数名: aco

功 能

计算并返回arccos(x)值、要求-1<=X<=1

函数与形参类型

double acos(x)

double x;

程序例

#include <stdio.h>

#include <math.h> int main(void)

{

double result;

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

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

return 0;

}

函数名: allocmem

功 能

分配DOS存储段

函数与形参类型

int allocmem(unsigned size, unsigned *seg);

程序例

#include <dos.h>

#include <alloc.h>

#include <stdio.h> 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: %x\", segp);

else

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

stat); return 0;

}

函数名: arc

功 能

画一弧线

函数与形参类型

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

程序例

#include <graphics.h>

#include <stdlib.h>

#include <stdio.h>

#include <conio.h>

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: %s\", 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

功 能

转换日期和时间为ASCII码

函数与形参类型

char *asctime(const struct tm *tblock);

程序例

#include <stdio.h>

#include <string.h>

#include <time.h> int main(void)

{

struct tm t;

char str[80]; /* 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("%s\", str); return 0;

}

函数名: asin

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

函数与形参类型: double asin(x)

double x;

程序例:

#include <stdio.h>

#include <math.h> int main(void)

{

double result;

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

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

return(0);

}

函数名: assert

功 能

测试一个条件并可能使程序终止

函数与形参类型

void assert(int test);

程序例

#include <assert.h>

#include <stdio.h>

#include <stdlib.h> 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

功 能

计算并返回arctan(x)的值

函数与形参类型

double atan(double x);

程序例

#include <stdio.h>

#include <math.h> int main(void)

{

double result;

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

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

return(0);

}

函数名: atan2

功 能

计算并返回arctan(x/y)值

函数与形参类型

double atan2(double y, double x);

程序例

#include <stdio.h>

#include <math.h> int main(void)

{

double result;

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

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

return 0;

}

函数名: atexit

功 能

注册终止函数

函数与形参类型

int atexit(atexit_t func);

程序例

#include <stdio.h>

#include <stdlib.h> void exit_fn1(void)

{

printf("Exit function #1 called\");

} void exit_fn2(void)

{

printf("Exit function #2 called\");

} int main(void)

{

/* post exit function #1 */

atexit(exit_fn1);

/* post exit function #2 */

atexit(exit_fn2);

return 0;

}

函数名: atof

功 能

把str指向的ASCⅡ字符串转换成一个double型整数返回双精度的结果

函数与形参类型

double atof(str)

char*str;

程序例

#include <stdlib.h>

#include <stdio.h> int main(void)

{

float f;

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

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

return 0;

}

函数名: atoi

功 能

把str指向的ASCⅡz字符串转换成一个整数。返回整数结果

函数与参数类型

double atoi(str )

char *str;

程序例

#include <stdlib.h>

#include <stdio.h> int main(void)

{

int n;

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

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

return 0;

}

函数名: atol

功 能

把字符串转换成长整型数 。返回长整数结果

函数与参数类型

long atol(str )

char *str;

程序例

#include <stdlib.h>

#include <stdio.h> int main(void)

{

long l;

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

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

return(0);

}

函数名: mkdir

功 能

建立一个目录

用 法

int mkdir(char *pathname);

程序例

#include <stdio.h>

#include <conio.h>

#include <process.h>

#include <dir.h>

int main(void)

{

int status;

clrscr();

status = mkdir("asdfjklm");

(!status) ? (printf("Directory created\")) :

(printf("Unable to create directory\"));

getch();

system("dir");

getch();

status = rmdir("asdfjklm");

(!status) ? (printf("Directory deleted\")) :

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

return 0;

}

函数名: mktemp

功 能

建立唯一的文件名

用 法

char *mktemp(char *template);

程序例

#include <dir.h>

#include <stdio.h>

int main(void)

{

/* fname defines the template for the

temporary file. */

char *fname = "TXXXXXX", *ptr;

ptr = mktemp(fname);

printf("%s\",ptr);

return 0;

}

函数名: MK_FP

功 能

设置一个远指针

用 法

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

程序例

#include <dos.h>

#include <graphics.h>

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

功 能

把数分为指数和尾数

用 法

double modf(double value, double *iptr);

程序例

#include <math.h>

#include <stdio.h>

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 %lf\",

number, integer, fraction);

return 0;

}

函数名: movedata

功 能

拷贝字节

用 法

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

int offdest, unsigned numbytes);

程序例 #include <mem.h>

#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

功 能

将当前位置(CP)移动一相对距离

用 法

void far moverel(int dx, int dy);

程序例

#include <graphics.h>

#include <stdlib.h>

#include <stdio.h>

#include <conio.h>

int main(void)

{

/* request auto detection */

int gdriver = DETECT, gmode, errorcode;

char msg[80];

/* initialize graphics and local variables */

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

/* read result of initialization */

errorcode = graphresult();

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

{

printf("Graphics error: %s\", 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

功 能

将屏幕文本从一个矩形区域拷贝到另一个矩形区域

用 法

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

int newleft, int newtop);

程序例

#include <conio.h>

#include <string.h>

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

功 能

将CP移到(x, y)

用 法

void far moveto(int x, int y);

程序例

#include <graphics.h>

#include <stdlib.h>

#include <stdio.h>

#include <conio.h>

int main(void)

{

/* request auto detection */

int gdriver = DETECT, gmode, errorcode;

char msg[80];

/* initialize graphics and local variables */

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

/* read result of initialization */

errorcode = graphresult();

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

{

printf("Graphics error: %s\", 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

功 能

移动一块字节

用 法

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

程序例

#include <mem.h>

#include <alloc.h>

#include <stdio.h>

#include <string.h>

int main(void)

{

char *source = "Borland International";

char *destination;

int length;

length = strlen(source);

destination = malloc(length + 1);

movmem(source,destination,length);

printf("%s\",destination);

return 0;

}

函数名: normvideo

功 能

选择正常亮度字符

用 法

void normvideo(void);

程序例

#include <conio.h>

int main(void)

{

normvideo();

cprintf("NORMAL Intensity Text\\r\");

return 0;

}

函数名: 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();

}

随便看

 

百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2024/11/16 13:36:09