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
和prog
和Tiny.txt
都直接在src
目录下(都是同级)。我不明白为什么 fopen
给我一个无效参数错误。
我 运行宁 Ubuntu 20.04.3
抱歉,我刚刚意识到我在 -rb
中使用了 -
。它应该只是 rb
.
问题是你在打开模式参数中使用了无效字符,错误信息很清楚,一个参数无效,第一个是文件名,里面可以放任何东西...所以查看您拥有的唯一其他参数。 '-'
终于有罪了
应该有:
FILE * fp = fopen(file_path, "rb");
而不是:
FILE * fp = fopen(file_path, "-rb");
我有一个非常简单的程序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
和prog
和Tiny.txt
都直接在src
目录下(都是同级)。我不明白为什么 fopen
给我一个无效参数错误。
我 运行宁 Ubuntu 20.04.3
抱歉,我刚刚意识到我在 -rb
中使用了 -
。它应该只是 rb
.
问题是你在打开模式参数中使用了无效字符,错误信息很清楚,一个参数无效,第一个是文件名,里面可以放任何东西...所以查看您拥有的唯一其他参数。 '-'
终于有罪了
应该有:
FILE * fp = fopen(file_path, "rb");
而不是:
FILE * fp = fopen(file_path, "-rb");