C++ 通过 cmd 或 shell 执行函数
C++ Execute a function through cmd or shell
第一件事,对不起,我的英语不好,问得很差。我搜索了很多,但我无法用简单的语言解释。我使用 Linux 服务器和命令行,我习惯于通过它调用程序,例如
./program foo -u adm -p 123
但是我一直想知道如何使程序像那样工作,我的意思是调用特定函数并编写参数而无需打开程序本身。
换句话说。
如果我编写这样的C++,然后编译
#include <iostream>
using namespace std;
void SayHello(string Name)
{
cout << " Hello " << Name;
}
我如何通过命令行调用它,例如
./Program SayHello CARLOS
对不起我的无知,但这是我想学习的东西。
感谢您的关注
如果要根据参数调用程序的函数,可以执行以下操作:
int main(int argc, char* argv[]) {
if(argc > 2){
if(strcmp(argv[1], "SayHello") == 0){
SayHello(argv[2]);
}
}
return 0;
}
当然,这只是一个草图,如果你想实现的更复杂,我可以改进。如果您希望"SayHello"以外的其他函数也可以调用,您还可以构建一个更动态的解决方案。
int main( int argc, char** argv )
这里 argc 是指参数的数量(arg 计数)argv 引用参数数组("char*"数组)(参数值)
从命令行调用程序将导致一个带有这些参数的主条目;它仍然需要解析它们并相应地启动命令。
void main() {
char *name[] = {
"./program",
"-c",
"foo -u adm -p 123",
NULL
};
execvp(name[0], name);
}
在那里,每个可执行文件都需要一个 main 函数,它是执行的入口点。
#include <iostream>
#include <string>
using namespace std;
void SayHello(string Name)
{
cout << " Hello " << Name;
}
int main(int argc, char* argv[])
{
if (argc > 1)
SayHello(argv[1]);
}
要编译此内容,请
$g++ 你好.cpp
它应该在Linux上产生a.out。
运行它
./a.out "世界!"
相关文章:
- 执行函数时导致崩溃的变量
- 在多个时间戳处执行函数
- 程序不会执行函数 c++
- 仅在函数模板中为那些定义了函数的类型执行函数
- 如何在 c++ 的类声明中执行函数?
- 从 std::vector 迭代器中执行函数指针
- 异步 60 秒延迟后C++执行函数?
- 如果发生错误,则返回错误值,否则,继续执行函数
- 执行函数两次
- C++11:如何在 n 秒后在主线程中执行函数
- C++执行函数和 lambda 内部
- 从主线程C 11执行函数调用的线程
- 现代C++执行函数返回指针的方法
- 为什么Win API线程执行函数,而标准线程则没有
- varargs宏以执行函数调用或将其转换为字符串
- 单步执行函数,但不进入VS2017的参数评估
- 加载 Lua 文件并使用变量而不执行函数
- 尽可能在编译时执行函数契约
- 在QT应用程序中创建并执行函数
- 如何使用boostsio_service.post()执行函数并使用数组或指针作为参数