diff options
Diffstat (limited to 'logger.c')
-rw-r--r-- | logger.c | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/logger.c b/logger.c new file mode 100644 index 0000000..abc686c --- /dev/null +++ b/logger.c @@ -0,0 +1,54 @@ +/* + * UNG's Not GNU + * + * Copyright (c) 2011, Jakob Kaivo <jakob@kaivo.net> + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + */ + +#include <stdlib.h> +#include <string.h> +#include <syslog.h> +#include <limits.h> + +// GNU libc unsets ARG_MAX +#ifndef ARG_MAX +# define ARG_MAX _POSIX_ARG_MAX +#endif + +const char *logger_desc = "log messages"; +const char *logger_inv = "logger string..."; + +int +main (int argc, char **argv) +{ + char msg[ARG_MAX]; + int i = 1; + + if (argc < 2) + return 1; + + memset (msg, 0, ARG_MAX); + + while (i < argc) { + strcat (msg, argv[i]); + if (i < argc) + strcat (msg ," "); + i++; + } + + syslog (LOG_USER, "%s", msg); + + return 0; +} |