c语言库函数大全1

 

: 异常终止一个进程 
: void abort(void); 
程序例: 
#include <stdio.h>
 
#include <stdlib.h>
 
int main(void)
 
{
 
printf("Calling abort()\n");
 
abort();
 
return 0; /*
实际上这句不会被执行 */ 
}

函数名: abs 
: 求整数的绝对值 
: int abs(int i); 
程序例: 
#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 
: 绝对磁盘扇区读、写数据 
: int absread(int drive, int nsects, intsectno, 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 
: 确定文件的访问权限 
: int access(const char *filename, intamode); 
程序例: 
#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 
: 反余弦函数 
: double acos(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 
: 分配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 
: 画一弧线 
: void far arc(int x, int y, intstangle, 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 
: 转换日期和时间为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 
: 反正弦函数 
: double asin(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 
: 测试一个条件并可能使程序终止 
: 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 
: 反正切函数 
: 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 
: 计算Y/X的反正切值 
: 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 
: 注册终止函数 
: 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 
: 把字符串转换成浮点数 
: double atof(const char *nptr); 
程序例: 
#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 
: 把字符串转换成长整型数 
: int atoi(const char *nptr); 
程序例: 
#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 
: 把字符串转换成长整型数 
: long atol(const char *nptr); 
程序例:

#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);
 
}

函数名: bar 
: 画一个二维条形图 
: void far bar(int left, int top, intright, int bottom); 
程序例: 
#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, i;
 
/* 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 */
 
}
 
midx = getmaxx() / 2;
 
midy = getmaxy() / 2;
 
/* loop through the fill patterns */
 
for (i=SOLID_FILL; i<USER_FILL; i++)
 
{
 
/* set the fill style */
 
setfillstyle(i, getmaxcolor());
 
/* draw the bar */
 
bar(midx-50, midy-50, midx+50,
 
midy+50);
 
getch();
 
}
 
/* clean up */
 
closegraph();
 
return 0;
 
}

函数名: bar3d 
: 画一个三维条形图 
: void far bar3d(int left, int top, intright, int bottom, 
int depth, int topflag);
 
程序例:

#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, i;
 
/* initialize graphics, 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 error code */
 
}
 
midx = getmaxx() / 2;
 
midy = getmaxy() / 2;
 
/* loop through the fill patterns */
 
for (i=EMPTY_FILL; i<USER_FILL; i++)
 
{
 
/* set the fill style */
 
setfillstyle(i, getmaxcolor());
 
/* draw the 3-d bar */
 
bar3d(midx-50, midy-50, midx+50, midy+50, 10, 1);
 
getch();
 
}
 
/* clean up */
 
closegraph();
 
return 0;
 
}

 

函数名: bdos 
: DOS系统调用 
: int bdos(int dosfun, unsigned dosdx,unsigned dosal); 
程序例: 
#include <stdio.h>
 
#include <dos.h>
 
/* Get current drive as 'A', 'B', ... */
 
char current_drive(void)
 
{
 
char curdrive;
 
/* Get current disk as 0, 1, ... */
 
curdrive = bdos(0x19, 0, 0);
 
return('A' + curdrive);
 
}
 
int main(void)
 
{
 
printf("The current drive is %c:\n", current_drive());
 
return 0;
 
}


函数名: bdosptr 
: DOS系统调用 
: int bdosptr(int dosfun, void*argument, unsigned dosal); 
程序例:

#include <string.h> 
#include <stdio.h>
 
#include <dir.h>
 
#include <dos.h>
 
#include <errno.h>
 
#include <stdlib.h>
 
#define BUFLEN 80

int main(void) 
{
 
char buffer[BUFLEN];
 
int test;
 
printf("Enter full pathname of a directory\n");
 
gets(buffer);
 
test = bdosptr(0x3B,buffer,0);
 
if(test)
 
{
 
printf("DOS error message: %d\n", errno);
 
/* See errno.h for error listings */
 
exit (1);
 
}
 
getcwd(buffer, BUFLEN);
 
printf("The current directory is: %s\n", buffer);
 
return 0;
 
}

函数名: bioscom 
: 串行I/O通信 
: int bioscom(int cmd, char abyte, intport); 
程序例: 
#include <bios.h>
 
#include <conio.h>
 
#define COM1 0
 
#define DATA_READY 0x100
 
#define TRUE 1
 
#define FALSE 0
 
#define SETTINGS ( 0x80 | 0x02 | 0x00 | 0x00)

int main(void) 
{
 
int in, out, status, DONE = FALSE;
 
bioscom(0, SETTINGS, COM1);
 
cprintf("... BIOSCOM [ESC] to exit ...\n");
 
while (!DONE)
 
{
 
status = bioscom(3, 0, COM1);
 
if (status & DATA_READY)
 
if ((out = bioscom(2, 0, COM1) & 0x7F) != 0)
 
putch(out);
 
if (kbhit())
 
{
 
if ((in = getch()) == '\x1B')
 
DONE = TRUE;
 
bioscom(1, in, COM1);
 
}
 
}
 
return 0;
 
}

函数名: biosdisk 
: 软硬盘I/O 
: int biosdisk(int cmd, int drive, inthead, int track, int sector 
int nsects, void *buffer);
 
程序例:

#include <bios.h> 
#include <stdio.h>

int main(void) 
{
 
int result;
 
char buffer[512];
 
printf("Testing to see if drive a: is ready\n");
 
result = biosdisk(4,0,0,0,0,1,buffer);
 
result &= 0x02;
 
(result) ? (printf("Drive A: Ready\n")) :
 
(printf("Drive A: Not Ready\n"));
 
return 0;
 
}

 

函数名: biosequip 
: 检查设备 
: int biosequip(void); 
程序例:

#include <bios.h> 
#include <stdio.h>

int main(void) 
{
 
int result;
 
char buffer[512];
 
printf("Testing to see if drive a: is ready\n");
 
result = biosdisk(4,0,0,0,0,1,buffer);
 
result &= 0x02;
 
(result) ? (printf("Drive A: Ready\n")) :
 
(printf("Drive A: Not Ready\n"));
 
return 0;
 
}

函数名: bioskey 
: 直接使用BIOS服务的键盘接口 
: int bioskey(int cmd); 
程序例:

#include <stdio.h> 
#include <bios.h>
 
#include <ctype.h>
 
#define RIGHT 0x01
 
#define LEFT 0x02
 
#define CTRL 0x04
 
#define ALT 0x08

int main(void) 
{
 
int key, modifiers;
 
/* function 1 returns 0 until a key is pressed */
 
while (bioskey(1) == 0);
 
/* function 0 returns the key that is waiting */
 
key = bioskey(0);
 
/* use function 2 to determine if shift keys were used */
 
modifiers = bioskey(2);
 
if (modifiers)
 
{
 
printf("[");
 
if (modifiers & RIGHT) printf("RIGHT");
 
if (modifiers & LEFT) printf("LEFT");
 
if (modifiers & CTRL) printf("CTRL");
 
if (modifiers & ALT) printf("ALT");
 
printf("]");
 
}
 
/* print out the character read */
 
if (isalnum(key & 0xFF))
 
printf("'%c'\n", key);
 
else
 
printf("%#02x\n", key);
 
return 0;
 
}

函数名: biosmemory 
: 返回存储块大小 
:int biosmemory(void); 
程序例:

#include <stdio.h> 
#include <bios.h>

int main(void) 
{
 
int memory_size;
 
memory_size = biosmemory(); /* returns value up to 640K */
 
printf("RAM size = %dK\n",memory_size);
 
return 0;
 
}

函数名: biosprint 
: 直接使用BIOS服务的打印机I/O 
: int biosprint(int cmd, int byte, intport); 
程序例:

#include <stdio.h> 
#include <conio.h>
 
#include <bios.h>

int main(void) 
{
 
#define STATUS 2 /* printer status command */
 
#define PORTNUM 0 /* port number for LPT1 */
 
int status, abyte=0;
 
printf("Please turn off your printer. Press any key to continue\n");
 
getch();
 
status = biosprint(STATUS, abyte, PORTNUM);
 
if (status & 0x01)
 
printf("Device time out.\n");
 
if (status & 0x08)
 
printf("I/O error.\n");
 
if (status & 0x10)
 
printf("Selected.\n");
 
if (status & 0x20)
 
printf("Out of paper.\n");
 
if (status & 0x40)
 
printf("Acknowledge.\n");
 
if (status & 0x80)
 
printf("Not busy.\n");
 
return 0;
 
}


函数名: biostime 
: 读取或设置BIOS时间 
: long biostime(int cmd, long newtime); 
程序例:

#include <stdio.h> 
#include <bios.h>
 
#include <time.h>
 
#include <conio.h>

int main(void) 
{
 
long bios_time;
 
clrscr();
 
cprintf("The number of clock ticks since midnight is:\r\n");
 
cprintf("The number of seconds since midnight is:\r\n");
 
cprintf("The number of minutes since midnight is:\r\n");
 
cprintf("The number of hours since midnight is:\r\n");
 
cprintf("\r\nPress any key to quit:");
 
while(!kbhit())
 
{
 
bios_time = biostime(0, 0L);
 
gotoxy(50, 1);
 
cprintf("%lu", bios_time);
 
gotoxy(50, 2);
 
cprintf("%.4f", bios_time / CLK_TCK);
 
gotoxy(50, 3);
 
cprintf("%.4f", bios_time / CLK_TCK / 60);
 
gotoxy(50, 4);
 
cprintf("%.4f", bios_time / CLK_TCK / 3600);
 
}
 
return 0;
 
}

函数名: brk 
: 改变数据段空间分配 
: int brk(void *endds); 
程序例:

#include <stdio.h> 
#include <alloc.h>

int main(void) 
{
 
char *ptr;
 
printf("Changing allocation with brk()\n");
 
ptr = malloc(1);
 
printf("Before brk() call: %lu bytes free\n", coreleft());
 
brk(ptr+1000);
 
printf(" After brk() call: %lu bytes free\n", coreleft());
 
return 0;
 
}

函数名: bsearch 
: 二分法搜索 
: void *bsearch(const void *key, constvoid *base, size_t *nelem, 
size_t width, int(*fcmp)(const void *, const *));
 
程序例:

#include <stdlib.h> 
#include <stdio.h>
 
#define NELEMS(arr) (sizeof(arr) / sizeof(arr[0]))

int numarray[] = {123, 145, 512, 627, 800, 933}; 
int numeric (const int *p1, const int *p2)
 
{
 
return(*p1 - *p2);
 
}
 
int lookup(int key)
 
{
 
int *itemptr;
 
/* The cast of (int(*)(const void *,const void*))
 
is needed to avoid a type mismatch error at
 
compile time */
 
itemptr = bsearch (&key, numarray, NELEMS(numarray),
 
sizeof(int), (int(*)(const void *,const void *))numeric);
 
return (itemptr != NULL);
 
}
 
int main(void)
 
{
 
if (lookup(512))
 
printf("512 is in the table.\n");
 
else
 
printf("512 isn't in the table.\n");
 
return 0;
 

 

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值