Try gApplication->Terminate(). You can also pass an int argument that will be returned as exit code of the program. Cheers, Fons. On Sat, 2002-01-19 at 02:12, Carsten Rott wrote: > Hi, > > I am running root using a macro. At the end I want root to exit, > but all the commands I tried won't work. TSystem::Exit() and > TSystem::Abort() only give: > *** Break *** segmentation violation > > I would be happy if somebody could explain me how I can get root to > exit when running a macro ? > Thanks for your help, > > Carsten > > PS: I saw in roottalk there was a similar question last year, but no > answer was given ... only a suggestion how it could be implemented in > root. I guess my question is, has anything happend since then ?? > or has somebody thought of a workaround ? > > > This is last years answer: > > > >After 'exit()' is called, Cint stops doing anything. It sets > >a flag to block any statement as you observed. Because 'exit()' > >is normally used when process is terminated, this is a good behavior > >in most of the cases. However in ROOT, process is not terminated by > >exit(). It simply stops doing anything. > > > >Fons, > >There are 2 options to change this behavior in ROOT. > > > > - 'exit()' terminates ROOT process > > After calling G__process_cmd() in ROOT's command input, > > if G__return==G__RETURN_EXIT2 then ROOT terminates. > > > > - 'exit()' exits from current macro. Next macro will be executed > >normally. > > After calling G__process_cmd() in ROOT's command input, > > reset G__return as G__RETURN_NON. > > > >Both cases, the change has to be made in ROOT source code. > > > >Fons, Will you take a look at this? > > > >Thank you > >Masaharu Goto > > > >Date: Thu, 8 Mar 2001 09:35:29 +0100 (CET) > >From: Jiri Chudoba <Jiri.Chudoba@cern.ch> > >To: roottalk@pcroot.cern.ch > >Subject: [ROOT] Exit from macro > > > >Hello, > > > >how can I properly exit from macro? I get a strange behaviour with the > >function exit: macro does not execute (I mean the new run of macro) after > >the first usage of exit. I have to quit root and only then the macro > >executes again: > > > >errorHandling.C: > > > >// Test macro for error handling > > > >#include <stdlib.h> > > > >Int_t errorHandling(Int_t error=0) > >{ > > cerr<<"Error is "<<error<<endl; > > if (error) { > >// error occurred, exit macro > > cerr<<"Error in errorHandling macro: "<<error<<endl; > > exit (EXIT_FAILURE); > > } > > cerr<<"No error in the macro"<<endl; > > return 0; > >} > > > > > >[pcepaip16] ~/macros > root.exe > > ******************************************* > > * * > > * W E L C O M E to R O O T * > > * * > > * Version 3.00/05 6 March 2001 * > > * * > > * You are welcome to visit our Web site * > > * http://root.cern.ch * > > * * > > ******************************************* > > > >FreeType Engine v1.x used to render TrueType fonts. > > > >CINT/ROOT C/C++ Interpreter version 5.14.78, Feb 21 2001 > >Type ? for help. Commands must be C++ statements. > >Enclose multiple statements between { }. > >root [0] .x errorHandling.C(0) > >Error is 0 > >No error in the macro > >(Int_t)0 > >root [1] .x errorHandling.C(0) > >Error is 0 > >No error in the macro > >(Int_t)0 > >root [2] .x errorHandling.C(1) > >Error is 1 > >Error in error_handling macro: 1 > >(Int_t)1 > >root [3] .x errorHandling.C(1) > >root [4] > > > >-> no output after the command [3]. > -- Org: CERN, European Laboratory for Particle Physics. Mail: 1211 Geneve 23, Switzerland E-Mail: Fons.Rademakers@cern.ch Phone: +41 22 7679248 WWW: http://root.cern.ch/~rdm/ Fax: +41 22 7679480
This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:50:38 MET