文件操作(创建,打开,读取,关闭等)
来源:互联网 发布:东莞天行健网络怎么样 编辑:程序博客网 时间:2024/06/10 08:59
*****不使用库函数
创建文件
int creat(char *filename,mode_t mode);
所有打开的文件都对应一个文件描述符,这个描述符在现代的系统里已经达到了1024;
int open(const char*filename,int flags,mode_t mode);
flags 是打开的标志,包括只读的标志,O_CREAT,没有文件将会创建文件,这个时候,mode_t这个参数不能省略,必须指定创建文件的属性。
int read(int fd,const void *buf,size_t length)
返回的是实际读到的字节数
int write(int fd,const void *buf,size_t length)
返回值是实际写入到fd所指向文件的字节数
int lseek(int fd,offset_t,int whence),表示的是移动后文件指针相对于文件头的位置,移动到文件尾即是文件的长度。
打开文件之后,指针会指向文件的开头,当读了三个字节,指针也会移动到第三个字节,这时候再开始写,会从第四个字节开始读。read和write时这个指针会自动移动,也可以人工进行移动,即lseek。
第三个参数表示从什么地方开始移动这个指针,offset表示从这个基准移动多少个字节。向前移动是负值,向后移动是正值。
SEEK_SET:文件开头
SEEK_CUR:当前位置
SEEK_END:文件结尾
判断文件是否可以进行某种操作(读、写或执行)
int access(const char*pathname,int mode);
mode 的取值:R_OK、W_OK、X_OK,F_OK.
等于0,表示测试成功。
不等于0,表示测试不成功。
创建文件
int creat(char *filename,mode_t mode);
所有打开的文件都对应一个文件描述符,这个描述符在现代的系统里已经达到了1024;
int open(const char*filename,int flags,mode_t mode);
flags 是打开的标志,包括只读的标志,O_CREAT,没有文件将会创建文件,这个时候,mode_t这个参数不能省略,必须指定创建文件的属性。
int read(int fd,const void *buf,size_t length)
返回的是实际读到的字节数
int write(int fd,const void *buf,size_t length)
返回值是实际写入到fd所指向文件的字节数
int lseek(int fd,offset_t,int whence),表示的是移动后文件指针相对于文件头的位置,移动到文件尾即是文件的长度。
打开文件之后,指针会指向文件的开头,当读了三个字节,指针也会移动到第三个字节,这时候再开始写,会从第四个字节开始读。read和write时这个指针会自动移动,也可以人工进行移动,即lseek。
第三个参数表示从什么地方开始移动这个指针,offset表示从这个基准移动多少个字节。向前移动是负值,向后移动是正值。
SEEK_SET:文件开头
SEEK_CUR:当前位置
SEEK_END:文件结尾
判断文件是否可以进行某种操作(读、写或执行)
int access(const char*pathname,int mode);
mode 的取值:R_OK、W_OK、X_OK,F_OK.
等于0,表示测试成功。
不等于0,表示测试不成功。
*****使用库函数(可移植性变好)
FILE *fopen(const char *filename,mode_t mode);
常见打开模式r,rb,w,wb,但在Linux中不区分二进制文件和文本文件。
size_t fread(void *ptr,size_t size,szie_t n,FILE *stream);
size_t fwrite(const void *ptr,size_t size,size_t n,FILE *stream);
从缓冲区ptr所指的数组中把n个字段写到stream指向的文件中,每个字段长为size个字节,返回实际写入的字节数。
int fgetc(FILE *fp);从指定文件中读取一个字符。
int fputc(int c ,FILE *stream);向指定文件中写入一个字符。
fscanf(FILE *stream,char *format[,arguement..]);从一个流中进行格式化输入。
int fprintf(FILE *stream,char*format[,arguement..]);格式化输出到一个流中。
int fseek(FILE *stream,long offset,int whence);
whence
SEEK_SET;从文件的开始出开始搜索
SEEK_CUR:从当前位置开始搜索
SEEK_END;从文件的结束出开始搜索
char *getcwd(char *buffer,size_t size)
提供一个size大小的buffer,getcwd会把当前的路径名cp到buffer中,如果buffer太小,会返回-1。
创建目录:
int mkdir(char *dir,int mode); #include <sys/stat.h>
阅读全文
0 0
- 文件操作(创建,打开,读取,关闭等)
- Python文件操作 打开,读取,关闭
- Python文件操作 打开,读取,关闭
- C语言 文件的概念与操作(打开、读写和关闭等)
- C语言 文件的概念与操作(打开、读写和关闭等)
- matlab的各种数据读取(txt,dat,mat等格式),文件打开关闭
- matlab的各种数据读取(txt,dat,mat等格式),文件打开关闭
- matlab的各种数据读取(txt,dat,mat等格式),文件打开关闭
- scala文件操作--自动关闭打开的资源,读取properties文件
- php文件的打开,读取,关闭
- 文件的创建与删除,打开与关闭(C)
- 简单文件操作(Linux下C++实现) 打开,读取 写入 关闭
- 文件的操作1----打开关闭文件
- 文件的创建打开关闭读写
- 文件的创建,打开与关闭
- Linux文件编程综合(创建打开等)
- 操作Excel文件,读取,创建
- XML文件读取、创建、操作
- MySQL—浅谈MySQL存储引擎
- 枚举-算法
- MySQL慢查询(二)
- springMVC项目中整合BaseDao
- 【干货】【通过特征可视化分析调整网络技巧】
- 文件操作(创建,打开,读取,关闭等)
- 【蓝桥杯】【杨辉三角】
- tensorflow 安装
- swiper 滑动图片垂直居中
- android 检查对象属性是否有一个为空
- vmware中Mac OS X10.9熟悉
- crond命令
- 贪心入门(例题为主)
- vue中计算属性computed的getter setter问题