文件读写失败中的几个常见错误.
1. 文件是否存在
2,文件权限. 该程序会打开非常关闭的文件,并且可能会更改文件权限.
3. 缓冲区大小足以读取文件吗?
4. 如果二进制文件打开功能需要| O_BINARY,则fopen需要添加b. 否则,将无法读取该文件.
5. 如果将文件USB插入串行端口,请特别注意USB串行端口的不稳定性. 容易读写异常. 建议使用扩展卡到串行端口进行长期操作.
//文件操作界面// /// //
int open(const char * path,int access,int模式)
path要打开的文件的路径和名称
访问访问模式fopen失败但生成了文件,宏的定义和含义如下:
O_RDONLY 1个只读打开
O_WRONLY 2只写即可打开
O_RDWR 4读写打开
还可以选择以下模式来匹配以上三种基本模式:
O_CREAT 0x0100创建一个文件并打开它
O_TRUNC 0x0200打开一个现有文件并将文件长度设置为0,保留其他属性
未使用O_EXCL 0x0400
O_APPEND 0x0800其他打开的文件
O_TEXT 0x4000打开文本文件以翻译CR-LF控制字符
O_BINARY0x8000无需CR-LF转换即可打开二进制字符
mode此参数仅在access = O_CREAT模式下使用,其值如下:
S_IFMT 0xF000文件类型掩码
S_IFDIR 0x4000目录
S_IFIFO 0x1000 FIFO专用
仅S_IFCHR 0x2000字符
仅S_IFBLK 0x3000块
S_IFREG 0x8000仅为0x0000
S_IREAD 0x0100可读
S_IWRITE 0x0080可写
S_IEXEC 0x0040可执行文件
FILE * fopen(char *文件名,char * mode)
文件名文件名
模式打开模式:
r以只读模式打开文本文件
rb以只读模式打开二进制文件
w以只读模式打开文本文件
wb以只写模式打开一个二进制文件
一个附件来打开文本文件
ab append打开一个二进制文件
r +以可读可写的方式打开文本文件
rb +以一种可读可写的方式打开一个二进制文件
w +以可读可写的方式创建文本文件
wb +以可读可写的方式生成二进制文件
a +以可读可写的附加模式打开文本文件
ab +以可读可写的方式附加二进制文件
open和fopen之间的区别:
前者是底层IO,后者是高层IO.
前者返回文件描述符,后者返回文件指针.
前者是无缓冲的,后者是缓冲的.
前者与读,写等结合使用. 后者与freadfopen失败但生成了文件,fwrite等结合使用.
后者是在前者的基础上扩展的,在大多数情况下,使用后者.
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-256383-1.html