tst-iconv1.c 805 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. #include <iconv.h>
  2. #include <stddef.h>
  3. #include <stdio.h>
  4. #include <string.h>
  5. static int
  6. do_test (void)
  7. {
  8. char utf8[5];
  9. wchar_t ucs4[5];
  10. iconv_t cd;
  11. char *inbuf;
  12. char *outbuf;
  13. size_t inbytes;
  14. size_t outbytes;
  15. size_t n;
  16. strcpy (utf8, "abcd");
  17. /* From UTF8 to UCS4. */
  18. cd = iconv_open ("UCS4", "UTF8");
  19. if (cd == (iconv_t) -1)
  20. {
  21. perror ("iconv_open");
  22. return 1;
  23. }
  24. inbuf = utf8;
  25. inbytes = 4;
  26. outbuf = (char *) ucs4;
  27. outbytes = 4 * sizeof (wchar_t); /* "Argument list too long" error. */
  28. n = iconv (cd, &inbuf, &inbytes, &outbuf, &outbytes);
  29. if (n == (size_t) -1)
  30. {
  31. printf ("iconv: %m\n");
  32. iconv_close (cd);
  33. return 1;
  34. }
  35. iconv_close (cd);
  36. return 0;
  37. }
  38. #define TEST_FUNCTION do_test ()
  39. #include "../test-skeleton.c"