]> granicus.if.org Git - procps-ng/commitdiff
library: procps_uptime() return value is a status
authorCraig Small <csmall@enc.com.au>
Sun, 1 May 2016 06:50:25 +0000 (16:50 +1000)
committerCraig Small <csmall@enc.com.au>
Sun, 1 May 2016 06:50:25 +0000 (16:50 +1000)
procps_uptime, previously just plain uptime() used to put the
uptime (as a double) in the first argument and return uptime
(as an int).

It meant if you ran
 myuptime2 = procps_uptime(&myuptime1, NULL);
You might get different results for myuptime1 and myuptime2 because
they are different types.

Most library calls use the return value to return the status,
procps_uptime was in the middle.

Until now.

This function will return 0 on success. If you want (for whatever
reason) uptime as an int then cast it.

All of the procps binaries didn't use the return value for uptime
except ps which set a variable to it but never used it anywhere.

doc/procps_uptime.3
proc/test_uptime.c
proc/uptime.c
ps/common.h
ps/global.c

index 912aa3c7b5be7789f08a080466a0a60a689847b7..61e70fbd7e8f4266449994bcc84b108029484f58 100644 (file)
@@ -16,7 +16,7 @@
 .\" Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 .\" %%%LICENSE_END
 .\"
-.TH PROCPS_UPTIME 3 2016-04-16 "libproc-2"
+.TH PROCPS_UPTIME 3 2016-05-01 "libproc-2"
 .\" Please adjust this date whenever revising the manpage.
 .\"
 .SH NAME
@@ -35,7 +35,7 @@ fills the location of the two double points with the current sytem uptime
 and idle time.
 .SH RETURN VALUE
 .BR procps_uptime ()
-returns a positive integer which is the uptime on success. On failure, it
+returns 0 on success. On failure, it
 returns a negative integer to one of the values defined below.
 .TP
 .B -ERANGE
index 5058294b0474960aea0a142cc1ad61ccd8b9593e..c9d4fb855753204694102bf3a1d60d687c5729b7 100644 (file)
@@ -30,7 +30,7 @@ int check_uptime(void *data)
     double up=0, idle=0;
     int rc;
     rc = procps_uptime(&up, &idle);
-    return (rc > 0 && up > 0 && idle > 0);
+    return (rc == 0 && up > 0 && idle > 0);
 }
 
 int check_uptime_nullup(void *data)
@@ -39,7 +39,7 @@ int check_uptime_nullup(void *data)
     int rc;
     testname = "procps_uptime() (up=NULL)";
     rc = procps_uptime(NULL, &idle);
-    return (rc > 0 && idle > 0);
+    return (rc == 0 && idle > 0);
 }
 
 int check_uptime_nullidle(void *data)
@@ -48,7 +48,7 @@ int check_uptime_nullidle(void *data)
     int rc;
     testname = "procps_uptime() (idle=NULL)";
     rc = procps_uptime(&up, NULL);
-    return (rc > 0 && up > 0);
+    return (rc == 0 && up > 0);
 }
 
 int check_uptime_nullall(void *data)
@@ -56,7 +56,7 @@ int check_uptime_nullall(void *data)
     int rc;
     testname = "procps_uptime() (up,idle=NULL)";
     rc = procps_uptime(NULL, NULL);
-    return (rc > 0);
+    return (rc == 0);
 }
 
 int check_uptime_sprint(void *data)
index c692fd0e3f643c4635bd4aa571f7f85e579616df..f91d227f9ee905d404fc28b2f039c2fe925bedcd 100644 (file)
@@ -63,7 +63,7 @@ static int count_users(void)
  * Unlike other procps functions this closes the file each time
  * Either uptime_secs or idle_secs can be null
  *
- * Returns: uptime_secs on success and <0 on failure
+ * Returns: 0 on success and <0 on failure
  */
 PROCPS_EXPORT int procps_uptime(
         double *restrict uptime_secs,
@@ -91,7 +91,7 @@ PROCPS_EXPORT int procps_uptime(
         *uptime_secs = up;
     if (idle_secs)
         *idle_secs = idle;
-    return up;
+    return 0;
 }
 
 /*
index fc1b160c186a7d5bf1d50b4dae23ac63f8780312..5c862dc9193df34522eb28cc40463073b1ac6744 100644 (file)
@@ -434,7 +434,6 @@ extern int             prefer_bsd_defaults;
 extern int             running_only;
 extern int             screen_cols;
 extern int             screen_rows;
-extern time_t          seconds_since_boot;
 extern selection_node *selection_list;
 extern unsigned        simple_select;
 extern sort_node      *sort_list;
index 21c4e419de71f5b97152fdf571d50a25eaeb879b..733b924f35c789643ff6d714f1a044a25406773a 100644 (file)
@@ -172,7 +172,6 @@ unsigned        personality = 0xffffffff;
 int             prefer_bsd_defaults = -1;
 int             screen_cols = -1;
 int             screen_rows = -1;
-time_t          seconds_since_boot = -1;
 selection_node *selection_list = (selection_node *)0xdeadbeef;
 unsigned        simple_select = 0xffffffff;
 sort_node      *sort_list = (sort_node *)0xdeadbeef; /* ready-to-use sort list */
@@ -502,7 +501,6 @@ void reset_global(void){
   negate_selection      = 0;
   page_size             = getpagesize();
   running_only          = 0;
-  seconds_since_boot    = procps_uptime(0,0);
   selection_list        = NULL;
   simple_select         = 0;
   sort_list             = NULL;