-
C
语言库函数参考手册
转载说明:可能有些函数已经过时,但从学习的角度来看,还是有一定的参考价值。
分类函数
,
所在函数库为
ctype.h
int
isalpha(int ch)
若
ch
< br>是字母
('A'-'Z','a'-'z')
返回非
p>
0
值
,
否则返回<
/p>
0
int isalnum(int ch)
若
ch
是字母
('A'-'Z
','a'-'z')
或数字
('0'-'9')
返回非
0
值
,
否则返回
0
int isascii(int ch)
< br>若
ch
是字符
(ASCII
p>
码中的
0-127)
返回非
0
值
,
否则返回
0
int iscntrl(int ch)
若
ch
是作废字符
(0x7F)
或普通控制字符
(0x00-0x1F)
返回非
0
值
,
否则返回
0
int
isdigit(int ch)
若
ch
< br>是数字
('0'-'9')
返回非
0
值
,
否则返回
0
int isgraph(int ch)
若
p>
ch
是可打印字符
(
不含空格
)(0x21-0x7E)
返回非
< br>0
值
,
否则返回
0
int islower(int ch)
若
ch
是小写字母
('a'-'z')<
/p>
返回非
0
值
,<
/p>
否则返回
0
int
isprint(int ch)
若
ch
< br>是可打印字符
(
含空格
)(0x
20-0x7E)
返回非
0
值
,
否则返回
0
int
ispunct(int ch)
若
ch
< br>是标点字符
(0x00-0x1F)
返回非
0
值
,
否则返回
0
int isspace(int ch)
若
ch
是空格
(' '),
水平制表符
('t'),
回车符
('r'),
走纸换行
('f'),
垂直制表符
('v'),
换行符
('n')
返回非
0
值
,
否则返回
0
int
isupper(int ch)
若
ch
< br>是大写字母
('A'-'Z')
返回非
< br>0
值
,
否则返回
0
int isxdigit(int ch)
若
ch
是
16
进
制数
('0'-'9','A'-'F','a'-'f')
返
回非
0
值
,
否则返回
0
int
tolower(int ch)
若
ch
< br>是大写字母
('A'-'Z')
返回相应的小写字母
p>
('a'-'z')
int toupper(int ch)
若
ch
是小写字母
('a'-'z')
返回相应的大写字母
('A'-'Z'
)
数学函数
,
所在函数库为
math.h
、
st
dlib.h
、
string.h
、<
/p>
float.h
int abs(int i)
返回整型参数
i
的绝对值
double cabs(struct complex znum)
返回复数
znum
的绝对值
double fabs(double x)
返回双精度参数
x
的绝对值
long labs(long n)
返回长整型参数
n
的绝对值
double exp(double x)
返回指数函数
ex
的值
double frexp(double value,int
*eptr)
返回
value=x*2n
中
x
的值
,n
存贮在
eptr
中
double ldexp(double value,int exp);
返回
value*2exp
的值
double log(double x)
返回
logex
的值
< br>
double log10(double x)
返回
log10x
的值
double pow(double x,double y)
返回
xy
的值
double pow10(int p)
返回
10p
的值
double sqrt(double x)
返回
+
√
x<
/p>
的值
double
acos(double x)
返回
x
的反余弦
cos-1(x)
值
,x
为弧度
double asin(double x)
返回
x
的反正弦
sin-1(x)
值
,x
为弧度
p>
double atan(double x)
返回
x
的反正切
tan-1(x)
值
,x
为弧度
p>
double atan2(double y,double
x)
返回
y/x
的反
正切
tan-1(x)
值
,y
的
x
为弧度
double cos(double x)
返回
x
的余弦
cos(x)
值
,x
为弧度
double sin(double x)
返回
x
的正弦
sin(x)
值
,x
为弧度
double tan(double x)
返回
x
的正切
tan(x)
值
,x
为弧度
double cosh(double x)
返回
x
的双曲余弦
cosh(x)
值
,x
为弧度
p>
double sinh(double x)
返回
x
的双曲正弦
sinh(x)
值
,x
为弧度
p>
double tanh(double x)
返回
x
的双曲正切
tanh(x)
值
,x
为弧度
p>
double hypot(double x,double
y)
返回直角三角形斜边的长度
(z),
x
和
y
为直角边的长度
,z2=x2+y2
double ceil(double x)
返回不小于
x
的最小整数
double floor(double x)
返回不大于
x
的最大整数
void srand(unsigned seed)
初始化随机数发生器
int
rand()
产生一个随机数并返回这个数
double poly(double x,int n,double
c[])
从参数产生一个多项式
double modf(double value,double *iptr)
将双精度数
value
分解成尾数和阶
double fmod(double
x,double y)
返回
x/y
的余数
double
frexp(double value,int *eptr)
将双精度数
p>
value
分成尾数和阶
double atof(char *nptr)
将字符串
nptr
转换成浮点数并返回
这个浮点数
double atoi(char
*nptr)
将字符串
npt
r
转换成整数并返回这个整数
double atol(char *nptr)
将字符串
nptr
转换成长整数并返回
这个整数
char *ecvt(double
value,int ndigit,int *decpt,int *sign)
将浮点数
value
转换成字符串并返
回该字符串
char *fcvt(double
value,int ndigit,int *decpt,int *sign)
将浮点数
value
转换成字符串并返
回该字符串
char *gcvt(double
value,int ndigit,char *buf)
p>
将数
value
转换成字符串并存于
buf
中
,
并返回<
/p>
buf
的指针
char *ultoa(unsigned long value,char
*string,int radix)
将无符号整型数
value
转换成字符串并返回该字符串
,radix
为转换时所用基数
char *ltoa(long value,char
*string,int radix)
将长整型数
value
转换成字符串并返回该字符串
,radix
为转换时所用基数
char *itoa(int value,char *string,int
radix)
将整数
value
转换成字符串存入
string,radix<
/p>
为转换时所用基数
double
atof(char *nptr)
将字符串
nptr
转换成双精度数
,
并返回这个数
,
错误返回
0
int
atoi(char *nptr)
将字符串
nptr
转换成整型数
,
并返回这个数
,
错误返回
0
long
atol(char *nptr)
将字符串
nptr
转换成长整型数
,
并返回这个数
,
错误返回
0
double strtod(char *str,char **endptr)<
/p>
将字符串
str
转换成双精度数
,
并返回这个数
,
long strtol(char *str,char
**endptr,int base)
将字符串
str
转换成长整型数
,
并返回这个数
,
int
matherr(struct exception *e)
用户修改数学错误返回信息函数
(
没有
必要使用
)
double
_matherr(_mexcep why,char *fun,double *arg1p,
double
*arg2p,double retval)
<
/p>
用户修改数学错误返回信息函数
(
没有必
要使用
)
unsigned int _clear87()
清除浮点状态字并返回原来的浮点状态
void _fpreset()
重新初使化浮点数学程序包
unsigned int _status87()
返回浮点状态字
< br>目录函数
,
所在函数库为
dir
.h
、
dos.h
int
chdir(char *path)
使指定的目录
path
(如
:
)变成当前的工作目录
,
成
功返回
0
int
findfirst(char *pathname,struct ffblk *ffblk,int a
ttrib)
查找指定的文件
,
成功<
/p>
返回
0
pathname
为指定的目录名和文件名
,
如
ffblk
为指定的保存文件信息的
一个结构
,
定义如下
:
┏━━━━━━━━━━━━━━━━━━┓
┃
struct ffblk
┃
┃
{
┃
┃
char ff_reserved[21]; /*DO
S
保留字
*/
┃
┃
char
ff_attrib; /*
文件属性
*/
┃
┃
int ff_ftime;
/*
文件时间
*/
┃
┃
int ff_fdate;
/*
文件日期
*/
┃
┃
long ff_fsize;
/*
文件长度
*/
┃
┃
char ff_name[13];
/*
文件名
*/
┃
┃
}
┃
┗━━━━━━━━━━━━━━━━━━┛
attrib
为文件属性
,
由以下字符代表
┏━━━━━━━━━┳━━━━━━━━┓
┃
FA_RDONLY
只读文件┃
FA_LABEL
卷标号┃
┃
FA_HIDDEN
隐藏文件┃
FA_DIREC
目录
┃
┃
FA_SYSTEM
系统文件┃
FA_ARCH
档案
┃
┗━━━━━━━━━┻━━━━━━━━┛
例
:
struct ffblk ff;
findfirst(
int
findnext(struct ffblk *ffblk)
取匹配<
/p>
finddirst
的文件
,
成功返回
0
void
fumerge(char *path,char *drive,char *dir,char
*name,char *ext)
此函数通
过盘符
drive(C:
、
A:
等
),
路径
dir(
TC
、
BCLIB
等
< br>),
文件名
n
ame(TC
、
WPS
等
),
扩展名
ext(.EXE
、
.COM
等
)
组成一个文件名
存与
path
中
.
int fnsplit(char *path,char
*drive,char *dir,char *name,char *ext)
此函数将文件名
path
分解成盘符<
/p>
drive(C:
、
A:
等
),
路径
dir(TC
p>
、
BCLIB
等
)
,
文件名
name(
TC
、
WPS
等
),
扩展名
ext(.EXE
、
p>
.COM
等
),
并
分别存入相应的变量中
.
int
getcurdir(int drive,char *direc)
此函数返回指定驱动器的当前工作目录名称
drive
指定的驱动器
< br>(0=
当前
,1=A,2=B,3=C
< br>等
)
direc
保存指定驱动器当前工作路径的变量
成功返回
0
char
*getcwd(char *buf,iint n)
此函数取当前工作目录并存入
buf
中
,
直
到
n
个字
节长为为止
.
错误返回
NULL
int getdisk()
取当前
正在使用的驱动器
,
返回一个整数
(0
=A,1=B,2=C
等
)
int
setdisk(int drive)
设置要使用的驱动器
drive(0=A,1=B,2=C
等
),
返回可使用驱动器总数
int mkdir(char *pathname)
建立一个新的目录
pathname,
成功返回
0
int rmdir(char *pathname)
删除一个目录
pathname,
成功返回<
/p>
0
char *mktemp(char
*template)
构造一个当前目录上没有的文件名并存于
template
中
char
*searchpath(char *pathname)
利用
MSDOS
找出文件
filename
所在路径
,
,
此函
数使用
DOS
的
PATH
变量
,
未找到文件返回
NU
LL
进程函数
,
< br>所在函数库为
stdlib.h
、
process.h
void abort()
此函数
通过调用具有出口代码
3
的
_exit
写一个终止信息于
stderr
,
p>
并异常终止程序。无返回值
int
exec
…装入和运行其它程序
int execl( char *pathname,char
*arg0,char *arg1,
…
,char
*argn,NULL)
int execle( char
*pathname,char *arg0,char
*arg1,
…
,
char *argn,NULL,char *envp[])
int
execlp( char *pathname,char *arg0,char
*arg1,
…
,NULL)
int
execlpe(char *pathname,char *arg0,char
*arg1,
…
,NULL,char *envp[])
int execv( char *pathname,char
*argv[])
int execve( char
*pathname,char *argv[],char *envp[])
int execvp( char *pathname,char
*argv[])
int execvpe(char
*pathname,char *argv[],char *envp[])
exec
函数族装入并运行程序
pathname
,并将参数
arg0(ar
g1,arg2,argv[],envp[])
传递给子程序
,
出错返回
-1
p>
在
exec
函数族中
,
后缀
l
、
v
、
p
、
e<
/p>
添加到
exec
后,
所指定的函数将具有某种操作能力
有后缀
p
时,函数可以利用
DOS
的
PATH
变
量查找子程序文件。
l
时,函数中被传递的参数个数固定。
v
时,函数中被传递的参数个数不固定。
e
时,函数传递指定参数
envp
,允许改变子进程的环境,
无后缀
e
时,子进程使用当前程序的环境。
void _exit(int status)
终止当前程序
,
但不清理现场
< br>
void exit(int status)
终
止当前程序
,
关闭所有文件
,
写缓冲区的输出
(
等待输出
),
并调用任何寄存器的
出口函数
无返回值
int
spawn
…运行子程序
int
spawnl( int mode,char *pathname,char *arg0,char
*arg1,
…
,
char *argn,NULL)
int spawnle( int
mode,char *pathname,char *arg0,char
*arg1,
…
,
char *argn,NULL,char *envp[])
int
spawnlp( int mode,char *pathname,char *arg0,char
*arg1,
…
,
char *argn,NULL)
int spawnlpe(int
mode,char *pathname,char *arg0,char
*arg1,
…
,
char *argn,NULL,char *envp[])
int
spawnv( int mode,char *pathname,char *argv[])
int spawnve( int mode,char
*pathname,char *argv[],char *envp[])
int spawnvp( int mode,char
*pathname,char *argv[])
int
spawnvpe(int mode,char *pathname,char *argv[],char
*envp[])
spawn
函数族在
mode
模式下运行子程序
pathname
,
并将参数
arg
0(arg1,arg2,argv[],envp[])
传递给子程序
.
出错返回
-1
mode
为运行模式
mode
为
P_WAIT
表示在子程序运行完后返回本程序
P_NOWAIT
表示在子程序运行时同时运行本程序
(
p>
不可用
)
P_OVERLAY
表示在本程序退出后运行子程序
在
spawn
函数族中
,
后缀
l<
/p>
、
v
、
p
、
e
添加到
spaw
n
后,
所指定的函数将具有某种操作能力
有后缀
p
时
,
函数利用
DOS
的
PATH
查找子程序文件
l
时
,
函数传递的参数个数固定
.
v
时
,
函数传递的参数个数不固定
.
e
时
,
指定参数
envp
可以传递给子程序
,
允许
改变子程序运行环境
.
当无后缀
e
时
,
子程序使用本程序的环境
.
int system(char *command)
将
MSDOS
命令
command
p>
传递给
DOS
执行
转换子程序
,
函数库为
math.h
、
stdli
b.h
、
ctype.h
、
float.h
char *ecvt(double
value,int ndigit,int *decpt,int *sign)
将浮点数
value
转换成字符串并返
回该字符串
char *fcvt(double
value,int ndigit,int *decpt,int *sign)
将浮点数
value
转换成字符串并返
回该字符串
char *gcvt(double
value,int ndigit,char *buf)
p>
将数
value
转换成字符串并存于
buf
中
,
并返回<
/p>
buf
的指针
char *ultoa(unsigned long value,char
*string,int radix)
将无符号整型数
value
转换成字符串并返回该字符串
,radix
为转换时所用基数
char *ltoa(long value,char
*string,int radix)
将长整型数
value
转换成字符串并返回该字符串
,radix
为转换时所用基数
char *itoa(int value,char *string,int
radix)
将整数
value
转换成字符串存入
string,radix<
/p>
为转换时所用基数
double
atof(char *nptr)
将字符串
nptr
转换成双精度数
,
并返回这个数
,
错误返回
0
int
atoi(char *nptr)
将字符串
nptr
转换成整型数
,
并返回这个数
,
错误返回
0
long
atol(char *nptr)
将字符串
nptr
转换成长整型数
,
并返回这个数
,
错误返回
0
double strtod(char *str,char **endptr)<
/p>
将字符串
str
转换成双精度数
,
并返回这个数
,
long strtol(char *str,char
**endptr,int base)
将字符串
str
转换成长整型数
,
并返回这个数
,
int
toascii(int c)
返回
c
< br>相应的
ASCII
int
tolower(int ch)
若
ch
< br>是大写字母
('A'-'Z')
返回相应的小写字母
p>
('a'-'z')
int _tolower(int
ch)
返回
ch
相应的小写字母<
/p>
('a'-'z')
int toupper(int
ch)
若
ch
是小写字母
('a'-'z')
返回相应的大写字母
('A
'-'Z')
int _toupper(int ch)
< br>返回
ch
相应的大写字母
('A
'-'Z')
诊断函数
,
所在函数库为
assert.h
、
math.h
void assert(int test)
一个扩展成
if
语句那样的宏,如果
test
测试失败,
就显示一个信息并异常终止程序
,
无返
回值
void perror(char
*string)
本函数将显示最近一次的错误信息,格式如下:
字符串
string
:
错误信息
char
*strerror(char *str)
本函数返回最近一次的错误信息
,
格式如下
:
字符串
str:
错误信息
int matherr(struct exception
*e)
用户修改数学错误返回信息函数
p>
(
没有必要使用
)
double _matherr(_mexcep why,char
*fun,double *arg1p,
double *arg2p,double retval)
p>
用户修改数学错误返回信息函数
(
没有必要
使用
)
输入输出子程序
,
函数库为
io.h
、<
/p>
conio.h
、
stat.h
、
dos.h
、
std
io.h
、
signal.h
int
kbhit()
本函数返回最近所敲的按键
int fgetchar()
从控制台
(
键盘
)
读一个字符,显示在
屏幕上
int getch()
从控制台
(
键盘
)
读一个字符,不显示在屏幕上
int
putch()
向控制台
(
键
盘
)
写一个字符
int getchar()
从控制台
(
键盘
)
读一个字符,显示在
屏幕上
int putchar()
向控制台
(
键盘
)
写一个字符
int getche()
从控制台
(
键盘
)
读一个字符,显示在屏幕上
int ungetch(int c)
把字符
c
退回给控制台
(
键盘
)
char *cgets(char *string)
从控制台
(
键盘
)
读入字符串存于
string
中<
/p>
int scanf(char *format[,ar
gument
…
])
从控制台读入一个
字符串
,
分别对各个参数进行
赋值
,
使用
BIOS
进行输出
int vscanf(char *format,Valist param)
从控制台读入一个字符串
,
分别对各个
参数进行
赋值
,
使用
BIOS
进行
输出
,
参数从
Valist
param
中取得
int
cscanf(char *format[,argument
…
])
从控制台读入一个字符串
,
分
别对各个参数进行
赋
值
,
直接对控制台作操作
,
比如显示器在显示时字符时即为直接写频方式显示
int sscanf(char *string,char *format[
,argument,
…
])
通过字符
串
string,
分别对各个
参数进行赋值
int vsscanf(char *string,char
*format,Vlist param)
通过字符串
str
ing,
分别对各个
参数进行赋值
,
参数从
Vlist param
中取得
int puts(char *string)
发关
一个字符串
string
给控制台
(<
/p>
显示器
),
使用
BIOS
进行输出
void cputs(char *string)
发送
一个字符串
string
给控制台
(<
/p>
显示器
),
直接对控制台作操作
,
比如显示器即为直接写频方
式显示
int printf(char
*format[,argument,
…
])
发送格式化字符串输出给控制台
(
显示器
)
使用
BIOS
进行输出
int
vprintf(char *format,Valist param)
发送格式
化字符串输出给控制台
(
显示器
)
使用
BIOS
进行输出
,
参数从
Va
list param
中取得
int
cprintf(char
*format[,argument,
…
])
发送格式化字符串输出给控制台
(
显示器
),
直接对控制台作操作
,
比如显示器即为直接写频方式显示
int vcprintf(char *format,Valist para
m)
发送格式化字符串输出给控制台
(
显示器
),
直接对控
制台作操作
,
比如显示器即为直接写频方式显示
,
参数从
Valist
param
中取得
int
sprintf(char *string,char
*format[,argument,
…
])
将字符串
strin
g
的内容重新写为格式化后的字符串
int vsprintf(char *string,char
*format,Valist param)
将字符串
string
的内容重新写为格式化后的字符串<
/p>
,
参数从
Valist
param
中取得
int
rename(char *oldname,char *newname)
将文件<
/p>
oldname
的名称改为
newnam
e
int ioctl(int handle,int cmd[,int
*argdx,int argcx])
本
函数是用来控制输入
/
输出设备的,请见下表:
┌───┬──────────
──────────────────┐
│
cmd
值
│功能
│
├───┼────────────────────────────┤
│
0
│取出设备信息
│
│
1
│设置设备信息
│
│
2
│把
< br>argcx
字节读入由
argdx
所指的地址
│
│
3
│在
< br>argdx
所指的地址写
argcx
字节
│
│
4
│除把
handle
当作设备号
(0=
当前
,1=A,
等
)
之外
,
均和
cmd=2
时一样
│
│
5
p>
│除把
handle
当作设备号
(0=
当前
,1=A,
等
)
之外
,
均和
cmd=3
时一样
│
│
6
│取输入状态
│
│
7
│取输出状态
│
│
8
│测试可换性
;
只对于
DOS 3.x
│
│
11
│置分享冲突的重算计
数
;
只对
DOS 3.x
│
└───┴────────────────────────────┘
int (*ssignal(int sig,int(*action)())
()
执行软件信号
(
没必要使用
)
int gsignal(int sig)
执行软件信号
(
没必要使用
)
int _open(char
*pathname,int
access)
为读或写打开一个文件
,
按后按
access
来确定是读文件还是写文件
,access
值见下表
┌─
─────┬────────────────────┐
│
access
值
│意义
│
├──────┼────────────────────┤
│
O_RDONLY
│读文件
│
│
O_WRONLY
│写文件
│
│
O_RDWR
│即读也写
│
│
O_NOINHERIT
│若文件
没有传递给子程序
,
则被包含
│
│
O_DENYALL
│只允许当前处理必须存取的文件
│
│
O_DENYWRITE
│只允许从任何其它打开的文件读
│
│
O_DENYREAD
│只允许从任何其它打开的文件写
│
│
O_DENYNONE
│允许其它共享打开的文件
│
└──────┴────────────────────┘
int open(char *pathname,int
access[,int
permiss])
为读或写打开一个文件
,
按后按
access
来确定是读文件还是写文件
,access
值见下表
┌────┬────────────────────┐
│
access
p>
值│意义
│
├────┼────────────────────┤
│
O_RDONLY
│读文件
│
│
O_WRONLY
│写文件
│
│
O_RDWR
│即读也写
│
│
O_NDELAY
│没有使用
;
对
UNIX
系统兼容
│
│
O_APPEND
│即读也写
,
但每次写总是在文件尾添
加
│
│
O_CREAT
│若文件存在
,
此标志无用
;
若不存在
,
建新文件<
/p>
│
│
O_TRUNC
│若文件存在
p>
,
则长度被截为
0,
属性不变
│
│
O_EXCL
│未用
;
对
U
NIX
系统兼容
│
│
O_BINARY
│此标志可显示地给出以二进制方
式打开文件
│
│
O_TEXT
│此标志可用于显示地给出以文本方式打开文件│
└────┴────────────────────┘
permiss
为文件属性
< br>,
可为以下值
:
S_IWRITE
允许写
S_IREAD
允许读
S_IREAD|S_IWRITE
允许读、写
int creat(char *filename,int permiss)
建立一个新文件
filename
,并
设定
读写性。
permiss
为文件读写性,可以为以下值
S_IWRITE
允许写
S_IREAD
允许读
S_IREAD|S_IWRITE
允许读、写
int _creat(char *filename,int attrib)
建立一个新文件
filename
,并
设定文件
属性。
attrib
为文件属性,可以为以下值
FA_RDONLY
只读
FA_HIDDEN
隐藏
FA_SYSTEM
系统
int
creatnew(char *filenamt,int attrib)
建立一
个新文件
filename
,并设定文件
属性。
attri
b
为文件属性,可以为以下值
FA_RDONLY
只读
FA_HIDDEN
隐藏
FA_SYSTEM
系统
int
creattemp(char *filenamt,int attrib)
建立
一个新文件
filename
,并设定文件
属性。
attr
ib
为文件属性,可以为以下值
FA_RDONLY
只读
FA_HIDDEN
隐藏
FA_SYSTEM
系统
int
read(int handle,void *buf,int nbyte)
从文件
号为
handle
的文件中读
nbyt
e
个字符
存入
buf
中
int _read(int handle,void *buf,int nby
te)
从文件号为
handle
的文件
中读
nbyte
个字符
存入
buf
中
,
直接调用
MSDOS
进行操作
.
int
write(int handle,void *buf,int nbyte)
将<
/p>
buf
中的
nbyte
< br>个字符写入文件号
为
handle
的文件中
int _write(int handle,void *buf,int nb
yte)
将
buf
中的
nbyte
个字符写入文件号
为
handle
的文件中
int dup(int
handle)
复制一个文件处理指针
handle,
返回这个指针
int
dup2(int handle,int newhandle)
复制一个文件处理
指针
handle
到
newhandl
e
int eof(int *handle)
检查文件
是否结束
,
结束返回
1,
否则返回
0
long
filelength(int handle)
返回文件长度,
handle
为文件号
int
setmode(int handle,unsigned mode)
本函数用来设
定文件号为
handle
的文件的打
开方式
int getftime(int handle,struct ftime
*ftime)
读取文件号为
handle
< br>的文件的时间,
并将文件时间存于
ftime
结构中,成功返回
0,ftime
结构如下:
┌─────────────────┐
│
struct
ftime
│
│
{
│
│
unsigned ft_tsec:5;
/*
秒
*/
│
│
unsigned ft_min:6;
/*
分
*/
│
│
unsigned ft_hour:5;
/*
时
*/
│
│
unsigned ft_day:5;
/*
日
*/
│
│
unsigned
ft_month:4;/*
月
*/
│
│
unsigned ft_year:1;
/*
年
-1980*/
│
│
}
│
└─────────────────┘
int setftime(int handle,struct ftime
*ftime)
重写文件号为
handle
< br>的文件时间
,
新时间在结构
ftime
中
.
成功返回
0.
结构
ft
ime
如下
:
┌─────────────────┐
│
struct
ftime
│
│
{
│
│
unsigned ft_tsec:5;
/*
秒
*/
│
│
unsigned ft_min:6;
/*
分
*/
│
│
unsigned ft_hour:5;
/*
时
*/
│
│
unsigned ft_day:5;
/*
日
*/
│
│
unsigned
ft_month:4;/*
月
*/
│
│
unsigned ft_year:1;
/*
年
-1980*/
│
│
}
│
└─────────────────┘
long lseek(int handle,long offset,int
fromwhere)
本函数将文件号为
handle
的文件
< br>的指针移到
fromwhere
后的第
< br>offset
个字节处
.
SEEK_SET
文件开关
SEEK_CUR
当前位置
SEEK_END
文件尾
long
tell(int handle)
本函数返回文件号为
ha
ndle
的文件指针
,
以字节表示
p>
int isatty(int handle)
本函数用来取设备
handle
的类型
int lock(int handle,long
offset,long length)
对文件共享作封锁
int
unlock(int handle,long offset,long length)
打开对文件共享的封锁
int
close(int handle)
关闭
handle
p>
所表示的文件处理
,handle
是从
p>
_creat
、
creat
、
creatnew
、
creattemp
、
d
up
、
dup2
、
_open
、
open
中的一个处
调用获得的文件处理
成功返回
0
否则返回
-1,
可用于
UNIX
系统
int _close(int handle)
关闭
p>
handle
所表示的文件处理
,hand
le
是从
_creat
、
creat
、
creatnew
、
creattemp
、
dup
、
dup2
、
_open
、
open
p>
中的一个处调用获得的文件处理
成功返回
0
否则返回
< br>-1,
只能用于
MSDOS
系统
FILE
*fopen(char *filename,char *type)
打开一个文
件
filename,
打开方式为
ty
pe
,
并返回这个文件指针,
type
可为以下字符串加
上后缀
┌──┬────┬───────┬────────┐
│
type
│读写性
│文本
/2<
/p>
进制文件│建新
/
打开旧文件
│
├──┼────┼───────┼────────┤
│
r
│读
│文本
│打开旧的文件
│
│
w
│写
│文本
│建新文件
│
│
a
│添加
│文本
│有就打开无则建新│
│
r+
│读
/
写
│不限制
│打开
│
│
w+
│读
/
写
│不限制
│建新文件
│
│
a+
│读
/
添加
│不限制
│有就打开无则建新│
└──┴────┴───────┴────────┘
可加的后缀为
t
、
b
。加
b
表示文件以二进制形式进行操作,
t
没必要使用<
/p>
例
:
┌──────────────────┐
│
#include
│
│
main()
│
│
{
│
│
FILE *fp;
│
│
fp=fopen(
│
└──────────────────┘
FILE *fdopen(int ahndle,char *type)
FILE *freopen(char *filename,char
*type,FILE *stream)
int getc(FILE
*stream)
从流
stream
中读一个字符,并返回这个字符
int
putc(int ch,FILE *stream)
向流
s
tream
写入一个字符
ch
int
getw(FILE *stream)
从流
stream<
/p>
读入一个整数,错误返回
EOF
int
putw(int w,FILE *stream)
向流
st
ream
写入一个整数
int
ungetc(char c,FILE *stream)
把字符
< br>c
退回给流
stream
,下一
次读进的字符将是
c
int fgetc(FILE
*stream)
从流
stream
处读一个字符,并返回这个字符
int
fputc(int ch,FILE *stream)
将字符
ch
写入流
stream
中
char *fgets(char *string,int
n,FILE *stream)
从流
stream
中读
n
个字符存入
st
ring
中
int
fputs(char *string,FILE *stream)
将字符串
p>
string
写入流
stream
中
int fread(void
*ptr,int size,int nitems,FILE *stream)
从流
stream
中读入
nitems
个长度为
size
p>
的字符串存入
ptr
中
int fwrite(void *ptr,int size,int
nitems,FILE *stream)
向流
strea
m
中写入
nitems
个长度为
size
的字符串
,
字符串在
ptr
中
p>
int fscanf(FILE
*stream,char
*format[,argument,
…
])
以格式化形式从流
stream
中
< br>
读入一个字符串
int
vfscanf(FILE *stream,char *format,Valist param)
p>
以格式化形式从流
stream
中
读入一个字符串
,
参数从
Valist
param
中取得
int
fprintf(FILE *stream,char
*format[,argument,
…
])
以格式化形式将一个字符
串写给指定的流
stream
int
vfprintf(FILE *stream,char *format,Valist param)
以格式化形式将一个字符
串写给指定的流
stream,
参数从
Valist param
中取得
int fseek(FILE *stream,long
offset,int fromwhere)
函数把文件指针移到
fromwhere
所指位置的向后
off
set
个字节处
,fromwhere
可以为以下值
:
SEEK_SET
文件开关
SEEK_CUR
当前位置
SEEK_END
文件尾
long
ftell(FILE *stream)
函数返回定位在
stream
中的当前文件指针位置
,
以字节表示
int rewind(FILE
*stream)
将当前文件指针
stream
移到文件开头
int feof(FILE
*stream)
检测流
stream
上的文件指针是否在结束位置
int
fileno(FILE *stream)
取流
strea
m
上的文件处理,并返回文件处理
int ferror(FILE *stream)
检
测流
stream
上是否有读写错误,如有错误就返回
1
void clearerr(FILE *stream) <
/p>
清除流
stream
上的读写错误
void setbuf(FILE *stream,char
*buf)
给流
stream
指定一
个缓冲区
buf
void setvbuf(FILE
*stream,char *buf,int type,unsigned size)
给流
stream
p>
指定一个缓冲区
buf,
大小为
size,
类型为
type,type
的值见下表
┌───┬───────────────────────────────┐
│
type
值│意
义
│
├───┼───────────────────────────────┤
│
_IOFBF
│文件是完全缓冲区
,
当缓冲区是空时
,
下一个输入操作将企图填满整个缓│
│
│冲区
.
在输出时
,<
/p>
在把任何数据写到文件之前
,
将完全填充
缓冲区
.
│
│
_IOLBF
│文件是行缓冲区
.
当缓冲区为空时
,
下一个输入操作将仍然企图填整个缓│
│
│冲区
.
然而在输出时
,
每当新行符写到文件
,
缓冲区就被清
洗掉
.
│
│
_IONBF
│文件是无缓冲的
.buf
和
< br>size
参数是被忽略的
.
每个
输入操作将直接从文
│
│
│件读
,
每个输出操作将立即把数据写到文件中
.
│
└───┴───────────────────────────────┘
int fclose(FILE *stream)
关
闭一个流,可以是文件或设备
(
例如
L
PT1)
int fcloseall()
关闭所有除
stdin
或
st
dout
外的流
int
fflush(FILE *stream)
关闭一个流,并对缓冲区作处理
处理即对读的流,将流内内容读入缓冲区;
对写的流,将缓冲区内内容写入流。成功返回
0
int fflushall()
关闭所有流,并对流各自的缓冲区作处理
处理即对读的流,将流内内容读入缓冲区;
对写的流,将缓冲区内内容写入流。成功返回
0
int access(char
*filename,int amode)
本函数检查文件
filename
并返回文件的属性
,
函数将属性存于
am
ode
中,
amode
由以下位的组合
构成
06
可以读、写
04
可以读
02
可以写
01
执行
(
忽略的
)
00
文件存在
如果
filename
是一个目录
,
函数将只确定目录是否存在
函数执行成功返回
0,<
/p>
否则返回
-1
int
chmod(char *filename,int permiss)
本函数用于
设定文件
filename
的属性
permiss
可以为以下值
S_IWRITE
允许写
S_IREAD
允许读
S_IREAD|S_IWRITE
允许读、写
int _chmod(char *filename,int
func[,int attrib]);
本
函数用于读取或设定文件
filename
的属性,
当
fu
nc=0
时,函数返回文件的属性;当
func=1
时,函数设定文件的属性
若为设定文件属性,
attrib
可以为下列
常数之一
FA_RDONLY
只读
FA_HIDDEN
隐藏
FA_SYSTEM
系统
接口子程序
,
所在函数库为
:dos.h
、
bio
s.h
unsigned sleep(unsigned seconds)
暂停
seconds
微秒
(
百分之一秒
)
int
unlink(char
*filename)
删除文件
filename
unsigned FP_OFF(void far *farptr)
本函数用来取远指针
farptr
的偏移量
unsigned FP_SEG(void far *farpt
r)
本函数用来没置远指针
farptr
的段值
-
-
-
-
-
-
-
-
-
上一篇:社会学专业词汇
下一篇:甘草(中国药典2015)