- 任务:在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 = "./flower.sh ";
strcpy(command,file.c_str());
//parameter1
string parameter1 = ptr->d_name;
parameter1 = parameter1 + " ";
strcat(comm

本文介绍了在Linux环境下,如何使用C++程序调用shell脚本并传递参数,以及shell脚本如何接收这些参数,用于通过ffmpeg进行视频切割。通过system()函数实现C++调用脚本,shell脚本使用$1, $2等变量接收参数,最终实现在文件夹中批量处理视频文件。"
92705977,8257139,SAP成本分摊操作:KSU1/KSU2/KSU3/KSU5详解,"['SAP FICO', '财务会计', '成本管理', '企业资源规划', 'SAP操作']
最低0.47元/天 解锁文章
661

被折叠的 条评论
为什么被折叠?



