2011-03-03 69 views

回答

4

如果您不擔心跨平臺的兼容性,只需將它們全部寫出來二進制:

int save_shorts(const unsigned short* array, size_t num_shorts) 
{ 
    int ok = 0; 
    FILE* out = fopen("numbers.bin", "wb"); 

    if (out != NULL) 
    { 
    ok = fwrite(array, num_shorts * sizeof *array, 1, out) == 1; 
    fclose(out); 
    } 
    return ok; 
} 

讀它們放回是非常相似,但與fread(),當然。你也可以使用C++(二進制)流,但這很簡單。

1

從簡單的文件I/O開始,以任何格式(zlib?)壓縮內存中的數據,然後將其寫入文件,大約有一個巨大的方法。隨你便。

1

您不可能比將文件映射到內存並寫入該內存的速度更快。這樣可以避免在用戶空間和內核之間進行stdio緩衝和複製數據。