我有一个C++ windows服务,当我调用system()函数来释放命令时,它有时会崩溃。我已经在Windows命令行中运行了命令的确切文本,并且它运行得很好,但由于某种原因,它在system()运行时失败。有没有比用system()更好的在C++中提取命令的方法?
更糟糕的是,我似乎无法得到任何有关system()失败原因的信息。似乎没有提出异常,因为我正在做一个捕捉(...),没有任何东西被抓住。我的服务停止运行。我知道这是对system()的调用失败,因为我在调用之前和之后都放置了日志信息,之后的任何事情都没有记录任何内容。
那么,有没有不同的方法可以剔除我的命令?至少,如果出现问题,某些事情会给我一些信息,或者至少让我处理一个例外情况。
'exec'肯定会给你更多的控制过程。许多系统也具有'spawn'功能。 – 2010-10-30 20:51:35
不太可能,因为它是Windows。更可能是CreateProcess或类似的。 – SimonJ 2010-10-30 20:53:05
Fork在Windows API中不存在。 – 2010-10-30 22:07:03