📄 fb.htm
字号:
功 能: 检查设备 <br>
用 法: int biosequip(void); <br>
程序例: </p>
<p>#include <bios.h> <br>
#include <stdio.h> </p>
<p>int main(void) <br>
{ <br>
int result; <br>
char buffer[512]; </p>
<p> printf("Testing to see if drive a:
is ready\n"); <br>
result = biosdisk(4,0,0,0,0,1,buffer); <br>
result &= 0x02; <br>
(result) ? (printf("Drive A:
Ready\n")) : <br>
(printf("Drive
A: Not Ready\n")); </p>
<p> return 0; <br>
} <br>
<br>
<br>
</p>
<p>函数名: bioskey <br>
功 能: 直接使用BIOS服务的键盘接口 <br>
用 法: int bioskey(int cmd); <br>
程序例: </p>
<p>#include <stdio.h> <br>
#include <bios.h> <br>
#include <ctype.h> </p>
<p>#define RIGHT 0x01 <br>
#define LEFT 0x02 <br>
#define CTRL 0x04 <br>
#define ALT 0x08 </p>
<p>int main(void) <br>
{ <br>
int key, modifiers; </p>
<p> /* function 1 returns 0 until a key is
pressed */ <br>
while (bioskey(1) == 0); </p>
<p> /* function 0 returns the key that is
waiting */ <br>
key = bioskey(0); </p>
<p> /* use function 2 to determine if shift
keys were used */ <br>
modifiers = bioskey(2); <br>
if (modifiers) <br>
{ <br>
printf("["); <br>
if (modifiers & RIGHT)
printf("RIGHT"); <br>
if (modifiers & LEFT)
printf("LEFT"); <br>
if (modifiers & CTRL)
printf("CTRL"); <br>
if (modifiers & ALT)
printf("ALT"); <br>
printf("]"); <br>
} <br>
/* print out the character read */ <br>
if (isalnum(key & 0xFF)) <br>
printf("'%c'\n",
key); <br>
else <br>
printf("%#02x\n", key); <br>
return 0; <br>
} <br>
<br>
</p>
<p>函数名: biosmemory <br>
功 能: 返回存储块大小 <br>
用 法:int biosmemory(void); <br>
程序例: </p>
<p>#include <stdio.h> <br>
#include <bios.h> </p>
<p>int main(void) <br>
{ <br>
int memory_size; </p>
<p> memory_size = biosmemory(); /*
returns value up to 640K */ <br>
printf("RAM size =
%dK\n",memory_size); <br>
return 0; <br>
} <br>
<br>
<br>
</p>
<p>函数名: biosprint <br>
功 能: 直接使用BIOS服务的打印机I/O <br>
用 法: int biosprint(int cmd, int byte, int
port); <br>
程序例: </p>
<p>#include <stdio.h> <br>
#include <conio.h> <br>
#include <bios.h> </p>
<p>int main(void) <br>
{ <br>
#define STATUS 2 /*
printer status command */ <br>
#define PORTNUM 0 /* port
number for LPT1 */ </p>
<p> int status, abyte=0; </p>
<p> printf("Please turn off your
printer. Press any key to continue\n"); <br>
getch(); <br>
status = biosprint(STATUS, abyte, PORTNUM); <br>
if (status & 0x01) <br>
printf("Device time
out.\n"); <br>
if (status & 0x08) <br>
printf("I/O
error.\n"); </p>
<p> if (status & 0x10) <br>
printf("Selected.\n"); <br>
if (status & 0x20) <br>
printf("Out of
paper.\n"); </p>
<p> if (status & 0x40) <br>
printf("Acknowledge.\n"); <br>
if (status & 0x80) <br>
printf("Not
busy.\n"); </p>
<p> return 0; <br>
} <br>
<br>
<br>
</p>
<p>函数名: biostime <br>
功 能: 读取或设置BIOS时间 <br>
用 法: long biostime(int cmd, long newtime); <br>
程序例: </p>
<p>#include <stdio.h> <br>
#include <bios.h> <br>
#include <time.h> <br>
#include <conio.h> </p>
<p>int main(void) <br>
{ <br>
long bios_time; </p>
<p> clrscr(); <br>
cprintf("The number of clock ticks
since midnight is:\r\n"); <br>
cprintf("The number of seconds since
midnight is:\r\n"); <br>
cprintf("The number of minutes since
midnight is:\r\n"); <br>
cprintf("The number of hours since
midnight is:\r\n"); <br>
cprintf("\r\nPress any key to
quit:"); <br>
while(!kbhit()) <br>
{ <br>
bios_time = biostime(0,
0L); </p>
<p> gotoxy(50, 1); <br>
cprintf("%lu",
bios_time); </p>
<p> gotoxy(50, 2); <br>
cprintf("%.4f",
bios_time / CLK_TCK); </p>
<p> gotoxy(50, 3); <br>
cprintf("%.4f",
bios_time / CLK_TCK / 60); </p>
<p> gotoxy(50, 4); <br>
cprintf("%.4f",
bios_time / CLK_TCK / 3600); <br>
} <br>
return 0; <br>
} <br>
<br>
<br>
</p>
<p>函数名: brk <br>
功 能: 改变数据段空间分配 <br>
用 法: int brk(void *endds); <br>
程序例: </p>
<p>#include <stdio.h> <br>
#include <alloc.h> </p>
<p>int main(void) <br>
{ <br>
char *ptr; </p>
<p> printf("Changing allocation with
brk()\n"); <br>
ptr = malloc(1); <br>
printf("Before brk() call: %lu bytes
free\n", coreleft()); <br>
brk(ptr+1000); <br>
printf(" After brk() call: %lu bytes
free\n", coreleft()); <br>
return 0; <br>
} <br>
<br>
<br>
</p>
<p>函数名: bsearch <br>
功 能: 二分法搜索 <br>
用 法: void *bsearch(const void *key, const void
*base, size_t *nelem, <br>
size_t width,
int(*fcmp)(const void *, const *)); <br>
程序例: </p>
<p>#include <stdlib.h> <br>
#include <stdio.h> </p>
<p>#define NELEMS(arr) (sizeof(arr) / sizeof(arr[0])) </p>
<p>int numarray[] = {123, 145, 512, 627, 800, 933}; </p>
<p>int numeric (const int *p1, const int *p2) <br>
{ <br>
return(*p1 - *p2); <br>
} </p>
<p>int lookup(int key) <br>
{ <br>
int *itemptr; </p>
<p> /* The cast of (int(*)(const void *,const
void*)) <br>
is needed to avoid a type
mismatch error at <br>
compile time */ <br>
itemptr = bsearch (&key, numarray,
NELEMS(numarray), <br>
sizeof(int), (int(*)(const
void *,const void *))numeric); <br>
return (itemptr != NULL); <br>
} </p>
<p>int main(void) <br>
{ <br>
if (lookup(512)) <br>
printf("512 is in the
table.\n"); <br>
else <br>
printf("512 isn't in
the table.\n"); </p>
<p> return 0; <br>
} </p>
</td>
</tr>
</table>
</center></div><div align="center"><center>
<table border="0" cellspacing="1" width="640">
<tr>
<td class="p9" height="60"> <script>document.write("<p><a href=\"http://view.gznet.com/cgi-bin/rl_views.cgi?UID=10013421\" target=sxrl>");
document.write("<img src=\"http://refer.gznet.com/cgi-bin/rl_refer2.cgi?UID=10013421&refer="+escape(top.document.referrer)+"\" width=1 height=1 border=0 alt=\" \">");
document.write("</a>");
</script></td>
</tr>
</table>
</center></div>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -