Nik*_*off 5 c++ windows winapi
鉴于您正在构建一个Windows专属程序,为什么这些电话system()
如此讨厌?自从我开始用C++编程以来,"不要触摸系统"是我听到的非常多的东西.我温顺地遵守了这个原则,但它有什么坏处呢?
您放入系统调用的内容取决于您将运行该程序的操作系统.所以它完全不便携.此外,很多事情都可能出错,因为你只是将命令抛入虚空,并希望一切都会好起来的.错误处理(例如 - 要运行不存在的程序,或路径设置不正确,或者您没有权限,等等)是非常困难甚至是不可能的.
除了这一点,因为在大部分时间的评论中指出(真正的"最",如99.999%),也没有必要使用system
.
std::system()
要求您信任该命令以执行您想要的操作.您无法验证此假设是否合理.例如,PATH环境变量的异常值可能导致执行与标准设置不同的程序.
调用的行为std::system()
取决于系统.即使目前的要求是,应用程序不需要在其他操作系统上运行,此要求也可能会发生变化.考虑到这std::system()
通常用于可以以更便携的方式实现的目的(尤其是初学者),因此不需要引入平台依赖性.