博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
c 文件操作
阅读量:6325 次
发布时间:2019-06-22

本文共 1021 字,大约阅读时间需要 3 分钟。

每一个打开的文件在内存里面都有个结构体来保存文件的信息:大小,位置,修改时间,权限等等。这个结构体是系统定义:FILE

typedef struct
{
...;
...;
}FILE;

文件指针就是 FILE 结构体的指针。

FILE* fd;

文件的操作:

FILE fopen(const char path, const char *mode); 打开一个文件并把文件对应的结构体变量地址作为返回值。失败返回NULL。
path:文件名字的字符串(可以包含路径)
mode:访问文件的方式
“r” 只读(文件已存在)
“w” 只写(文件可以不存在,存在只会覆盖)
“a” 追加(文件可以不存在,存在就在文件的末尾增加新的数据)
“r+” 读和写(文件的头部开始)
“w+”读写(覆盖)
“a+”读写(追加)

二进制文件:

“rb” 只读
“wb”只写
“ab”追加
“rb+” / "r+b" 读和写(文件的头部开始)
“wb+” / "w+b" 读写(覆盖)
“ab+” / "a+b" 读写(追加)

int fclose(FILE* fd) 关闭一个文件,形参为想要关闭的那个文件的文件指针,返回0表示成功,-1表示失败。

int fputc(int c , FILE* fd) 将一个字符写到文件中,失败返回EOF

int fgetc(FILE* fd);从文件中读一个字符出来

excep:

#include <stdio.h>

int main(int argc,char argv[])
{
char tmp;
if(argc!=3)
{
printf("%s 源文件 目标文件",argv[0]);
}
else if(argc==3)
{
FILE
fd_1 = fopen(argv[1],"r");
if(fd_1)
{
FILE* fd_2 = fopen(argv[2],"w");
if(fd_2)
{
while(tmp != EOF)//循环读取源文件中的数据
{
tmp = fgetc(fd_1);
if(tmp!=EOF)
{
fputc(tmp,fd_2);
}
}
fclose(fd_2);
fd_2 = NULL;
}
fclose(fd_1);
fd_1 = NULL;
}
}
return 0;
}

转载于:https://blog.51cto.com/2668980/2156526

你可能感兴趣的文章
【Centos】【Python3】yum install 报错
查看>>
java web Servlet开发(一)
查看>>
自动化运维工具——ansible详解(一)
查看>>
Windows XP/2003自动登录
查看>>
Silverlight实用窍门系列:2.Silverlight动态加载外部XML指定地址的WebService---(动态加载外部XML文件中指定的WebService地址)...
查看>>
gbin1分享: jQuery UI 1.9带给我们的惊喜
查看>>
PSA, ALE IDoc, ODS/DSO的区别
查看>>
solr 3.5 配置及应用(二)
查看>>
又弄错了
查看>>
FIX:如果删除了 BUILTIN\Administrators 登录,Microsoft Search 服务可能导致 CPU 使用率达到 100%...
查看>>
HTTP错误code大全
查看>>
php读取文件内容至字符串中,同时去除换行、空行、行首行尾空格(原创自Zjmainstay)...
查看>>
poj3264
查看>>
使用扩展名获取mimetype
查看>>
树中两个结点的最低公共祖先
查看>>
Cluster Table
查看>>
[置顶] 可选参数及命名实参在一起
查看>>
GSM错误代码表
查看>>
conEmu的使用笔记
查看>>
微信公众帐号运营的秘密
查看>>