fopen_s的用法,fopen s函数的用法
c语言,fopen_s的第一个实参应该怎么写?FILE**pFILE是啥
你说的这个函数没有用过,不过一般在打开文件的时候都会返回一个文件描述符,其实就是返回一个指针,返回指针的方式有两种
1)返回值
2)参数传递:写法应该是
FILE fp;// 多重指针要注意内存分配的问题,我这里是在stack中分配空间,也可以在heap中分配
fopen_s(fp...
fopen_s的函数参数
pFile
文件指针将接收到打开的文件指针指向的指针。
infilename
文件名。
inmode
允许的访问类型。
---------------------------------------------------
返回值:
如果成功返回0,失败则返回相应的错误代码。
错误代码请到_doserrno,errno, _sys_errlist, and _sys_nerr去了解更多
错误条件 pFile filename mode 返回值 pFile的内容 NULL 任何 任何 EINVAL 没有改变 任何 NULL 任何 EINVAL 没有改变 任何 任何 NULL EINVAL 没有改变 EINVAL:无效的参数。

C语言 fopen_s的问题
fopen_s打开的文件不能共享。如果其他地方打开的该文件没有关闭的话,fopen_s应该是打不开的。
在help里面搜一下fopen_s的描述。
fopen与fopen_s的区别
fopen_s的安全是在于比函数fopen多了溢出检测。
另外在使用上,函数fopen的返回值是文件指针,如果返回的文件指针为NULL时,则表示打开文件失败。而函数fopen_s的返回值是相应的错误代码,通过查看错误代码代表的含义,有助于你排查问题。
还有一点,fopen_s打开的文件不能共享,如果你打开的文件需要共享的话,不能使用fopen_s函数。可以考虑_fsopen,_wfsopen这两个函数。
至于微软提示的警告,可以作为你的一个参考,至于改不改那就是你自己的事了。觉得碍眼的话,也可以参照“少年の俊”的回答去屏蔽掉。
fopen函数用法
fopen("...","...")
第一个参数是指向一个文件,如果当前文件不存在,系统会创建这个文件名。第二个参数是对这个文件进行的操作。例如,只读,读写,写等。
请参看下面的程序,了解其具体用法。下面程序实现的是在zhubihui.txt中写入创建子程序的结果。
#include stdio.h
#include stdlib.h
#include unistd.h
main()
{
int p1,p2,i;
FILE *fp;
fp=fopen("zhubihui.txt","w+");
if(fp==NULL)
{printf("Fail to create file");
exit(-1);
}
while((p1=fork())==-1);
if(p1==0)
{lockf((int)fp,1,0);
for(i=0;i10;i++)
fprintf(fp,"daughter%d\n",i);
lockf((int)fp,0,0);
}
else
{while((p2=fork())==-1);
if(p2==0)
{lockf((int)fp,1,0);
for(i=0;i10;i++)
fprintf(fp,"son%d\n",i);
lockf((int)fp,0,0);
}
else
{
wait(NULL);
lockf((int)fp,1,0);
for(i=0;i10;i++)
fprintf(fp,"parent%d\n",i);
lockf((int)fp,0,0);
}
}
fclose(fp);
}
fopen的用法是什么?
fopen的原型是:FILE *fopen(const char *filename,const char *mode)
参数filename指向要打开的文件名,mode表示打开状态的字符串,其取值如下表
字符串 含义
"r" 以只读方式打开文件
"w" 以只写方式打开文件
"a" 以追加方式打开文件
"r+" 以读/写方式打开文件,如无文件出错
"w+" 以读/写方式打开文件,如无文件生成新文件
你打开ac[1] 是怎么回事? 肯定出错了