version 1.2, 2010/01/27 22:22:17
|
version 1.11, 2010/03/04 17:42:47
|
Line 1
|
Line 1
|
/* |
/* |
================================================================================ |
================================================================================ |
RPL/2 (R) version 4.0.10 |
RPL/2 (R) version 4.0.12 |
Copyright (C) 1989-2010 Dr. BERTRAND Joël |
Copyright (C) 1989-2010 Dr. BERTRAND Joël |
|
|
This file is part of RPL/2. |
This file is part of RPL/2. |
Line 31
|
Line 31
|
*/ |
*/ |
|
|
int |
int |
rplinit(int argc, char *argv[], unsigned char ***resultats) |
rplinit(int argc, char *argv[], unsigned char ***resultats, char *rpl_home) |
{ |
{ |
# include "copyright.conv.h" |
# include "copyright.conv.h" |
# include "licence.conv.h" |
# include "licence.conv.h" |
Line 126 rplinit(int argc, char *argv[], unsigned
|
Line 126 rplinit(int argc, char *argv[], unsigned
|
(*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).rpl_home = rpl_home; |
|
|
insertion_thread(s_etat_processus, d_vrai); |
insertion_thread(s_etat_processus, d_vrai); |
|
|
pthread_mutexattr_init(&attributs_mutex); |
pthread_mutexattr_init(&attributs_mutex); |
Line 247 rplinit(int argc, char *argv[], unsigned
|
Line 249 rplinit(int argc, char *argv[], unsigned
|
// Initialisation d'une pile de signal pour récupérer les |
// Initialisation d'une pile de signal pour récupérer les |
// débordement de pile |
// débordement de pile |
|
|
|
# ifndef Cygwin |
if (((*s_etat_processus).pile_signal.ss_sp = |
if (((*s_etat_processus).pile_signal.ss_sp = |
malloc((*s_etat_processus).pile_signal.ss_size = |
malloc((*s_etat_processus).pile_signal.ss_size = |
SIGSTKSZ)) == NULL) |
SIGSTKSZ)) == NULL) |
Line 283 rplinit(int argc, char *argv[], unsigned
|
Line 286 rplinit(int argc, char *argv[], unsigned
|
|
|
return(EXIT_FAILURE); |
return(EXIT_FAILURE); |
} |
} |
|
# endif |
|
|
action.sa_sigaction = interruption1; |
action.sa_sigaction = interruption1; |
action.sa_flags = SA_ONSTACK | SA_SIGINFO; |
action.sa_flags = SA_ONSTACK | SA_SIGINFO; |
Line 1350 rplinit(int argc, char *argv[], unsigned
|
Line 1354 rplinit(int argc, char *argv[], unsigned
|
{ |
{ |
if ((*s_etat_processus).langue == 'F') |
if ((*s_etat_processus).langue == 'F') |
{ |
{ |
printf("+++Erreur : Option -%c inconnue\n", |
printf("+++Information : Option -%c inconnue\n", |
option); |
option); |
} |
} |
else |
else |
{ |
{ |
printf("+++Error : -%c option unknown\n", |
printf("+++Warning : -%c option unknown\n", |
option); |
option); |
} |
} |
|
|
Line 1566 rplinit(int argc, char *argv[], unsigned
|
Line 1570 rplinit(int argc, char *argv[], unsigned
|
&existence, &ouverture, &unite_fichier); |
&existence, &ouverture, &unite_fichier); |
} |
} |
|
|
(*s_etat_processus).recherche_types_speciaux = 'N'; |
|
|
|
if (((existence == d_faux) || (erreur_fichier != d_absence_erreur)) && |
if (((existence == d_faux) || (erreur_fichier != d_absence_erreur)) && |
(option_S == d_faux)) |
(option_S == d_faux)) |
{ |
{ |
Line 1597 rplinit(int argc, char *argv[], unsigned
|
Line 1599 rplinit(int argc, char *argv[], unsigned
|
printf("+++Error : Any executable definition\n"); |
printf("+++Error : Any executable definition\n"); |
} |
} |
} |
} |
|
|
|
return(EXIT_FAILURE); |
} |
} |
|
|
if ((*s_etat_processus).chemin_fichiers_temporaires == NULL) |
if ((*s_etat_processus).chemin_fichiers_temporaires == NULL) |
Line 1642 rplinit(int argc, char *argv[], unsigned
|
Line 1646 rplinit(int argc, char *argv[], unsigned
|
(*s_etat_processus).test_instruction = 'N'; |
(*s_etat_processus).test_instruction = 'N'; |
(*s_etat_processus).nombre_arguments = 0; |
(*s_etat_processus).nombre_arguments = 0; |
(*s_etat_processus).affichage_arguments = 'N'; |
(*s_etat_processus).affichage_arguments = 'N'; |
|
(*s_etat_processus).autorisation_conversion_chaine = 'Y'; |
(*s_etat_processus).autorisation_evaluation_nom = 'Y'; |
(*s_etat_processus).autorisation_evaluation_nom = 'Y'; |
(*s_etat_processus).autorisation_empilement_programme = 'N'; |
(*s_etat_processus).autorisation_empilement_programme = 'N'; |
(*s_etat_processus).requete_arret = 'N'; |
(*s_etat_processus).requete_arret = 'N'; |
|
(*s_etat_processus).evaluation_forcee = 'N'; |
|
|
(*s_etat_processus).constante_symbolique = 'N'; |
(*s_etat_processus).constante_symbolique = 'N'; |
(*s_etat_processus).traitement_symbolique = 'N'; |
(*s_etat_processus).traitement_symbolique = 'N'; |
Line 3318 rplinit(int argc, char *argv[], unsigned
|
Line 3324 rplinit(int argc, char *argv[], unsigned
|
} |
} |
} |
} |
|
|
|
# ifndef Cygwin |
free((*s_etat_processus).pile_signal.ss_sp); |
free((*s_etat_processus).pile_signal.ss_sp); |
|
# endif |
|
|
closelog(); |
closelog(); |
|
|
pthread_mutex_destroy(&((*s_etat_processus).protection_liste_mutexes)); |
pthread_mutex_destroy(&((*s_etat_processus).protection_liste_mutexes)); |
Line 3339 rplinit(int argc, char *argv[], unsigned
|
Line 3348 rplinit(int argc, char *argv[], unsigned
|
sem_destroy(&semaphore_gestionnaires_signaux); |
sem_destroy(&semaphore_gestionnaires_signaux); |
sem_destroy(&semaphore_gestionnaires_signaux_atomique); |
sem_destroy(&semaphore_gestionnaires_signaux_atomique); |
|
|
|
# ifdef DEBUG_MEMOIRE |
|
debug_memoire_verification(s_etat_processus); |
|
# endif |
|
|
return((erreur == d_os) ? EXIT_SUCCESS : EXIT_FAILURE); |
return((erreur == d_os) ? EXIT_SUCCESS : EXIT_FAILURE); |
} |
} |
|
|