【发布时间】:2017-04-19 16:55:25
【问题描述】:
我有一个程序调用我制作的 shell 脚本工具,该工具通过一个目录并压缩文件并获取校验和值并调用其他一些工具来上传文件。手术大约需要 3 到 4 分钟。
我这样调用脚本:
int result = system("/bin/sh /path/to/my/script");
通过使用exec() 系列函数,我也得到了相同的结果:
int child = fork();
if(child == 0) {
execl( "/bin/sh", "sh", "/path/to/my/script", (char*)0 );
}
我知道使用exec,您可以将输出重定向到父程序,以便它可以读取命令行工具的输出,但除此之外,您应该何时使用system 而不是exec?
【问题讨论】:
-
注意一个是便携的,另一个不是。
-
但是很难找到可移植的
system的参数。"/bin/sh ..."肯定不会是便携的。
标签: c++