半冷半暖秋天

2010-09-03

fread读不完:fopen打开标记造成的该死问题

Filed under: C/C++ — 标签:, , — sunu @ 23:45:18

fopen的函数原型是:

FILE *fopen(  const char* filename, const char* mode );

在windows下,mode一般情况下一定要加上个b,比如”wb”,”rb”, “rb+”,否则后患无穷。虽然听说不加上b是按文本格式读取什么的,但我一时还真难理解这到底有什么意义,linux下应该是没有这一说法的。,如果不加上,有些行为就很难理解,比如今天碰到:fread永远无法读完文件剩余的decodeLength字节,都是中途readedLen读到0而退出循环。

while (leftByte>0){
    readedLen = fread(cipherData, 1, decodeLength, fp);
    if(readedLen==0)
        break;
    leftByte -= readedLen;
}

评论暂缺 »

还没有任何评论。

这篇文章上的评论的 RSS feed

留下评论

Powered by WordPress