C语言库函数 (D类字母)
2010-09-10 12:31:25 来源:WEB开发网核心提示:[ 发表日期:2002-1-4 9:28:46 ]
[ 发表日期:2002-1-4 9:28:46
]
函数名: 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 *graphdriver, int 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 gdriver, gmode, errorcode; /* 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 time2, time_t time1);
程序例: #include <time.h>
#include <stdio.h>
#include <dos.h>
#include <conio.h> int main(void)
{
time_t first, second; 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(INTR, handler); /* loop until the counter exceeds 20 */
while (count < 20)
printf("count is %d\n",count);
/* reset the old interrupt handler */
setvect(INTR, oldhandler); return 0;
} 函数名: div
功 能: 将两个整数相除, 返回商和余数
用 法: div_t (int number, int denom);
程序例: #include <stdlib.h>
#include <stdio.h> div_t x; int main(void)
{
x = div(10,3);
printf("10 div 3 = %d remainder %d\n", x.quot, x.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 (!fp) perror("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 *dateptr, struct 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);
t = dostounix(&d_date, &d_time);
local = localtime(&t);
printf("Time and Date: %s\n", \
asctime(local)); return 0;
} 函数名: drawpoly
功 能: 画多边形
用 法: void far drawpoly(int numpoints, int far *polypoints);
程序例: #include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h> int main(void)
{
/* request auto detection */
int gdriver = DETECT, gmode, errorcode;
int maxx, maxy; /* 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(5, poly); /* 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(msg, strlen(msg), 1, fp); 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 oldhandle, int newhandle);
程序例: #include <sys\stat.h>
#include <string.h>
#include <fcntl.h>
#include <io.h> int main(void)
{
#define STDOUT 1 int nul, oldstdout;
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(nul, STDOUT);
/* close the handle for DUMMY.FIL */
close(nul); /* will be redirected into DUMMY.FIL */
write(STDOUT, msg, strlen(msg)); /* restore original standard output
handle */
dup2(oldstdout, STDOUT); /* close duplicate handle for STDOUT */
close(oldstdout); return 0;
}
函数名: 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 *graphdriver, int 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 gdriver, gmode, errorcode; /* 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 time2, time_t time1);
程序例: #include <time.h>
#include <stdio.h>
#include <dos.h>
#include <conio.h> int main(void)
{
time_t first, second; 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(INTR, handler); /* loop until the counter exceeds 20 */
while (count < 20)
printf("count is %d\n",count);
/* reset the old interrupt handler */
setvect(INTR, oldhandler); return 0;
} 函数名: div
功 能: 将两个整数相除, 返回商和余数
用 法: div_t (int number, int denom);
程序例: #include <stdlib.h>
#include <stdio.h> div_t x; int main(void)
{
x = div(10,3);
printf("10 div 3 = %d remainder %d\n", x.quot, x.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 (!fp) perror("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 *dateptr, struct 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);
t = dostounix(&d_date, &d_time);
local = localtime(&t);
printf("Time and Date: %s\n", \
asctime(local)); return 0;
} 函数名: drawpoly
功 能: 画多边形
用 法: void far drawpoly(int numpoints, int far *polypoints);
程序例: #include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h> int main(void)
{
/* request auto detection */
int gdriver = DETECT, gmode, errorcode;
int maxx, maxy; /* 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(5, poly); /* 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(msg, strlen(msg), 1, fp); 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 oldhandle, int newhandle);
程序例: #include <sys\stat.h>
#include <string.h>
#include <fcntl.h>
#include <io.h> int main(void)
{
#define STDOUT 1 int nul, oldstdout;
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(nul, STDOUT);
/* close the handle for DUMMY.FIL */
close(nul); /* will be redirected into DUMMY.FIL */
write(STDOUT, msg, strlen(msg)); /* restore original standard output
handle */
dup2(oldstdout, STDOUT); /* close duplicate handle for STDOUT */
close(oldstdout); return 0;
}
[]
更多精彩
赞助商链接