Wiki Page Content

Differences between revisions 16 and 17
Revision 16 as of 2013-06-15 16:18:04
Size: 2143
Comment: Changed signature to match SDL_main.h.
Revision 17 as of 2013-08-08 18:40:58
Size: 1724
Editor: RyanGordon
Comment: Rewritten
Deletions are marked like this. Additions are marked like this.
Line 16: Line 16:
<<Color2(green,Seems like the type for '''context''' might have changed from SDL_RWops* to struct SDL_RWops*. Which is correct?)>>
Line 19: Line 17:
||'''context'''||^a data stream containing the seek function???^|| ||'''context'''||A pointer to an [[SDL_RWops]] structure||
Line 27: Line 25:
*<<BR>>
Line 29: Line 26:
#include <stdio.h>
#include "SDL_rwops.h"

int main(int argc, char *argv[])
{
  Sint64 length;
  
SDL_RWops *rw=SDL_RWFromFile("myfile.bin","rb");
  if(rw==NULL)
 
{
    fprintf(stderr,"Couldn't open myfile.bin\n");
    return(1);
  }

/* Seek to 0 bytes from the end of the file -- i.e. the exact end of file */
  length=SDL_RWseek(rw,0,SEEK_END);
  SDL_RWclose(rw);
  if(length<0)
 
{
    fprintf(stderr,"Could not seek inside myfile.bin\n");
    return(2);
  
}

  f
printf(stderr,"myfile.bin is %d bytes long\n",length);
  return(0);
SDL_RWops *rw = SDL_RWFromFile("myfile.bin","rb");
if (rw != NULL) {
    /* Seek to 0 bytes from the end of the file */
    Sint64 length = SDL_RWseek(rw,0,SEEK_END);
    SDL_RWclose(rw);
    if (length < 0) {
        printf("Could not seek inside myfile.bin\n");
    } else {
        
printf("myfile.bin is %d bytes long\n",length);
    }
Line 54: Line 37:
}}}<<BR>>* }}}
Line 57: Line 40:
*<<BR>>This is not a predefined function, just a macro that calls whatever seek function has been placed in the SDL_RWops structure.<<BR>>*

[[SDL_RWseek]] seeks to '''offset''' relative to '''whence'''. <<Color2(green,Should SDL_RWseek have () like a function even though it's a macro?)>>
This function seeks to '''offset''' relative to '''whence'''
Line 65: Line 46:

If this stream can not seek, it will return -1.

SDL_RWseek is actually a macro that calls the SDL_RWops's ''''seek''' method appropriately, to simplify application development.

SDL_RWseek

Use this function to seek within an SDL_RWops data stream.

Syntax

Sint64 SDL_RWseek(SDL_RWops* context,
                  Sint64     offset, 
                  int        whence)

Function Parameters

context

A pointer to an SDL_RWops structure

offset

an offset in bytes, relative to whence location; can be negative

whence

any of RW_SEEK_SET, RW_SEEK_CUR, RW_SEEK_END; see Remarks for details

Return Value

Returns the final offset in the data stream after the seek or -1 on error.

Code Examples

SDL_RWops *rw = SDL_RWFromFile("myfile.bin","rb");
if (rw != NULL) {
    /* Seek to 0 bytes from the end of the file */
    Sint64 length = SDL_RWseek(rw,0,SEEK_END);
    SDL_RWclose(rw);
    if (length < 0) {
        printf("Could not seek inside myfile.bin\n");
    } else {
        printf("myfile.bin is %d bytes long\n",length);
    }
}

Remarks

This function seeks to offset relative to whence

whence may be any of the following values:

RW_SEEK_SET

seek from the beginning of data

RW_SEEK_CUR

seek relative to current read point

RW_SEEK_END

seek relative to the end of data

If this stream can not seek, it will return -1.

SDL_RWseek is actually a macro that calls the SDL_RWops's 'seek method appropriately, to simplify application development.


CategoryAPI, CategoryIO

None: SDL_RWseek (last edited 2015-06-20 20:01:11 by PhilippWiesemann)

Feedback
Please include your contact information if you'd like to receive a reply.
Submit