File: execp.c

package info (click to toggle)
mlton 20130715-3
  • links: PTS
  • area: main
  • in suites: stretch
  • size: 60,900 kB
  • ctags: 69,386
  • sloc: xml: 34,418; ansic: 17,399; lisp: 2,879; makefile: 1,605; sh: 1,254; pascal: 256; python: 143; asm: 97
file content (21 lines) | stat: -rw-r--r-- 577 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include "platform.h"

C_Errno_t(C_Int_t) Posix_Process_execp (NullString8_t fNStr, 
                                        Array(NullString8_t) aStr) {
  const char      *file;
  char            **args;
  uintmax_t       aLen;
  char            *aSaved;
  int             res;

  file = (const char *) fNStr;
  args = (char **) aStr;
  aLen = GC_getArrayLength((pointer)aStr);
  aSaved = args[aLen - 1];
  args[aLen - 1] = NULL;
  res = EXECVP (file, 
                (char * const *)args);
  /* execp failed */
  args[aLen - 1] = aSaved;
  return (C_Errno_t(C_Int_t))res;
}