author | Markus Bröker <mbroeker@largo.dyndns.tv> |
Thu, 16 Apr 2009 12:49:11 +0200 | |
changeset 39 | 46d7ec9d63bd |
parent 27 | 81a574d60c15 |
child 48 | b94d657a9acb |
permissions | -rw-r--r-- |
/** * test/demos/prog_limit.c * Copyright (C) 2008 Markus Broeker */ #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <sys/time.h> #include <sys/resource.h> int set_limit (int); int main (int argc, char **argv) { int i; char **args; if (argc < 3) { printf ("Usage: %s <mem> <cmd> [args]...\n", argv[0]); printf ("Report bugs to mbroeker@largo.homelinux.org\n"); return EXIT_SUCCESS; } if ((args = calloc ((argc - 2), sizeof (char *))) == NULL) { perror ("calloc"); return EXIT_FAILURE; } for (i = 2; i < argc; i++) args[i - 2] = argv[i]; args[i] = NULL; if (set_limit (atoi (argv[1]) * 1024 * 1024) == 0) execvp (argv[2], args); else perror ("Limit Error"); if (args != NULL) free (args); return EXIT_SUCCESS; }