2008-11-07 10 views
4

이 함수는 OS X에 존재하며 사용자 정의 로컬을 함수에 전달할 수 있습니다. setlocale은 스레드로부터 안전하지 않으며 로케일을 매개 변수로 전달합니다.Linux에서 printf_l에 해당하는 방법은 무엇입니까?

동등한 것이 없으면, 로캘에 독립적 인 printf 또는 double (% g)을위한 printf는 괜찮습니다.

답변

1

http://www.netlib.org/fp/에 로케일 독립적 인 문자열 변환 루틴이 있습니다. 문자열을 두 배로 변환하는 것도 가능합니다. API가 좋지는 않지만 코드가 작동합니다.

3

printf을 호출하기 전에 스레드 로캘 (프로세스 로캘이 아니라)을 설정하는 uselocale을 시도해보십시오.

+0

완벽하지는 않지만 작동합니다. 다른 사람이 더 좋은 대답을하면, 계속하십시오. –

+0

@ Sunlight : 나는 당신이 당신의 대답을 약간 증폭시켜야한다고 생각합니다. 그러나 당신이 옳을 것이라고 생각합니다. @phjr : printf_l()을 사용하는 BSD/MacOS X 솔루션은 틀림없이 더 조밀하지만 uselocale()이 작동해야합니다. –