王大刚--c语言编程宝典--b.htm

来自「初学者的良师益友。其中包括C的全部教程。」· HTM 代码 · 共 288 行 · 第 1/2 页

HTM
288
字号
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DONE = TRUE; 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp; bioscom(1, in, COM1); <BR>&nbsp; } 
      <BR>&nbsp;&nbsp; } <BR>&nbsp;&nbsp; return 0; <BR>} <BR>&nbsp; <BR>&nbsp; 
      <BR>&nbsp; <BR>
      <P>函数名: biosdisk <BR>功&nbsp; 能: 软硬盘I/O <BR>用&nbsp; 法: int biosdisk(int 
      cmd, int drive, int head, int track, int sector 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int nsects, void *buffer); 
      <BR>程序例: <BR>
      <P>#include &lt;bios.h&gt; <BR>#include &lt;stdio.h&gt; <BR>
      <P>int main(void) <BR>{ <BR>&nbsp;&nbsp; int result; <BR>&nbsp;&nbsp; char 
      buffer[512]; <BR>
      <P>&nbsp;&nbsp; printf("Testing to see if drive a: is ready\n"); 
      <BR>&nbsp;&nbsp; result = biosdisk(4,0,0,0,0,1,buffer); <BR>&nbsp;&nbsp; 
      result &amp;= 0x02; <BR>&nbsp;&nbsp; (result) ? (printf("Drive A: 
      Ready\n")) : <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (printf("Drive A: 
      Not Ready\n")); <BR>
      <P>&nbsp;&nbsp; return 0; <BR>} <BR>&nbsp; <BR>&nbsp; <BR>&nbsp; <BR>
      <P>函数名: biosequip <BR>功&nbsp; 能: 检查设备 <BR>用&nbsp; 法: int biosequip(void); 
      <BR>程序例: <BR>
      <P>#include &lt;bios.h&gt; <BR>#include &lt;stdio.h&gt; <BR>
      <P>int main(void) <BR>{ <BR>&nbsp;&nbsp; int result; <BR>&nbsp;&nbsp; char 
      buffer[512]; <BR>
      <P>&nbsp;&nbsp; printf("Testing to see if drive a: is ready\n"); 
      <BR>&nbsp;&nbsp; result = biosdisk(4,0,0,0,0,1,buffer); <BR>&nbsp;&nbsp; 
      result &amp;= 0x02; <BR>&nbsp;&nbsp; (result) ? (printf("Drive A: 
      Ready\n")) : <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (printf("Drive A: 
      Not Ready\n")); <BR>
      <P>&nbsp;&nbsp; return 0; <BR>} <BR>&nbsp; <BR>&nbsp; <BR>&nbsp; <BR>
      <P>函数名: bioskey <BR>功&nbsp; 能: 直接使用BIOS服务的键盘接口 <BR>用&nbsp; 法: int 
      bioskey(int cmd); <BR>程序例: <BR>
      <P>#include &lt;stdio.h&gt; <BR>#include &lt;bios.h&gt; <BR>#include 
      &lt;ctype.h&gt; <BR>
      <P>#define RIGHT&nbsp; 0x01 <BR>#define LEFT&nbsp;&nbsp; 0x02 <BR>#define 
      CTRL&nbsp;&nbsp; 0x04 <BR>#define ALT&nbsp;&nbsp;&nbsp; 0x08 <BR>
      <P>int main(void) <BR>{ <BR>&nbsp;&nbsp; int key, modifiers; <BR>
      <P>&nbsp;&nbsp; /* function 1 returns 0 until a key is pressed */ 
      <BR>&nbsp;&nbsp; while (bioskey(1) == 0); <BR>
      <P>&nbsp;&nbsp; /* function 0 returns the key that is waiting */ 
      <BR>&nbsp;&nbsp; key = bioskey(0); <BR>
      <P>&nbsp;&nbsp; /* use function 2 to determine if shift keys were used */ 
      <BR>&nbsp;&nbsp; modifiers = bioskey(2); <BR>&nbsp;&nbsp; if (modifiers) 
      <BR>&nbsp;&nbsp; { <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("["); 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (modifiers &amp; RIGHT) 
      printf("RIGHT"); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (modifiers &amp; 
      LEFT)&nbsp; printf("LEFT"); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if 
      (modifiers &amp; CTRL)&nbsp; printf("CTRL"); 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (modifiers &amp; ALT)&nbsp;&nbsp; 
      printf("ALT"); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("]"); 
      <BR>&nbsp;&nbsp; } <BR>&nbsp;&nbsp; /* print out the character read */ 
      <BR>&nbsp;&nbsp; if (isalnum(key &amp; 0xFF)) 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("'%c'\n", key); <BR>&nbsp;&nbsp; 
      else <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("%#02x\n", key); 
      <BR>&nbsp;&nbsp; return 0; <BR>} <BR>&nbsp; <BR>&nbsp; <BR>
      <P>函数名: biosmemory <BR>功&nbsp; 能: 返回存储块大小 <BR>用&nbsp; 法:int 
      biosmemory(void); <BR>程序例: <BR>
      <P>#include &lt;stdio.h&gt; <BR>#include &lt;bios.h&gt; <BR>
      <P>int main(void) <BR>{ <BR>&nbsp;&nbsp; int memory_size; <BR>
      <P>&nbsp;&nbsp; memory_size = biosmemory();&nbsp; /* returns value up to 
      640K */ <BR>&nbsp;&nbsp; printf("RAM size = %dK\n",memory_size); 
      <BR>&nbsp;&nbsp; return 0; <BR>} <BR>&nbsp; <BR>&nbsp; <BR>&nbsp; <BR>
      <P>函数名: biosprint <BR>功&nbsp; 能: 直接使用BIOS服务的打印机I/O <BR>用&nbsp; 法: int 
      biosprint(int cmd, int byte, int port); <BR>程序例: <BR>
      <P>#include &lt;stdio.h&gt; <BR>#include &lt;conio.h&gt; <BR>#include 
      &lt;bios.h&gt; <BR>
      <P>int main(void) <BR>{ <BR>&nbsp;&nbsp; #define STATUS&nbsp; 
      2&nbsp;&nbsp;&nbsp; /* printer status command */ <BR>&nbsp;&nbsp; #define 
      PORTNUM 0&nbsp;&nbsp;&nbsp; /* port number for LPT1 */ <BR>
      <P>&nbsp;&nbsp; int status, abyte=0; <BR>
      <P>&nbsp;&nbsp; printf("Please turn off your printer.&nbsp; Press any key 
      to continue\n"); <BR>&nbsp;&nbsp; getch(); <BR>&nbsp;&nbsp; status = 
      biosprint(STATUS, abyte, PORTNUM); <BR>&nbsp;&nbsp; if (status &amp; 0x01) 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("Device time out.\n"); 
      <BR>&nbsp;&nbsp; if (status &amp; 0x08) <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      printf("I/O error.\n"); <BR>
      <P>&nbsp;&nbsp; if (status &amp; 0x10) <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      printf("Selected.\n"); <BR>&nbsp;&nbsp; if (status &amp; 0x20) 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("Out of paper.\n"); <BR>
      <P>&nbsp;&nbsp; if (status &amp; 0x40) <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      printf("Acknowledge.\n"); <BR>&nbsp;&nbsp; if (status &amp; 0x80) 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("Not busy.\n"); <BR>
      <P>&nbsp;&nbsp; return 0; <BR>} <BR>&nbsp; <BR>&nbsp; <BR>&nbsp; <BR>
      <P>函数名: biostime <BR>功&nbsp; 能: 读取或设置BIOS时间 <BR>用&nbsp; 法: long 
      biostime(int cmd, long newtime); <BR>程序例: <BR>
      <P>#include &lt;stdio.h&gt; <BR>#include &lt;bios.h&gt; <BR>#include 
      &lt;time.h&gt; <BR>#include &lt;conio.h&gt; <BR>
      <P>int main(void) <BR>{ <BR>&nbsp;&nbsp; long bios_time; <BR>
      <P>&nbsp;&nbsp; clrscr(); <BR>&nbsp;&nbsp; cprintf("The number of clock 
      ticks since midnight is:\r\n"); <BR>&nbsp;&nbsp; cprintf("The number of 
      seconds since midnight is:\r\n"); <BR>&nbsp;&nbsp; cprintf("The number of 
      minutes since midnight is:\r\n"); <BR>&nbsp;&nbsp; cprintf("The number of 
      hours since midnight is:\r\n"); <BR>&nbsp;&nbsp; cprintf("\r\nPress any 
      key to quit:"); <BR>&nbsp;&nbsp; while(!kbhit()) <BR>&nbsp;&nbsp; { 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bios_time = biostime(0, 0L); <BR>
      <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; gotoxy(50, 1); 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cprintf("%lu", bios_time); <BR>
      <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; gotoxy(50, 2); 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cprintf("%.4f", bios_time / CLK_TCK); 
      <BR>
      <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; gotoxy(50, 3); 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cprintf("%.4f", bios_time / CLK_TCK / 
      60); <BR>
      <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; gotoxy(50, 4); 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cprintf("%.4f", bios_time / CLK_TCK / 
      3600); <BR>&nbsp;&nbsp; } <BR>&nbsp;&nbsp; return 0; <BR>} <BR>&nbsp; 
      <BR>&nbsp; <BR>&nbsp; <BR>
      <P>函数名: brk <BR>功&nbsp; 能: 改变数据段空间分配 <BR>用&nbsp; 法: int brk(void *endds); 
      <BR>程序例: <BR>
      <P>#include &lt;stdio.h&gt; <BR>#include &lt;alloc.h&gt; <BR>
      <P>int main(void) <BR>{ <BR>&nbsp;&nbsp; char *ptr; <BR>
      <P>&nbsp;&nbsp; printf("Changing allocation with brk()\n"); 
      <BR>&nbsp;&nbsp; ptr = malloc(1); <BR>&nbsp;&nbsp; printf("Before brk() 
      call: %lu bytes free\n", coreleft()); <BR>&nbsp;&nbsp; brk(ptr+1000); 
      <BR>&nbsp;&nbsp; printf(" After brk() call: %lu bytes free\n", 
      coreleft()); <BR>&nbsp;&nbsp; return 0; <BR>} <BR>&nbsp; <BR>&nbsp; 
      <BR>&nbsp; <BR>
      <P>函数名: bsearch <BR>功&nbsp; 能: 二分法搜索 <BR>用&nbsp; 法: void *bsearch(const 
      void *key, const void *base, size_t *nelem, 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; size_t width, 
      int(*fcmp)(const void *, const *)); <BR>程序例: <BR>
      <P>#include &lt;stdlib.h&gt; <BR>#include &lt;stdio.h&gt; <BR>
      <P>#define NELEMS(arr) (sizeof(arr) / sizeof(arr[0])) <BR>
      <P>int numarray[] = {123, 145, 512, 627, 800, 933}; <BR>
      <P>int numeric (const int *p1, const int *p2) <BR>{ <BR>&nbsp;&nbsp; 
      return(*p1 - *p2); <BR>} <BR>
      <P>int lookup(int key) <BR>{ <BR>&nbsp;&nbsp; int *itemptr; <BR>
      <P>&nbsp;&nbsp; /* The cast of (int(*)(const void *,const void*)) 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; is needed to avoid a type mismatch 
      error at <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; compile time */ 
      <BR>&nbsp;&nbsp; itemptr = bsearch (&amp;key, numarray, NELEMS(numarray), 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sizeof(int), (int(*)(const void *,const 
      void *))numeric); <BR>&nbsp;&nbsp; return (itemptr != NULL); <BR>} <BR>
      <P>int main(void) <BR>{ <BR>&nbsp;&nbsp; if (lookup(512)) 
      <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("512 is in the table.\n"); 
      <BR>&nbsp;&nbsp; else <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("512 isn't 
      in the table.\n"); <BR>
      <P>&nbsp;&nbsp; return 0; <BR>} <BR>&nbsp; <BR>
      <HR width="94%" color=#ee9b73 SIZE=1>
    </TD>
    <TD class=tt3 vAlign=bottom width="8%" bgColor=#e0e0e0><STRONG><A 
      href="http://www.hjflying.8u8.com/cl/022.htm">后一页</A><BR><A 
      href="http://www.hjflying.8u8.com/cl/020.htm">前一页</A><BR><A 
      href="http://www.hjflying.8u8.com/cl/index.html">回目录</A><BR><A 
      href="http://www.hjflying.8u8.com/index.htm">回首页</A><BR></STRONG></TD></TR></TBODY></TABLE></BODY></HTML>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?