QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 668|回复: 12

奇怪!!

[复制链接]
发表于 2003-5-4 20:00:37 | 显示全部楼层 |阅读模式
我用fopen开文件, 编译通过了!

当文件不存在时, 他会创建, 但是就是打不开, 还会能创建不能打开????

从来没见过??
发表于 2003-5-4 20:48:56 | 显示全部楼层
这么个打不开法?不能写?打开时是不是用的w?
回复

使用道具 举报

 楼主| 发表于 2003-5-4 21:28:08 | 显示全部楼层
是w, 就是返回NULL
回复

使用道具 举报

发表于 2003-5-4 21:56:20 | 显示全部楼层
fopen mode:
r or rb pen a file in read only mode
w or wb : open a file in write mode. if the file exist, it is truncat to 0,else create new file.
...
can you show us the detail?
回复

使用道具 举报

发表于 2003-5-5 11:19:26 | 显示全部楼层
代码贴出来看一下子先
回复

使用道具 举报

 楼主| 发表于 2003-5-5 11:45:43 | 显示全部楼层
[code:1]
  FILE *fp;
  if ((fp=fopen("out.txt", "w+")) == NULL) {
    printf("file can't open!\n");
  }
[/code:1]
回复

使用道具 举报

发表于 2003-5-5 11:50:09 | 显示全部楼层
写代码呢?
回复

使用道具 举报

 楼主| 发表于 2003-5-5 11:51:07 | 显示全部楼层
到这里已经出错了, 下面还有什么意义??
回复

使用道具 举报

发表于 2003-5-5 12:59:13 | 显示全部楼层
你在打开出错之后再读一次试试?
回复

使用道具 举报

发表于 2003-5-5 13:17:48 | 显示全部楼层
out.txt
的权限是不是设置错了?这个用户有没有w的权限?
我测试了一下,可以打开,但是如果去掉用户的w权限就不能打开了
回复

使用道具 举报

 楼主| 发表于 2003-5-5 13:51:12 | 显示全部楼层
我是root;

如果强行写得话,经典错误报出: Segmentation fault
回复

使用道具 举报

发表于 2003-5-5 14:16:46 | 显示全部楼层
[code:1]
#include <stdio.h>

int main()
{
  FILE *fp;
  if ((fp=fopen("output.txt","w+"))==NULL)
    printf("Can not open the output file\n");
  return 0;
}
[/code:1]

测试通过,没有任何问题呀?你再好好检查检查
回复

使用道具 举报

发表于 2003-5-6 10:51:43 | 显示全部楼层
根据open和stat的调用发现 有时候fopen会默认加上类似open调用中的一个什么什么参数 反正做用是加上create标记的打开文件操作当文件存在的时候会失败
这个参数在fopen中是没有特别指明的 我自己尝试的时候也没有出现 建议使用普通用户试一下?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-16 00:50 , Processed in 0.044392 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表