c++ - 是否可以在运行时从命令行调用方法或传递参数?

标签 c++ command-line command-line-arguments

我正在使用 Mac。我有一个 C++ 应用程序,例如叫我的应用程序。通常我可以通过 ./myapp 调用应用程序。

myapp 应用程序能够处理图像并返回一些文本结果。实际上myapp应用程序一开始总是要分配很多内存,所以如果我必须多次运行它会有点慢。

现在我想做这个

  1. myapp 将作为始终运行的服务运行。我将在最开始通过./myapp 启动myapp。

  2. 当我有一个图像要处理时,我只想输入类似 ./myapp arg1 arg2 的内容,这里我不想启动一个新进程,我想将新参数传递到已经运行的应用程序中并返回结果。

为了做出来,我该怎么做?我知道 myapp 必须包含一个等待请求的 while 循环。但是如何在运行时多次传递参数?

/* 这有点像例如恩吉克斯服务器。一开始你输入ngix来启动服务,当它运行时,你仍然可以通过“ngix argument”来传递参数,这个命令不会创建一个新的进程。 */

/* 实际上我有一个 C++ 图像处理应用程序和一个 python http 服务器。现在我要做的是,当 python 服务器从客户端接收到图像时,我通过 ./myapp imagelocation 启动一个新进程。 myapp 将处理结果返回到命令行,python 通过“os.popen(”./myapp imagelocation,”r”).read().strip()” 捕获它。但正如我所说,C++ 应用程序需要太多时间初始化,所以我只想初始化一次,一旦我有了图像,我就将图像传递给 C++ 应用程序。当然我知道我可以让 C++ 应用程序检查是否保存了新图像,并调用该方法。但是通过这种方式,我无法将结果告诉python应用程序 */

最佳答案

是的,你可以做你想做的,但你不能使用命令行参数。当程序启动时,它们只传递一次给您的程序。要等待请求,您可以定期检查一些其他流,例如文件或管道以获取新数据。

关于c++ - 是否可以在运行时从命令行调用方法或传递参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14604910/

相关文章:

c++ - 我如何知道 Windows 7 中是否启用了原始套接字?

c++ - `std::array<T, 0>` 是默认构造的,而 `T` 不是默认构造的吗?

javascript - 窗口命令行javascript

javascript - 如何从命令行访问 Node.js 服务器

java - 如何在命令行参数中配置系统属性 (ssl/tls) 的 Eclipse 运行配置

c++ - MS OPM(输出保护管理器)初始化 X509 链

c++ - 简单的 C++ - 有垃圾但功能没问题

linux - 如何在另一个 screen session 中运行程序?

python - 在 Python 命令行参数中拆分长参数

python sys.argv 区分int和string