• 中英互译
  • 中法互译
  • 中日互译
  • 中韩互译
清除

C语言库函数

  • 定义
    库函数:顾名思义是把函数放到库里,是别人把一些常用到的函数编完放到一个文件里,供程序员使用,程序员用的时候把它所在的文件名用#include<>加到里面就可以了(尖括号内填写文件名),例如#include<math.h>。
    一般是指编译器提供的可在c源程序中调用的函数。可分为两类,一类是c语言标准规定的库函数,一类是编译器特定的库函数。
    由于版权原因,库函数的源代码一般是不可见的,但在头文件中你可以看到它对外的接口。
  • 简介
    C语言是一种程序设计的入门语言。由于C语言的语句中没有提供直接计算sin或cos函数的语句,会造成编写程序困难;但是函数库提供了sin和cos函数,可以拿来直接调用。显示一段文字,我们在C语言中找不到显示语句,只能使用库函数printf。
    C语言的库函数并不是C语言本身的一部分,它是由编译程序根据一般用户的需要,编制并提供用户使用的一组程序。C的库函数极大地方便了用户,同时也补充了C语言本身的不足。在编写C语言程序时,使用库函数,既可以提高程序的运行效率,又可以提高编程的质量。
  • 相关概念

    函数库:

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

    库函数:

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

    连接程序:

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

    头文件:

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

    abort

    函数名:abort
    功 能:异常终止一个进程
    函数与形参类型:
    void abort(void);
    程序例:
    #include <stdio.h>
    #include <stdlib.h> int main(void)
    {
    printf("Calling abort()\n");
    abort();
    return 0; /* This is never reached */
    }

    abs

    函数名:abs
    功 能:计算整数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\n", 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 <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\n");
    getch();
    sector = 0;
    if (absread(0, 1, sector, &buf) != 0)
    {
    perror("Disk problem");
    exit(1);
    }
    printf("Read OK\n");
    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 <stdio.h>
    #include <io.h> int file_exists(char *filename); int main(void)
    {
    printf("Does NOTEXIST.FIL exist: %s\n",
    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 <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\n", x, result);
    return 0;
    }

    allocmem

    函数名: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\n", segp);
    else
    printf("Failed: maximum number of paragraphs available is %u\n",
    stat); return 0;
    }

    arc

    函数名: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\n", 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 <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\n", str); return 0;
    }

    asin

    函数名::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\n", x, result);
    return(0);
    }

    assert

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

    函数名: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\n", x, result);
    return(0);
    }

    atan2

    函数名: 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\n", (y / x), result);
    return 0;
    }

    atexit

    函数名: atexit
    功 能:注册终止函数
    函数与形参类型:
    int atexit(atexit_t func);
    程序例:
    #include <stdio.h>
    #include <stdlib.h> void exit_fn1(void)
    {
    printf("Exit function #1 called\n");
    } void exit_fn2(void)
    {
    printf("Exit function #2 called\n");
    } 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 <stdlib.h>
    #include <stdio.h> int main(void)
    {
    float f;
    char *str = "12345.67"; f = atof(str);
    printf("string = %s float = %f\n", str, f);
    return 0;
    }

    atoi

    函数名: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\n", str, n);
    return 0;
    }

    atol

    函数名: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\n", str, l);
    return(0);
    }

    mkdir

    函数名: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\n")) :
    (printf("Unable to create directory\n"));
    getch();
    system("dir");
    getch();
    status = rmdir("asdfjklm");
    (!status) ? (printf("Directory deleted\n")) :
    (perror("Unable to delete directory"));
    return 0;
    }

    mktemp

    函数名: 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\n",ptr);
    return 0;
    }

    MK_FP

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

    函数名: 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\n",
    number, integer, fraction);
    return 0;
    }

    movedata

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

    函数名: 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\n", 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 <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

    函数名: 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\n", 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 <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\n",destination);
    return 0;
    }

    normvideo

    函数名: normvideo
    功 能:选择正常亮度字符
    用 法:
    void normvideo(void);
    程序例:
    #include <conio.h>
    int main(void)
    {
    normvideo();
    cprintf("NORMAL Intensity Text\r\n");
    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();
    }

以上来源于: 百度百科

有道词典-市场占有率第一的词典,立即下载

有道首页|反馈意见| 切换到PC版

©2015 公司 京ICP证080268号