Function | Package: excl | ToC | DocOverview | CGDoc | RelNotes | FAQ | Index | PermutedIndex
| Allegro CL version 9.0 Unrevised from 8.2 to 9.0. 8.2 version

## string-to-native

Arguments: string &key (start 0) (end (length string)) address (external-format :default) aligned

Return values are an address and bytes-copied.

This function converts (according to the external-format argument) and copies the string data from indices specified by start to end out of the Lisp string into static (ie, non-lisp heap) memory and returns an address to the first character of that data.

If the address argument is specified, then its value will be used (and returned) as the destination address and new memory will not be allocated. If the address argument is not specified, then the resulting memory address (first returned value) must be passed to aclfree to be reclaimed.

If the aligned keyword argument is true, then address is an aligned address. Aligned addresses are returned by functions like lispval-to-aligned-malloc-address.

The copied string data will be null-terminated, that is the byte following the last data element is 0. The number of 8-bit bytes copied including the null-terminator is returned as the second value of this function.

Conversion is done using the specified external-format. If external-format is not specified (or, equivalently, if the value of external-format is `:default`), then the external format returned by the following form is used:

    (locale-external-format *locale*)

See locale-external-format and `*locale*`. See also string-to-octets, native-to-string, octets-to-native, and with-native-string.

See also iacl.htm for general information on international character set support in Allegro CL. See foreign-functions.htm for information on foreign functions.

Copyright (c) 1998-2019, Franz Inc. Oakland, CA., USA. All rights reserved.
This page was not revised from the 8.2 page.
Created 2012.5.30.

|  | ToC | DocOverview | CGDoc | RelNotes | FAQ | Index | PermutedIndex
| Allegro CL version 9.0 Unrevised from 8.2 to 9.0. 8.2 version