Чтение письма со смещения - PullRequest
0 голосов
/ 15 октября 2011
bool CReadWrite::write(unsigned long long offset, void* pvsrc, unsigned long long nbytes)
{   int WriteResult;

    pFile = fopen("D:\\myfile.bin","wb");

    if (!pFile){   
        puts("Can't open file"); 
        return false;
    }

    //offset = fseek(pFile,offset,

    WriteResult = fwrite (pvsrc, 1, nbytes, pFile);

    if (WriteResult == nbytes){   
        puts("Wrote to file");
        fclose(pFile);
        return true;
    }
    else{   
        puts("Unable to write to File."); 
        fclose(pFile);
        return false;
    }   
}

Пока это моя классовая функция. Я в основном открываю файл, проверяю, действительно ли он открылся, если не вышел. Записывает файл, проверяет, проверяет ли файл, действительно ли файл записан, и возвращает true. иначе вернуть ложь. Как вы можете судить по моим параметрам, я пытаюсь создать смещение, в котором я могу дать конкретное смещение, то есть 10, и начать с 10, а затем оттуда писать. Я точно знаю, что мне нужно использовать fseek, но я не могу предположить, что я нахожусь в начале файла или в любом месте файла. Я уверен, что мне нужно использовать SEEK_SET, но я могу ошибаться. Есть мысли по поводу реализации вышеуказанных желаний? Благодаря.

1 Ответ

2 голосов
/ 15 октября 2011

Если вы используете fopen без настройки добавления (как вы, «wb» создает пустой файл), вы можете предположить, что вы в начале.

Независимо от того, SEEK_SET устанавливает позицию для данного смещения от начала.

Если файл не имеет смещения, к которому вы хотите обратиться (как в вашем случае), то вопрос в том, что вы должны делать? Если просто pad - тогда напишите offset байтов заполнения, а затем ваш контент, в противном случае, возможно, вы захотите использовать «a», а не «w». «w» обрезает существующее содержимое файла, а «a» открывает для добавления и устанавливает позицию в конец существующего содержимого.

Подробнее здесь .

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