程序是否可以在POSIX中获取命令行参数之间的空格数?

iBug

假设我用下面的代码编写了一个程序:

int main(int argc, char** argv)

现在,通过检查的内容,知道向其传递了哪些命令行参数argv

程序可以检测参数之间有多少空格吗?就像我在bash中键入这些内容一样:

ibug@linux:~ $ ./myprog aaa bbb
ibug@linux:~ $ ./myprog       aaa      bbb

环境是现代Linux(例如Ubuntu 16.04),但是我想答案应该适用于任何符合POSIX的系统。

托比·斯皮特

谈论“参数之间的空间”是没有意义的。那是壳的概念。

Shell的工作是获取整行输入,并将它们形成为参数数组以启动命令。这可能涉及解析带引号的字符串,扩展变量,文件通配符和代字号表达式等。该命令以标准exec系统调用开始,该系统调用接受字符串向量。

存在其他创建字符串向量的方法。许多程序使用预定的命令调用分叉并执行它们自己的子进程-在这种情况下,永远不会出现“命令行”之类的东西。类似地,当用户将文件图标拖放到命令小部件上时,图形(桌面)shell可能会启动一个过程-再次,没有文本行在参数之间添加字符。

就所调用的命令而言,在shell或其他父/前体进程中发生的事情是私有且隐藏的-我们仅看到标准C指定main()可以接受的字符串数组

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在POSIX中,main(void)是否可以恢复命令行参数?

在没有CRT编译的程序中,是否可以通过argv读取命令行参数?

Java命令行参数中的空格

在pytest中是否可以在参数装饰器中访问命令行参数?

是否可以在Windows命令行中使用变量来表示程序的多个参数?

在命令行中传递包含空格的参数

检测命令行参数中的空格不起作用

cmake 无法正确解析命令行参数中的空格

是否可以通过命令行参数设置rootMetricsPrefix?

在命令行中运行Rmarkdown时是否可以提供参数?

在IDLE中运行python脚本时,是否可以传递命令行参数(args)?

是否可以在命令行参数中引用最近修改的文件?

是否可以从命令行运行rascal程序?

是否可以在GitAhead中输入命令行git命令?

是否可以通过命令行确定YARN中当前活动的调度程序插件?

是否可以在命令行中运行 Java 应用程序/作为 Web 服务

您能否从进程 ID(包括命令行参数等)中获取完整的命令行?

检查 Ruby 代码中的命令行参数是否存在

getopts是否以某种顺序在命令行参数中读取?

检查shell中是否存在命令行参数

将多个程序的参数与 main 中的命令行分开

如何从文件中获取命令行参数

获取python中的所有命令行参数

如何在BeanFactoryPostProcessor中获取命令行参数?

在Vagrantfile中获取vagrant命令行参数

在shell脚本中通过变量获取命令行参数

在python中获取命令行参数时出现错误

在node.js中获取原始命令行参数

如何在锡兰中获取命令行参数?