我真的不知道该如何解释,但这是我的问题:
我试图让我的程序接受命令行参数,然后通过运行程序。 Linux 命令行 (CentOS 6)。
这是主要功能:
int main(int argc, char *argv[])
我正在尝试运行一个 Linux 程序,代码如下:
system("nmap -sT -p 19 1.1.1.* -oG - | grep 19/open > temp");
我想用我输入到 C 程序中的第一个参数替换“1.1.1.*”,例如:
system("nmap -sT -p 19 ", (argv[1]) "-oG - | grep 19/open > temp");
我尝试了多种方法,但似乎都行不通。
总而言之,我正在尝试将我输入程序的第一个参数用于替换系统函数中的“1.1.1.*”。我不知道该怎么做,我是 C 编程的新手。感谢您的所有回复。
最佳答案
snprintf
是最安全的方法,这是一个简单的例子,没有对 argc
等进行任何检查......:
#include <string.h>
#include <stdio.h>
int main(int argc, char *argv[])
{
char buf[200] ;
char str1[] = "nmap -sT -p 19 ";
char str2[] = " -oG - | grep 19/open > temp";
snprintf(buf, 200, "%s%s%s", str1, argv[1], str2);
printf( "%s\n", buf ) ;;
}
关于c - 需要有关简单 C 命令行参数的帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17937359/