ICONV(3) | Library Functions Manual | ICONV(3) |
iconv_t
iconv_open(const char *dstname, const char *srcname);
int
iconv_close(iconv_t cd);
size_t
iconv(iconv_t cd, const char ** restrict src, size_t * restrict srcleft, char ** restrict dst, size_t * restrict dstleft);
The iconv_close() function closes the specified converter cd.
The iconv() function converts the string in the buffer *src of length *srcleft bytes and stores the converted string in the buffer *dst of size *dstleft bytes. After calling iconv(), the values pointed to by src, srcleft, dst, and dstleft are updated as follows:
If the string pointed to by *src contains a byte sequence which is not a valid character in the source codeset, the conversion stops just after the last successful conversion. If the output buffer is too small to store the converted character, the conversion also stops in the same way. In these cases, the values pointed to by src, srcleft, dst, and dstleft are updated to the state just after the last successful conversion.
If the string pointed to by *src contains a character which is valid under the source codeset but can not be converted to the destination codeset, the character is replaced by an “invalid character” which depends on the destination codeset, e.g., ‘?', and the conversion is continued. iconv() returns the number of such “invalid conversions”.
If the source and/or destination codesets are stateful, iconv() places these into their initial state. There are two special cases of iconv():
Upon successful completion of iconv_close(), it returns 0. Otherwise, iconv_close() returns -1 and sets errno to indicate the error.
Upon successful completion of iconv(), it returns the number of “invalid” conversions. Otherwise, iconv() returns (size_t)-1 and sets errno to indicate the error.
The iconv_close() function may cause an error in the following case:
The iconv() function may cause an error in the following cases:
May 5, 2010 | NetBSD 6.1 |