110 lines · 1.4 KB · C
RawDownload
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <stdarg.h>#include <errno.h> #define __weak __attribute__((weak)) void __vdie(const char *fmt, va_list ap){	int ret = errno; 	if (errno)		perror("trace-cmd");	else		ret = -1; 	fprintf(stderr, "  ");	vfprintf(stderr, fmt, ap); 	fprintf(stderr, "\n");	exit(ret);} void __die(const char *fmt, ...){	va_list ap; 	va_start(ap, fmt);	__vdie(fmt, ap);	va_end(ap);} void __weak die(const char *fmt, ...){	va_list ap; 	va_start(ap, fmt);	__vdie(fmt, ap);	va_end(ap);} void __vwarning(const char *fmt, va_list ap){	if (errno)		perror("trace-cmd");	errno = 0; 	fprintf(stderr, "  ");	vfprintf(stderr, fmt, ap); 	fprintf(stderr, "\n");} void __warning(const char *fmt, ...){	va_list ap; 	va_start(ap, fmt);	__vwarning(fmt, ap);	va_end(ap);} void __weak warning(const char *fmt, ...){	va_list ap; 	va_start(ap, fmt);	__vwarning(fmt, ap);	va_end(ap);} void __vpr_stat(const char *fmt, va_list ap){	vprintf(fmt, ap);	printf("\n");} void __pr_stat(const char *fmt, ...){	va_list ap; 	va_start(ap, fmt);	__vpr_stat(fmt, ap);	va_end(ap);} void __weak vpr_stat(const char *fmt, va_list ap){	__vpr_stat(fmt, ap);} void __weak pr_stat(const char *fmt, ...){	va_list ap; 	va_start(ap, fmt);	__vpr_stat(fmt, ap);	va_end(ap);} void __weak *malloc_or_die(unsigned int size){	void *data; 	data = malloc(size);	if (!data)		die("malloc");	return data;}