| /* Test case by yaoz@nih.gov. */ |
| |
| #include <iconv.h> |
| #include <stddef.h> |
| #include <stdio.h> |
| #include <string.h> |
| |
| int |
| main (void) |
| { |
| char utf8[5]; |
| wchar_t ucs4[5]; |
| iconv_t cd; |
| char *inbuf; |
| char *outbuf; |
| size_t inbytes; |
| size_t outbytes; |
| size_t n; |
| |
| strcpy (utf8, "abcd"); |
| |
| /* From UTF8 to UCS4. */ |
| cd = iconv_open ("UCS4", "UTF8"); |
| if (cd == (iconv_t) -1) |
| { |
| perror ("iconv_open"); |
| return 1; |
| } |
| |
| inbuf = utf8; |
| inbytes = 4; |
| outbuf = (char *) ucs4; |
| outbytes = 4 * sizeof (wchar_t); /* "Argument list too long" error. */ |
| n = iconv (cd, &inbuf, &inbytes, &outbuf, &outbytes); |
| if (n == (size_t) -1) |
| { |
| printf ("iconv: %m\n"); |
| iconv_close (cd); |
| return 1; |
| } |
| iconv_close (cd); |
| |
| return 0; |
| } |