Можете ли вы написать с определенной позиции в файл из c? - PullRequest
1 голос
/ 17 октября 2011

Я хочу начать с определенного смещения, записать, а затем в какой-то момент прочитать то же смещение и подтвердить, что я прочитал то, что записал в файл.Файл в двоичном формате.Я уверен, что мне нужно использовать fseek, но я могу захотеть вызвать запись несколько раз, прежде чем читать весь файл.

write(unsigned long long offset, void* pvsrc, unsigned long long nbytes)

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

 fseek(pFile,offset,SEEK_SET);   
 WriteResult = fwrite (pvsrc, 1, nbytes, pFile); 
 fclose(pFile);

Кто-нибудь видел какие-либо проблемы с этим?.. Кто-нибудь?

Ответы [ 2 ]

3 голосов
/ 17 октября 2011

Вы можете использовать ftell () , чтобы указать текущую позицию в файле, выполнить некоторые записи, а затем fseek () в начальную позицию, которую вы получили с помощью ftell (), чтобы прочитайте данные, которые вы написали.

0 голосов
/ 17 октября 2011

Если вы работаете в Linux, вы можете использовать функции pread() и pwrite(): http://linux.die.net/man/2/pread

Если вы работаете в Windows, вы можете использовать функции ReadFile() и WriteFile() с параметром lpOverlapped: http://msdn.microsoft.com/en-us/library/aa365467%28VS.85%29.aspx

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