函数一览之a b篇.docx
《函数一览之a b篇.docx》由会员分享,可在线阅读,更多相关《函数一览之a b篇.docx(24页珍藏版)》请在冰豆网上搜索。
函数一览之ab篇
函数一览之ab篇(待续)
内容:
异常终止一个进程
求整数的绝对值
绝对磁盘扇区读、写数据
确定文件的访问权限
反余弦函数
分配DOS存储段
画一弧线
转换日期和时间为ASCII码
反正弦函数
测试一个条件并可能使程序终止
反正切函数
计算Y/X的反正切值
注册终止函数
把字符串转换成浮点数
把字符串转换成长整型数
画一个二维条形图
画一个三维条形图
DOS系统调用
串行I/O通信
软硬盘I/O
检查设备
直接使用BIOS服务的键盘接口
返回存储块大小
直接使用BIOS服务的打印机I/O
读取或设置BIOS时间
改变数据段空间分配
二分法搜索
函数名:
abort
功 能:
异常终止一个进程
用 法:
void abort(void);
程序例:
#include
#include
int main(void)
{
printf("Calling abort()\n");
abort();
return 0; /* This is never reached */
}
函数名:
abs
功 能:
求整数的绝对值
用 法:
int abs(int i);
程序例:
#include
#include
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, 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[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, int amode);
程序例:
#include
#include
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
#include
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
#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:
%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, 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:
%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
#include
#include
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
#include
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);
}
函数名:
atan
功 能:
反正切函数
用 法:
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 %lf\n", x, result);
return(0);
}
函数名:
atan2
功 能:
计算Y/X的反正切值
用 法:
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 %lf\n", (y / x), result);
return 0;
}
函数名:
atexit
功 能:
注册终止函数
用 法:
int atexit(atexit_t func);
程序例:
#include
#include
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
#include
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
#include
int main(void)
{
int n;
char *str = "12345.67";
n = atoi(str);
printf("string = %s integer = %d\n", str, n);
return 0;
}
函数名:
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);
/* See errno.h for error listings */
exit
(1);
}
getcwd(buffer, BUFLEN);
printf("The current directory is:
%s\n", buffer);
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("Dri