fread()没有写入缓冲区

时间:2010-09-19 00:13:10

标签: c windows fread

#include <Windows.h> 
#include <stdio.h> 

int count = 0; 
FILE* pFile = 0; 
long Size = 0; 

void *memfrob(void * s, size_t n) 
{ 
    char *p = (char *) s; 

    while (n-- > 0) 
        *p++ ^= 42; 
    return s; 
} 

int main() 
{ 
    fopen_s(&pFile, "***", "r+"); 
    fseek(pFile, 0, SEEK_END); 
    Size = ftell(pFile); 
    char *buffer = (char*)malloc(Size); 
    memset(buffer, 0, Size); 
    fread(buffer, Size, 1, pFile); 
    fclose(pFile); 
    memfrob(buffer, Size); 
    fopen_s(&pFile, "***", "w+"); 
    fwrite(buffer, Size, 1, pFile); 
    fclose(pFile); 
}

嗨,fread没有从文件到缓冲区读取任何内容,我无法弄清楚原因。有人能给我一个暗示或推动正确的方向吗?

2 个答案:

答案 0 :(得分:11)

你需要先寻找文件的开头。

答案 1 :(得分:4)

你在文件的最后做了一个fseek,并且在你做这个恐惧之前没有回来。