X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Futils%2Fcommon%2Fcommon.c;h=2cebc0d5f067f4627114bcf962e33936b6d41c93;hb=f43a473fd8ffa483bd7d74579a22886ab2df9101;hp=2d961d43f2a6b95499ec80073ceb6a189c089541;hpb=f19064af4276604a90e30720f83f42b22d4bd385;p=collectd.git diff --git a/src/utils/common/common.c b/src/utils/common/common.c index 2d961d43..2cebc0d5 100644 --- a/src/utils/common/common.c +++ b/src/utils/common/common.c @@ -89,8 +89,7 @@ char *sstrncpy(char *dest, const char *src, size_t n) { return dest; } /* char *sstrncpy */ -/* ssnprintf returns zero on success, one if truncation occurred - and a negative integer onerror. */ +/* ssnprintf returns result from vsnprintf conistent with snprintf */ int ssnprintf(char *str, size_t sz, const char *format, ...) { va_list ap; va_start(ap, format); @@ -99,10 +98,7 @@ int ssnprintf(char *str, size_t sz, const char *format, ...) { va_end(ap); - if (ret < 0) { - return ret; - } - return (size_t)ret >= sz; + return ret; } /* int ssnprintf */ char *ssnprintf_alloc(char const *format, ...) /* {{{ */ @@ -1267,7 +1263,7 @@ int walk_directory(const char *dir, dirwalk_callback_f callback, return 0; } -ssize_t read_file_contents(const char *filename, char *buf, size_t bufsize) { +ssize_t read_file_contents(const char *filename, void *buf, size_t bufsize) { FILE *fh; ssize_t ret; @@ -1285,6 +1281,16 @@ ssize_t read_file_contents(const char *filename, char *buf, size_t bufsize) { return ret; } +ssize_t read_text_file_contents(const char *filename, char *buf, + size_t bufsize) { + ssize_t ret = read_file_contents(filename, buf, bufsize - 1); + if (ret < 0) + return ret; + + buf[ret] = '\0'; + return ret + 1; +} + counter_t counter_diff(counter_t old_value, counter_t new_value) { counter_t diff;