我有一个程序调用了我自己编写的一个 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
呢?
system
。"/bin/sh ..."
肯定不是可移植的。 - rici