size_t SDL_RWread(struct SDL_RWops* context, void* ptr, size_t size, size_t maxnum)
| context | SDL_RWopsへのポインタ | 
| ptr | 読み込んだデータを書き込むポインタ | 
| size | 1つのオブジェクトのバイト数 | 
| maxnum | 読み込む最大のオブジェクト数 | 
SDL_RWops *rw = SDL_RWFromFile("test.bin","r");
if (rw != NULL) {
    extern Uint8 buf[256];
    SDL_RWread(rw, buf, sizeof (buf), 1);
    SDL_RWclose(rw);
}
ファイルを読み込む完全なコードは次の通りである. (サイズが得られると仮定している) (OpenGL WikiBookより):
char* file_read(const char* filename) {
        SDL_RWops *rw = SDL_RWFromFile(filename, "rb");
        if (rw == NULL) return NULL;
        Sint64 res_size = SDL_RWsize(rw);
        char* res = (char*)malloc(res_size + 1);
        Sint64 nb_read_total = 0, nb_read = 1;
        char* buf = res;
        while (nb_read_total < res_size && nb_read != 0) {
                nb_read = SDL_RWread(rw, buf, 1, (res_size - nb_read_total));
                nb_read_total += nb_read;
                buf += nb_read;
        }
        SDL_RWclose(rw);
        if (nb_read_total != res_size) {
                free(res);
                return NULL;
        }
        res[nb_read_total] = '¥0';
        return res;
}
それぞれsizeバイトの最大num個のオブジェクトを読み込みptrポインタへ書き込む. 読み込むオブジェクトの数は要求の数より少ない場合がある. エラーが発生した, またはデータストリームを完全に読み込んだ場合は0を戻す.
SDL 2.0.10以前は, 実際にはSDL_RWopsのreadメソッドを呼ぶマクロだった.
32bit整数が保存されていることを想定している. 40byteのデータを読み込み, bufferに書き込む.
それぞれのUint32は4byte, 32bitである.
Uint32 buffer[10];
SDL_RWread(rwop, buffer, sizeof(Uint32), 10);
64bit整数が保存されていることを想定している. 80byteのデータを読み込み, bufferに書き込む.
それぞれのUint64は8byteで, 10個の値を読み込む.
Uint64 buffer[10];
SDL_RWread(rwop, buffer, sizeof(Uint64), 10);