什么是仅调用一次并调用参数的控制台应用
What are console apps that are called just once with arguments called
我想构建一个应用程序,通过键入应用程序名称和要执行的命令,在从命令行调用时执行某些功能。例如在 git 中,我们执行以下操作:
git commit -m "a comment"
我的想法是,git 应用程序将使用参数commit, -m, and "a comment"
调用,它会处理它们并执行一些功能。我的问题是我认为它是如何完成的,这种类型的应用程序叫什么,我能读到任何关于这个的消息来源吗?
注意:我正在使用 c++ 对我的应用程序进行编程。
你有没有问过自己为什么int main()
或int main(int argc, char **argv)
?这就是论点。argc
是参数的数量(ARGument Count(,argv
是指向此参数数组(ARGument Values(的指针。第一个参数是应用程序名称。在您的示例中git commit -m "a comment"
argc
的值为 4 并且
argv[0]
: gitargv[1]
:提交argv[2]
: -margv[3]
: 评论
这至少是Unix/Linux中处理参数的标准方式。请注意,程序可以访问调用它们的名称,周围有一些程序的行为会有所不同,具体取决于调用它们的名称。例如 vi(1(、ex(1(、view(1( 都解析为相同的可执行文件/usr/bin/vi (Fedora 31, vim 8.2.109(。
正如评论和其他答案中提到的,是的,您认为的方式是正确的。 这些参数称为"命令行参数"。
看看这个以了解更多关于它们的信息。
相关文章:
- 为什么即使我调用参数化构造函数也会调用默认构造函数?
- 什么是仅调用一次并调用参数的控制台应用
- 调用参数排列不变函数 f(i++, i++)
- 调用参数不是原子参数的函数是此代码引发异常的原因吗?
- 如何使可调用参数的签名在C++模板中可见?
- x64 函数调用参数推送/移动顺序 (MSVC)
- 如何调用参数由另一个函数生成的函数?
- 从从可调用参数创建的线程对象参数移动构造 C++11 线程
- 正确调用参数化 std::函数
- 是否允许在调用参数中使用类型名 T
- 我不知道如何调用参数为节点类型的函数
- 函数调用参数列表 (C++) 中的空格
- Valgrind 错误:系统调用参数 epoll_pwait(sigmask) 指向不可寻址的字节
- 这C++代码如何让我调用参数数量错误的函数
- 在计算后,在基类之后调用参数化构造函数
- NPAPI调用参数包装
- 在类组合中调用参数化构造函数
- 为什么在创建类对象数组时不能调用参数化构造函数?
- 如何在 for 循环中调用参数化构造函数
- 如何在PIMPL设计模式中调用参数化构造函数