我正在考虑如何设计一个程序,该程序由于所有事件而检查命令文件(它基本上保存键值对,其中键是命令,并且value是要执行的代码)并运行该命令的匹配代码。 它将在unix / linux机器上运行。
为简单起见,该计划如下: 它会等待用户的输入。当用户输入有效命令(即命令文件中出现的命令)时,将执行匹配代码。如果它没有匹配任何命令,它将打印"没有匹配的命令"。
因此,如果我的命令文件如下:
run1='a.py'
run2='b.py'
我输入" run1"那么a.py将被执行。如果我输入" run3"那么"没有匹配的命令"将被打印。
我想在C ++中实现这一点,我已经看到类似的实现,人们使用system()
来执行命令,但这感觉是一种不好的方法来实现这一点。
我还有什么其他方法可以实现这个目标?
p.s - 我在我的例子中写道,正在运行的代码是在python中。我不确定我是否希望这是唯一的选择(因此我需要能够确定类型。让我们假设我能做到这一点)。 这仍然可以实现吗?
答案 0 :(得分:1)
有很多选择。 system("a.py");
将执行您想要的操作(假设在正在运行的系统上正确安装了python)。如果这是“最佳”解决方案,实际上取决于您想要实现的目标,而且您的问题并不完全清楚。
大多数其他解决方案或多或少都是系统特定的。例如,你可以在Unix / Linux中使用fork()
和exec()
[python作为实际可执行文件,并"a.py"
作为在python中运行的文件]的一种风格,但是在Windows中你不得不使用,例如,spawn()
(再次使用python作为可执行文件,例如"a.py"
作为要运行的代码)。