+ Ответить в теме
Показано с 1 по 3 из 3

Тема: Результат ReadFile?

  1. #1
    Недохакер system architect Сионист is an unknown quantity at this point Аватар для Сионист
    Регистрация
    31.03.2014
    Сообщений
    1,078
    Вес репутации
    0

    По умолчанию Результат ReadFile?

    Код :
    1.  
    2. Функция ReadFile возвращает значение тогда, когда выполнено одно из ниже перечисленных  условий:
    3.  
    4.     - операция записи завершается на записывающем конце канала,
    5.     - затребованное число байтов прочитано,
    6.     - или происходит ошибка.
    7.  
    8. Если функция завершается успешно, величина возвращаемого значения - не ноль.
    9.  
    10. Если функция завершается с ошибкой, величина возвращаемого значения - ноль. Чтобы получить дополнительные сведения об ошибке, вызовите GetLastError.
    11.  
    12. Если величина возвращаемого значения - не ноль, а число прочитанных байтов равняется нулю, указатель файла был за пределами текущего конца файла на момент операции чтения. Однако, если файл был открыт с флажком FILE_FLAG_OVERLAPPED, и lpOverlapped имеет  значение не ПУСТО (NULL), величина возвращаемого значения - ноль, а GetLastError возвращает ошибку ERROR_HANDLE_EOF, когда указатель файла проходит вне текущего конца файла.
    Значит ли это, что можно заменить
    Код :
    1. ReadFile(File, Data, sizeof(Data), &Readed, nullptr);
    2. if (Readed!=sizeof(Data))
    3. {
    4.  ...
    5. }
    на
    Код :
    1. if (ReadFile(File, Data, sizeof(Data), nullptr, nullptr)==0)
    2. {
    3.  ...
    4. }
    ? Понимается ли под ошибкой сам факт несовпадения количества фактически прочитанных байтов от значения третьего параметра не зависимо от причины? При чём здесь какой то записывающий конец и что подразумевается под ним?
    Писать можно на чём угодно, но зачем же так себя ограничивать? Пиши на c.

  2. По умолчанию

     
    Хотите избавиться от рекламы? Зарегистрируйтесь
  3. #2
    system architect somewhere will become famous soon enough somewhere will become famous soon enough Аватар для somewhere
    Регистрация
    31.08.2006
    Адрес
    71 RUS
    Возраст
    35
    Сообщений
    1,837
    Вес репутации
    16

    По умолчанию Re: Результат ReadFile?

    Понимается ли под ошибкой сам факт несовпадения количества фактически прочитанных байтов от значения третьего параметра не зависимо от причины?
    Там же написано, что если файл был открыт с флажком FILE_FLAG_OVERLAPPED, и lpOverlapped имеет значение не ПУСТО (NULL) - то в этом случае будет ошибка, т.к. несовпадение прочитанных байт и затребованных байт говорит о том, что достигнут конец файла (либо достигнут участок блокировки)
    Лично я бы не ориентировался на результат функции, а проверял бы сколько байт прочитано, т.к. мне лично все равно что там происходит - лишь бы я получил те байтики, которые просил. Ну а если бы не получил - тогда уже проверял бы в чем причина
    It's a long way to the top if you wanna rock'n'roll

  4. #3
    Недохакер system architect Сионист is an unknown quantity at this point Аватар для Сионист
    Регистрация
    31.03.2014
    Сообщений
    1,078
    Вес репутации
    0

    По умолчанию Re: Результат ReadFile?

    Причина нафиг не нужна, нужен факт. И у меня же там написан nullptr.
    Писать можно на чём угодно, но зачем же так себя ограничивать? Пиши на c.

+ Ответить в теме

Похожие темы

  1. Описать команду, представление адреса и найти результат
    Помогите с решением задания: Описать команду, представление адреса и найти результат. MUL ;(AX)=0350, (DS)=1000, (SI)=F000, ()=0120; (AX)=BA00,...
    от crasheg в разделе Ассемблер
  2. Вывести результат интеграла
    Здравствуйте программисты! Подскажите пожалуйста,как вывести результат в этом коде, когда-то брался решать,но не дорешал,подскажите пож.как вывести...
    от prikolist в разделе C и C++
  3. результат запроса сразу в массив (переменную).
    Как из файла dbf отобрать данные и результат поместить сразу в переменную? Есть файл main.dbf из которого надо выбрать записи, соответствующие...
    от tolikt в разделе MS Office и VB(A).
  4. Excel. Как получить результат функции СМЕЩ в виде текста?
    Как известно, функция =СМЕЩ($A$1:$B$2;2;0;3;3) возвращает результат в виде ссылки на диапазон A3:C5- в данном случае. Каким образом можно...
    от Avsha в разделе MS Office и VB(A).
  5. результат SQL апроса через Яву на Веб
    Имеется – JDeveloper, Oracle 9i Задача – достать данные из оракла и разместить на странице интернет. Вопрос – как это сделать. То есть, как...
    от George в разделе Java

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения