Seventh 文件函数的使用

原文链接(点击原文链接获取更多学习干货):

http://blog.bools.cn/archives/1222

1.获取文件状态函数

#include<sys/type.h>
#include<sys/stat.h>
int stat(const char* path,struct stat* buf);
功能:获取问价状态
参数:
    path:文件名
    buf:保存文件信息的结构体
返回值:
    成功:0
    失败:-1

此函数一般是获取文件大小等信息,而结构体stat的成员有

例子:

int main()
{
	struct stat st;
	stat("d:/a.txt", &st);
	printf("%d\n", st.st_size);
	system("pause");
	return 0;
}

此函数能够获取文件各个状态

 2.执行命令函数

#include<stdlib.h>
int system(const char* command)
功能:执行dos(windows系统)或shell(Linux/unix系统)命令,参数字符串command为命令名。
返回值:
    成功:0
    失败:-1

比较实用的是system("pause"),冻结屏幕,观察程序执行结果,可以定在中途观察函数执行的部分结果,以便找出错误。

各命令有

参数	功能	说明
ASSOC	显示或修改文件扩展名关联	
ATTRIB	显示或更改文件属性	
BREAK	设置或清除扩展式 CTRL+C 检查	
BCDEDIT	设置启动数据库中的属性以控制启动加载	
CACLS	显示或修改文件的访问控制列表(ACL)	
CALL	从另一个批处理程序调用这一个	
CD	显示当前目录的名称或将其更改	
CHCP	显示或设置活动代码页数	
CHDIR	显示当前目录的名称或将其更改	
CHKDSK	检查磁盘并显示状态报告	
CHKNTFS	显示或修改启动时间磁盘检查	
CLS	清除屏幕	*
CMD	打开另一个 Windows 命令解释程序窗口	*
COLOR	设置默认控制台前景和背景颜色	*
COMP	比较两个或两套文件的内容	
COMPACT	显示或更改 NTFS 分区上文件的压缩	
CONVERT	将 FAT 卷转换成 NTFS 你不能转换当前驱动器	
COPY	将至少一个文件复制到另一个位置	
DATE	显示或设置日期	后面加 /t 表示显示日期
DEL	删除至少一个文件	
DIR	显示一个目录中的文件和子目录	
DISKPART	显示或配置磁盘分区属性	
DOSKEY	编辑命令行、撤回 Windows 命令并创建宏	
DRIVERQUERY	显示当前设备驱动程序状态和属性	
ECHO	显示消息,或将命令回显打开或关闭	
ENDLOCAL	结束批文件中环境更改的本地化	
ERASE	删除一个或多个文件	*
EXIT	退出 CMD.EXE 程序(命令解释程序)	*
FC	比较两个文件或两个文件集并显示它们之间的不同	*
FIND	在一个或多个文件中搜索一个文本字符串	*
FINDSTR	在多个文件中搜索字符串	*
FOR	为一组文件中的每个文件运行一个指定的命令	
FORMAT	格式化磁盘,以便用于 Windows	
FSUTIL	显示或配置文件系统属性	
FTYPE	显示或修改在文件扩展名关联中使用的文件类型	
GOTO	将 Windows 命令解释程序定向到批处理程序中某个带标签的行	
GPRESULT	显示计算机或用户的组策略信息	
GRAFTABL	使 Windows 在图形模式下显示扩展字符集	*
HELP	提供 Windows 命令的帮助信息	
ICACLS	显示、修改、备份或还原文件和目录的 ACL	
IF	在批处理程序中执行有条件的处理操作	
LABEL	创建、更改或删除磁盘的卷标	
MD	创建一个目录	
MKDIR	创建一个目录	
MKLINK	创建符号链接和硬链接	
MODE	配置系统设备	
MORE	逐屏显示输出	*
MOVE	将一个或多个文件从一个目录移动到另一个目录	
OPENFILES	显示远程用户为了文件共享而打开的文件	
PATH为	可执行文件显示或设置搜索路径	
PAUSE	暂停批处理文件的处理并显示消息	
POPD	还原通过 PUSHD 保存的当前目录的上一个值	
PRINT	打印一个文本文件	
PROMPT	更改 Windows 命令提示	
PUSHD	保存当前目录,然后对其进行更改	
RD	删除目录	
RECOVER	从损坏的或有缺陷的磁盘中恢复可读信息	*
REM	记录批处理文件或 CONFIG.SYS 中的注释(批注)	
REN	重命名文件	
RENAME	重命名文件	
REPLACE	替换文件	*
RMDIR	删除目录	
ROBOCOPY	复制文件和目录树的高级实用工具	
SET	显示、设置或删除 Windows 环境变量	
SETLOCAL	开始本地化批处理文件中的环境更改	
SC	显示或配置服务(后台进程)	
SCHTASKS	安排在一台计算机上运行命令和程序	
SHIFT	调整批处理文件中可替换参数的位置	
SHUTDOWN	允许通过本地或远程方式正确关闭计算机	
SORT	对输入排序	
START	启动单独的窗口以运行指定的程序或命令	
SUBST	将路径与驱动器号关联	
SYSTEMINFO	显示计算机的特定属性和配置	
TASKLIST	显示包括服务在内的所有当前运行的任务	
TASKKILL	中止或停止正在运行的进程或应用程序	
TIME	显示或设置系统时间	后面加 /t 表示显示时间
TITLE	设置 CMD.EXE 会话的窗口标题	“TITLE 你想改成啥”
TREE	以图形方式显示驱动程序或路径的目录结构	“TREE D:”
TYPE	显示文本文件的内容	“TYPE D:\\文本.txt”
VER	显示 Windows 的版本	
VERIFY	告诉 Windows 是否进行验证,以确保文件正确写入磁盘	
VOL	显示磁盘卷标和序列号	
XCOPY	复制文件和目录树	
WMIC	在交互式命令 shell 中显示 WMI 信息	

3.文件回到开头函数

#include<stdio.h>
void rewind(FILE* stream)
功能:将文件光标移回到开头
参数:
    stream:已经打开的文件指针
返回值:
    无

这个比较简单也比较实用 

4.文件随机读写

#include<stdio.h>
int fseek(FILE* stream,long offset,int whence)
功能:移动文件光标的读写位置
参数:
    stream:已经打开的文件
    offset:根据whence来移动的位移数(偏移量),可以是正数,可以是负数,正数就是whence往右移动,负数就是whence往左移动,如果向前移动的字节超过了文件开头则出错返回,如果向后移动的字节超过了文件末尾,再次写入时将增大文件尺寸
    whense:其取值如下:
        SEEK_SET:从文件开头移动offset个字节
        SEEK_CUR:从文件当前位置移动offset个字节
        SEEK_END:从文件末尾移动offset个字节
返回值:
    成功:0
    失败:-1

随机改变文件位置可以灵活应用

	fseek(fp, 0, SEEK_END);使光标跳转到文件结尾
	fseek(fp, 0, SEEK_SET);使光标跳转到文件开头

5.获取光标流位置函数

#include<stdio.h>
long ftell(FILE* stream)
功能:获取光标流(文件光标)读写位置
参数:
        stream:已经打开的文件指针
返回值:
        成功:当前文件光标的读写位置
        失败:-1

可以随机获取文件光标流读写位置,结合system("pause")来使用的话

例子:

	FILE* fp = fopen("d:/a.txt", "r");
	fseek(fp, 0, SEEK_END);
	long i = ftell(fp);
	printf("%ld\n", i);
	fseek(fp, 0, SEEK_SET);
	i = ftell(fp);
	printf("%ld\n", i);

这里有个小技巧:文件以“a”形式打开,光标会自动跳到最后

6.删除、重命名文件名

#include<stdio.h>
int remove(const char* stream)
功能:删除文件
参数:
        stream:已经打开的文件名
返回值:
        成功:0
        失败:-1
#include<stdio.h>
int rename(const char* oldpath,const char* nawpath);
功能:将oldpath的文件名改为newpath
参数:
        oldpath:旧文件名
        nwepath:新文件名
返回值:
        成功:0
        失败:-1

重命名函数还有另外一个作用,就是利用新文件名的名字来改变文件的位置

rename("D:/a.txt","D:/code/a.txt");

7.更新文件缓冲区函数

#include<stdio.h>
int fflush(FILE* stream)
功能:更新缓冲区,将缓冲区的数据立刻写进文件当中
参数:
        stream:已经打开的文件指针
返回值
        成功:0
        失败:-1

文件缓冲区介绍

建议不要多次使用,因为频繁的从硬盘和交互,会损伤硬盘 

欢迎关注技术公众号,获取更多软件学习干货!

                       在这里插入图片描述

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值