Может кто-нибудь помочь мне узнать, как вызвать функцию rrd_update_r API-интерфейса rrdtool из http://oss.oetiker.ch/rrdtool/index.en.html?
Было довольно легко вызвать не-поточную версию 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 and br, roegi