判断文件访问权限
头文件 <io.h>
int _access(const char *path,int mode );
int _waccess(const wchar_t *path,int mode );
返回0成功,-1 失败
mode:
00 只检查文件是否存在 F_OK
01 是否有执行权限 X_OK
02 写权限 W_OK
04 读权限 R_OK
06 读写权限 W_OK|R_OK
读写文件
头文件<stdio.h>
//fsopen()文件共享,fopen_s()直接返回错误码,但不适用共享模式
打开文件
//获取文件指针
FILE *pFile = fopen("1.txt", //打开文件的名称,绝对路径或者相对路径
"w"); // 文件打开方式 如果原来有内容也会销毁
向文件写数据
fwrite ("hello", //要输入的文字
1,//文字每一项的大小,这里是字符型的就设置为1,如果是汉字就设置为4
strlen("hello"), //单元个数 我们也可以直接写5
pFile //我们刚刚获得到的文件指针
);
关闭文件
fclose(pFile); //告诉系统我们文件写完了数据更新,但是我们要要重新打开才能在写
刷新缓存,将缓存中的数据写入文件
fflush(pFile); //数据刷新 数据立即更新
读文件流程
FILE *pFile=fopen("1.txt","r"); //获取文件的指针
char *pBuf; //定义文件指针
fseek(pFile,0,SEEK_END); //把指针移动到文件的结尾 ,获取文件长度
int len=ftell(pFile); //获取文件长度
pBuf=new char[len+1]; //定义数组长度
rewind(pFile); //把指针移动到文件开头 因为我们一开始把指针移动到结尾,如果不移动回来 会出错
fread(pBuf,1,len,pFile); //读文件
pBuf[len]=0; //把读到的文件最后一位 写为0 要不然系统会一直寻找到0后才结束
MessageBox(pBuf); //显示读到的数据
fclose(pFile); // 关闭文件
删除文件
remove()函数用于删除指定的文件,其原型如下:
int remove(char * filename);
成功返回 0
文件或目录重命名
int rename(const char *old_filename, const char *new_filename)
如果成功,则返回零。如果错误,则返回 -1,并设置 errno。
说明:
重命名文件:
如果newname指定的文件存在,则会被删除。
如果newname与oldname不在一个目录下,则相当于移动文件。
重命名目录:
如果oldname和oldname都为目录,则重命名目录。
如果newname指定的目录存在且为空目录,则先将newname删除。
对于newname和oldname两个目录,调用进程必须有写权限。
重命名目录时,newname不能包含oldname作为其路径前缀。例如,不能将/usr更名为/usr/foo/testdir,因为老名字( /usr/foo)是新名字的路径前缀,因而不能将其删除。
创建文件类型参数
“rt” 只读打开一个文本文件,只允许读数据
“wt” 只写打开或建立一个文本文件,只允许写数据
“at” 追加打开一个文本文件,并在文件末尾写数据
“rb” 只读打开一个二进制文件,只允许读数据
“wb” 只写打开或建立一个二进制文件,只允许写数据
“ab” 追加打开一个二进制文件,并在文件末尾写数据
“rt+” 读写打开一个文本文件,允许读和写
“wt+” 读写打开或建立一个文本文件,允许读写
“at+” 读写打开一个文本文件,允许读,或在文件末追加数据
“rb+” 读写打开一个二进制文件,允许读和写
“wb+” 读写打开或建立一个二进制文件,允许读和写
“ab+” 读写打开一个二进制文件,允许读,或在文件末追加数据
r(read): 读
w(write): 写
a(append): 追加
t(text): 文本文件,可省略不写
b(banary): 二进制文件
+: 读和写
总结
程序退出
Exit()函数返回0,表示正确推出,其他参数错误退出,返回到操作系统