Admin/Linux/Isabelle.c
author wenzelm
Sat, 05 Jul 2014 16:29:19 +0200
changeset 58865 1767b0f3b29b
parent 55202 8f7061babae4
permissions -rw-r--r--
Added tag Isabelle2014-RC0 for changeset 251ef0202e71
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