Converts a Lisp string to a foreign string.
fli
convert-to-foreign-string string &key external-format null-terminated-p allow-null into limit allocation => pointer, length, byte-count
| string⇩ |
A Lisp string. |
| external-format⇩ |
An external format specification. |
| null-terminated-p⇩ |
If t, the foreign string terminates with a null character. The default value is t. |
| allow-null⇩ |
A boolean. The default is nil. |
| into⇩ |
A foreign array, a foreign pointer or nil. The default is nil. |
| limit⇩ |
A non-negative fixnum, or nil. The default is nil. |
| allocation⇩ |
A keyword, either :dynamic or :static. The default is :static. |
| pointer⇩ |
A FLI pointer to the foreign string. |
| length⇩ |
The length of the foreign string (including the terminating null character if there is one). |
| byte-count⇩ |
The number of bytes in the foreign string. |
The function convert-to-foreign-string converts a Lisp string to a foreign string, and returns a pointer to the string.
external-format is interpreted as by with-foreign-string. The names of available external formats are listed in section 26.6 External Formats to translate Lisp characters from/to external encodings in the LispWorks® User Guide and Reference Manual.
null-terminated-p specifies whether the foreign string is terminated with a null character. It defaults to t.
If allow-null is non-nil and string is nil then a null pointer pointer is returned. Otherwise, an error is signalled if string is nil.
If into is nil, then a new foreign string is allocated according to allocation, and limit is ignored.
If into is a FLI pointer to a integer type, then limit must be a fixnum and up to limit elements are filled with elements converted from the characters of string. The size of the integer type must equal the foreign size of external-format.
If into is a FLI array of integers or a pointer to a FLI array of integers, up to limit elements are filled with elements converted from the characters of string. If limit is nil, then the dimensions of the array are used. The size of the array element type must equal the foreign size of external-format.
If allocation is :dynamic, then convert-to-foreign-string allocates memory for the string and pointer within the scope of the body of with-dynamic-foreign-objects and additional values, length and byte-count are returned. This is equivalent to using convert-to-dynamic-foreign-string. Otherwise, the allocation is static and length and byte-count are not returned.
convert-from-foreign-string
set-locale
set-locale-encodings
with-foreign-string
26.6 External Formats to translate Lisp characters from/to external encodings in the LispWorks® User Guide and Reference Manual
5.2.5 Calling a C function that takes an array of strings
Foreign Language Interface User Guide and Reference Manual - 01 Dec 2021 19:34:58