fopen() 返回 null,参数无效错误

fopen() returning null, with invalid argument error

我有一个非常简单的程序prog.c:

int main(int argc, char ** argv) {
  char * file_path = argv[2];
  FILE * fp = fopen(file_path, "-rb");
  if (fp == NULL) {
    perror("\nerror");
  }
}

我用 gcc -o prog prog.c -lrt 运行 和 ./prog --file Tiny.txt

progTiny.txt都直接在src目录下(都是同级)。我不明白为什么 fopen 给我一个无效参数错误。

我 运行宁 Ubuntu 20.04.3

抱歉,我刚刚意识到我在 -rb 中使用了 -。它应该只是 rb.

问题是你在打开模式参数中使用了无效字符,错误信息很清楚,一个参数无效,第一个是文件名,里面可以放任何东西...所以查看您拥有的唯一其他参数。 '-'终于有罪了

应该有:

FILE * fp = fopen(file_path, "rb");

而不是:

FILE * fp = fopen(file_path, "-rb");