File: exece.c

package info (click to toggle)
mlton 20041109-1
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 18,212 kB
  • ctags: 58,085
  • sloc: ansic: 10,386; makefile: 1,178; sh: 1,139; pascal: 256; asm: 97
file content (27 lines) | stat: -rw-r--r-- 548 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include "platform.h"

Int Posix_Process_exece (NullString p, Pointer a, Pointer e) {
	char		*path;
	char		*asaved;
	char 		*esaved;
	char 		**args;
	char 		**env;
	int             an;
	int 		en;
	int 		result;

	path = (char *) p;
	args = (char **) a;
	env = (char **) e;
	an = GC_arrayNumElements (a) - 1;
	asaved = args[an];
	en = GC_arrayNumElements (e) - 1;
	esaved = env[en];
	args[an] = (char *) NULL;
	env[en] = (char *) NULL;
	result = EXECVE (path, args, env);
	/* exece failed */
	args[an] = asaved;
	env[en] = esaved;
	return result;
}