author | wenzelm |
Sat, 05 Jul 2014 16:29:19 +0200 | |
changeset 58865 | 1767b0f3b29b |
parent 55202 | 8f7061babae4 |
permissions | -rw-r--r-- |
wenzelm@55201 | 1 |
/* Author: Makarius |
wenzelm@55201 | 2 |
|
wenzelm@55201 | 3 |
Main Isabelle application executable. |
wenzelm@55201 | 4 |
*/ |
wenzelm@55201 | 5 |
|
wenzelm@55201 | 6 |
#include <stdlib.h> |
wenzelm@55201 | 7 |
#include <stdio.h> |
wenzelm@55201 | 8 |
#include <string.h> |
wenzelm@55201 | 9 |
#include <sys/types.h> |
wenzelm@55201 | 10 |
#include <unistd.h> |
wenzelm@55201 | 11 |
|
wenzelm@55201 | 12 |
|
wenzelm@55201 | 13 |
static void fail(const char *msg) |
wenzelm@55201 | 14 |
{ |
wenzelm@55201 | 15 |
fprintf(stderr, "%s\n", msg); |
wenzelm@55201 | 16 |
exit(2); |
wenzelm@55201 | 17 |
} |
wenzelm@55201 | 18 |
|
wenzelm@55201 | 19 |
|
wenzelm@55201 | 20 |
int main(int argc, char *argv[]) |
wenzelm@55201 | 21 |
{ |
wenzelm@55201 | 22 |
char **cmd_line = NULL; |
wenzelm@55201 | 23 |
int i = 0; |
wenzelm@55201 | 24 |
|
wenzelm@55202 | 25 |
cmd_line = malloc(sizeof(char *) * (argc + 1)); |
wenzelm@55201 | 26 |
if (cmd_line == NULL) fail("Failed to allocate command line"); |
wenzelm@55201 | 27 |
|
wenzelm@55201 | 28 |
cmd_line[0] = malloc(strlen(argv[0]) + 5); |
wenzelm@55201 | 29 |
if (cmd_line[0] == NULL) fail("Failed to allocate command line"); |
wenzelm@55201 | 30 |
|
wenzelm@55201 | 31 |
strcpy(cmd_line[0], argv[0]); |
wenzelm@55201 | 32 |
strcat(cmd_line[0], ".run"); |
wenzelm@55201 | 33 |
|
wenzelm@55201 | 34 |
for (i = 1; i < argc; i++) cmd_line[i] = argv[i]; |
wenzelm@55201 | 35 |
|
wenzelm@55202 | 36 |
cmd_line[argc] = NULL; |
wenzelm@55202 | 37 |
|
wenzelm@55201 | 38 |
execvp(cmd_line[0], cmd_line); |
wenzelm@55201 | 39 |
fail("Failed to execute application script"); |
wenzelm@55201 | 40 |
} |
wenzelm@55201 | 41 |