FILE *fp;
fp=fopen("filename.txt","w");
首先检测filename.txt是否存在,如果不存在则在磁盘创建该文件,然后在内存开辟区域(应该是缓冲区)准备写该文件
调用fclose时,将内存中的内容写入到磁盘中去
测试(filename.txt不存在):
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *fp1,*fp2;
fp1=fopen("filename.txt","w");
if(fp1==NULL)
{
printf("fp1 open failed!/n");
}
else
{
printf("fp1 open success!/n");
}
fp2=fopen("filename.txt","r");
if(fp2==NULL)
{
printf("fp2 open failed!/n");
}
else
{
printf("fp2 open success!/n");
}
fclose(fp1);
fclose(fp2);
return 0;
}
输出:
fp1 open success!
fp2 open success!
说明文件操作不是互斥的,而且以写方式打开文件,如果文件不存在,先在磁盘创建该文件
加入写入语句:
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *fp1,*fp2;
fp1=fopen("filename.txt","w");
if(fp1==NULL)
{
printf("fp1 open failed!/n");
}
else
{
printf("fp1 open success!/n");
fputs("abcdef",fp1);
}
fp2=fopen("filename.txt","w");
if(fp2==NULL)
{
printf("fp2 open failed!/n");
}
else
{
printf("fp2 open success!/n");
fputs("ABC/n",fp2);
}
fclose(fp1);
fclose(fp2);
return 0;
}
打开filename.txt文件:
ABC
f
说明后关闭的,刷新了磁盘数据
《C语言参考手册》第五版,机械工业出版社,p261,有一段
在标准C语言中,访问方式字符串还可以在上述方式符之后包含其他字符。实现可以用这些补充指定数据流的其他属性,例如:
f=fopen("C://work//dict.txt","r,access=lock");
编译不报错,可惜
fp1=fopen("filename.txt","w, access=lock");
fp2=fopen("filename.txt","w, access=lock");
没看到任何影响,我用的是codeblock GNU GCC compiler
而且改为fp1=fopen("C://work//dict.txt","r,ac");也没任何错误
转自:http://blog.csdn.net/qq267197245/article/details/5124815