c语言文件操作函数
来源:互联网 发布:锵锵软件官网 编辑:程序博客网 时间:2024/06/07 02:47
1.创建文件
一般而言,打开文件后会做一些文件读取或写入的动作,若打开文件失败,接下来的读写动作也无法顺利进行,所以一般在fopen()后作错误判断及处理。
参数mode字符串则代表着流形态。
对文件是否必须存在、以及存在时是清空还是追加会有不同的响应。具体判断如下图。
注意
#include<fcntl.h>
intopen(constchar*pathname,intflags);
intopen(constchar*pathname,intflags,mode_tmode);
返回值:成功则返回文件描述符,否则返回-1
O_RDONLY只读模式
O_WRONLY只写模式
O_RDWR读写模式
O_APPEND每次写操作都写入文件的末尾
O_CREAT如果指定文件不存在,则创建这个文件
O_EXCL如果要创建的文件已存在,则返回-1,并且修改errno的值
O_TRUNC如果文件存在,并且以只写/读写方式打开,则清空文件全部内容(即将其长度截短为0)
O_NOCTTY如果路径名指向终端设备,不要把这个设备用作控制终端。
O_NONBLOCK如果路径名指向FIFO/块文件/字符文件,则把文件的打开和后继I/O
(nonblockingmode)
O_DSYNC等待物理I/O结束后再write。在不影响读取新写入的数据的
前提下,不等待
文件属性
更新。
O_RSYNCread等待所有写入同一区域的写操作完成后再进行
O_SYNC等待物理I/O结束后再write,包括更新文件属性的I/O
原型 char * fgets(char * s, int n,FILE *stream);
参数:
s: 字符型指针,指向存储读入数据的缓冲区的地址。
n: 从流中读入n-1个字符
stream : 指向读取的流。
返回值:
1. 当n<=0 时返回NULL,即空指针。
2. 当n=1 时,返回空串"".
3. 如果读入成功,则返回缓冲区的地址。
4. 如果读入错误或遇到文件结尾(EOF),则返回NULL.
读入结束后,系统将自动在最后加'\0',并以str作为函数值返回。
仅仅只是这一行读取完,随后指向文件的指针会自动偏移至下一行。
-----------------------------------------------------------我是分割线------------------------------------------
#include <unistd.h>
返回值
实质:
-------------------------------------------我是分割线------------------------------------------------------------
access,头文件是io.h,原型:
int access(const char *filename, int amode);
amode参数为0时表示检查文件的存在性,如果文件存在,返回0,不存在,返回-1。
这个函数还可以检查其它文件属性:
06 检查读写权限04 检查读权限
02 检查写权限
01 检查执行权限
00 检查文件的存在性
在UNIX和VC下实验成功。
好处是 fopen(..,"r")不好,当无读权限时一不行了。
而这个就算这个文件没有读权限,也可以判断这个文件存在于否
存在返回0,不存在返回-1
#include <stdio.h>
int main()
{
printf ("%d",access("111",0));
--------------------------------------------------------------------------------------------
#include <io.h>
#include <stdio.h>
#include <stdlib.h>
void main( void )
{
/* Check for existence */
if( (_access( "ACCESS.C", 0 )) != -1 )
{
printf( "File ACCESS.C exists\n" );
/* Check for write permission */
if( (_access( "ACCESS.C", 2 )) != -1 )
printf( "File ACCESS.C has write permission\n" );
}
}
Output
File ACCESS.C exists
File ACCESS.C has write permission
int remove(char * filename);
【参数】filename为要删除的文件名,可以为一目录。如果参数filename 为一文件,则调用unlink()处理;若参数filename 为一目录,则调用rmdir()来处理。
【返回值】成功则返回0,失败则返回-1,错误原因存于errno。
错误代码:
- EROFS 欲写入的文件为只读文件。
- EFAULT 参数filename 指针超出可存取内存空间。
- ENAMETOOLONG 参数filename 太长。
- ENOMEM 核心内存不足。
- ELOOP 参数filename 有过多符号连接问题。
- EIO I/O 存取错误。
- C语言文件操作函数
- C语言文件操作函数
- C语言文件操作函数
- 文件操作函数 C语言
- 文件操作函数 C语言
- C语言文件操作函数
- C语言文件操作函数
- C语言文件操作函数
- C语言文件操作函数
- C语言文件操作函数
- c语言文件操作函数
- C语言文件操作函数
- c 语言文件操作函数
- C语言--文件操作函数
- c语言文件操作函数
- C语言 文件操作函数
- C语言文件操作函数
- C语言文件操作函数
- 推荐系统挖掘长尾了吗?
- asp.net中FTP读取文件列表时中文乱码
- ipad,iphone启动图片命名
- Spring环境配置
- 《数据结构》实验二: 线性表实验
- c语言文件操作函数
- Oracle联机日志文件损坏后的恢复方法
- VC窗口形状的绘制---SetWindowRgn
- 第十二周 项目2:(1)N组数的最大公约数
- 如何强制旋转屏幕
- 特性的使用
- 硅谷大佬内部发言:千亿美金公司,最初的真相
- 【github教程】创建github仓库以及创建版本库和添加文件到版本库
- 联机日志文件损坏后的恢复方法