2 #include <stdio.h> /* for FILE etc */
3 #include <stdlib.h> /* for malloc */
4 #include <string.h> /* for memset */
5 #include <unistd.h> /* for fork/exec */
7 #include "pnd_container.h"
11 unsigned char pnd_apps_exec ( char *pndrun, char *fullpath, char *unique_id, char *rel_exec, char *rel_startdir, unsigned int clockspeed ) {
15 printf ( "Entering pnd_apps_exec\n" );
17 printf ( " runscript: %s\n", pndrun );
18 printf ( " path: %s\n", fullpath );
19 printf ( " id: %s\n", unique_id );
20 printf ( " exec: %s\n", rel_exec );
21 printf ( " cwd: %s\n", rel_startdir );
22 printf ( " clock: %u\n", clockspeed );
25 memset ( argv, '\0', sizeof(char*) * 20 );
28 argv [ f++ ] = pndrun;
30 argv [ f++ ] = fullpath;
32 argv [ f++ ] = rel_exec;
33 // skip -a (arguments) for now
35 //argv [ f++ ] = "-b";
36 //argv [ f++ ] = baename;
38 argv [ f++ ] = "-u"; // no union for now
39 argv [ f++ ] = NULL; // for execv
43 for ( i = 0; i < f; i++ ) {
44 printf ( "exec's argv %u [ %s ]\n", i, argv [ i ] );
50 if ( ( f = fork() ) < 0 ) {
56 execv ( pndrun, argv );
59 printf ( "Exiting pnd_apps_exec\n" );