130 |
|
|
131 |
|
#ifdef LINUX |
132 |
|
if ((f=fopen("/proc/uptime", "r")) == NULL) { |
133 |
+ |
sg_set_error(SG_ERROR_OPEN, "/proc/uptime"); |
134 |
|
return NULL; |
135 |
|
} |
136 |
|
if((fscanf(f,"%lu %*d",&uptime)) != 1){ |
137 |
+ |
sg_set_error(SG_ERROR_PARSE, NULL); |
138 |
|
return NULL; |
139 |
|
} |
140 |
|
fclose(f); |
141 |
|
#endif |
142 |
|
|
143 |
|
if((proc_dir=opendir(PROC_LOCATION))==NULL){ |
144 |
+ |
sg_set_error(SG_ERROR_OPENDIR, PROC_LOCATION); |
145 |
|
return NULL; |
146 |
|
} |
147 |
|
|
306 |
|
mib[2] = KERN_PROC_ALL; |
307 |
|
|
308 |
|
if(sysctl(mib, 3, NULL, &size, NULL, 0) < 0) { |
309 |
+ |
sg_set_error(SG_ERROR_SYSCTL, "CTL_KERN.KERN_PROC.KERN_PROC_ALL"); |
310 |
|
return NULL; |
311 |
|
} |
312 |
|
|
319 |
|
memset(kp_stats, 0, size); |
320 |
|
|
321 |
|
if(sysctl(mib, 3, kp_stats, &size, NULL, 0) < 0) { |
322 |
+ |
sg_set_error(SG_ERROR_SYSCTL, "CTL_KERN.KERN_PROC.KERN_PROC_ALL"); |
323 |
|
free(kp_stats); |
324 |
|
return NULL; |
325 |
|
} |
365 |
|
|
366 |
|
#ifdef FREEBSD5 |
367 |
|
if(sysctlbyname("kern.ps_arg_cache_limit", &buflen, &size, NULL, 0) < 0) { |
368 |
+ |
sg_set_error(SG_ERROR_SYSCTLBYNAME, "kern.ps_arg_cache_limit"); |
369 |
|
return NULL; |
370 |
|
} |
371 |
|
#else |
375 |
|
mib[1] = KERN_ARGMAX; |
376 |
|
|
377 |
|
if(sysctl(mib, 2, &buflen, &size, NULL, 0) < 0) { |
378 |
+ |
sg_set_error(SG_ERROR_SYSCTL, "CTL_KERN.KERN_ARGMAX"); |
379 |
|
return NULL; |
380 |
|
} |
381 |
|
#endif |
527 |
|
mib[4] = 0; |
528 |
|
|
529 |
|
if(sysctl(mib, 5, NULL, &size, NULL, 0) < 0) { |
530 |
+ |
sg_set_error(SG_ERROR_SYSCTL, "CTL_KERN.KERN_LWP.pid.structsize.0"); |
531 |
|
return NULL; |
532 |
|
} |
533 |
|
|
540 |
|
} |
541 |
|
|
542 |
|
if(sysctl(mib, 5, kl_stats, &size, NULL, 0) < 0) { |
543 |
+ |
sg_set_error(SG_ERROR_SYSCTL, "CTL_KERN.KERN_LWP.pid.structsize.buffersize"); |
544 |
|
return NULL; |
545 |
|
} |
546 |
|
} |
625 |
|
#endif |
626 |
|
|
627 |
|
#ifdef CYGWIN |
628 |
+ |
sg_set_error(SG_ERROR_UNSUPPORTED, "Cygwin"); |
629 |
|
return NULL; |
630 |
|
#endif |
631 |
|
|