Linux non esegue "nomi di file Unicode" di per sé. Tutti i nomi di file sono sequenze casuali di caratteri a 8 bit per quanto riguarda il kernel.
Le cose brutte possono accadere, come l'utente può scrivere un file e quindi cambiare la loro locale, lasciando il loro nome di file codificato nella locale precedente. Quindi se stai prendendo un nome di file come input, devi conservare la sequenza esatta di byte a 8 bit che ti è stata passata in main(). Se è necessario visualizzarlo all'utente, provare a interpretarlo nella codifica delle impostazioni internazionali correnti e convertire nel tipo preferito di Unicode.
Su molti moderni sistemi Linux, la codifica sarà UTF-8, quindi generalmente funzionerà OK.
fonte
2012-12-25 07:28:02
'int main (int argc, char * argv [])', e si ha in 'argc' il numero di argomenti, e' argv' è una matrice di puntatori 'char' che contengono gli argomenti. Questo è ANSI C, quindi funzionerà su qualsiasi implementazione portatile. O vuoi l'analisi delle opzioni da linea di comando? –
Vedo. Ero a conoscenza del paradigma argc argv. Mi chiedo come sia possibile ottenere argomenti unicode tramite argv. – lyxera
argv ti darà tutto ciò che la shell ha messo lì; dal momento che la shell lo tratta come una stringa di byte, che la spinge indietro al terminale. Tutti i terminali comuni ora sono compatibili con Unicode, quindi dovrebbe funzionare. –