想在Fedora上做个类似监控的应用,每隔几秒拍照一次,同时,将图片发到指定的邮箱。
拍照使用vlc:
vlc -I dummy v4l2:///dev/video0 --video-filter scene --no-audio --scene-path /home/zzz--scene-prefix image_prefix --scene-format png vlc://quit --run-time
会在指定的目录/home/zzz生成一张图片:image_prefix00001.png,
然后将此图片以附件发送到邮箱:
uuencode /home/zzz/image_prefix00001.png image_prefix00001| mail -s "`date`" xxx@gmail.com
以上命令写入一个capture.sh中,然后在C语言中调用shell。下面是程序:
capture.sh内容如下:
#!/bin/sh
echo take photo!
vlc -I dummy v4l2:///dev/video0 --video-filter scene --no-audio --scene-path /home/zzz --scene-prefix image_prefix --scene-format png vlc://quit --run-time=1
echo send mail!!
uuencode /home/zzz/image_prefix00001.png image_prefix00001| mail -s "`date`" xxx@gmail.com
echo rm this one!!!
rm -rf image_prefix00001.png
mycapture.c内容如下:
#include <stdio.h>
#include <sys/wait.h>
#include <sys/unistd.h>
#include <sys/types.h>
int main()
{
int i = 0;
int space = 3;
char* env[]={"PATH=.",NULL};
while(1)
{
sleep(space);
pid_t pid = fork();
if(pid== 0)
{
execl("capture.sh",NULL);
printf("i = %d\n",i++);
}else
{
}
}
return 0;
}