File tree Expand file tree Collapse file tree 1 file changed +21
-9
lines changed
Expand file tree Collapse file tree 1 file changed +21
-9
lines changed Original file line number Diff line number Diff line change 66
77const char * ffDetectUptime (FFUptimeResult * result )
88{
9+ #ifndef __ANDROID__ // cat: /proc/uptime: Permission denied
10+
911 // #620
1012 char buf [64 ];
1113 ssize_t nRead = ffReadFileData ("/proc/uptime" , sizeof (buf ) - 1 , buf );
12- if (nRead < 0 )
13- return "ffReadFileData(\"/proc/uptime\", sizeof(buf) - 1, buf) failed" ;
14- buf [nRead ] = '\0' ;
14+ if (nRead > 0 )
15+ {
16+ buf [nRead ] = '\0' ;
1517
16- char * err = NULL ;
17- double sec = strtod (buf , & err );
18- if (err != buf )
19- result -> uptime = (uint64_t ) (sec * 1000 );
20- else
21- return "strtod(buf, &err) failed" ;
18+ char * err = NULL ;
19+ double sec = strtod (buf , & err );
20+ if (err != buf )
21+ {
22+ result -> uptime = (uint64_t ) (sec * 1000 );
23+ result -> bootTime = ffTimeGetNow () + result -> uptime ;
24+ return NULL ;
25+ }
26+ }
2227
28+ #endif
29+
30+ struct timespec uptime ;
31+ if (clock_gettime (CLOCK_BOOTTIME , & uptime ) != 0 )
32+ return "clock_gettime(CLOCK_BOOTTIME) failed" ;
33+
34+ result -> uptime = (uint64_t ) uptime .tv_sec * 1000 + (uint64_t ) uptime .tv_nsec / 1000000 ;
2335 result -> bootTime = ffTimeGetNow () + result -> uptime ;
2436
2537 return NULL ;
You can’t perform that action at this time.
0 commit comments