metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2012-01-22 10:36 pm

atof, strtod и локаль.

Внезапно: а вот как положено в коде на С конвертить строку в double, если мы точно знаем, что в строке десятичный разделитель ".", и точно знаем, что код будут запускать на системе с адовыми локалями, у которых разделитель "," типа русской, белорусской итд? В дотнете, как положено, есть функция с параметром для локали и инвариантная локаль InvariantCulture. А в олдскульно-кошерном C как? setlocale(LC_NUMERIC,"C"); чо-то не рекомендуют, говорят, не thread-safe.

[identity profile] permea-kra.livejournal.com 2012-01-23 11:40 am (UTC)(link)
Тогда воркер надо выносить в отдельный поток. Особенно если предусмотренны длинные файловые операции. Только за то, что в ворде нельзя работать одновременно с сохранение промежуточного результата на медленную флешку хочется убить аффторов.

[identity profile] thedeemon.livejournal.com 2012-01-23 11:53 am (UTC)(link)
И я о том же. Воркер в отдельном потоке, отрисовка его состояния - в основном.

[identity profile] tzirechnoy.livejournal.com 2012-01-23 05:54 pm (UTC)(link)
Ну, вот в ворде трэдов явно не один. И что, помогло это тем индусам, которые его дизайнили?

[identity profile] thedeemon.livejournal.com 2012-01-23 06:34 pm (UTC)(link)
Дизайнили еще до индусов. Вон Спольски когда-то эксель делал.