crontab格式的CPP解析代码段
来源:互联网 发布:华尔街工资知乎 编辑:程序博客网 时间:2024/05/20 23:02
http://download.csdn.net/detail/james2102/9619059
项目需要实现一个按crontab格式调度任务的C++模块。但是查了下网上的资源,crontab格式解析有Java,python和php的库,就是没有C++的版本。不过crontab的c代码是开源的,直接下载下来读了一遍,发现可以很容易的修改一下就可以使用了,所以修改了一版经测试可以使用,所以传到了网上,在这里对代码逻辑做一些解释和说明。
下载的是crontab的c开源代码,由于项目是C++的,所以修改后的代码使用了C++的库,如string,sstream, iostream。
链接里的压缩包下载后可以直接使用。
cron.h
bool is_cron_format(const std::string& cron, std::string* errmsg);
该函数尝试解析一个crontab格式的字符串,成功则返回true,失败返回false。
输入:std::string& cron: crontab格式的的字符串。如 30 * * * *表示没小时的第30分钟。
输出:std::string* errmsg: 返回的错误信息。
返回值: true/false
bool reach_cron(const std::string& cron, std::string* errmsg);
判断当前时刻是否匹配cron传入的crontab格式。
cron.cpp中对crontab开源源代码的修改部分
reach_cron
bool reach_cron(const std::string& cron, std::string* errmsg)
修改自cron.c的cron_tick()接口
bitstring.h
伯克利开源的bitstring库,类似于位图(bitmap),crontab定时格式中的分钟、小时、星期、天、月份中的某个字段设置了值得话,其在bitmap中对应的字段就会被设置为1 (bit_set)
reach_cron()函数调用gettimeofday,获取当前时刻的月份(month)、天数(dom,day of month), 星期(dow,day of week), 小时(hour),分钟(minute),然后调用bit_test()接口,判断当前的分钟是不是crontab定时格式设定的分钟(仅以分钟举例,其他字段类似),就可以判断当前时刻是否和crontab的定时时刻匹配。
- crontab格式的CPP解析代码段
- php解析crontab时间格式
- obj.cpp---------obj格式解析
- 几段经典的js代码解析
- crontab 的格式备忘
- crontab 的格式备忘
- crontab 的格式备忘
- Crontab的格式
- crontab的格式
- Crontab的格式
- crontab的格式
- Crontab的格式
- Crontab的格式
- Crontab的格式
- crontab的格式
- Crontab的格式
- 转载 Crontab的格式
- Crontab的格式
- DB,Cache和Redis应用场景分析
- 不定宽高的水平和竖直同时居中
- Weka源码开发01——初识Weka及其源码开发
- 建议40:使用event关键字为委托施加保护
- VS2010/MFC编程入门之五十四(Ribbon界面开发:使用更多控件并为控件添加消息处理函数)
- crontab格式的CPP解析代码段
- ListVIew点击事件失效
- LTE中基于SR的调度传输
- 小练习——杨辉三角
- LibTest
- Java中栈内存、堆内存、方法区——浅析
- (第三章 10)“代码段间跳转” 和 “访问数据段”
- Android蓝牙自动配对Demo,亲测好使!!!
- js与jsp