xref: /minix3/minix/commands/cron/misc.c (revision ebfedea0ce5bbe81e252ddf32d732e40fb633fae)
1 /*	misc.c - Miscellaneous stuff for cron		Author: Kees J. Bot
2  *								12 Jan 1997
3  */
4 #define nil ((void*)0)
5 #include <sys/types.h>
6 #include <stdio.h>
7 #include <stdarg.h>
8 #include <stdlib.h>
9 #include <time.h>
10 #include "misc.h"
11 
12 char *prog_name;		/* Name of this program. */
13 time_t now;			/* Cron's idea of the current time. */
14 time_t next;			/* Time to run the next job. */
15 
16 size_t alloc_count;		/* # Of chunks of memory allocated. */
17 
18 void *allocate(size_t len)
19 /* Checked malloc().  Better not feed it length 0. */
20 {
21 	void *mem;
22 
23 	if ((mem= malloc(len)) == nil) {
24 		cronlog(LOG_ALERT, "Out of memory, exiting\n");
25 		exit(1);
26 	}
27 	alloc_count++;
28 	return mem;
29 }
30 
31 void deallocate(void *mem)
32 {
33 	if (mem != nil) {
34 		free(mem);
35 		alloc_count--;
36 	}
37 }
38 
39 static enum logto logto= SYSLOG;
40 
41 void selectlog(enum logto where)
42 /* Select where logging output should go, syslog or stdout. */
43 {
44 	logto= where;
45 }
46 
47 void cronlog(int level, const char *fmt, ...)
48 /* Like syslog(), but may go to stderr. */
49 {
50 	va_list ap;
51 
52 	va_start(ap, fmt);
53 
54 #if __minix_vmd || !__minix
55 	if (logto == SYSLOG) {
56 		vsyslog(level, fmt, ap);
57 	} else
58 #endif
59 	{
60 		fprintf(stderr, "%s: ", prog_name);
61 		vfprintf(stderr, fmt, ap);
62 	}
63 	va_end(ap);
64 }
65 
66 /*
67  * $PchId: misc.c,v 1.3 2000/07/17 19:01:57 philip Exp $
68  */
69