




Краткий ответ: скорее всего, некоторые данные будут записаны в файл, если диск не заполнен в начале операции записи.
Более длинный ответ: это будет зависеть от того, какое исключение CFileException выбрасывается из вызова Write.
http://msdn.microsoft.com/en-us/library/as5cs056(VS.80).aspx
Поскольку у вас нет представления о внутреннем устройстве CFile (или не следует, если он правильно инкапсулирован), вам нужно полагаться на «контракт» API. Другими словами, если в документации конкретно не указано, что происходит в определенных случаях, вы не можете на это полагаться.
Даже если у вас был исходный код и вы могли его понять, Спецификация API - это контракт, и все, что не указано в нем, может быть изменено в любое время. Это одна из причин, по которой некоторые разработчики программного обеспечения опасаются публикации внутренних компонентов, поскольку в этом случае можно увидеть, что они навсегда заблокируют их поддержку.
Если вы действительно хотите убедиться, что ваш файл будет в известном состоянии после исключения, вам нужно будет кодировать поведение. Это может быть что-то вроде: