LinuxSir.Org  
| 网站首页 | 注册账号 | 论坛帮助 |

欢迎来到LinuxSir.Org!
您还未登录,请登录后查看论坛,或者点击论坛上方的注册链接注册新账号。


发表新主题 关闭主题
精华主题  
主题工具
旧 04-06-09, 21:14 第 1 帖
kj501
 
kj501 的头像
 
 
★☆版★主☆★  
  注册日期: Sep 2002
  我的住址: 贵州贵阳
  帖子: 5,317
  精华: 36
 

标题: C语言库函数---unix常用系统调用---使用说明(zt)


原文出处:http://chinaunix.net/forum/viewtopic.php?t=72159
已经按字母顺序排列,使用时依次查找即可
【说明】
一共分为3个小节,1小节给定一个连接,该连接给了一些常用标准c的函数使用说明,但是不够全面。2小结按字母顺序排列,几乎覆盖了c中常用的函数,同时有些函数不在unix系统中支持了。3小节描述了unix系统中常用系统调用的使用说明。


1、【下面这个连接给出了一些c库的函数说明使用例程,但是不够全面,可以作为参考】
http://www.ggv.com.cn/forum/clib/clib.html

2、【如下对C语言库函数按字母顺序描述,如果上面连接中找不到,可以到这里查找到,需要说明的是,有些函数在新的libc中已经不提供了,如果要查找unix系统常用系统调用函数使用说明,请到小节3查找】

PHP 代码:
函数名abort
功 能
异常终止一个进程
用 法
void abort(void);
程序例:
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
printf("Calling abort()\n");
abort();
return 
0/* This is never reached */
}



函数名abs
功 能
求整数的绝对值
用 法
int abs(int i);
程序例:
#include <stdio.h>
#include <math.h>

int main(void)
{
int number = -1234;

printf("number: %d absolute value: %d\n"numberabs(number));
return 
0;
}



函数名absreadabswirte
功 能
绝对磁盘扇区读、写数据
用 法
int absread(int driveint nsectsint sectnovoid *buffer);
int abswrite(int driveint nsectsin tsectnovoid *buffer);
程序例:
/* absread example */

#include <stdio.h>
#include <conio.h>
#include <process.h>
#include <dos.h>

int main(void)
{
int istrtch_outsector;
char buf[512];

printf("Insert a diskette into drive A and press any key\n");
getch();
sector 0;
if (
absread(01sector, &buf) != 0)
{
perror("Disk problem");
exit(
1);
}
printf("Read OK\n");
strt 3;
for (
i=0i<80i++)
{
ch_out buf[strt+i];
putchar(ch_out);
}
printf("\n");
return(
0);
}




函数名access
功 能
确定文件的访问权限
用 法
int access(const char *filenameint amode);
程序例:
#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(filename0) == 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"xresult);
return 
0;
}



函数名allocmem
功 能
分配DOS存储段
用 法
int allocmem(unsigned sizeunsigned *seg);
程序例:
#include <dos.h>
#include <alloc.h>
#include <stdio.h>

int main(void)
{
unsigned int sizesegp;
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 xint yint stangleint endangleint radius);
程序例:
#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>

int main(void)
{
/* request auto detection */
int gdriver DETECTgmodeerrorcode;
int midxmidy;
int stangle 45endangle 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(midxmidystangleendangleradius);

/* 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(strasctime(&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"xresult);
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"xresult);
return(
0);
}



函数名atan2
功 能
计算Y/X的反正切值
用 法
double atan2(double ydouble x);
程序例:
#include <stdio.h>
#include <math.h>

int main(void)
{
double result;
double x 90.045.0;

result atan2(yx);
printf("The arc tangent ratio of %lf is %lf\n", (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";

atof(str);
printf("string = %s float = %f\n"strf);
return 
0;
}



函数名atoi
功 能
把字符串转换成长整型数
用 法
int atoi(const char *nptr);
程序例:
#include <stdlib.h>
#include <stdio.h>

int main(void)
{
int n;
char *str "12345.67";

atoi(str);
printf("string = %s integer = %d\n"strn);
return 
0;
}



函数名atol
功 能
把字符串转换成长整型数
用 法
long atol(const char *nptr);
程序例:

#include <stdlib.h>
#include <stdio.h>

int main(void)
{
long l;
char *str "98765432";

atol(lstr);
printf("string = %s integer = %ld\n"strl);
return(
0);








__________________
希望大家提问前先 google 关键词
希望大家提问前先看论坛的精华和置项的贴子
希望大家提问前先搜索论坛的相关内容
希望大家提问时把标题写清楚
希望大家贴代码时能保持缩进
LFS ID:8158

此帖于 04-06-09 21:52 被 kj501 编辑.
  kj501 当前离线  
旧 04-06-09, 21:17 第 2 帖
kj501
 
kj501 的头像
 
 
★☆版★主☆★  
  注册日期: Sep 2002
  我的住址: 贵州贵阳
  帖子: 5,317
  精华: 36
 

PHP 代码:
函数名bar
功 能
画一个二维条形图
用 法
void far bar(int leftint topint rightint bottom);
程序例:
#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>

int main(void)
{
/* request auto detection */
int gdriver DETECTgmodeerrorcode;
int midxmidyi;

/* 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_FILLi<USER_FILLi++)
{
/* set the fill style */
setfillstyle(igetmaxcolor());

/* draw the bar */
bar(midx-50midy-50midx+50,
midy+50);

getch();
}

/* clean up */
closegraph();
return 
0;
}




函数名bar3d
功 能
画一个三维条形图
用 法
void far bar3d(int leftint topint rightint bottom,
int depthint topflag);
程序例:

#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>

int main(void)
{
/* request auto detection */
int gdriver DETECTgmodeerrorcode;
int midxmidyi;

/* 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_FILLi<USER_FILLi++)
{
/* set the fill style */
setfillstyle(igetmaxcolor());

/* draw the 3-d bar */
bar3d(midx-50midy-50midx+50midy+50101);

getch();
}

/* clean up */
closegraph();
return 
0;
}




函数名bdos
功 能
DOS系统调用
用 法
int bdos(int dosfununsigned dosdxunsigned 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(0x1900);
return(
'A' curdrive);
}

int main(void)
{
printf("The current drive is %c:\n"current_drive());
return 
0;
}




函数名bdosptr
功 能
DOS系统调用
用 法
int bdosptr(int dosfunvoid *argumentunsigned 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(bufferBUFLEN);
printf("The current directory is: %s\n"buffer);

return 
0;
}




函数名bioscom
功 能
串行I/O通信
用 法
int bioscom(int cmdchar abyteint port);
程序例:

#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 inoutstatusDONE FALSE;

bioscom(0SETTINGSCOM1);
cprintf("... BIOSCOM [ESC] to exit ...\n");
while (!
DONE)
{
status bioscom(30COM1);
if (
status DATA_READY)
if ((
out bioscom(20COM1) & 0x7F) != 0)
putch(out);
if (
kbhit())
{
if ((
in getch()) == '\x1B')
DONE TRUE;
bioscom(1inCOM1);
}
}
return 
0;
}




函数名biosdisk
功 能
软硬盘I/O
用 法
int biosdisk(int cmdint driveint headint trackint 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 keymodifiers;

/* 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 RIGHTprintf("RIGHT");
if (
modifiers LEFTprintf("LEFT");
if (
modifiers CTRLprintf("CTRL");
if (
modifiers ALTprintf("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 cmdint byteint port);
程序例:

#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 statusabyte=0;

printf("Please turn off your printer. Press any key to continue\n");
getch();
status biosprint(STATUSabytePORTNUM);
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 cmdlong 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(00L);

gotoxy(501);
cprintf("%lu"bios_time);

gotoxy(502);
cprintf("%.4f"bios_time CLK_TCK);

gotoxy(503);
cprintf("%.4f"bios_time CLK_TCK 60);

gotoxy(504);
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, const void *basesize_t *nelem,
size_t widthint(*fcmp)(const void *, const *));
程序例:

#include <stdlib.h>
#include <stdio.h>

#define NELEMS(arr) (sizeof(arr) / sizeof(arr[0]))

int numarray[] = {123145512627800933};

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 (&keynumarrayNELEMS(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;

  kj501 当前离线  
旧 04-06-09, 21:18 第 3 帖
kj501
 
kj501 的头像
 
 
★☆版★主☆★  
  注册日期: Sep 2002
  我的住址: 贵州贵阳
  帖子: 5,317
  精华: 36
 

PHP 代码:
函数名cabs
功 能
计算复数的绝对值
用 法
double cabs(struct complex z);
程序例:
#include <stdio.h>
#include <math.h>

int main(void)
{
struct complex z;
double val;

z.2.0;
z.1.0;
val cabs(z);

printf("The absolute value of %.2lfi %.2lfj is %.2lf"z.xz.yval);
return 
0;
}




函数名calloc
功 能
分配主存储器
用 法
void *calloc(size_t nelemsize_t elsize);
程序例:

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

int main(void)
{
char *str NULL;

/* allocate memory for string */
str calloc(10sizeof(char));

/* copy "Hello" into string */
strcpy(str"Hello");

/* display string */
printf("String is %s\n"str);

/* free memory */
free(str);

return 
0;
}




函数名ceil
功 能
向上舍入
用 法
double ceil(double x);
程序例:

#include <math.h>
#include <stdio.h>

int main(void)
{
double number 123.54;
double downup;

down floor(number);
up ceil(number);

printf("original number %5.2lf\n"number);
printf("number rounded down %5.2lf\n"down);
printf("number rounded up %5.2lf\n"up);

return 
0;
}




函数名cgets
功 能
从控制台读字符串
用 法
char *cgets(char *str);
程序例:

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

int main(void)
{
char buffer[83];
char *p;

/* There's space for 80 characters plus the NULL terminator */
buffer[0] = 81;

printf("Input some chars:");
cgets(buffer);
printf("\ncgets read %d characters: \"%s\"\n"buffer[1], p);
printf("The returned pointer is %p, buffer[0] is at %p\n"p, &buffer);

/* Leave room for 5 characters plus the NULL terminator */
buffer[0] = 6;

printf("Input some chars:");
cgets(buffer);
printf("\ncgets read %d characters: \"%s\"\n"buffer[1], p);
printf("The returned pointer is %p, buffer[0] is at %p\n"p, &buffer);
return 
0;
}




函数名chdir
功 能
改变工作目录
用 法
int chdir(const char *path);
程序例:

#include <stdio.h>
#include <stdlib.h>
#include <dir.h>

char old_dir[MAXDIR];
char new_dir[MAXDIR];

int main(void)
{
if (
getcurdir(0old_dir))
{
perror("getcurdir()");
exit(
1);
}
printf("Current directory is: \\%s\n"old_dir);

if (
chdir("\\"))
{
perror("chdir()");
exit(
1);
}

if (
getcurdir(0new_dir))
{
perror("getcurdir()");
exit(
1);
}
printf("Current directory is now: \\%s\n"new_dir);

printf("\nChanging back to orignal directory: \\%s\n"old_dir);
if (
chdir(old_dir))
{
perror("chdir()");
exit(
1);
}

return 
0;
}



函数名_chmodchmod
功 能
改变文件的访问方式
用 法
int chmod(const char *filenameint permiss);
程序例:

#include <sys\stat.h>
#include <stdio.h>
#include <io.h>

void make_read_only(char *filename);

int main(void)
{
make_read_only("NOTEXIST.FIL");
make_read_only("MYFILE.FIL");
return 
0;
}

void make_read_only(char *filename)
{
int stat;

stat chmod(filenameS_IREAD);
if (
stat)
printf("Couldn't make %s read-only\n"filename);
else
printf("Made %s read-only\n"filename);
}




函数名chsize
功 能
改变文件大小
用 法
int chsize(int handlelong size);
程序例:

#include <string.h>
#include <fcntl.h>
#include <io.h>

int main(void)
{
int handle;
char buf[11] = "0123456789";

/* create text file containing 10 bytes */
handle open("DUMMY.FIL"O_CREAT);
write(handlebufstrlen(buf));

/* truncate the file to 5 bytes in size */
chsize(handle5);

/* close the file */
close(handle);
return 
0;
}



函数名circle
功 能
在给定半径以(xy)为圆心画圆
用 法
void far circle(int xint yint radius);
程序例:

#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>

int main(void)
{
/* request auto detection */
int gdriver DETECTgmodeerrorcode;
int midxmidy;
int radius 100;

/* 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;
setcolor(getmaxcolor());

/* draw the circle */
circle(midxmidyradius);

/* clean up */
getch();
closegraph();
return 
0;
}




函数名cleardevice
功 能
清除图形屏幕
用 法
void far cleardevice(void);
程序例:

#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>

int main(void)
{
/* request auto detection */
int gdriver DETECTgmodeerrorcode;
int midxmidy;

/* 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;
setcolor(getmaxcolor());

/* for centering screen messages */
settextjustify(CENTER_TEXTCENTER_TEXT);

/* output a message to the screen */
outtextxy(midxmidy"press any key to clear the screen:");

/* wait for a key */
getch();

/* clear the screen */
cleardevice();

/* output another message */
outtextxy(midxmidy"press any key to quit:");

/* clean up */
getch();
closegraph();
return 
0;
}




函数名clearerr
功 能
复位错误标志
用 法
:void clearerr(FILE *stream);
程序例:

#include <stdio.h>

int main(void)
{
FILE *fp;
char ch;

/* open a file for writing */
fp fopen("DUMMY.FIL""w");

/* force an error condition by attempting to read */
ch fgetc(fp);
printf("%c\n",ch);

if (
ferror(fp))
{
/* display an error message */
printf("Error reading from DUMMY.FIL\n");

/* reset the error and EOF indicators */
clearerr(fp);
}

fclose(fp);
return 
0;
}




函数名clearviewport
功 能
清除图形视区
用 法
void far clearviewport(void);
程序例:

#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>

#define CLIP_ON 1 /* activates clipping in viewport */

int main(void)
{
/* request auto detection */
int gdriver DETECTgmodeerrorcode;
int ht;

/* 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 */
}

setcolor(getmaxcolor());
ht textheight("W");

/* message in default full-screen viewport */
outtextxy(00"* <-- (0, 0) in default viewport");

/* create a smaller viewport */
setviewport(5050getmaxx()-50getmaxy()-50CLIP_ON);

/* display some messages */
outtextxy(00"* <-- (0, 0) in smaller viewport");
outtextxy(02*ht"Press any key to clear viewport:");

/* wait for a key */
getch();

/* clear the viewport */
clearviewport();

/* output another message */
outtextxy(00"Press any key to quit:");

/* clean up */
getch();
closegraph();
return 
0;
}




函数名_closeclose
功 能
关闭文件句柄
用 法
int close(int handle);
程序例:

#include <string.h>
#include <stdio.h>
#include <fcntl.h>
#include <io.h>

main()
{
int handle;
char buf[11] = "0123456789";

/* create a file containing 10 bytes */
handle open("NEW.FIL"O_CREAT);
if (
handle > -1)
{
write(handlebufstrlen(buf));

/* close the file */
close(handle);
}
else
{
printf("Error opening file\n");
}
return 
0;
}




函数名clock
功 能
确定处理器时间
用 法
clock_t clock(void);
程序例:

#include <time.h>
#include <stdio.h>
#include <dos.h>

int main(void)
{
clock_t startend;
start clock();

delay(2000);

end clock();
printf("The time was: %f\n", (end start) / CLK_TCK);

return 
0;
}




函数名closegraph
功 能
关闭图形系统
用 法
void far closegraph(void);
程序例:

#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>

int main(void)
{
/* request auto detection */
int gdriver DETECTgmodeerrorcode;
int xy;

/* initialize graphics mode */
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 */
}

getmaxx() / 2;
getmaxy() / 2;

/* output a message */
settextjustify(CENTER_TEXTCENTER_TEXT);
outtextxy(xy"Press a key to close the graphics system:");

/* wait for a key */
getch();

/* closes down the graphics system */
closegraph();

printf("We're now back in text mode.\n");
printf("Press any key to halt:");
getch();
return 
0;
}




函数名clreol
功 能
在文本窗口中清除字符到行末
用 法
void clreol(void);
程序例:

#include <conio.h>

int main(void)

{
clrscr();
cprintf("The function CLREOL clears all characters from the\r\n");
cprintf("cursor position to the end of the line within the\r\n");
cprintf("current text window, without moving the cursor.\r\n");
cprintf("Press any key to continue . . .");
gotoxy(144);
getch();

clreol();
getch();

return 
0;
}




函数名clrscr
功 能
清除文本模式窗口
用 法
void clrscr(void);
程序例:

#include <conio.h>

int main(void)
{
int i;

clrscr();
for (
020i++)
cprintf("%d\r\n"i);
cprintf("\r\nPress any key to clear screen");
getch();

clrscr();
cprintf("The screen has been cleared!");
getch();

return 
0;
}




函数名coreleft
功 能
返回未使用内存的大小
用 法
unsigned coreleft(void);
程序例:

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

int main(void)
{
printf("The difference between the highest allocated block and\n");
printf("the top of the heap is: %lu bytes\n", (unsigned longcoreleft());

return 
0;
}


函数名cos
功 能
余弦函数
用 法
double cos(double x);
程序例:

#include <stdio.h>
#include <math.h>

int main(void)
{
double result;
double x 0.5;

result cos(x);
printf("The cosine of %lf is %lf\n"xresult);
return 
0;
}




函数名cosh
功 能
双曲余弦函数
用 法
dluble cosh(double x);
程序例:

#include <stdio.h>
#include <math.h>

int main(void)
{
double result;
double x 0.5;

result cosh(x);
printf("The hyperboic cosine of %lf is %lf\n"xresult);
return 
0;
}




函数名country
功 能
返回与国家有关的信息
用 法
struct COUNTRY *country(int countrycodestruct country *country);
程序例:

#include <dos.h>
#include <stdio.h>

#define USA 0

int main(void)
{
struct COUNTRY country_info;

country(USA, &country_info);
printf("The currency symbol for the USA is: %s\n",
country_info.co_curr);
return 
0;
}




函数名cprintf
功 能
送格式化输出至屏幕
用 法
int cprintf(const char *format[, argument, ...]);
程序例:

#include <conio.h>

int main(void)
{
/* clear the screen */
clrscr();

/* create a text window */
window(10108025);

/* output some text in the window */
cprintf("Hello world\r\n");

/* wait for a key */
getch();
return 
0;
}




函数名cputs
功 能
写字符到屏幕
用 法
void cputs(const char *string);
程序例:

#include <conio.h>

int main(void)
{
/* clear the screen */
clrscr();

/* create a text window */
window(10108025);

/* output some text in the window */
cputs("This is within the window\r\n");

/* wait for a key */
getch();
return 
0;
}




函数名_creat creat
功 能
创建一个新文件或重写一个已存在的文件
用 法
int creat (const char *filenameint permiss);
程序例:

#include <sys\stat.h>
#include <string.h>
#include <fcntl.h>
#include <io.h>

int main(void)
{
int handle;
char buf[11] = "0123456789";

/* change the default file mode from text to binary */
_fmode O_BINARY;

/* create a binary file for reading and writing */
handle creat("DUMMY.FIL"S_IREAD S_IWRITE);

/* write 10 bytes to the file */
write(handlebufstrlen(buf));

/* close the file */
close(handle);
return 
0;
}


函数名creatnew
功 能
创建一个新文件
用 法
int creatnew(const char *filenameint attrib);
程序例:

#include <string.h>
#include <stdio.h>
#include <errno.h>
#include <dos.h>
#include <io.h>

int main(void)
{
int handle;
char buf[11] = "0123456789";

/* attempt to create a file that doesn't already exist */
handle creatnew("DUMMY.FIL"0);

if (
handle == -1)
printf("DUMMY.FIL already exists.\n");
else
{
printf("DUMMY.FIL successfully created.\n");
write(handlebufstrlen(buf));
close(handle);
}
return 
0;
}




函数名creattemp
功 能
创建一个新文件或重写一个已存在的文件
用 法
int creattemp(const char *filenameint attrib);
程序例:

#include <string.h>
#include <stdio.h>
#include <io.h>

int main(void)
{
int handle;
char pathname[128];

strcpy(pathname"\\");

/* create a unique file in the root directory */
handle creattemp(pathname0);

printf("%s was the unique file created.\n"pathname);
close(handle);
return 
0;
}




函数名cscanf
功 能
从控制台执行格式化输入
用 法
int cscanf(char *format[,argument, ...]);
程序例:

#include <conio.h>

int main(void)
{
char string[80];

/* clear the screen */
clrscr();

/* Prompt the user for input */
cprintf("Enter a string with no spaces:");

/* read the input */
cscanf("%s"string);

/* display what was read */
cprintf("\r\nThe string entered is: %s"string);
return 
0;
}




函数名ctime
功 能
把日期和时间转换为字符串
用 法
char *ctime(const time_t *time);
程序例:

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

int main(void)
{
time_t t;

time(&t);
printf("Today's date and time: %s\n"ctime(&t));
return 
0;
}




函数名ctrlbrk
功 能
设置Ctrl-Break处理程序
用 法
void ctrlbrk(*fptr)(void);
程序例:

#include <stdio.h>
#include <dos.h>

#define ABORT 0

int c_break(void)
{
printf("Control-Break pressed. Program aborting ...\n");
return (
ABORT);
}

int main(void)
{
ctrlbrk(c_break);
for(;;)
{
printf("Looping... Press <Ctrl-Break> to quit:\n");
}
return 
0;

  kj501 当前离线  
旧 04-06-09, 21:23 第 4 帖
kj501
 
kj501 的头像
 
 
★☆版★主☆★  
  注册日期: Sep 2002
  我的住址: 贵州贵阳
  帖子: 5,317
  精华: 36
 

PHP 代码:
函数名delay
功 能
将程序的执行暂停一段时间(毫秒)
用 法void delay(unsigned milliseconds);
程序例:
/* Emits a 440-Hz tone for 500 milliseconds */
#include <dos.h>
int main(void)
{
sound(440);
delay(500);
nosound();

return 
0;
}



函数名delline
功 能
在文本窗口中删去一行
用 法
void delline(void);
程序例:

#include <conio.h>

int main(void)
{
clrscr();
cprintf("The function DELLINE deletes \
the line containing the\r\n"
);
cprintf("cursor and moves all lines \
below it one line up.\r\n"
);
cprintf("DELLINE operates within the \
currently active text\r\n"
);
cprintf("window. Press any key to \
continue . . ."
);
gotoxy(1,2); /* Move the cursor to the
second line and first column */
getch();

delline();
getch();

return 
0;
}


函数名detectgraph
功 能
通过检测硬件确定图形驱动程序和模式
用 法
void far detectgraph(int far *graphdriverint far *graphmode);
程序例:

#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>

/* names of the various cards supported */
char *dname[] = { "requests detection",
"a CGA",
"an MCGA",
"an EGA",
"a 64K EGA",
"a monochrome EGA",
"an IBM 8514",
"a Hercules monochrome",
"an AT&T 6300 PC",
"a VGA",
"an IBM 3270 PC"
};

int main(void)
{
/* returns detected hardware info. */
int gdrivergmodeerrorcode;

/* detect graphics hardware available */
detectgraph(&gdriver, &gmode);

/* read result of detectgraph call */
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 */
}

/* display the information detected */
clrscr();
printf("You have %s video display \
card.\n"
dname[gdriver]);
printf("Press any key to halt:");
getch();
return 
0;
}




函数名difftime
功 能
计算两个时刻之间的时间差
用 法
double difftime(time_t time2time_t time1);
程序例:

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

int main(void)
{
time_t firstsecond;

clrscr();
first time(NULL); /* Gets system
time */
delay(2000); /* Waits 2 secs */
second time(NULL); /* Gets system time
again */

printf("The difference is: %f \
seconds\n"
,difftime(second,first));
getch();

return 
0;
}



函数名disable
功 能
屏蔽中断
用 法
void disable(void);
程序例:

/***NOTE: This is an interrupt service
routine. You cannot compile this program
with Test Stack Overflow turned on and
get an executable file that operates
correctly. */

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

#define INTR 0X1C /* The clock tick
interrupt */

void interrupt ( *oldhandler)(void);

int count=0;

void interrupt handler(void)
{
/* disable interrupts during the handling of
the interrupt */
disable();
/* increase the global counter */
count++;
/* reenable interrupts at the end of the
handler */
enable();
/* call the old routine */
oldhandler();
}

int main(void)
{
/* save the old interrupt vector */
oldhandler getvect(INTR);

/* install the new interrupt handler */
setvect(INTRhandler);

/* loop until the counter exceeds 20 */
while (count 20)
printf("count is %d\n",count);

/* reset the old interrupt handler */
setvect(INTRoldhandler);

return 
0;
}

函数名div
功 能
将两个整数相除返回商和余数
用 法
div_t (int numberint denom);
程序例:

#include <stdlib.h>
#include <stdio.h>

div_t x;

int main(void)
{
div(10,3);
printf("10 div 3 = %d remainder %d\n"x.quotx.rem);

return 
0;
}



函数名dosexterr
功 能
获取扩展DOS错误信息
用 法
int dosexterr(struct DOSERR *dblkp);
程序例:

#include <stdio.h>
#include <dos.h>

int main(void)
{
FILE *fp;
struct DOSERROR info;

fp fopen("perror.dat","r");
if (!
fpperror("Unable to open file for
reading"
);
dosexterr(&info);

printf("Extended DOS error \
information:\n"
);
printf(" Extended error: \
%d\n"
,info.exterror);
printf(" Class: \
%x\n"
,info.class);
printf(" Action: \
%x\n"
,info.action);
printf(" Error Locus: \
%x\n"
,info.locus);

return 
0;
}



函数名dostounix
功 能
转换日期和时间为UNIX时间格式
用 法
long dostounix(struct date *dateptrstruct time *timeptr);
程序例:

#include <time.h>
#include <stddef.h>
#include <dos.h>
#include <stdio.h>

int main(void)
{
time_t t;
struct time d_time;
struct date d_date;
struct tm *local;

getdate(&d_date);
gettime(&d_time);

dostounix(&d_date, &d_time);
local localtime(&t);
printf("Time and Date: %s\n"
asctime(local));

return 
0;
}



函数名drawpoly
功 能
画多边形
用 法
void far drawpoly(int numpointsint far *polypoints);
程序例:

#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>

int main(void)
{
/* request auto detection */
int gdriver DETECTgmodeerrorcode;
int maxxmaxy;

/* our polygon array */
int poly[10];

/* 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();
/* terminate with an error code */
exit(1);
}

maxx getmaxx();
maxy getmaxy();

poly[0] = 20/* 1st vertext */
poly[1] = maxy 2;

poly[2] = maxx 20/* 2nd */
poly[3] = 20;

poly[4] = maxx 50/* 3rd */
poly[5] = maxy 20;

poly[6] = maxx 2/* 4th */
poly[7] = maxy 2;
/*
drawpoly doesn't automatically close
the polygon, so we close it.
*/
poly[8] = poly[0];
poly[9] = poly[1];

/* draw the polygon */
drawpoly(5poly);

/* clean up */
getch();
closegraph();
return 
0;
}



函数名dup
功 能
复制一个文件句柄
用 法
int dup(int handle);
程序例:

#include <string.h>
#include <stdio.h>
#include <conio.h>
#include <io.h>

void flush(FILE *stream);

int main(void)
{
FILE *fp;
char msg[] = "This is a test";

/* create a file */
fp fopen("DUMMY.FIL""w");

/* write some data to the file */
fwrite(msgstrlen(msg), 1fp);

clrscr();
printf("Press any key to flush \
DUMMY.FIL:"
);
getch();

/* flush the data to DUMMY.FIL without
closing it */
flush(fp);

printf("\nFile was flushed, Press any \
key to quit:"
);
getch();
return 
0;
}

void flush(FILE *stream)
{
int duphandle;

/* flush TC's internal buffer */
fflush(stream);

/* make a duplicate file handle */
duphandle dup(fileno(stream));

/* close the duplicate handle to flush the
DOS buffer */
close(duphandle);
}



函数名dup2
功 能
复制文件句柄
用 法
int dup2(int oldhandleint newhandle);
程序例:

#include <sys\stat.h>
#include <string.h>
#include <fcntl.h>
#include <io.h>

int main(void)
{
#define STDOUT 1

int nuloldstdout;
char msg[] = "This is a test";

/* create a file */
nul open("DUMMY.FIL"O_CREAT O_RDWR,
S_IREAD S_IWRITE);

/* create a duplicate handle for standard
output */
oldstdout dup(STDOUT);
/*
redirect standard output to DUMMY.FIL
by duplicating the file handle onto the
file handle for standard output.
*/
dup2(nulSTDOUT);

/* close the handle for DUMMY.FIL */
close(nul);

/* will be redirected into DUMMY.FIL */
write(STDOUTmsgstrlen(msg));

/* restore original standard output
handle */
dup2(oldstdoutSTDOUT);

/* close duplicate handle for STDOUT */
close(oldstdout);

return 
0;

  kj501 当前离线  
旧 04-06-09, 21:23 第 5 帖
kj501
 
kj501 的头像
 
 
★☆版★主☆★  
  注册日期: Sep 2002
  我的住址: 贵州贵阳
  帖子: 5,317
  精华: 36
 

PHP 代码:
函数名ecvt
功 能
把一个浮点数转换为字符串
用 法
char ecvt(double valueint ndigitint *decptint *sign);
程序例:

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

int main(void)
{
char *string;
double value;
int decsign;
int ndig 10;

clrscr();
value 9.876;
string ecvt(valuendig, &dec, &sign);
printf("string = %s dec = %d \
sign = %d\n"
stringdecsign);

value = -123.45;
ndig15;
string ecvt(value,ndig,&dec,&sign);
printf("string = %s dec = %d sign = %d\n",
stringdecsign);


value 0.6789e5/* scientific
notation */
ndig 5;
string ecvt(value,ndig,&dec,&sign);
printf("string = %s dec = %d\
sign = %d\n"
stringdecsign);

return 
0;
}



函数名ellipse
功 能
画一椭圆
用 法
void far ellipse(int xint yint stangleint endangle,
int xradiusint yradius);
程序例:

#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>

int main(void)
{
/* request auto detection */
int gdriver DETECTgmodeerrorcode;
int midxmidy;
int stangle 0endangle 360;
int xradius 100yradius 50;

/* 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 an error code */
}

midx getmaxx() / 2;
midy getmaxy() / 2;
setcolor(getmaxcolor());

/* draw ellipse */
ellipse(midxmidystangleendangle,
xradiusyradius);

/* clean up */
getch();
closegraph();
return 
0;
}



函数名enable
功 能
开放硬件中断
用 法
void enable(void);
程序例:

/* ** NOTE:
This is an interrupt service routine. You can NOT compile this program
with Test Stack Overflow turned on and get an executable file which will
operate correctly.
*/

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

/* The clock tick interrupt */
#define INTR 0X1C

void interrupt ( *oldhandler)(void);

int count=0;

void interrupt handler(void)
{
/*
disable interrupts during the handling of the interrupt
*/
disable();
/* increase the global counter */
count++;
/*
re enable interrupts at the end of the handler
*/
enable();
/* call the old routine */
oldhandler();
}

int main(void)
{
/* save the old interrupt vector */
oldhandler getvect(INTR);

/* install the new interrupt handler */
setvect(INTRhandler);

/* loop until the counter exceeds 20 */
while (count 20)
printf("count is %d\n",count);

/* reset the old interrupt handler */
setvect(INTRoldhandler);

return 
0;
}



函数名eof
功 能
检测文件结束
用 法
int eof(int *handle);
程序例:

#include <sys\stat.h>
#include <string.h>
#include <stdio.h>
#include <fcntl.h>
#include <io.h>

int main(void)
{
int handle;
char msg[] = "This is a test";
char ch;

/* create a file */
handle open("DUMMY.FIL",
O_CREAT O_RDWR,
S_IREAD S_IWRITE);

/* write some data to the file */
write(handlemsgstrlen(msg));

/* seek to the beginning of the file */
lseek(handle0LSEEK_SET);

/*
reads chars from the file until hit EOF
*/
do
{
read(handle, &ch1);
printf("%c"ch);
} while (!
eof(handle));

close(handle);
return 
0;
}



函数名exec...
功 能装入并运行其它程序的函数
用 法
int execl(char *pathnamechar *arg0arg1, ..., argnNULL);
int execle(char *pathnamechar *arg0arg1, ..., argnNULL,
char *envp[]);
int execlp(char *pathnamechar *arg0arg1, .., NULL);
int execple(char *pathnamechar *arg0arg1, ..., NULL,
char *envp[]);
int execv(char *pathnamechar *argv[]);
int execve(char *pathnamechar *argv[], char *envp[]);
int execvp(char *pathnamechar *argv[]);
int execvpe(char *pathnamechar *argv[], char *envp[]);
程序例:

/* execv example */
#include <process.h>
#include <stdio.h>
#include <errno.h>

void main(int argcchar *argv[])
{
int i;

printf("Command line arguments:\n");
for (
i=0i<argci++)
printf("[%2d] : %s\n"iargv[i]);

printf("About to exec child with arg1 arg2 ...\n");
execv("CHILD.EXE"argv);

perror("exec error");

exit(
1);
}



函数名: exit
功 能终止程序
用 法
void exit(int status);
程序例:

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

int main(void)
{
int status;

printf("Enter either 1 or 2\n");
status getch();
/* Sets DOS errorlevel */
exit(status '0');

/* Note: this line is never reached */
return 0;
}



函数名exp
功 能
指数函数
用 法
double exp(double x);
程序例:

#include <stdio.h>
#include <math.h>

int main(void)
{
double result;
double x 4.0;

result exp(x);
printf("'e' raised to the power \
of %lf (e ^ %lf) = %lf\n"
,
xxresult);

return 
0;

  kj501 当前离线  
旧 04-06-09, 21:25 第 6 帖
kj501
 
kj501 的头像
 
 
★☆版★主☆★  
  注册日期: Sep 2002
  我的住址: 贵州贵阳
  帖子: 5,317
  精华: 36
 

PHP 代码:
函数名fabs
功 能
返回浮点数的绝对值
用 法
double fabs(double x);
程序例:
#include <stdio.h>
#include <math.h>

int main(void)
{
float number = -1234.0;

printf("number: %f absolute value: %f\n",
numberfabs(number));
return 
0;
}




函数名farcalloc
功 能
从远堆栈中申请空间
用 法
void far *farcalloc(unsigned long unitsunsigned ling unitsz);
程序例:
#include <stdio.h>
#include <alloc.h>
#include <string.h>
#include <dos.h>

int main(void)
{
char far *fptr;
char *str "Hello";

/* allocate memory for the far pointer */
fptr farcalloc(10sizeof(char));

/* copy "Hello" into allocated memory */
/*
Note: movedata is used because you
might be in a small data model, in
which case a normal string copy routine
can not be used since it assumes the
pointer size is near.
*/
movedata(FP_SEG(str), FP_OFF(str),
FP_SEG(fptr), FP_OFF(fptr),
strlen(str));

/* display string (note the F modifier) */
printf("Far string is: %Fs\n"fptr);

/* free the memory */
farfree(fptr);

return 
0;
}




函数名farcoreleft
功 能
返回远堆中未作用存储区大小
用 法
long farcoreleft(void);
程序例:

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

int main(void)
{
printf("The difference between the\
highest allocated block in the\
far\n"
);
printf("heap and the top of the far heap\
is: %lu bytes\n"
farcoreleft());

return 
0;
}




函数名farfree
功 能
从远堆中释放一块
用 法
void farfree(void);
程序例:

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

int main(void)
{
char far *fptr;
char *str "Hello";

/* allocate memory for the far pointer */
fptr farcalloc(10sizeof(char));

/* copy "Hello" into allocated memory */
/*
Note: movedata is used because you might be in a small data model,
in which case a normal string copy routine can't be used since it
assumes the pointer size is near.
*/
movedata(FP_SEG(str), FP_OFF(str),
FP_SEG(fptr), FP_OFF(fptr),
strlen(str));

/* display string (note the F modifier) */
printf("Far string is: %Fs\n"fptr);

/* free the memory */
farfree(fptr);

return 
0;
}




函数名farmalloc
功 能
从远堆中分配存储块
用 法
void far *farmalloc(unsigned long size);
程序例:

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

int main(void)
{
char far *fptr;
char *str "Hello";

/* allocate memory for the far pointer */
fptr farmalloc(10);

/* copy "Hello" into allocated memory */
/*
Note: movedata is used because we might
be in a small data model, in which case
a normal string copy routine can not be
used since it assumes the pointer size
is near.
*/
movedata(FP_SEG(str), FP_OFF(str),
FP_SEG(fptr), FP_OFF(fptr),
strlen(str));

/* display string (note the F modifier) */
printf("Far string is: %Fs\n"fptr);

/* free the memory */
farfree(fptr);

return 
0;
}




函数名farrealloc
功 能
调整远堆中的分配块
用 法
void far *farrealloc(void far *blockunsigned long newsize);
程序例:

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

int main(void)
{
char far *fptr;

fptr farmalloc(10);
printf("First address: %Fp\n"fptr);
fptr farrealloc(fptr,20);
printf("New address : %Fp\n"fptr);
farfree(fptr);
return 
0;
}



函数名fclose
功 能
关闭一个流
用 法
int fclose(FILE *stream);
程序例:

#include <string.h>
#include <stdio.h>

int main(void)
{
FILE *fp;
char buf[11] = "0123456789";

/* create a file containing 10 bytes */
fp fopen("DUMMY.FIL""w");
fwrite(&bufstrlen(buf), 1fp);

/* close the file */
fclose(fp);
return 
0;
}




函数名fcloseall
功 能
关闭打开流
用 法
int fcloseall(void);
程序例:

#include <stdio.h>

int main(void)
{
int streams_closed;

/* open two streams */
fopen("DUMMY.ONE""w");
fopen("DUMMY.TWO""w");

/* close the open streams */
streams_closed fcloseall();

if (
streams_closed == EOF)
/* issue an error message */
perror("Error");
else
/* print result of fcloseall() function */
printf("%d streams were closed.\n"streams_closed);

return 
0;
}



函数名fcvt
功 能
把一个浮点数转换为字符串
用 法
char *fcvt(double valueint ndigitint *decptint *sign);
程序例:

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

int main(void)
{
char *string;
double value;
int decsign;
int ndig 10;

clrscr();
value 9.876;
string ecvt(valuendig, &dec, &sign);
printf("string = %s dec = %d \
sign = %d\n"
stringdecsign);

value = -123.45;
ndig15;
string ecvt(value,ndig,&dec,&sign);
printf("string = %s dec = %d sign = %d\n",
stringdecsign);


value 0.6789e5/* scientific
notation */
ndig 5;
string ecvt(value,ndig,&dec,&sign);
printf("string = %s dec = %d\
sign = %d\n"
stringdecsign);

return 
0;
}




函数名fdopen
功 能
把流与一个文件句柄相接
用 法
FILE *fdopen(int handlechar *type);
程序例:

#include <sys\stat.h>
#include <stdio.h>
#include <fcntl.h>
#include <io.h>

int main(void)
{
int handle;
FILE *stream;

/* open a file */
handle open("DUMMY.FIL"O_CREAT,
S_IREAD S_IWRITE);

/* now turn the handle into a stream */
stream fdopen(handle"w");

if (
stream == NULL)
printf("fdopen failed\n");
else
{
fprintf(stream"Hello world\n");
fclose(stream);
}
return 
0;
}



函数名feof
功 能
检测流上的文件结束符
用 法
int feof(FILE *stream);
程序例:

#include <stdio.h>

int main(void)
{
FILE *stream;

/* open a file for reading */
stream fopen("DUMMY.FIL""r");

/* read a character from the file */
fgetc(stream);

/* check for EOF */
if (feof(stream))
printf("We have reached end-of-file\n");

/* close the file */
fclose(stream);
return 
0;
}



函数名ferror
功 能
检测流上的错误
用 法
int ferror(FILE *stream);
程序例:

#include <stdio.h>

int main(void)
{
FILE *stream;

/* open a file for writing */
stream fopen("DUMMY.FIL""w");

/* force an error condition by attempting to read */
(voidgetc(stream);

if (
ferror(stream)) /* test for an error on the stream */
{
/* display an error message */
printf("Error reading from DUMMY.FIL\n");

/* reset the error and EOF indicators */
clearerr(stream);
}

fclose(stream);
return 
0;
}




函数名fflush
功 能
清除一个流
用 法
int fflush(FILE *stream);
程序例:

#include <string.h>
#include <stdio.h>
#include <conio.h>
#include <io.h>

void flush(FILE *stream);

int main(void)
{
FILE *stream;
char msg[] = "This is a test";

/* create a file */
stream fopen("DUMMY.FIL""w");

/* write some data to the file */
fwrite(msgstrlen(msg), 1stream);

clrscr();
printf("Press any key to flush\
DUMMY.FIL:"
);
getch();

/* flush the data to DUMMY.FIL without\
closing it */
flush(stream);

printf("\nFile was flushed, Press any key\
to quit:"
);
getch();
return 
0;
}

void flush(FILE *stream)
{
int duphandle;

/* flush the stream's internal buffer */
fflush(stream);

/* make a duplicate file handle */
duphandle dup(fileno(stream));

/* close the duplicate handle to flush\
the DOS buffer */
close(duphandle);
}




函数名fgetc
功 能
从流中读取字符
用 法
int fgetc(FILE *stream);
程序例:

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

int main(void)
{
FILE *stream;
char string[] = "This is a test";
char ch;

/* open a file for update */
stream fopen("DUMMY.FIL""w+");

/* write a string into the file */
fwrite(stringstrlen(string), 1stream);

/* seek to the beginning of the file */
fseek(stream0SEEK_SET);

do
{
/* read a char from the file */
ch fgetc(stream);

/* display the character */
putch(ch);
} while (
ch != EOF);

fclose(stream);
return 
0;
}




函数名fgetchar
功 能
从流中读取字符
用 法
int fgetchar(void);
程序例:

#include <stdio.h>

int main(void)
{
char ch;

/* prompt the user for input */
printf("Enter a character followed by \
<Enter>: "
);

/* read the character from stdin */
ch fgetchar();

/* display what was read */
printf("The character read is: '%c'\n",
ch);
return 
0;
}




函数名fgetpos
功 能
取得当前文件的句柄
用 法
int fgetpos(FILE *stream);
程序例:

#include <string.h>
#include <stdio.h>

int main(void)
{
FILE *stream;
char string[] = "This is a test";
fpos_t filepos;

/* open a file for update */
stream fopen("DUMMY.FIL""w+");

/* write a string into the file */
fwrite(stringstrlen(string), 1stream);

/* report the file pointer position */
fgetpos(stream, &filepos);
printf("The file pointer is at byte\
%ld\n"
filepos);

fclose(stream);
return 
0;
}




函数名fgets
功 能
从流中读取一字符串
用 法
char *fgets(char *stringint nFILE *stream);
程序例:

#include <string.h>
#include <stdio.h>

int main(void)
{
FILE *stream;
char string[] = "This is a test";
char msg[20];

/* open a file for update */
stream fopen("DUMMY.FIL""w+");

/* write a string into the file */
fwrite(stringstrlen(string), 1stream);

/* seek to the start of the file */
fseek(stream0SEEK_SET);

/* read a string from the file */
fgets(msgstrlen(string)+1stream);

/* display the string */
printf("%s"msg);

fclose(stream);
return 
0;
}




函数名filelength
功 能
取文件长度字节数
用 法
long filelength(int handle);
程序例:

#include <string.h>
#include <stdio.h>
#include <fcntl.h>
#include <io.h>

int main(void)
{
int handle;
char buf[11] = "0123456789";

/* create a file containing 10 bytes */
handle open("DUMMY.FIL"O_CREAT);
write(handlebufstrlen(buf));

/* display the size of the file */
printf("file length in bytes: %ld\n",
filelength(handle));

/* close the file */
close(handle);
return 
0;
}



函数名fillellipse
功 能
画出并填充一椭圆
用 法
void far fillellipse(int xint yint xradiusint yradius);
程序例:

#include <graphics.h>
#include <conio.h>

int main(void)
{
int gdriver DETECTgmode;
int xcenterycenteri;

initgraph(&gdriver,&gmode,"");
xcenter getmaxx() / 2;
ycenter getmaxy() / 2;

for (
i=0i<13i++)
{
setfillstyle(i,WHITE);
fillellipse(xcenter,ycenter,100,50);
getch();
}

closegraph();
return 
0;
}
函数名fillpoly
功 能
画并填充一个多边形
用 法
void far fillpoly(int numpointsint far *polypoints);
程序例:

#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>

int main(void)
{
/* request auto detection */
int gdriver DETECTgmodeerrorcode;
int imaxxmaxy;

/* our polygon array */
int poly[8];

/* 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 an error code */
}

maxx getmaxx();
maxy getmaxy();

poly[0] = 20/* 1st vertext */
poly[1] = maxy 2;

poly[2] = maxx 20/* 2nd */
poly[3] = 20;

poly[4] = maxx 50/* 3rd */
poly[5] = maxy 20;

/*
4th vertex. fillpoly automatically
closes the polygon.
*/
poly[6] = maxx 2;
poly[7] = maxy 2;

/* loop through the fill patterns */
for (i=EMPTY_FILLi<USER_FILLi++)
{
/* set fill pattern */
setfillstyle(igetmaxcolor());

/* draw a filled polygon */
fillpoly(4poly);

getch();
}

/* clean up */
closegraph();
return 
0;
}




函数名findfirstfindnext
功 能
搜索磁盘目录取得下一个匹配的findfirst模式的文件
用 法
int findfirst(char *pathnamestruct ffblk *ffblkint attrib);
int findnext(struct ffblk *ffblk);
程序例:

/* findnext example */

#include <stdio.h>
#include <dir.h>

int main(void)
{
struct ffblk ffblk;
int done;
printf("Directory listing of *.*\n");
done findfirst("*.*",&ffblk,0);
while (!
done)
{
printf(" %s\n"ffblk.ff_name);
done findnext(&ffblk);
}

return 
0;
}




函数名floodfill
功 能
填充一个有界区域
用 法
void far floodfill(int xint yint border);
程序例:

#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>

int main(void)
{
/* request auto detection */
int gdriver DETECTgmodeerrorcode;
int maxxmaxy;

/* 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 an error code */
}

maxx getmaxx();
maxy getmaxy();

/* select drawing color */
setcolor(getmaxcolor());

/* select fill color */
setfillstyle(SOLID_FILLgetmaxcolor());

/* draw a border around the screen */
rectangle(00maxxmaxy);

/* draw some circles */
circle(maxx 3maxy /250);
circle(maxx 220100);
circle(maxx-20maxy-5075);
circle(20maxy-2025);

/* wait for a key */
getch();

/* fill in bounded region */
floodfill(22getmaxcolor());

/* clean up */
getch();
closegraph();
return 
0;
}




函数名floor
功 能
向下舍入
用 法
double floor(double x);
程序例:

#include <stdio.h>
#include <math.h>

int main(void)
{
double number 123.54;
double downup;

down floor(number);
up ceil(number);

printf("original number %10.2lf\n",
number);
printf("number rounded down %10.2lf\n",
down);
printf("number rounded up %10.2lf\n",
up);

return 
0;
}




函数名flushall
功 能
清除所有缓冲区
用 法
int flushall(void);
程序例:

#include <stdio.h>

int main(void)
{
FILE *stream;

/* create a file */
stream fopen("DUMMY.FIL""w");

/* flush all open streams */
printf("%d streams were flushed.\n",
flushall());

/* close the file */
fclose(stream);
return 
0;
}




函数名fmod
功 能
计算x对y的模即x/y的余数
用 法
double fmod(double xdouble y);
程序例:

#include <stdio.h>
#include <math.h>

int main(void)
{
double x 5.02.0;
double result;

result fmod(x,y);
printf("The remainder of (%lf / %lf) is \
%lf\n"
xyresult);
return 
0;
}




函数名fnmerge
功 能
建立新文件名
用 法
void fnerge(char *pathchar *drivechar *dir);
程序例:

#include <string.h>
#include <stdio.h>
#include <dir.h>


int main(void)
{
char s[MAXPATH];
char drive[MAXDRIVE];
char dir[MAXDIR];
char file[MAXFILE];
char ext[MAXEXT];

getcwd(s,MAXPATH); /* get the current working directory */
strcat(s,"\\"); /* append on a trailing \ character */
fnsplit(s,drive,dir,file,ext); /* split the string to separate elems */
strcpy(file,"DATA");
strcpy(ext,".TXT");
fnmerge(s,drive,dir,file,ext); /* merge everything into one string */
puts(s); /* display resulting string */

return 0;
}




函数名fopen
功 能
打开一个流
用 法
FILE *fopen(char *filenamechar *type);
程序例:

#include <stdlib.h>
#include <stdio.h>
#include <dir.h>

int main(void)
{
char *s;
char drive[MAXDRIVE];
char dir[MAXDIR];
char file[MAXFILE];
char ext[MAXEXT];
int flags;

s=getenv("COMSPEC"); /* get the comspec environment parameter */
flags=fnsplit(s,drive,dir,file,ext);

printf("Command processor info:\n");
if(
flags DRIVE)
printf("\tdrive: %s\n",drive);
if(
flags DIRECTORY)
printf("\tdirectory: %s\n",dir);
if(
flags FILENAME)
printf("\tfile: %s\n",file);
if(
flags EXTENSION)
printf("\textension: %s\n",ext);

return 
0;
}


函数名fprintf
功 能
传送格式化输出到一个流中
用 法
int fprintf(FILE *streamchar *format[, argument,...]);
程序例:

/* Program to create backup of the
AUTOEXEC.BAT file */

#include <stdio.h>

int main(void)
{
FILE *in, *out;

if ((
in fopen("\\AUTOEXEC.BAT""rt"))
== 
NULL)
{
fprintf(stderr"Cannot open input \
file.\n"
);
return 
1;
}

if ((
out fopen("\\AUTOEXEC.BAK""wt"))
== 
NULL)
{
fprintf(stderr"Cannot open output \
file.\n"
);
return 
1;
}

while (!
feof(in))
fputc(fgetc(in), out);

fclose(in);
fclose(out);
return 
0;
}




函数名FP_OFF
功 能
获取远地址偏移量
用 法
unsigned FP_OFF(void far *farptr);
程序例:

/* FP_OFF */

#include <dos.h>
#include <stdio.h>

int main(void)
{
char *str "fpoff.c";

printf("The offset of this file in memory\
is: %Fp\n"
FP_OFF(str));

return 
0;
}



函数名FP_SEG
功 能
获取远地址段值
用 法
unsigned FP_SEG(void far *farptr);
程序例:

/* FP_SEG */

#include <dos.h>
#include <stdio.h>

int main(void)
{
char *filename "fpseg.c";

printf("The offset of this file in memory\
is: %Fp\n"
FP_SEG(filename));

return(
0);
}




函数名fputc
功 能
送一个字符到一个流中
用 法
int fputc(int chFILE *stream);
程序例:

#include <stdio.h>

int main(void)
{
char msg[] = "Hello world";
int i 0;

while (
msg[i])
{
fputc(msg[i], stdout);
i++;
}
return 
0;
}




函数名fputchar
功 能
送一个字符到标准输出流(stdout)
用 法
int fputchar(char ch);
程序例:

#include <stdio.h>

int main(void)
{
char msg[] = "This is a test";
int i 0;

while (
msg[i])
{
fputchar(msg[i]);
i++;
}
return 
0;
}




函数名fputs
功 能
送一个字符到一个流中
用 法
int fputs(char *stringFILE *stream);
程序例:

#include <stdio.h>

int main(void)
{
/* write a string to standard output */
fputs("Hello world\n"stdout);

return 
0;
}




函数名fread
功 能
从一个流中读数据
用 法
int fread(void *ptrint sizeint nitemsFILE *stream);
程序例:

#include <string.h>
#include <stdio.h>

int main(void)
{
FILE *stream;
char msg[] = "this is a test";
char buf[20];

if ((
stream fopen("DUMMY.FIL""w+"))
== 
NULL)
{
fprintf(stderr,
"Cannot open output file.\n");
return 
1;
}

/* write some data to the file */
fwrite(msgstrlen(msg)+11stream);

/* seek to the beginning of the file */
fseek(streamSEEK_SET0);

/* read the data and display it */
fread(bufstrlen(msg)+11stream);
printf("%s\n"buf);

fclose(stream);
return 
0;
}



函数名free
功 能
释放已分配的块
用 法
void free(void *ptr);
程序例:

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

int main(void)
{
char *str;

/* allocate memory for string */
str malloc(10);

/* copy "Hello" to string */
strcpy(str"Hello");

/* display string */
printf("String is %s\n"str);

/* free memory */
free(str);

return 
0;
}


函数名freemem
功 能
释放先前分配的DOS内存块
用 法
int freemem(unsigned seg);
程序例:

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

int main(void)
{
unsigned int sizesegp;
int stat;

size 64/* (64 x 16) = 1024 bytes */
stat allocmem(size, &segp);
if (
stat 0)
printf("Allocated memory at segment:\
%x\n"
segp);
else
printf("Failed: maximum number of\
paragraphs available is %u\n"
,
stat);
freemem(segp);

return 
0;
}



函数名freopen
功 能
替换一个流
用 法
FILE *freopen(char *filenamechar *typeFILE *stream);
程序例:

#include <stdio.h>

int main(void)
{
/* redirect standard output to a file */
if (freopen("OUTPUT.FIL""w"stdout)
== 
NULL)
fprintf(stderr"error redirecting\
stdout\n"
);

/* this output will go to a file */
printf("This will go into a file.");

/* close the standard output stream */
fclose(stdout);

return 
0;
}




函数名frexp
功 能
把一个双精度数分解为尾数的指数
用 法
double frexp(double valueint *eptr);
程序例:

#include <math.h>
#include <stdio.h>

int main(void)
{
double mantissanumber;
int exponent;

number 8.0;
mantissa frexp(number, &exponent);

printf("The number %lf is "number);
printf("%lf times two to the "mantissa);
printf("power of %d\n"exponent);

return 
0;
}



函数名fscanf
功 能
从一个流中执行格式化输入
用 法
int fscanf(FILE *streamchar *format[,argument...]);
程序例:

#include <stdlib.h>
#include <stdio.h>

int main(void)
{
int i;

printf("Input an integer: ");

/* read an integer from the
standard input stream */
if (fscanf(stdin"%d", &i))
printf("The integer read was: %i\n",
i);
else
{
fprintf(stderr"Error reading an \
integer from stdin.\n"
);
exit(
1);
}
return 
0;
}




函数名fseek
功 能
重定位流上的文件指针
用 法
int fseek(FILE *streamlong offsetint fromwhere);
程序例:

#include <stdio.h>

long filesize(FILE *stream);

int main(void)
{
FILE *stream;

stream fopen("MYFILE.TXT""w+");
fprintf(stream"This is a test");
printf("Filesize of MYFILE.TXT is %ld bytes\n"filesize(stream));
fclose(stream);
return 
0;
}

long filesize(FILE *stream)
{
long curposlength;

curpos ftell(stream);
fseek(stream0LSEEK_END);
length ftell(stream);
fseek(streamcurposSEEK_SET);
return 
length;
}






函数名fsetpos
功 能
定位流上的文件指针
用 法
int fsetpos(FILE *stream, const fpos_t *pos);
程序例:

#include <stdlib.h>
#include <stdio.h>

void showpos(FILE *stream);

int main(void)
{
FILE *stream;
fpos_t filepos;

/* open a file for update */
stream fopen("DUMMY.FIL""w+");

/* save the file pointer position */
fgetpos(stream, &filepos);

/* write some data to the file */
fprintf(stream"This is a test");

/* show the current file position */
showpos(stream);

/* set a new file position, display it */
if (fsetpos(stream, &filepos) == 0)
showpos(stream);
else
{
fprintf(stderr"Error setting file \
pointer.\n"
);
exit(
1);
}

/* close the file */
fclose(stream);
return 
0;
}

void showpos(FILE *stream)
{
fpos_t pos;

/* display the current file pointer
position of a stream */
fgetpos(stream, &pos);
printf("File position: %ld\n"pos);
}


函数名fstat
功 能
获取打开文件信息
用 法
int fstat(char *handlestruct stat *buff);
程序例:

#include <sys\stat.h>
#include <stdio.h>
#include <time.h>

int main(void)
{
struct stat statbuf;
FILE *stream;

/* open a file for update */
if ((stream fopen("DUMMY.FIL""w+"))
== 
NULL)
{
fprintf(stderr"Cannot open output \
file.\n"
);
return(
1);
}
fprintf(stream"This is a test");
fflush(stream);

/* get information about the file */
fstat(fileno(stream), &statbuf);
fclose(stream);

/* display the information returned */
if (statbuf.st_mode S_IFCHR)
printf("Handle refers to a device.\n");
if (
statbuf.st_mode S_IFREG)
printf("Handle refers to an ordinary \
file.\n"
);
if (
statbuf.st_mode S_IREAD)
printf("User has read permission on \
file.\n"
);
if (
statbuf.st_mode S_IWRITE)
printf("User has write permission on \
file.\n"
);

printf("Drive letter of file: %c\n",
'A'+statbuf.st_dev);
printf("Size of file in bytes: %ld\n",
statbuf.st_size);
printf("Time file last opened: %s\n",
ctime(&statbuf.st_ctime));
return 
0;
}




函数名ftell
功 能
返回当前文件指针
用 法
long ftell(FILE *stream);
程序例:

#include <stdio.h>

int main(void)
{
FILE *stream;

stream fopen("MYFILE.TXT""w+");
fprintf(stream"This is a test");
printf("The file pointer is at byte \
%ld\n"
ftell(stream));
fclose(stream);
return 
0;
}




函数名fwrite
功 能
写内容到流中
用 法
int fwrite(void *ptrint sizeint nitemsFILE *stream);
程序例:

#include <stdio.h>

struct mystruct
{
int i;
char ch;
};

int main(void)
{
FILE *stream;
struct mystruct s;

if ((
stream fopen("TEST.$$$""wb")) == NULL/* open file TEST.$$$ */
{
fprintf(stderr"Cannot open output file.\n");
return 
1;
}
s.0;
s.ch 'A';
fwrite(&ssizeof(s), 1stream); /* write struct s to file */
fclose(stream); /* close file */
return 0;

  kj501 当前离线  
旧 04-06-09, 21:27 第 7 帖
kj501
 
kj501 的头像
 
 
★☆版★主☆★  
  注册日期: Sep 2002
  我的住址: 贵州贵阳
  帖子: 5,317
  精华: 36
 

PHP 代码:
函数名gcvt
功 能
把浮点数转换成字符串
用 法
char *gcvt(double valueint ndigitchar *buf);
程序例:
#include <stdlib.h>
#include <stdio.h>

int main(void)
{
char str[25];
double num;
int sig 5/* significant digits */

/* a regular number */
num 9.876;
gcvt(numsigstr);
printf("string = %s\n"str);

/* a negative number */
num = -123.4567;
gcvt(numsigstr);
printf("string = %s\n"str);

/* scientific notation */
num 0.678e5;
gcvt(numsigstr);
printf("string = %s\n"str);

return(
0);
}




函数名geninterrupt
功 能
产生一个软中断
用 法
void geninterrupt(int intr_num);
程序例:

#include <conio.h>
#include <dos.h>

/* function prototype */
void writechar(char ch);

int main(void)
{
clrscr();
gotoxy(80,25);
writechar('*');
getch();
return 
0;
}

/*
outputs a character at the current cursor
position using the video BIOS to avoid the
scrolling of the screen when writing to
location (80,25).
*/

void writechar(char ch)
{
struct text_info ti;
/* grab current text settings */
gettextinfo(&ti);
/* interrupt 0x10 sub-function 9 */
_AH 9;
/* character to be output */
_AL ch;
_BH 0/* video page */
_BL ti.attribute/* video attribute */
_CX 1/* repetition factor */
geninterrupt(0x10); /* output the char */
}



函数名getarccoords
功 能
取得最后一次调用arc的坐标
用 法
void far getarccoords(struct arccoordstype far *arccoords);
程序例:

#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>

int main(void)
{
/* request auto detection */
int gdriver DETECTgmodeerrorcode;
struct arccoordstype arcinfo;
int midxmidy;
int stangle 45endangle 270;
char sstr[80], estr[80];

/* 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();
/* terminate with an error code */
exit(1);
}

midx getmaxx() / 2;
midy getmaxy() / 2;

/* draw arc and get coordinates */
setcolor(getmaxcolor());
arc(midxmidystangleendangle100);
getarccoords(&arcinfo);

/* convert arc information into strings */
sprintf(sstr"*- (%d, %d)",
arcinfo.xstartarcinfo.ystart);
sprintf(estr"*- (%d, %d)",
arcinfo.xendarcinfo.yend);

/* output the arc information */
outtextxy(arcinfo.xstart,
arcinfo.ystartsstr);
outtextxy(arcinfo.xend,
arcinfo.yendestr);

/* clean up */
getch();
closegraph();
return 
0;
}




函数名getaspectratio
功 能
返回当前图形模式的纵横比
用 法
void far getaspectratio(int far *xaspint far *yasp);
程序例:

#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>

int main(void)
{
/* request auto detection */
int gdriver DETECTgmodeerrorcode;
int xaspyaspmidxmidy;

/* 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();
/* terminate with an error code */
exit(1);
}

midx getmaxx() / 2;
midy getmaxy() / 2;
setcolor(getmaxcolor());

/* get current aspect ratio settings */
getaspectratio(&xasp, &yasp);

/* draw normal circle */
circle(midxmidy100);
getch();

/* draw wide circle */
cleardevice();
setaspectratio(xasp/2yasp);
circle(midxmidy100);
getch();

/* draw narrow circle */
cleardevice();
setaspectratio(xaspyasp/2);
circle(midxmidy100);

/* clean up */
getch();
closegraph();
return 
0;
}




函数名getbkcolor
功 能
返回当前背景颜色
用 法
int far getbkcolor(void);
程序例:

#include <graphics.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <conio.h>

int main(void)
{
/* request auto detection */
int gdriver DETECTgmodeerrorcode;
int bkcolormidxmidy;
char bkname[35];

/* 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();
/* terminate with an error code */
exit(1);
}

midx getmaxx() / 2;
midy getmaxy() / 2;
setcolor(getmaxcolor());

/* for centering text on the display */
settextjustify(CENTER_TEXTCENTER_TEXT);

/* get the current background color */
bkcolor getbkcolor();

/* convert color value into a string */
itoa(bkcolorbkname10);
strcat(bkname,
" is the current background color.");

/* display a message */
outtextxy(midxmidybkname);

/* clean up */
getch();
closegraph();
return 
0;
}




函数名getc
功 能
从流中取字符
用 法
int getc(FILE *stream);
程序例:

#include <stdio.h>

int main(void)
{
char ch;

printf("Input a character:");
/* read a character from the
standard input stream */
ch getc(stdin);
printf("The character input was: '%c'\n",
ch);
return 
0;
}




函数名getcbrk
功 能
获取Control_break设置
用 法
int getcbrk(void);
程序例:

#include <stdio.h>
#include <dos.h>

int main(void)
{
if (
getcbrk())
printf("Cntrl-brk flag is on\n");
else
printf("Cntrl-brk flag is off\n");

return 
0;
}



函数名getch
功 能
从控制台无回显地取一个字符
用 法
int getch(void);
程序例:

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

int main(void)
{
char ch;

printf("Input a character:");
ch getche();
printf("\nYou input a '%c'\n"ch);
return 
0;
}



函数名getchar
功 能
从stdin流中读字符
用 法
int getchar(void);
程序例:

#include <stdio.h>

int main(void)
{
int c;

/* Note that getchar reads from stdin and
is line buffered; this means it will
not return until you press ENTER. */

while ((getchar()) != '\n')
printf("%c"c);

return 
0;
}



函数名getche
功 能
从控制台取字符(带回显)
用 法int getche(void);
程序例:

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

int main(void)
{
char ch;

printf("Input a character:");
ch getche();
printf("\nYou input a '%c'\n"ch);
return 
0;
}



函数名getcolor
功 能
返回当前画线颜色
用 法
int far getcolor(void);
程序例:

#include <graphics.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <conio.h>

int main(void)
{
/* request auto detection */
int gdriver DETECTgmodeerrorcode;
int colormidxmidy;
char colname[35];

/* 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();
/* terminate with an error code */
exit(1);
}

midx getmaxx() / 2;
midy getmaxy() / 2;
setcolor(getmaxcolor());

/* for centering text on the display */
settextjustify(CENTER_TEXTCENTER_TEXT);

/* get the current drawing color */
color getcolor();

/* convert color value into a string */
itoa(colorcolname10);
strcat(colname,
" is the current drawing color.");

/* display a message */
outtextxy(midxmidycolname);

/* clean up */
getch();
closegraph();
return 
0;
}



函数名getcurdir
功 能
取指定驱动器的当前目录
用 法
int getcurdir(int drivechar *direc);
程序例:

#include <dir.h>
#include <stdio.h>
#include <string.h>

char *current_directory(char *path)
{
strcpy(path"X:\\"); /* fill string with form of response: X:\ */
path[0] = 'A' getdisk(); /* replace X with current drive letter */
getcurdir(0path+3); /* fill rest of string with current directory */
return(path);
}

int main(void)
{
char curdir[MAXPATH];

current_directory(curdir);
printf("The current directory is %s\n"curdir);

return 
0;
}



函数名getcwd
功 能
取当前工作目录
用 法
char *getcwd(char *bufint n);
程序例:

#include <stdio.h>
#include <dir.h>

int main(void)
{
char buffer[MAXPATH];

getcwd(bufferMAXPATH);
printf("The current directory is: %s\n"buffer);
return 
0;
}
函数名getdate
功 能
取DOS日期
用 法
void getdate(struct *dateblk);
程序例:

#include <dos.h>
#include <stdio.h>

int main(void)
{
struct date d;

getdate(&d);
printf("The current year is: %d\n",
d.da_year);
printf("The current day is: %d\n",
d.da_day);
printf("The current month is: %d\n",
d.da_mon);
return 
0;
}



函数名getdefaultpalette
功 能
返回调色板定义结构
用 法
struct palettetype *far getdefaultpalette(void);
程序例:

#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>

int main(void)
{
/* request auto detection */
int gdriver DETECTgmodeerrorcode;
int i;

/* structure for returning palette copy */
struct palettetype far *pal=(void *) 0;

/* 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();
/* terminate with an error code */
exit(1);
}

setcolor(getmaxcolor());

/* return a pointer to the default palette */
pal getdefaultpalette();

for (
i=0i<16i++)
{
printf("colors[%d] = %d\n"i,
pal->colors[i]);
getch();
}

/* clean up */
getch();
closegraph();
return 
0;
}



函数名getdisk
功 能
取当前磁盘驱动器号
用 法
int getdisk(void);
程序例:

#include <stdio.h>
#include <dir.h>

int main(void)
{
int disk;

disk getdisk() + 'A';
printf("The current drive is: %c\n",
disk);
return 
0;
}




函数名getdrivername
功 能
返回指向包含当前图形驱动程序名字的字符串指针
用 法
char *getdrivename(void);
程序例:

#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>

int main(void)
{
/* request auto detection */
int gdriver DETECTgmodeerrorcode;

/* stores the device driver name */
char *drivername;

/* 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();
/* terminate with an error code */
exit(1);
}

setcolor(getmaxcolor());

/* get name of the device driver in use */
drivername getdrivername();

/* for centering text on the screen */
settextjustify(CENTER_TEXTCENTER_TEXT);

/* output the name of the driver */
outtextxy(getmaxx() / 2getmaxy() / 2,
drivername);

/* clean up */
getch();
closegraph();
return 
0;
}



函数名getdta
功 能
取磁盘传输地址
用 法
char far *getdta(void);
程序例:

#include <dos.h>
#include <stdio.h>

int main(void)
{
char far *dta;

dta getdta();
printf("The current disk transfer \
address is: %Fp\n"
dta);
return 
0;
}



函数名getenv
功 能
从环境中取字符串
用 法
char *getenv(char *envvar);
程序例:

#include <stdlib.h>
#include <stdio.h>


int main(void)
{
char *s;

s=getenv("COMSPEC"); /* get the comspec environment parameter */
printf("Command processor: %s\n",s); /* display comspec parameter */

return 0;
}




函数名getfatgetfatd
功 能
取文件分配表信息
用 法
void getfat(int drivestruct fatinfo *fatblkp);
程序例:

#include <stdio.h>
#include <dos.h>

int main(void)
{
struct fatinfo diskinfo;
int flag 0;

printf("Please insert disk in drive A\n");
getchar();

getfat(1, &diskinfo);
/* get drive information */

printf("\nDrive A: is ");
switch((
unsigned chardiskinfo.fi_fatid)
{
case 
0xFD:
printf("360K low density\n");
break;

case 
0xF9:
printf("1.2 Meg high density\n");
break;

default:
printf("unformatted\n");
flag 1;
}

if (!
flag)
{
printf(" sectors per cluster %5d\n",
diskinfo.fi_sclus);
printf(" number of clusters %5d\n",
diskinfo.fi_nclus);
printf(" bytes per sector %5d\n",
diskinfo.fi_bysec);
}

return 
0;
}



函数名getfillpattern
功 能
将用户定义的填充模式拷贝到内存中
用 法
void far getfillpattern(char far *upattern);
程序例:

#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>

int main(void)
{
/* request auto detection */
int gdriver DETECTgmodeerrorcode;
int maxxmaxy;
char pattern[8] = {0x000x700x200x270x250x270x040x04};

/* 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 */
}

maxx getmaxx();
maxy getmaxy();
setcolor(getmaxcolor());

/* select a user defined fill pattern */
setfillpattern(patterngetmaxcolor());

/* fill the screen with the pattern */
bar(00maxxmaxy);

getch();

/* get the current user defined fill pattern */
getfillpattern(pattern);

/* alter the pattern we grabbed */
pattern[4] -= 1;
pattern[5] -= 3;
pattern[6] += 3;
pattern[7] -= 4;

/* select our new pattern */
setfillpattern(patterngetmaxcolor());

/* fill the screen with the new pattern */
bar(00maxxmaxy);

/* clean up */
getch();
closegraph();
return 
0;
}



函数名getfillsettings
功 能
取得有关当前填充模式和填充颜色的信息
用 法
void far getfillsettings(struct fillsettingstype far *fillinfo);
程序例:

#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>

the names of the fill styles supported */
char *fname[] = { "EMPTY_FILL",
"SOLID_FILL",
"LINE_FILL",
"LTSLASH_FILL",
"SLASH_FILL",
"BKSLASH_FILL",
"LTBKSLASH_FILL",
"HATCH_FILL",
"XHATCH_FILL",
"INTERLEAVE_FILL",
"WIDE_DOT_FILL",
"CLOSE_DOT_FILL",
"USER_FILL"
};

int main(void)
{
/* request auto detection */
int gdriver DETECTgmodeerrorcode;
struct fillsettingstype fillinfo;
int midxmidy;
char patstr[40], colstr[40];

/* 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;

/* get information about current fill pattern and color */
getfillsettings(&fillinfo);

/* convert fill information into strings */
sprintf(patstr"%s is the fill style."fname[fillinfo.pattern]);
sprintf(colstr"%d is the fill color."fillinfo.color);

/* display the information */
settextjustify(CENTER_TEXTCENTER_TEXT);
outtextxy(midxmidypatstr);
outtextxy(midxmidy+2*textheight("W"), colstr);

/* clean up */
getch();
closegraph();
return 
0;
}




函数名getftime
功 能
取文件日期和时间
用 法
int getftime(int handlestruct ftime *ftimep);
程序例:

#include <stdio.h>
#include <io.h>

int main(void)
{
FILE *stream;
struct ftime ft;

if ((
stream fopen("TEST.$$$",
"wt")) == NULL)
{
fprintf(stderr,
"Cannot open output file.\n");
return 
1;
}
getftime(fileno(stream), &ft);
printf("File time: %u:%u:%u\n",
ft.ft_hourft.ft_min,
ft.ft_tsec 2);
printf("File date: %u/%u/%u\n",
ft.ft_monthft.ft_day,
ft.ft_year+1980);
fclose(stream);
return 
0;
}




函数名getgraphmode
功 能
返回当前图形模式
用 法
int far getgraphmode(void);
程序例:

#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>

int main(void)
{
/* request auto detection */
int gdriver DETECTgmodeerrorcode;
int midxmidymode;
char numname[80], modename[80];

/* 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();
/* terminate with an error code */
exit(1);
}

midx getmaxx() / 2;
midy getmaxy() / 2;

/* get mode number and name strings */
mode getgraphmode();
sprintf(numname,
"%d is the current mode number.",
mode);
sprintf(modename,
"%s is the current graphics mode",
getmodename(mode));

/* display the information */
settextjustify(CENTER_TEXTCENTER_TEXT);
outtextxy(midxmidynumname);
outtextxy(midxmidy+2*textheight("W"),
modename);

/* clean up */
getch();
closegraph();
return 
0;
}



函数名getftime
功 能
取文件日期和时间
用 法
int getftime(int handlestruct ftime *ftimep);
程序例:

#include <stdio.h>
#include <io.h>

int main(void)
{
FILE *stream;
struct ftime ft;

if ((
stream fopen("TEST.$$$",
"wt")) == NULL)
{
fprintf(stderr,
"Cannot open output file.\n");
return 
1;
}
getftime(fileno(stream), &ft);
printf("File time: %u:%u:%u\n",
ft.ft_hourft.ft_min,
ft.ft_tsec 2);
printf("File date: %u/%u/%u\n",
ft.ft_monthft.ft_day,
ft.ft_year+1980);
fclose(stream);
return 
0;
}
函数名getgraphmode
功 能
返回当前图形模式
用 法
int far getgraphmode(void);
程序例:

#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>

int main(void)
{
/* request auto detection */
int gdriver DETECTgmodeerrorcode;
int midxmidymode;
char numname[80], modename[80];

/* 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();
/* terminate with an error code */
exit(1);
}

midx getmaxx() / 2;
midy getmaxy() / 2;

/* get mode number and name strings */
mode getgraphmode();
sprintf(numname,
"%d is the current mode number.",
mode);
sprintf(modename,
"%s is the current graphics mode",
getmodename(mode));

/* display the information */
settextjustify(CENTER_TEXTCENTER_TEXT);
outtextxy(midxmidynumname);
outtextxy(midxmidy+2*textheight("W"),
modename);

/* clean up */
getch();
closegraph();
return 
0;
}



函数名getimage
功 能
将指定区域的一个位图存到主存中
用 法
void far getimage(int leftint topint rightint bottom,
void far *bitmap);
程序例:

#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <alloc.h>

void save_screen(void far *buf[4]);
void restore_screen(void far *buf[4]);

int maxxmaxy;

int main(void)
{
int gdriver=DETECTgmodeerrorcode;
void far *ptr[4];

/* auto-detect the graphics driver and mode */
initgraph(&gdriver, &gmode"");
errorcode graphresult(); /* check for any errors */
if (errorcode != grOk)
{
printf("Graphics error: %s\n"grapherrormsg(errorcode));
printf("Press any key to halt:");
getch();
exit(
1);
}
maxx getmaxx();
maxy getmaxy();

/* draw an image on the screen */
rectangle(00maxxmaxy);
line(00maxxmaxy);
line(0maxymaxx0);

save_screen(ptr); /* save the current screen */
getch(); /* pause screen */
cleardevice(); /* clear screen */
restore_screen(ptr); /* restore the screen */
getch(); /* pause screen */

closegraph();
return 
0;
}

void save_screen(void far *buf[4])
{
unsigned size;
int ystart=0yendyincrblock;

yincr = (maxy+1) / 4;
yend yincr;
size imagesize(0ystartmaxxyend); /* get byte size of image */

for (block=0block<=3block++)
{
if ((
buf[block] = farmalloc(size)) == NULL)
{
closegraph();
printf("Error: not enough heap space in save_screen().\n");
exit(
1);
}

getimage(0ystartmaxxyendbuf[block]);
ystart yend 1;
yend += yincr 1;
}
}

void save_screen(void far *buf[4])
{
unsigned size;
int ystart=0yendyincrblock;

yincr = (maxy+1) / 4;
yend yincr;
size imagesize(0ystartmaxxyend); /* get byte size of image */

for (block=0block<=3block++)
{
if ((
buf[block] = farmalloc(size)) == NULL)
{
closegraph();
printf("Error: not enough heap space in save_screen().\n");
exit(
1);
}

getimage(0ystartmaxxyendbuf[block]);
ystart yend 1;
yend += yincr 1;
}
}

void restore_screen(void far *buf[4])
{
int ystart=0yendyincrblock;

yincr = (maxy+1) / 4;
yend yincr;

for (
block=0block<=3block++)
{
putimage(0ystartbuf[block], COPY_PUT);
farfree(buf[block]);
ystart yend 1;
yend += yincr 1;
}
}



函数名getlinesettings
功 能
取当前线型、模式和宽度
用 法
void far getlinesettings(struct linesettingstype far *lininfo):
程序例:

#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>

/* the names of the line styles supported */
char *lname[] = { "SOLID_LINE",
"DOTTED_LINE",
"CENTER_LINE",
"DASHED_LINE",
"USERBIT_LINE"
};

int main(void)
{
/* request auto detection */
int gdriver DETECTgmodeerrorcode;
struct linesettingstype lineinfo;
int midxmidy;
char lstyle[80], lpattern[80], lwidth[80];

/* 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;

/* get information about current line settings */
getlinesettings(&lineinfo);

/* convert line information into strings */
sprintf(lstyle"%s is the line style.",
lname[lineinfo.linestyle]);
sprintf(lpattern"0x%X is the user-defined line pattern.",
lineinfo.upattern);
sprintf(lwidth"%d is the line thickness.",
lineinfo.thickness);

/* display the information */
settextjustify(CENTER_TEXTCENTER_TEXT);
outtextxy(midxmidylstyle);
outtextxy(midxmidy+2*textheight("W"), lpattern);
outtextxy(midxmidy+4*textheight("W"), lwidth);

/* clean up */
getch();
closegraph();
return 
0;
}



函数名getmaxcolor
功 能
返回可以传给函数setcolor的最大颜色值
用 法
int far getmaxcolor(void);
程序例:

#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>

int main(void)
{
/* request auto detection */
int gdriver DETECTgmodeerrorcode;
int midxmidy;
char colstr[80];

/* 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;

/* grab the color info. and convert it to a string */
sprintf(colstr"This mode supports colors 0..%d"getmaxcolor());

/* display the information */
settextjustify(CENTER_TEXTCENTER_TEXT);
outtextxy(midxmidycolstr);

/* clean up */
getch();
closegraph();
return 
0;
}




函数名getmaxx
功 能
返回屏幕的最大x坐标
用 法
int far getmaxx(void);
程序例:

#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>

int main(void)
{
/* request auto detection */
int gdriver DETECTgmodeerrorcode;
int midxmidy;
char xrange[80], yrange[80];

/* 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;

/* convert max resolution values into strings */
sprintf(xrange"X values range from 0..%d"getmaxx());
sprintf(yrange"Y values range from 0..%d"getmaxy());

/* display the information */
settextjustify(CENTER_TEXTCENTER_TEXT);
outtextxy(midxmidyxrange);
outtextxy(midxmidy+textheight("W"), yrange);

/* clean up */
getch();
closegraph();
return 
0;

  kj501 当前离线  
旧 04-06-09, 21:28 第 8 帖
kj501
 
kj501 的头像
 
 
★☆版★主☆★  
  注册日期: Sep 2002
  我的住址: 贵州贵阳
  帖子: 5,317
  精华: 36
 

PHP 代码:
函数名getmaxy
功 能
返回屏幕的最大y坐标
用 法
int far getmaxy(void);
程序例:

#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>

int main(void)
{
/* request auto detection */
int gdriver DETECTgmodeerrorcode;
int midxmidy;
char xrange[80], yrange[80];

/* 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;

/* convert max resolution values into strings */
sprintf(xrange"X values range from 0..%d"getmaxx());
sprintf(yrange"Y values range from 0..%d"getmaxy());

/* display the information */
settextjustify(CENTER_TEXTCENTER_TEXT);
outtextxy(midxmidyxrange);
outtextxy(midxmidy+textheight("W"), yrange);

/* clean up */
getch();
closegraph();
return 
0;
}


函数名getmodename
功 能
返回含有指定图形模式名的字符串指针
用 法
char *far getmodename(int mode_name);
程序例:

#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>

int main(void)
{
/* request autodetection */
int gdriver DETECTgmodeerrorcode;
int midxmidymode;
char numname[80], modename[80];

/* 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;

/* get mode number and name strings */
mode getgraphmode();
sprintf(numname"%d is the current mode number."mode);
sprintf(modename"%s is the current graphics mode."getmodename(mode));

/* display the information */
settextjustify(CENTER_TEXTCENTER_TEXT);
outtextxy(midxmidynumname);
outtextxy(midxmidy+2*textheight("W"), modename);

/* clean up */
getch();
closegraph();
return 
0;
}



函数名getmoderange
功 能
取给定图形驱动程序的模式范围
用 法
void far getmoderange(int graphdriverint far *lomode,
int far *himode);
程序例:

#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>

int main(void)
{
/* request auto detection */
int gdriver DETECTgmodeerrorcode;
int midxmidy;
int lowhigh;
char mrange[80];

/* 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;

/* get the mode range for this driver */
getmoderange(gdriver, &low, &high);

/* convert mode range info. into strings */
sprintf(mrange"This driver supports modes %d..%d"lowhigh);

/* display the information */
settextjustify(CENTER_TEXTCENTER_TEXT);
outtextxy(midxmidymrange);

/* clean up */
getch();
closegraph();
return 
0;
}



函数名getpalette
功 能
返回有关当前调色板的信息
用 法
void far getpalette(struct palettetype far *palette);
程序例:

#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>

int main(void)
{
/* request auto detection */
int gdriver DETECTgmodeerrorcode;
struct palettetype pal;
char psize[80], pval[20];
int iht;
int y 10;

/* 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();
/* terminate with an error code */
exit(1);
}

/* grab a copy of the palette */
getpalette(&pal);

/* convert palette info. into strings */
sprintf(psize"The palette has %d \
modifiable entries."
pal.size);

/* display the information */
outtextxy(0ypsize);
if (
pal.size != 0)
{
ht textheight("W");
+= 2*ht;
outtextxy(0y"Here are the current \
values:"
);
+= 2*ht;
for (
i=0i<pal.sizei++, y+=ht)
{
sprintf(pval,
"palette[%02d]: 0x%02X"i,
pal.colors[i]);
outtextxy(0ypval);
}
}

/* clean up */
getch();
closegraph();
return 
0;
}
函数名getpass
功 能
读一个口令
用 法
char *getpass(char *prompt);
程序例:

#include <conio.h>

int main(void)
{
char *password;

password getpass("Input a password:");
cprintf("The password is: %s\r\n",
password);
return 
0;
}




函数名getpixel
功 能
取得指定像素的颜色
用 法
int far getpixel(int xint y);
程序例:

#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <dos.h>

#define PIXEL_COUNT 1000
#define DELAY_TIME 100 /* in milliseconds */

int main(void)
{
/* request auto detection */
int gdriver DETECTgmodeerrorcode;
int ixycolormaxxmaxy,
maxcolorseed;

/* 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();
/* terminate with an error code */
exit(1);
}

maxx getmaxx() + 1;
maxy getmaxy() + 1;
maxcolor getmaxcolor() + 1;

while (!
kbhit())
{
/* seed the random number generator */
seed random(32767);
srand(seed);
for (
i=0i<PIXEL_COUNTi++)
{
random(maxx);
random(maxy);
color random(maxcolor);
putpixel(xycolor);
}

delay(DELAY_TIME);
srand(seed);
for (
i=0i<PIXEL_COUNTi++)
{
random(maxx);
random(maxy);
color random(maxcolor);
if (
color == getpixel匇? ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;h;(;);;; ;e;t;p;s;p;(;););;; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;e;s;e;t; ;t;o; ;s;e;g;m;e;n;t; ;o;f; ;t;h;e; ;P;S;P; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;i;n;e; ;i;s; ;l;o;c;a;t;e;d; ;a;t; ;o;f;f;s;e;t; ;0;x;8;1; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;t; ;o;f; ;P;S;P; ; ; ; ; ; ; ; ;


函数名gets
功 能
从流中取一字符串
用 法
char *gets(char *string);
程序例:

#include <stdio.h>

int main(void)
{
char string[80];

printf("Input a string:");
gets(string);
printf("The string input was: %s\n",
string);
return 
0;
}



函数名gettext
功 能
将文本方式屏幕上的文本拷贝到存储区
用 法
int gettext(int leftint topint rightint bottomvoid *destin);
程序例:

#include <conio.h>

char buffer[4096];

int main(void)
{
int i;
clrscr();
for (
0<= 20i++)
cprintf("Line #%d\r\n"i);
gettext(118025buffer);
gotoxy(125);
cprintf("Press any key to clear screen...");
getch();
clrscr();
gotoxy(125);
cprintf("Press any key to restore screen...");
getch();
puttext(118025buffer);
gotoxy(125);
cprintf("Press any key to quit...");
getch();
return 
0;
}



函数名gettextinfo
功 能
取得文本模式的显示信息
用 法
void gettextinfo(struct text_info *inforec);
程序例:

#include <conio.h>

int main(void)
{
struct text_info ti;
gettextinfo(&ti);
cprintf("window left %2d\r\n",ti.winleft);
cprintf("window top %2d\r\n",ti.wintop);
cprintf("window right %2d\r\n",ti.winright);
cprintf("window bottom %2d\r\n",ti.winbottom);
cprintf("attribute %2d\r\n",ti.attribute);
cprintf("normal attribute %2d\r\n",ti.normattr);
cprintf("current mode %2d\r\n",ti.currmode);
cprintf("screen height %2d\r\n",ti.screenheight);
cprintf("screen width %2d\r\n",ti.screenwidth);
cprintf("current x %2d\r\n",ti.curx);
cprintf("current y %2d\r\n",ti.cury);
return 
0;
}



函数名gettextsettings
功 能
返回有关当前图形文本字体的信息
用 法
void far gettextsettings(struct textsettingstype far *textinfo);
程序例:

#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>

/* the names of the fonts supported */
char *font[] = { "DEFAULT_FONT",
"TRIPLEX_FONT",
"SMALL_FONT",
"SANS_SERIF_FONT",
"GOTHIC_FONT"
};

/* the names of the text directions supported */
char *dir[] = { "HORIZ_DIR""VERT_DIR" };

/* horizontal text justifications supported */
char *hjust[] = { "LEFT_TEXT""CENTER_TEXT""RIGHT_TEXT" };

/* vertical text justifications supported */
char *vjust[] = { "BOTTOM_TEXT""CENTER_TEXT""TOP_TEXT" };

int main(void)
{
/* request auto detection */
int gdriver DETECTgmodeerrorcode;
struct textsettingstype textinfo;
int midxmidyht;
char fontstr[80], dirstr[80], sizestr[80];
char hjuststr[80], vjuststr[80];

/* 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;

/* get information about current text settings */
gettextsettings(&textinfo);

/* convert text information into strings */
sprintf(fontstr"%s is the text style."font[textinfo.font]);
sprintf(dirstr"%s is the text direction."dir[textinfo.direction]);
sprintf(sizestr"%d is the text size."textinfo.charsize);
sprintf(hjuststr"%s is the horizontal justification.",
hjust[textinfo.horiz]);
sprintf(vjuststr"%s is the vertical justification.",
vjust[textinfo.vert]);

/* display the information */
ht textheight("W");
settextjustify(CENTER_TEXTCENTER_TEXT);
outtextxy(midxmidyfontstr);
outtextxy(midxmidy+2*htdirstr);
outtextxy(midxmidy+4*htsizestr);
outtextxy(midxmidy+6*hthjuststr);
outtextxy(midxmidy+8*htvjuststr);

/* clean up */
getch();
closegraph();
return 
0;
}


函数名gettime
功 能
取得系统时间
用 法
void gettime(struct time *timep);
程序例:

#include <stdio.h>
#include <dos.h>

int main(void)
{
struct time t;

gettime(&t);
printf("The current time is: %2d:%02d:%02d.%02d\n",
t.ti_hourt.ti_mint.ti_sect.ti_hund);
return 
0;
}




函数名getvect
功 能
取得中断向量入口
用 法
void interrupt(*getvect(int intr_num));
程序例:

#include <stdio.h>
#include <dos.h>

void interrupt get_out(); /* interrupt prototype */

void interrupt (*oldfunc)(); /* interrupt function pointer */
int looping 1;

int main(void)
{
puts("Press <Shift><Prt Sc> to terminate");

/* save the old interrupt */
oldfunc getvect(5);

/* install interrupt handler */
setvect(5,get_out);

/* do nothing */
while (looping);

/* restore to original interrupt routine */
setvect(5,oldfunc);

puts("Success");
return 
0;
}
void interrupt get_out()
{
looping 0/* change global variable to get out of loop */
}



函数名getverify
功 能
返回DOS校验标志状态
用 法
int getverify(void);
程序例:

#include <stdio.h>
#include <dos.h>

int main(void)
{
if (
getverify())
printf("DOS verify flag is on\n");
else
printf("DOS verify flag is off\n");
return 
0;
}


函数名getviewsetting
功 能
返回有关当前视区的信息
用 法
void far getviewsettings(struct viewporttype far *viewport);
程序例:

#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>

char *clip[] = { "OFF""ON" };

int main(void)
{
/* request auto detection */
int gdriver DETECTgmodeerrorcode;
struct viewporttype viewinfo;
int midxmidyht;
char topstr[80], botstr[80], clipstr[80];

/* 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;

/* get information about current viewport */
getviewsettings(&viewinfo);

/* convert text information into strings */
sprintf(topstr"(%d, %d) is the upper left viewport corner.",
viewinfo.leftviewinfo.top);
sprintf(botstr"(%d, %d) is the lower right viewport corner.",
viewinfo.rightviewinfo.bottom);
sprintf(clipstr"Clipping is turned %s."clip[viewinfo.clip]);

/* display the information */
settextjustify(CENTER_TEXTCENTER_TEXT);
ht textheight("W");
outtextxy(midxmidytopstr);
outtextxy(midxmidy+2*htbotstr);
outtextxy(midxmidy+4*htclipstr);

/* clean up */
getch();
closegraph();
return 
0;
}



函数名getw
功 能
从流中取一整数
用 法
int getw(FILE *strem);
程序例:

#include <stdio.h>
#include <stdlib.h>

#define FNAME "test.$$$"

int main(void)
{
FILE *fp;
int word;

/* place the word in a file */
fp fopen(FNAME"wb");
if (
fp == NULL)
{
printf("Error opening file %s\n"FNAME);
exit(
1);
}

word 94;
putw(word,fp);
if (
ferror(fp))
printf("Error writing to file\n");
else
printf("Successful write\n");
fclose(fp);

/* reopen the file */
fp fopen(FNAME"rb");
if (
fp == NULL)
{
printf("Error opening file %s\n"FNAME);
exit(
1);
}

/* extract the word */
word getw(fp);
if (
ferror(fp))
printf("Error reading file\n");
else
printf("Successful read: word = %d\n"word);

/* clean up */
fclose(fp);
unlink(FNAME);

return 
0;
}




函数名getx
功 能
返回当前图形位置的x坐标
用 法
int far getx(void);
程序例:

#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>

int main(void)
{
/* request auto detection */
int gdriver DETECTgmodeerrorcode;
char msg[80];

/* 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 */
}

/* move to the screen center point */
moveto(getmaxx() / 2getmaxy() / 2);

/* create a message string */
sprintf(msg"<-(%d, %d) is the here."getx(), gety());

/* display the message */
outtext(msg);

/* clean up */
getch();
closegraph();
return 
0;
}
函数名gety
功 能
返回当前图形位置的y坐标
用 法
int far gety(void);
程序例:

#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>

int main(void)
{
/* request auto detection */
int gdriver DETECTgmodeerrorcode;
char msg[80];

/* 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 */
}

/* move to the screen center point */
moveto(getmaxx() / 2getmaxy() / 2);

/* create a message string */
sprintf(msg"<-(%d, %d) is the here."getx(), gety());

/* display the message */
outtext(msg);

/* clean up */
getch();
closegraph();
return 
0;
}



函数名gmtime
功 能
把日期和时间转换为格林尼治标准时间(GMT)
用 法struct tm *gmtime(long *clock);
程序例:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <dos.h>

/* Pacific Standard Time & Daylight Savings */
char *tzstr "TZ=PST8PDT";

int main(void)
{
time_t t;
struct tm *gmt, *area;

putenv(tzstr);
tzset();

time(NULL);
area localtime(&t);
printf("Local time is: %s"asctime(area));
gmt gmtime(&t);
printf("GMT is: %s"asctime(gmt));
return 
0;
}



函数名gotoxy
功 能
在文本窗口中设置光标
用 法
void gotoxy(int xint y);
程序例:

#include <conio.h>

int main(void)
{
clrscr();
gotoxy(3512);
cprintf("Hello world");
getch();
return 
0;
}



函数名gotoxy
功 能
在文本窗口中设置光标
用 法
void gotoxy(int xint y);
程序例:

#include <conio.h>

int main(void)
{
clrscr();
gotoxy(3512);
cprintf("Hello world");
getch();
return 
0;
}



函数名graphdefaults
功 能
将所有图形设置复位为它们的缺省值
用 法
void far graphdefaults(void);
程序例:

#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>

int main(void)
{
/* request auto detection */
int gdriver DETECTgmodeerrorcode;
int maxxmaxy;

/* initialize graphics and local variables */
initgraph(&gdriver, &gmode"c:\\bor\\Borland\\bgi");

/* 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 */
}

maxx getmaxx();
maxy getmaxy();

/* output line with non-default settings */
setlinestyle(DOTTED_LINE03);
line(00maxxmaxy);
outtextxy(maxx/2maxy/3"Before default values are restored.");
getch();

/* restore default values for everything */
graphdefaults();

/* clear the screen */
cleardevice();

/* output line with default settings */
line(00maxxmaxy);
outtextxy(maxx/2maxy/3"After restoring default values.");

/* clean up */
getch();
closegraph();
return 
0;
}



函数名grapherrormsg
功 能
返回一个错误信息串的指针
用 法
char *far grapherrormsg(int errorcode);
程序例:

#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>

#define NONSENSE -50

int main(void)
{
/* FORCE AN ERROR TO OCCUR */
int gdriver NONSENSEgmodeerrorcode;

/* initialize graphics mode */
initgraph(&gdriver, &gmode"");

/* read result of initialization */
errorcode graphresult();

/* if an error occurred, then output a */
/* descriptive error message. */
if (errorcode != grOk)
{
printf("Graphics error: %s\n"grapherrormsg(errorcode));
printf("Press any key to halt:");
getch();
exit(
1); /* terminate with an error code */
}

/* draw a line */
line(00getmaxx(), getmaxy());

/* clean up */
getch();
closegraph();
return 
0;
}



函数名graphresult
功 能
返回最后一次不成功的图形操作的错误代码
用 法
int far graphresult(void);
程序例:

#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>

int main(void)
{
/* request auto detection */
int gdriver DETECTgmodeerrorcode;

/* 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 */
}

/* draw a line */
line(00getmaxx(), getmaxy());

/* clean up */
getch();
closegraph();
return 
0;
}


函数名_graphfreemem
功 能
用户可修改的图形存储区释放函数
用 法
void far _graphfreemem(void far *ptrunsigned size);
程序例:

#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <alloc.h>

int main(void)
{
/* request auto detection */
int gdriver DETECTgmodeerrorcode;
int midxmidy;

/* clear the text screen */
clrscr();
printf("Press any key to initialize graphics mode:");
getch();
clrscr();

/* 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;

/* display a message */
settextjustify(CENTER_TEXTCENTER_TEXT);
outtextxy(midxmidy"Press any key to exit graphics mode:");

/* clean up */
getch();
closegraph();
return 
0;
}

/* called by the graphics kernel to allocate memory */
void far far _graphgetmem(unsigned size)
{
printf("_graphgetmem called to allocate %d bytes.\n"size);
printf("hit any key:");
getch();
printf("\n");

/* allocate memory from far heap */
return farmalloc(size);
}

/* called by the graphics kernel to free memory */
void far _graphfreemem(void far *ptrunsigned size)
{
printf("_graphfreemem called to free %d bytes.\n"size);
printf("hit any key:");
getch();
printf("\n");

/* free ptr from far heap */
farfree(ptr);

  kj501 当前离线  
旧 04-06-09, 21:29 第 9 帖
kj501
 
kj501 的头像
 
 
★☆版★主☆★  
  注册日期: Sep 2002
  我的住址: 贵州贵阳
  帖子: 5,317
  精华: 36
 

PHP 代码:
函数名harderr 
功  能
建立一个硬件错误处理程序 
用  法
void harderr(int (*fptr)()); 
程序例
/*This program will trap disk errors and prompt 
the user for action. Try running it with no 
disk in drive A: to invoke its functions.*/ 

#include <stdio.h> 
#include <conio.h> 
#include <dos.h> 
#define IGNORE  0 
#define RETRY   1 
#define ABORT   2 
int buf[500]; 
/*define the error messages for trapping disk problems*/ 
static char *err_msg[] = { 
    
"write protect"
    
"unknown unit"
    
"drive not ready"
    
"unknown command"
    
"data error (CRC)"
    
"bad request"
    
"seek error"
    
"unknown media type"
    
"sector not found"
    
"printer out of paper"
    
"write fault"
    
"read fault"
    
"general failure"
    
"reserved"
    
"reserved"
    
"invalid disk change" 
}; 

error_win(char *msg

   
int retval

   
cputs(msg); 

/*prompt for user to press a key to abort, retry, ignore*/ 
   
while(1
   { 
       
retvalgetch(); 
       if (
retval == 'a' || retval == 'A'
       { 
    
retval ABORT
    break; 
       } 
       if (
retval == 'r' || retval == 'R'
       { 
    
retval RETRY
    break; 
       } 
       if (
retval == 'i' || retval == 'I'
       { 
           
retval IGNORE
           break; 
       } 
   } 

   return(
retval); 


/*pragma warn -par reduces warnings which occur 
due to the non use of the parameters errval, 
bp and si to the handler.*/ 
#pragma warn -par 

int handler(int errval,int ax,int bp,int si

   static 
char msg[80]; 
   
unsigned di
   
int drive
   
int errorno
   
di_DI
/*if this is not a disk error then it was 
another device having trouble*/ 

   
if (ax 0
   { 
      
/* report the error */ 
      
error_win("Device error"); 
      
/* and return to the program directly requesting abort */ 
      
hardretn(ABORT); 
   } 
/* otherwise it was a disk error */ 
   
drive ax 0x00FF
   
errorno di 0x00FF
/* report which error it was */ 
   
sprintf(msg"Error: %s on drive %c\r\nA)bort, R)etry, I)gnore: "
    
err_msg[errorno], 'A' drive); 
/* 
return to the program via dos interrupt 0x23 with abort, retry, 
or ignore as input by the user. 
*/ 
   
hardresume(error_win(msg)); 
   return 
ABORT

#pragma warn +par 

int main(void

/* 
install our handler on the hardware problem interrupt 
*/ 
   
harderr(handler); 
   
clrscr(); 
   
printf("Make sure there is no disk in drive A:\n"); 
   
printf("Press any key ....\n"); 
   
getch(); 
   
printf("Trying to access drive A:\n"); 
   
printf("fopen returned %p\n",fopen("A:temp.dat""w")); 
   return 
0

   
   

函数名hardresume 
功  能
硬件错误处理函数 
用  法
void hardresume(int rescode); 
程序例
   

/* This program will trap disk errors and prompt the user for action. */ 
/* Try running it with no disk in drive A: to invoke its functions    */ 

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

#define IGNORE  0 
#define RETRY   1 
#define ABORT   2 

int buf[500]; 

/* define the error messages for trapping disk problems */ 
static char *err_msg[] = { 
    
"write protect"
    
"unknown unit"
    
"drive not ready"
    
"unknown command"
    
"data error (CRC)"
    
"bad request"
    
"seek error"
    
"unknown media type"
    
"sector not found"
    
"printer out of paper"
    
"write fault"
    
"read fault"
    
"general failure"
    
"reserved"
    
"reserved"
    
"invalid disk change" 
}; 

error_win(char *msg

   
int retval

   
cputs(msg); 

/* prompt for user to press a key to abort, retry, ignore */ 
   
while(1
   { 
       
retvalgetch(); 
       if (
retval == 'a' || retval == 'A'
       { 
           
retval ABORT
           break; 
       } 
       if (
retval == 'r' || retval == 'R'
       { 
           
retval RETRY
           break; 
       } 
       if (
retval == 'i' || retval == 'I'
       { 
           
retval IGNORE
           break; 
       } 
   } 

   return(
retval); 


/* pragma warn -par reduces warnings which occur due to the non use */ 
/* of the parameters errval, bp and si to the handler.              */ 
#pragma warn -par 

int handler(int errval,int ax,int bp,int si

   static 
char msg[80]; 
   
unsigned di
   
int drive
   
int errorno

   
di_DI
/* if this is not a disk error then it was another device having trouble */ 

   
if (ax 0
   { 
      
/* report the error */ 
      
error_win("Device error"); 
      
/* and return to the program directly 
      requesting abort */ 
      
hardretn(ABORT); 
   } 
/* otherwise it was a disk error */ 
   
drive ax 0x00FF
   
errorno di 0x00FF
/* report which error it was */ 
   
sprintf(msg"Error: %s on drive %c\r\nA)bort, R)etry, I)gnore: "
           
err_msg[errorno], 'A' drive); 
/* return to the program via dos interrupt 0x23 with abort, retry */ 
/* or ignore as input by the user.  */ 
   
hardresume(error_win(msg)); 
   return 
ABORT

#pragma warn +par 

int main(void

/* install our handler on the hardware problem interrupt */ 
   
harderr(handler); 
   
clrscr(); 
   
printf("Make sure there is no disk in drive A:\n"); 
   
printf("Press any key ....\n"); 
   
getch(); 
   
printf("Trying to access drive A:\n"); 
   
printf("fopen returned %p\n",fopen("A:temp.dat""w")); 
   return 
0

   
   

函数名highvideo 
功  能
选择高亮度文本字符 
用  法
void highvideo(void); 
程序例

#include <conio.h> 

int main(void

   
clrscr(); 

   
lowvideo(); 
   
cprintf("Low Intensity text\r\n"); 
   
highvideo(); 
   
gotoxy(1,2); 
   
cprintf("High Intensity Text\r\n"); 

   return 
0

   
   

函数名hypot 
功  能
计算直角三角形的斜边长 
用  法
double hypot(double xdouble y); 
程序例

#include <stdio.h> 
#include <math.h> 

int main(void

   
double result
   
double x 3.0
   
double y 4.0

   
result hypot(xy); 
   
printf("The hypotenuse is: %lf\n"result); 

   return 
0

  kj501 当前离线  
旧 04-06-09, 21:30 第 10 帖
kj501
 
kj501 的头像
 
 
★☆版★主☆★  
  注册日期: Sep 2002
  我的住址: 贵州贵阳
  帖子: 5,317
  精华: 36
 

PHP 代码:
函数名imagesize 
功  能
返回保存位图像所需的字节数 
用  法
unsigned far imagesize(int leftint topint rightint bottom); 
程序例

#include <graphics.h> 
#include <stdlib.h> 
#include <stdio.h> 
#include <conio.h> 

#define ARROW_SIZE 10 

void draw_arrow(int xint y); 

int main(void

   
/* request autodetection */ 
   
int gdriver DETECTgmodeerrorcode
   
void *arrow
   
int xymaxx
   
unsigned int size

   
/* 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 */ 
   


   
maxx getmaxx(); 
   
0
   
getmaxy() / 2

   
/* draw the image to be grabbed */ 
   
draw_arrow(xy); 

   
/* calculate the size of the image */ 
   
size imagesize(xy-ARROW_SIZEx+(4*ARROW_SIZE), y+ARROW_SIZE); 

   
/* allocate memory to hold the image */ 
   
arrow malloc(size); 

   
/* grab the image */ 
   
getimage(xy-ARROW_SIZEx+(4*ARROW_SIZE), y+ARROW_SIZEarrow); 

   
/* repeat until a key is pressed */ 
   
while (!kbhit()) 
   { 
      
/* erase old image */ 
      
putimage(xy-ARROW_SIZEarrowXOR_PUT); 

      
+= ARROW_SIZE
      if (
>= maxx
          
0

      
/* plot new image */ 
      
putimage(xy-ARROW_SIZEarrowXOR_PUT); 
   } 

   
/* clean up */ 
   
free(arrow); 
   
closegraph(); 
   return 
0


void draw_arrow(int xint y

   
/* draw an arrow on the screen */ 
   
moveto(xy); 
   
linerel(4*ARROW_SIZE0); 
   
linerel(-2*ARROW_SIZE, -1*ARROW_SIZE); 
   
linerel(02*ARROW_SIZE); 
   
linerel(2*ARROW_SIZE, -1*ARROW_SIZE); 

   
   
   

函数名initgraph 
功  能
初始化图形系统 
用  法
void far initgraph(int far *graphdriverint far *graphmode
    
char far *pathtodriver); 
程序例

#include <graphics.h> 
#include <stdlib.h> 
#include <stdio.h> 
#include <conio.h> 

int main(void

   
/* request auto detection */ 
   
int gdriver DETECTgmodeerrorcode

   
/* initialize graphics mode */ 
   
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);             /* return with error code */ 
   


   
/* draw a line */ 
   
line(00getmaxx(), getmaxy()); 

   
/* clean up */ 
   
getch(); 
   
closegraph(); 
   return 
0

   
   

函数名inport 
功  能
从硬件端口中输入 
用  法
int inp(int protid); 
程序例

#include <stdio.h> 
#include <dos.h> 

int main(void

   
int result
   
int port 0;  /* serial port 0 */ 

   
result inport(port); 
   
printf("Word read from port %d = 0x%X\n"portresult); 
   return 
0

   
   

函数名insline 
功  能
在文本窗口中插入一个空行 
用  法
void insline(void); 
程序例

#include <conio.h> 

int main(void

   
clrscr(); 
   
cprintf("INSLINE inserts an empty line in the text window\r\n"); 
   
cprintf("at the cursor position using the current text\r\n"); 
   
cprintf("background color.  All lines below the empty one\r\n"); 
   
cprintf("move down one line and the bottom line scrolls\r\n"); 
   
cprintf("off the bottom of the window.\r\n"); 
   
cprintf("\r\nPress any key to continue:"); 
   
gotoxy(13); 
   
getch(); 
   
insline(); 
   
getch(); 
   return 
0

   
   
   

函数名installuserdriver 
功  能
安装设备驱动程序到BGI设备驱动程序表中 
用  法
int far installuserdriver(char far *nameint (*detect)(void)); 
程序例

#include <graphics.h> 
#include <stdlib.h> 
#include <stdio.h> 
#include <conio.h> 

/* function prototypes */ 
int huge detectEGA(void); 
void checkerrors(void); 

int main(void

   
int gdrivergmode

   
/* install a user written device driver */ 
   
gdriver installuserdriver("EGA"detectEGA); 

   
/* must force use of detection routine */ 
   
gdriver DETECT

   
/* check for any installation errors */ 
   
checkerrors(); 

   
/* initialize graphics and local variables */ 
   
initgraph(&gdriver, &gmode""); 

   
/* check for any initialization errors */ 
   
checkerrors(); 

   
/* draw a line */ 
   
line(00getmaxx(), getmaxy()); 

   
/* clean up */ 
   
getch(); 
   
closegraph(); 
   return 
0


/* detects EGA or VGA cards */ 
int huge detectEGA(void

   
int drivermodesugmode 0

   
detectgraph(&driver, &mode); 
   if ((
driver == EGA) || (driver == VGA)) 
      
/* return suggested video mode number */ 
      
return sugmode
   else 
      
/* return an error code */ 
      
return grError


/* check for and report any graphics errors */ 
void checkerrors(void

   
int errorcode

   
/* read result of last graphics operation */ 
   
errorcode graphresult(); 
   if (
errorcode != grOk
   { 
      
printf("Graphics error: %s\n"grapherrormsg(errorcode)); 
      
printf("Press any key to halt:"); 
      
getch(); 
      exit(
1); 
   } 


函数名installuserfont 
功  能
安装未嵌入BGI系统的字体文件(CHR
用  法int far installuserfont(char far *name); 
程序例

#include <graphics.h> 
#include <stdlib.h> 
#include <stdio.h> 
#include <conio.h> 

/* function prototype */ 
void checkerrors(void); 

int main(void

   
/* request auto detection */ 
   
int gdriver DETECTgmode
   
int userfont
   
int midxmidy

   
/* initialize graphics and local variables */ 
   
initgraph(&gdriver, &gmode""); 

   
midx getmaxx() / 2
   
midy getmaxy() / 2

   
/* check for any initialization errors */ 
   
checkerrors(); 

   
/* install a user defined font file */ 
   
userfont installuserfont("USER.CHR"); 

   
/* check for any installation errors */ 
   
checkerrors(); 

   
/* select the user font */ 
   
settextstyle(userfontHORIZ_DIR4); 

   
/* output some text */ 
   
outtextxy(midxmidy"Testing!"); 

   
/* clean up */ 
   
getch(); 
   
closegraph(); 
   return 
0


/* check for and report any graphics errors */ 
void checkerrors(void

   
int errorcode

   
/* read result of last graphics operation */ 
   
errorcode graphresult(); 
   if (
errorcode != grOk
   { 
      
printf("Graphics error: %s\n"grapherrormsg(errorcode)); 
      
printf("Press any key to halt:"); 
      
getch(); 
      exit(
1); 
   } 

   
   
   

函数名int86 
功  能
通用8086软中断接口 
用  法
int int86(int intr_numunion REGS *inregsunion REGS *outregs); 
程序例

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

#define VIDEO 0x10 

void movetoxy(int xint y

   
union REGS regs

   
regs.h.ah 2;  /* set cursor postion */ 
   
regs.h.dh y
   
regs.h.dl x
   
regs.h.bh 0;  /* video page 0 */ 
   
int86(VIDEO, &s, &s); 


int main(void

   
clrscr(); 
   
movetoxy(3510); 
   
printf("Hello\n"); 
   return 
0

   
   

函数名int86x 
功  能
通用8086软中断接口 
用  法
int int86x(int intr_numunion REGS *insegsunion REGS *outregs
     
struct SREGS *segregs); 
程序例

#include <dos.h> 
#include <process.h> 
#include <stdio.h> 

int main(void

   
char filename[80]; 
   
union REGS inregsoutregs
   
struct SREGS segregs

   
printf("Enter filename: "); 
   
gets(filename); 
   
inregs.h.ah 0x43
   
inregs.h.al 0x21
   
inregs.x.dx FP_OFF(filename); 
   
segregs.ds FP_SEG(filename); 
   
int86x(0x21, &inregs, &outregs, &segregs); 
   
printf("File attribute: %X\n"outregs.x.cx); 
   return 
0

   
   
   

函数名intdos 
功  能
通用DOS接口 
用  法
int intdos(union REGS *inregsunion REGS *outregs); 
程序例

#include <stdio.h> 
#include <dos.h> 

/* deletes file name; returns 0 on success, nonzero on failure */ 
int delete_file(char near *filename

   
union REGS regs
   
int ret
   
regs.h.ah 0x41;                            /* delete file */ 
   
regs.x.dx = (unsignedfilename
   
ret intdos(&s, &s); 

   
/* if carry flag is set, there was an error */ 
   
return(regs.x.cflag ret 0); 


int main(void

   
int err
   
err delete_file("NOTEXIST.$$$"); 
   if (!
err
      
printf("Able to delete NOTEXIST.$$$\n"); 
   else 
      
printf("Not Able to delete NOTEXIST.$$$\n"); 
   return 
0

   
   
   

函数名intdosx 
功  能
通用DOS中断接口 
用  法
int intdosx(union REGS *inregsunion REGS *outregs
      
struct SREGS *segregs); 
程序例

#include <stdio.h> 
#include <dos.h> 

/* deletes file name; returns 0 on success, nonzero on failure */ 
int delete_file(char far *filename

   
union REGS regsstruct SREGS sregs
   
int ret
   
regs.h.ah 0x41;                      /* delete file */ 
   
regs.x.dx FP_OFF(filename); 
   
sregs.ds FP_SEG(filename); 
   
ret intdosx(&s, &s, &sregs); 

   
/* if carry flag is set, there was an error */ 
   
return(regs.x.cflag ret 0); 


int main(void

   
int err
   
err delete_file("NOTEXIST.$$$"); 
   if (!
err
      
printf("Able to delete NOTEXIST.$$$\n"); 
   else 
      
printf("Not Able to delete NOTEXIST.$$$\n"); 
   return 
0

   
   

函数名intr 
功  能
改变软中断接口 
用  法
void intr(int intr_numstruct REGPACK *preg); 
程序例

#include <stdio.h> 
#include <string.h> 
#include <dir.h> 
#include <dos.h> 

#define CF 1  /* Carry flag */ 

int main(void

   
char directory[80]; 
   
struct REGPACK reg

   
printf("Enter directory to change to: "); 
   
gets(directory); 
   
reg.r_ax 0x3B << 8;         /* shift 3Bh into  AH */ 
   
reg.r_dx FP_OFF(directory); 
   
reg.r_ds FP_SEG(directory); 
   
intr(0x21, &); 
   if (
reg.r_flags CF
      
printf("Directory change failed\n"); 
   
getcwd(directory80); 
   
printf("The current directory is: %s\n"directory); 
   return 
0

   
   

函数名ioctl 
功  能
控制I/O设备 
用  法
int ioctl(int handleint cmd[,int *argdxint argcx]); 
程序例

#include <stdio.h> 
#include <dir.h> 
#include <io.h> 

int main(void

   
int stat

   
/* use func 8 to determine if the default drive is removable */ 
   
stat ioctl(0800); 
   if (!
stat
      
printf("Drive %c is removable.\n"getdisk() + 'A'); 
   else 
      
printf("Drive %c is not removable.\n"getdisk() + 'A'); 
   return 
0

   
   
   

函数名isatty 
功  能
检查设备类型 
用  法
int isatty(int handle); 
程序例

#include <stdio.h> 
#include <io.h> 

int main(void

   
int handle

   
handle fileno(stdprn); 
   if (
isatty(handle)) 
      
printf("Handle %d is a device type\n"handle); 
   else 
      
printf("Handle %d isn't a device type\n"handle); 
   return 
0

   
   
   

函数名itoa 
功  能
把一整数转换为字符串 
用  法
char *itoa(int valuechar *stringint radix); 
程序例

#include <stdlib.h> 
#include <stdio.h> 

int main(void

   
int number 12345
   
char string[25]; 

   
itoa(numberstring10); 
   
printf("integer = %d string = %s\n"numberstring); 
   return 
0

  kj501 当前离线  
旧 04-06-09, 21:31 第 11 帖
kj501
 
kj501 的头像
 
 
★☆版★主☆★  
  注册日期: Sep 2002
  我的住址: 贵州贵阳
  帖子: 5,317
  精华: 36
 

PHP 代码:
函数名kbhit
功  能
检查当前按下的键
用  法
int kbhit(void);
程序例
#include <conio.h> 

int main(void)
{
   
cprintf("Press any key to continue:");
   while (!
kbhit()) /* do nothing */ ;
   
cprintf("\r\nA key was pressed...\r\n");
   return 
0;
}
 
 
   

函数名keep
功  能
退出并继续驻留
用  法
void keep(int statusint size);
程序例

/***NOTE:
   This is an interrupt service routine.  You
   can NOT compile this program with Test
   Stack Overflow turned on and get an
   executable file which will operate
   correctly.  Due to the nature of this
   function the formula used to compute
   the number of paragraphs may not
   necessarily work in all cases.  Use with
   care!  Terminate Stay Resident (TSR)
   programs are complex and no other support
   for them is provided.  Refer to the
   MS-DOS technical documentation
   for more information.  */
#include <dos.h>
/* The clock tick interrupt */
#define INTR 0x1C
/* Screen attribute (blue on grey) */
#define ATTR 0x7900 

/* reduce heaplength and stacklength
to make a smaller program in memory */
extern unsigned _heaplen 1024;
extern unsigned _stklen  512

void interrupt ( *oldhandler)(void); 

void interrupt handler(void)
{
   
unsigned int (far *screen)[80];
   static 
int count

/* For a color screen the video memory
   is at B800:0000.  For a monochrome
   system use B000:000 */
   
screen MK_FP(0xB800,0); 

/* increase the counter and keep it
   within 0 to 9 */
   
count++;
   
count %= 10

/* put the number on the screen */
   
screen[0][79] = count '0' ATTR

/* call the old interrupt handler */
   
oldhandler();


int main(void)


/* get the address of the current clock
   tick interrupt */
oldhandler getvect(INTR); 

/* install the new interrupt handler */
setvect(INTRhandler); 

/* _psp is the starting address of the
   program in memory.  The top of the stack
   is the end of the program.  Using _SS and
   _SP together we can get the end of the
   stack.  You may want to allow a bit of
   saftey space to insure that enough room
   is being allocated ie:
   (_SS + ((_SP + safety space)/16) - _psp)
*/
keep(0, (_SS + (_SP/16) - _psp));
return 
0;

  kj501 当前离线  
旧 04-06-09, 21:32 第 12 帖
kj501
 
kj501 的头像
 
 
★☆版★主☆★  
  注册日期: Sep 2002
  我的住址: 贵州贵阳
  帖子: 5,317
  精华: 36
 

PHP 代码:
main()主函数 
    每一C 程序都必须有一main
()函数可以根据自己的爱好把它放在程序的某 
个地方。有些程序员把它放在最前面
而另一些程序员把它放在最后面无论放 
在哪个地方
以下几点说明都是适合的。 
    1. main
() 参数 
    在Turbo C2.0启动过程中
传递main()函数三个参数argcargv和env。 
     
argc:  整数为传给main()的命令行参数个数。 
     
argv:  字符串数组。 
              在DOS 3.X 版本中
argv[0为程序运行的全路径名对DOS 3.0 
              以下的版本
argv[0]为空串(""。 
              argv
[1为在DOS命令行中执行程序名后的第一个字符串
              
argv[2为执行程序名后的第二个字符串
              ... 
              
argv[argc]为NULL。 
     
*env:  安符串数组。env[] 的每一个元素都包含ENVVAR=value形式的字符 
串。其中ENVVAR为环境变量如PATH或87。value 为ENVVAR的对应值如C
:DOSC
TURBOC(对于PATH或YES(对于87)。 
    Turbo C2.0启动时总是把这三个参数传递给main
()函数可以在用户程序中 
说明
(或不说明)它们如果说明了部分(或全部)参数它们就成为main()子程序 
的局部变量。 
    请注意
一旦想说明这些参数则必须按argcargvenv 的顺序如以下 
的例子

     
main() 
     
main(int argc
     
main(int argcchar *argv[]) 
     
main(int argcchar *argv[], char *env[]) 
    
其中第二种情况是合法的但不常见因为在程序中很少有只用argc而不 
用argv
[]的情况。 
    以下提供一样例程序EXAMPLE
.EXE,  演示如何在main()函数中使用三个参数
     
/*program name EXAMPLE.EXE*/ 
     #include <stdio.h> 
     #include <stdlib.h> 
     
main(int argcchar *argv[], char *env[]) 
     { 
          
int i
          
printf("These are the %d  command- line  arguments passed  to 
                  main:\n\n"
argc); 
          for(
i=0i<=argci++) 
            
printf("argv[%d]:%s\n"iargv[i]); 
          
printf("\nThe environment string(s)on this system are:\n\n"); 
          for(
i=0env[i]!=NULLi++) 
               
printf(" env[%d]:%s\n"ienv[i]); 
     } 
    
如果在DOS 提示符下按以下方式运行EXAMPLE.EXE
    
C:example first_argument "argument with blanks"  3  4  "last  but 
one" 
stop
    
注意可以用双引号括起内含空格的参数如本例中的:   "  argument 
with blanks"
"Last but one")。 
    结果是这样的

     
The value of argc is 7 
     These are the 7 command
-linearguments passed to main
     
argv[0]:C:TURBOEXAMPLE.EXE 
     argv
[1]:first_argument 
     argv
[2]:argument with blanks 
     argv
[3]:
     argv
[4]:
     argv
[5]:last but one 
     argv
[6]:stop
     
argv[7]:(NULL
     
The environment string(son this system are
     
env[0]: COMSPEC=C:COMMAND.COM 
     env
[1]: PROMPT=$P$G            /*视具体设置而定*/ 
     
env[2]: PATH=C:DOS;C:TC      /*视具体设置而定*/ 
   
     
应该提醒的是传送main() 函数的命令行参数的最大长度为128 个字符 (包 
括参数间的空格
),  这是由DOS 限制的。 
   

函数名
matherr 
功  能
用户可修改的数学错误处理程序 
用  法
int matherr(struct exception *e); 
程序例

/* This is a user-defined matherr function that prevents 
   any error messages from being printed. */ 

#include<math.h> 

int matherr(struct exception *a

   return 
1

   
   
   

函数名memccpy 
功  能
从源source中拷贝n个字节到目标destin中 
用  法
void *memccpy(void *destinvoid *sourceunsigned char ch
       
unsigned n); 
程序例

#include <string.h> 
#include <stdio.h> 

int main(void

   
char *src "This is the source string"
   
char dest[50]; 
   
char *ptr

   
ptr memccpy(destsrc'c'strlen(src)); 

   if (
ptr
   { 
      *
ptr '\0'
      
printf("The character was found:  %s\n"dest); 
   } 
   else 
      
printf("The character wasn't found\n"); 
   return 
0

   
   

函数名malloc 
功  能
内存分配函数 
用  法
void *malloc(unsigned size); 
程序例

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

int main(void

   
char *str

   
/* allocate memory for string */ 
   /* This will generate an error when compiling */ 
   /* with C++, use the new operator instead. */ 
   
if ((str malloc(10)) == NULL
   { 
      
printf("Not enough memory to allocate buffer\n"); 
      exit(
1);  /* terminate program if out of memory */ 
   


   
/* copy "Hello" into string */ 
   
strcpy(str"Hello"); 

   
/* display string */ 
   
printf("String is %s\n"str); 

   
/* free memory */ 
   
free(str); 

   return 
0

   
   
   

函数名memchr 
功  能
在数组的前n个字节中搜索字符 
用  法
void *memchr(void *schar chunsigned n); 
程序例

#include <string.h> 
#include <stdio.h> 

int main(void

   
char str[17]; 
   
char *ptr

   
strcpy(str"This is a string"); 
   
ptr memchr(str'r'strlen(str)); 
   if (
ptr
      
printf("The character 'r' is at position: %d\n"ptr str); 
   else 
      
printf("The character was not found\n"); 
   return 
0

   

函数名memcpy 
功  能
从源source中拷贝n个字节到目标destin中 
用  法
void *memcpy(void *destinvoid *sourceunsigned n); 
程序例

#include <stdio.h> 
#include <string.h> 
int main(void

   
char src[] = "******************************"
   
char dest[] = "abcdefghijlkmnopqrstuvwxyz0123456709"
   
char *ptr
   
printf("destination before memcpy: %s\n"dest); 
   
ptr memcpy(destsrcstrlen(src)); 
   if (
ptr
      
printf("destination after memcpy:  %s\n"dest); 
   else 
      
printf("memcpy failed\n"); 
   return 
0

   
   

函数名memicmp 
功  能
比较两个串s1和s2的前n个字节忽略大小写 
用  法
int memicmp(void *s1void *s2unsigned n); 
程序例

#include <stdio.h> 
#include <string.h> 

int main(void

   
char *buf1 "ABCDE123"
   
char *buf2 "abcde456"
   
int stat
   
stat memicmp(buf1buf25); 
   
printf("The strings to position 5 are "); 
   if (
stat
      
printf("not "); 
   
printf("the same\n"); 
   return 
0

   
   

函数名memmove 
功  能
移动一块字节 
用  法
void *memmove(void *destinvoid *sourceunsigned n); 
程序例

#include <string.h> 
#include <stdio.h> 

int main(void

  
char *dest "abcdefghijklmnopqrstuvwxyz0123456789"
  
char *src "******************************"
  
printf("destination prior to memmove: %s\n"dest); 
  
memmove(destsrc26); 
  
printf("destination after memmove:    %s\n"dest); 
  return 
0

   
   
   

函数名memset 
功  能
设置s中的所有字节为chs数组的大小由n给定 
用  法
void *memset(void *schar chunsigned n); 
程序例

#include <string.h> 
#include <stdio.h> 
#include <mem.h> 

int main(void

   
char buffer[] = "Hello world\n"

   
printf("Buffer before memset: %s\n"buffer); 
   
memset(buffer'*'strlen(buffer) - 1); 
   
printf("Buffer after memset:  %s\n"buffer); 
   return 
0

   
   

函数名mkdir 
功  能
建立一个目录 
用  法
int mkdir(char *pathname); 
程序例

#include <stdio.h> 
#include <conio.h> 
#include <process.h> 
#include <dir.h> 

int main(void

  
int status

   
clrscr(); 
   
status mkdir("asdfjklm"); 
   (!
status) ? (printf("Directory created\n")) : 
               (
printf("Unable to create directory\n")); 

   
getch(); 
   
system("dir"); 
   
getch(); 

   
status rmdir("asdfjklm"); 
   (!
status) ? (printf("Directory deleted\n")) : 
  (
perror("Unable to delete directory")); 

   return 
0

   
   
   

函数名mktemp 
功  能
建立唯一的文件名 
用  法
char *mktemp(char *template); 
程序例

#include <dir.h> 
#include <stdio.h> 

int main(void

   
/* fname defines the template for the 
     temporary file.  */ 

   
char *fname "TXXXXXX", *ptr

   
ptr mktemp(fname); 
   
printf("%s\n",ptr); 
   return 
0

   
   

函数名MK_FP 
功  能
设置一个远指针 
用  法
void far *MK_FP(unsigned segunsigned off); 
程序例

#include <dos.h> 
#include <graphics.h> 

int main(void

   
int gdgmi
   
unsigned int far *screen

   
detectgraph(&gd, &gm); 
   if (
gd == HERCMONO
       
screen MK_FP(0xB0000); 
   else 
       
screen MK_FP(0xB8000); 
   for (
i=0i<26i++) 
      
screen[i] = 0x0700 + ('a' i); 
   return 
0

   
   

函数名modf 
功  能
把数分为指数和尾数 
用  法
double modf(double valuedouble *iptr); 
程序例

#include <math.h> 
#include <stdio.h> 

int main(void

   
double fractioninteger
   
double number 100000.567

   
fraction modf(number, &integer); 
   
printf("The whole and fractional parts of %lf are %lf and %lf\n"
          
numberintegerfraction); 
   return 
0

   
   

函数名movedata 
功  能
拷贝字节 
用  法
void movedata(int segsrcint offsrcint segdest
  
int offdestunsigned numbytes); 
程序例

#include <mem.h> 

#define MONO_BASE 0xB000 

/* saves the contents of the monochrome screen in buffer */ 
void save_mono_screen(char near *buffer

   
movedata(MONO_BASE0_DS, (unsigned)buffer80*25*2); 


int main(void

   
char buf[80*25*2]; 
   
save_mono_screen(buf); 

   
   

函数名moverel 
功  能
将当前位置(CP)移动一相对距离 
用  法
void far moverel(int dxint dy); 
程序例

#include <graphics.h> 
#include <stdlib.h> 
#include <stdio.h> 
#include <conio.h> 

int main(void

   
/* request auto detection */ 
   
int gdriver DETECTgmodeerrorcode
   
char msg[80]; 

   
/* 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 */ 
   


   
/* move the C.P. to location (20, 30) */ 
   
moveto(2030); 

   
/* plot a pixel at the C.P. */ 
   
putpixel(getx(), gety(), getmaxcolor()); 

   
/* create and output a message at (20, 30) */ 
   
sprintf(msg" (%d, %d)"getx(), gety()); 
   
outtextxy(2030msg); 

   
/* move to a point a relative distance */ 
   /* away from the current value of C.P. */ 
   
moverel(100100); 

   
/* plot a pixel at the C.P. */ 
   
putpixel(getx(), gety(), getmaxcolor()); 

   
/* create and output a message at C.P. */ 
   
sprintf(msg" (%d, %d)"getx(), gety()); 
   
outtext(msg); 

   
/* clean up */ 
   
getch(); 
   
closegraph(); 
   return 
0

   
   

函数名movetext 
功  能
将屏幕文本从一个矩形区域拷贝到另一个矩形区域 
用  法
int movetext(int leftint topint rightint bottom
  
int newleftint newtop); 
程序例
#include <conio.h> 
#include <string.h> 

int main(void

   
char *str "This is a test string"

   
clrscr(); 
   
cputs(str); 
   
getch(); 

   
movetext(11strlen(str), 21010); 
   
getch(); 

   return 
0

   
   

函数名moveto 
功  能
将CP移到(xy
用  法void far moveto(int xint y); 
程序例

#include <graphics.h> 
#include <stdlib.h> 
#include <stdio.h> 
#include <conio.h> 

int main(void

   
/* request auto detection */ 
   
int gdriver DETECTgmodeerrorcode
   
char msg[80]; 

   
/* 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 */ 
   


   
/* move the C.P. to location (20, 30) */ 
   
moveto(2030); 

   
/* plot a pixel at the C.P. */ 
   
putpixel(getx(), gety(), getmaxcolor()); 

   
/* create and output a message at (20, 30) */ 
   
sprintf(msg" (%d, %d)"getx(), gety()); 
   
outtextxy(2030msg); 

   
/* move to (100, 100) */ 
   
moveto(100100); 

   
/* plot a pixel at the C.P. */ 
   
putpixel(getx(), gety(), getmaxcolor()); 

   
/* create and output a message at C.P. */ 
   
sprintf(msg" (%d, %d)"getx(), gety()); 
   
outtext(msg); 

   
/* clean up */ 
   
getch(); 
   
closegraph(); 
   return 
0

   
   

函数名movemem 
功  能
移动一块字节 
用  法
void movemem(void *sourcevoid *destinunsigned len); 
程序例

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

int main(void

   
char *source "Borland International"
   
char *destination
   
int length

   
length strlen(source); 
   
destination malloc(length 1); 
   
movmem(source,destination,length); 
   
printf("%s\n",destination); 

   return 
0

  kj501 当前离线  
旧 04-06-09, 21:33 第 13 帖
kj501
 
kj501 的头像
 
 
★☆版★主☆★  
  注册日期: Sep 2002
  我的住址: 贵州贵阳
  帖子: 5,317
  精华: 36
 

PHP 代码:
函数名normvideo 
功  能
选择正常亮度字符 
用  法
void normvideo(void); 
程序例

#include <conio.h> 

int main(void

   
normvideo(); 
   
cprintf("NORMAL Intensity Text\r\n"); 
   return 
0

   
   

函数名nosound 
功  能
关闭PC扬声器 
用  法
void nosound(void); 
程序例

/* Emits a 7-Hz tone for 10 seconds. 

     True story: 7 Hz is the resonant frequency of a chicken's skull cavity. 
     This was determined empirically in Australia, where a new factory 
     generating 7-Hz tones was located too close to a chicken ranch: 
     When the factory started up, all the chickens died. 

     Your PC may not be able to emit a 7-Hz tone. 
*/ 

int main(void

   
sound(7); 
   
delay(10000); 
   
nosound(); 

  kj501 当前离线  
旧 04-06-09, 21:34 第 14 帖
kj501
 
kj501 的头像
 
 
★☆版★主☆★  
  注册日期: Sep 2002
  我的住址: 贵州贵阳
  帖子: 5,317
  精华: 36
 

PHP 代码:
函数名open 
功  能
打开一个文件用于读或写 
用  法
int open(char *pathnameint access[, int permiss]); 
程序例
#include <string.h> 
#include <stdio.h> 
#include <fcntl.h> 
#include <io.h> 

int main(void

   
int handle
   
char msg[] = "Hello world"

   if ((
handle open("TEST.$$$"O_CREAT O_TEXT)) == -1
   { 
      
perror("Error:"); 
      return 
1
   } 
   
write(handlemsgstrlen(msg)); 
   
close(handle); 
   return 
0

   
   

函数名outport 
功  能
输出整数到硬件端口中 
用  法
void outport(int portint value); 
程序例

#include <stdio.h> 
#include <dos.h> 

int main(void

   
int value 64
   
int port 0

   
outportb(portvalue); 
   
printf("Value %d sent to port number %d\n"valueport); 
   return 
0

   
   

函数名outportb 
功  能
输出字节到硬件端口中 
用  法
void outportb(int portchar byte); 
程序例

#include <stdio.h> 
#include <dos.h> 

int main(void

   
int value 64
   
int port 0

   
outportb(portvalue); 
   
printf("Value %d sent to port number %d\n"valueport); 
   return 
0

   
   

函数名outtext 
功  能
在视区显示一个字符串 
用  法
void far outtext(char far *textstring); 
程序例

#include <graphics.h> 
#include <stdlib.h> 
#include <stdio.h> 
#include <conio.h> 

int main(void

   
/* request auto detection */ 
   
int gdriver DETECTgmodeerrorcode
   
int midxmidy

   
/* 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

   
/* move the C.P. to the center of the screen */ 
   
moveto(midxmidy); 

   
/* output text starting at the C.P. */ 
   
outtext("This "); 
   
outtext("is "); 
   
outtext("a "); 
   
outtext("test."); 

   
/* clean up */ 
   
getch(); 
   
closegraph(); 
   return 
0

   
   

函数名outtextxy 
功  能
在指定位置显示一字符串 
用  法
void far outtextxy(int xint ychar *textstring); 
程序例

#include <graphics.h> 
#include <stdlib.h> 
#include <stdio.h> 
#include <conio.h> 

int main(void

   
/* request auto detection */ 
   
int gdriver DETECTgmodeerrorcode
   
int midxmidy

   
/* 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

   
/* output text at the center of the screen*/ 
   /* Note: the C.P. doesn't get changed.*/ 
   
outtextxy(midxmidy"This is a test."); 

   
/* clean up */ 
   
getch(); 
   
closegraph(); 
   return 
0

  kj501 当前离线  
旧 04-06-09, 21:35 第 15 帖
kj501
 
kj501 的头像
 
 
★☆版★主☆★  
  注册日期: Sep 2002
  我的住址: 贵州贵阳
  帖子: 5,317
  精华: 36
 

PHP 代码:
函数名parsfnm 
功  能
分析文件名 
用  法
char *parsfnm (char *cmdlinestruct fcb *fcbptrint option); 
程序例

#include <process.h> 
#include <string.h> 
#include <stdio.h> 
#include <dos.h> 

int main(void

   
char line[80]; 
   
struct fcb blk

   
/* get file name */ 
   
printf("Enter drive and file name (no path - ie. a:file.dat)\n"); 
   
gets(line); 

   
/* put file name in fcb */ 
   
if (parsfnm(line, &blk1) == NULL
      
printf("Error in parsfm call\n"); 
   else 
      
printf("Drive #%d  Name: %11s\n"blk.fcb_driveblk.fcb_name); 

   return 
0

   
   

函数名peek 
功  能
检查存储单元 
用  法
int peek(int segmentunsigned offset); 
程序例

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

int main(void

   
int value 0

   
printf("The current status of your keyboard is:\n"); 
   
value peek(0x00400x0017); 
   if (
value 1
      
printf("Right shift on\n"); 
   else 
      
printf("Right shift off\n"); 

   if (
value 2
      
printf("Left shift on\n"); 
   else 
      
printf("Left shift off\n"); 

   if (
value 4
      
printf("Control key on\n"); 
   else 
      
printf("Control key off\n"); 

   if (
value 8
      
printf("Alt key on\n"); 
   else 
      
printf("Alt key off\n"); 

   if (
value 16
      
printf("Scroll lock on\n"); 
   else 
      
printf("Scroll lock off\n"); 

   if (
value 32
      
printf("Num lock on\n"); 
   else 
      
printf("Num lock off\n"); 

   if (
value 64
      
printf("Caps lock on\n"); 
   else 
      
printf("Caps lock off\n"); 

   return 
0

   
   

函数名peekb 
功  能
检查存储单元 
用  法
char peekb (int segmentunsigned offset); 
程序例

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

int main(void

   
int value 0

   
printf("The current status of your keyboard is:\n"); 
   
value peekb(0x00400x0017); 
   if (
value 1
      
printf("Right shift on\n"); 
   else 
      
printf("Right shift off\n"); 

   if (
value 2
      
printf("Left shift on\n"); 
   else 
      
printf("Left shift off\n"); 

   if (
value 4
      
printf("Control key on\n"); 
   else 
      
printf("Control key off\n"); 

   if (
value 8
      
printf("Alt key on\n"); 
   else 
      
printf("Alt key off\n"); 

   if (
value 16
      
printf("Scroll lock on\n"); 
   else 
      
printf("Scroll lock off\n"); 

   if (
value 32
      
printf("Num lock on\n"); 
   else 
      
printf("Num lock off\n"); 

   if (
value 64
      
printf("Caps lock on\n"); 
   else 
      
printf("Caps lock off\n"); 

   return 
0

   
   

函数名perror 
功  能
系统错误信息 
用  法
void perror(char *string); 
程序例

#include <stdio.h> 

int main(void

   
FILE *fp

   
fp fopen("perror.dat""r"); 
   if (!
fp
      
perror("Unable to open file for reading"); 
   return 
0

   
   

函数名pieslice 
功  能
绘制并填充一个扇形 
用  法
void far pieslice(int xint stanleint endangleint radius); 
程序例

#include <graphics.h> 
#include <stdlib.h> 
#include <stdio.h> 
#include <conio.h> 

int main(void

   
/* request auto detection */ 
   
int gdriver DETECTgmodeerrorcode
   
int midxmidy
   
int stangle 45endangle 135radius 100

   
/* 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

   
/* set fill style and draw a pie slice */ 
   
setfillstyle(EMPTY_FILLgetmaxcolor()); 
   
pieslice(midxmidystangleendangleradius); 

   
/* clean up */ 
   
getch(); 
   
closegraph(); 
   return 
0

   
   

函数名poke 
功  能
存值到一个给定存储单元 
用  法
void poke(int segmentint offsetint value); 
程序例

#include <dos.h> 
#include <conio.h> 

int main(void

   
clrscr(); 
   
cprintf("Make sure the scroll lock key is off and press any key\r\n"); 
   
getch(); 
   
poke(0x0000,0x0417,16); 
   
cprintf("The scroll lock is now on\r\n"); 
   return 
0

   
   

函数名pokeb 
功  能
存值到一个给定存储单元 
用  法
void pokeb(int segmentint offsetchar value); 
程序例

#include <dos.h> 
#include <conio.h> 

int main(void

   
clrscr(); 
   
cprintf("Make sure the scroll lock key is off and press any key\r\n"); 
   
getch(); 
   
pokeb(0x0000,0x0417,16); 
   
cprintf("The scroll lock is now on\r\n"); 
   return 
0

   
   

函数名poly 
功  能
根据参数产生一个多项式 
用  法
double poly(double xint ndouble c[]); 
程序例

#include <stdio.h> 
#include <math.h> 

/* polynomial:  x**3 - 2x**2 + 5x - 1 */ 

int main(void

   
double array[] = { -1.05.0, -2.01.0 }; 
   
double result

   
result poly(2.03, array); 
   
printf("The polynomial: x**3 - 2.0x**2 + 5x - 1 at 2.0 is %lf\n"
           
result); 
   return 
0

   
   

函数名pow 
功  能
指数函数(x的y次方
用  法double pow(double xdouble y); 
程序例

#include <math.h> 
#include <stdio.h> 

int main(void

   
double x 2.03.0

   
printf("%lf raised to %lf is %lf\n"xypow(xy)); 
   return 
0

   

函数名pow10 
功  能
指数函数(10的p次方
用  法double pow10(int p); 
程序例

#include <math.h> 
#include <stdio.h> 

int main(void

   
double p 3.0

   
printf("Ten raised to %lf is %lf\n"ppow10(p)); 
   return 
0

   
   

函数名printf 
功  能
产生格式化输出的函数 
用  法
int printf(char *format...); 
程序例

#include <stdio.h> 
#include <string.h> 

#define I 555 
#define R 5.5 

int main(void

   
int i,j,k,l
   
char buf[7]; 
   
char *prefix buf
   
char tp[20]; 
   
printf("prefix  6d      6o      8x        10.2e        " 
          "10.2f\n"
); 
   
strcpy(prefix,"%"); 
   for (
02i++) 
   { 
      for (
02j++) 
         for (
02k++) 
     for (
02l++) 
            { 
               if (
i==0)  strcat(prefix,"-"); 
               if (
j==0)  strcat(prefix,"+"); 
               if (
k==0)  strcat(prefix,"#"); 
               if (
l==0)  strcat(prefix,"0"); 
               
printf("%5s |",prefix); 
               
strcpy(tp,prefix); 
               
strcat(tp,"6d |"); 
               
printf(tp,I); 
               
strcpy(tp,""); 
               
strcpy(tp,prefix); 
               
strcat(tp,"6o |"); 
               
printf(tp,I); 
               
strcpy(tp,""); 
               
strcpy(tp,prefix); 
               
strcat(tp,"8x |"); 
               
printf(tp,I); 
               
strcpy(tp,""); 
               
strcpy(tp,prefix); 
        
strcat(tp,"10.2e |"); 
        
printf(tp,R); 
        
strcpy(tp,prefix); 
        
strcat(tp,"10.2f |"); 
        
printf(tp,R); 
        
printf("  \n"); 
        
strcpy(prefix,"%"); 
     } 
       } 
   return 
0

   
   

函数名putc 
功  能
输出一字符到指定流中 
用  法
int putc(int chFILE *stream); 
程序例

#include <stdio.h> 

int main(void

   
char msg[] = "Hello world\n"
   
int i 0

   while (
msg[i]) 
      
putc(msg[i++], stdout); 
   return 
0

   
   

函数名putch 
功  能
输出字符到控制台 
用  法
int putch(int ch); 
程序例

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

int main(void

   
char ch 0

   
printf("Input a string:"); 
   while ((
ch != '\r')) 
   { 
      
ch getch(); 
      
putch(ch); 
   } 
   return 
0

   
   

函数名putchar 
功  能
在stdout上输出字符 
用  法
int putchar(int ch); 
程序例

#include <stdio.h> 

/* define some box-drawing characters */ 
#define LEFT_TOP  0xDA 
#define RIGHT_TOP 0xBF 
#define HORIZ     0xC4 
#define VERT      0xB3 
#define LEFT_BOT  0xC0 
#define RIGHT_BOT 0xD9 

int main(void

   
char ij

   
/* draw the top of the box */ 
   
putchar(LEFT_TOP); 
   for (
i=0i<10i++) 
      
putchar(HORIZ); 
   
putchar(RIGHT_TOP); 
   
putchar('\n'); 

   
/* draw the middle */ 
   
for (i=0i<4i++) 
   { 
      
putchar(VERT); 
      for (
j=0j<10j++) 
         
putchar(' '); 
      
putchar(VERT); 
      
putchar('\n'); 
   } 

   
/* draw the bottom */ 
   
putchar(LEFT_BOT); 
   for (
i=0i<10i++) 
      
putchar(HORIZ); 
   
putchar(RIGHT_BOT); 
   
putchar('\n'); 

   return 
0

   
   

函数名putenv 
功  能
把字符串加到当前环境中 
用  法
int putenv(char *envvar); 
程序例

#include <stdio.h> 
#include <stdlib.h> 
#include <alloc.h> 
#include <string.h> 
#include <dos.h> 

int main(void

   
char *path, *ptr
   
int i 0

   
/* get the current path environment */ 
   
ptr getenv("PATH"); 

   
/* set up new path */ 
   
path malloc(strlen(ptr)+15); 
   
strcpy(path,"PATH="); 
   
strcat(path,ptr); 
   
strcat(path,";c:\\temp"); 

   
/* replace the current path and display current environment */ 
   
putenv(path); 
   while (
environ[i]) 
       
printf("%s\n",environ[i++]); 

   return 
0

   
   

函数名putimage 
功  能
在屏幕上输出一个位图 
用  法
void far putimage(int xint yvoid far *bitmapint op); 
程序例

#include <graphics.h> 
#include <stdlib.h> 
#include <stdio.h> 
#include <conio.h> 

#define ARROW_SIZE 10 

void draw_arrow(int xint y); 

int main(void

   
/* request autodetection */ 
   
int gdriver DETECTgmodeerrorcode
   
void *arrow
   
int xymaxx
   
unsigned int size

   
/* 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 */ 
   


   
maxx getmaxx(); 
   
0
   
getmaxy() / 2

   
/* draw the image to be grabbed */ 
   
draw_arrow(xy); 

   
/* calculate the size of the image */ 
   
size imagesize(xy-ARROW_SIZEx+(4*ARROW_SIZE), y+ARROW_SIZE); 

   
/* allocate memory to hold the image */ 
   
arrow malloc(size); 

   
/* grab the image */ 
   
getimage(xy-ARROW_SIZEx+(4*ARROW_SIZE), y+ARROW_SIZEarrow); 

   
/* repeat until a key is pressed */ 
   
while (!kbhit()) 
   { 
      
/* erase old image */ 
      
putimage(xy-ARROW_SIZEarrowXOR_PUT); 

      
+= ARROW_SIZE
      if (
>= maxx
          
0

      
/* plot new image */ 
      
putimage(xy-ARROW_SIZEarrowXOR_PUT); 
   } 

   
/* clean up */ 
   
free(arrow); 
   
closegraph(); 
   return 
0


void draw_arrow(int xint y

   
/* draw an arrow on the screen */ 
   
moveto(xy); 
   
linerel(4*ARROW_SIZE0); 
   
linerel(-2*ARROW_SIZE, -1*ARROW_SIZE); 
   
linerel(02*ARROW_SIZE); 
   
linerel(2*ARROW_SIZE, -1*ARROW_SIZE); 

   
   

函数名putpixel 
功  能
在指定位置画一像素 
用  法
void far putpixel (int xint yint pixelcolor); 
程序例

#include <graphics.h> 
#include <stdlib.h> 
#include <stdio.h> 
#include <conio.h> 
#include <dos.h> 

#define PIXEL_COUNT 1000 
#define DELAY_TIME  100  /* in milliseconds */ 

int main(void

   
/* request autodetection */ 
   
int gdriver DETECTgmodeerrorcode
   
int ixycolormaxxmaxymaxcolorseed

   
/* 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 */ 
   


   
maxx getmaxx() + 1
   
maxy getmaxy() + 1
   
maxcolor getmaxcolor() + 1

   while (!
kbhit()) 
   { 
      
/* seed the random number generator */ 
      
seed random(32767); 
      
srand(seed); 
      for (
i=0i<PIXEL_COUNTi++) 
      { 
  
random(maxx); 
         
random(maxy); 
         
color random(maxcolor); 
         
putpixel(xycolor); 
      } 

      
delay(DELAY_TIME); 
      
srand(seed); 
      for (
i=0i<PIXEL_COUNTi++) 
      { 
  
random(maxx); 
  
random(maxy); 
  
color random(maxcolor); 
  if (
color == getpixel(xy)) 
     
putpixel(xy0); 
      } 
   } 

   
/* clean up */ 
   
getch(); 
   
closegraph(); 
   return 
0

   
   

函数名puts 
功  能
送一字符串到流中 
用  法
int puts(char *string); 
程序例

#include <stdio.h> 
int main(void

   
char string[] = "This is an example output string\n"

   
puts(string); 
   return 
0

   
   

函数名puttext 
功  能
将文本从存储区拷贝到屏幕 
用  法
int puttext(int leftint topint rightint bottomvoid *source); 
程序例

#include <conio.h> 
int main(void

   
char buffer[512]; 

   
/* put some text to the console */ 
   
clrscr(); 
   
gotoxy(2012); 
   
cprintf("This is a test.  Press any key to continue ..."); 
   
getch(); 

   
/* grab screen contents */ 
   
gettext(20123621,buffer); 
   
clrscr(); 

   
/* put selected characters back to the screen */ 
   
gotoxy(2012); 
   
puttext(20123621buffer); 
   
getch(); 

   return 
0

   
   

函数名putw 
功  能
把一字符或字送到流中 
用  法
int putw(int wFILE *stream); 
程序例

#include <stdio.h> 
#include <stdlib.h> 

#define FNAME "test.$$$" 

int main(void

   
FILE *fp
   
int word

   
/* place the word in a file */ 
   
fp fopen(FNAME"wb"); 
   if (
fp == NULL
   { 
      
printf("Error opening file %s\n"FNAME); 
      exit(
1); 
   } 

   
word 94
   
putw(word,fp); 
   if (
ferror(fp)) 
       
printf("Error writing to file\n"); 
   else 
       
printf("Successful write\n"); 
   
fclose(fp); 

   
/* reopen the file */ 
   
fp fopen(FNAME"rb"); 
   if (
fp == NULL
   { 
      
printf("Error opening file %s\n"FNAME); 
      exit(
1); 
   } 

   
/* extract the word */ 
   
word getw(fp); 
   if (
ferror(fp)) 
       
printf("Error reading file\n"); 
   else 
       
printf("Successful read: word = %d\n"word); 

   
/* clean up */ 
   
fclose(fp); 
   
unlink(FNAME); 

   return 
0

  kj501 当前离线  
发表新主题 关闭主题


主题工具

发帖规则
您 [不可以] 发表新主题
您 [不可以] 回复主题
您 [不可以] 上传附件
您 [不可以] 编辑您的帖子

已 [启用] BB 代码
已 [启用] 表情符号
已 [启用] IMG 代码
已 [禁用] HTML 代码
[论坛跳转…]


所有时间均为[北京时间]。现在的时间是 13:04


Powered by vBulletin 版本 3.6.8
版权所有 ©2000 - 2010, Jelsoft Enterprises Ltd.
官方中文技术支持: vBulletin 中文
版权所有 ©2002 - 2009, LinuxSir.Org