c - 将文件名打印到标准输出

标签 c file error-handling

我想运行一个程序,并允许用户在同一行输入。我检查文件是否存在,如果不存在,则打印

FILE : No such file or directory

    FILE* filename;
    filename = fopen(argv[2], "wb");
        //validate file name
        if(!filename) {
            perror(filename);
            return EXIT_FAILURE;
        }

当我编译时,我收到以下警告:

expected âconst char *â but argument is of type âstruct FILE *â

最佳答案

在您上面的代码中,filename 是一个 FILE *,而不是包含文件名的字符串。由于 argv[2] 似乎是文件名,您可以尝试:

        if(!filename) {
            perror(argv[2]);
            return EXIT_FAILURE;
        }

...但您应该首先检查 argv[2] 是否已设置(即 argc > 2)。

关于c - 将文件名打印到标准输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30854056/

相关文章:

c - 如何刷新文件 math.h

c++ - Ctypes 在使用 CMake 创建的共享库中找不到符号

ruby-on-rails - 如何在rails中上传文件?

c - '%s'期望参数类型为 'char *',但参数类型为 'int'

visual-studio-2008 - 如何在Visual Studio 2008中关闭预生成错误检查(尤其是在使用SSIS时)?

python - C和Python之间的套接字通信

c - 这个神秘的***检测到缓冲区溢出的来源是什么***: terminated error

php - 在 PHP 中处理巨大的文本文件?

Windows 操作系统无法打开适用于 linux 的文件名

java.net.ProtocolException : content-length promised 16280 bytes, 但收到 16272