Write to an SDL_RWops data stream.
size_t SDL_RWwrite(SDL_RWops *context, const void *ptr, size_t size);
context | a pointer to an SDL_RWops structure |
ptr | a pointer to a buffer containing data to write |
size | the number of bytes to write |
Returns the number of bytes written, which will be less than num
on error; call SDL_GetError() for more information.
This function writes exactly size
bytes from the area pointed at by ptr
to the stream. If this fails for any reason, it'll return less than size
to demonstrate how far the write progressed. On success, it returns num
.
On error, this function still attempts to write as much as possible, so it might return a positive value less than the requested write size. If the function failed to write anything and there was an actual error, it will return -1. For streams that support non-blocking operation, if nothing was written because it would require blocking, this function returns -2 to distinguish that this is not an error and the caller can try again later.
SDL_RWwrite is actually a function wrapper that calls the SDL_RWops's write
method appropriately, to simplify application development.
It is an error to specify a negative size
, but this parameter is signed so you definitely cannot overflow the return value on a successful run with enormous amounts of data.
This function is available since SDL 3.0.0.
"hello.txt", "w");
SDL_RWops *rw = SDL_RWFromFile(if(rw != NULL) {
const char *str = "Hello World";
size_t len = SDL_strlen(str);
if (SDL_RWwrite(rw, str, 1, len) != len) {
"Couldn't fully write string\n");
printf(else {
} "Wrote %d 1-byte blocks\n", len);
printf(
}
SDL_RWclose(rw); }