需要有关简单C命令行参数的帮助

时间:2013-07-30 02:27:34

标签: c command-line

我真的不知道如何解释这个,但这是我的问题:

我正在尝试让我的程序接受命令行参数,然后通过运行程序。 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编程的新手。谢谢所有回复表示赞赏。

2 个答案:

答案 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