- 任务:在linux平台下多次调用ffmpeg来切割多个视频
- 思考与难点:既然需要多次调用命令行命令ffmpeg,自然而然想到需要写一个shell脚本在c++程序中调用这个脚本就行了,但是问题并没有这么简单。c++程序中如何调用shell脚本?该怎么向shell脚本传入参数呢?shell脚本又是怎样来接受参数的
1、c++程序中如何调用shell脚本?
三种方式各有千秋,考虑到我写脚本十分简单,所以我用第一种调用方式system()。
2、该怎么向shell脚本传入参数呢?
这里我介绍的system的方式,看过system函数有一个字符串类型的参数,这个字符串就是你需要执行的脚本文件加上你需要传进去的参数。例如:
string command = "./flower.sh parameter1 parameter2";
system(command);
./flower.sh 可执行的shell脚本 parameter1需要传入的第一个参数 parameter2需要传入的第二个参数。
这一步非常重要也很容易出错,command中每个子串需要用空格隔开,在你写自己程序的是时候需要用strcpy()、strcat() 等函数把空格还有你的命令加进去。
char command[200] = {0};
string file =