标准IO
FILE *pp
定义一个流指针
pp=fopen (文件名,可以是路径,"打开的权限参数");
权限列表 r rb 打开只读文件,需存在
r+ r+b 打开可读写文件,需存在
w wb 打开只写文件,存在则清0,不存在创建
w+ w+b wb+打开可读写文件,存在则清0,不存在则创建
a ab 附加方式打开只写文件,不存在则创建,存在则末尾添加
a+ a+b ab+ 以附加方式打开可读写文件,不存在则创建,存在则追加文件末尾
pp = freopen(路径,“权限”,另外一个流);
对流的重定向
n=fgetc(读取的流);
输入/读取一个字符,用n来接收,读取后流指针后移一位,
失败返回EOF用于判断终止。遇到缓存区最大值1024或换行符\0停止
fputc(n,存的流);
存一个字符到流里/文件,存完后流指针后移一位
fgets(读取的流存放的地址/字符串,一次读取的大小,读取的流)!=NULL;
循环读完。成功返回char型指针,指向读入内容,失败返回NULL
fputs(取数据的地址/数组/指针,要输出的流);
返回一个非负值,错误返回EOF=-1 遇到\0 NULL 停止
fread(数据存的地址/数组/指针,每次读的字节数,读取次数,取数据的流);
指定大小读取文件
fwrite(要存的数据/数组/指针,一次的大小,次数,要存的流);
指定大小存文件
rewind(pp);
文件流指针定位到头
fseek(pp,偏移量字节,基准位置);
基准值 SEEK_SET 文件头
SEEK_END 文件尾
SEEK_CUR 当前文件流指针的位置
len = ftell(pp) ;
返回当前流指针的位置
while(!ferror(pp)&& !feof(pp))
判断流指针位置是不是尾端,到尾返真 1
fclose(pp);
关流,不关的话运行结束也会自己关
文件IO
int pp=open("路径/文件",参数,可以多个相或,权限8进制)
pp是文件描述符,从3开始,前面三个是strin strout strerr
如果pp=-1 表示打开失败
open不能创建设备文件
没有O_CREAT就不需要权限参数
O_RDONLY 只读方式打开文件
O_WRONLY 可写方式打开文件
O_RDWR 读写方式打开文件
以上三个只可取其一
int pp=creat(“路径/文件”,“参数/模式”)
新建一个,等价于open的新建O_CREAT | O_TRUNC | O_WRONLY
close(pp)
int n=read(文件描述符,读取的数据存放的内存的地址/数组p,希望读取的字节/sizeof(p))
返回值是实际读到的字节数,末尾的\0不算
通过描述符读取文件的数据到要存的地方
write(文件描述符,要写入的数据的内存地址/数组p/“字符串”,要写入文件指定的字节数/sizeof(p))
lseek(pp,偏移量字节,基准位置);
功能定位文件指针位置,不能从文件头往前偏移,如果从尾往后偏移,会形成空洞文件
返回值为当前位置距离头有多大距离,可以用来测长度