命令格式:system("ls -l");,使用system即可
首先需要知道查询命令:find, find命令中可以查找磁盘中的文件,find命令中有比较多的参数,这里介绍常用的几种:
-type 根据文件属性查找,有 b: 块设备、 d :目录、 c:字符设备、 p:符号链接、 f:普通文件、s:socket文件 ,要查找.txt、.jpg这样的普通文件就采用
-type f 查找的结果就是只含冰普通文件。
根据文件的时间信息查找的参数有: 后面的参数可写成: n、 +n、 -n, 分别表示:在什么时候、之前、之内,
-atime:最近一次访问时间, 单位:天, -atime 5表示在从现在往前数第五天访问的文件, -atime +5表示在5天前访问的时间, -atime -5表示在5天之内访问的时间
-mtime:最近一次修改时间, 单位:天,
-ctime: 文件创建时间,单位:天
-amin:最近一次访问时间, 单位:分钟
-mmin:最近一次修改时间, 单位:分钟,
-cmin:文件创建时间, 单位:分钟,
例如,使用-cmin在一个接收摄像头实时上传的文件夹中进行检测的结果如下图所示,+5的没有测试,图 片太多。19:15:15秒,这是时间
对于查找最新的上传的图片所以命令为: find /home/pi/ftp/camera1 -amin -1 -type f 即可,其实对于一分钟这里有很多中写法,用-mmin、-cmin都可以,对于一分钟的可以1 、-1 都可以,超过一分钟的就只能用-n了,而对于a、c、m的区别具体的可以再找找资料,这里给出其中的一个差别如下图所示:
若对find命令感兴趣的可以参考 http://www.cnblogs.com/wanqieddy/archive/2011/06/09/2076785.html 。
现在知道了shell命令,在linux c++程序中使用shell命令就可以使: system("find /home/pi/ftp/camera1 -amin -1 -type f "),如果需要将查找的结果存储起来,其中一个办法就是将结果写入txt文件中:
system("find /home/pi/ftp/camera1 -amin -1 -type f > result.txt"), 若想在使用命令的时候传入参数:
使用string来转换即可: string storeTxt= "result.txt";
string command = "find /home/pi/ftp/camera1 -amin -1 -type f >" + storeTxt;
system(command.c_str()); //如报错,包含头文件#include 即可
这是我写的第二篇博客,字体、格式不美观的地方欢迎大家提出,日后的博客中将会改进。