2 * FCRON - periodic command scheduler
4 * Copyright 2000-2014 Thibault Godouet <fcron@free.fr>
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 * The GNU General Public License can also be found in the file
21 * `LICENSE' that comes with the fcron source distribution.
28 /* Solaris 10 has no strndup() */
30 strndup(const char *s, size_t n)
31 /* Written by Kaveh R. Ghazi <ghazi@caip.rutgers.edu> */
34 size_t len = strlen(s);
39 result = (char *)malloc(len + 1);
43 memcpy(result, s, len);
50 strdup2(const char *str)
60 die_e("Could not strdup()");
66 strndup2(const char *str, size_t n)
73 /* note: if n==0 then ptr will be an empty string (non-NULL) */
74 ptr = strndup(str, n);
77 die_e("Could not strdup()");
83 alloc_safe(size_t len, const char *desc)
84 /* allocate len-bytes of memory, and return the pointer.
85 * Die with a log message if there is any error */
91 die_e("Could not allocate %d bytes of memory%s%s", len,
92 (desc) ? "for " : "", desc);
98 realloc_safe(void *cur, size_t len, const char *desc)
99 /* allocate len-bytes of memory, and return the pointer.
100 * Die with a log message if there is any error */
104 new = realloc(cur, len);
106 die_e("Could not reallocate %d bytes of memory%s%s", len,
107 (desc) ? "for " : "", desc);