顯示具有 Linux 標籤的文章。 顯示所有文章
顯示具有 Linux 標籤的文章。 顯示所有文章

2015年5月12日 星期二

C/C++ snippet: read_rtc(), with_rtc()

2015年4月29日 星期三

Minicom 設定

執行
$ minicom -s
或進入 minicom 後按 Alt-a o 開啟選單

選擇 Serial port setup 設定 console
Serial Device : /dev/ttyUSB1
Bps/Par/Bits : 115200 8N1
Hardware Flow Control : No
Software Flow Control : No
選擇 Screen and keyboard 設定自動斷行
Line Wrap : Yes

2015年4月28日 星期二

Shell script: mktmp.sh

省去用 mktemp 建立臨時檔要輸入 XXXXXX 的麻煩,保留 -d 參數

2015年4月20日 星期一

C/C++ snippet: between_addr()

#include <errno.h> /* errno */
#include <arpa/inet.h> /* htonl */
#include <netinet/in.h> /* in_addr_t */

/**
 * @param start start IP adress in host byte order
 * @param end end IP address in host byte order
 * @param addr_cb callback
 * @param data callback argument.
 * @return If failed, between_addr() returns -1. Otherwise, retrun a value from callback
 */
int between_addr(uint32_t start, uint32_t end, int (*addr_cb)(in_add_t, const void *), void *data)
{
    int ret = -1;
    uint32_t addr, limit;

    if (!addr_cb) {
        errno = EINVAL;
        return ret;
    }

    addr = start < end ? start : end;
    limit = start > end ? end : start;

    for (; addr < limit; addr++) {
        ret = addr_cb(htonl(addr), data);
        if (!ret)
            break;
    }

    return ret;
}

2015年4月9日 星期四

C/C++ snippet: calc_network(), calc_broadcast()

計算網段
#include <netinet/in.h> /* in_addr_t */

in_addr_t calc_network(in_addr_t addr, in_addr_t netmask)
{
        return addr & netmask;
}
計算 broadcast
#include <netinet/in.h> /* in_addr_t */

in_addr_t calc_broadcast(in_addr_t addr, in_addr_t netmask)
{
        return addr | ~netmask;
}