# putil.h File Reference

C API: Platform Utilities. More...

`#include "unicode/utypes.h"`

Go to the source code of this file.

## Defines
#define | IEEE_754 1
| Define this to 1 if your platform supports IEEE 754 floating point, to 0 if it does not.
#define | U_FILE_SEP_CHAR '/'
| Filesystem file and path separator characters.
#define | U_FILE_ALT_SEP_CHAR '/'
| Filesystem file and path separator characters.
#define | U_PATH_SEP_CHAR ':'
| Filesystem file and path separator characters.
#define | U_FILE_SEP_STRING "/"
| Filesystem file and path separator characters.
#define | U_FILE_ALT_SEP_STRING "/"
| Filesystem file and path separator characters.
#define | U_PATH_SEP_STRING ":"
| Filesystem file and path separator characters.
## Functions
const char * | u_getDataDirectory (void)
| Platform utilities isolates the platform dependencies of the libarary.
void | u_setDataDirectory (const char *directory)
| Set the ICU data directory.
const char * | uprv_getDefaultCodepage (void)
| Please use ucnv_getDefaultName() instead.
const char * | uprv_getDefaultLocaleID (void)
| Please use uloc_getDefault() instead.
void | u_charsToUChars (const char *cs, UChar *us, int32_t length)
| Convert char characters to UChar characters.
void | u_UCharsToChars (const UChar *us, char *cs, int32_t length)
| Convert UChar characters to char characters.

## Detailed Description

C API: Platform Utilities.

Definition in file putil.h.

## Define Documentation

#define IEEE_754 1

Define this to 1 if your platform supports IEEE 754 floating point, to 0 if it does not.

Definition at line 36 of file putil.h.

#define U_FILE_ALT_SEP_CHAR '/'

Filesystem file and path separator characters.

Example: '/' and ':' on Unix, '\' and ';' on Windows.

Stable:
  ICU 2.0

Definition at line 141 of file putil.h.

#define U_FILE_ALT_SEP_STRING "/"

Filesystem file and path separator characters.

Example: '/' and ':' on Unix, '\' and ';' on Windows.

Stable:
  ICU 2.0

Definition at line 144 of file putil.h.

#define U_FILE_SEP_CHAR '/'

Filesystem file and path separator characters.

Example: '/' and ':' on Unix, '\' and ';' on Windows.

Stable:
  ICU 2.0

Definition at line 140 of file putil.h.

#define U_FILE_SEP_STRING "/"

Filesystem file and path separator characters.

Example: '/' and ':' on Unix, '\' and ';' on Windows.

Stable:
  ICU 2.0

Definition at line 143 of file putil.h.

#define U_PATH_SEP_CHAR ':'

Filesystem file and path separator characters.

Example: '/' and ':' on Unix, '\' and ';' on Windows.

Stable:
  ICU 2.0

Definition at line 142 of file putil.h.

#define U_PATH_SEP_STRING ":"

Filesystem file and path separator characters.

Example: '/' and ':' on Unix, '\' and ';' on Windows.

Stable:
  ICU 2.0

Definition at line 145 of file putil.h.

## Function Documentation

void u_charsToUChars | ( | const char * | cs,
|  | UChar * | us,
|  | int32_t | length |
| ) |  |  |

Convert char characters to UChar characters.

This utility function is useful only for "invariant characters" that are encoded in the platform default encoding. They are a small, constant subset of the encoding and include just the latin letters, digits, and some punctuation. For details, see U_CHARSET_FAMILY.

Parameters:

  | cs | Input string, points to `length` character bytes from a subset of the platform encoding.
  | us | Output string, points to memory for `length` Unicode characters.
  | length | The number of characters to convert; this may include the terminating `NUL`.

See also:
  U_CHARSET_FAMILY

Stable:
  ICU 2.0

const char* u_getDataDirectory | ( | void |  | ) |

Platform utilities isolates the platform dependencies of the libarary.

For each platform which this code is ported to, these functions may have to be re-implemented. Return the ICU data directory. The data directory is where common format ICU data files (.dat files) are loaded from. Note that normal use of the built-in ICU facilities does not require loading of an external data file; unless you are adding custom data to ICU, the data directory does not need to be set.

The data directory is determined as follows: If u_setDataDirectory() has been called, that is it, otherwise if the ICU_DATA environment variable is set, use that, otherwise If a data directory was specifed at ICU build time ``

            #define ICU_DATA_DIR "path"

use that, otherwise no data directory is available.

Returns:
  the data directory, or an empty string ("") if no data directory has been specified.

Stable:
  ICU 2.0

void u_setDataDirectory | ( | const char * | directory | ) |

Set the ICU data directory.

The data directory is where common format ICU data files (.dat files) are loaded from. Note that normal use of the built-in ICU facilities does not require loading of an external data file; unless you are adding custom data to ICU, the data directory does not need to be set.

This function should be called at most once in a process, before the first ICU operation (e.g., u_init()) that will require the loading of an ICU data file. This function is not thread-safe. Use it before calling ICU APIs from multiple threads.

Parameters:

  | directory | The directory to be set.

See also:
  u_init

Stable:
  ICU 2.0

void u_UCharsToChars | ( | const UChar * | us,
|  | char * | cs,
|  | int32_t | length |
| ) |  |  |

Convert UChar characters to char characters.

This utility function is useful only for "invariant characters" that can be encoded in the platform default encoding. They are a small, constant subset of the encoding and include just the latin letters, digits, and some punctuation. For details, see U_CHARSET_FAMILY.

Parameters:

  | us | Input string, points to `length` Unicode characters that can be encoded with the codepage-invariant subset of the platform encoding.
  | cs | Output string, points to memory for `length` character bytes.
  | length | The number of characters to convert; this may include the terminating `NUL`.

See also:
  U_CHARSET_FAMILY

Stable:
  ICU 2.0

const char* uprv_getDefaultCodepage | ( | void |  | ) |

Please use ucnv_getDefaultName() instead.

Return the default codepage for this platform and locale. This function can call setlocale() on Unix platforms. Please read the platform documentation on setlocale() before calling this function.

Returns:
  the default codepage for this platform

Internal:
  Do not use. This API is for internal use only.

const char* uprv_getDefaultLocaleID | ( | void |  | ) |

Please use uloc_getDefault() instead.

Return the default locale ID string by querying ths system, or zero if one cannot be found. This function can call setlocale() on Unix platforms. Please read the platform documentation on setlocale() before calling this function.

Returns:
  the default locale ID string

Internal:
  Do not use. This API is for internal use only.

All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Friends Defines