【问题标题】:Add a command to a C program in Linux在 Linux 中向 C 程序添加命令
【发布时间】:2012-09-01 18:54:29
【问题描述】:

我是 C 和 Linux 的新手。在终端运行编译程序时,如:

./myProg --myCommand1

然后myProg 将根据命令“myCommand1”完成工作。我想向 myProg 添加几个命令。我不确定char *argv[] 是否可以用于此目的。

谢谢。

【问题讨论】:

  • 它可以用于那个。
  • “--myCommand1”的例子有哪些?像 ls 这样的 linux 实用程序或像 -c 这样的参数?
  • 特别是,这些被称为命令行参数
  • "--myCommand1" 是我在myProg中定义的字符串,比如"--outPutNames"
  • @melodrama 那么是的,您可以使用 argv[i] 作为下面两个答案的建议。

标签: c linux command-line-arguments


【解决方案1】:

检查 GNU getopt 以获得解析命令行参数的简单方法

【讨论】:

    【解决方案2】:

    可以使用。 argv[1] 是第一个命令,argv[2] 是第二个,依此类推。

    【讨论】:

    • 哦,好吧,我以为它会以 0 开头。谢谢我不知道!
    • @Pacane argv[0] 是您的程序名称。
    【解决方案3】:

    是的,您需要为此使用 argc 和 argv 参数。 http://www.cprogramming.com/tutorial/c/lesson14.html 有一个使用它们的小教程。

    【讨论】:

      【解决方案4】:

      大多数 Linux 命令行程序使用名为 getopt() 的 C 级例程解析其参数。仅遍历 argv[] 数组有一些优势,基本上它将处理参数重新排列、短标志和长标志、帮助消息、使用说明以及现在通常在运行良好的命令行程序中被视为理所当然的一些项目.我强烈建议您花一天或更长时间来了解它。

      虽然使用程序向getopt 添加参数很容易,但如果设置了参数,编写执行某项操作的代码可能非常容易,也可能非常困难,具体取决于您的设想,您的愿景很详细,以及您的详细信息是否适合由计算机程序实现。

      【讨论】:

      • 虽然man optarg 将您带到了正确的位置,但我认为您的意思是大多数程序使用getopt() 解析它们的参数。
      猜你喜欢
      • 1970-01-01
      • 2010-09-08
      • 1970-01-01
      • 2022-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-05
      相关资源
      最近更新 更多