【问题标题】:Adding a help switch to a console application [closed]向控制台应用程序添加帮助开关[关闭]
【发布时间】:2013-08-01 20:11:33
【问题描述】:

我想知道如何制作在终端中运行的应用程序。我的意思是一个程序,他们可以随时键入-h 寻求帮助,并且他们可以选择不同的命令来运行...即您在终端中运行的任何 linux 应用程序。

任何资源将不胜感激。

【问题讨论】:

  • 你可能想看看man 3 getoptgetopt*() 系列函数提供了一种方便的方式来实现和解析命令行选项,例如 -h

标签: c linux console-application


【解决方案1】:

在 C 中,你的主程序通常写成:

int main(int argc, char *argv[])

argv 数组是参数(argv[0] 是您运行的命令的名称),因此您只需检查 if(argc > 1 && !strcmp(argv[1], "-h")) 以查看您是否以 -h 运行(只需使用 printf打印到终端)。

如果您想要更合适的参数解析库,请查看getopt (https://www.gnu.org/software/libc/manual/html_node/Example-of-Getopt.html)。 GNU 版本(这是大多数 Linux 发行版使用的版本)还具有长参数功能(处理 -h--help

【讨论】:

  • argp 函数也在 Glibc 中并且更易于使用,请参阅 here
【解决方案2】:

Nirk 给出了您可以合理预期的最佳答案。你在这里问了一个相当广泛的问题。我要补充一点,您应该下载GNU Core Utils 的源代码并尽可能地浏览代码。大多数命令行实用程序花费 75% 的代码来收集、分组、处理、检查等命令行参数!选择一个包含一些简单选项的程序,因为复杂的选项会让您头疼至少几个小时。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-15
    • 1970-01-01
    • 1970-01-01
    • 2016-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多