Перенос.
This commit is contained in:
75
src/files/starter.cpp
Normal file
75
src/files/starter.cpp
Normal file
@@ -0,0 +1,75 @@
|
||||
#include <stdio.h>
|
||||
#include <unistd.h>
|
||||
#include <stdlib.h>
|
||||
#include <signal.h>
|
||||
#include <string.h>
|
||||
#include <sys/wait.h>
|
||||
//--------------------------------------------------------------------------------------------
|
||||
#include "Process_r.h"
|
||||
|
||||
|
||||
|
||||
//argv[0] - время
|
||||
//args[1] - команда добивания
|
||||
//argv[2] путь к драйверу dvm
|
||||
//argv[3] f/c(компиляция) или run(запуск)
|
||||
//argv[4] имя программы
|
||||
//argv[5] .. argv [argc-1] либо флаги компиляции, либо измерения решетки по одному
|
||||
|
||||
|
||||
int main(int argc, char ** argv){
|
||||
|
||||
try {
|
||||
|
||||
|
||||
|
||||
int i;
|
||||
|
||||
// for (i=0; i<argc; ++i){
|
||||
// printf(("argv["+String_::ToString(i)+"] = '%s'\n").string,argv[i]);
|
||||
|
||||
// }
|
||||
|
||||
#if 1
|
||||
char ** args = new char* [argc] ;
|
||||
//argv[1] путь к исполнителю
|
||||
for ( i=2; i<argc; ++i)
|
||||
args [i-2] = argv[i];
|
||||
|
||||
// for (i=0; i<argc; ++i){
|
||||
// printf(("args["+String_::ToString(i)+"] = '%s'\n").string,args[i]);
|
||||
|
||||
// }
|
||||
|
||||
args[argc-1] = NULL;
|
||||
|
||||
// printf("parent pid = %d\n",getpid());
|
||||
|
||||
setpgid(0,0);
|
||||
int pid = fork();
|
||||
|
||||
if (pid == 0)
|
||||
execvp( argv[1],args);
|
||||
else {
|
||||
// setpgid(pid, 0);
|
||||
printf("%d\n",pid);}
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
catch (const char * exception){
|
||||
|
||||
// printf("Exception!\n");
|
||||
FILE * ExceptionLog = fopen ( "Exception.txt", "w" );
|
||||
fprintf(ExceptionLog,exception);
|
||||
fclose(ExceptionLog);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user