我打算编写一个程序来调用cdrecord。 (我是一个初学者,一个试图“抓痒”的初学者)该程序将用C++编写。我已经确定我需要能够运行cdrecord才能使其正常工作。
cdrecord用C编写。但是,使用cdrecord的文档来自命令行。源代码包括一个主要功能,该功能为命令行应用程序提供动力,这与我和cdrecord要做的代码相同。
我想知道我是否应该:
最佳答案
system()通常是一种不错的方法,请注意不要将任意不受信任的值注入(inject)执行的字符串中。例如,如果您有一个Web前端,其中padsize选项默认设置为0,并且有人输入的不是数字,而是“0; rm -rf *;
”,请确保您最终不会调用“cdrecord padsize=0; rm -rf *; ...
”。
系统的另一件事是,启动第二个不同的进程可能会比较慢-如果您正在运行该程序数百次并且每次只需要花费几毫秒的工作,这可能很重要,但是对于您而言, cdrecord运行时可能会使启动的开销相形见.。