我正在测试一个程序"myprog.c",如果它使用任何输入参数运行,它会崩溃:
#include <stdlib.h>
int main(int argc, char * arg[]){
if (argc > 1 ){
abort();
}
}
正如预期的那样,"./myprog.out abc"崩溃了。但是后来我试图从一个文件中获取输入:"./myprog.out <inputs.txt",其中输入.txt有几个单词,程序不会崩溃。为什么不呢?>
这是因为 shell 不会将< inputs.txt
作为参数传递。相反,外壳使inputs.txt
的内容可以从stdin
中读取。
这是因为 argc 等于 1,您可以使用以下代码对其进行验证:
int main(int argc, char * arg[])
{
printf("argc = %in", argc);
if (argc > 1 ) {
abort();
}
}
输出:
Argc = 1
它的出现是因为你不能像它一样传递参数,如果你用一个
如果你想传递比 1 更多的参数,请喜欢它:
./a.out abc def ghi
如果你想通过文件获取"参数",请使用 getline