Main MRPT website > C++ reference for MRPT 1.4.0
os.h
Go to the documentation of this file.
1/* +---------------------------------------------------------------------------+
2 | Mobile Robot Programming Toolkit (MRPT) |
3 | http://www.mrpt.org/ |
4 | |
5 | Copyright (c) 2005-2016, Individual contributors, see AUTHORS file |
6 | See: http://www.mrpt.org/Authors - All rights reserved. |
7 | Released under BSD License. See details in http://www.mrpt.org/License |
8 +---------------------------------------------------------------------------+ */
9#ifndef FILE_MRPT_OS_H
10#define FILE_MRPT_OS_H
11
12#include <mrpt/config.h>
13
14#include <cstdlib>
15#include <cstdarg>
16
17// Duplicated here since <mrpt/system/os.h> is the only header that cannot include "utils_defs.h"
18#include <mrpt/base/link_pragmas.h> // DLL import/export definitions
19
22
23namespace mrpt
24{
25 /** This namespace provides a OS-independent interface to many useful functions: filenames manipulation, time and date, string parsing, file I/O, threading, memory allocation, etc.
26 * \sa mrpt::system::os \ingroup mrpt_base_grp
27 */
28 namespace system
29 {
30 /** \defgroup mrpt_system_os OS and compiler abstraction (in #include <mrpt/system/os.h>)
31 * \ingroup mrpt_base_grp */
32
33 /** This namespace provides a OS-independent interface to low-level functions.
34 * Most of these functions are converted into calls to standard functions, unless we are into Visual Studio 2005 (or newer). In that case the secure version
35 * of the standard library functions (prefix "_s") are used instead. \ingroup mrpt_base_grp mrpt_system_os
36 */
37 namespace os
38 {
39 /** \addtogroup mrpt_system_os
40 * @{ */
41
42 /** An OS-independent version of sprintf (Notice the bufSize param, which may be ignored in some compilers)
43 * \sa utils::format
44 */
45 int BASE_IMPEXP sprintf(char *buf, size_t bufSize, const char *format, ...) MRPT_NO_THROWS MRPT_printf_format_check(3,4);
46
47 /** An OS-independent version of vsprintf (Notice the bufSize param, which may be ignored in some compilers)
48 */
49 int BASE_IMPEXP vsprintf(char *buf, size_t bufSize, const char *format, va_list args) MRPT_NO_THROWS;
50
51 /** An OS-independent version of vsnprintf (Notice the bufSize param, which may be ignored in some compilers)
52 */
53 int BASE_IMPEXP vsnprintf(char *buf, size_t bufSize, const char *format, va_list args) MRPT_NO_THROWS;
54
55 /** An OS-independent version of fopen.
56 * \return It will always return NULL on any error.
57 */
58 FILE BASE_IMPEXP *fopen(const char *fileName,const char *mode) MRPT_NO_THROWS;
59
60 /** An OS-independent version of fopen (std::string version)
61 * \return It will always return NULL on any error.
62 */
63 FILE BASE_IMPEXP *fopen(const std::string &fileName,const char *mode) MRPT_NO_THROWS;
64
65 /** An OS-independent version of fprintf
66 */
67 int BASE_IMPEXP fprintf(FILE *fil, const char *format, ...) MRPT_NO_THROWS MRPT_printf_format_check(2,3);
68
69 /** An OS-independent version of fscanf
70 * \return The number of fields correctly assigned
71 */
72 //int BASE_IMPEXP fscanf(FILE *fil, const char *format, ...) MRPT_NO_THROWS MRPT_scanf_format_check(2,3);
73
74 /** An OS-independent version of fclose.
75 * \exception std::exception On trying to close a NULL file descriptor.
76 */
77 void BASE_IMPEXP fclose(FILE *f);
78
79 /** An OS-independent version of strcat.
80 * \return It will always return the "dest" pointer.
81 */
82 char BASE_IMPEXP * strcat(char *dest, size_t destSize, const char *source) MRPT_NO_THROWS;
83
84 /** An OS-independent version of strcpy.
85 * \return It will always return the "dest" pointer.
86 */
87 char BASE_IMPEXP *strcpy(char *dest, size_t destSize, const char *source) MRPT_NO_THROWS;
88
89 /** An OS-independent version of strcmp.
90 * \return It will return 0 when both strings are equal, casi sensitive.
91 */
92 int BASE_IMPEXP _strcmp(const char*str1,const char*str2) MRPT_NO_THROWS;
93
94 /** An OS-independent version of strcmpi.
95 * \return It will return 0 when both strings are equal, casi insensitive.
96 */
97 int BASE_IMPEXP _strcmpi(const char*str1,const char*str2) MRPT_NO_THROWS;
98
99 /** An OS-independent version of strncmp.
100 * \return It will return 0 when both strings are equal, casi sensitive.
101 */
102 int BASE_IMPEXP _strncmp(const char*str,const char*subStr,size_t count) MRPT_NO_THROWS;
103
104 /** An OS-independent version of strnicmp.
105 * \return It will return 0 when both strings are equal, casi insensitive.
106 */
107 int BASE_IMPEXP _strnicmp(const char*str,const char*subStr,size_t count) MRPT_NO_THROWS;
108
109 /** An OS-independent version of strtoll.
110 */
111 int64_t BASE_IMPEXP _strtoll(const char *nptr, char **endptr, int base);
112
113 /** An OS-independent version of strtoull.
114 */
115 uint64_t BASE_IMPEXP _strtoull(const char *nptr, char **endptr, int base);
116
117 /** An OS-independent version of timegm (which is not present in all compilers): converts a time structure into an UTM time_t */
118 time_t BASE_IMPEXP timegm(struct tm *tm);
119
120 /** An OS and compiler independent version of "memcpy"
121 */
123 void *dest,
124 size_t destSize,
125 const void *src,
126 size_t copyCount ) MRPT_NO_THROWS;
127
128 /** An OS-independent version of getch, which waits until a key is pushed.
129 * \return The pushed key code
130 */
132
133 /** An OS-independent version of kbhit, which returns true if a key has been pushed.
134 */
136
137 /** @} */
138
139 } // end namespace "os"
140
141 /** \addtogroup mrpt_system_os
142 * @{ */
143
144 /** Shows the message "Press any key to continue" (or other custom message) to the current standard output and returns when a key is pressed */
145 void BASE_IMPEXP pause(const std::string &msg = std::string("Press any key to continue...") ) MRPT_NO_THROWS;
146
147 /** Clears the console window */
149
150 /** Returns the MRPT source code timestamp, according to the Reproducible-Builds specifications: https://reproducible-builds.org/specs/source-date-epoch/ */
152
153 /** Returns a string describing the MRPT version */
155
156 /** Returns a const ref to a text with the same text that appears at the beginning of each MRPT file (useful for displaying the License text in GUIs) */
157 const std::string BASE_IMPEXP & getMRPTLicense();
158
159 /** Since MRPT 1.3.0 this function does nothing */
160 MRPT_DECLARE_DEPRECATED_FUNCTION("Deprecated: This function does nothing now. Do not call it.",
162 );
163
164 /** For use in setConsoleColor */
166 {
170 CONCOL_RED = 4
171 };
172
173 /** Changes the text color in the console for the text written from now on.
174 * The parameter "color" can be any value in TConsoleColor.
175 *
176 * By default the color of "cout" is changed, unless changeStdErr=true, in which case "cerr" is changed.
177 */
178 void BASE_IMPEXP setConsoleColor( TConsoleColor color, bool changeStdErr=false );
179
180 /** @} */
181
182 } // End of namespace
183
184} // End of namespace
185
186#endif
int BASE_IMPEXP _strcmpi(const char *str1, const char *str2) MRPT_NO_THROWS
An OS-independent version of strcmpi.
char BASE_IMPEXP * strcpy(char *dest, size_t destSize, const char *source) MRPT_NO_THROWS
An OS-independent version of strcpy.
time_t BASE_IMPEXP timegm(struct tm *tm)
An OS-independent version of timegm (which is not present in all compilers): converts a time structur...
std::string BASE_IMPEXP MRPT_getCompilationDate()
Returns the MRPT source code timestamp, according to the Reproducible-Builds specifications: https://...
int BASE_IMPEXP _strcmp(const char *str1, const char *str2) MRPT_NO_THROWS
An OS-independent version of strcmp.
void BASE_IMPEXP pause(const std::string &msg=std::string("Press any key to continue...")) MRPT_NO_THROWS
Shows the message "Press any key to continue" (or other custom message) to the current standard outpu...
bool BASE_IMPEXP kbhit() MRPT_NO_THROWS
An OS-independent version of kbhit, which returns true if a key has been pushed.
uint64_t BASE_IMPEXP _strtoull(const char *nptr, char **endptr, int base)
An OS-independent version of strtoull.
int BASE_IMPEXP fprintf(FILE *fil, const char *format,...) MRPT_NO_THROWS MRPT_printf_format_check(2
An OS-independent version of fprintf.
int64_t BASE_IMPEXP _strtoll(const char *nptr, char **endptr, int base)
An OS-independent version of strtoll.
int BASE_IMPEXP getch() MRPT_NO_THROWS
An OS-independent version of getch, which waits until a key is pushed.
std::string BASE_IMPEXP MRPT_getVersion()
Returns a string describing the MRPT version.
int BASE_IMPEXP sprintf(char *buf, size_t bufSize, const char *format,...) MRPT_NO_THROWS MRPT_printf_format_check(3
An OS-independent version of sprintf (Notice the bufSize param, which may be ignored in some compiler...
char BASE_IMPEXP * strcat(char *dest, size_t destSize, const char *source) MRPT_NO_THROWS
An OS-independent version of strcat.
int BASE_IMPEXP _strnicmp(const char *str, const char *subStr, size_t count) MRPT_NO_THROWS
An OS-independent version of strnicmp.
FILE BASE_IMPEXP * fopen(const char *fileName, const char *mode) MRPT_NO_THROWS
An OS-independent version of fopen.
int BASE_IMPEXP vsnprintf(char *buf, size_t bufSize, const char *format, va_list args) MRPT_NO_THROWS
An OS-independent version of vsnprintf (Notice the bufSize param, which may be ignored in some compil...
void BASE_IMPEXP clearConsole()
Clears the console window.
int BASE_IMPEXP _strncmp(const char *str, const char *subStr, size_t count) MRPT_NO_THROWS
An OS-independent version of strncmp.
const std::string BASE_IMPEXP & getMRPTLicense()
Returns a const ref to a text with the same text that appears at the beginning of each MRPT file (use...
void BASE_IMPEXP memcpy(void *dest, size_t destSize, const void *src, size_t copyCount) MRPT_NO_THROWS
An OS and compiler independent version of "memcpy".
int BASE_IMPEXP int BASE_IMPEXP vsprintf(char *buf, size_t bufSize, const char *format, va_list args) MRPT_NO_THROWS
An OS-independent version of vsprintf (Notice the bufSize param, which may be ignored in some compile...
void BASE_IMPEXP setConsoleColor(TConsoleColor color, bool changeStdErr=false)
Changes the text color in the console for the text written from now on.
TConsoleColor
For use in setConsoleColor.
Definition os.h:166
int BASE_IMPEXP void BASE_IMPEXP fclose(FILE *f)
An OS-independent version of fscanf.
void BASE_IMPEXP registerFatalExceptionHandlers()
Since MRPT 1.3.0 this function does nothing.
@ CONCOL_BLUE
Definition os.h:168
@ CONCOL_NORMAL
Definition os.h:167
@ CONCOL_RED
Definition os.h:170
@ CONCOL_GREEN
Definition os.h:169
mrpt::system::TTimeStamp now()
A shortcut for system::getCurrentTime.
Definition datetime.h:70
#define MRPT_DECLARE_DEPRECATED_FUNCTION(__MSG, __FUNC)
Usage: MRPT_DECLARE_DEPRECATED_FUNCTION("Use XX instead", void myFunc(double));.
Definition mrpt_macros.h:47
#define MRPT_printf_format_check(_FMT_, _VARARGS_)
Definition mrpt_macros.h:71
#define MRPT_NO_THROWS
Used after member declarations.
Definition mrpt_macros.h:81
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.
std::string BASE_IMPEXP format(const char *fmt,...) MRPT_printf_format_check(1
A std::string version of C sprintf.
STL namespace.



Page generated by Doxygen 1.9.7 for MRPT 1.4.0 SVN: at Tue Jun 27 17:12:06 UTC 2023