导航:首页 > 操作系统 > linuxfopen失败

linuxfopen失败

发布时间:2022-09-10 15:23:07

‘壹’ linux下fopen总是失败返回空指针为什么

Linux下使用fopen函数时,第一个参数尽量用绝对路径,这样不容易调用失败;而且这个路径必须存在,否则也会调用失败,可以先判断这个路径是否存在,再调用fopen函数。

‘贰’ linux fopen函数 打开文件总是失败

是这样的再输入文件路径的时候要注意:
你的方向错了应该是"\"这样的反斜杠而且要输入两个反斜杠
因为字符串中的1个反斜杠的意思就是说他是个转意字符只有\\的时候才会显示出来1个字符向你的那个路径就应该写成fp=fopen("\\mnt\\yaffs\\red.txt")
有兴趣共同探讨C就给我留言啊

‘叁’ fopen 打开文件失败的问题

fopen 打开文件失败,有两个可能的原因:
1,相对路径错了;
2,文件名命名的有问题,比如打开fopen("1.txt","r");在相对路径下创建文本文件的的时候,将该文件命名为1 就可以了,不要加后缀.txt 。

‘肆’ linux中,使用fopen函数打开文件失败

你可以看下,在另一个目录的文件你是否有访问权限,同一个目录下一般来说,你把他复制过来,这个文件的拥有者(owner)就是你了,你是肯定可以访问的。每个程序都有一个当前目录的环境变量,你在shell中执行程序时,shell程序就是你执行的程序的父进程,你的程序从shell程序中继承了当前目录,所以你只给定文件名时,当然打开的就是当前目录下的文件了

‘伍’ Linux系统下C语言fopen函数几个小问题

fopen函数是在当前目录下打开一个文件,其调用的一般形式为:
文件指针名=fopen(文件名,使用文件方式);
“文件指针名”必须是被声明为FILE 类型的指针变量;
“文件名”是被打开文件的文件名;
“使用文件方式”是指文件的类型和操作要求;
“文件名”是字符串常量或字符数组。
例如:
FILE *fp;
fp=fopen("file a","r");
其意义是在当前目录下打开文件file a,只允许进行“读”操作,并使fp指向该文件。

‘陆’ fopen 失败得原因

第一,如果是"rb",就是读文件,要先确认Tonny.txt在当前编译的目录下是否存在
第二,要确认Tonny.txt是否有权限打开
第三,要确认Tonny.txt是否有程序正在占用,例如有个程序正在fopen这个文件但没有fclose这个文件,那么这个是会打开失败的

‘柒’ fopen函数打开文件失败

fopen函数用来打开一个文件,其调用的一般形式为:
文件指针名=fopen(文件名,使用文件方式);
“文件指针名”必须是被说明为FILE 类型的指针变量;
“文件名”是被打开文件的文件名;
“使用文件方式”是指文件的类型和操作要求。
“文件名”是字符串常量或字符数组。
例如:
FILE *fp;
fp=fopen("file a","r");
其意义是在当前目录下打开文件file a,只允许进行“读”操作,并使fp指向该文件。
又如:
FILE *fphzk
fphzk=fopen("c:\\hzk16","rb");
其意义是打开C驱动器磁盘的根目录下的文件hzk16,这是一个二进制文件,只允许按二进制方式进行读操作。两个反斜线“\\ ”中的第一个表示转义字符,第二个表示根目录。
使用文件的方式共有12种,下面给出了它们的符号和意义。
文件使用方式

‘捌’ 若执行fopen函数时发生错误,则函数的返回值是

若执行fopen函数时发生错误,则函数的返回值是NULL(即0)。

文件顺利打开后,指向该流的文件指针就会被返回。若果文件打开失败则返回NULL,并把错误代码存在errno 中。

执行fopen函数时,如果文件打开成功,则返回该文件结构体的指针,如果 打开失败(例如,读打开时文件不存在,写打开时文件不能创建),则返回NULL(即0)。

这个函数是用来判断指针是否已经到达文件尾部的。若fp已经指向文件末尾,则feof(fp)函数值为“真”,即返回非零值;否则返回0。

使用void类型指针要注意的几条规则:

1、void*类型只有地址信息没有类型信息,所以不能计算偏移。

C/C++中的指针通常来说有两个属性:

(1)指向变量。

(2)指向对象的地址和长度。

指针其实就是存储被指向变量的地址,并不保存其长度;而且存的这个地址仅是变量的首地址,并不是该变量占据内存的所有地址空间。

2、任何指针(包括函数指针)都可以赋值给void指针。

特点:

(1)不需要类型转换。

(2)只获得变量/对象地址而不获得大小。

‘玖’ fopen出错是什么原因 同样的函数 在换台机子就不能用了

mode有下列几种形态字符串: r 打开只读文件,该文件必须存在。 r+ 打开可读写的文件,该文件必须存在。 w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。 w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。 a 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。 a+ 以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。 上述的形态字符串都可以再加一个b字符,如rb、w+b或ab+等组合,加入b 字符用来告诉函数库打开的文件为二进制文件,而非纯文字文件。不过在POSIX系统,包含Linux都会忽略该字符。由fopen()所建立的新文件会具有S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH(0666)权限,此文件权限也会参考umask值。 返回值 文件顺利打开后,指向该流的文件指针就会被返回。若果文件打开失败则返回NULL,并把错误代码存在errno 中。 附加说明 一般而言,开文件后会作一些文件读取或写入的动作,若开文件失败,接下来的读写动作也无法顺利进行,所以在fopen()后请作错误判断及处理。 范例 #include<stdio.h main(){FILE * fp;fp=fopen(“noexist”,”a+”); if(fp= =NULL) return; fclose(fp);}原来使用gets(filename) 获取文件名字 然后fopen(filename,rb) 现在打算用生成的exe文件直接打开文件,在cmd里面直接输入:openfile.exe myfile.bat就可以打开文件, 具体做法是:你的main函数要重新写.原型为 int main(int argc, char* argv[]) argc:参数的个数,(包括程序名文件名) argv:参数表,每一个元素都是一个字符类型的指针 argv[0]就是你的程序文件名指针,argv[1]—argv[n]才是你输入的参数用法举例:/************************************************************** 文件名为:mainpara.c,保存在F:\vccode目录下面 编译后在F:\vccode\debug 目录下面生成一个可执行文件mainpara.exe然后进入MS-DOS,敲入: F: 回车, 敲入:cd vccode\debug 回车

‘拾’ linux fopen返回NULL,errno为0,用perror输出的是Success,求解释。

你直接1:touch /home/1 创建一个文件;
2:vi 1;
3.输入几个字母abcde
4:wq//保存
fp = fopen( /home/1, "r");

if(fp==NULL) //如果失败了
{
printf("错误!");
exit(1); //中止程序
}
看看打开能行么,可能是宏定义的问题。
errno 记录系统的最后一次错误代码。代码是一个int型的值,在errno.h中定义的,你看到不一定是fopen失败记录的值。
手工,望采纳!

阅读全文

与linuxfopen失败相关的资料

热点内容
java和php通信 浏览:679
为什么黑程序员 浏览:162
程序员男生 浏览:455
戴尔文件夹内文件怎么置顶 浏览:582
云服务器6m网速 浏览:722
vivo手机中国联通服务器地址 浏览:862
工程总控编译失败 浏览:706
燕赵红枫app如何下载 浏览:867
php查杀软件 浏览:878
教育管理学pdf 浏览:547
服务器均衡怎么使用 浏览:626
linux中jps 浏览:954
单片机实验感想 浏览:561
程序员级别数学算法逻辑 浏览:900
2k21公园怎么换服务器 浏览:724
php释放数据库连接 浏览:722
php网页抓取工具 浏览:726
android设置对齐方式 浏览:23
linux创建网页 浏览:280
净化车间门算法 浏览:934