C 为什么我用fopen函数时参数r+ w+ a+都不能用,r w a都可以?

来源:百度知道 编辑:UC知道 时间:2024/05/17 09:37:02
r+ w+ a+,带“+”号的都返回0x00
#include <stdio.h>

BYTE read_dtu_ini(void)
{
FILE * fp;

fp = fopen((const char *)"DTU.INI", (const char *)"a+");
if (fp == NULL) {
printf("\nCan not open file!\n");
return 0;
}
}

(const char *)加不加结果都一样,多谢! 没有“+”返回的指针就正确。
对了,用的keil for arm的开发环境

文件已经存在,即使不存在,a+总应该可以用吧,但事实是都不能用。

(const char *)加不加结果都一样
r+ w+ a+都不能用,返回的fp都是0x00

用的keil for arm的SD卡例子,调用的是keil给的实时库,怀疑是库的问题。
有没有人用过,或者有其他办法打开一个文件后能对其进行读写操作。

把你是怎么用的代码加上 只要才可以看到问题

const char *是多余的!"a+"是为读/写打开一个文本文件 你换"w+"试试 它是为读写建立一个新的文本文件

代码贴上来。。

如果用r+打开一个文件,该文件必须存在,如果文件不存在就会出错了,不知道你是不是这个问题