En effet il faut bien un reinterpret_cast pour la taille (je voulais le dire mais je voulais tester avant sous le dernier C++ pour voir s'ils avaient ajouté des surcharges que je ne connaissais pas, et j'ai procrastiné là-dessus).
Par contre, pourquoi toute cette discussion sur c_str() et data(), alors que write() accepte déjà un pointeur constant?