HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Sysutil Namespace Reference

Platform-independent utilities for various OS, hardware, and system resource functionality. More...

Classes

class  Term
 

Functions

OIIO_API size_t memory_used (bool resident=true)
 
OIIO_API size_t physical_memory ()
 
OIIO_API void get_local_time (const time_t *time, struct tm *converted_time)
 
OIIO_API std::string this_program_path ()
 
OIIO_API string_view getenv (string_view name, string_view defaultval)
 
OIIO_API string_view getenv (string_view name)
 
OIIO_API void usleep (unsigned long useconds)
 
OIIO_API bool put_in_background (int argc, char *argv[])
 
OIIO_API unsigned int hardware_concurrency ()
 
OIIO_API unsigned int physical_concurrency ()
 
OIIO_API size_t max_open_files ()
 Get the maximum number of open file handles allowed on this system. More...
 
OIIO_API std::string stacktrace ()
 
OIIO_API bool setup_crash_stacktrace (string_view filename)
 
OIIO_API int terminal_columns ()
 
OIIO_API int terminal_rows ()
 

Detailed Description

Platform-independent utilities for various OS, hardware, and system resource functionality.

Function Documentation

OIIO_API void Sysutil::get_local_time ( const time_t *  time,
struct tm *  converted_time 
)

Convert calendar time pointed by 'time' into local time and save it in 'converted_time' variable. This is a fully reentrant/thread-safe alternative to the non-reentrant C localtime() call.

OIIO_API string_view Sysutil::getenv ( string_view  name,
string_view  defaultval 
)

Return the value of an environment variable, or if it is not found in the environment, return defaultval, which in turn defaults to the empty string.

OIIO_API string_view Sysutil::getenv ( string_view  name)
OIIO_API unsigned int Sysutil::hardware_concurrency ( )

Number of virtual cores available on this platform (including hyperthreads).

OIIO_API size_t Sysutil::max_open_files ( )

Get the maximum number of open file handles allowed on this system.

OIIO_API size_t Sysutil::memory_used ( bool  resident = true)

The amount of memory currently being used by this process, in bytes. If resident==true (the default), it will report just the resident set in RAM; if resident==false, it returns the full virtual arena (which can be misleading because gcc allocates quite a bit of virtual, but not actually resident until malloced, memory per thread).

OIIO_API unsigned int Sysutil::physical_concurrency ( )

Number of full hardware cores available on this platform (does not include hyperthreads). This is not always accurate and on some platforms will return the number of virtual cores.

OIIO_API size_t Sysutil::physical_memory ( )

The amount of physical RAM on this machine, in bytes. If it can't figure it out, it will return 0.

OIIO_API bool Sysutil::put_in_background ( int  argc,
char *  argv[] 
)

Try to put the process into the background so it doesn't continue to tie up any shell that it was launched from. The arguments are the argc/argv that describe the program and its command line arguments. Return true if successful, false if it was unable to do so.

OIIO_API bool Sysutil::setup_crash_stacktrace ( string_view  filename)

Turn on automatic stacktrace dump to the named file if the program crashes. Return true if this is properly set up, false if it is not possible on this platform. The name may be "stdout" or "stderr" to merely print the trace to stdout or stderr, respectively. If the name is "", it will disable the auto-stacktrace printing.

OIIO_API std::string Sysutil::stacktrace ( )

Return a string containing a readable stack trace from the point where it was called. Return an empty string if not supported on this platform.

OIIO_API int Sysutil::terminal_columns ( )

Try to figure out how many columns wide the terminal window is. May not be correct on all systems, will default to 80 if it can't figure it out.

OIIO_API int Sysutil::terminal_rows ( )

Try to figure out how many rows tall the terminal window is. May not be correct on all systems, will default to 24 if it can't figure it out.

OIIO_API std::string Sysutil::this_program_path ( )

Return the full path of the currently-running executable program.

OIIO_API void Sysutil::usleep ( unsigned long  useconds)

Sleep for the given number of microseconds.