WriteFile lpNumberOfBytesWritten меньше чем nNumberOfBytesToWrite - PullRequest
6 голосов
/ 25 марта 2011

При вызове WriteFile может ли возвращенное значение lpNumberOfBytesWritten быть когда-либо меньше nNumberOfBytesToWrite в режиме синхронной записи, когда ошибка не произошла (значение возврата TRUE)?Запись выполняется в соответствующий файл (не в сокет, канал или другой специальный дескриптор).lpOverlapped не используется.

Это не совсем ясно из документов .

1 Ответ

6 голосов
/ 25 марта 2011

В документации говорится:

Функция WriteFile возвращается, когда возникает одно из следующих условий:

  • Запрошено количество запрошенных байтов.
  • Операция чтения освобождает буферное пространство на конце чтения канала (если запись была заблокирована). Для большего информация, см. раздел «Трубы».
  • Асинхронный дескриптор используется, и запись происходит асинхронно.
  • Произошла ошибка.

Только первый из них соответствует вашим критериям, поэтому ответ таков: документация ясна. *lpNumberOfBytesWritten всегда равно nNumberOfBytesToWrite, когда функция возвращается при вызове, как вы указали.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...