[PATCH] default ps -W process start time to system boot time when inaccessible, 0, -1

Brian Inglis Brian.Inglis@SystematicSW.ab.ca
Sat Mar 23 03:46:00 GMT 2019


diff --git a/winsup/utils/ps.cc b/winsup/utils/ps.cc
index 4fce3e0b3..c81805ab6 100644
--- a/winsup/utils/ps.cc
+++ b/winsup/utils/ps.cc
@@ -337,6 +337,17 @@ main (int argc, char *argv[])
 		p->start_time = to_time_t (&ct);
 	      CloseHandle (h);
 	    }
+	  if (!h || 0 == p->start_time || -1 == p->start_time)
+	    {
+	      SYSTEM_TIMEOFDAY_INFORMATION stodi;
+	      status = NtQuerySystemInformation (SystemTimeOfDayInformation,
+					(PVOID) &stodi, sizeof stodi, NULL);
+	      if (!NT_SUCCESS (status))
+		fprintf (stderr,
+			"NtQuerySystemInformation(SystemTimeOfDayInformation), "
+					"status %08x", status);
+	      p->start_time = to_time_t ((FILETIME*)&stodi.BootTime);
+	    }
 	}
 
       char uname[128];
-- 
2.17.0



More information about the Cygwin-patches mailing list