C编程:将文件拖放到程序的图标上

时间:2010-11-12 12:11:17

标签: c compiler-construction programming-languages drag-and-drop crash

我刚制作了一个小程序,它读取拖动文件名称并将其写入输出文本文件

但是如果我编译这个程序,当我尝试将文件拖过它时会崩溃。 如果我用doble打开它就可以了;如果我用命令行和参数打开它就可以了;但如果我只是将文件放在我编译的程序上,它总是崩溃,我不知道为什么

尝试像这样编译:

#include <stdio.h>

int main(int argc, char * argv[])
{
    FILE * File=fopen("file.txt", "w");
    fclose(File);
    return 0;
}

如果您将一个简单文件拖放到该程序图标上,程序将崩溃

有谁知道为什么?

1 个答案:

答案 0 :(得分:2)

您可能在运行可执行文件时对当前工作目录及其权限做出假设。在无效的FILE *上调用fclose(例如NULL)很可能会导致崩溃。您需要验证fopen是否成功,例如

#include <stdio.h>

int main(int argc, char * argv[])
{
    FILE * f = fopen("file.txt", "w");
    if (f != NULL)
    {
        //
        // write stuff to file here if you want...
        //
        fclose(f);
    }
    return 0;
}