C语言for函数标准问题,C语言标准函数库<6>

函数名: nosound

能: 关闭PC扬声器

法: void

nosound(void);

191

程序例:

int main(void)

{

sound(7);

delay(10000);

nosound();

}

O

函数名: open

能:

打开一个文件用于读或写

法: int open(char *pathname, int

access[, int permiss]);

程序例:

#include

#include

#include

#include

int main(void)

{

int handle;

char msg[] = "Hello

world";

192

if ((handle = open("TEST.$$$",

O_CREAT | O_TEXT)) == -1)

{

perror("Error:");

return 1;

}

write(handle, msg,

strlen(msg));

close(handle);

return 0;

}

函数名: outport

能: 输出整数到硬件端口中

法: void outport(int port, int

value);

程序例:

#include

#include

int main(void)

{

int value = 64;

int port = 0;

outportb(port, value);

printf("Value %d sent to port number

%d\n", value, port);

return 0;

}

函数名: outportb

能: 输出字节到硬件端口中

法: void outportb(int port, char

byte);

程序例:

#include

#include

193

int main(void)

{

int value = 64;

int port = 0;

outportb(port, value);

printf("Value %d sent to port number

%d\n", value, port);

return 0;

}

函数名: outtext

能: 在视区显示一个字符串

法: void far outtext(char far

*textstring);

程序例:

#include

#include

#include

#include

int main(void)

{

int gdriver = DETECT, gmode,

errorcode;

int midx, midy;

initgraph(&gdriver,

&gmode, "");

errorcode = graphresult();

if (errorcode != grOk)

{

printf("Graphics error:

%s\n",grapherrormsg(errorcode));

printf("Press any key to

halt:");

getch();

exit(1);

}

194

midx = getmaxx() / 2;

midy = getmaxy() / 2;

moveto(midx, midy);

outtext("This ");

outtext("is ");

outtext("a ");

outtext("test.");

getch();

closegraph();

return 0;

}

函数名: outtextxy

能:

在指定位置显示一字符串

法: void far outtextxy(int x,

int y, char *textstring);

程序例:

#include

#include

#include

#include

int main(void)

{

int gdriver = DETECT, gmode,

errorcode;

int midx, midy;

initgraph( &gdriver,

&gmode, "");

errorcode = graphresult();

if (errorcode != grOk)

195

{

printf("Graphics error:

%s\n",grapherrormsg(errorcode));

printf("Press any key to

halt:");

getch();

exit(1);

}

midx = getmaxx() / 2;

midy = getmaxy() / 2;

outtextxy(midx, midy, "This is a

test.");

getch();

closegraph();

return 0;

}

P

函数名: parsfnm

能: 分析文件名

法: char *parsfnm (char

*cmdline, struct fcb *fcbptr, int option);

程序例:

#include

#include

#include

#include

int main(void)

{

char line[80];

struct fcb blk;

printf("Enter drive and file name (no

path - ie.a:file.dat)\n");

gets(line);

if (parsfnm(line,

&blk, 1) == NULL)

printf("Error in parsfm

call\n");

else

printf("Drive #%d Name: s\n",

blk.fcb_drive, blk.fcb_name);

return 0;

}

函数名: peek

能: 检查存储单元

法: int peek(int segment,

unsigned offset);

程序例:

#include

#include

#include

int main(void)

{

int value = 0;

printf("The current status of your

keyboard is:\n");

value = peek(0x0040,

0x0017);

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");

197

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 segment,

unsigned offset);

程序例:

#include

#include

#include

int main(void)

{

int value = 0;

198

printf("The current status of your

keyboard is:\n");

value = peekb(0x0040,

0x0017);

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;

}

199

函数名: perror

能: 系统错误信息

法: void perror(char

*string);

程序例:

#include

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 x, int

stanle, int endangle, int radius);

程序例:

#include

#include

#include

#include

int main(void)

{

int gdriver = DETECT, gmode,

errorcode;

int midx, midy;

int stangle = 45, endangle = 135,

radius = 100;

initgraph(&gdriver,

&gmode, "");

200

errorcode = graphresult();

if (errorcode != grOk)

{

printf("Graphics error: %s\n",

grapherrormsg(errorcode));

printf("Press any key to

halt:");

getch();

exit(1);

}

midx = getmaxx() / 2;

midy = getmaxy() / 2;

setfillstyle(EMPTY_FILL,

getmaxcolor());

pieslice(midx, midy, stangle,

endangle, radius);

getch();

closegraph();

return 0;

}

函数名: poke

能:

存值到一个给定存储单元

法: void poke(int segment, int

offset, int value);

程序例:

#include

#include

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");

201

return 0;

}

函数名: pokeb

能:

存值到一个给定存储单元

法: void pokeb(int segment, int

offset, char value);

程序例:

#include

#include

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 x, int n,

double c[]);

程序例:

#include

#include

int main(void)

{

double array[] = { -1.0, 5.0, -2.0,

1.0 };

double result;

202

result = poly(2.0, 3,

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 x, double

y);

程序例:

#include

#include

int main(void)

{

double x = 2.0, y = 3.0;

printf("%lf raised to %lf is %lf\n",

x, y, pow(x, y));

return 0;

}

函数名: pow10

能: 指数函数(10的p次方)

法: double pow10(int

p);

程序例:

#include

#include

int main(void)

{

double p = 3.0;

printf("Ten raised to %lf is %lf\n",

p, pow10(p));

return 0;

}

203

函数名: printf

能: 产生格式化输出的函数

法: int printf(char

*format...);

程序例:

#include

#include

#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 (i = 0; i < 2;

i++)

{

for (j = 0; j < 2;

j++)

for (k = 0; k < 2;

k++)

for (l = 0; l < 2;

l++)

{

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,"");

204

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 ch, FILE

*stream);

程序例:

#include

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);

205

程序例:

#include

#include

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

#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 i, j;

putchar(LEFT_TOP);

for (i=0; i<10;

i++)

206

putchar(HORIZ);

putchar(RIGHT_TOP);

putchar('\n');

for (i=0; i<4;

i++)

{

putchar(VERT);

for (j=0; j<10;

j++)

putchar(' ');

putchar(VERT);

putchar('\n');

}

putchar(LEFT_BOT);

for (i=0; i<10;

i++)

putchar(HORIZ);

putchar(RIGHT_BOT);

putchar('\n');

return 0;

}

函数名: putenv

能:

把字符串加到当前环境中

法: int putenv(char

*envvar);

程序例:

#include

#include

#include

#include

#include

int main(void)

{

char *path, *ptr;

int i = 0;

207

ptr = getenv("PATH");

path =

malloc(strlen(ptr)+15);

strcpy(path,"PATH=");

strcat(path,ptr);

strcat(path,";c:\\temp");

putenv(path);

while (environ[i])

printf("%s\n",environ[i++]);

return 0;

}

函数名: putimage

能: 在屏幕上输出一个位图

法: void far putimage(int x, int

y, void far *bitmap, int op);

程序例:

#include

#include

#include

#include

#define ARROW_SIZE 10

void draw_arrow(int x, int

y);

int main(void)

{

int gdriver = DETECT, gmode,

errorcode;

void *arrow;

int x, y, maxx;

unsigned int size;

208

initgraph(&gdriver,

&gmode, "");

errorcode = graphresult();

if (errorcode != grOk)

{

printf("Graphics error:

%s\n",grapherrormsg(errorcode));

printf("Press any key to

halt:");

getch();

exit(1);

}

maxx = getmaxx();

x = 0;

y = getmaxy() / 2;

draw_arrow(x, y);

size = imagesize(x, y-ARROW_SIZE,

x+(4*ARROW_SIZE),

y+ARROW_SIZE);

arrow = malloc(size);

getimage(x, y-ARROW_SIZE,

x+(4*ARROW_SIZE), y+ARROW_SIZE, arrow);

while (!kbhit())

{

putimage(x, y-ARROW_SIZE, arrow,

XOR_PUT);

x += ARROW_SIZE;

if (x >=

maxx)

x = 0;

putimage(x, y-ARROW_SIZE, arrow,

XOR_PUT);

}

free(arrow);

closegraph();

return 0;

}

void draw_arrow(int x, int

y)

{

moveto(x, y);

linerel(4*ARROW_SIZE, 0);

linerel(-2*ARROW_SIZE,

-1*ARROW_SIZE);

linerel(0, 2*ARROW_SIZE);

linerel(2*ARROW_SIZE,

-1*ARROW_SIZE);

}

函数名: putpixel

能: 在指定位置画一像素

法: void far putpixel (int x,

int y, int pixelcolor);

程序例:

#include

#include

#include

#include

#include

#define PIXEL_COUNT 1000

#define DELAY_TIME 100

int main(void)

{

int gdriver = DETECT, gmode,

errorcode;

int i, x, y, color, maxx, maxy,

maxcolor, seed;

210

initgraph(&gdriver,

&gmode, "");

errorcode = graphresult();

if (errorcode != grOk)

{

printf("Graphics error:

%s\n",grapherrormsg(errorcode));

printf("Press any key to

halt:");

getch();

exit(1);

}

maxx = getmaxx() + 1;

maxy = getmaxy() + 1;

maxcolor = getmaxcolor() +

1;

while (!kbhit())

{

seed = random(32767);

srand(seed);

for (i=0; i

{

x = random(maxx);

y = random(maxy);

color = random(maxcolor);

putpixel(x, y, color);

}

delay(DELAY_TIME);

srand(seed);

for (i=0; i

{

x = random(maxx);

y = random(maxy);

color = random(maxcolor);

if (color == getpixel(x,

y))

putpixel(x, y, 0);

}

211

}

getch();

closegraph();

return 0;

}

函数名: puts

能: 送一字符串到流中

法: int puts(char

*string);

程序例:

#include

int main(void)

{

char string[] = "This is an example

output string\n";

puts(string);

return 0;

}

函数名: puttext

能:

将文本从存储区拷贝到屏幕

法: int puttext(int left, int

top, int right, int bottom,

void *source);

程序例:

#include

int main(void)

{

char buffer[512];

clrscr();

gotoxy(20, 12);

cprintf("This is a test. Press any

key to continue ...");

212

getch();

gettext(20, 12, 36,

21,buffer);

clrscr();

gotoxy(20, 12);

puttext(20, 12, 36, 21,

buffer);

getch();

return 0;

}

函数名: putw

能: 把一字符或字送到流中

法: int putw(int w, FILE

*stream);

程序例:

#include

#include

#define FNAME "test.$$$"

int main(void)

{

FILE *fp;

int word;

fp = fopen(FNAME, "wb");

if (fp == NULL)

{

printf("Error opening file %s\n",

FNAME);

exit(1);

}

word = 94;

putw(word,fp);

if (ferror(fp))

213

printf("Error writing to

file\n");

else

printf("Successful

write\n");

fclose(fp);

fp = fopen(FNAME, "rb");

if (fp == NULL)

{

printf("Error opening file %s\n",

FNAME);

exit(1);

}

word = getw(fp);

if (ferror(fp))

printf("Error reading

file\n");

else

printf("Successful read: word =

%d\n", word);

fclose(fp);

unlink(FNAME);

return 0;

}

Q

函数名: qsort

能:

使用快速排序例程进行排序

法: void qsort(void *base, int

nelem, int width, int

(*fcmp)());

程序例:

#include

#include

#include

int sort_function( const void *a,

const void *b);

214

char list[5][4] = { "cat", "car",

"cab", "cap", "can" };

int main(void)

{

int x;

qsort((void *)list, 5,

sizeof(list[0]), sort_function);

for (x = 0; x < 5;

x++)

printf("%s\n", list[x]);

return 0;

}

int sort_function( const void *a,

const void *b)

{

return( strcmp(a,b) );

}

R

函数名: raise

能:

向正在执行的程序发送一个信号

法: int raise(int

sig);

程序例:

#include

int main(void)

{

int a, b;

a = 10;

b = 0;

if (b == 0)

raise(SIGFPE);

a = a / b;

return 0;

215

}

函数名: rand

能: 随机数发生器

法: void

rand(void);

程序例:

#include

#include

int main(void)

{

int i;

printf("Ten random numbers from 0 to

99\n\n");

for(i=0; i<10;

i++)

printf("%d\n", rand() %

100);

return 0;

}

函数名: randbrd

能: 随机块读

法: int randbrd(struct fcb

*fcbptr, int reccnt);

程序例:

#include

#include

#include

#include

int main(void)

{

char far *save_dta;

char line[80],

buffer[256];

struct fcb blk;

int i, result;

216

printf("Enter drive and file name (no

path - i.e.a:file.dat)\n");

gets(line);

if (!parsfnm(line,

&blk, 1))

{

printf("Error in call to

parsfnm\n");

exit(1);

}

printf("Drive #%d File: %s\n\n",

blk.fcb_drive, blk.fcb_name);

bdosptr(0x0F, &blk,

0);

save_dta = getdta();

setdta(buffer);

blk.fcb_recsize = 128;

blk.fcb_random = 0L;

result =

randbrd(&blk, 1);

if (!result)

printf("Read OK\n\n");

else

{

perror("Error during

read");

exit(1);

}

printf("The first 128 characters

are:\n");

for (i=0; i<128;

i++)

putchar(buffer[i]);

setdta(save_dta);

217

return 0;

}

函数名: randbwr

能: 随机块写

法: int randbwr(struct fcp

*fcbptr, int reccnt);

程序例:

#include

#include

#include

#include

int main(void)

{

char far *save_dta;

char line[80];

char buffer[256] = "RANDBWR

test!";

struct fcb blk;

int result;

printf("Enter a file name to create

(no path - ie. a:file.dat\n");

gets(line);

parsfnm(line,&blk,1);

printf("Drive #%d File: %s\n",

blk.fcb_drive, blk.fcb_name);

if (bdosptr(0x16,

&blk, 0) == -1)

{

perror("Error creating

file");

exit(1);

}

save_dta = getdta();

218

setdta(buffer);

blk.fcb_recsize = 256;

blk.fcb_random = 0L;

result =

randbwr(&blk, 1);

if (!result)

printf("Write OK\n");

else

{

perror("Disk error");

exit(1);

}

if (bdosptr(0x10,

&blk, 0) == -1)

{

perror("Error closing

file");

exit(1);

}

setdta(save_dta);

return 0;

}

函数名: random

能: 随机数发生器

法: int random(int

num);

程序例:

#include

#include

#include

int main(void)

{

219

randomize();

printf("Random number in the 0-99

range: %d\n", random (100));

return 0;

}

函数名: randomize

能: 初始化随机数发生器

法: void

randomize(void);

程序例:

#include

#include

#include

int main(void)

{

int i;

randomize();

printf("Ten random numbers from 0 to

99\n\n");

for(i=0; i<10;

i++)

printf("%d\n", rand() %

100);

return 0;

}

函数名: read

能: 从文件中读

法: int read(int handle, void

*buf, int nbyte);

程序例:

#include

#include

#include

#include

#include

#include

220

int main(void)

{

void *buf;

int handle, bytes;

buf = malloc(10);

if ((handle =

open("TEST.$$$", O_RDONLY | O_BINARY,

S_IWRITE | S_IREAD))

== -1)

{

printf("Error Opening

File\n");

exit(1);

}

if ((bytes = read(handle, buf, 10))

== -1) {

printf("Read Failed.\n");

exit(1);

}

else {

printf("Read: %d bytes read.\n",

bytes);

}

return 0;

}

函数名: realloc

能: 重新分配主存

法: void *realloc(void *ptr,

unsigned newsize);

程序例:

#include

#include

221

#include

int main(void)

{

char *str;

str = malloc(10);

strcpy(str, "Hello");

printf("String is %s\n Address is

%p\n", str, str);

str = realloc(str, 20);

printf("String is %s\n New address is

%p\n", str, str);

free(str);

return 0;

}

函数名: rectangle

能: 画一个矩形

法: void far rectangle(int left,

int top, int right, int bottom);

程序例:

#include

#include

#include

#include

int main(void)

{

int gdriver = DETECT, gmode,

errorcode;

int left, top, right,

bottom;

initgraph(&gdriver,

&gmode, "");

errorcode = graphresult();

if (errorcode != grOk)

{

printf("Graphics error: %s\n",

grapherrormsg(errorcode));

printf("Press any key to

halt:");

getch();

exit(1);

}

left = getmaxx() / 2 - 50;

top = getmaxy() / 2 - 50;

right = getmaxx() / 2 +

50;

bottom = getmaxy() / 2 +

50;

rectangle(left,top,right,bottom);

getch();

closegraph();

return 0;

}

函数名: registerbgidriver

能:

登录已连接进来的图形驱动程序代码

法: int

registerbgidriver(void(*driver)(void));

程序例:

#include

#include

#include

#include

int main(void)

{

223

int gdriver = DETECT, gmode,

errorcode;

errorcode =

registerbgidriver(EGAVGA_driver);

if (errorcode <

0)

{

printf("Graphics error:

%s\n",grapherrormsg(errorcode));

printf("Press any key to

halt:");

getch();

exit(1);

}

initgraph(&gdriver,

&gmode, "");

errorcode = graphresult();

if (errorcode != grOk)

{

printf("Graphics error: %s\n",

grapherrormsg(errorcode));

printf("Press any key to

halt:");

getch();

exit(1);

}

line(0, 0, getmaxx(),

getmaxy());

getch();

closegraph();

return 0;

}

函数名: remove

能: 删除一个文件

224

法: int remove(char

*filename);

程序例:

#include

int main(void)

{

char file[80];

printf("File to delete:

");

gets(file);

if (remove(file) == 0)

printf("Removed

%s.\n",file);

else

perror("remove");

return 0;

}

函数名: rename

能: 重命名文件

法: int rename(char *oldname,

char *newname);

程序例:

#include

int main(void)

{

char oldname[80],

newname[80];

printf("File to rename:

");

gets(oldname);

printf("New name: ");

gets(newname);

225

if (rename(oldname, newname) ==

0)

printf("Renamed %s to %s.\n",

oldname, newname);

else

perror("rename");

return 0;

}

函数名: restorecrtmode

能:

将屏幕模式恢复为先前的imitgraph设置

法: void far

restorecrtmode(void);

程序例:

#include

#include

#include

#include

int main(void)

{

int gdriver = DETECT, gmode,

errorcode;

int x, y;

initgraph(&gdriver,

&gmode, "");

errorcode = graphresult();

if (errorcode != grOk)

{

printf("Graphics error: %s\n",

grapherrormsg(errorcode));

printf("Press any key to

halt:");

getch();

exit(1);

}

x = getmaxx() / 2;

226

y = getmaxy() / 2;

settextjustify(CENTER_TEXT,

CENTER_TEXT);

outtextxy(x, y, "Press any key to

exit graphics:");

getch();

restorecrtmode();

printf("We're now in text

mode.\n");

printf("Press any key to return to

graphics mode:");

getch();

setgraphmode(getgraphmode());

settextjustify(CENTER_TEXT,

CENTER_TEXT);

outtextxy(x, y, "We're back in

graphics mode.");

outtextxy(x, y+textheight("W"),

"Press any key to halt:");

getch();

closegraph();

return 0;

}

函数名: rewind

能:

将文件指针重新指向一个流的开头

法: int rewind(FILE

*stream);

程序例:

#include

#include

int main(void)

{

FILE *fp;

char *fname = "TXXXXXX", *newname,

first;

227

newname = mktemp(fname);

fp = fopen(newname,"w+");

fprintf(fp,"abcdefghijklmnopqrstuvwxyz");

rewind(fp);

fscanf(fp,"%c",&first);

printf("The first character is:

%c\n",first);

fclose(fp);

remove(newname);

return 0;

}

函数名: rmdir

能: 删除DOS文件目录

法: int rmdir(char

*stream);

程序例:

#include

#include

#include

#include

#define DIRNAME

"testdir.$$$"

int main(void)

{

int stat;

stat = mkdir(DIRNAME);

if (!stat)

printf("Directory

created\n");

else

{

printf("Unable to create

directory\n");

exit(1);

}

getch();

system("dir/p");

228

getch();

stat = rmdir(DIRNAME);

if (!stat)

printf("\nDirectory

deleted\n");

else

{

perror("\nUnable to delete

directory\n");

exit(1);

}

return 0;

}

函数名: raise

能:

向正在执行的程序发送一个信号

法: int raise(int

sig);

程序例:

#include

int main(void)

{

int a, b;

a = 10;

b = 0;

if (b == 0)

raise(SIGFPE);

a = a / b;

return 0;

}

229

函数名: rand

能: 随机数发生器

法: void

rand(void);

程序例:

#include

#include

int main(void)

{

int i;

printf("Ten random numbers from 0 to

99\n\n");

for(i=0; i<10;

i++)

printf("%d\n", rand() %

100);

return 0;

}

函数名: randbrd

能: 随机块读

法: int randbrd(struct fcb

*fcbptr, int reccnt);

程序例:

#include

#include

#include

#include

int main(void)

{

char far *save_dta;

char line[80],

buffer[256];

struct fcb blk;

int i, result;

printf("Enter drive and file name (no

path - i.e.a:file.dat)\n");

gets(line);

230

if (!parsfnm(line,

&blk, 1))

{

printf("Error in call to

parsfnm\n");

exit(1);

}

printf("Drive #%d File: %s\n\n",

blk.fcb_drive, blk.fcb_name);

bdosptr(0x0F, &blk,

0);

save_dta = getdta();

setdta(buffer);

blk.fcb_recsize = 128;

blk.fcb_random = 0L;

result =

randbrd(&blk, 1);

if (!result)

printf("Read OK\n\n");

else

{

perror("Error during

read");

exit(1);

}

printf("The first 128 characters

are:\n");

for (i=0; i<128;

i++)

putchar(buffer[i]);

setdta(save_dta);

return 0;

}

231

函数名: randbwr

能: 随机块写

法: int randbwr(struct fcp

*fcbptr, int reccnt);

程序例:

#include

#include

#include

#include

int main(void)

{

char far *save_dta;

char line[80];

char buffer[256] = "RANDBWR

test!";

struct fcb blk;

int result;

printf("Enter a file name to create

(no path - ie. a:file.dat\n");

gets(line);

parsfnm(line,&blk,1);

printf("Drive #%d File: %s\n",

blk.fcb_drive, blk.fcb_name);

if (bdosptr(0x16,

&blk, 0) == -1)

{

perror("Error creating

file");

exit(1);

}

save_dta = getdta();

setdta(buffer);

blk.fcb_recsize = 256;

232

blk.fcb_random = 0L;

result =

randbwr(&blk, 1);

if (!result)

printf("Write OK\n");

else

{

perror("Disk error");

exit(1);

}

if (bdosptr(0x10,

&blk, 0) == -1)

{

perror("Error closing

file");

exit(1);

}

setdta(save_dta);

return 0;

}

函数名: random

能: 随机数发生器

法: int random(int

num);

程序例:

#include

#include

#include

int main(void)

{

randomize();

printf("Random number in the 0-99

range: %d\n", random (100));

return 0;

233

}

函数名: randomize

能: 初始化随机数发生器

法: void

randomize(void);

程序例:

#include

#include

#include

int main(void)

{

int i;

randomize();

printf("Ten random numbers from 0 to

99\n\n");

for(i=0; i<10;

i++)

printf("%d\n", rand() %

100);

return 0;

}

函数名: read

能: 从文件中读

法: int read(int handle, void

*buf, int nbyte);

程序例:

#include

#include

#include

#include

#include

#include

int main(void)

{

void *buf;

234

int handle, bytes;

buf = malloc(10);

if ((handle =

open("TEST.$$$", O_RDONLY | O_BINARY,

S_IWRITE | S_IREAD))

== -1)

{

printf("Error Opening

File\n");

exit(1);

}

if ((bytes = read(handle, buf, 10))

== -1) {

printf("Read Failed.\n");

exit(1);

}

else {

printf("Read: %d bytes read.\n",

bytes);

}

return 0;

}

函数名: realloc

能: 重新分配主存

法: void *realloc(void *ptr,

unsigned newsize);

程序例:

#include

#include

#include

int main(void)

{

235

char *str;

str = malloc(10);

strcpy(str, "Hello");

printf("String is %s\n Address is

%p\n", str, str);

str = realloc(str, 20);

printf("String is %s\n New address is

%p\n", str, str);

free(str);

return 0;

}

函数名: rectangle

能: 画一个矩形

法: void far rectangle(int left,

int top, int right, int bottom);

程序例:

#include

#include

#include

#include

int main(void)

{

int gdriver = DETECT, gmode,

errorcode;

int left, top, right,

bottom;

initgraph(&gdriver,

&gmode, "");

errorcode = graphresult();

236

if (errorcode != grOk)

{

printf("Graphics error: %s\n",

grapherrormsg(errorcode));

printf("Press any key to

halt:");

getch();

exit(1);

}

left = getmaxx() / 2 - 50;

top = getmaxy() / 2 - 50;

right = getmaxx() / 2 +

50;

bottom = getmaxy() / 2 +

50;

rectangle(left,top,right,bottom);

getch();

closegraph();

return 0;

}

函数名: registerbgidriver

能:

登录已连接进来的图形驱动程序代码

法: int

registerbgidriver(void(*driver)(void));

程序例:

#include

#include

#include

#include

int main(void)

{

int gdriver = DETECT, gmode,

errorcode;

errorcode =

registerbgidriver(EGAVGA_driver);

237

if (errorcode <

0)

{

printf("Graphics error: %s\n",

grapherrormsg(errorcode));

printf("Press any key to

halt:");

getch();

exit(1);

}

initgraph(&gdriver,

&gmode, "");

errorcode = graphresult();

if (errorcode != grOk)

{

printf("Graphics error: %s\n",

grapherrormsg(errorcode));

printf("Press any key to

halt:");

getch();

exit(1);

}

line(0, 0, getmaxx(),

getmaxy());

getch();

closegraph();

return 0;

}

函数名: remove

能: 删除一个文件

法: int remove(char

*filename);

程序例:

#include

238

int main(void)

{

char file[80];

printf("File to delete:

");

gets(file);

if (remove(file) == 0)

printf("Removed

%s.\n",file);

else

perror("remove");

return 0;

}

函数名: rename

能: 重命名文件

法: int rename(char *oldname,

char *newname);

程序例:

#include

int main(void)

{

char oldname[80],

newname[80];

printf("File to rename:

");

gets(oldname);

printf("New name: ");

gets(newname);

if (rename(oldname, newname) ==

0)

printf("Renamed %s to %s.\n",

oldname, newname);

else

perror("rename");

239

return 0;

}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值