version 1.100, 2011/11/28 21:42:04
|
version 1.103, 2011/11/30 17:21:07
|
Line 31
|
Line 31
|
*/ |
*/ |
|
|
int |
int |
rplinit(int argc, char *argv[], unsigned char ***resultats, char *rpl_home) |
rplinit(int argc, char *argv[], char *envp[], |
|
unsigned char ***resultats, char *rpl_home) |
{ |
{ |
# include "copyright-conv.h" |
# include "copyright-conv.h" |
# include "licence-conv.h" |
# include "licence-conv.h" |
Line 40 rplinit(int argc, char *argv[], unsigned
|
Line 41 rplinit(int argc, char *argv[], unsigned
|
char pile_signaux[SIGSTKSZ]; |
char pile_signaux[SIGSTKSZ]; |
# endif |
# endif |
|
|
|
# define RPL_PATH_MAX 1024 |
|
char repertoire_initial[RPL_PATH_MAX]; |
|
|
file *f_source; |
file *f_source; |
|
|
int erreur_historique; |
int erreur_historique; |
Line 176 rplinit(int argc, char *argv[], unsigned
|
Line 180 rplinit(int argc, char *argv[], unsigned
|
(*s_etat_processus).langue = 'E'; |
(*s_etat_processus).langue = 'E'; |
} |
} |
|
|
|
if (getcwd(repertoire_initial, RPL_PATH_MAX) == NULL) |
|
{ |
|
if ((langue = getenv("LANG")) != NULL) |
|
{ |
|
if (strncmp(langue, "fr", 2) == 0) |
|
{ |
|
uprintf("+++Système : Mémoire insuffisante\n"); |
|
} |
|
else |
|
{ |
|
uprintf("+++System : Not enough memory\n"); |
|
} |
|
} |
|
else |
|
{ |
|
uprintf("+++System : Not enough memory\n"); |
|
} |
|
|
|
return(EXIT_FAILURE); |
|
} |
|
|
initialisation_contexte_cas(s_etat_processus); |
initialisation_contexte_cas(s_etat_processus); |
|
|
(*s_etat_processus).exception = d_ep; |
(*s_etat_processus).exception = d_ep; |
(*s_etat_processus).erreur_systeme = d_es; |
(*s_etat_processus).erreur_systeme = d_es; |
(*s_etat_processus).erreur_execution = d_ex; |
(*s_etat_processus).erreur_execution = d_ex; |
|
|
|
(*s_etat_processus).requete_redemarrage = d_faux; |
(*s_etat_processus).rpl_home = rpl_home; |
(*s_etat_processus).rpl_home = rpl_home; |
|
|
pthread_mutexattr_init(&attributs_mutex); |
pthread_mutexattr_init(&attributs_mutex); |
Line 3566 rplinit(int argc, char *argv[], unsigned
|
Line 3592 rplinit(int argc, char *argv[], unsigned
|
liberation_contexte_cas(s_etat_processus); |
liberation_contexte_cas(s_etat_processus); |
|
|
free((*s_etat_processus).chemin_fichiers_temporaires); |
free((*s_etat_processus).chemin_fichiers_temporaires); |
|
|
|
if ((*s_etat_processus).requete_redemarrage == d_vrai) |
|
{ |
|
chdir(repertoire_initial); |
|
execve(argv[0], (*(argv + 1)), envp); |
|
erreur = d_erreur; |
|
} |
|
|
|
// Libération de la copie des arguments |
|
// A FAIRE |
|
|
free(s_etat_processus); |
free(s_etat_processus); |
|
|
# ifdef DEBUG_MEMOIRE |
# ifdef DEBUG_MEMOIRE |