Y at-il une version wchar_t
de exec[lv][pe]
(à savoir un exec
qui utilise wchar_t
comme chemin et wchar_t
comme arguments)? En Windows
, je peux simplement faire CreateProcessW(process, cmdline)
, mais en *nix
, je suis bloqué (c'est-à-dire pas d'équivalent POSIX
pur). J'essaie d'ajouter le support UTF-16
à mon programme (un autorun).large exec pour C/C++
Répondre
Il n'y en a pas. Sous UNIX, il est habituel d'utiliser UTF-8 lors de l'interaction avec l'environnement.
Il y a cependant un problème: le système de fichiers sous UNIX/Linux est indépendant du codage. Donc, si je fais un LANG = ja_JAP.EUC_JP, créez un fichier avec le nom japonais, puis je fais un LANG = ja_JP.UTF8, quand je regarde mon nom de fichier ressemblera à du courrier indésirable, et ce sera une chaîne UTF-8 invalide.
Vous pourriez dire: pourquoi faire ça? Mais imaginez que vous avez un système utilisé par des centaines d'utilisateurs internationaux, chacun utilisant des fichiers russes/chinois/coréens/arabes, et vous devez écrire une application de sauvegarde :-(
La "solution" est de demander à tout le monde de définir les paramètres régionaux à quelque chose.UTF8, mais c'est juste une convention, le système lui-même n'applique rien
Est-ce que exec [lv] [pe] * UTF-8-aware? –
C'est la beauté de l'UTF-8 - - Les fonctions qui fonctionnent sur des octets terminés par NULL (AKA presque tous) fonctionneront avec UTF-8: –
sous Unix, il est habituel d'utiliser ASCII lors de l'interaction avec l'environnement. – hillu