我真的不知道如何解释这个,但这是我的问题:
我正在尝试让我的程序接受命令行参数,然后通过运行程序。 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编程的新手。谢谢所有回复表示赞赏。
答案 0 :(得分:1)
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 ) ;;
}
答案 1 :(得分:0)
只需使用以下语法接受Linux中的命令行参数即可。 ./program arg1 arg2