c语言打开文件失败,C / c ++文件打开读取和写入失败的几个常见错误.

be41b5504559253d45e80545eb74cd11.png

文件读写失败中的几个常见错误.

1. 文件是否存在

2,文件权限. 该程序会打开非常关闭的文件,并且可能会更改文件权限.

3. 缓冲区大小足以读取文件吗?

4. 如果二进制文件打开功能需要| O_BINARY,则fopen需要添加b. 否则,将无法读取该文件.

5. 如果将文件USB插入串行端口,请特别注意USB串行端口的不稳定性. 容易读写异常. 建议使用扩展卡到串行端口进行长期操作.

//文件操作界面// /// //

int open(const char * path,int access,int模式)

path要打开的文件的路径和名称

访问访问模式fopen失败但生成了文件,宏的定义和含义如下:

7df434c371cb7e4f8aa9c6eb2bee1976.png

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转换即可打开二进制字符

d19f68f43f85491622c313b678b75dd7.gif

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可执行文件

c991902aad7da5356682f4cd6176e65d.png

FILE * fopen(char *文件名,char * mode)

文件名文件名

模式打开模式:

r以只读模式打开文本文件

rb以只读模式打开二进制文件

w以只读模式打开文本文件

wb以只写模式打开一个二进制文件

一个附件来打开文本文件

ab append打开一个二进制文件

r +以可读可写的方式打开文本文件

i_3_1589992672x376325621_26.jpg

rb +以一种可读可写的方式打开一个二进制文件

w +以可读可写的方式创建文本文件

wb +以可读可写的方式生成二进制文件

a +以可读可写的附加模式打开文本文件

ab +以可读可写的方式附加二进制文件

open和fopen之间的区别:

前者是底层IO,后者是高层IO.

前者返回文件描述符,后者返回文件指针.

前者是无缓冲的,后者是缓冲的.

前者与读,写等结合使用. 后者与freadfopen失败但生成了文件,fwrite等结合使用.

后者是在前者的基础上扩展的,在大多数情况下,使用后者.

本文来自电脑杂谈,转载请注明本文网址:

http://www.pc-fly.com/a/jisuanjixue/article-256383-1.html

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值