diff options
| author | Tomasz Kramkowski <tk@the-tk.com> | 2016-12-22 14:18:38 +0100 | 
|---|---|---|
| committer | Tomasz Kramkowski <tk@the-tk.com> | 2016-12-22 14:18:38 +0100 | 
| commit | 04be5b1456b381303709fdc90385fe74dad1bd10 (patch) | |
| tree | b8f07ed1a0037587739d166d23954d3ca8102d81 | |
| parent | fad06882fe3305983292dfa34d335ec461761b61 (diff) | |
| download | hktool-04be5b1456b381303709fdc90385fe74dad1bd10.tar.gz hktool-04be5b1456b381303709fdc90385fe74dad1bd10.tar.xz hktool-04be5b1456b381303709fdc90385fe74dad1bd10.zip  | |
eprintf: add ecalloc
Add ecalloc as an error handling calloc wrapper.
| -rw-r--r-- | eprintf.c | 12 | ||||
| -rw-r--r-- | eprintf.h | 9 | 
2 files changed, 17 insertions, 4 deletions
@@ -76,6 +76,18 @@ void *emalloc(size_t n)  	return p;  } +/* ecalloc: attempt to allocate memory or exit on error */ +void *ecalloc(size_t nmemb, size_t size) +{ +	void *p; + +	p = calloc(nmemb, size); +	if (p == NULL) +		eprintf("ecalloc(%zu, %zu) failed:", nmemb, size); + +	return p; +} +  /* erealloc: attempt to reallocate memory or exit on error */  void *erealloc(void *p, size_t n)  { @@ -6,10 +6,11 @@ noreturn void eprintf(const char *fmt, ...)  	__attribute__((format(printf, 1, 2)));  void weprintf(const char *fmt, ...)  	__attribute__((format(printf, 1, 2))); -char *estrdup(const char *); -void *emalloc(size_t); -void *erealloc(void *, size_t); +char *estrdup(const char *str); +void *emalloc(size_t size); +void *ecalloc(size_t nmemb, size_t size); +void *erealloc(void *p, size_t size);  char *progname(void); -void setprogname(const char *); +void setprogname(const char *name);  #endif /* !EPRINTF_H */  | 
