我正在制作Windows应用程序,其purpouse是通知我我的连接停机时间,并将它们记录下来供以后使用/报告。现在我使用批处理脚本实现相同的目标,并将其纳入项目的想法,但当我调查这个问题时,我碰到了多个建议,我应该not ever use system
within any of my C++ programs。大多数时候,原因是'它是特定的'和'资源要求'我有想法,但我想知道:为什么它不好,我使用system
如果我的意图是要单独制作应用程序对于Windows操作系统,特别是如果它将轻量级程序,将在后台工作?为什么'系统'不应该用于Windows特定的应用程序
编辑: 我想这需要澄清,让更多来源:
-
- 这是一个非常昂贵和资源重函数调用
- 这是不可移植:使用system()使程序非常不可移植,即仅适用于在系统级别具有暂停命令的系统,如DOS或W INDOWS。但不是Linux,MAC OSX和其他大多数。
I strongly disagree with using the system function (太长,这里引用)
-
- 系统()是不够灵活。 (与我一起)
- 它不提供对正在执行的命令的控制。 (对我来说,我只需要脚本的返回值)
- 它不是平台独立的。 (现在,这将是一个问题,我真的很喜欢看到一个例子,它在不同的平台上表现不同)
- 这是一个安全问题。 (同样,这将是一个问题。有人可以提供一个潜在的安全问题与系统()?一个例子)
- 系统()是不够灵活。 (与我一起)
其中的一些参数是不相关的我的项目,现在所以我不介意他们在这个特殊情况下,但结合我所读到的所有这些担忧似乎表明,应该不惜一切代价避免使用system()
电话。所以我想我应该使用另一种方法(我发现了一堆),但它们都对我来说似乎有点太复杂了至少(即:this,而不是只附加我已经funcioning整个脚本,这是大约一半该长度(25线))
永远不要相信建议告诉你“永远不要做点什么” –
“多种建议”,比如什么?来自哪里?资源?引文?我们邀请哪些人在这里发表评论。 – EJP
你的问题中的链接似乎回答你的问题。 – nefas