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

标签 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 编程的新手。感谢您的所有回复。

最佳答案

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/

相关文章:

linux - 为什么linux中的ls -l命令显示总数?那总共是关于什么的?

c++ - 帮助 VS8 命令行到 IDR?

windows - PUSHD 命令后批处理文件 ECHO 不起作用

c++ - OpenGL 示例中 WinMain 错误的重新定义

c - 在c中制作具有特定宽度和高度的钻石(gnuplot)

java - 如何使用命令行在项目中执行 “Sync Project with Gradle Files”?

bash - sh: 如何扩展环境变量?

c++ - 简单的 libcurl 应用程序 - 段错误

c - ISO C90 禁止混合声明和代码...但在某些情况下允许它?

c# - 什么是显示 XOR 语句的优雅方式