02-19-2010
[SOLVED] Unicode filenames in C++?
I'm trying to figure out how to support Unicode or atleast an unsigned char in the d_name of struct dirent
The problem i'm facing is that I'm checking file names for special characters and obviously the "char d_name" doesn't like it. I'm looping through the directory and getting the file names/folder names
Last edited by james2432; 02-20-2010 at 07:19 AM..
10 More Discussions You Might Find Interesting
1. UNIX for Advanced & Expert Users
Hi,
I have some software I need to install on HP-UX 11iv1 64bit but it must not be set up in unicode mode. I know unicode/ ASCII etc. I don't know how to get unix to switch between these. Is there an environment setting for that? I use the Korn shell.
Thanks. (2 Replies)
Discussion started by: rein
2 Replies
2. Programming
I have a stream of characters like "\u8BBE\u5907\u7BA1"
and i want to display it.
I tried following things already without any luck.
1) printf("%s",L("\u8BBE\u5907\u7BA1"));
2) printf("%lc",0x8BBE);
3) setlocale followed by fwide followed by wprintf
4) also changed the local manually... (3 Replies)
Discussion started by: jackdorso
3 Replies
3. UNIX for Advanced & Expert Users
Here at the agency I work for, a need has arisen for a subdomain that utilizes some unicode characters. It has something to do with our foreign clients getting "page could not be displayed" errors in their internationalized browsers. I am still investigating the issue, but I've been asked to find... (2 Replies)
Discussion started by: deckard
2 Replies
4. UNIX for Advanced & Expert Users
All,
I'm trying to grasp how to use Unicode with/in Unix. I've made progress on some fronts, for example, when uploading files to my server I can use the intermediary language to convert the file to UTF-8.
I'm having trouble getting Samba to do this (I'm using "unix charset" in smb.conf);... (4 Replies)
Discussion started by: effigy
4 Replies
5. Programming
Dear experts,
While developping a C UNICODE application under AIX 5.3, I encountered the following problem, and after days of investigations I still could not find any solution.
Please note that the application is full wchar_t based (not utf8) and that I could compile and run it without any... (4 Replies)
Discussion started by: tgilbert
4 Replies
6. Programming
on some distributions UTF-32 is the default and i need to change the size of wchar_t to 2 bytes. i tried to compile it with -fwide-exec-charset=UTF-16 but it didn't help. anyone have any ideas?
thanks,
Akos (3 Replies)
Discussion started by: Akimaki
3 Replies
7. Programming
im starting to go a little serious with c, woking in a personal project that will read a xml, which might contain Unicode characters (i know it will on my system, which is set to es_AR.UTF-8)
im using mxml, and the documentation says it uses utf8 internally (no worries here).
so i need to be... (4 Replies)
Discussion started by: broli
4 Replies
8. Shell Programming and Scripting
hello
there's some stranges code symbols they looks like this:
\u0438 \u0247. unicode i think
this code can be viewed by javascript so i need it
i need to convert casual characters to this code with perl
atm stucked with ord, chr, pack, etc things but they giving other digits (7 Replies)
Discussion started by: tip78
7 Replies
9. Shell Programming and Scripting
I don't want HTML_CONTENT,RICH_CONTENT,TEXT_CONTENT columns data in the file and reset of data we need to extract.
Find the attached file.
Need to extract date in between DI_UX_ROW_END tag.
Can help me using unix command using AWK.
Thanks, (2 Replies)
Discussion started by: bmk
2 Replies
10. Shell Programming and Scripting
is there any way to handle unicode such as ʃʰɐm̆ (1 Reply)
Discussion started by: sreejithalokkan
1 Replies
LEARN ABOUT LINUX
alphasort
SCANDIR(3) Linux Programmer's Manual SCANDIR(3)
NAME
scandir, alphasort, versionsort - scan a directory for matching entries
SYNOPSIS
#include <dirent.h>
int scandir(const char *dirp, struct dirent ***namelist,
int (*filter)(const struct dirent *),
int (*compar)(const struct dirent **, const struct dirent **));
int alphasort(const void *a, const void *b);
int versionsort(const void *a, const void *b);
Feature Test Macro Requirements for glibc (see feature_test_macros(7)):
scandir(), alphasort(): _BSD_SOURCE || _SVID_SOURCE
versionsort(): _GNU_SOURCE
DESCRIPTION
The scandir() function scans the directory dirp, calling filter() on each directory entry. Entries for which filter() returns nonzero are
stored in strings allocated via malloc(3), sorted using qsort(3) with the comparison function compar(), and collected in array namelist
which is allocated via malloc(3). If filter is NULL, all entries are selected.
The alphasort() and versionsort() functions can be used as the comparison function compar(). The former sorts directory entries using str-
coll(3), the latter using strverscmp(3) on the strings (*a)->d_name and (*b)->d_name.
RETURN VALUE
The scandir() function returns the number of directory entries selected or -1 if an error occurs.
The alphasort() and versionsort() functions return an integer less than, equal to, or greater than zero if the first argument is considered
to be respectively less than, equal to, or greater than the second.
ERRORS
ENOMEM Insufficient memory to complete the operation.
VERSIONS
versionsort() was added to glibc in version 2.1.
CONFORMING TO
alphasort() and scandir() are specified in POSIX.1-2008, and are widely available. versionsort() is a GNU extension.
The functions scandir() and alphasort() are from 4.3BSD, and have been available under Linux since libc4. Libc4 and libc5 use the more
precise prototype
int alphasort(const struct dirent ** a,
const struct dirent **b);
but glibc 2.0 returns to the imprecise BSD prototype.
The function versionsort() is a GNU extension, available since glibc 2.1.
Since glibc 2.1, alphasort() calls strcoll(3); earlier it used strcmp(3).
EXAMPLE
#define _SVID_SOURCE
/* print files in current directory in reverse order */
#include <dirent.h>
int
main(void)
{
struct dirent **namelist;
int n;
n = scandir(".", &namelist, 0, alphasort);
if (n < 0)
perror("scandir");
else {
while (n--) {
printf("%s
", namelist[n]->d_name);
free(namelist[n]);
}
free(namelist);
}
}
SEE ALSO
closedir(3), fnmatch(3), opendir(3), readdir(3), rewinddir(3), seekdir(3), strcmp(3), strcoll(3), strverscmp(3), telldir(3)
COLOPHON
This page is part of release 3.27 of the Linux man-pages project. A description of the project, and information about reporting bugs, can
be found at http://www.kernel.org/doc/man-pages/.
GNU
2009-02-10 SCANDIR(3)