فهرست منبع

no longer create an emty logfile for every start of an oberon binary

git-svn-id: https://svn.inf.ethz.ch/svn/lecturers/a2/trunk@7597 8c9fc860-2736-0410-a75d-ab315db34111
eth.guenter 7 سال پیش
والد
کامیت
8642959653
1فایلهای تغییر یافته به همراه9 افزوده شده و 7 حذف شده
  1. 9 7
      source/Generic.Unix.I386.Machine.Mod

+ 9 - 7
source/Generic.Unix.I386.Machine.Mod

@@ -88,7 +88,7 @@ VAR
 	
 	
 	config: ARRAY 2048 OF CHAR;	(* config strings *)
 	config: ARRAY 2048 OF CHAR;	(* config strings *)
 	
 	
-
+	logname: ARRAY 32 OF CHAR;
 	logfile: LONGINT;
 	logfile: LONGINT;
 	traceHeap: BOOLEAN;
 	traceHeap: BOOLEAN;
 
 
@@ -692,9 +692,11 @@ END GetTimer;
 	
 	
 	
 	
 	PROCEDURE Shutdown*( reboot: BOOLEAN );
 	PROCEDURE Shutdown*( reboot: BOOLEAN );
-	VAR ignore: LONGINT;
+	VAR r: LONGINT;  logstat: Unix.Status;
 	BEGIN
 	BEGIN
-		ignore := Unix.close( logfile );
+		r := Unix.fstat( logfile, logstat );
+		r := Unix.close( logfile );
+		IF logstat.size = 0 THEN  r := Unix.unlink( ADDRESSOF( logname) )  END;
 		IF reboot THEN  Unix.exit( 0 )  ELSE  Unix.exit( 1 )  END;
 		IF reboot THEN  Unix.exit( 0 )  ELSE  Unix.exit( 1 )  END;
 	END Shutdown;
 	END Shutdown;
 		
 		
@@ -855,15 +857,15 @@ END GetTimer;
 	
 	
 	
 	
 	PROCEDURE InitLog;
 	PROCEDURE InitLog;
-	VAR name: ARRAY 32 OF CHAR;  pid, i: LONGINT; 
+	VAR pid, i: LONGINT; 
 	BEGIN
 	BEGIN
-		name := "AOS.xxxxx.Log";
+		logname := "AOS.xxxxx.Log";
 		pid := Unix.getpid();  i := 8;
 		pid := Unix.getpid();  i := 8;
 		REPEAT
 		REPEAT
-			name[i] := CHR( pid MOD 10 + ORD( '0' ) );  DEC( i );
+			logname[i] := CHR( pid MOD 10 + ORD( '0' ) );  DEC( i );
 			pid := pid DIV 10;		
 			pid := pid DIV 10;		
 		UNTIL i = 3;
 		UNTIL i = 3;
-		logfile := Unix.open( ADDRESSOF( name ), Unix.rdwr + Unix.creat + Unix.trunc, Unix.rwrwr );
+		logfile := Unix.open( ADDRESSOF( logname ), Unix.rdwr + Unix.creat + Unix.trunc, Unix.rwrwr );
 		SilentLog;
 		SilentLog;
 		VerboseLog;
 		VerboseLog;
 	END InitLog;
 	END InitLog;