gpt4 book ai didi

c - *++argv[0] 如何引用不同的命令行参数?

转载 作者:行者123 更新时间:2023-12-02 04:46:23 25 4
gpt4 key购买 nike

所以我在阅读 The C Programming language 时遇到了一个部分,其中程序现在允许有参数......例如

find -x -n pattern

这里,-x 表示除外。-n 表示编号行...pattern 是它将在另外几行输入中寻找的内容。

现在他们将 find 视为 *argv[0]-x-n*++argv[0]pattern*++argv[0]。计算机如何区分一个参数?

如果 3 个东西都等于 *++argv[0],那么它们就停留在 argv[1],但是它们都是??谁能详细解释一下?

最佳答案

argv[0] = program name = "find"
argv[1] = first argument = "-x"
argv[2] = second argument = "-n"
argv[3] = third argument = "pattern"

argc = 4,因此您知道没有其他参数需要处理。

不要对像 *++argv[0] 这样的表达式中预递增运算符的使用感到困惑。参数在单独的数组元素中传递。

当shell执行你的命令时,它使用空格来分隔命令行进入程序名称和参数并将它们传递给您的程序。有时您需要使用双引号来解决这个问题,例如,如果您需要处理名称包含嵌入空格的文件:

mv some stupid filename sane_filename  

这行不通,因为“some”“stupid”“filename”将被视为单独的参数。但你可以这样做:

mv "some stupid filename" sane_filename

获取带有嵌入空格的单个参数。

关于c - *++argv[0] 如何引用不同的命令行参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19718958/

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