fopen()中的"w"方式,与具体的环境有关,有些实现方法是先把已存在的文件删除了再重新创建一个同名文件的,若采用这种方法,先前已打开的文件未关闭,就无法删除。要稳妥,就应该无论如何都关闭第一次打开的文件,然后再转换模式重新打开一次。
本质上,读写文件的操作,是不能仅靠fopen()的返回值是否为NULL来判断的,返回NULL的原因其实有很多,比如没有权限、共享冲突、文件错误、路径错误、设备不可存取等等,不是轻易地用fopen()就能解决的,即使那个文件不存在,fopen("w")也可能失败。这种方法,在单机时代有用,但现在的多任务多用户系统,不能再这样了。