问题标签 [argv]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
10 回答
17415 浏览

c++ - 在 C++ 中将字符串转换为 argv

我有一个包含要使用 execv 执行的命令的 std::string,将其转换为 execv() 的第二个参数所需的“char *argv[]”的最佳“C++”方法是什么?

澄清:

0 投票
4 回答
4298 浏览

c++ - 转换 std::vector到 c 风格的参数向量 arv

我想准备一个老式的参数向量(argv)在函数中使用

int execve(const char *filename, char *const argv[],char *const envp[]);

我尝试使用 stl::vector 类:

最后我将向量传递给 execve()

execve("bashscriptXY", &argv[0], NULL)

代码编译但 ArgV 被 execve()“忽略”。所以这似乎是错误的,我正在尝试。我应该如何使用 c++ 以有效的方式构建 argV?

0 投票
1 回答
1784 浏览

shell - 如何从 C shell 中的命令行输入设置多个单词变量

我正在编写一个脚本来搜索文件中的模式。例如

脚本名模式 file1 file2 filenN

我使用 for 循环遍历参数 argv,如果提供了所有参数,它就可以完成这项工作。但是,如果只提供一个参数(在这种情况下为 pattern ),它应该要求输入文件名或名称,然后检查模式。我如何设置变量以包含从命令行输入的多个单词,以便我可以在循环中使用它。或者甚至更好的是可以将命令行输入分配给 argv,所以我不必使用相同的循环两次,因为它是不同的变量名(一个循环通过 argv,如果超过 on 参数,第二个循环通过如果仅提供一个参数,则为文件名变量)。以下是我的脚本中导致问题的部分:

0 投票
5 回答
10541 浏览

c - 确定 argv[1] 中的字符串是否以字符或数字开头(C 编程)

我正在用 C 语言编写一个带有两个参数的小型应用程序。一个是文件名,另一个是数字,它们可以随机指定。

./主文件名 12345

./main 12345 文件名

两者都应该工作。

当我知道文件名以字符开头时,如何轻松确定哪个是哪个?

0 投票
2 回答
3171 浏览

c++ - 在 C++ 中解析 argc 和 argv

我想学习更多 C++... 通常我会创建一个 for 循环来解析 argv,最后我会得到一堆 C 风格的字符串。我想在 C++ 中做类似的事情,但最好不要从 /proc/whatever 中读取。起初,我试图将 C 风格的字符串转换为 C++ 风格的字符串,但没有结果......令人沮丧的是,SO 上的每个人似乎都想知道如何走另一条路,这就是 c_str() 的用途. 有什么好的 C++ 方法来做到这一点(即解析 argv)?

另外,请注意,我正在寻找一个 unix 风格的答案,我所见过的所有转换技术都与 Windows 有关,我对此完全感兴趣。

0 投票
5 回答
12472 浏览

c - (*++argv)[0] 和 while(c = *++argv[0]) 之间的区别

我有以下代码片段:


包含以下表达式:

括号中的这个表达式(*++argv)[0]while(c = *++argv[0])没有括号的表达式有什么不同吗?

如果是这样,怎么做?是否(*++argv)意味着指向下一个参数的指针,是否意味着指向*++argv[0]当前 char 数组中下一个字符的指针?

0 投票
8 回答
75481 浏览

c++ - “argv[0] = name-of-executable” 是公认的标准还是只是一种常见的约定?

main()在 C 或 C++ 应用程序中传递参数时,将argv[0]始终是可执行文件的名称?或者这只是一个常见的约定,不能保证 100% 的时间是正确的?

0 投票
2 回答
23317 浏览

c - 创建指向文件的指针数组

我将如何在 C 中创建一个文件指针数组?
我想创建一个指向 main 参数的文件指针数组......比如 a1.txt、a2.txt 等......所以我会运行./prog arg1.txt arg2.txt arg3.txt让程序使用这些文件。
那么 main 的论点是char **argv

从 argv,我想创建文件/文件指针数组。这就是我到目前为止所拥有的。

0 投票
6 回答
52838 浏览

c - 在 C 中使用 argv?

对于作业,我需要为我的 C 程序提供命令行参数。我之前(在 C++ 中)使用过 argc/argv 没有问题,但我不确定 C 风格的字符串是否会影响它的工作方式。这是我的主要内容的开始:

所以我将我的程序称为“program.exe -e myargstuff”,但我得到了“错误:错误用法...”输出,即使我的 printf() 告诉我 argv[1] 是“-e”。请帮忙?谢谢!

0 投票
4 回答
18314 浏览

c++ - 为什么要检查 (*argv == NULL)?

在我目前正在学习的数据结构课程中,我们的任务是用 C++ 编写一个网络爬虫。为了让我们领先一步,教授为我们提供了一个从给定 URL 获取源代码的程序和一个简单的 HTML 解析器来去除标签。该程序的主函数接受参数,因此使用 argc/argv。用于检查参数的代码如下:

其中“选项”已使用 argv[1] 中的开关填充,而 argv[2] 及更高版本具有剩余参数。我理解的第一个块很好,如果开关等于字符串,则根据开关做任何事情。我想知道最后一个 if 块的目的是什么。

可能是我的 C++ 有点生疏,但我似乎记得 *argv 等同于 argv[0],基本上意味着它正在检查以确保参数存在。除了我的印象是 argv[0] 总是(至少在大多数实现中)包含正在运行的程序的名称。我突然想到,如果 argc 等于 0,则 argv[0] 可能为空,但在 Google 上搜索我找不到一个确定这是否可能的帖子。

所以我转向你。最后的 if 块检查到底是什么?

编辑:我已经使用所选答案的评论中提供的推理,即有可能故意导致 argv[0] 变为 NULL,或者基于特定于平台的 main 实现变为 NULL。