C语言函数大全(B开头)
函数名: bar
功 能: 画一个二维条形图
用 法: void far bar(int left, int top, int right, int bottom);
程序例:
#include
#include
#include
#include
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 {
/* 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, int right, int bottom,
int depth, int topflag);
程序例:
#include
#include
#include
#include
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 {
/* 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
#include
/* 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
#include
#include
#include
#include
#include
#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); [Page]
/* 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, int port);
程序例:
#include
#include
#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, int head, int track, int sector
int nsects, void *buffer);
程序例:
#include
#include
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
#include
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
#include
#include
#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
#include
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 [Page]
用 法: int biosprint(int cmd, int byte, int port);
程序例:
#include
#include
#include
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
#include
#include
#include
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
#include
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, const void *base, size_t *nelem,
size_t width, int(*fcmp)(const void *, const *));
程序例:
#include
#include
#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;
}