http://oss.oetiker.ch/rrdtool/index.en.htmlから rrdtool c API の rrd_update_r 関数を呼び出す方法を見つけるのを手伝ってくれる人はいますか?
非スレッドセーフ バージョンの rrd_update を呼び出すのは非常に簡単でしたが、これはよりトリッキーです...
通常のrrd_update:
char *updateparams[] = {
"rrdupdate",
rrd_file,
values,
NULL
};
rrd_clear_error();
result = rrd_update(3, updateparams); //argc is first arg
プログラムはマルチスレッド環境で実行する必要があるため、スレッドセーフ関数を使用しないことでいくつかのエラーが発生しました! しかし、テンプレートも必要なので、rrd_update_r を使うのは簡単ではありません...
int rrd_update_r(const char *filename, const char *_template,
int argc, const char **argv);
そして、私はそれを作成する方法が本当にわかりません...
char *updateparams[] = {
"rrdupdate",
rrd_file,
values,
NULL
};
rrd_clear_error();
result = rrd_update_r(rrd_file, NULL,3, updateparams);
動作せず、実行時に次のエラーが発生します...
error: /var/tmp/rrds/1.rrd: expected timestamp not found in data source from rrdupdate
うまくいけば、誰かが私を助けることができます!
thx と br、ろえぎ