2016-10-04 110 views
4

The Linux Programming Interface是* nix「posix」中程序的默認語言環境嗎?

有兩種使用的setlocale設置地方的兩種不同的方法()。參數locale 可以是指定系統上定義的語言環境之一的字符串(即, /usr/lib/locale下的其中一個子目錄的名稱),例如de_DE或en_US。 或者,區域設置可以指定爲空字符串,這意味着區域設置應該從環境變量中獲取:

setlocale(LC_ALL,「」);

我們必須進行此調用才能使程序認識到語言環境變量。如果調用被忽略,這些環境變量對程序沒有影響。

所以按我的understaning,如果我的程序沒有明確調用setlocale功能,我的程序將使用默認locale,這是POSIX*nix系統,對不對?我無法搜索指定的文件。

回答

5

看着the man

7.4程序如何設置語言環境

C程序中繼承其區域設置環境變量在啓動時。 這會自動發生。但是,這些變量不會自動控制庫函數使用的語言環境,因爲ISO C說所有程序都默認在標準「C」語言環境中啓動。要使用環境指定的語言環境,必須調用setlocale。說它如下:

setlocale (LC_ALL, ""); 

重點煤礦

相關問題