当我尝试向C中的main()函数传递参数时,我总是只能获得1个参数(并且argc总是1,即程序的名称)。我的程序是在gcc中编译好的。
#include <stdio.h>
#include <string.h>
#include "chkin.h"
#include "sort.h"
#include "display.h"
int main(int argc, char* argv[])
{
if(1 == chkin(argc, argv))
return 0;
if(strcmp("sort", argv[1]));
sort(argc, argv);
if(strcmp("display", argv[1]));
display(argc, argv);
return 0;
}
和我的运行命令是:./program sort tfile.txt。问题是什么?
gdb(基于你对@Jack的评论)将只读取第一个参数'program'。如果你想通过gdb运行程序,你必须尝试:
gdb ./program
(gdb) r sort tfile.txt
希望能有所帮助
还可以显示chkin和display的代码吗?很可能,问题就在那里。
或者,您可以将程序附加到gdb,然后输入"br main;排序文件。txt;p argv;p命令行参数个数"