Wchar_t и разные ОС

  • Автор темы Автор темы shisik
  • Дата начала Дата начала
S

shisik

Я пишу кроссплатформенную программу для Windows и Linux и столкнулся с проблемой, что в этих ОС по-разному определён тип wchar_t. В Виндовсе он 2-байтный, а в Линуксе 4-байтный. И это не было бы проблемой, если б мне не нужно было писать эти строки в файл. Причём эти файлы должны быть одинаковыми для обеих систем. А получается, что при записи массива wchar_t str[8]; в одной ОС получается 16 байт, а в другой 32 ^_^ Ни о какой совместимости в таком случае говорить не приходится :( Как выходить из положения?
 
пиши в utf-8, если надо записать текстовые данные.
если у тебя бинарный формат то отказывайся от wchar_t, так его размер платфомозависим. вообщем размер типов в си вообще платформозависим + byte order.
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →
🔴 Свежие CVE, 0-day и инциденты
То, о чём ChatGPT ещё не знает — обсуждаем в реальном времени
Threat Intel →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

HackerLab