gpt4 book ai didi

c - 处理 C 中参数前后的命令行选项

转载 作者:太空狗 更新时间:2023-10-29 15:27:30 24 4
gpt4 key购买 nike

到目前为止,我一直在使用 getopt_long解析命令行 C 程序的选项。

有没有办法在遇到非选项参数时停止 getopt_long 解析?如果不是,用 C 语言处理这个问题的最佳方法是什么?

举个例子,我想以类似于 git 的方式处理命令,并在命令前有一般参数,在命令后有特定于命令的参数:

git [general options] <command> [command options]

例如:

git --bare commit -a
git -p --bare status -s

-p--bare 是通用选项,可以与所有命令一起使用,而 -a 特定于 commit命令,以及-s特定于status命令。

使用 getopt_long 将首先尝试解析所有选项,然后将非选项参数留待处理。理想情况下,我希望在遇到非选项(即命令)后停止解析,然后将剩余的参数传递给特定于命令的选项解析器。

最佳答案

GNU Getopt 手册说:

POSIX demands the following behavior: The first non-option stops option processing. This mode is selected by either setting the environment variable POSIXLY_CORRECT or beginning the options argument string with a plus sign (‘+’).

关于c - 处理 C 中参数前后的命令行选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7066822/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com