博客 / 詳情

返回

開源C語言庫Melon:Cron格式解析

本文介紹開源C語言庫Melon的cron格式解析。

關於 Melon 庫,這是一個開源的 C 語言庫,它具有:開箱即用、無第三方依賴、安裝部署簡單、中英文文檔齊全等優勢。

Github repo

簡介

cron也就是我們常説的Crontab中的時間格式,格式如下:

*  *  *  *  *
分 時 日  月 周

例如:

30 21 * * * 

表示:每晚的21:30

使用

Melon中cron格式解析器會將上述格式解析成一個time_t類型值。使用代碼如下:

#include "mln_cron.h"
#include <stdio.h>

int main(void)
{
    char p[] = "* * * * *;
    mln_string_t s;
    mln_string_nset(&s, p, sizeof(p)-1);
    time_t now = time(NULL);
    time_t next = mln_cron_parse(&s, now);
    printf("%lu %lu %s\n", (unsigned long)now, (unsigned long)next, ctime(&next));
    return 0;
}

可以看到,本例中,cron格式為* * * * *,含義即是每分鐘。

程序流程大致:

  1. 初始化格式字符串
  2. 獲取當前系統秒值
  3. 將當前秒值作為參考基數,來計算該cron格式的秒級時間戳,即下一秒的時間值
  4. 輸出cron解析器返回的秒值及其格式化字符串內容

Melon中cron解析器在mln_cron.h中,使用時需要include進來。

另外需注意,在Melon中,cron暫時不支持-表示範圍值。

結語

cron格式解析目前能支持的格式是crontab的一個子集,後續隨着使用需求可能會再進行擴展。

另外,歡迎各位對Melon感興趣的讀者訪問其Github倉庫。

感謝閲讀!

user avatar f702 頭像
1 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.