Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C-使用自定义文件名创建新文件_C_Large File Support - Fatal编程技术网

C-使用自定义文件名创建新文件

C-使用自定义文件名创建新文件,c,large-file-support,C,Large File Support,我想用自定义文件名创建新文件。我使用此函数来执行此任务: int addfile(char* name)//return 0 if cannot create file { FILE* fn = fopen(name, "r"); if(fn == NULL) { return 0; } fclose(fn); addtotab(name, 0); return 1; } 不幸的是,fn变量始终为nul

我想用自定义文件名创建新文件。我使用此函数来执行此任务:

int addfile(char* name)//return 0 if cannot create file
{
    FILE* fn = fopen(name, "r");
    if(fn == NULL)
    {
        return 0;
    }
    fclose(fn);
    addtotab(name, 0);
    return 1;
}
不幸的是,fn变量始终为null ptr,因此它的早期返回值为0。有什么比使用fopen更好的方法吗?

你应该改变

FILE* fn = fopen(name, "r");


根据。

上的文档,您认为r为什么会创建一个新文件?请查看本页顶部的模式表,如果不存在,请选择一个将创建该文件的模式。好吧,我很笨,没听清楚,我在这里放了r expect w,谢谢你的帮助使用fopen没有技术上的错误,假设你以正确的模式打开它。fopen的一个小问题是,它为缓冲IO设置了一个缓冲区。这通常是一件好事,可以让您轻松地执行高效的读/写操作。但是,由于关闭文件时不进行读/写操作,因此不需要任何缓冲,因此使用较低级别的打开/关闭可能会有点效率。这是一个小小的吹毛求疵,我写这篇文章只是因为你要求一个更好的方法。
FILE* fn = fopen(name, "w");