0

ガス消費量のカウンターをログに記録するために、スマートメーターデーモンで次の手順を実行します。

void http_post(const char *vzuuid) {

sprintf(url, "http://%s:%d/%s/data/%s.json?ts=%llu", vzserver, vzport, vzpath, vzuuid, unixtime());

CURL *curl;
CURLcode curl_res;

curl_global_init(CURL_GLOBAL_ALL);

curl = curl_easy_init();

if(curl) 
{
    FILE* devnull = NULL;
    devnull = fopen("/dev/null", "w+");

    curl_easy_setopt(curl, CURLOPT_USERAGENT, DAEMON_NAME " " DAEMON_VERSION ); 
    curl_easy_setopt(curl, CURLOPT_URL, url);
    curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "");

    curl_easy_setopt(curl, CURLOPT_WRITEDATA, devnull);

        if( (curl_res = curl_easy_perform(curl)) != CURLE_OK) {
        syslog(LOG_INFO, "HTTP_POST(): %s", curl_easy_strerror(curl_res) );
        }

    curl_easy_cleanup(curl);
    fclose ( devnull );

}

curl_global_cleanup();
}

最後の呼び出しが10秒以上前の場合にのみこれを実行したい. 私はグローバル変数 last_time を考えて、最後のタイムスタンプを記憶し、それを実際のタイムスタンプと比較して、すべてのカールのものを構築しました。そのためには、unixtime() の直接使用を別の変数 current_time にバッファリングして、last_time と比較するために使用する必要があります。

誰でも私を助けてもらえますか?C言語に慣れていない...

ありがとうございました!

4

1 に答える 1